Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JARCAMuonReconstruction.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 ARCA.
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
19source $JPP_DIR/externals/km3net-dataformat/definitions/reconstruction.sh
20
21set_variable: DEBUG RECONSTRUCTION_DEBUG 1
22set_variable: PDF RECONSTRUCTION_PDF $JPP_DATA/J%p.dat
23set_variable: SUFFIX RECONSTRUCTION_SUFFIX jmuon
24set_variable: ENERGY_CORRECTION RECONSTRUCTION_ENERGY_CORRECTION energy_correction_arca.txt
25set_variable: NUMBER_OF_EVENTS RECONSTRUCTION_NUMBER_OF_EVENTS $((2**31))
26set_variable: NUMBER_OF_THREADS RECONSTRUCTION_NUMBER_OF_THREADS 0
27set_variable+ OVERWRITE RECONSTRUCTION_OVERWRITE 1
28set_variable: TMAX_S RECONSTRUCTION_TMAX_S 100
29set_variable: RATE_HZ RECONSTRUCTION_RATE_HZ 6.0e3
30
31if do_usage $*; then
32 usage "$script <detector file> <input file> <output file> <PMT parameters file> [(calibration file)+]"
33fi
34
35if (( $# < 4 )); then
36 fatal "Wrong number of arguments."
37fi
38
39set_variable DETECTOR $argv[1]
40set_variable INPUT_FILE $argv[2]
41set_variable OUTPUT_FILE $argv[3]
42set_variable PMT $argv[4]
43set_array CALIBRATION $argv[5,-1]
44
45if [[ ! "$OUTPUT_FILE" == *"%"* ]]; then
46 fatal "The output file must have the wildcard % in the name, e.g. %.root"
47fi
48
49typeset -A PARAMETERS
50typeset -a APPLICATIONS
51
52APPLICATIONS=()
53
54
55if [[ "$OVERWRITE" == 1 ]]; then
56 rm -vf \
57 ${OUTPUT_FILE/\%/jprefit} \
58 ${OUTPUT_FILE/\%/jsimplex} \
59 ${OUTPUT_FILE/\%/jgandalf} \
60 ${OUTPUT_FILE/\%/jstart} \
61 ${OUTPUT_FILE/\%/jenergy} \
62 ${OUTPUT_FILE/\%/jhistory} \
63 ${OUTPUT_FILE/\%/${SUFFIX}} \
64 ${OUTPUT_FILE/\%/${SUFFIX}.offline}
65fi
66
67if (( ${#CALIBRATION} != 0 )); then
68 getMechanics.sh $DETECTOR
69fi
70
71
72# ------------------------------------------------------------------------------------------
73# JMuonPrefit
74# ------------------------------------------------------------------------------------------
75
76PARAMETERS=(
77 sigma_ns 5
78 gridAngle_deg 1
79 useL0 0
80 numberOfOutliers 3
81 numberOfPrefits 50
82 DZMax 0.0
83 numberOfDZMax 1
84 TMaxLocal_ns 18
85 ctMin 0.0
86 roadWidth_m 200.0)
87
88timer_start
89
90eval JMuonPrefit \
91 -a $DETECTOR \
92 -+${^CALIBRATION} \
93 -T $TMAX_S \
94 -f $INPUT_FILE \
95 -o ${OUTPUT_FILE/\%/jprefit} \
96 -n ${NUMBER_OF_EVENTS} \
97 -N ${NUMBER_OF_THREADS} \
98 -@ `make_equation PARAMETERS` \
99 -d $DEBUG --!
100
101CHECK_EXIT_CODE
102
103APPLICATIONS+=$JMUONPREFIT
104
105timer_stop
106timer_print
107
108
109# ------------------------------------------------------------------------------------------
110# JMuonSimplex
111# ------------------------------------------------------------------------------------------
112
113PARAMETERS=(
114 sigma_ns 3
115 TMaxLocal_ns 15.0
116 ctMin 0.0
117 roadWidth_m 200.0
118 numberOfPrefits 0)
119
120timer_start
121
122eval JMuonSimplex \
123 -a $DETECTOR \
124 -+${^CALIBRATION} \
125 -T $TMAX_S \
126 -f ${OUTPUT_FILE/\%/jprefit} \
127 -o ${OUTPUT_FILE/\%/jsimplex} \
128 -N ${NUMBER_OF_THREADS} \
129 -@ `make_equation PARAMETERS` \
130 -d $DEBUG --!
131
132CHECK_EXIT_CODE
133
134rm -vf ${OUTPUT_FILE/\%/jprefit}
135
136APPLICATIONS+=$JMUONSIMPLEX
137
138timer_stop
139timer_print
140
141
142# ------------------------------------------------------------------------------------------
143# JMuonGandalf
144# ------------------------------------------------------------------------------------------
145
146PARAMETERS=(
147 TTS_ns 2
148 E_GeV 1.0e3
149 TMin_ns -50.0
150 TMax_ns +450.0
151 R_Hz $RATE_HZ
152 roadWidth_m 175.0
153 numberOfPrefits 0)
154
155timer_start
156
157eval JMuonGandalf \
158 -a $DETECTOR \
159 -+${^CALIBRATION} \
160 -T $TMAX_S \
161 -f ${OUTPUT_FILE/\%/jsimplex} \
162 -o ${OUTPUT_FILE/\%/jgandalf} \
163 -P $PDF \
164 -N ${NUMBER_OF_THREADS} \
165 -@ `make_equation PARAMETERS` \
166 -d $DEBUG --!
167
168CHECK_EXIT_CODE
169
170rm -vf ${OUTPUT_FILE/\%/jsimplex}
171
172APPLICATIONS+=$JMUONGANDALF
173
174timer_stop
175timer_print
176
177
178# ------------------------------------------------------------------------------------------
179# JMuonStart
180# ------------------------------------------------------------------------------------------
181
182PARAMETERS=(
183 roadWidth_m 160.0
184 R_Hz $RATE_HZ
185 TMin_ns -25.0
186 TMax_ns +75.0
187 Pmin1 1.0e-3
188 Pmin2 1.0e-2
189 numberOfPrefits 1)
190
191timer_start
192
193eval JMuonStart \
194 -a $DETECTOR \
195 -+${^CALIBRATION} \
196 -T $TMAX_S \
197 -f ${OUTPUT_FILE/\%/jgandalf} \
198 -o ${OUTPUT_FILE/\%/jstart} \
199 -P $PDF \
200 -N ${NUMBER_OF_THREADS} \
201 -@ `make_equation PARAMETERS` \
202 -d $DEBUG --!
203
204CHECK_EXIT_CODE
205
206rm -vf ${OUTPUT_FILE/\%/jgandalf}
207
208APPLICATIONS+=$JMUONSTART
209
210timer_stop
211timer_print
212
213
214# ------------------------------------------------------------------------------------------
215# JMuonEnergy
216# ------------------------------------------------------------------------------------------
217
218PARAMETERS=(
219 roadWidth_m 300.0
220 R_Hz $RATE_HZ
221 EMin_log 0.0
222 EMax_log 8.0
223 TMin_ns -50.0
224 TMax_ns +450.0
225 mestimator 1
226 numberOfPrefits 1)
227
228timer_start
229
230eval JMuonEnergy \
231 -a $DETECTOR \
232 -+${^CALIBRATION} \
233 -T $TMAX_S \
234 -f ${OUTPUT_FILE/\%/jstart} \
235 -o ${OUTPUT_FILE/\%/jenergy} \
236 -P $PDF \
237 -E $ENERGY_CORRECTION \
238 -@ `make_equation PARAMETERS` \
239 -N ${NUMBER_OF_THREADS} \
240 -d $DEBUG --!
241
242CHECK_EXIT_CODE
243
244rm -vf ${OUTPUT_FILE/\%/jstart}
245
246APPLICATIONS+=$JMUONENERGY
247
248timer_stop
249timer_print
250
251
252# ------------------------------------------------------------------------------------------
253# JHistory
254# ------------------------------------------------------------------------------------------
255
256timer_start
257
258JHistory \
259 -f ${OUTPUT_FILE/\%/jenergy} \
260 -o ${OUTPUT_FILE/\%/jhistory} \
261 -A "$APPLICATIONS[*]" \
262 -d $DEBUG --!
263
264CHECK_EXIT_CODE
265
266rm -vf ${OUTPUT_FILE/\%/jenergy}
267
268timer_stop
269timer_print
270
271
272# ------------------------------------------------------------------------------------------
273# rename outputfile and remove intermediate files
274# ------------------------------------------------------------------------------------------
275
276timer_start
277
278mv -v \
279 ${OUTPUT_FILE/\%/jhistory} \
280 ${OUTPUT_FILE/\%/${SUFFIX}}
281
282timer_stop
283timer_print
284
285
286# ------------------------------------------------------------------------------------------
287# JConvertEvt
288# ------------------------------------------------------------------------------------------
289
290timer_start
291
292JConvertEvt \
293 -f ${OUTPUT_FILE/\%/${SUFFIX}} \
294 -o ${OUTPUT_FILE/\%/${SUFFIX}.offline} \
295 -a $DETECTOR \
296 -+${^CALIBRATION} \
297 -T $TMAX_S \
298 -P $PMT \
299 -d $DEBUG --!
300
301timer_stop
302timer_print