Jpp  18.2.0-rc.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JOperationsRunQuality.sh
Go to the documentation of this file.
1 #!/bin/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.
8 version=1.0
9 script=${0##*/}
10 
11  if [ -z $JPP_DIR ]; then
12  echo "Variable JPP_DIR undefined."
13  exit
14  fi
15 
16  source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
17 
18 set_variable: DEBUG QAQC_DEBUG 0
19 set_variable: WORKDIR QAQC_WORKDIR ${TMPDIR:-/tmp}/.$$
20 
21  if do_usage $*; then
22  usage "$script <detector file> (run file(s))+ <qaqc file> [working directory]"
23  fi
24 
25  case $# in
26  4) set_variable WORKDIR $4;&
28  set_array INPUT_FILES $2;
30  *) fatal "Wrong number of arguments."
31  esac
32 
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 
43 TRIGGERS=(`JPrintTriggerBits`)
44 
45 DAQ=(
46  JDAQTimeslice
47  JDAQTimesliceL0
48  JDAQTimesliceL1
49  JDAQTimesliceL2
51  JDAQSummaryslice
52  JDAQEvent)
53 
54 typeset -a PARAMETERS
55 
56 PARAMETERS=(
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
64  )
65 
66 mkdir -p $WORKDIR
67 
68 if [[ ! -s $QAQC_FILE ]]; then
69  echo $PARAMETERS[*] > $QAQC_FILE
70 fi
71 
72 for 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} |& awk '/JDAQEvent/ { print $3 }' | 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} |& eval awk \'/${KEY}/ \{ print \$3\; \}\' | 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
161 done
162 
163 rm -rf $WORKDIR
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
Q(UTCMax_s-UTCMin_s)-livetime_s
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
*fatal Wrong number of arguments esac check_input_file $INPUT_FILE for TIMESLICE in JDAQTimeslice JDAQTimesliceL0 JDAQTimesliceL1 JDAQTimesliceL2 JDAQTimesliceSN
then usage $script[< detector identifier >< run range >]< QA/QCfile > nExample script to produce data quality plots nWhen a detector identifier and run range are data are downloaded from the database nand subsequently stored in the given QA QC file
Definition: JDataQuality.sh:19
*fatal Wrong number of arguments esac TRIGGER_PARAMETERS
version
Definition: JEditTuneHV.sh:5
set_variable QAQC_FILE
Q MEAN_Rate_Hz
Definition: JDataQuality.sh:62
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O SUMMARY JPrintDAQHeader f $INPUT_FILE read A DAQ_HEADER set_variable DETECTOR_ID
Definition: JSquid.sh:28
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
usr share Modules init zsh export TMPDIR
exit
Definition: JPizza.sh:36
data_type r[M+1]
Definition: JPolint.hh:779
is
Definition: JDAQCHSM.chsm:167
Q JDAQEvent livetime_s
Definition: JDataQuality.sh:57
static const double C
Physics constants.
do JPrintDAQHeader f $INPUT_FILE d read DETECTOR_ID RUN FRAME_INDEX TIMESLICE_START set_variable OUTPUT_FILE $WORKDIR KM3NeT_
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:21
do set_variable STRING_TXT awk
then JCalibrateToT a
Definition: JTuneHV.sh:113
then rm i $OUTPUT_FILE fi let RUN
Q DAQ
Definition: JDataQuality.sh:59
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
* usage
&set_variable OUTPUT_FILE
set_variable INPUT_FILE
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:77
Q RMS_Rate_Hz
Definition: JDataQuality.sh:63
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
Q FIFO
Definition: JDataQuality.sh:61
double getLivetime(const std::string &file_name)
Get data taking live time.
then display $WORKDIR
Definition: plot-Domino.sh:128
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
then eval ls $DIR $ID $TYPE _
Definition: getArchive.sh:104
set_variable DETECTOR
do set_variable DETECTOR_TXT $WORKDIR detector
data_type v[N+1][M+1]
Definition: JPolint.hh:777
then echo
Definition: JQAQC.sh:90
static JNullStream null
Null I/O stream.
Definition: JNullStream.hh:51
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
Q HRV
Definition: JDataQuality.sh:58
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
Q WR
Definition: JDataQuality.sh:60