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