8 # ------------------------------------------------------------------------------------------
 
   10 #                Utility script to test JTriggerEfficiency in run-by-run mode.
 
   12 # ------------------------------------------------------------------------------------------
 
   15 if [ -z $JPP_DIR ]; then
 
   16     echo "Variable JPP_DIR undefined."
 
   21 source $JPP_DIR/setenv.sh $JPP_DIR
 
   25 set_variable   WORKDIR            ${TMPDIR:-/tmp}/                                  
 
   26 set_variable   INPUT_FILE         $JPP_DATA/sirene.root                  
 
   27 set_variable   DETECTOR           $JPP_DATA/km3net_reference.detx        
 
   28 set_variable   TRIGGER            $JPP_DATA/trigger_parameters_arca.txt  
 
   29 set_variable   BACKGROUND_HZ      5.0e3                                  
 
   30 set_variable   FRAME_DURATION_NS  100.0e6                                
 
   31 set_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;;
 
   43 set_variable  DETECTOR_OUT_OF_SYNC                     $WORKDIR/detector_out_of_sync.detx
 
   44 set_variable  DAQ_FILE_OUT_OF_SYNC                     $WORKDIR/trigger_efficiency_out_of_sync.root
 
   45 set_variable  OUTPUT_FILE                              $WORKDIR/trigger_efficiency.root
 
   46 set_variable  TRIGGEREFFICIENCY_TURBOT                 $WORKDIR/turbot.detx
 
   47 set_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
 
   61 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
 
   62 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
 
   64 set_variable  STRING         ${STRINGS[1]}
 
   65 set_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             
 
  102 for (( 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"
 
  113 set_array  RESULT  `$JPP_DIR/examples/JTrigger/JDAQHit -f $OUTPUT_FILE | grep "^ *$MODULE "`
 
  115 printf "Module %10d: %8d %8d\n" $MODULE  $RESULT[2]   $RESULT[3] 
 
  117 if (( ${#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."