4if [ -z $JPP_DIR ]; then
5 echo "Variable JPP_DIR undefined."
9source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
14set_variable WORKDIR ${TMPDIR:-/tmp}/
15set_variable OPTION chi2
16set_variable: PRECISION RECONSTRUCTION_PRECISION 0.1
17set_variable: PALETTE GRAPHICS_PALETTE 57
18set_variable: FORMAT GRAPHICS_FORMAT gif
19set_variable+ BATCH GRAPHICS_BATCH -B
22 usage "$script <input file> [option]"\
23 "\nThe input file corresponds to the log file of JGradient."\
24 "\nThe option can be \"chi2\" or \"likelihood\"."
28 2) set_variable OPTION $2;&
29 1) set_variable INPUT_FILE $1;;
30 *) fatal "Wrong number of arguments."
37FACTOR[likelihood]=-1.0
40LABEL[likelihood]="likelihood"
42if [[ "$FACTOR[$OPTION]" == "" ]]; then
43 fatal "Invalid option $OPTION."
48grep "\(chi2\[.\]\|gradient\)" $INPUT_FILE > $WORKDIR/gradient.txt
52 awk -v UFO=$FACTOR[$OPTION] '/chi2\[.\]/ { printf "%5d %9.5f\n", NR, (UFO * $3) }' $WORKDIR/gradient.txt > $WORKDIR/g1.txt
53 awk -v UFO=$FACTOR[$OPTION] '/gradient/ { printf "%5d %9.5f\n", NR, (1.0 * $2) }' $WORKDIR/gradient.txt > $WORKDIR/g2.txt
61 BEGIN { XMIN = +1.0e10; XMAX = -1.0e10; YMIN = +1.0e10; YMAX = -1.0e10 } \
62 END { printf "%9.5f %9.5f %9.5f %9.5f", XMIN, XMAX, YMIN, YMAX } \
64 if ($1 < XMIN) { XMIN = $1 }; \
65 if ($1 > XMAX) { XMAX = $1 }; \
66 if ($2 < YMIN) { YMIN = $2 }; \
67 if ($2 > YMAX) { YMAX = $2 }; \
68 }' $WORKDIR/g1.txt | read XMIN XMAX YMIN YMAX
73 let "Y = $YMAX - $YMIN"
74 let "YMAX = floor(($YMAX + 0.1 * ($Y)) / $PRECISION + 1.0) * $PRECISION"
75 let "YMIN = floor(($YMIN - 0.1 * ($Y)) / $PRECISION - 0.0) * $PRECISION"
80 '/gradient/ { printf "%5d %9.5f %5d %9.5f\n", NR, YMIN, NR, YMAX }' $WORKDIR/gradient.txt > $WORKDIR/L1.txt
90 -f $WORKDIR/g1.root:\.\* \
91 -f $WORKDIR/L1.root:\.\* \
93 -\^ "$LABEL[$OPTION]" \
99 -T "${${INPUT_FILE:t}:r}" \
100 -o $OPTION.$FORMAT $BATCH
104 -o $WORKDIR/g2.root \
107 awk 'BEGIN { YMAX = -1.0e10; YMIN = +1.0e10 } END { printf "%9.5f %9.5f", YMIN, YMAX} { if ($2 < YMIN) { YMIN = $2 }; if ($2 > YMAX) { YMAX = $2 }}' $WORKDIR/g2.txt | read YMIN YMAX
109 let "Y = $YMAX - $YMIN"
110 let "YMAX = floor(($YMAX + 0.1 * ($Y)) / $PRECISION + 1.0) * $PRECISION"
112 if (( $YMIN > 0.0 )); then
118 -f $WORKDIR/g2.root:\.\* \
126 -T "${${INPUT_FILE:t}:r}" \
127 -o gradient.$FORMAT $BATCH
129 rm -f $WORKDIR/gradient.txt $WORKDIR/{g1,g2,L1}.{txt,root}
136COLS=(`sed -n 's/scan://p' $INPUT_FILE`)
138if (( ${#COLS} != 0 )); then
142 awk 'BEGIN { ZMIN = 1.0e10 } END { printf "%9.5f", ZMIN } /scan:/,EOF { if ($NF < ZMIN) { ZMIN= $NF } }' $INPUT_FILE | read ZMIN
147 # \param 1 first column
148 # \param 2 second column
163 for (i = 1; i != NF; ++i) { \
164 if (i != C1 && i != C2 && $i != 0.0) { \
171 /scan:/,EOF { if (ufo()) { printf "%9.5f %9.5f %9.5f\n", $C1, $C2, $NF - ZMIN } }' $INPUT_FILE > g2.txt
182 -\^ "#Delta#chi^{2}" \
187 -o $COLS[$1]-$COLS[$2].gif
194 for (( C1 = 1; $C1 != ${#COLS}; C1 += 1 )); do
195 for (( C2 = 1; $C2 != $C1; C2 += 1 )); do