Jpp  19.1.0
the software that should make you happy
detector-XY:fit1d.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 if [ -z $JPP_DIR ]; then
5  echo "Variable JPP_DIR undefined."
6  exit
7 fi
8 
9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
10 
11 set_variable: DEBUG ACOUSTICS_DEBUG 2
12 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
13 set_variable FORMULA "[0] + [1] * log(1.0 + 0.5*(x-[2])*(x-[2])/([3]*[3]))"
14 set_variable: FORMAT GRAPHICS_FORMAT gif
15 set_variable+ BATCH GRAPHICS_BATCH -B
16 
17 if do_usage $*; then
18  usage "$script <string identifier>"
19 fi
20 
21 if (( $# != 1 )); then
22  fatal "Wrong number of arguments."
23 fi
24 
25 set_variable STRING $argv[1]
26 
27 set_variable DETECTORXY_TXT $WORKDIR/detectorxy_${STRING}.txt
28 
29 sort -gr -k 4,4 $DETECTORXY_TXT | tail -1 | read X Y CHI2 RMS
30 
31 printf "optimum %7.3f %7.3f %7.3f %7.3f\n" $X $Y $CHI2 $RMS
32 
33 awk -v Y=$Y '{ if ( $2 == Y ) { printf "%7.3f %7.3f %7.3f\n", $1, $3, $4 } }' $DETECTORXY_TXT >! $WORKDIR/detectorx_${STRING}.txt
34 awk -v X=$X '{ if ( $1 == X ) { printf "%7.3f %7.3f %7.3f\n", $2, $3, $4 } }' $DETECTORXY_TXT >! $WORKDIR/detectory_${STRING}.txt
35 
36 for var in x y; do
37 
38  set_variable DETECTOR_TXT $WORKDIR/detector${var}_${STRING}.txt
39  set_variable DETECTOR_ROOT $WORKDIR/detector${var}_${STRING}.root
40 
41  JGraph \
42  -f $DETECTOR_TXT \
43  -o $DETECTOR_ROOT
44 
45  sort -gr -k 2,2 $DETECTOR_TXT | tail -1 | read X Z RMS
46 
47  let "XMIN = $X - 0.5"
48  let "XMAX = $X + 0.5"
49 
50  JFit \
51  -f ${DETECTOR_ROOT}:\.\* \
52  -o $WORKDIR/fit.root \
53  -F "$FORMULA" \
54  -x "$XMIN $XMAX" \
55  -@ "p0 = $Z" \
56  -@ "p1 = 2.0" \
57  -@ "p2 = $X" \
58  -@ "p3 = 0.5" \
59  -d $DEBUG
60 
61  mv $WORKDIR/fit.root $DETECTOR_ROOT
62 
63  JPlot1D \
64  -f ${DETECTOR_ROOT}:\.\* \
65  -> "#Delta${var} [m]" \
66  -\^ "#chi^{2}/NDF" \
67  -N "X 505" \
68  -T "[${(l:4::0::0:)STRING}].${var}" \
69  -o $WORKDIR/detector${var}_${(l:4::0::0:)STRING}.$FORMAT $BATCH
70 
71  rm -f $DETECTOR_ROOT
72 
73 done