6if [ -z $JPP_DIR ]; then
7 echo "Variable JPP_DIR undefined."
11source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
15set_variable: DEBUG ACOUSTICS_DEBUG 2
16set_variable: WORKDIR ACOUSTICS_WORKDIR ./
17set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2]))"
18set_variable NUMBER_OF_ENTRIES 100
19set_variable TMIN_MS -1.0
20set_variable TMAX_MS +1.0
21set_variable RANGE 0-18
22set_variable: FORMAT GRAPHICS_FORMAT gif
23set_variable+ BATCH GRAPHICS_BATCH -B
26 usage "$script <detector file> <input file> [<lower floor>-<upper floor>]"\
27 "\nInput file corresponds to the output of JKatoomba[.sh]."
31 3) set_variable RANGE $argv[3];&
32 2) set_variable DETECTOR $argv[1];
33 set_variable INPUT_FILE $argv[2];;
34 *) fatal "Wrong number of arguments."
37eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
38eval `JPrintDetector -a $DETECTOR -O SUMMARY`
40set_variable FIRST_FLOOR ${RANGE%%-*}
41set_variable LAST_FLOOR ${RANGE##*-}
43JAcoustics.sh $DETECTOR_ID
45JCanberra.sh $DETECTOR $INPUT_FILE $WORKDIR/canberra\[%\].root
47source JAcousticsToolkit.sh
56get_tripods+ $WORKDIR/tripod.txt EMITTERS
57get_transmitters+ $WORKDIR/transmitter.txt EMITTERS
61for 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
75 for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
77 eval MODULE=\${STRING_${(l:4::0::0:)STRING}\[$(($FLOOR))\]:--1}
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
118 HISTOGRAMS+=(${STRING_ROOT})
122 -f${^HISTOGRAMS}":.*" \
125 -y "$TMIN_MS $TMAX_MS" \
131 -o $WORKDIR/string_${STRING}.$FORMAT $BATCH
133 echo " -> $WORKDIR/string_${STRING}.$FORMAT"
143for EMITTER in ${(@k)EMITTERS}; do
144 HISTOGRAMS+=("$WORKDIR/canberra[${EMITTER}].root")
148 -f${^HISTOGRAMS}":.*toa" \
150 -o $WORKDIR/sum.root >& /dev/null
152set_array Q `JPrintQuantiles -f $WORKDIR/sum.root:\.\* -Q "0.33 0.50 0.66"`
155 -f $WORKDIR/sum.root:\.\* \
157 -@ "p0 = GetMaximum" \
159 -@ "p2 = 0.5*($Q[3] - $Q[1])" \
160 -o $WORKDIR/fit.root \
163let "XMIN = $TMIN_MS * 1.0e-3"
164let "XMAX = $TMAX_MS * 1.0e-3"
167 -f $WORKDIR/fit.root:\.\* \
173 -o $WORKDIR/canberra.$FORMAT $BATCH
175rm -f $WORKDIR/sum.root $WORKDIR/fit.root
176rm -f $WORKDIR/p1.{txt,root}
177rm -f $WORKDIR/p2.{txt,root}
179for STRING in $STRINGS[*]; do
180 for EMITTER in ${(@k)EMITTERS}; do
182 set_variable STRING_TXT
184 awk '{ print $2 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p1.txt
185 awk '{ print $3 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p2.txt
189$JPP_DIR/examples/JGizmo/JHistogram1D \
190 -x "200 $TMIN_MS $TMAX_MS" \
194$JPP_DIR/examples/JGizmo/JHistogram1D \
201X_LABEL[p1]="#Deltat [ms]"
202X_LABEL[p2]="#sigma [ms]"
207 -f $WORKDIR/${P}.root:\.\* \
208 -> "$X_LABEL[${P}]" \
209 -\^ "number of modules" \
213 -o $WORKDIR/${P}.$FORMAT $BATCH
216rm -f $WORKDIR/p1.{txt,root}
217rm -f $WORKDIR/p2.{txt,root}