7# ------------------------------------------------------------------------------------------
9# Utility script to plot fit results.
11# ------------------------------------------------------------------------------------------
14if [ -z $JPP_DIR ]; then
15 echo "Variable JPP_DIR undefined."
20source $JPP_DIR/setenv.sh $JPP_DIR
23# list of applications in the processing chain
25APPLICATIONS=(prefit pointsimplex positionfit directionprefit completefit)
27set_variable: DEBUG RECONSTRUCTION_DEBUG 1
28set_variable: NUMBER_OF_EVENTS RECONSTRUCTION_NUMBER_OF_EVENTS $((2**31))
30set_variable: PALETTE GRAPHICS_PALETTE 57
31set_variable: FORMAT GRAPHICS_FORMAT gif
32set_variable+ BATCH GRAPHICS_BATCH -B
36set_variable WORKDIR ./
39 usage "$script <input file> [option [muons [working directory]]]\n" \
40 "Where option can be N, E, LINE, LOGE.\n" \
41 "Note 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 MUONS $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 MUONS ${argv[-2]}
53 set_variable WORKDIR ${argv[-1]}
57# Number of prefits as a function of application (0 = all)
59typeset -A NUMBER_OF_FIT
68# Fit application identifier
81for APP in $APPLICATIONS[*]; do
83 set_variable OUTPUT_FILE $WORKDIR/jshowerpostfit\[${APP}\].root
85 if [[ -f $OUTPUT_FILE ]]; then
93for APP in $APPLICATIONS[*]; do
95 set_variable OUTPUT_FILE $WORKDIR/jshowerpostfit\[${APP}\].root
97 if [[ ! -f $OUTPUT_FILE ]]; then
100 -f "${INPUT_FILES[*]}" \
102 -n ${NUMBER_OF_EVENTS} \
103 -N ${NUMBER_OF_FIT[${APP}]} \
104 -A ${ENUMERATION[${APP}]} \
106 ${${MUONS:+-I}:--w} \
115 -f $WORKDIR/jshowerpostfit\[prefit\].root:hd \
116 -f $WORKDIR/jshowerpostfit\[pointsimplex\].root:hd \
117 -f $WORKDIR/jshowerpostfit\[positionfit\].root:hd \
118 -> "position wrt selected fermion [m]" \
119 -\^ "number of events [a.u.]" \
121 -o $WORKDIR/position.$FORMAT $BATCH
124 -f $WORKDIR/jshowerpostfit\[directionprefit\].root:ha \
125 -f $WORKDIR/jshowerpostfit\[completefit\].root:ha \
126 -> "angle wrt selected fermion [deg]" \
127 -\^ "number of events [a.u.]" \
129 -o $WORKDIR/angle.$FORMAT $BATCH
137 QUANTILES="0.33 0.5 0.66"
139 for APP in prefit pointsimplex positionfit; do
141 -f $WORKDIR/jshowerpostfit\[${APP}\].root:h3 \
143 -o $WORKDIR/jshowerquantiles\[${APP}\].root
146 for APP in directionprefit completefit; do
149 -f $WORKDIR/jshowerpostfit\[${APP}\].root:h2 \
151 -o $WORKDIR/jshowerquantiles\[${APP}\].root
155 -f $WORKDIR/jshowerquantiles\[prefit\].root:h31 \
156 -f $WORKDIR/jshowerquantiles\[pointsimplex\].root:31 \
157 -f $WORKDIR/jshowerquantiles\[positionfit\].root:h31 \
159 -\^ "resolution (reco jshower) [deg]" \
164 -o $WORKDIR/resolution_pos.$FORMAT $BATCH
167 -f $WORKDIR/jshowerquantiles\[directionprefit\].root:h21 \
168 -f $WORKDIR/jshowerquantiles\[completefit\].root:h21 \
170 -\^ "resolution (reco jshower) [deg]" \
175 -o $WORKDIR/resolution_angle.$FORMAT $BATCH
181 if [[ $OPTION =~ "LOG" ]]; then
182 set_variable LOGX -XX
183 set_variable LOGY -YY
187 -f $WORKDIR/jshowerpostfit\[completefit\].root:ee \
188 -O COLZ -p $PALETTE \
189 $LOGX $LOGY -Z -T "" \
190 -> "log E_{true} [GeV]" \
191 -< "log E_{fit} [GeV]" \
192 -o $WORKDIR/jshoweree.$FORMAT $BATCH