Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JAcousticsMonitorRateSummaryPeriod.sh
Go to the documentation of this file.
1#!/usr/bin/env 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: WORKDIR ACOUSTICS_WORKDIR ./
12set_variable: FORMAT GRAPHICS_FORMAT gif
13
14if do_usage $*; then
15 usage "$script <detector file> minrun maxrun"
16fi
17
18if (( $# == 4 )); then
19 set_variable DETECTOR $argv[1]
20 set_variable MINRUN $argv[2]
21 set_variable MAXRUN $argv[3]
22 set_variable PARAMETERS_FILE $argv[4]
23else
24 fatal "Wrong number of arguments."
25fi
26
27JCookie.sh
28
29eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
30eval `JPrintDetector -a $DETECTOR -O SUMMARY`
31
32JAcoustics.sh $DETECTOR_ID
33
34source JAcousticsToolkit.sh
35
36CHECK_EXIT_CODE
37
38set_variable MONITOR_FILE_WEEK $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${MINRUN}_${MAXRUN}_monitor.root
39set_variable TEST_FILE_WEEK $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${MINRUN}_${MAXRUN}_test.root
40set_variable PLOT_ACOUS_RATE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${MINRUN}_${MAXRUN}_acous_rate
41set_variable PLOT_ACOUS_RATE_TEST $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${MINRUN}_${MAXRUN}_acous_rate-test
42set_variable NUM_RUNS $(($MAXRUN - $MINRUN + 1))
43set_array MONITOR_FILES
44set_array TEST_FILES
45
46for ((RUN=$MINRUN; RUN<=$MAXRUN; RUN++)); do
47
48 set_variable MONITOR_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_monitor.root
49 set_variable TEST_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_test.root
50
51 MONITOR_FILES+=($MONITOR_FILE)
52 TEST_FILES+=($TEST_FILE)
53
54 if [[ ! -f $MONITOR_FILE || ! -f $TEST_FILE ]]; then
55 $JPP_DIR/examples/JAcoustics/JAcousticsMonitorRateSummary.sh $DETECTOR $RUN $RUN $PARAMETERS_FILE 0
56 fi
57
58done
59
60hadd -f $MONITOR_FILE_WEEK $MONITOR_FILES
61hadd -f $TEST_FILE_WEEK $TEST_FILES
62
63typeset -A EMITTERS
64
65get_tripods+ $WORKDIR/tripod.txt EMITTERS
66get_transmitters+ $WORKDIR/transmitter.txt EMITTERS
67
68for EMITTER in ${(@k)EMITTERS}; do
69
70 JScale1D \
71 -f "${MONITOR_FILE_WEEK}:H\[${EMITTER}\].event" \
72 -F "1.0/$NUM_RUNS" \
73 -o "scale.root" >& /dev/null
74
75 JPlot2D \
76 -f "scale.root:H\[${EMITTER}\].event" \
77 -> "string" \
78 -< "floor" \
79 -\^ "rate [Hz]" \
80 -O COLZ \
81 -p "57" \
82 -T "Emitter ${EMITTER}" \
83 -o ${PLOT_ACOUS_RATE}_\[${EMITTER}\].$FORMAT -B
84
85 JScale1D \
86 -f "${TEST_FILE_WEEK}:H\[${EMITTER}\].rate-test" \
87 -F "1.0/$NUM_RUNS" \
88 -o "scale_test.root" >& /dev/null
89
90 JPlot2D \
91 -f "scale_test.root:H\[${EMITTER}\].rate-test" \
92 -> "string" \
93 -< "floor" \
94 -\^ "fraction of runs outside the rate range" \
95 -z "0 1" \
96 -O COLZ \
97 -T "Emitter ${EMITTER}" \
98 -o ${PLOT_ACOUS_RATE_TEST}_\[${EMITTER}\].$FORMAT -B
99
100 #remove temporary files
101 rm -f "scale.root"
102 rm -f "scale_test.root"
103done
104
105if [[ -f ${PLOT_ACOUS_RATE}.$FORMAT ]]; then
106 rm -f ${PLOT_ACOUS_RATE}.$FORMAT
107fi
108
109if [[ -f ${PLOT_ACOUS_RATE_TEST}.$FORMAT ]]; then
110 rm -f ${PLOT_ACOUS_RATE_TEST}.$FORMAT
111fi
112
113set_array start_time $(JRuns -D "$DETECTOR_ID" -@ "run = ${MINRUN}" -F UNIXJOBSTART -F UNIXJOBEND --)
114set_array end_time $(JRuns -D "$DETECTOR_ID" -@ "run = ${MAXRUN}" -F UNIXJOBSTART -F UNIXJOBEND --)
115
116set_variable start_time_h $(date '+%d-%m-%Y %H:%M' -d @$(($start_time[1]/1000)))
117set_variable end_time_h $(date '+%d-%m-%Y %H:%M' -d @$(($end_time[2]/1000)))
118
119montage \
120 -tile 3x10 \
121 -geometry +0+10 \
122 -title "Average acoustic rate \n Runs: ${MINRUN}-${MAXRUN}, Time: ${start_time_h} - ${end_time_h}" \
123 ${PLOT_ACOUS_RATE}_*.$FORMAT \
124 ${PLOT_ACOUS_RATE}.$FORMAT >& /dev/null
125
126montage \
127 -tile 3x10 \
128 -geometry +0+10 \
129 -title "Fraction of runs outside accepted rate range: 10% < rate < 102% of the expected rate \n Runs: ${MINRUN}-${MAXRUN}, Time: ${start_time_h} - ${end_time_h}" \
130 ${PLOT_ACOUS_RATE_TEST}_*.$FORMAT \
131 ${PLOT_ACOUS_RATE_TEST}.$FORMAT >& /dev/null
132
133#clean
134rm -f ${PLOT_ACOUS_RATE}_*.$FORMAT
135rm -f ${PLOT_ACOUS_RATE_TEST}_*.$FORMAT