Jpp  15.0.1-rc.2-highQE
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JQAQC.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 if [ -z $JPP_DIR ]; then
9  echo "Variable JPP_DIR undefined."
10  exit
11 fi
12 
13 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
14 
15 # Auxiliary script to produce QA/QC data.
16 #
17 # The output data are uploaded to the database with a tool that is part of the km3pipe package.
18 # Once uploaded, the data can be viewed with application/scripts JDataMonitor[.sh] and JDataQuality[.sh].
19 #
20 # Note that if the list of values is extended, the include file JRunQuality.hh should accordingly be updated.
21 
22 set_variable: DEBUG QAQC_DEBUG 0
23 set_variable: WORKDIR QAQC_WORKDIR /tmp/.$$
24 
25 TRIGGER_PARAMETERS=(
26  trigger3DMuon.enabled
27  trigger3DShower.enabled
28  triggerMXShower.enabled
29  triggerNB.enabled
30  writeL0.prescale
31  writeL1.prescale
32  writeL2.prescale
33  writeSN.prescale)
34 
35 TRIGGERS=(`JPrintTriggerBits`)
36 
37 DAQ=(
38  JDAQTimeslice
39  JDAQTimesliceL0
40  JDAQTimesliceL1
41  JDAQTimesliceL2
43  JDAQSummaryslice
44  JDAQEvent)
45 
46 typeset -a PARAMETERS
47 
48 PARAMETERS=(
49  GIT detector run livetime_s UTCMin_s UTCMax_s
50  ${TRIGGER_PARAMETERS[*]}
51  ${DAQ[*]}
52  ${TRIGGERS[*]}
53  in-sync out-sync DAQ WR HRV FIFO
55  Acoustics AHRS)
56 
57 if do_usage $*; then
58  usage \
59  "$script <detector file> (input file)+ <QA/QC file>" \
60  "\nAuxiliary script to produce the following QA/QC data:" \
61  "\n$PARAMETERS[*]"
62 fi
63 
64 if (( $# < 3 )); then
65  fatal "Wrong number of arguments."
66 fi
67 
69 set_array INPUT_FILES $argv[2,-2]
70 set_variable QAQC_FILE $argv[-1]
71 
72 
73 mkdir -p $WORKDIR
74 
75 set_variable ACOUSTICS_WORKDIR ${WORKDIR}
76 set_variable COMPASS_WORKDIR ${WORKDIR}
77 
78 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
79 
80 JCookie.sh
81 CHECK_EXIT_CODE
82 
83 source JAcoustics.sh $DETECTOR_ID
84 CHECK_EXIT_CODE
85 
86 JAHRSCalibration.sh $DETECTOR_ID
87 CHECK_EXIT_CODE
88 
89 if [[ ! -s $QAQC_FILE ]]; then
90  echo $PARAMETERS[*] > $QAQC_FILE
91 fi
92 
93 for INPUT_FILE in ${INPUT_FILES[*]}; do
94 
95  # check presence of trigger parameters
96 
97  JPrintTriggerParameters -f ${INPUT_FILE} -d 0
98  CHECK_EXIT_CODE
99 
100  # determine values
101 
102  JTriggerMonitor -v |& awk '/version/ { print $2 }' | read GIT_VERSION
103  CHECK_EXIT_CODE
104 
105  JPrintDAQHeader -f ${INPUT_FILE} -d 0 | read -A DAQ_HEADER
106  CHECK_EXIT_CODE
107 
108  getLivetime -f ${INPUT_FILE} -d 0 | read -A LIVETIME_S
109  CHECK_EXIT_CODE
110 
111  getUTC -f ${INPUT_FILE} -d 0 | read -A UTC_S
112  CHECK_EXIT_CODE
113 
114  JTriggerMonitor -f ${INPUT_FILE} -d 0 -Q 3 3>&1 | read -A TRIGGER_MONITOR
115  CHECK_EXIT_CODE
116 
117  JTurbot \
118  -f ${INPUT_FILE} \
119  -a ${DETECTOR} \
120  -o /dev/null \
121  -d ${DEBUG} \
122  -Q 3 3>&1 | read -A TURBOT
123  CHECK_EXIT_CODE
124 
125  JSummaryMonitor -f ${INPUT_FILE} -d 0 -Q 3 3>&1 | read -A SUMMARY_MONITOR
126  CHECK_EXIT_CODE
127 
128  set_variable RUN $DAQ_HEADER[2]
129 
130  JAcousticsEventBuilder.sh $DETECTOR $RUN
131  CHECK_EXIT_CODE
132 
133  set_variable OUTPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_event.root
134 
135  JPrintResult -f ${OUTPUT_FILE}:'^ACOUSTICS$' -F GetEntries | read -A NUMBER_OF_ACOUSTICS_EVENTS
136 
137  JAHRS.sh $DETECTOR_ID $RUN
138  CHECK_EXIT_CODE
139 
140  set_variable OUTPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_ahrs.root
141 
142  JAHRSMonitor \
143  -a ${DETECTOR} \
144  -f ${OUTPUT_FILE} \
145  -c ${WORKDIR}/ahrs_calibration.txt \
146  -q 0.2 \
147  -d ${DEBUG} \
148  -Q 3 3>&1 | read -A NUMBER_OF_AHRS_EVENTS
149 
150  # print values
151 
152  printf " %32s" ${GIT_VERSION} >> $QAQC_FILE
153  printf " %8d" ${DAQ_HEADER[1,2]} >> $QAQC_FILE
154  printf " %9.1f" ${LIVETIME_S[1]} >> $QAQC_FILE
155  printf " %12.1f" ${UTC_S[*]} >> $QAQC_FILE
156 
157  for KEY in ${TRIGGER_PARAMETERS[*]}; do
158 
159  JPrintTriggerParameters -f ${INPUT_FILE} -k $KEY -d 0 | read VALUE
160 
161  printf " %4d" ${VALUE-0} >> $QAQC_FILE
162  done
163 
164  for KEY in ${DAQ[*]}; do
165 
166  JPrintTree -f ${INPUT_FILE} |& eval awk \'/${KEY}/ \{ print \$3\; \}\' | read VALUE
167 
168  printf " %8d" ${VALUE-0} >> $QAQC_FILE
169  done
170 
171  printf " %8d" ${TRIGGER_MONITOR[*]} >> $QAQC_FILE
172  printf " %2d" ${TURBOT[1,2]} >> $QAQC_FILE
173  printf " %7.5f" ${SUMMARY_MONITOR[1,4]} >> $QAQC_FILE
174  printf " %8.1f" ${SUMMARY_MONITOR[5]} >> $QAQC_FILE
175  printf " %7.0f" ${SUMMARY_MONITOR[6,7]} >> $QAQC_FILE
176  printf " %4d" ${NUMBER_OF_ACOUSTICS_EVENTS[1]} >> $QAQC_FILE
177  printf " %8.3f" ${NUMBER_OF_AHRS_EVENTS[1]} >> $QAQC_FILE
178  printf "\n" >> $QAQC_FILE
179 
180 done
181 
182 rm -rf $WORKDIR
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison fi case set_variable RANGE $argv[3]
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 JMuonPostfit f
Q MEAN_Rate_Hz
Definition: JDataQuality.sh:55
then usage $script< detector file >< inputfile > nUtility script to create PDF and CDF of transition time distribution fi case set_variable WORKDIR
Definition: JLegolas.sh:31
set_variable INPUT_FILE
exit
Definition: JPizza.sh:36
then JDataQuality D $DETECTOR R $RUNS[*] o $QUALITY_TXT d $DEBUG!fi JDataQuality f $QUALITY_TXT Q livetime_s
Definition: JDataQuality.sh:48
then echo
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null if do_usage *then usage $script< detector identifier > fi case set_variable DETECTOR_ID
Definition: JTDC.sh:11
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
then rm i $OUTPUT_FILE fi let RUN
Q DAQ
Definition: JDataQuality.sh:52
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
* usage
set_array INPUT_FILES
Q RMS_Rate_Hz
Definition: JDataQuality.sh:56
&set_variable OUTPUT_FILE
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
Q FIFO
Definition: JDataQuality.sh:54
double getLivetime(const std::string &file_name)
Get data taking live time.
then JCalibrateToT a
Definition: JTuneHV.sh:116
then set_variable MODULE getModule a $DETECTOR L $STRING $FLOOR JEditDetector a $DETECTOR M $MODULE add $X o $DETECTOR else echo No update of detector $DETECTOR
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
then display $WORKDIR
Definition: plot-Domino.sh:128
set_variable DETECTOR
do set_variable INPUT_FILE $WORKDIR KM3NeT_
do set_variable DETECTOR_TXT $WORKDIR detector
data_type v[N+1][M+1]
Definition: JPolint.hh:740
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 source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:41
set_variable NUMBER_OF_ITERATIONS set_variable EPSILON cat acoustics_fit_parameters txt<< EOF $CONFIGURATION[*]Nmin=3;sigma_s=100.0e-6;stdev=10.0;mestimator=0;fixStrings=0;EOF for STRING in $STRINGS[*];do#fit stretching and(z) position of given string set_variable DETECTOR_TMP/tmp/detector_A.datx JEditDetector-a $DETECTOR-o $DETECTOR_TMP-r $STRING JEditDetector-a $DETECTOR-o $DETECTOR-k $STRING for MUL in 0.005 0.001;do DX_M=0.2 for((N=0;$N< $NUMBER_OF_ITERATIONS;++N));do CHI2[3]=$CHI2[1] fitPositionOfString $STRING Z $DX_M fitStretchingOfString $STRING $MUL if(($CHI2[3]-$CHI2[1]< $EPSILON));then break fi done if(($N >=$NUMBER_OF_ITERATIONS));then printf"warning: reached maximum number of iterations %d - converenge %7.3f\n"$N $(($CHI2[3]-$CHI2[1])) fi done JMergeDetector-a $DETECTOR-a $DETECTOR_TMP-o $DETECTOR rm-f $DETECTOR_TMP JConvertDetectorFormat-a $DETECTOR-o $DETECTOR-r-d 0 > &dev null done
then usage $script< detector file >< inputfile > fi case set_array PARAMETERS
version
Definition: JCalibratePMT.sh:7
source $JPP_DIR setenv csh $JPP_DIR eval JShellParser o a A
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
Q HRV
Definition: JDataQuality.sh:51
static const JPBS_t AHRS(3, 4, 3, 4)
PBS of compass
Q WR
Definition: JDataQuality.sh:53