6 if [ -z $JPP_DIR ]; then
7 echo "Variable JPP_DIR undefined."
11 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
13 set_variable: DEBUG ACOUSTICS_DEBUG 2
14 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
15 set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2]))"
16 set_variable NUMBER_OF_ENTRIES 100
17 set_variable TMIN_MS -1.0
18 set_variable TMAX_MS +1.0
19 set_variable RANGE 0-18
20 set_variable: FORMAT GRAPHICS_FORMAT gif
21 set_variable+ BATCH GRAPHICS_BATCH -B
24 usage "$script <detector file> <input file> [<lower floor>-<upper floor>]"\
25 "\nInput file corresponds to the output of JKatoomba[.sh]."
29 3) set_variable RANGE $argv[3];&
30 2) set_variable DETECTOR $argv[1];
31 set_variable INPUT_FILE $argv[2];;
32 *) fatal "Wrong number of arguments."
35 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
36 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
38 set_variable FIRST_FLOOR ${RANGE%%-*}
39 set_variable LAST_FLOOR ${RANGE##*-}
41 JAcoustics.sh $DETECTOR_ID
43 JCanberra.sh $DETECTOR $INPUT_FILE $WORKDIR/canberra\[%\].root
45 source JAcousticsToolkit.sh
54 get_tripods+ $WORKDIR/tripod.txt EMITTERS
55 get_transmitters+ $WORKDIR/transmitter.txt EMITTERS
57 kill_child_processes_at_exit
59 attach getModule -a $DETECTOR
61 for STRING in $STRINGS[*]; do
63 echo -n "Creating graphics for string $STRING.."
67 for EMITTER in ${(@k)EMITTERS}; do
69 set_variable STRING_TXT $WORKDIR/string_${STRING}\[${EMITTER}\].txt
70 set_variable STRING_ROOT $WORKDIR/string_${STRING}\[${EMITTER}\].root
74 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
79 set_variable N `JPrintResult -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} -F GetEntries`
81 if [[ -n "$N" ]] && (( $N >= $NUMBER_OF_ENTRIES )); then
83 set_array Q `JPrintQuantiles -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} -Q "0.33 0.50 0.66"`
85 let "XMIN = $Q[2] - 5.0*($Q[3] - $Q[1])"
86 let "XMAX = $Q[2] + 5.0*($Q[3] - $Q[1])"
89 -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} \
91 -@ "p0 = GetMaximum" \
93 -@ "p2 = 0.5*($Q[3] - $Q[1])" \
96 -o $WORKDIR/fit.root \
99 if ( `JPrintFit -f $WORKDIR/fit.root:\.\* -@p0 >& /dev/null` ); then
101 set_array P1 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p1`
102 set_array P2 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p2`
104 ((P1[1] = $P1[1] * 1.0e3)) # [ms]
105 ((P2[1] = abs($P2[1]) * 1.0e3)) # [ms]
107 printf "%2d %9.6f %9.6f\n" $FLOOR $P1[1] $P2[1] >> $STRING_TXT
110 rm -f $WORKDIR/fit.root
120 HISTOGRAMS+=(${STRING_ROOT})
124 -f${^HISTOGRAMS}":.*" \
127 -y "$TMIN_MS $TMAX_MS" \
133 -o $WORKDIR/string_${STRING}.$FORMAT $BATCH
135 echo " -> $WORKDIR/string_${STRING}.$FORMAT"
146 for EMITTER in ${(@k)EMITTERS}; do
147 HISTOGRAMS+=("$WORKDIR/canberra[${EMITTER}].root")
151 -f${^HISTOGRAMS}":.*toa" \
153 -o $WORKDIR/sum.root >& /dev/null
155 set_array Q `JPrintQuantiles -f $WORKDIR/sum.root:\.\* -Q "0.33 0.50 0.66"`
158 -f $WORKDIR/sum.root:\.\* \
160 -@ "p0 = GetMaximum" \
162 -@ "p2 = 0.5*($Q[3] - $Q[1])" \
163 -o $WORKDIR/fit.root \
166 let "XMIN = $TMIN_MS * 1.0e-3"
167 let "XMAX = $TMAX_MS * 1.0e-3"
170 -f $WORKDIR/fit.root:\.\* \
176 -o $WORKDIR/canberra.$FORMAT $BATCH
178 rm -f $WORKDIR/sum.root $WORKDIR/fit.root
179 rm -f $WORKDIR/p1.{txt,root}
180 rm -f $WORKDIR/p2.{txt,root}
182 for STRING in $STRINGS[*]; do
183 for EMITTER in ${(@k)EMITTERS}; do
185 set_variable STRING_TXT
187 awk '{ print $2 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p1.txt
188 awk '{ print $3 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p2.txt
192 $JPP_DIR/examples/JGizmo/JHistogram1D \
193 -x "200 $TMIN_MS $TMAX_MS" \
197 $JPP_DIR/examples/JGizmo/JHistogram1D \
204 X_LABEL[p1]="#Deltat [ms]"
205 X_LABEL[p2]="#sigma [ms]"
210 -f $WORKDIR/${P}.root:\.\* \
211 -> "$X_LABEL[${P}]" \
212 -\^ "number of modules" \
216 -o $WORKDIR/${P}.$FORMAT $BATCH
219 rm -f $WORKDIR/p1.{txt,root}
220 rm -f $WORKDIR/p2.{txt,root}