Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JMuonPostfit.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong, bofearraigh
4#
5script=${0##*/}
6
7# ------------------------------------------------------------------------------------------
8#
9# Utility script to plot fit results of track reconstruction chain for Monte Carlo data.
10#
11# ------------------------------------------------------------------------------------------
12
13
14if [ -z $JPP_DIR ]; then
15 echo "Variable JPP_DIR undefined."
16 exit
17fi
18
19
20source $JPP_DIR/setenv.sh $JPP_DIR
21
22
23# list of applications in the processing chain
24
25APPLICATIONS=(prefit simplex gandalf energy start)
26
27set_variable: DEBUG RECONSTRUCTION_DEBUG 2
28set_variable: WORKDIR RECONSTRUCTION_WORKDIR ./
29set_variable: NUMBER_OF_EVENTS RECONSTRUCTION_NUMBER_OF_EVENTS $((2**31))
30set_variable: OPTION RECONSTRUCTION_OPTION LOGN
31set_variable: PRIMARY RECONSTRUCTION_PRIMARY muon
32
33set_variable: PALETTE GRAPHICS_PALETTE 57
34set_variable: FORMAT GRAPHICS_FORMAT gif
35set_variable+ BATCH GRAPHICS_BATCH -B
36
37
38if do_usage $*; then
39 usage "$script (input file)+"\
40 "\nThe option can be LINE, LOGE, LINN or LOGN and the primary muon or neutrino,"\
41 "\nwhere E refers to the energy of the primary and N refers to the number of optical modules with a triggered hit."
42fi
43
44if (( $# == 0 )); then
45 fatal "Wrong number of arguments"
46fi
47
48set_array INPUT_FILES ${argv[*]}
49
50
51# Number of prefits as a function of application (0 = all)
52
53typeset -A NUMBER_OF_FIT
54
55NUMBER_OF_FIT=( \
56 prefit 0 \
57 simplex 0 \
58 gandalf 1 \
59 energy 1 \
60 start 1)
61
62
63# Fit application identifier
64
65typeset -A ENUMERATION
66
67ENUMERATION=( \
68 prefit 1 \
69 simplex 2 \
70 gandalf 3 \
71 energy 4 \
72 start 5)
73
74case $OPTION in
75 LINE) set_variable LABEL "E [GeV]";
76 set_variable LOG ;
77 set_variable LOGX ;
78 set_variable LOGY ;
79 set_variable E_E "E_{fit} - E_{#mu} [GeV]";;
80 LOGE) set_variable LABEL "E [GeV]";
81 set_variable LOG -XX;
82 set_variable LOGX -XX;
83 set_variable LOGY -YY;
84 set_variable E_E "log10(E_{fit}/E_{#mu})";;
85 LINN) set_variable LABEL "number of modules";
86 set_variable LOG ;
87 set_variable LOGX -XX;
88 set_variable LOGY -YY;
89 set_variable E_E "log10(E_{fit}/E_{#mu})";;
90 LOGN) set_variable LABEL "number of modules";
91 set_variable LOG -XXX;
92 set_variable LOGX -XX;
93 set_variable LOGY -YY;
94 set_variable E_E "log10(E_{fit}/E_{#mu})";;
95 *) fatal "Invalid option $OPTION"
96esac
97
98
99# user interaction
100
101for APP in $APPLICATIONS[*]; do
102
103 set_variable OUTPUT_FILE ${WORKDIR}/postfit\[${APP}\].root
104
105 if [[ -f $OUTPUT_FILE ]]; then
106 rm -i $OUTPUT_FILE
107 fi
108done
109
110
111# processing
112
113for APP in $APPLICATIONS[*]; do
114
115 set_variable OUTPUT_FILE $WORKDIR/postfit\[${APP}\].root
116
117 if [[ ! -f $OUTPUT_FILE ]]; then
118
119 JMuonPostfit \
120 -f"${INPUT_FILES[*]}" \
121 -o ${OUTPUT_FILE} \
122 -n ${NUMBER_OF_EVENTS} \
123 -N ${NUMBER_OF_FIT[${APP}]} \
124 -A ${ENUMERATION[${APP}]} \
125 -O ${OPTION} \
126 -p ${PRIMARY} \
127 -d ${DEBUG} --!
128 fi
129done
130
131if (( 1 )); then
132
133 JPlot1D \
134 -f $WORKDIR/postfit\[prefit\].root:hx \
135 -f $WORKDIR/postfit\[simplex\].root:hx \
136 -f $WORKDIR/postfit\[gandalf\].root:hx \
137 -> "angle [deg]" \
138 -\^ "number of events [a.u.]" \
139 -XX \
140 -L TR -T "" \
141 -o $WORKDIR/angle.$FORMAT $BATCH
142fi
143
144if (( 1 )); then
145
146 QUANTILES="0.33 0.5 0.66"
147
148 for APP in prefit simplex gandalf; do
149
150 JQuantiles2D \
151 -f $WORKDIR/postfit\[${APP}\].root:h2 \
152 -Q "$QUANTILES" \
153 -o $WORKDIR/quantiles\[${APP}\].root
154 done
155
156 JPlot1D \
157 -f $WORKDIR/quantiles\[prefit\].root:h21 \
158 -f $WORKDIR/quantiles\[simplex\].root:h21 \
159 -f $WORKDIR/quantiles\[gandalf\].root:h21 \
160 -> "$LABEL" $LOG \
161 -\^ "resolution [deg]" \
162 -y "1e-2 1e2" \
163 -Y \
164 -O "][" \
165 -G Y \
166 -L TR -T "" \
167 -o $WORKDIR/resolution.$FORMAT $BATCH
168
169 JPlot1D \
170 -f $WORKDIR/quantiles\[gandalf\].root:h20 \
171 -f $WORKDIR/quantiles\[gandalf\].root:h21 \
172 -f $WORKDIR/quantiles\[gandalf\].root:h22 \
173 -> "$LABEL" $LOG \
174 -\^ "resolution [deg]" \
175 -y "1e-2 1e2" \
176 -Y \
177 -O "][" \
178 -G Y \
179 -T "gandalf" \
180 -o $WORKDIR/gandalf.$FORMAT $BATCH
181fi
182
183if (( 1 )); then
184
185 JPlot1D \
186 -f $WORKDIR/postfit\[energy\].root:E_0 \
187 -f $WORKDIR/postfit\[energy\].root:E_1 \
188 -f $WORKDIR/postfit\[energy\].root:E_2 \
189 -\^ "number of events [a.u.]" \
190 -> "E_{#mu} [GeV]" $LOGX \
191 -T "" \
192 -o $WORKDIR/energy.$FORMAT $BATCH
193fi
194
195if (( 1 )); then
196
197 JConvertToPDF2D \
198 -f $WORKDIR/postfit\[energy\].root:ExE \
199 -O NY \
200 -o $WORKDIR/pdf.root
201
202 JPlot2D \
203 -f $WORKDIR/pdf.root:ExE \
204 -O COLZ -p $PALETTE \
205 -> "E_{#mu} [GeV]" $LOGX \
206 -< "E_{fit} [GeV]" $LOGY \
207 -Z \
208 -T "" \
209 -o $WORKDIR/ee.$FORMAT $BATCH
210
211 rm -f $WORKDIR/pdf.root
212fi
213
214if (( 1 )); then
215
216 JFit \
217 -f $WORKDIR/postfit\[energy\].root:E_E \
218 -o $WORKDIR/fit.root \
219 -F "[0]*exp(-0.5*(x-[1])*(x-[1])/([2]*[2]))" \
220 -@ "p0 = 0.8*GetMaximum" \
221 -@ "p1 = 0.0" \
222 -@ "p2 = 0.5"
223
224 JPlot1D \
225 -f $WORKDIR/fit.root:E_E \
226 -> "$E_E" \
227 -T "" -o $WORKDIR/er.$FORMAT $BATCH
228
229 rm -f $WORKDIR/fit.root
230fi
231
232if (( 1 )); then
233
234 JPlot2D \
235 -f $WORKDIR/postfit\[energy\].root:Va \
236 -O COLZ -p $PALETTE \
237 -> "R^{2} [m^{2}]" \
238 -< "z [m]" \
239 -N "X 505" \
240 -Z -T "" -o $WORKDIR/ha.$FORMAT $BATCH
241fi
242
243
244if (( 1 )); then
245
246 JPlot2D \
247 -f $WORKDIR/postfit\[energy\].root:Vb \
248 -O COLZ -p $PALETTE \
249 -> "R^{2} [m^{2}]" \
250 -< "z [m]" \
251 -N "X 505" \
252 -Z -T "" -o $WORKDIR/hb.$FORMAT $BATCH
253fi
254
255if (( 1 )); then
256
257 JPlot1D \
258 -f $WORKDIR/postfit\[start\].root:hz0 \
259 -f $WORKDIR/postfit\[start\].root:hz1 \
260 -> "#Deltaz [m]" \
261 -\^ "number of events [a.u.]" \
262 -L TR -T "" \
263 -o $WORKDIR/z.$FORMAT $BATCH
264fi
265