5 # Auxiliary script to produce QA/QC data for operations (near-real-time) monitoring.
7 # The data is stored int he <qaqc file> and can be viewed with the script JOperationsRunMonitor.sh.
11 if [ -z $JPP_DIR ]; then
12 echo "Variable JPP_DIR undefined."
16 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
18 set_variable: DEBUG QAQC_DEBUG 0
19 set_variable: WORKDIR QAQC_WORKDIR ${TMPDIR:-/tmp}/.$$
22 usage "$script <detector file> (run file(s))+ <qaqc file> [working directory]"
26 4) set_variable WORKDIR $4;&
27 3) set_variable DETECTOR $1;
28 set_array INPUT_FILES $2;
29 set_variable QAQC_FILE $3;;
30 *) fatal "Wrong number of arguments."
35 trigger3DShower.enabled
36 triggerMXShower.enabled
43 TRIGGERS=(`JPrintTriggerBits`)
57 GIT detector run livetime_s UTCMin_s UTCMax_s
58 ${TRIGGER_PARAMETERS[*]}
62 in-sync out-sync DAQ WR HRV FIFO
63 PMTs MEAN_Rate_Hz RMS_Rate_Hz
68 if [[ ! -s $QAQC_FILE ]]; then
69 echo $PARAMETERS[*] > $QAQC_FILE
72 for INPUT_FILE in ${INPUT_FILES[*]}; do
74 # check presence of trigger parameters
76 JPrintTriggerParameters -f ${INPUT_FILE} -d 0
81 JTriggerMonitor -v |& awk '/version/ { print $2 }' | read GIT_VERSION
84 JPrintDAQHeader -f ${INPUT_FILE} -d 0 | read -A DAQ_HEADER
89 set_variable DETECTOR_ID ${DAQ_HEADER[1]}
90 set_variable RUN ${DAQ_HEADER[2]}
92 JDetectorDB -D ${DETECTOR_ID} -r ${RUN} -o ${DETECTOR} # install detector file as-is for JTriggerReprocessor
98 getLivetime -f ${INPUT_FILE} -d 0 | read -A LIVETIME_S
101 getUTC -f ${INPUT_FILE} -d 0 | read -A UTC_S
104 { JTriggerMonitor -f ${INPUT_FILE} -d ${DEBUG} -Q 3 3>&1 1>&4 | read -A TRIGGER_MONITOR } 4>&1
107 set_variable OUTPUT_FILE ${WORKDIR}/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_trigger.root
109 JTriggerReprocessor \
118 JPrintTree -f ${OUTPUT_FILE} -@ "type = JDAQEvent" -k number_of_entries | read TRIGGER_REPROCESSOR
125 -Q 3 3>&1 1>&4 | read -A TURBOT } 4>&1
128 { JSummaryMonitor -f ${INPUT_FILE} -d ${DEBUG} -Q 3 3>&1 1>&4 | read -A SUMMARY_MONITOR } 4>&1
131 set_variable RUN $DAQ_HEADER[2]
135 printf " %32s" ${GIT_VERSION} >> $QAQC_FILE
136 printf " %8d" ${DAQ_HEADER[1,2]} >> $QAQC_FILE
137 printf " %9.1f" ${LIVETIME_S[1]} >> $QAQC_FILE
138 printf " %12.1f" ${UTC_S[*]} >> $QAQC_FILE
140 for KEY in ${TRIGGER_PARAMETERS[*]}; do
142 JPrintTriggerParameters -f ${INPUT_FILE} -k $KEY -d 0 | read VALUE
144 printf " %4d" ${VALUE-0} >> $QAQC_FILE
147 for KEY in ${DAQ[*]}; do
149 JPrintTree -f ${INPUT_FILE} -@ "type = $KEY" -k number_of_entries | read VALUE
151 printf " %8d" ${VALUE-0} >> $QAQC_FILE
154 printf " %8d" ${TRIGGER_REPROCESSOR:-0} >> $QAQC_FILE
155 printf " %8d" ${TRIGGER_MONITOR[*]} >> $QAQC_FILE
156 printf " %4d" ${TURBOT[1,2]} >> $QAQC_FILE
157 printf " %7.5f" ${SUMMARY_MONITOR[1,4]} >> $QAQC_FILE
158 printf " %8.1f" ${SUMMARY_MONITOR[5]} >> $QAQC_FILE
159 printf " %7.0f" ${SUMMARY_MONITOR[6,7]} >> $QAQC_FILE
160 printf "\n" >> $QAQC_FILE