Jpp
JARCAReconstruction.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author bofearraigh
4 #
5 
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Script to run the JPP Track Reconstruction Chain for ARCA.
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 ${JARCAREC_SUF:-jchain.arca}
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 1
49 set_variable PREFIT_TMAX_NS 18
50 set_variable PREFIT_ROADWIDTH_M 200
51 set_variable PREFIT_SIGMA_NS 5
52 set_variable PREFIT_OUTLIERS 3
53 set_variable PREFIT_NUMBER_OF_PREFITS 12
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  -S $PREFIT_SIGMA_NS \
65  -O $PREFIT_OUTLIERS \
66  -N $PREFIT_NUMBER_OF_PREFITS \
67  -d $DEBUG --!
68 
69 CHECK_EXIT_CODE
70 
71 timer_stop
72 timer_print
73 
74 # default input values for JSimplex
75 set_variable SIMPLEX_SIGMA_NS 3.0
76 set_variable SIMPLEX_TMAX_NS 15
77 set_variable SIMPLEX_ROADWIDTH_M 175
78 set_variable SIMPLEX_NUMBER_OF_PREFITS 12
79 
80 timer_start
81 
82 JSimplex \
83  -a $DETECTOR \
84  -f ${OUTPUT_FILE/\%/jprefit} \
85  -o ${OUTPUT_FILE/\%/jsimplex} \
86  -T $SIMPLEX_TMAX_NS \
87  -R $SIMPLEX_ROADWIDTH_M \
88  -S $SIMPLEX_SIGMA_NS \
89  -N $SIMPLEX_NUMBER_OF_PREFITS \
90  -d ${DEBUG} --!
91 
92 CHECK_EXIT_CODE
93 
94 timer_stop
95 timer_print
96 
97 # default input values for JGandalf
98 set_variable GANDALF_TTS_NS 2.0
99 set_variable GANDALF_E_GEV 1e3
100 set_variable GANDALF_R_HZ 6e3
101 set_variable GANDALF_ROADWIDTH_M 175
102 set_variable GANDALF_NUMBER_OF_PREFITS 12
103 
104 timer_start
105 
106 JGandalf \
107  -a $DETECTOR \
108  -f ${OUTPUT_FILE/\%/jsimplex} \
109  -o ${OUTPUT_FILE/\%/jgandalf} \
110  -P $PDF \
111  -B $GANDALF_R_HZ \
112  -T $GANDALF_TTS_NS \
113  -R $GANDALF_ROADWIDTH_M \
114  -E $GANDALF_E_GEV \
115  -N $GANDALF_NUMBER_OF_PREFITS \
116  -d $DEBUG --!
117 
118 CHECK_EXIT_CODE
119 
120 timer_stop
121 timer_print
122 
123 # default input values for JStart
124 set_variable START_ROADWIDTH_M 160
125 set_variable START_TIMEWINDOW_NS -25.0 75.0
126 set_variable R_HZ 5e3 570 57 7 0.8 0.09
127 set_variable START_START 1e-3 1e-2
128 set_variable START_NUMBER_OF_PREFITS 1
129 
130 timer_start
131 
132 JStart \
133  -a $DETECTOR \
134  -f ${OUTPUT_FILE/\%/jgandalf} \
135  -o ${OUTPUT_FILE/\%/jstart} \
136  -P $PDF \
137  -R $START_ROADWIDTH_M \
138  -T "$START_TIMEWINDOW_NS" \
139  -s "$START_START" \
140  -B "$R_HZ" \
141  -N $START_NUMBER_OF_PREFITS \
142  -d $DEBUG --!
143 
144 CHECK_EXIT_CODE
145 
146 timer_stop
147 timer_print
148 
149 # default input values for JEnergy
150 set_variable ENERGY_ROADWIDTH_M 200.0
151 set_variable ENERGY_TIMEWINDOW_NS -50.0 +450.0
152 set_variable ENERGY_R_HZ 6e3
153 set_variable ENERGY_LOGE_WINDOW 0 8
154 set_variable ENERGY_NUMBER_OF_PREFITS 1
155 set_variable ENERGY_CORRECTION $JPP_LIB/energy_correction_arca.txt
156 
157 # choice of M-Estimator
158 set_variable LORENTZIAN 1 # Preferred for ARCA
159 
160 timer_start
161 
162 JEnergy \
163  -a $DETECTOR \
164  -f ${OUTPUT_FILE/\%/jstart} \
165  -o ${OUTPUT_FILE/\%/jenergy} \
166  -P $PDF \
167  -E $ENERGY_CORRECTION \
168  -B $ENERGY_R_HZ \
169  -T "$ENERGY_TIMEWINDOW_NS" \
170  -x "$ENERGY_LOGE_WINDOW" \
171  -R $ENERGY_ROADWIDTH_M \
172  -T $ENERGY_TIMEWINDOW_NS \
173  -M $LORENTZIAN \
174  -N $ENERGY_NUMBER_OF_PREFITS \
175  -d $DEBUG --!
176 
177 CHECK_EXIT_CODE
178 
179 timer_stop
180 timer_print
181 
182 # rename outputfile and remove intermediate files
183 
184 timer_start
185 
186 mv \
187  ${OUTPUT_FILE/\%/jenergy} \
188  ${OUTPUT_FILE/\%/${SUF}} \
189  -v
190 
191 rm \
192  ${OUTPUT_FILE/\%/jprefit} \
193  ${OUTPUT_FILE/\%/jsimplex} \
194  ${OUTPUT_FILE/\%/jgandalf} \
195  ${OUTPUT_FILE/\%/jstart} \
196  -v
197 
198 timer_stop
199 timer_print
200 
201 # convert to aanet format
202 
203 timer_start
204 
205 JConvertEvt \
206  -f ${OUTPUT_FILE/\%/${SUF}} \
207  -o ${OUTPUT_FILE/\%/${SUF}.aanet} \
208  -d $DEBUG --!
209 
210 timer_stop
211 timer_print