Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JAcousticsMonitor.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
11zmodload zsh/mathfunc
12
13set_variable: DEBUG ACOUSTICS_DEBUG 2
14set_variable: WORKDIR ACOUSTICS_WORKDIR ./
15set_variable: FORMAT GRAPHICS_FORMAT gif
16set_variable+ BATCH GRAPHICS_BATCH -B
17
18if do_usage $*; then
19 usage "$script <detector file> (input file)+"\
20 "\nInput files correspond to the output of JAcousticsEventBuilder[.sh]."
21fi
22
23if (( $# >= 2 )); then
24 set_variable DETECTOR $argv[1]
25 set_array INPUT_FILES $argv[2,-1]
26else
27 fatal "Wrong number of arguments."
28fi
29
30source 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
40JPlot1D \
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
49JPlot1D \
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
59JPlot1D \
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
69JPlot1D \
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
79JPlot1D \
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
88JPlot1D \
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
98JPlot1D \
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
107typeset -A EMITTERS
108
109get_tripods+ $WORKDIR/tripod.txt EMITTERS
110get_transmitters+ $WORKDIR/transmitter.txt EMITTERS
111
112for 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
135done
136
137typeset -i NX
138typeset -i NY
139
140let "NY = sqrt(${#EMITTERS})"
141let "NX = (${#EMITTERS} + $NY - 1)/ $NY"
142
143for 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
150done
151
152JPlot2D \
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
163JProfile2D \
164 -f "$WORKDIR/monitor.root:H\[%\].QR" \
165 -o $WORKDIR/profile.root \
166 -P X \
167 -O s
168
169JFit \
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
177JPlot1D \
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