4 if [ -z $JPP_DIR ]; then
5 echo "Variable JPP_DIR undefined."
9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
12 set_variable WORKDIR ${TMPDIR:-/tmp}/.$$
13 set_variable FREQUENCY_HZ $((25.0e6 / 128))
14 set_variable: FORMAT GRAPHICS_FORMAT gif
15 set_variable+ BATCH GRAPHICS_BATCH -B
18 usage "$script (<detector identifier>)+"\
19 "\nAuxiliary script to plot frequency spectra of waveforms for given detector identifier(s)."
22 if (( $# == 0 )); then
23 fatal "Wrong number of arguments."
26 source JAcousticsToolkit.sh >& /dev/null
28 set_array DETECTORS $argv[1,-1]
29 set_variable ACOUSTICS_WORKDIR $WORKDIR
30 set_variable FORMULA "sin([0] + 2*$PI * ([1] + [2]*x) * x)"
31 set_variable DY 1.0e-8
36 for DETECTOR in $DETECTORS[*]; do
38 (rm -f $WORKDIR/*.txt) >& /dev/null
40 if [[ $DETECTOR == [0-9][0-9]* ]]; then
41 set_variable ID $DETECTOR
42 set_variable DETECTOR `getDetector -D $ID`
44 set_variable ID `getDetector -D $DETECTOR`
47 JAcoustics.sh $ID >& /dev/null
53 get_waveforms $WORKDIR/waveform.txt WAVEFORMS
55 for KEY VALUE in ${(kv)WAVEFORMS}; do
57 if (( $KEY > 0 && $VALUE > 0 )); then
60 --load-cookies=$HOME/.km3netdb_cookie \
61 --secure-protocol=TLSv1_2 \
62 "https://km3netdbweb.in2p3.fr/xmlds/acwavfrm/s?waveformid=${KEY}" \
63 -O $WORKDIR/wv.xml >& /dev/null
65 xmllint $WORKDIR/wv.xml |\
66 awk '/<Description>/,/<\/Description>/ { print gensub("<[^>]*>", "", "g", $0) }' | read DESCRIPTION
68 xmllint $WORKDIR/wv.xml |\
69 awk '/<EncodedSamples>/,/<\/EncodedSamples>/ { print gensub("<[^>]*>", "", "g", $0) }' |\
70 tail -n +2 > $WORKDIR/wv.txt
76 -B $((1.0e+3 / $FREQUENCY_HZ))
80 -o $WORKDIR/${DETECTOR}\[${VALUE}\].fft.root
83 -f $WORKDIR/${DETECTOR}\[${VALUE}\].fft.root:\.\* \
84 -Q "0.3 0.7" | read -A RESULT
86 printf "%s %2d %7.3f %7.3f [kHz] \"%s\"\n" $DETECTOR $VALUE $((0.5 * ($RESULT[1] + $RESULT[2]))) $(($RESULT[2] - $RESULT[1])) $DESCRIPTION
88 Y=(`cat $WORKDIR/wv.txt`)
90 rm -f $WORKDIR/graph.txt
92 for (( i = 1; $i <= ${#Y}; ++i )); do
94 X=$((($i - 1) / $FREQUENCY_HZ))
96 echo $X $Y[$i] $DY >> $WORKDIR/graph.txt
100 -f $WORKDIR/graph.txt \
101 -o $WORKDIR/graph.root
103 # refine start values
106 -f $WORKDIR/graph.root:\.\* \
107 -o $WORKDIR/fit\[${KEY}\].root \
111 -@ "p1 = $((1.0e3 * $RESULT[1]));" \
115 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p0 | read -A P0
116 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p1 | read -A P1
117 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p2 | read -A P2
120 -f $WORKDIR/graph.root:\.\* \
121 -o $WORKDIR/fit\[${KEY}\].root \
129 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p0 | read -A P0
130 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p1 | read -A P1
131 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p2 | read -A P2
134 -f $WORKDIR/graph.root:\.\* \
135 -o $WORKDIR/fit\[${KEY}\].root \
142 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p0 | read -A P0
143 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p1 | read -A P1
144 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p2 | read -A P2
145 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -F "GetChisquare/GetNDF" | read CHI2
147 printf "%s %2d %7.3f [kHz] %9.3f [kHz/s] %12.3e\n" $DETECTOR $KEY $((1.0e-3 * $P1[1])) $((1.0e-3 * $P2[1])) $CHI2
151 -f $WORKDIR/fit\[${KEY}\].root:\.\* \
153 -\^ "amplitude [a.u.]" \
156 -T "$DETECTOR ($ID)" \
157 -o ${DETECTOR}.${KEY}.$FORMAT $BATCH
161 INPUT_FILES=(`ls $WORKDIR/${DETECTOR}\[*\].fft.root`)
164 -f${^INPUT_FILES}:\.\* \
166 -> "frequency [kHz]" \
170 -T "$DETECTOR ($ID)" \
171 -o ${DETECTOR}.$FORMAT $BATCH