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 if [[ ! "$OUTPUT_FILE" == *"%"* ]]; then
43  echo "Script won't work. The output file must have the wildcard % in the name, e.g. outputfile.%.root"
44  exit
45 fi
46 
47 # default input values JPrefit
48 set_variable PREFIT_GRID_DEG 5
49 set_variable PREFIT_TMAX_NS 12
50 set_variable PREFIT_ROADWIDTH_M 50
51 set_variable PREFIT_SIGMA_NS 5
52 set_variable PREFIT_OUTLIERS 2
53 set_variable PREFIT_NUMBER_OF_PREFITS 36
54 
55 timer_start
56 
57 JPrefit \
58  -a $DETECTOR \
59  -f $INPUT_FILE \
60  -o ${OUTPUT_FILE/\%/jprefit} \
61  -g $PREFIT_GRID_DEG \
62  -T $PREFIT_TMAX_NS \
63  -R $PREFIT_ROADWIDTH_M \
64  -U \
65  -S $PREFIT_SIGMA_NS \
66  -O $PREFIT_OUTLIERS \
67  -N $PREFIT_NUMBER_OF_PREFITS \
68  -d $DEBUG --!
69 
70 CHECK_EXIT_CODE
71 
72 timer_stop
73 timer_print
74 
75 # default input values for JSimplex
76 set_variable SIMPLEX_SIGMA_NS 3.0
77 set_variable SIMPLEX_TMAX_NS 15
78 set_variable SIMPLEX_ROADWIDTH_M 50
79 set_variable SIMPLEX_NUMBER_OF_PREFITS 36
80 
81 timer_start
82 
83 JSimplex \
84  -a $DETECTOR \
85  -f ${OUTPUT_FILE/\%/jprefit} \
86  -o ${OUTPUT_FILE/\%/jsimplex} \
87  -T $SIMPLEX_TMAX_NS \
88  -R $SIMPLEX_ROADWIDTH_M \
89  -U \
90  -S $SIMPLEX_SIGMA_NS \
91  -N $SIMPLEX_NUMBER_OF_PREFITS \
92  -d ${DEBUG} --!
93 
94 CHECK_EXIT_CODE
95 
96 timer_stop
97 timer_print
98 
99 # default input values for JStart (first)
100 set_variable START_ROADWIDTH_M 50
101 set_variable START_TIMEWINDOW_NS -25.0 25.0
102 set_variable START_START 1e-3 1e-2
103 set_variable R_HZ 7e3 570 57 7 0.8 0.09
104 set_variable START_NUMBER_OF_PREFITS 0
105 
106 timer_start
107 
108 JStart \
109  -a $DETECTOR \
110  -f ${OUTPUT_FILE/\%/jsimplex} \
111  -o ${OUTPUT_FILE/\%/jstart} \
112  -P $PDF \
113  -R $START_ROADWIDTH_M \
114  -T "$START_TIMEWINDOW_NS" \
115  -s "$START_START" \
116  -B "$R_HZ" \
117  -N $START_NUMBER_OF_PREFITS \
118  -d $DEBUG --!
119 
120 CHECK_EXIT_CODE
121 
122 timer_stop
123 timer_print
124 
125 # default input values for JGandalf
126 set_variable GANDALF_TTS_NS 2.0
127 set_variable GANDALF_E_GEV 10.0
128 set_variable GANDALF_R_HZ 10e3
129 set_variable GANDALF_ROADWIDTH_M 50
130 set_variable GANDALF_ZRANGE_M -3 9
131 set_variable GANDALF_NUMBER_OF_PREFITS 18
132 
133 timer_start
134 
135 JGandalf \
136  -a $DETECTOR \
137  -f ${OUTPUT_FILE/\%/jstart} \
138  -o ${OUTPUT_FILE/\%/jgandalf} \
139  -P $PDF \
140  -B $GANDALF_R_HZ \
141  -T $GANDALF_TTS_NS \
142  -R $GANDALF_ROADWIDTH_M \
143  -E $GANDALF_E_GEV \
144  -z "$GANDALF_ZRANGE_M" \
145  -N $GANDALF_NUMBER_OF_PREFITS \
146  -d $DEBUG --!
147 
148 CHECK_EXIT_CODE
149 
150 timer_stop
151 timer_print
152 
153 # default input values for JStart (second)
154 set_variable START2_NUMBER_OF_PREFITS 1
155 #
156 timer_start
157 
158 JStart \
159  -a $DETECTOR \
160  -f ${OUTPUT_FILE/\%/jgandalf} \
161  -o ${OUTPUT_FILE/\%/jstart2} \
162  -P $PDF \
163  -T "$START_TIMEWINDOW_NS" \
164  -R $START_ROADWIDTH_M \
165  -s "$START_START" \
166  -B "$R_HZ" \
167  -N $START2_NUMBER_OF_PREFITS \
168  -d $DEBUG --!
169 
170 CHECK_EXIT_CODE
171 
172 timer_stop
173 timer_print
174 
175 # default input values for JEnergy
176 set_variable ENERGY_ROADWIDTH_M 50
177 set_variable ENERGY_TIMEWINDOW_NS -25.0 +25.0
178 set_variable ENERGY_START 1e-3 1e-2
179 set_variable ENERGY_R_HZ 10e3
180 set_variable ENERGY_LOGE_WINDOW 0 5
181 set_variable ENERGY_NUMBER_OF_PREFITS 1
182 
183 # choice of M-Estimator
184 set_variable NONE 3 # Preferred for ORCA
185 
186 timer_start
187 
188 JEnergy \
189  -a $DETECTOR \
190  -f ${OUTPUT_FILE/\%/jstart2} \
191  -o ${OUTPUT_FILE/\%/jenergy} \
192  -P $PDF \
193  -B $ENERGY_R_HZ \
194  -T "$ENERGY_TIMEWINDOW_NS" \
195  -x "$ENERGY_LOGE_WINDOW" \
196  -R $ENERGY_ROADWIDTH_M \
197  -s "$ENERGY_START" \
198  -M $NONE \
199  -N $ENERGY_NUMBER_OF_PREFITS \
200  -d $DEBUG --!
201 
202 CHECK_EXIT_CODE
203 
204 timer_stop
205 timer_print
206 
207 # rename outputfile and remove intermediate files
208 
209 timer_start
210 
211 mv \
212  ${OUTPUT_FILE/\%/jenergy} \
213  ${OUTPUT_FILE/\%/${SUF}} \
214  -v
215 
216 rm \
217  ${OUTPUT_FILE/\%/jprefit} \
218  ${OUTPUT_FILE/\%/jsimplex} \
219  ${OUTPUT_FILE/\%/jgandalf} \
220  ${OUTPUT_FILE/\%/jstart} \
221  ${OUTPUT_FILE/\%/jstart2} \
222  -v
223 
224 timer_stop
225 timer_print
226 
227 # convert to aanet format
228 
229 timer_start
230 
231 JConvertEvt \
232  -f ${OUTPUT_FILE/\%/${SUF}} \
233  -o ${OUTPUT_FILE/\%/${SUF}.aanet} \
234  -d $DEBUG --!
235 
236 timer_stop
237 timer_print