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