Jpp  19.1.0
the software that should make you happy
JGizmo/JHistogram2D.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 JHistogram2D, 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 
24 set_variable DEBUG 2
25 set_variable WORKDIR ${TMPDIR:-/tmp}/
26 
27 if do_usage $*; then
28  usage "$script [working directory]"
29 fi
30 
31 case $# in
32  1) set_variable WORKDIR $1;;
33 esac
34 
35 
36 if (( 1 )); then
37 
38  set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) * exp(-0.5 * (y-[1])*(y-[1]) / ([2]*[2]))"
39 
40  $JPP_DIR/examples/JGizmo/JHistogram2D \
41  -o $WORKDIR/histogram.root \
42  -F "$FORMULA" \
43  -@ "p0 = 1.0; p1 = 0.0; p2 = 2.0" \
44  -x "100 -10 +10" \
45  -y "100 -10 +10" \
46  -n 100000
47 
48  JPrintMaximum2D -f $WORKDIR/histogram.root:h0
49 
50  JFit2D \
51  -f $WORKDIR/histogram.root:h0 \
52  -o $WORKDIR/fit.root \
53  -F "$FORMULA" \
54  -@ "p0 = GetMaximum" \
55  -@ "p1 = GetMean" \
56  -@ "p2 = GetRMS" \
57  -d $DEBUG
58 
59  echo -n "chi2/NDF: "
60  JPrintFit \
61  -f $WORKDIR/fit.root:h0 \
62  -F "GetChisquare/GetNDF"
63 
64  JPlot2D \
65  -f $WORKDIR/fit.root:h0 \
66  -O COLZ
67 
68 fi
69 
70 
71 if (( 1 )); then
72 
73  set_variable FORMULA "[0] * pow(10,[1]*x)"
74 
75  $JPP_DIR/examples/JGizmo/JHistogram2D \
76  -o $WORKDIR/histogram.root \
77  -F "$FORMULA" \
78  -@ "p0 = 1.0; p1 = -2" \
79  -x "100 0 7" \
80  -y "100 -1 +1" \
81  -n 10000000
82 
83 
84  JFit2D \
85  -f $WORKDIR/histogram.root:h0 \
86  -o $WORKDIR/fit.root \
87  -F "$FORMULA" \
88  -@ "p0 = GetMaximum" \
89  -@ "p1 = -2" \
90  -d3
91 
92  echo -n "chi2/NDF: "
93  JPrintFit \
94  -f $WORKDIR/fit.root:h0 \
95  -F "GetChisquare/GetNDF"
96 
97  JPlot2D \
98  -f $WORKDIR/fit.root:h0 \
99  -z "1e-1 1e5" \
100  -XXZ \
101  -O COLZ
102 
103 fi
104 
105 
106 if (( 1 )); then
107 
108  set_variable FORMULA "[0] * pow(10,[1]*y)"
109 
110  $JPP_DIR/examples/JGizmo/JHistogram2D \
111  -o $WORKDIR/histogram.root \
112  -F "$FORMULA" \
113  -@ "p0 = 1.0; p1 = -2" \
114  -x "100 -1 +1" \
115  -y "100 0 7" \
116  -n 10000000
117 
118 
119  JFit2D \
120  -f $WORKDIR/histogram.root:h0 \
121  -o $WORKDIR/fit.root \
122  -F "$FORMULA" \
123  -@ "p0 = GetMaximum" \
124  -@ "p1 = -2" \
125  -d3
126 
127  echo -n "chi2/NDF: "
128  JPrintFit \
129  -f $WORKDIR/fit.root:h0 \
130  -F "GetChisquare/GetNDF"
131 
132  JPlot2D \
133  -f $WORKDIR/fit.root:h0 \
134  -z "1e-1 1e5" \
135  -YYZ \
136  -O COLZ
137 
138 fi