Jpp master_rocky-44-g75b7c4f75
the software that should make you happy
Loading...
Searching...
No Matches
JAcousticsMonitor_short.sh
Go to the documentation of this file.
1#!/bin/zsh
2script=${0##*/}
3
4if [ -z $JPP_DIR ]; then
5 echo "Variable JPP_DIR undefined."
6 exit
7fi
8
9source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
10
11set_variable: DEBUG ACOUSTICS_DEBUG 2
12set_variable: WORKDIR ACOUSTICS_WORKDIR ./
13set_variable: FORMAT GRAPHICS_FORMAT gif
14set_variable LOGBOOK \"Individual Logbooks\"
15set_variable AUTHOR \"GatiusOliver C\"
16set_variable FACET "ELcode"
17
18if do_usage $*; then
19 usage "$script <detector file> minrun maxrun report"\
20 "\nIn case of failures, if report = 1 an elog entry is created, if report =! 1 no elog entry is created."
21fi
22
23if (( $# == 4 )); then
24 set_variable DETECTOR $argv[1]
25 set_variable MINRUN $argv[2]
26 set_variable MAXRUN $argv[3]
27 set_variable REPORT $argv[4]
28else
29 fatal "Wrong number of arguments."
30fi
31
32set_variable USER km3net
33set_variable PASSWORD pyrosoma
34
35JCookie.sh
36
37eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
38eval `JPrintDetector -a $DETECTOR -O SUMMARY`
39
40JAcoustics.sh $DETECTOR_ID
41
42source JAcousticsToolkit.sh
43
44CHECK_EXIT_CODE
45
46for ((RUN=$MINRUN; RUN<=$MAXRUN; RUN++)); do
47
48 set_variable INPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_toashort.root
49 set_variable OUTPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_event.root
50 set_variable MONITOR_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_monitor.root
51 set_variable SUMMARY_FILE $WORKDIR/summary_${(l:8::0::0:)RUN}.txt
52 set_variable TEST_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_test.root
53 set_variable PARAMETERS_FILE $JPP_DIR/examples/JAcoustics/acoustics_monitor_${(l:8::0::0:)DETECTOR_ID}.txt
54
55 if [[ ! -f $INPUT_FILE ]]; then
56
57 JConvertDB \
58 -q toashort \
59 -@ "detid = `getDetector -D $DETECTOR_ID`" \
60 -@ "minrun = $RUN" \
61 -@ "maxrun = $RUN" \
62 -o $INPUT_FILE \
63 -d $DEBUG --!
64 fi
65
66 if [[ ! -f $OUTPUT_FILE ]]; then
67
68 JAcousticsEventBuilder \
69 -a $DETECTOR \
70 -f $INPUT_FILE \
71 -T $WORKDIR/tripod.txt \
72 -Y $WORKDIR/transmitter.txt \
73 -V $WORKDIR/sound_velocity.txt \
74 -W $WORKDIR/waveform.txt \
75 -@ $WORKDIR/acoustics_trigger_parameters.txt \
76 -H $WORKDIR/hydrophone.txt \
77 -o $OUTPUT_FILE \
78 -d $DEBUG --!
79 fi
80
81 set_array time_range $(JRuns -D "$DETECTOR_ID" -@ "run = ${RUN}" -F UNIXJOBSTART -F UNIXJOBEND --)
82
83 set_variable lifetime_s $(( ($time_range[2]-$time_range[1])/1000 ))
84
85 #if lifetime is unknown, assume 6hr
86 if [ -z "$lifetime_s" ]; then
87 lifetime_s=21600
88
89 #avoid 0 sec lifetime
90 elif (($lifetime_s == 0)); then
91 lifetime_s=1
92 fi
93
94 $JPP_DIR/examples/JAcoustics/JAcousticsMonitor_short \
95 -a $DETECTOR \
96 -f $OUTPUT_FILE \
97 -l $lifetime_s \
98 -o $MONITOR_FILE \
99 -d $DEBUG
100
101 read -r NUMBER_OF_FAILURES <<< "$($JPP_DIR/examples/JAcoustics/JAcousticsMonitorTest \
102 -f $MONITOR_FILE \
103 -a $DETECTOR \
104 -P $PARAMETERS_FILE \
105 -F $FACET \
106 -w $SUMMARY_FILE \
107 -t $TEST_FILE \
108 -r $RUN \
109 -d "1")"
110
111
112 #report to e-log
113 if [[ ${NUMBER_OF_FAILURES[-1]} -gt 0 && $REPORT == 1 ]]; then
114
115 typeset -A EMITTERS
116
117 get_tripods+ $WORKDIR/tripod.txt EMITTERS
118 get_transmitters+ $WORKDIR/transmitter.txt EMITTERS
119
120 ATTACHMENTS=""
121
122 for EMITTER in ${(@k)EMITTERS}; do
123
124 JPlot2D \
125 -f "${MONITOR_FILE}:H\[${EMITTER}\].event" \
126 -> "string" \
127 -< "floor" \
128 -\^ "rate [Hz]" \
129 -O COLZ \
130 -p "57" \
131 -T "Emitter ${EMITTER}" \
132 -o $WORKDIR/rate\[${EMITTER}\]_${RUN}.$FORMAT \
133 -B
134
135 JPlot2D \
136 -f "${TEST_FILE}:H\[${EMITTER}\].rate-test" \
137 -> "string" \
138 -< "floor" \
139 -z "0 1" \
140 -O COLZ \
141 -T "Emitter ${EMITTER}" \
142 -o $WORKDIR/rate-test\[${EMITTER}\]_${RUN}.$FORMAT \
143 -B
144 done
145
146 set_variable PLOT_ACOUS_RATE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${RUN}_acous_rate
147 set_variable PLOT_ACOUS_RATE_TEST $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${RUN}_acous_rate-test
148
149 montage \
150 -tile 3x10 \
151 -geometry +0+10 \
152 -title "Average acoustic rate \n Run: ${RUN}" \
153 $WORKDIR/rate\[*\]_${RUN}.$FORMAT \
154 $WORKDIR/${PLOT_ACOUS_RATE}.$FORMAT >& /dev/null
155
156 montage \
157 -tile 3x10 \
158 -geometry +0+10 \
159 -title "In red modules measuring a rate out of the accepted rate range: 10% < rate < 102% of the expected rate \n Run: ${RUN}" \
160 $WORKDIR/rate-test\[*\]_${RUN}.$FORMAT \
161 $WORKDIR/${PLOT_ACOUS_RATE_TEST}.$FORMAT >& /dev/null
162
163 ATTACHMENTS+=" -f $WORKDIR/${PLOT_ACOUS_RATE}.$FORMAT"
164 ATTACHMENTS+=" -f $WORKDIR/${PLOT_ACOUS_RATE_TEST}.$FORMAT"
165
166 eval elog \
167 -h elog.km3net.de \
168 -p 3000 \
169 -u $USER $PASSWORD \
170 -l $LOGBOOK \
171 -a Subject=\"Warning detector ID ${DETECTOR_ID}\" \
172 -a Type=\"Acoustics monitoring\" \
173 -a Author=$AUTHOR \
174 -n 0 -v \
175 -m $SUMMARY_FILE \
176 $ATTACHMENTS
177
178 #remove temporary files
179 rm -f $WORKDIR/rate*_${RUN}.$FORMAT
180 rm -f $SUMMARY_FILE
181 rm -f $WORKDIR/${PLOT_ACOUS_RATE}.$FORMAT
182 rm -f $WORKDIR/${PLOT_ACOUS_RATE_TEST}.$FORMAT
183
184 fi
185
186 CHECK_EXIT_CODE
187
188done