8# ------------------------------------------------------------------------------------------
 
   10#                Utility script to test JTriggerEfficiency in run-by-run mode.
 
   12# ------------------------------------------------------------------------------------------
 
   15if [ -z $JPP_DIR ]; then
 
   16    echo "Variable JPP_DIR undefined."
 
   21source $JPP_DIR/setenv.sh $JPP_DIR
 
   25set_variable   WORKDIR            ${TMPDIR:-/tmp}/                                  
 
   26set_variable   INPUT_FILE         $JPP_DATA/sirene.root                  
 
   27set_variable   DETECTOR           $JPP_DATA/km3net_reference.detx        
 
   28set_variable   TRIGGER            $JPP_DATA/trigger_parameters_arca.txt  
 
   29set_variable   BACKGROUND_HZ      5.0e3                                  
 
   30set_variable   FRAME_DURATION_NS  100.0e6                                
 
   31set_variable   NUMBER_OF_PMTS     31                                     
 
   35    usage "$script [input file [working directory]]"
 
   39    2) set_variable  WORKDIR     $2;&
 
   40    1) set_variable  INPUT_FILE  $1;;
 
   43set_variable  DETECTOR_OUT_OF_SYNC                     $WORKDIR/detector_out_of_sync.detx
 
   44set_variable  DAQ_FILE_OUT_OF_SYNC                     $WORKDIR/trigger_efficiency_out_of_sync.root
 
   45set_variable  OUTPUT_FILE                              $WORKDIR/trigger_efficiency.root
 
   46set_variable  TRIGGEREFFICIENCY_TURBOT                 $WORKDIR/turbot.detx
 
   47set_variable  TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY  Y
 
   52    rm -f $DETECTOR_OUT_OF_SYNC
 
   53    rm -f $DAQ_FILE_OUT_OF_SYNC
 
   55    rm -f $TRIGGEREFFICIENCY_TURBOT
 
   61eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
 
   62eval `JPrintDetector -a $DETECTOR -O SUMMARY`
 
   64set_variable  STRING         ${STRINGS[1]}
 
   65set_variable  MODULE         `getModule -a $DETECTOR -L "$STRING 10"`
 
   68# distort detector file
 
   72    -o $DETECTOR_OUT_OF_SYNC                \
 
   73    -M "$MODULE add $FRAME_DURATION_NS"
 
   75# generate fake raw data file, with distorted detector file.
 
   76# make sure to write summary data for JTriggerEfficiency and
 
   77# L2 data for JTurbot (inside JTriggerEfficiencyRunByRun.sh).
 
   80    -a ${DETECTOR_OUT_OF_SYNC}        \
 
   82    -o ${DAQ_FILE_OUT_OF_SYNC}        \
 
   88    -@ "writeSummary    = 1;"         \
 
   95$JPP_BIN/JTriggerEfficiencyRunByRun.sh \
 
  100    $DAQ_FILE_OUT_OF_SYNC             
 
  102for (( PMT = 0; $PMT != $NUMBER_OF_PMTS; ++PMT )); do
 
  104    set_variable  RESULT  `getPMTStatus -a $TRIGGEREFFICIENCY_TURBOT -P "$MODULE $PMT"  | sed -n 's/.*OUT_OF_SYNC *\([0-1]\)/\1/p'`
 
  106    echo "PMT ($MODULE,$PMT) has OUT_OF_SYNC $RESULT"
 
  108    if (( $RESULT != 1 )); then
 
  109        fatal "PMT ($MODULE,$PMT) has OUT_OF_SYNC $RESULT != 1"
 
  113set_array  RESULT  `$JPP_DIR/examples/JTrigger/JDAQHit -f $OUTPUT_FILE | grep "^ *$MODULE "`
 
  115printf "Module %10d: %8d %8d\n" $MODULE  $RESULT[2]   $RESULT[3] 
 
  117if (( ${#RESULT} >= 3 )); then
 
  119    if (( $RESULT[2] >= 20 )); then
 
  120        fatal "Module $MODULE has too many trigger hits $RESULT[2]"
 
  123    if (( $RESULT[3] <= 20 )); then
 
  124        fatal "Module $MODULE has too few snapshot hits $RESULT[3]"
 
  128    fatal "Module $MODULE has no data."