4 if [ -z $JPP_DIR ]; then
 
    5     echo "Variable JPP_DIR undefined."
 
    9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   12     usage "$script <detector file> <input file>+ <string number>+"
 
   16     fatal "Not enough arguments."
 
   19 set_variable INDEX_STRING_START -1
 
   21 while [[ ${${argv[${START_INDEX_STRING}]}##*.} != "root" ]]; do
 
   22     set_variable START_INDEX_STRING     $(( START_INDEX_STRING - 1 ))
 
   25 set_variable DETECTOR    ${argv[1]}
 
   26 set_array INPUT_FILES    ${argv[2, $(( START_INDEX_STRING - 1 ))     ]}
 
   27 set_array STRINGS        ${argv[   $(( START_INDEX_STRING     )), -1 ]}
 
   29 set_variable  TRIGGER_PARAMETERS  `echo "trigger3DMuon.enabled=1;TMaxEvent_ns=15000;"`
 
   30 set_variable  JDAQ_TIMESLICE      JDAQTimesliceSN
 
   31 set_variable  FORMULA             "[0] + ([3]*( ([1]^(2*[4])) / (([1]*[1] + (2^(1/[4])-1) * ((x-[2])*(x-[2])) ) )))^[4]"
 
   32 set_variable  WORKDIR             ${TMPDIR:-/tmp}
 
   34 mkdir -p --  ${WORKDIR}
 
   40 for STRING in "${STRINGS[@]}"; do
 
   42     REMOVE[$REMOVE[(i)$STRING]]=()
 
   45     for R in "${REMOVE[@]}"; do
 
   49     set_variable  REDUCED_DETECTOR    reduced.detx
 
   51     set_variable  GRAPH_TXT           graph-time.txt
 
   52     set_variable  GRAPH_ROOT          graph-time.root
 
   53     set_variable  FIT_TXT             graph-fit.txt
 
   54     set_variable  FIT_ROOT            graph-fit.root
 
   56     rm -f ${WORKDIR}/${REDUCED_DETECTOR}
 
   57     rm -f ${WORKDIR}/${GRAPH_TXT}
 
   62         -o ${WORKDIR}/${REDUCED_DETECTOR} --!
 
   64     for TIME_OFFSET_NS in -200 -100 -20 -5 0 +5 +20 +100 +200; do
 
   67             -a ${WORKDIR}/${REDUCED_DETECTOR}   \
 
   68             -s "$STRING add $TIME_OFFSET_NS"    \
 
   69             -o ${WORKDIR}/detector.detx --!     
 
   71         set_variable  OUTPUT_FILE  JTriggerProcessor.root
 
   73         rm -f ${WORKDIR}/${OUTPUT_FILE}
 
   76             -a ${WORKDIR}/detector.detx     \
 
   78             -C ${JDAQ_TIMESLICE}            \
 
   79             -@ ${TRIGGER_PARAMETERS}        \
 
   80             -o ${WORKDIR}/${OUTPUT_FILE} --!
 
   82         set_variable N_TRIGGERS  `JPrintTree -f ${WORKDIR}/${OUTPUT_FILE} -@ "type = JDAQEvent" -k number_of_entries`
 
   84         printf "%5.3f %12.3f\n" ${TIME_OFFSET_NS} ${N_TRIGGERS} >> ${WORKDIR}/${GRAPH_TXT}
 
   89         -f ${WORKDIR}/${GRAPH_TXT}        \
 
   90         -o ${WORKDIR}/${GRAPH_ROOT}
 
   93         -f ${WORKDIR}/${GRAPH_ROOT}:\.\*  \
 
   94         -o ${WORKDIR}/${FIT_ROOT}         \
 
  101         -d1 >> ${WORKDIR}/${FIT_TXT} 2>&1
 
  103     set_variable   OPTIMAL_OFFSET    `JTestFit -f ${WORKDIR}/${FIT_ROOT}:${GRAPH_TXT} -@ "p2 -1000 1000" -d 3 | awk '/p2/ {print $2}'`
 
  107         -s "$STRING add $OPTIMAL_OFFSET"    \
 
  110     OUTPUT_OFFSETS="${OUTPUT_OFFSETS} JEditDetector -a ${DETECTOR} -S \"$STRING add $OPTIMAL_OFFSET\" -o ${WORKDIR}/${OUTPUT_DETECTOR} --! \n" 
 
  114 echo -e "${OUTPUT_OFFSETS}"