Jpp  master_rocky-43-ge265d140c
the software that should make you happy
JAcousticsMonitor_short.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 if [ -z $JPP_DIR ]; then
5  echo "Variable JPP_DIR undefined."
6  exit
7 fi
8 
9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
10 
11 set_variable: DEBUG ACOUSTICS_DEBUG 2
12 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
13 set_variable: FORMAT GRAPHICS_FORMAT gif
14 set_variable LOGBOOK \"Individual Logbooks\"
15 set_variable AUTHOR \"GatiusOliver C\"
16 set_variable FACET "ELcode"
17 
18 if 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."
21 fi
22 
23 if (( $# == 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]
28 else
29  fatal "Wrong number of arguments."
30 fi
31 
32 set_variable USER km3net
33 set_variable PASSWORD pyrosoma
34 
35 JCookie.sh
36 
37 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
38 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
39 
40 JAcoustics.sh $DETECTOR_ID
41 
42 source JAcousticsToolkit.sh
43 
44 CHECK_EXIT_CODE
45 
46 for ((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 
188 done