Jpp 20.0.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
examples/JReconstruction/JORCAMuonReconstruction.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author bofearraigh
4#
5script=${0##*/}
6
7# ------------------------------------------------------------------------------------------
8#
9# Script to run the JPP Track Reconstruction Chain for ORCA.
10#
11# ------------------------------------------------------------------------------------------
12
13if [ -z $JPP_DIR ]; then
14 echo "Variable JPP_DIR undefined."
15 exit
16fi
17
18source $JPP_DIR/setenv.sh $JPP_DIR
19
20
21source reconstruction.sh
22
23set_variable: DEBUG RECONSTRUCTION_DEBUG 1
24set_variable: PDF RECONSTRUCTION_PDF $JPP_DATA/J%p.dat
25set_variable: SUFFIX RECONSTRUCTION_SUFFIX jmuon
26set_variable: NUMBER_OF_EVENTS RECONSTRUCTION_NUMBER_OF_EVENTS $((2**31))
27set_variable: NUMBER_OF_THREADS RECONSTRUCTION_NUMBER_OF_THREADS 0
28set_variable+ OVERWRITE RECONSTRUCTION_OVERWRITE 1
29set_variable: TMAX_S RECONSTRUCTION_TMAX_S 100
30set_variable: RATE_HZ RECONSTRUCTION_RATE_HZ 7.0e3
31
32if do_usage $*; then
33 usage "$script <detector file> <input file> <output file> <PMT parameters file> [(calibration file)+]"
34fi
35
36if (( $# < 4 )); then
37 fatal "Wrong number of arguments."
38fi
39
40set_variable DETECTOR $argv[1]
41set_variable INPUT_FILE $argv[2]
42set_variable OUTPUT_FILE $argv[3]
43set_variable PMT $argv[4]
44set_array CALIBRATION $argv[5,-1]
45
46if [[ ! "$OUTPUT_FILE" == *"%"* ]]; then
47 fatal "The output file must have the wildcard % in the name, e.g. %.root"
48fi
49
50typeset -A PARAMETERS
51typeset -a APPLICATIONS
52
53APPLICATIONS=()
54
55
56if [[ "$OVERWRITE" == 1 ]]; then
57 rm -vf \
58 ${OUTPUT_FILE/\%/jprefit} \
59 ${OUTPUT_FILE/\%/jsimplex} \
60 ${OUTPUT_FILE/\%/jstart} \
61 ${OUTPUT_FILE/\%/jgandalf} \
62 ${OUTPUT_FILE/\%/jstart2} \
63 ${OUTPUT_FILE/\%/jenergy} \
64 ${OUTPUT_FILE/\%/jhistory} \
65 ${OUTPUT_FILE/\%/${SUFFIX}} \
66 ${OUTPUT_FILE/\%/${SUFFIX}.offline}
67fi
68
69
70if (( ${#CALIBRATION} != 0 )); then
71 getMechanics.sh $DETECTOR
72fi
73
74
75# ------------------------------------------------------------------------------------------
76# JMuonPrefit
77# ------------------------------------------------------------------------------------------
78
79PARAMETERS=(
80 sigma_ns 5.0
81 gridAngle_deg 4.0
82 useL0 1
83 numberOfOutliers 2
84 numberOfPrefits 60
85 numberOfPostfits 20
86 TMaxLocal_ns 12.0
87 ctMin 0.0
88 roadWidth_m 50.0
89 Qwatershed 1.5)
90
91timer_start
92
93eval JMuonPrefit \
94 -a $DETECTOR \
95 -+${^CALIBRATION} \
96 -T $TMAX_S \
97 -f $INPUT_FILE \
98 -o ${OUTPUT_FILE/\%/jprefit} \
99 -n ${NUMBER_OF_EVENTS} \
100 -N ${NUMBER_OF_THREADS} \
101 -@ `make_equation PARAMETERS` \
102 -d $DEBUG --!
103
104CHECK_EXIT_CODE
105
106APPLICATIONS+=$JMUONPREFIT
107
108timer_stop
109timer_print
110
111
112# ------------------------------------------------------------------------------------------
113# JMuonSimplex
114# ------------------------------------------------------------------------------------------
115
116PARAMETERS=(
117 sigma_ns 3.0
118 TMaxLocal_ns 15.0
119 ctMin 0.0
120 roadWidth_m 50.0
121 numberOfPrefits 0)
122
123timer_start
124
125eval JMuonSimplex \
126 -a $DETECTOR \
127 -+${^CALIBRATION} \
128 -T $TMAX_S \
129 -f ${OUTPUT_FILE/\%/jprefit} \
130 -o ${OUTPUT_FILE/\%/jsimplex} \
131 -N ${NUMBER_OF_THREADS} \
132 -@ `make_equation PARAMETERS` \
133 -d $DEBUG --!
134
135CHECK_EXIT_CODE
136
137rm -vf ${OUTPUT_FILE/\%/jprefit}
138
139APPLICATIONS+=$JMUONSIMPLEX
140
141timer_stop
142timer_print
143
144
145# ------------------------------------------------------------------------------------------
146# JMuonStart
147# ------------------------------------------------------------------------------------------
148
149PARAMETERS=(
150 roadWidth_m 50.0
151 R_Hz $RATE_HZ
152 TMin_ns -25.0
153 TMax_ns +25.0
154 Pmin 1.0e-8
155 Pmin1 1.0e-3
156 Pmin2 1.0e-2
157 numberOfPrefits 0)
158
159timer_start
160
161eval JMuonStart \
162 -a $DETECTOR \
163 -+${^CALIBRATION} \
164 -T $TMAX_S \
165 -f ${OUTPUT_FILE/\%/jsimplex} \
166 -o ${OUTPUT_FILE/\%/jstart} \
167 -F $PDF \
168 -N ${NUMBER_OF_THREADS} \
169 -@ `make_equation PARAMETERS` \
170 -d $DEBUG --!
171
172CHECK_EXIT_CODE
173
174rm -vf ${OUTPUT_FILE/\%/jsimplex}
175
176APPLICATIONS+=$JMUONSTART
177
178timer_stop
179timer_print
180
181
182# ------------------------------------------------------------------------------------------
183# JMuonGandalf
184# ------------------------------------------------------------------------------------------
185
186PARAMETERS=(
187 TTS_ns 1.0
188 E_GeV 10.0
189 TMin_ns -50.0
190 TMax_ns +450.0
191 ZMin_m -3.0
192 ZMax_m +9.0
193 R_Hz $RATE_HZ
194 roadWidth_m 50.0
195 cosLR 0.7
196 numberOfPrefits 0)
197
198timer_start
199
200eval JMuonGandalf \
201 -a $DETECTOR \
202 -+${^CALIBRATION} \
203 -T $TMAX_S \
204 -f ${OUTPUT_FILE/\%/jstart} \
205 -o ${OUTPUT_FILE/\%/jgandalf} \
206 -F $PDF \
207 -N ${NUMBER_OF_THREADS} \
208 -@ `make_equation PARAMETERS` \
209 -d $DEBUG --!
210
211CHECK_EXIT_CODE
212
213rm -vf ${OUTPUT_FILE/\%/jstart}
214
215APPLICATIONS+=$JMUONGANDALF
216
217timer_stop
218timer_print
219
220
221# ------------------------------------------------------------------------------------------
222# JMuonStart
223# ------------------------------------------------------------------------------------------
224
225PARAMETERS=(
226 roadWidth_m 50.0
227 R_Hz $RATE_HZ
228 TMin_ns -25.0
229 TMax_ns +25.0
230 Pmin1 1.0e-3
231 Pmin2 1.0e-2
232 numberOfPrefits 1
233 numberOfPostfits 0)
234
235timer_start
236
237eval JMuonStart \
238 -a $DETECTOR \
239 -+${^CALIBRATION} \
240 -T $TMAX_S \
241 -f ${OUTPUT_FILE/\%/jgandalf} \
242 -o ${OUTPUT_FILE/\%/jstart2} \
243 -F $PDF \
244 -N ${NUMBER_OF_THREADS} \
245 -@ `make_equation PARAMETERS` \
246 -d $DEBUG --!
247
248CHECK_EXIT_CODE
249
250rm -vf ${OUTPUT_FILE/\%/jgandalf}
251
252APPLICATIONS+=$JMUONSTART
253
254timer_stop
255timer_print
256
257
258# ------------------------------------------------------------------------------------------
259# JMuonEnergy
260# ------------------------------------------------------------------------------------------
261
262PARAMETERS=(
263 roadWidth_m 80.0
264 R_Hz $RATE_HZ
265 EMin_log 0.0
266 EMax_log 7.0
267 TMin_ns -25.0
268 TMax_ns +25.0
269 ZMin_m -7.5
270 resolution 0.01
271 mestimator 3
272 numberOfPrefits 0)
273
274timer_start
275
276eval JMuonEnergy \
277 -a $DETECTOR \
278 -+${^CALIBRATION} \
279 -T $TMAX_S \
280 -f ${OUTPUT_FILE/\%/jstart2} \
281 -o ${OUTPUT_FILE/\%/jenergy} \
282 -F $PDF \
283 -@ `make_equation PARAMETERS` \
284 -P $PMT \
285 -N ${NUMBER_OF_THREADS} \
286 -d $DEBUG --!
287
288CHECK_EXIT_CODE
289
290rm -vf ${OUTPUT_FILE/\%/jstart2}
291
292APPLICATIONS+=JMUONENERGY
293
294timer_stop
295timer_print
296
297
298# ------------------------------------------------------------------------------------------
299# JHistory
300# ------------------------------------------------------------------------------------------
301
302timer_start
303
304JHistory \
305 -f ${OUTPUT_FILE/\%/jenergy} \
306 -o ${OUTPUT_FILE/\%/jhistory} \
307 -A "$APPLICATIONS[*]" \
308 -d $DEBUG --!
309
310CHECK_EXIT_CODE
311
312rm -vf ${OUTPUT_FILE/\%/jenergy}
313
314timer_stop
315timer_print
316
317
318# ------------------------------------------------------------------------------------------
319# rename outputfile and remove intermediate files
320# ------------------------------------------------------------------------------------------
321
322timer_start
323
324mv -v \
325 ${OUTPUT_FILE/\%/jhistory} \
326 ${OUTPUT_FILE/\%/${SUFFIX}}
327
328timer_stop
329timer_print
330
331
332# ------------------------------------------------------------------------------------------
333# JConvertEvt
334# ------------------------------------------------------------------------------------------
335
336timer_start
337
338JConvertEvt \
339 -f ${OUTPUT_FILE/\%/${SUFFIX}} \
340 -o ${OUTPUT_FILE/\%/${SUFFIX}.offline} \
341 -a $DETECTOR \
342 -+${^CALIBRATION} \
343 -T $TMAX_S \
344 -P $PMT \
345 -d $DEBUG --!
346
347timer_stop
348timer_print