Jpp 20.0.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JMorphologyH1.sh
Go to the documentation of this file.
1#!/bin/env zsh
2script=${0##*/}
3
4if [ -z $JPP_DIR ]; then
5 echo "Variable JPP_DIR undefined."
6 exit
7fi
8
9source $JPP_DIR/setenv.sh $JPP_DIR
10
11zmodload zsh/mathfunc
12
13set_variable DIR $JPP_DIR/examples/JAstronomy
14set_variable DEBUG 2
15set_variable LOCATION_DEG -45.0 +90.0
16set_variable NUMBER_OF_EVENTS 100000
17set_variable: FORMAT GRAPHICS_FORMAT gif
18set_variable+ BATCH GRAPHICS_BATCH -B
19
20if do_usage $*; then
21 usage "$script"
22fi
23
24UTC=(2025-01-01T00:00:00Z 2035-01-01T00:00:00Z)
25
26MORPHOLOGY_DEG=0.5
27RESOLUTION_DEG=0.2
28
29
30set_variable F1 "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2]))"
31set_variable F2 "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) * exp(-0.5 * (y-[3])*(y-[3]) / ([4]*[4]))"
32
33$JPP_DIR/examples/JGizmo/JHistogram1D \
34 -o resolution.root \
35 -T "user" \
36 -F "$F1" \
37 -@ "p0 = 1.0; p1 = 0.0; p2 = $RESOLUTION_DEG" \
38 -x "300 0.0 +1.5" \
39 -d $DEBUG
40
41$DIR/JMorphology \
42 -o source.histogram.root \
43 -U "$UTC[*]" \
44 -n $NUMBER_OF_EVENTS \
45 -r "Histogram resolution.root user" \
46 -M "Gauss $LOCATION_DEG $MORPHOLOGY_DEG" \
47 -d $DEBUG --!
48
49JFit2D \
50 -f source.histogram.root:h2 \
51 -o fit.root \
52 -F "$F2" \
53 -@ "p0 = GetMaximum" \
54 -@ "p1 = GetMean(1)" \
55 -@ "p2 = 0.7*GetRMS(1)" \
56 -@ "p3 = GetMean(2)" \
57 -@ "p4 = 0.7*GetRMS(2)" \
58 -O L \
59 -d $DEBUG >& /dev/null
60
61SIGMA_X=($(JPrintFit -f fit.root:h2 -@ p2))
62SIGMA_Y=($(JPrintFit -f fit.root:h2 -@ p4))
63
64printf "morphology %6.3f [deg] resolution %6.3f [deg] => %6.3f [deg]\n" $MORPHOLOGY_DEG $RESOLUTION_DEG $((sqrt($MORPHOLOGY_DEG*$MORPHOLOGY_DEG + $RESOLUTION_DEG*$RESOLUTION_DEG)/sqrt(2.0)))
65printf "fit X-sigma = %6.3f [deg]\n" $SIGMA_X[1]
66printf "fit Y-sigma = %6.3f [deg]\n" $SIGMA_Y[1]
67
68rm -f {resolution,histogram,fit}.root >& /dev/null
69
70JPlot2D \
71 -f source.histogram.root:h2 \
72 -> "#DeltaRA [deg]" \
73 -< "#DeltaDEC [deg]" \
74 -G XY \
75 -O COLZ \
76 -N "X 505" \
77 -N "Y 505" \
78 -T "" \
79 -o source.histogram.$FORMAT $BATCH
80
81
82set_variable F1 "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2]))"
83set_variable F2 "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) * exp(-0.5 * (y-[3])*(y-[3]) / ([4]*[4]))"
84
85$JPP_DIR/examples/JGizmo/JHistogram1D \
86 -o resolution.root \
87 -T "user" \
88 -F "$F1" \
89 -@ "p0 = 1.0; p1 = 0.0; p2 = $RESOLUTION_DEG" \
90 -n 100000 \
91 -x "300 -3.0 +2.0" \
92 -X \
93 -d $DEBUG
94
95JPlot1D \
96 -f resolution.root:user \
97 -XX \
98 -> "angle [deg]" \
99 -O HIST \
100 -T "resolution" \
101 -o resolution.$FORMAT $BATCH
102
103$DIR/JMorphology \
104 -o source.histogram.root \
105 -U "$UTC[*]" \
106 -n $NUMBER_OF_EVENTS \
107 -r "Logarithmic resolution.root user" \
108 -M "Gauss $LOCATION_DEG $MORPHOLOGY_DEG" \
109 -d $DEBUG --!
110
111JFit2D \
112 -f source.histogram.root:h2 \
113 -o fit.root \
114 -F "$F2" \
115 -@ "p0 = GetMaximum" \
116 -@ "p1 = GetMean(1)" \
117 -@ "p2 = 0.7*GetRMS(1)" \
118 -@ "p3 = GetMean(2)" \
119 -@ "p4 = 0.7*GetRMS(2)" \
120 -O L \
121 -d $DEBUG >& /dev/null
122
123SIGMA_X=($(JPrintFit -f fit.root:h2 -@ p2))
124SIGMA_Y=($(JPrintFit -f fit.root:h2 -@ p4))
125
126printf "morphology %6.3f [deg] resolution %6.3f [deg] => %6.3f [deg]\n" $MORPHOLOGY_DEG $RESOLUTION_DEG $((sqrt($MORPHOLOGY_DEG*$MORPHOLOGY_DEG + $RESOLUTION_DEG*$RESOLUTION_DEG)/sqrt(2.0)))
127printf "fit X-sigma = %6.3f [deg]\n" $SIGMA_X[1]
128printf "fit Y-sigma = %6.3f [deg]\n" $SIGMA_Y[1]
129
130rm -f {resolution,histogram,fit}.root >& /dev/null
131
132JPlot2D \
133 -f source.histogram.root:h2 \
134 -> "#DeltaRA [deg]" \
135 -< "#DeltaDEC [deg]" \
136 -G XY \
137 -O COLZ \
138 -N "X 505" \
139 -N "Y 505" \
140 -T "" \
141 -o source.histogram.$FORMAT $BATCH