Jpp 19.3.0-rc.3
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: FORMAT GRAPHICS_FORMAT gif
30set_variable+ BATCH GRAPHICS_BATCH -B
31
32if do_usage $*; then
33 usage "$script <detector file> <file name pattern> <OMGsim data card>"
34fi
35
36case $# in
37 3) set_variable OMGSIM $argv[3];&
38 2) set_variable FILE_NAME_PATTERN $argv[2];
39 set_variable DETECTOR $argv[1];;
40 *) fatal "Wrong number of arguments."
41esac
42
43function getv() { JPrintProperties -f $OMGSIM -k $1 -@ "cc=#" }
44
45typeset -A BUFFER
46
47let "BUFFER[K40Glass] = `getv glass.K40 ` * `getv mass.glass`"
48let "BUFFER[Th232Glass] = `getv glass.Th232` * `getv mass.glass`"
49let "BUFFER[U238Glass] = `getv glass.U238 ` * `getv mass.glass`"
50let "BUFFER[K40Water] = `getv water.K40 ` * (4.0/3.0) * acos(-1.0) * (`getv radius.K40 `**3 - `getv radius.glass`**3)"
51let "BUFFER[U238Water] = `getv water.U238 ` * (4.0/3.0) * acos(-1.0) * (`getv radius.U238`**3 - `getv radius.glass`**3)"
52
53echo Radio activities:
54
55for KEY VALUE in ${(kv)BUFFER}; do
56 printf "%-12s %12.2f [Bq]\n" $KEY $VALUE
57done
58
59typeset -a KEYS
60
61for KEY VALUE in ${(kv)BUFFER}; do
62
63 set_variable INPUT_FILE ${FILE_NAME_PATTERN/\%/$KEY}
64 set_variable OUTPUT_FILE $WORKDIR/\[${KEY}\].root
65
66 echo $INPUT_FILE
67
68 if [[ -f $INPUT_FILE ]] && [[ ! -f $OUTPUT_FILE ]]; then
69
70 $DIR/JOMGsim \
71 -a $DETECTOR \
72 -f $INPUT_FILE \
73 -o $OUTPUT_FILE \
74 -R $VALUE \
75 -P "QE = $FACTOR" \
76 -d $DEBUG --!
77 fi
78
79 if [[ -f $OUTPUT_FILE ]]; then
80 KEYS+=($KEY)
81 fi
82done
83
84JOpera2D \
85 -f$WORKDIR/\[${^KEYS}\].root:1.2S \
86 -u Add \
87 -O = \
88 -o $WORKDIR/\[Total\].root >& /dev/null
89
90JPlot2D \
91 -w 1200x600 \
92 -f $WORKDIR/\[Total\].root:1.2S \
93 -> "PMT pair" \
94 -< "#DeltaT [ns]" \
95 -\^ "rate [Hz]" \
96 -O COLZ \
97 -T "OMGsim" \
98 -o monitor.$FORMAT $BATCH
99
100