Jpp
JORCAReconstruction.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author bofearraigh, jhofestaedt
4 #
5 
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Script to run the JPP Track Reconstruction Chain for ORCA.
11 #
12 # ------------------------------------------------------------------------------------------
13 if [ -z $JPP_DIR ]; then
14  echo "Variable JPP_DIR undefined."
15  exit
16 fi
17 source $JPP_DIR/setenv.sh $JPP_DIR
18 
19 set_variable DEBUG 2
20 set_variable DETECTOR km3net_reference.detx
21 set_variable INPUT_FILE inputfile.root
22 set_variable OUTPUT_FILE outputfile.%.root
23 set_variable PDF $JPP_DATA/J%p.dat
24 set_variable SUF ${JORCAREC_SUF:-jchain.orca}
25 
26 if ( do_usage $* ); then
27  usage "$script <detector file> <input file> <output file> [PDF file descriptor]"
28 fi
29 
30 case $# in
31  4) set_variable PDF $4;&
32  3) set_variable OUTPUT_FILE $3;
33  set_variable INPUT_FILE $2;
34  set_variable DETECTOR $1;;
35  *) fatal "Wrong number of arguments.";;
36 esac
37 
38 print_variable DETECTOR INPUT_FILE OUTPUT_FILE PDF
39 check_input_file $DETECTOR $INPUT_FILE
40 check_output_file $OUTPUT_FILE
41 
42 # default input values JPrefit
43 set_variable PREFIT_GRID_DEG 5
44 set_variable PREFIT_TMAX_NS 12
45 set_variable PREFIT_ROADWIDTH_M 50
46 set_variable PREFIT_SIGMA_NS 5
47 set_variable PREFIT_OUTLIERS 2
48 set_variable PREFIT_NUMBER_OF_PREFITS 36
49 
50 timer_start
51 
52 JPrefit \
53  -a $DETECTOR \
54  -f $INPUT_FILE \
55  -o ${OUTPUT_FILE/\%/jprefit} \
56  -g $PREFIT_GRID_DEG \
57  -T $PREFIT_TMAX_NS \
58  -R $PREFIT_ROADWIDTH_M \
59  -U \
60  -S $PREFIT_SIGMA_NS \
61  -O $PREFIT_OUTLIERS \
62  -N $PREFIT_NUMBER_OF_PREFITS \
63  -d $DEBUG --!
64 
65 timer_stop
66 timer_print
67 
68 # default input values for JSimplex
69 set_variable SIMPLEX_SIGMA_NS 3.0
70 set_variable SIMPLEX_TMAX_NS 15
71 set_variable SIMPLEX_ROADWIDTH_M 50
72 set_variable SIMPLEX_NUMBER_OF_PREFITS 36
73 
74 timer_start
75 
76 JSimplex \
77  -a $DETECTOR \
78  -f ${OUTPUT_FILE/\%/jprefit} \
79  -o ${OUTPUT_FILE/\%/jsimplex} \
80  -T $SIMPLEX_TMAX_NS \
81  -R $SIMPLEX_ROADWIDTH_M \
82  -U \
83  -S $SIMPLEX_SIGMA_NS \
84  -N $SIMPLEX_NUMBER_OF_PREFITS \
85  -d ${DEBUG} --!
86 
87 timer_stop
88 timer_print
89 
90 # default input values for JStart (first)
91 set_variable START_ROADWIDTH_M 50
92 set_variable START_TIMEWINDOW_NS -25.0 25.0
93 set_variable START_START 1e-3 1e-2
94 set_variable R_HZ 7e3 570 57 7 0.8 0.09
95 set_variable START_NUMBER_OF_PREFITS 0
96 
97 timer_start
98 
99 JStart \
100  -a $DETECTOR \
101  -f ${OUTPUT_FILE/\%/jsimplex} \
102  -o ${OUTPUT_FILE/\%/jstart} \
103  -P $PDF \
104  -R $START_ROADWIDTH_M \
105  -T "$START_TIMEWINDOW_NS" \
106  -s "$START_START" \
107  -B "$R_HZ" \
108  -N $START_NUMBER_OF_PREFITS \
109  -d $DEBUG --!
110 
111 timer_stop
112 timer_print
113 
114 # default input values for JGandalf
115 set_variable GANDALF_TTS_NS 2.0
116 set_variable GANDALF_E_GEV 10.0
117 set_variable GANDALF_R_HZ 10e3
118 set_variable GANDALF_ROADWIDTH_M 50
119 set_variable GANDALF_ZRANGE_M -3 9
120 set_variable GANDALF_NUMBER_OF_PREFITS 18
121 
122 timer_start
123 
124 JGandalf \
125  -a $DETECTOR \
126  -f ${OUTPUT_FILE/\%/jstart} \
127  -o ${OUTPUT_FILE/\%/jgandalf} \
128  -P $PDF \
129  -B $GANDALF_R_HZ \
130  -T $GANDALF_TTS_NS \
131  -R $GANDALF_ROADWIDTH_M \
132  -E $GANDALF_E_GEV \
133  -z "$GANDALF_ZRANGE_M" \
134  -N $GANDALF_NUMBER_OF_PREFITS \
135  -d $DEBUG --!
136 
137 timer_stop
138 timer_print
139 
140 # default input values for JStart (second)
141 set_variable START2_NUMBER_OF_PREFITS 1
142 #
143 timer_start
144 
145 JStart \
146  -a $DETECTOR \
147  -f ${OUTPUT_FILE/\%/jgandalf} \
148  -o ${OUTPUT_FILE/\%/jstart2} \
149  -P $PDF \
150  -T "$START_TIMEWINDOW_NS" \
151  -R $START_ROADWIDTH_M \
152  -s "$START_START" \
153  -B "$R_HZ" \
154  -N $START2_NUMBER_OF_PREFITS \
155  -d $DEBUG --!
156 
157 timer_stop
158 timer_print
159 
160 # default input values for JEnergy
161 set_variable ENERGY_ROADWIDTH_M 50
162 set_variable ENERGY_TIMEWINDOW_NS -25.0 +25.0
163 set_variable ENERGY_START 1e-3 1e-2
164 set_variable ENERGY_LOGE_WINDOW 0 5
165 set_variable ENERGY_NUMBER_OF_PREFITS 1
166 
167 # choice of M-Estimator
168 set_variable NONE 3 # Preferred for ORCA
169 
170 timer_start
171 
172 JEnergy \
173  -a $DETECTOR \
174  -f ${OUTPUT_FILE/\%/jstart2} \
175  -o ${OUTPUT_FILE/\%/jenergy} \
176  -P $PDF \
177  -B "$R_HZ" \
178  -T "$ENERGY_TIMEWINDOW_NS" \
179  -x "$ENERGY_LOGE_WINDOW" \
180  -R $ENERGY_ROADWIDTH_M \
181  -s "$ENERGY_START" \
182  -M $NONE \
183  -N $ENERGY_NUMBER_OF_PREFITS \
184  -d $DEBUG --!
185 
186 timer_stop
187 timer_print
188 
189 # rename outputfile and remove intermediate files
190 
191 timer_start
192 
193 mv \
194  ${OUTPUT_FILE/\%/jenergy} \
195  ${OUTPUT_FILE/\%/${SUF}} \
196  -v
197 
198 rm \
199  ${OUTPUT_FILE/\%/jprefit} \
200  ${OUTPUT_FILE/\%/jsimplex} \
201  ${OUTPUT_FILE/\%/jgandalf} \
202  ${OUTPUT_FILE/\%/jstart} \
203  ${OUTPUT_FILE/\%/jstart2} \
204  -v
205 
206 timer_stop
207 timer_print
208 
209 # convert to aanet format
210 
211 timer_start
212 
213 JConvertEvt \
214  -f ${OUTPUT_FILE/\%/${SUF}} \
215  -o ${OUTPUT_FILE/\%/${SUF}.aanet} \
216  -d $DEBUG --!
217 
218 timer_stop
219 timer_print