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