4if [ -z $JPP_DIR ]; then
 
    5    echo "Variable JPP_DIR undefined."
 
    9source $JPP_DIR/setenv.sh $JPP_DIR  >&  /dev/null
 
   12set_variable   WORKDIR              ${TMPDIR:-/tmp}/.$$
 
   13set_variable   FREQUENCY_HZ         $((25.0e6 / 128))
 
   14set_variable:  FORMAT      GRAPHICS_FORMAT        gif
 
   15set_variable+  BATCH       GRAPHICS_BATCH         -B
 
   18    usage "$script (<detector identifier>)+"\
 
   19          "\nAuxiliary script to plot frequency spectra of waveforms for given detector identifier(s)."
 
   23    fatal "Wrong number of arguments."
 
   26source JAcousticsToolkit.sh         >&  /dev/null
 
   28set_array      DETECTORS            $argv[1,-1]
 
   29set_variable   ACOUSTICS_WORKDIR    $WORKDIR
 
   30set_variable   FORMULA              "sin([0] + 2*$PI * ([1] + [2]*x) * x)"
 
   36for 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