7# ------------------------------------------------------------------------------------------
9# Auxiliary script for Gedanken experiment.
11# ------------------------------------------------------------------------------------------
13if [ -z $JPP_DIR ]; then
14 echo "Variable JPP_DIR undefined."
18source $JPP_DIR/setenv.sh $JPP_DIR
24set_variable: FORMAT GRAPHICS_FORMAT gif
25set_variable+ BATCH GRAPHICS_BATCH -B
28 usage "$script <input file>"\
29 "\nAn example input file \"gedanken.txt\" is created with option \"?\"."
33 set_variable INPUT_FILE $1
35 fatal "Wrong number of options."
38if [[ $INPUT_FILE == "?" ]]; then
45set_variable WORKDIR ${TMPDIR:-/tmp}/gedanken
46set_variable NUMBER_OF_EVENTS 1000000
47set_variable NUMBER_OF_STEPS 20 # shower elongation
49# location of optical module
56set_variable E_GEV 20 # energy
57set_variable POS 0.0 0.0 0.0 # position
58set_variable DIR 0.0 0.0 1.0 # direction
59set_variable TYPE 13 # PDG
65if [[ -f $INPUT_FILE ]]; then
68 fatal "Invalid input file <$INPUT_FILE>."
71if [[ ! -d $WORKDIR ]]; then
75set_variable DETECTOR $WORKDIR/detector.detx
77let "D_M = sqrt($R_M*$R_M + $Z_M*$Z_M)"
80if [[ ! -f $DETECTOR ]]; then
90if [[ ! -f $WORKDIR/gedanken.$TYPE.root ]]; then
92 $JPP_DIR/examples/JSirene/JGedanken \
93 -o $WORKDIR/gedanken.$TYPE.root \
98 -n $NUMBER_OF_EVENTS \
103set_variable CDF $JPP_DATA/I%p.dat.gz
105if [[ ! -f $WORKDIR/sirene.$TYPE.root ]]; then
109 -f $WORKDIR/gedanken.$TYPE.root \
110 -o $WORKDIR/sirene.$TYPE.root \
116printf "Generating histograms..."
118$JPP_DIR/examples/JSirene/JDomino \
120 -f $WORKDIR/sirene.$TYPE.root \
121 -o $WORKDIR/domino.root \
127set_variable PDF $JPP_DATA/J%p.dat.gz
128set_variable EPS 1.0E-6
129set_variable PI $((acos(-1)))
131# constrain angle between [epsilon, pi - epsilon]
135 if (( $1 > $PI - $EPS )); then
137 elif (( $1 < $EPS )); then
148 printf "Generating PDFs PMT %2d\r" $id
150 getPMT -a $DETECTOR -p $id | read ID X Y Z DX DY DZ T0 STATUS
152 let "THETA = acos($DZ)"
154 if (( $DX > +$EPS )); then
155 let "PHI = atan(fabs($DY/$DX))"
156 elif (( $DX < -$EPS )); then
157 let "PHI = $PI - atan(fabs($DY/$DX))"
162 let "THETA = $(constrain $THETA)"
163 let "PHI = $(constrain $PHI)"
165 TITLE[$id]="$(printf "PMT[%d] (%5.3f,%5.3f)" $id $THETA $PHI)"
167 if (( $TYPE == -13 || $TYPE == +13 || $TYPE == -15 || $TYPE == +15 )); then
177 -R $R_M -E $E_GEV -z $Z_M \
179 -o $WORKDIR/f1\[${id}\].root
189 -R $R_M -E $E_GEV -z $Z_M \
191 -o $WORKDIR/g1\[${id}\].root
195 # equivalent electro-magnetic energy
197 let "E = $(getPythia -P $TYPE -E $E_GEV)"
203 -R $D_M -E $E -c $CD \
204 -N $NUMBER_OF_STEPS \
206 -o $WORKDIR/f1\[${id}\].root
212 -R $D_M -E $E -c $CD \
214 -o $WORKDIR/g1\[${id}\].root
221if (( $TYPE == -13 || $TYPE == +13 || $TYPE == -15 || $TYPE == +15 )); then
227 -p "0.4 0.8 $E_GEV [GeV]" \
230 -p "0.4 0.7 $(printf "%5.1f [m]" $R_M)" \
233 -p "0.4 0.6 $(printf "%5.1f" $Z_M)" \
243 -p "0.4 0.8 $E_GEV [GeV]" \
246 -p "0.4 0.7 $(printf "%5.1f [m]" $D_M)" \
247 -p "0.1 0.6 cos(#theta)" \
249 -p "0.4 0.6 $(printf "%5.2f" $CD)" \
256 -f $WORKDIR/t1.root:\.\* \
257 -o $WORKDIR/t1.$FORMAT $BATCH
263 let "Y = $(JPrintResult -f $WORKDIR/f1\[${id}\].root:h0 -F GetMaximum)"
265 if (( $Y > $YMAX )); then
270let "YMAX = 10**($(printf "%1.0f" $((log10($YMAX) + 0.5))))"
271let "YMIN = $YMAX * 1.0e-4"
275 printf "Generating graphics PMT %2d\r" $id
278 -f $WORKDIR/"domino.root:h\[${id}\]" \
279 -f $WORKDIR/f1\[${id}\].root:h0 \
280 -f $WORKDIR/g1\[${id}\].root:h0 \
281 -y "$YMIN $YMAX" -Y \
286 -o $WORKDIR/pdf_${id}.$FORMAT $BATCH
294 $WORKDIR/pdf_{1..31}.$FORMAT \
295 $WORKDIR/t1.$FORMAT \
296 pdf.$TYPE.$FORMAT >& /dev/null
301 printf "Generating graphics PMT %2d\r" $id
304 -f $WORKDIR/"domino.root:h\[${id}\]" \
305 -o $WORKDIR/"Domino.root" \
309 -f $WORKDIR/f1\[${id}\].root:h0 \
310 -o $WORKDIR/F1.root \
314 -f $WORKDIR/g1\[${id}\].root:h0 \
315 -o $WORKDIR/G1.root \
318 let "Y = $(JPrintResult -f $WORKDIR/F1.root:h0 -F GetMaximum)"
319 let "YMAX = 10**($(printf "%1.1f" $((log10($Y)))) + 0.2)"
320 let "YMIN = $YMAX * 1.0e-1"
323 -f $WORKDIR/"Domino.root:h\[${id}\]" \
324 -f $WORKDIR/F1.root:h0 \
325 -f $WORKDIR/G1.root:h0 \
326 -y "$YMIN $YMAX" -Y \
330 -o $WORKDIR/PDF_${id}.$FORMAT $BATCH
332 rm -f $WORKDIR/Domino.root
333 rm -f $WORKDIR/F1.root
334 rm -f $WORKDIR/G1.root
342 $WORKDIR/PDF_{1..31}.$FORMAT \
343 $WORKDIR/t1.$FORMAT \
344 PDF.$TYPE.$FORMAT >& /dev/null