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 \
103if [[ ! -f $WORKDIR/sirene.$TYPE.root ]]; then
107 -f $WORKDIR/gedanken.$TYPE.root \
108 -o $WORKDIR/sirene.$TYPE.root \
109 -F $JPP_DATA/I%p.dat \
114printf "Generating histograms..."
116$JPP_DIR/examples/JSirene/JDomino \
118 -f $WORKDIR/sirene.$TYPE.root \
119 -o $WORKDIR/domino.root \
125set_variable PDF $JPP_DATA/J%p.dat
126set_variable EPS 1.0E-6
127set_variable PI $((acos(-1)))
129# constrain angle between [epsilon, pi - epsilon]
133 if (( $1 > $PI - $EPS )); then
135 elif (( $1 < $EPS )); then
146 printf "Generating PDFs PMT %2d\r" $id
148 getPMT -a $DETECTOR -p $id | read ID X Y Z DX DY DZ T0 STATUS
150 let "THETA = acos($DZ)"
152 if (( $DX > +$EPS )); then
153 let "PHI = atan(fabs($DY/$DX))"
154 elif (( $DX < -$EPS )); then
155 let "PHI = $PI - atan(fabs($DY/$DX))"
160 let "THETA = $(constrain $THETA)"
161 let "PHI = $(constrain $PHI)"
163 TITLE[$id]="$(printf "PMT[%d] (%5.3f,%5.3f)" $id $THETA $PHI)"
165 if (( $TYPE == -13 || $TYPE == +13 || $TYPE == -15 || $TYPE == +15 )); then
175 -R $R_M -E $E_GEV -z $Z_M \
177 -o $WORKDIR/f1\[${id}\].root
187 -R $R_M -E $E_GEV -z $Z_M \
189 -o $WORKDIR/g1\[${id}\].root
193 # equivalent electro-magnetic energy
195 let "E = $(getPythia -P $TYPE -E $E_GEV)"
201 -R $D_M -E $E -c $CD \
202 -N $NUMBER_OF_STEPS \
204 -o $WORKDIR/f1\[${id}\].root
210 -R $D_M -E $E -c $CD \
212 -o $WORKDIR/g1\[${id}\].root
219if (( $TYPE == -13 || $TYPE == +13 || $TYPE == -15 || $TYPE == +15 )); then
225 -p "0.4 0.8 $E_GEV [GeV]" \
228 -p "0.4 0.7 $(printf "%5.1f [m]" $R_M)" \
231 -p "0.4 0.6 $(printf "%5.1f" $Z_M)" \
241 -p "0.4 0.8 $E_GEV [GeV]" \
244 -p "0.4 0.7 $(printf "%5.1f [m]" $D_M)" \
245 -p "0.1 0.6 cos(#theta)" \
247 -p "0.4 0.6 $(printf "%5.2f" $CD)" \
254 -f $WORKDIR/t1.root:\.\* \
255 -o $WORKDIR/t1.$FORMAT $BATCH
261 let "Y = $(JPrintResult -f $WORKDIR/f1\[${id}\].root:h0 -F GetMaximum)"
263 if (( $Y > $YMAX )); then
268let "YMAX = 10**($(printf "%1.0f" $((log10($YMAX) + 0.5))))"
269let "YMIN = $YMAX * 1.0e-4"
273 printf "Generating graphics PMT %2d\r" $id
276 -f $WORKDIR/"domino.root:h\[${id}\]" \
277 -f $WORKDIR/f1\[${id}\].root:h0 \
278 -f $WORKDIR/g1\[${id}\].root:h0 \
279 -y "$YMIN $YMAX" -Y \
284 -o $WORKDIR/pdf_${id}.$FORMAT $BATCH
292 $WORKDIR/pdf_{1..31}.$FORMAT \
293 $WORKDIR/t1.$FORMAT \
294 pdf.$TYPE.$FORMAT >& /dev/null
299 printf "Generating graphics PMT %2d\r" $id
302 -f $WORKDIR/"domino.root:h\[${id}\]" \
303 -o $WORKDIR/"Domino.root" \
307 -f $WORKDIR/f1\[${id}\].root:h0 \
308 -o $WORKDIR/F1.root \
312 -f $WORKDIR/g1\[${id}\].root:h0 \
313 -o $WORKDIR/G1.root \
316 let "Y = $(JPrintResult -f $WORKDIR/F1.root:h0 -F GetMaximum)"
317 let "YMAX = 10**($(printf "%1.1f" $((log10($Y)))) + 0.2)"
318 let "YMIN = $YMAX * 1.0e-1"
321 -f $WORKDIR/"Domino.root:h\[${id}\]" \
322 -f $WORKDIR/F1.root:h0 \
323 -f $WORKDIR/G1.root:h0 \
324 -y "$YMIN $YMAX" -Y \
328 -o $WORKDIR/PDF_${id}.$FORMAT $BATCH
330 rm -f $WORKDIR/Domino.root
331 rm -f $WORKDIR/F1.root
332 rm -f $WORKDIR/G1.root
340 $WORKDIR/PDF_{1..31}.$FORMAT \
341 $WORKDIR/t1.$FORMAT \
342 PDF.$TYPE.$FORMAT >& /dev/null