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."