Jpp 19.3.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JOperationsRunQuality.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5# Auxiliary script to produce QA/QC data for operations (near-real-time) monitoring.
6#
7# The data is stored int he <qaqc file> and can be viewed with the script JOperationsRunMonitor.sh.
8version=1.0
9script=${0##*/}
10
11if [ -z $JPP_DIR ]; then
12 echo "Variable JPP_DIR undefined."
13 exit
14fi
15
16source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
17
18set_variable: DEBUG QAQC_DEBUG 0
19set_variable: WORKDIR QAQC_WORKDIR ${TMPDIR:-/tmp}/.$$
20
21if do_usage $*; then
22 usage "$script <detector file> (run file(s))+ <qaqc file> [working directory]"
23fi
24
25case $# in
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."
31esac
32
33TRIGGER_PARAMETERS=(
34 trigger3DMuon.enabled
35 trigger3DShower.enabled
36 triggerMXShower.enabled
37 triggerNB.enabled
38 writeL0.prescale
39 writeL1.prescale
40 writeL2.prescale
41 writeSN.prescale)
42
43TRIGGERS=(`JPrintTriggerBits`)
44
45DAQ=(
46 JDAQTimeslice
47 JDAQTimesliceL0
48 JDAQTimesliceL1
49 JDAQTimesliceL2
50 JDAQTimesliceSN
51 JDAQSummaryslice
52 JDAQEvent)
53
54typeset -a PARAMETERS
55
56PARAMETERS=(
57 GIT detector run livetime_s UTCMin_s UTCMax_s
58 ${TRIGGER_PARAMETERS[*]}
59 ${DAQ[*]}
60 JTriggerReprocessor
61 ${TRIGGERS[*]}
62 in-sync out-sync DAQ WR HRV FIFO
63 PMTs MEAN_Rate_Hz RMS_Rate_Hz
64)
65
66mkdir -p $WORKDIR
67
68if [[ ! -s $QAQC_FILE ]]; then
69 echo $PARAMETERS[*] > $QAQC_FILE
70fi
71
72for INPUT_FILE in ${INPUT_FILES[*]}; do
73
74 # check presence of trigger parameters
75
76 JPrintTriggerParameters -f ${INPUT_FILE} -d 0
77 CHECK_EXIT_CODE
78
79 # determine values
80
81 JTriggerMonitor -v |& awk '/version/ { print $2 }' | read GIT_VERSION
82 CHECK_EXIT_CODE
83
84 JPrintDAQHeader -f ${INPUT_FILE} -d 0 | read -A DAQ_HEADER
85 CHECK_EXIT_CODE
86
87
88
89 set_variable DETECTOR_ID ${DAQ_HEADER[1]}
90 set_variable RUN ${DAQ_HEADER[2]}
91
92 JDetectorDB -D ${DETECTOR_ID} -r ${RUN} -o ${DETECTOR} # install detector file as-is for JTriggerReprocessor
93 CHECK_EXIT_CODE
94
95
96
97
98 getLivetime -f ${INPUT_FILE} -d 0 | read -A LIVETIME_S
99 CHECK_EXIT_CODE
100
101 getUTC -f ${INPUT_FILE} -d 0 | read -A UTC_S
102 CHECK_EXIT_CODE
103
104 { JTriggerMonitor -f ${INPUT_FILE} -d ${DEBUG} -Q 3 3>&1 1>&4 | read -A TRIGGER_MONITOR } 4>&1
105 CHECK_EXIT_CODE
106
107 set_variable OUTPUT_FILE ${WORKDIR}/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_trigger.root
108
109 JTriggerReprocessor \
110 -a ${DETECTOR} \
111 -f ${INPUT_FILE} \
112 -o ${OUTPUT_FILE} \
113 -U \
114 -C -\.\* \
115 -d ${DEBUG}
116 CHECK_EXIT_CODE
117
118 JPrintTree -f ${OUTPUT_FILE} -@ "type = JDAQEvent" -k number_of_entries | read TRIGGER_REPROCESSOR
119
120 { JTurbot \
121 -f ${INPUT_FILE} \
122 -a ${DETECTOR} \
123 -o /dev/null \
124 -d ${DEBUG} \
125 -Q 3 3>&1 1>&4 | read -A TURBOT } 4>&1
126 CHECK_EXIT_CODE
127
128 { JSummaryMonitor -f ${INPUT_FILE} -d ${DEBUG} -Q 3 3>&1 1>&4 | read -A SUMMARY_MONITOR } 4>&1
129 CHECK_EXIT_CODE
130
131 set_variable RUN $DAQ_HEADER[2]
132
133 # print values
134
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
139
140 for KEY in ${TRIGGER_PARAMETERS[*]}; do
141
142 JPrintTriggerParameters -f ${INPUT_FILE} -k $KEY -d 0 | read VALUE
143
144 printf " %4d" ${VALUE-0} >> $QAQC_FILE
145 done
146
147 for KEY in ${DAQ[*]}; do
148
149 JPrintTree -f ${INPUT_FILE} -@ "type = $KEY" -k number_of_entries | read VALUE
150
151 printf " %8d" ${VALUE-0} >> $QAQC_FILE
152 done
153
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
161done
162
163rm -rf $WORKDIR