4# ------------------------------------------------------------------------------------------
 
    6#                      Script to run K40 time calibration following HV tuning.
 
    8# ------------------------------------------------------------------------------------------
 
   10if [ -z $JPP_DIR ]; then
 
   11    echo "Variable JPP_DIR undefined."
 
   15source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
 
   17set_variable:  DEBUG              CALIBRATION_DEBUG          1
 
   18set_variable:  WORKDIR            CALIBRATION_WORKDIR        `pwd`
 
   19set_variable:  DAQ_TIMESLICE      CALIBRATION_TIMESLICE      JDAQTimesliceL1
 
   20set_variable+  DATABASE_OPTION    CALIBRATION_USEPMTID       -U
 
   21set_variable+  MODEL              CALIBRATION_MODEL          -D
 
   24    usage "$script <detector file> <input file> <input file> <input file>"\
 
   25          "\nThe 1st and 3rd input file should correspond to a data taking run in which the HV settings are complete (e.g. \"vendor\" or \"tuned\")."\
 
   26          "\nThe 2nd input file should correspond to a run with hybrid HV settings."\
 
   27          "\nIn this, half of the PMTs should have the same HV settings as either the 1st or 3rd input file."
 
   31    set_variable  DETECTOR      $argv[1]
 
   32    set_array     INPUT_FILES   $argv[2,-1]
 
   34    fatal "Wrong number of arguments."
 
   40# Get background option for given input file.
 
   47    if (( `JPrintTree -f $1 -@ "type = JDAQSummaryslice" -k number_of_entries` > 0 )); then
 
   56# Standard calibration.
 
   63    JPrintDAQHeader -f $2  |  read  ID  RUN  FRAME_INDEX  UTC
 
   69        -o $WORKDIR/monitor_${RUN}.root              \
 
   74        -f $WORKDIR/monitor_${RUN}.root              \
 
   75        -o $WORKDIR/merge_${RUN}.root                \
 
   76        -@ "LIVETIME_S = 10"                         \
 
   79    JConvertDetectorFormat \
 
   81        -o $WORKDIR/detector_${RUN}.datx
 
   84        -a $WORKDIR/detector_${RUN}.datx             \
 
   85        -f $WORKDIR/merge_${RUN}.root                \
 
   86        -o $WORKDIR/fit_${RUN}.root                  \
 
   98# \param   2     reference run
 
  103    JPrintDAQHeader -f $3  |  read  ID  RUN  FRAME_INDEX  UTC
 
  109        -o "$WORKDIR/TDC_${2}_${RUN}.txt"
 
  115        -o $WORKDIR/monitor_${RUN}.root              \
 
  120        -f $WORKDIR/monitor_${RUN}.root              \
 
  121        -o $WORKDIR/merge_${RUN}.root                \
 
  122        -@ "LIVETIME_S = 10"                         \
 
  125    JConvertDetectorFormat \
 
  127        -o $WORKDIR/detector_${RUN}.datx
 
  130        -a $WORKDIR/detector_${RUN}.datx             \
 
  131        -f $WORKDIR/merge_${RUN}.root                \
 
  132        -o $WORKDIR/fit_${RUN}.root                  \
 
  136        -! $WORKDIR/TDC_${2}_${RUN}.txt              \
 
  143eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
 
  147for INPUT_FILE in $INPUT_FILES[*]; do
 
  149    JPrintDAQHeader -f $INPUT_FILE  |  read  ID  RUN  FRAME_INDEX  UTC
 
  151    if (( $ID != $DETECTOR_ID )); then
 
  152        fatal "Detector identifier from $INPUT_FILE $ID != $DETECTOR_ID"
 
  160calibrate  $DETECTOR  ${INPUT_FILES[1]}
 
  162hybrid     $WORKDIR/detector_${RUNS[1]}.datx  ${RUNS[1]}   ${INPUT_FILES[2]}
 
  164hybrid     $WORKDIR/detector_${RUNS[2]}.datx  ${RUNS[2]}   ${INPUT_FILES[3]}