4 if [ -z $JPP_DIR ]; then
 
    5     echo "Variable JPP_DIR undefined."
 
    9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   11 set_variable:  DEBUG       CALIBRATION_DEBUG  1
 
   12 set_variable   WORKDIR     `pwd`            
 
   13 set_variable   QUEUE_NAME  ${TMPDIR:-/tmp}/queue       
 
   14 set_variable   QUEUE_SIZE  3                
 
   16 APPLICATIONS=(prefit simplex gandalf)      # fit applications
 
   19     usage "$script <detector file> <string identifier> (input file)+"
 
   23     fatal "Not enough arguments."
 
   26 set_variable  DETECTOR            $argv[1]
 
   27 set_variable  STRING_ID           $argv[2]
 
   29 INPUT_FILES=($argv[3,-1])
 
   31 if ( ! 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."
 
   43 if [[ $DETECTOR != *\.detx ]]; then
 
   44     fatal "Invalid detector file <${DETECTOR}>."
 
   49 for (( 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
 
   58 for 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 "#!/bin/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