Jpp  debug
the software that should make you happy
plot-perth.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 
3 if [ -z $JPP_DIR ]; then
4  echo "Variable JPP_DIR undefined."
5  exit
6 fi
7 
8 source $JPP_DIR/setenv.sh $JPP_DIR
9 
10 zmodload zsh/mathfunc
11 
12 set_variable DEBUG 2
13 set_variable WORKDIR ${TMPDIR:-/tmp}/
14 set_variable: PRECISION ACOUSTICS_PRECISION 1.0
15 set_variable: FORMAT GRAPHICS_FORMAT gif
16 set_variable+ BATCH GRAPHICS_BATCH -B
17 
18 if do_usage $*; then
19  usage "$script <input file>"
20 fi
21 
22 if (( $# != 1 )); then
23  fatal "Wrong number of arguments."
24 fi
25 
26 set_variable INPUT_FILE $argv[1]
27 
28 grep "\‍(chi2\[.\]\|gradient\‍)" $INPUT_FILE > $WORKDIR/perth.txt
29 
30 awk 'BEGIN { YMAX = -1.0e10; YMIN = +1.0e10 } \
31  END { printf "%9.5f %9.5f", YMIN, YMAX} \
32  /chi2/ { if ($3 < YMIN) { YMIN = $3}; if ($3 > YMAX) { YMAX = $3 }}' $WORKDIR/perth.txt | read YMIN YMAX
33 
34 let "Y = $YMAX - $YMIN"
35 let "YMAX = floor(($YMAX + 0.1 * ($Y)) / $PRECISION + 1.0) * $PRECISION"
36 let "YMIN = floor(($YMIN - 0.1 * ($Y)) / $PRECISION - 0.0) * $PRECISION"
37 
38 awk '/chi2\[.\]/ { printf "%5d %9.5f\n", NR, $3 }' $WORKDIR/perth.txt > $WORKDIR/g1.txt
39 
40 JGraph \
41  -f $WORKDIR/g1.txt \
42  -o $WORKDIR/g1.root \
43  -T $TITLE
44 
45 awk \
46  -v YMIN=$YMIN \
47  -v YMAX=$YMAX \
48  '/gradient/ { printf "%5d %9.5f %5d %9.5f\n", NR, YMIN, NR, YMAX }' $WORKDIR/perth.txt > $WORKDIR/L1.txt
49 
50 JLine \
51  -p $WORKDIR/L1.txt \
52  -o $WORKDIR/L1.root \
53  -@ "width = 1" \
54  -@ "style = 2"
55 
56 JPlot1D \
57  -w 1200x600 \
58  -f $WORKDIR/g1.root:\.\* \
59  -f $WORKDIR/L1.root:\.\* \
60  -> "step" \
61  -\^ "#chi^{2}" \
62  -y "$YMIN $YMAX" \
63  -N "X 505" \
64  -G Y \
65  -S 0.5 \
66  -T "${${INPUT_FILE:t}:r}" \
67  -o ${${INPUT_FILE:t}:r}.$FORMAT $BATCH
68 
69 rm -f $WORKDIR/g1.root $WORKDIR/L1.root $WORKDIR/perth.txt