4 if [ -z $JPP_DIR ]; then
5 echo "Variable JPP_DIR undefined."
9 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: XMIN HYDROPHONE_XMIN -1.0e-3
16 set_variable: XMAX HYDROPHONE_XMAX +1.0e-3
17 set_variable: FORMAT GRAPHICS_FORMAT gif
18 set_variable+ BATCH GRAPHICS_BATCH -B
21 usage "$script <detector file> <string identifier> [<detector file>]"
24 if (( $# == 0 || $# > 3 )); then
25 fatal "Wrong number of arguments."
28 set_variable DETECTOR $argv[1]
29 set_variable STRING $argv[2]
30 set_array QUANTILES 0.333 0.666
31 set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2]))"
32 set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"`
34 source JAcousticsToolkit.sh
38 get_tripods $WORKDIR/tripod.txt TRIPODS
44 for TRIPOD in ${(k)TRIPODS[*]}; do
47 -f "hydrophone.root:${MODULE}.${TRIPOD}" \
51 if (( ${#RESULT} == ${#QUANTILES} )); then
53 P1=$((0.5*($RESULT[-1] + $RESULT[1]))) # average
54 P2=$((0.5*($RESULT[-1] - $RESULT[1]))) # width
57 -f "hydrophone.root:${MODULE}.${TRIPOD}" \
58 -o ${TMPDIR:-/tmp}/fit.root \
60 -@"p0 = GetMaximum * 0.8" \
65 JPrintFit -f ${TMPDIR:-/tmp}/fit.root:\.\* -@p1 | read -A P1
66 JPrintFit -f ${TMPDIR:-/tmp}/fit.root:\.\* -@p2 | read -A P2
68 VALUE=$((1.0e+6 * $P1[1])) # [us]
69 TOTAL=$(($TOTAL + 1.0))
71 if (( $TOTAL == 1.0 )); then
75 XMEAN[2]=$(($XMEAN[1] + ($VALUE - $XMEAN[1]) / $TOTAL))
76 STDEV[2]=$(($STDEV[1] + ($VALUE - $XMEAN[1]) * ($VALUE - $XMEAN[2])))
81 printf "string %4d tripod %2d %5.0f %3.0f us\n" $STRING $TRIPOD $(($P1[1] * 1.0e6)) $(($P2[1] * 1.0e6))
85 if (( $TOTAL > 1.0 )); then
86 printf "string %4d mean RMS %5.0f %3.0f us\n" $STRING $XMEAN[1] $((sqrt($TOTAL * $STDEV[1] / ($TOTAL * ($TOTAL - 1.0)))))
92 -f hydrophone.root:$MODULE \
93 -o ${TMPDIR:-/tmp}/H\[${STRING}\].root \
97 -f ${TMPDIR:-/tmp}/H\[${STRING}\].root:Add \
101 P1=$((0.5*($RESULT[-1] + $RESULT[1]))) # average
102 P2=$((0.5*($RESULT[-1] - $RESULT[1]))) # width
105 -f ${TMPDIR:-/tmp}/H\[${STRING}\].root:Add \
106 -o ${TMPDIR:-/tmp}/F\[${STRING}\].root \
108 -@"p0 = GetMaximum * 0.8" \
113 JPrintFit -f ${TMPDIR:-/tmp}/F\[${STRING}\].root:Add -@p1 | read -A P1
114 JPrintFit -f ${TMPDIR:-/tmp}/F\[${STRING}\].root:Add -@p2 | read -A P2
116 printf "string %4d t0 %6.0f +/- %6.0f us\n" $STRING $(($P1[1] * 1.0e6)) $(($P1[2] * 1.0e6))
117 printf "string %4d sigma %6.0f +/- %6.0f us\n" $STRING $(($P2[1] * 1.0e6)) $(($P2[2] * 1.0e6))
119 if (( ${#} == 3 )); then
121 set_variable DETECTOR $argv[3]
123 set_array P1 `JPrintFit -f ${TMPDIR:-/tmp}/F\[${STRING}\].root:Add -@p1`
125 let "TIME_OFFSET_NS = $P1[1] * 1.0e9"
127 printf "Add time offset %12.6d to hydrophone.\n" $TIME_OFFSET_NS
132 -M "$MODULE SUB $TIME_OFFSET_NS" \
137 -f ${TMPDIR:-/tmp}/F\[${STRING}\].root:Add \
140 -\^ "number of events [a.u.]" \
143 -o hydrophonet0_${STRING}.$FORMAT $BATCH