Jpp
JMCEvt.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to test JGandalf - JEnergy - JStart on Monte Carlo true muons.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 
21 source $JPP_DIR/setenv.sh $JPP_DIR
22 
23 
24 set_variable DEBUG 2
25 set_variable WORKDIR $JPP_DATA
26 set_variable INPUT_FILE $WORKDIR/trigger_efficiency+background.root
27 set_variable DETECTOR $WORKDIR/km3net_reference.detx
28 set_variable ENERGY_CORRECTION energy_correction_arca.txt
29 
30 if ( do_usage $* ); then
31  usage "$script [detector file [input file [working directory]]]"
32 fi
33 
34 case $# in
35  3) set_variable WORKDIR $3;&
36  2) set_variable INPUT_FILE $2;&
37  1) set_variable DETECTOR $1;;
38 esac
39 
40 set_variable OUTPUT_FILE $WORKDIR/%-mc.root
41 
42 if (( 1 )); then
43 
44  for APP in gandalf energy start; do
45 
46  if [[ -f ${OUTPUT_FILE/\%/${APP}} ]]; then
47  rm -i ${OUTPUT_FILE/\%/${APP}}
48  fi
49  done
50 
51  if ( ! reuse_file ${OUTPUT_FILE/\%/event} ); then
52 
53  JMCEvt \
54  -f $INPUT_FILE \
55  -o ${OUTPUT_FILE/\%/event} \
56  -d ${DEBUG} --!
57  fi
58 
59  JARCAGandalf.sh $DETECTOR ${OUTPUT_FILE/\%/event} ${OUTPUT_FILE/\%/gandalf}
60  JARCAEnergy.sh $DETECTOR ${OUTPUT_FILE/\%/gandalf} ${OUTPUT_FILE/\%/energy}
61  JARCAStart.sh $DETECTOR ${OUTPUT_FILE/\%/energy} ${OUTPUT_FILE/\%/start}
62 
63 fi
64 
65 
66 if (( 1 )); then
67 
68  JPostfit \
69  -f ${OUTPUT_FILE/\%/start} \
70  -O LOGE \
71  -A 5 \
72  -o postfit\[start-mc\].root
73 
74 fi
75 
76 
77 if (( 1 )); then
78 
79  JPlot1D \
80  -f postfit\[start-mc\].root:hx \
81  -> "angle [deg]" \
82  -\^ "number of events [a.u]" \
83  -XX \
84  -L TR \
85  -o angle-truth.gif
86 
87 fi
88 
89 if (( 1 )); then
90 
91  JPlot1D \
92  -f postfit\[start-mc\].root:e0 \
93  -f postfit\[start-mc\].root:e1 \
94  -f postfit\[start-mc\].root:e2 \
95  -\^ "number of events [a.u.]" \
96  -> "log10(E_{fit}/GeV)" \
97  -XX
98 
99 fi
100 
101 if (( 1 )); then
102 
103  JPlot2D \
104  -f postfit\[start-mc\].root:ee \
105  -O COLZ \
106  -XX -YY \
107  -> "E_{true} [GeV]" \
108  -< "E_{fit} [GeV]"
109 
110 fi
111 
112 if (( 1 )); then
113 
114  JFit \
115  -f postfit\[start-mc\].root:er \
116  -F "[0]*exp(-0.5*(x-[1])*(x-[1])/([2]*[2]))" \
117  -@ "p0 = 0.8*GetMaximum" \
118  -@ "p1 = 0.0" \
119  -@ "p2 = 0.4" \
120  -x "-0.8 +0.8"
121 
122  JPlot1D \
123  -f fit.root:er \
124  -> "log10(E_{fit}/E_{true})" \
125  -o er-truth.gif
126 
127 fi
128 
129 if (( 1 )); then
130 
131  JPlot2D \
132  -f postfit\[start-mc\].root:ha \
133  -OCOLZ \
134  -> "R^{2} [m^{2}]" \
135  -< "z [m]"
136 
137 fi
138 
139 if (( 1 )); then
140 
141  JPlot1D \
142  -f postfit\[start-mc\].root:hz \
143  -> "z [m]" \
144  -\^ "number of events [a.u]" \
145  -L TR \
146  -o z.gif
147 
148 fi
149 
150 if (( 0 )); then
151 
152  JPlot1D \
153  -f postfit\[start-mc\].root:hx \
154  -f postfit\[start-mc\].root:hx \
155  -> "angle [deg]" \
156  -\^ "number of events [a.u]" \
157  -XX \
158  -L TR \
159  -o angle-truth.gif
160 
161 fi
162 
163 if (( 0 )); then
164 
165  JSum1D -f postfit\[start-mc\].root:hx -o sum\[start-mc\].root -N
166  JSum1D -f postfit\[gandalf\].root:hx -o sum\[gandalf\].root -N
167 
168  JPlot1D \
169  -f sum\[gandalf\].root:hx \
170  -f sum\[start-mc\].root:hx \
171  -> "angle [deg]" \
172  -\^ "integral of events" \
173  -XX \
174  -L TR \
175  -o sum-truth.gif
176 
177 fi