4if [ -z $JPP_DIR ]; then
 
    5    echo "Variable JPP_DIR undefined."
 
    9source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   11set_variable:  DEBUG       CALIBRATION_DEBUG  1
 
   12set_variable   WORKDIR     `pwd`            
 
   13set_variable   QUEUE_NAME  ${TMPDIR:-/tmp}/queue       
 
   14set_variable   QUEUE_SIZE  3                
 
   16APPLICATIONS=(prefit simplex gandalf)      # fit applications
 
   19    usage "$script <detector file> <string identifier> (input file)+"
 
   23    fatal "Not enough arguments."
 
   26set_variable  DETECTOR            $argv[1]
 
   27set_variable  STRING_ID           $argv[2]
 
   29INPUT_FILES=($argv[3,-1])
 
   31if ( ! is_CCLyon ); then
 
   33    # local batch processor
 
   37    $JPP_DIR/examples/scripts/mkqueue.sh  $QUEUE_NAME  $QUEUE_SIZE  continue
 
   40    fatal "The job submission should be changed for running in CC-Lyon."
 
   43if [[ $DETECTOR != *\.detx ]]; then
 
   44    fatal "Invalid detector file <${DETECTOR}>."
 
   49for (( i=1; i <= ${#INPUT_FILES}; i+=1 )); do
 
   51    set_variable  INPUT_FILE   ${INPUT_FILES[${i}]}
 
   53    if [[ -f `pwd`/$INPUT_FILE ]]; then
 
   54        INPUT_FILES[${i}]=`pwd`/$INPUT_FILE
 
   58for TIME_OFFSET_NS in 0; do
 
   59    for X_OFFSET_M in 0; do
 
   60        for Y_OFFSET_M in 0; do
 
   61            for Z_OFFSET_M in 0; do
 
   63                set_variable  OUTPUT_DIRECTORY  $WORKDIR/T=${TIME_OFFSET_NS}:X=${X_OFFSET_M}:Y=${Y_OFFSET_M}:Z=${Z_OFFSET_M}
 
   65                mkdir -p --  $OUTPUT_DIRECTORY
 
   67                # detector calibration
 
   69                if [[ ! -f $OUTPUT_DIRECTORY/detector.detx ]]; then
 
   73                        -S "$STRING_ID add $X_OFFSET_M $Y_OFFSET_M $Z_OFFSET_M"  \
 
   74                        -s "$STRING_ID add $TIME_OFFSET_NS"                      \
 
   75                        -o $OUTPUT_DIRECTORY/detector.detx --!
 
   79                for FILE_NAME in $INPUT_FILES[*]; do
 
   81                    set_variable  APP          ${APPLICATIONS[-1]}
 
   82                    set_variable  INPUT_FILE   ${FILE_NAME}
 
   83                    set_variable  OUTPUT_FILE  ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
 
   84                    set_variable  BATCH_FILE   ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/.sh}
 
   88                    echo "#!/usr/bin/env zsh"  >>  $BATCH_FILE
 
   90                    if [[ ! -f ${OUPUT_FILE} ]]; then
 
   92                        # sequentially processing of applications
 
   94                        for APP in $APPLICATIONS[*]; do
 
   96                            set_variable  OUTPUT_FILE  ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
 
   98                            echo "JARCA${(C)APP}.sh  $OUTPUT_DIRECTORY/detector.detx  $INPUT_FILE $OUTPUT_FILE >& /dev/null"  >>  $BATCH_FILE
 
  100                            set_variable  INPUT_FILE   ${OUTPUT_FILE}
 
  106                        for (( i=1; i < ${#APPLICATIONS}; i+=1 )); do
 
  108                            set_variable  APP          ${APPLICATIONS[${i}]}
 
  109                            set_variable  OUTPUT_FILE  ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
 
  111                            echo "rm -f  $OUTPUT_FILE"  >>  $BATCH_FILE
 
  115                        echo "rm -f $BATCH_FILE"  >>  $BATCH_FILE
 
  120                        puts_queue  $QUEUE_NAME  $BATCH_FILE