4if [ -z $JPP_DIR ]; then
5 echo "Variable JPP_DIR undefined."
9source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
12set_variable WORKDIR `pwd`
13set_variable FREQUENCY_HZ $((25.0e6 / 128))
14set_variable: FORMAT GRAPHICS_FORMAT gif
15set_variable+ BATCH GRAPHICS_BATCH -B
18 usage "$script <archive> (<detector identifier>)+"\
19 "\nAuxiliary script to plot frequency spectra of waveforms for given detector identifier(s)."
23 fatal "Wrong number of arguments."
26set_variable ARCHIVE $argv[1]
28DETECTORS=($argv[2,-1])
30source JAcousticsToolkit.sh >& /dev/null
32set_variable FORMULA "sin([0] + 2*$PI * ([1] + [2]*x) * x)"
35for DETECTOR in $DETECTORS[*]; do
37 if [[ $DETECTOR == [0-9][0-9]* ]]; then
38 set_variable ID $DETECTOR
39 set_variable DETECTOR `getDetector -D $ID`
41 set_variable ID `getDetector -D $DETECTOR`
44 rm -f waveform.txt >& /dev/null
46 getFile.sh $ARCHIVE $ID 1 waveform waveform
52 get_waveforms $WORKDIR/waveform.txt WAVEFORMS
54 for KEY VALUE in ${(kv)WAVEFORMS}; do
56 if (( $KEY > 0 && $VALUE > 0 )); then
59 --load-cookies=$HOME/.km3netdb_cookie \
60 --secure-protocol=TLSv1_2 \
61 "https://km3netdbweb.in2p3.fr/xmlds/acwavfrm/s?waveformid=${KEY}" \
62 -O $WORKDIR/wv.xml >& /dev/null
64 xmllint $WORKDIR/wv.xml |\
65 awk '/<Description>/,/<\/Description>/ { print gensub("<[^>]*>", "", "g", $0) }' | read DESCRIPTION
67 xmllint $WORKDIR/wv.xml |\
68 awk '/<EncodedSamples>/,/<\/EncodedSamples>/ { print gensub("<[^>]*>", "", "g", $0) }' |\
69 tail -n +2 > $WORKDIR/wv.txt
75 -B $((1.0e+3 / $FREQUENCY_HZ))
79 -o $WORKDIR/${DETECTOR}\[${VALUE}\].fft.root
82 -f $WORKDIR/${DETECTOR}\[${VALUE}\].fft.root:\.\* \
83 -Q "0.3 0.7" | read -A RESULT
85 printf "%s %2d %7.3f %7.3f [kHz] \"%s\"\n" $DETECTOR $VALUE $((0.5 * ($RESULT[1] + $RESULT[2]))) $(($RESULT[2] - $RESULT[1])) $DESCRIPTION
87 Y=(`cat $WORKDIR/wv.txt`)
89 rm -f $WORKDIR/graph.txt
91 for (( i = 1; $i <= ${#Y}; ++i )); do
93 X=$((($i - 1) / $FREQUENCY_HZ))
95 echo $X $Y[$i] $DY >> $WORKDIR/graph.txt
99 -f $WORKDIR/graph.txt \
100 -o $WORKDIR/graph.root
102 # refine start values
105 -f $WORKDIR/graph.root:\.\* \
106 -o $WORKDIR/fit\[${KEY}\].root \
110 -@ "p1 = $((1.0e3 * $RESULT[1]));" \
114 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p0 | read -A P0
115 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p1 | read -A P1
116 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p2 | read -A P2
119 -f $WORKDIR/graph.root:\.\* \
120 -o $WORKDIR/fit\[${KEY}\].root \
128 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p0 | read -A P0
129 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p1 | read -A P1
130 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p2 | read -A P2
133 -f $WORKDIR/graph.root:\.\* \
134 -o $WORKDIR/fit\[${KEY}\].root \
141 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p0 | read -A P0
142 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p1 | read -A P1
143 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -@ p2 | read -A P2
144 JPrintFit -f $WORKDIR/fit\[${KEY}\].root:\.\* -F "GetChisquare/GetNDF" | read CHI2
146 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.]" \
155 -T "$DETECTOR ($ID) $KEY/$VALUE" \
156 -o ${DETECTOR}.${KEY}.$FORMAT $BATCH
160 INPUT_FILES=(`ls $WORKDIR/${DETECTOR}\[*\].fft.root`)
163 -f${^INPUT_FILES}:\.\* \
165 -> "frequency [kHz]" \
169 -T "$DETECTOR ($ID)" \
170 -o ${DETECTOR}.$FORMAT $BATCH