Jpp  debug
the software that should make you happy
JGraph2D.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to test JGraph2D, JFit2D and JPlot2D.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 
21 source $JPP_DIR/setenv.sh $JPP_DIR
22 
23 zmodload zsh/mathfunc
24 
25 set_variable DEBUG 2
26 set_variable WORKDIR ${TMPDIR:-/tmp}/
27 
28 if do_usage $*; then
29  usage "$script [working directory]"
30 fi
31 
32 case $# in
33  1) set_variable WORKDIR $1;;
34 esac
35 
36 
37 set_variable GRAPH_TXT graph.txt
38 set_variable GRAPH_ROOT graph.root
39 
40 
41 let "TOP = 100.0"
42 let "X0 = 0.0"
43 let "Y0 = 0.0"
44 let "SIGMA = 1.0"
45 
46 function f2()
47 {
48  let "X = $1"
49  let "Y = $2"
50 
51  echo $(( $TOP * exp(-0.5*(($X - $X0)/$SIGMA)**2) * exp(-0.5*(($Y - $Y0)/$SIGMA)**2) ))
52 }
53 
54 rm -f $WORKDIR/$GRAPH_TXT >& /dev/null
55 
56 for (( X = -3.0; $X <= +3.5; X += 1.0 )); do
57  for (( Y = -3.0; $Y <= +3.5; Y += 1.0 )); do
58 
59  let "U = `f2 $X $Y`"
60  let "V = `$JPP_DIR/examples/JMath/getPoisson -e $U`"
61 
62  printf "%7.3f %7.3f %7.3f\n" $X $Y $V >> $WORKDIR/$GRAPH_TXT
63  done
64 done
65 
66 echo "Data points:"
67 cat $WORKDIR/$GRAPH_TXT
68 
69 JGraph2D \
70  -f $WORKDIR/$GRAPH_TXT \
71  -o $WORKDIR/$GRAPH_ROOT
72 
73 set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) * exp(-0.5 * (y-[3])*(y-[3]) / ([4]*[4]))"
74 
75 JFit2D \
76  -f $WORKDIR/${GRAPH_ROOT}:${GRAPH_TXT} \
77  -o $WORKDIR/fit.root \
78  -F "$FORMULA" \
79  -@ "p0 = $TOP;" \
80  -@ "p1 = 0.0;" \
81  -@ "p2 = $SIGMA;" \
82  -@ "p3 = 0.0;" \
83  -@ "p4 = $SIGMA;" \
84  -O LL
85 
86 JPlot2D \
87  -f $WORKDIR/fit.root:${GRAPH_TXT} \
88  -O COLZ \