Jpp  19.1.0-rc.1
the software that should make you happy
JAcousticsMonitor.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 zmodload zsh/mathfunc
12 
13 set_variable: DEBUG ACOUSTICS_DEBUG 2
14 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
15 set_variable: FORMAT GRAPHICS_FORMAT gif
16 set_variable+ BATCH GRAPHICS_BATCH -B
17 
18 if do_usage $*; then
19  usage "$script <detector file> (input file)+"\
20  "\nInput files correspond to the output of JAcousticsEventBuilder[.sh]."
21 fi
22 
23 if (( $# >= 2 )); then
24  set_variable DETECTOR $argv[1]
25  set_array INPUT_FILES $argv[2,-1]
26 else
27  fatal "Wrong number of arguments."
28 fi
29 
30 source JAcousticsToolkit.sh
31 
32 $JPP_DIR/examples/JAcoustics/JAcousticsMonitor \
33  -a $DETECTOR \
34  -f${^INPUT_FILES} \
35  -o $WORKDIR/monitor.root \
36  -T $WORKDIR/tripod.txt \
37  -Y $WORKDIR/transmitter.txt \
38  -d $DEBUG --!
39 
40 JPlot1D \
41  -f $WORKDIR/monitor.root:H\.\*size \
42  -Y \
43  -> "size" \
44  -\^ "number of events" \
45  -L TL \
46  -T "" \
47  -o $WORKDIR/size.$FORMAT $BATCH
48 
49 JPlot1D \
50  -f $WORKDIR/monitor.root:H\.\*quality \
51  -XX \
52  -Y \
53  -> "quality" \
54  -\^ "number of hits" \
55  -L TL \
56  -T "" \
57  -o $WORKDIR/quality.$FORMAT $BATCH
58 
59 JPlot1D \
60  -f $WORKDIR/monitor.root:H\.\*rms \
61  -Y \
62  -> "RMS [s]" \
63  -\^ "number of events" \
64  -N "X 505" \
65  -L TR \
66  -T "" \
67  -o $WORKDIR/rms.$FORMAT $BATCH
68 
69 JPlot1D \
70  -f $WORKDIR/monitor.root:H\.\*quantile \
71  -Y \
72  -> "quantile [s]" \
73  -\^ "number of events" \
74  -N "X 505" \
75  -L TR \
76  -T "" \
77  -o $WORKDIR/quantile.$FORMAT $BATCH
78 
79 JPlot1D \
80  -f $WORKDIR/monitor.root:H\.\*overlays \
81  -Y \
82  -> "overlays" \
83  -\^ "number of events" \
84  -L TR \
85  -T "" \
86  -o $WORKDIR/overlays.$FORMAT $BATCH
87 
88 JPlot1D \
89  -f $WORKDIR/monitor.root:H\.\*time \
90  -XX \
91  -Y \
92  -> "#Deltat [s]" \
93  -\^ "number of events" \
94  -L TR \
95  -T "" \
96  -o $WORKDIR/time.$FORMAT $BATCH
97 
98 JPlot1D \
99  -f $WORKDIR/monitor.root:H\.\*multiplicity \
100  -Y \
101  -> "multiplicity" \
102  -\^ "number of hits" \
103  -L TR \
104  -T "" \
105  -o $WORKDIR/multiplicity.$FORMAT $BATCH
106 
107 typeset -A EMITTERS
108 
109 get_tripods+ $WORKDIR/tripod.txt EMITTERS
110 get_transmitters+ $WORKDIR/transmitter.txt EMITTERS
111 
112 for EMITTER in ${(@k)EMITTERS}; do
113 
114  for KEY in event doubles "log10(Q)"; do
115 
116  JPlot2D \
117  -f "$WORKDIR/monitor.root:H\[${EMITTER}\].$KEY" \
118  -> "string" \
119  -< "floor" \
120  -O COLZ \
121  -T "[${EMITTER}].$KEY" \
122  -o $WORKDIR/$KEY\[${EMITTER}\].$FORMAT $BATCH
123  done
124 
125  JPlot2D \
126  -f "$WORKDIR/monitor.root:H\[${EMITTER}\].QR" \
127  -XX \
128  -YY \
129  -Z \
130  -> "distance" \
131  -< "quality" \
132  -O COLZ \
133  -T "[${EMITTER}]" \
134  -o $WORKDIR/QR\[${EMITTER}\].$FORMAT $BATCH
135 done
136 
137 typeset -i NX
138 typeset -i NY
139 
140 let "NY = sqrt(${#EMITTERS})"
141 let "NX = (${#EMITTERS} + $NY - 1)/ $NY"
142 
143 for KEY in event doubles QR "log10(Q"; do
144 
145  montage \
146  -tile ${NX}x${NY} \
147  -geometry +0+0 \
148  $WORKDIR/${KEY}\[*\].$FORMAT \
149  $WORKDIR/${KEY}.$FORMAT >& /dev/null
150 done
151 
152 JPlot2D \
153  -f "$WORKDIR/monitor.root:H\[%\].QR" \
154  -XX \
155  -YY \
156  -Z \
157  -> "distance [m]" \
158  -< "quality" \
159  -O COLZ \
160  -T "" \
161  -o $WORKDIR/QR.2D.$FORMAT $BATCH
162 
163 JProfile2D \
164  -f "$WORKDIR/monitor.root:H\[%\].QR" \
165  -o $WORKDIR/profile.root \
166  -P X \
167  -O s
168 
169 JFit \
170  -f $WORKDIR/profile.root:\.\* \
171  -o $WORKDIR/fit.root \
172  -F "[0] + [1]*x" \
173  -@ "p0 = +6.0" \
174  -@ "p1 = -1.0" \
175  -d 3
176 
177 JPlot1D \
178  -f $WORKDIR/fit.root:\.\* \
179  -XX \
180  -y "3 7" \
181  -> "distance [m]" \
182  -\^ "log(quality)" \
183  -T "" \
184  -o $WORKDIR/QR.1D.$FORMAT $BATCH