3 # \author mdejong, bofearraigh
7 # ------------------------------------------------------------------------------------------
9 # Utility script to plot fit results of track reconstruction chain for Monte Carlo data.
11 # ------------------------------------------------------------------------------------------
14 if [ -z $JPP_DIR ]; then
15 echo "Variable JPP_DIR undefined."
20 source $JPP_DIR/setenv.sh $JPP_DIR
23 # list of applications in the processing chain
25 APPLICATIONS=(prefit simplex gandalf energy start)
27 set_variable: DEBUG RECONSTRUCTION_DEBUG 1
28 set_variable: NUMBER_OF_EVENTS RECONSTRUCTION_NUMBER_OF_EVENTS $((2**31))
30 set_variable: PALETTE GRAPHICS_PALETTE 57
31 set_variable: FORMAT GRAPHICS_FORMAT gif
32 set_variable+ BATCH GRAPHICS_BATCH -B
35 set_variable PRIMARY muon
36 set_variable WORKDIR ./
39 usage "$script <input file> [option [primary [working directory]]]"\
40 "\nWhere option can be N, E, LINE, LOGE."\
41 "\nNote that if more than one input file is specified, all other arguments must be provided."
45 4) set_variable WORKDIR $4;&
46 3) set_variable PRIMARY $3;&
47 2) set_variable OPTION $2;&
48 1) set_array INPUT_FILES $1;;
49 0) fatal "Wrong number of arguments";;
50 *) set_array INPUT_FILES ${argv[1,-4]}
51 set_variable OPTION ${argv[-3]}
52 set_variable PRIMARY ${argv[-2]}
53 set_variable WORKDIR ${argv[-1]}
56 # Number of prefits as a function of application (0 = all)
58 typeset -A NUMBER_OF_FIT
68 # Fit application identifier
70 typeset -A ENUMERATION
80 E) set_variable LABEL "E [GeV]";
82 set_variable LOGX -XX;
83 set_variable LOGY -YY;
84 set_variable E_E "log10(E_{fit}/E_{#mu})";;
85 LINE) set_variable LABEL "E [GeV]";
89 set_variable E_E "E_{fit} - E_{#mu} [GeV]";;
90 LOGE) set_variable LABEL "E [GeV]";
92 set_variable LOGX -XX;
93 set_variable LOGY -YY;
94 set_variable E_E "log10(E_{fit}/E_{#mu})";;
95 N) set_variable LABEL "number of modules";
97 set_variable LOGX -XX;
98 set_variable LOGY -YY;
99 set_variable E_E "log10(E_{fit}/E_{#mu})";;
100 *) fatal "Invalid option $OPTION"
106 for APP in $APPLICATIONS[*]; do
108 set_variable OUTPUT_FILE ${WORKDIR}/postfit\[${APP}\].root
110 if [[ -f $OUTPUT_FILE ]]; then
118 for APP in $APPLICATIONS[*]; do
120 set_variable OUTPUT_FILE $WORKDIR/postfit\[${APP}\].root
122 if [[ ! -f $OUTPUT_FILE ]]; then
125 -f"${INPUT_FILES[*]}" \
127 -n ${NUMBER_OF_EVENTS} \
128 -N ${NUMBER_OF_FIT[${APP}]} \
129 -A ${ENUMERATION[${APP}]} \
139 -f $WORKDIR/postfit\[prefit\].root:hx \
140 -f $WORKDIR/postfit\[simplex\].root:hx \
141 -f $WORKDIR/postfit\[gandalf\].root:hx \
143 -\^ "number of events [a.u.]" \
146 -o $WORKDIR/angle.$FORMAT $BATCH
151 QUANTILES="0.33 0.5 0.66"
153 for APP in prefit simplex gandalf; do
156 -f $WORKDIR/postfit\[${APP}\].root:h2 \
158 -o $WORKDIR/quantiles\[${APP}\].root
162 -f $WORKDIR/quantiles\[prefit\].root:h21 \
163 -f $WORKDIR/quantiles\[simplex\].root:h21 \
164 -f $WORKDIR/quantiles\[gandalf\].root:h21 \
166 -\^ "resolution (reco muon) [deg]" \
170 -o $WORKDIR/resolution.$FORMAT $BATCH
176 -f $WORKDIR/postfit\[energy\].root:E_0 \
177 -f $WORKDIR/postfit\[energy\].root:E_1 \
178 -f $WORKDIR/postfit\[energy\].root:E_2 \
179 -\^ "number of events [a.u.]" \
180 -> "E_{#mu} [GeV]" $LOGX \
182 -o $WORKDIR/energy.$FORMAT $BATCH
188 -f $WORKDIR/postfit\[energy\].root:ExE \
193 -f $WORKDIR/pdf.root:ExE \
194 -O COLZ -p $PALETTE \
195 -> "E_{#mu} [GeV]" $LOGX \
196 -< "E_{fit} [GeV]" $LOGY \
199 -o $WORKDIR/ee.$FORMAT $BATCH
205 -f $WORKDIR/postfit\[energy\].root:E_E \
206 -o $WORKDIR/fit.root \
207 -F "[0]*exp(-0.5*(x-[1])*(x-[1])/([2]*[2]))" \
208 -@ "p0 = 0.8*GetMaximum" \
213 -f $WORKDIR/fit.root:E_E \
215 -T "" -o $WORKDIR/er.$FORMAT $BATCH
221 -f $WORKDIR/postfit\[energy\].root:Va \
222 -O COLZ -p $PALETTE \
226 -Z -T "" -o $WORKDIR/ha.$FORMAT $BATCH
233 -f $WORKDIR/postfit\[energy\].root:Vb \
234 -O COLZ -p $PALETTE \
238 -Z -T "" -o $WORKDIR/hb.$FORMAT $BATCH
244 -f $WORKDIR/postfit\[start\].root:hz0 \
245 -f $WORKDIR/postfit\[start\].root:hz1 \
247 -\^ "number of events [a.u.]" \
249 -o $WORKDIR/z.$FORMAT $BATCH