Jpp 20.0.0-72-g597b30bc9
the software that should make you happy
Loading...
Searching...
No Matches
JOMGsim.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3#
4# \author mdejong
5#
6version=1.0
7script=${0##*/}
8
9# ------------------------------------------------------------------------------------------
10#
11# Utility script to process OMGsim output.
12#
13# ------------------------------------------------------------------------------------------
14
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
17 exit
18fi
19
20source $JPP_DIR/setenv.sh $JPP_DIR
21
22zmodload zsh/mathfunc
23
24set_variable DEBUG 2
25set_variable WORKDIR ./
26set_variable DIR $JPP_DIR/examples/JCalibrate/
27set_variable OMGSIM $DIR/OMGsim.txt
28set_variable: FACTOR OMGSIM_FACTOR 0.5
29set_variable: TTS_NS OMGSIM_TTS_NS 0.0
30set_variable: FORMAT GRAPHICS_FORMAT gif
31set_variable+ BATCH GRAPHICS_BATCH -B
32
33if do_usage $*; then
34 usage "$script <detector file> <file name pattern> <OMGsim data card>"
35fi
36
37case $# in
38 3) set_variable OMGSIM $argv[3];&
39 2) set_variable FILE_NAME_PATTERN $argv[2];
40 set_variable DETECTOR $argv[1];;
41 *) fatal "Wrong number of arguments."
42esac
43
44function getv() { JPrintProperties -f $OMGSIM -k $1 -@ "cc=#" }
45
46typeset -A BUFFER
47
48let "BUFFER[K40Glass] = `getv glass.K40 ` * `getv mass.glass`"
49let "BUFFER[Th232Glass] = `getv glass.Th232` * `getv mass.glass`"
50let "BUFFER[U238Glass] = `getv glass.U238 ` * `getv mass.glass`"
51let "BUFFER[K40Water] = `getv water.K40 ` * (4.0/3.0) * acos(-1.0) * (`getv radius.K40 `**3 - `getv radius.glass`**3)"
52let "BUFFER[U238Water] = `getv water.U238 ` * (4.0/3.0) * acos(-1.0) * (`getv radius.U238`**3 - `getv radius.glass`**3)"
53
54echo Radio activities:
55
56for KEY VALUE in ${(kv)BUFFER}; do
57 printf "%-12s %12.2f [Bq]\n" $KEY $VALUE
58done
59
60typeset -a KEYS
61
62for KEY VALUE in ${(kv)BUFFER}; do
63
64 set_variable INPUT_FILE ${FILE_NAME_PATTERN/\%/$KEY}
65 set_variable OUTPUT_FILE $WORKDIR/\[${KEY}\].root
66
67 echo $INPUT_FILE
68
69 if [[ -f $INPUT_FILE ]] && [[ ! -f $OUTPUT_FILE ]]; then
70
71 $DIR/JOMGsim \
72 -a $DETECTOR \
73 -f $INPUT_FILE \
74 -o $OUTPUT_FILE \
75 -R $VALUE \
76 -P "TTS_ns = $TTS_NS" \
77 -P "QE = $FACTOR" \
78 -d $DEBUG --!
79 fi
80
81 if [[ -f $OUTPUT_FILE ]]; then
82 KEYS+=($KEY)
83 fi
84done
85
86JOpera2D \
87 -f$WORKDIR/\[${^KEYS}\].root:1.2R \
88 -u Add \
89 -O = \
90 -o $WORKDIR/\[Total\].root >& /dev/null
91
92JPlot2D \
93 -w 1200x600 \
94 -f $WORKDIR/\[Total\].root:1.2R \
95 -> "PMT pair" \
96 -< "#DeltaT [ns]" \
97 -\^ "rate [Hz]" \
98 -O COLZ \
99 -T "OMGsim" \
100 -o monitor.$FORMAT $BATCH
101
102