Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JPrintK40Rates.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2#
3# \author mdejong
4#
5version=1.0
6script=${0##*/}
7
8# ------------------------------------------------------------------------------------------
9#
10# Utility script to evaluate rates due to K40 decays.
11#
12# ------------------------------------------------------------------------------------------
13
14
15if [ -z $JPP_DIR ]; then
16 echo "Variable JPP_DIR undefined."
17 exit
18fi
19
20
21source $JPP_DIR/setenv.sh $JPP_DIR
22
23
24set_variable DIR $JPP_DIR/examples/JPhysics/
25set_variable DEBUG 2
26
27set_variable darkcount_Hz 700.0
28set_variable rateL0_Hz 4500.0
29
30# https://elog.km3net.de/Analysis/597
31
32set_array rateL1_Hz 568 49.1 5.48 0.479 # 0.0613 0.000781 0.000133
33
34if do_usage $*; then
35 usage "$script [working directory]"
36fi
37
38
39function typeout()
40{
41 printf "(%4.0f, " $(( $rateL0_Hz + $darkcount_Hz ))
42 printf "{ %6.1f" $rateL1_Hz[1]
43 printf ", %6.2f" $rateL1_Hz[2,-1]
44 printf "})\n"
45}
46
47
48# https://git.km3net.de/common/jpp/-/issues/351
49
50set_variable WORKDIR ${TMPDIR:-/tmp}/.K40
51
52mkdir -p $WORKDIR
53
54cp $DIR/JRateK40.cc $WORKDIR/rateL0.cc
55cp $DIR/JMultiplicityK40.cc $WORKDIR/rateL1.cc
56
57cat>$WORKDIR/Makefile<<EOF
58include \$(JPP_DIR)/make/JMakefile
59EOF
60
61for TARGET in KM3NeT KM3NeT_highQE; do
62 if (( 1 )); then
63 make -C $WORKDIR clean
64 make -C $WORKDIR $TARGET
65
66 $WORKDIR/rateL0 \
67 -d 0 >& $WORKDIR/rateL0_${TARGET}.txt
68
69 $WORKDIR/rateL1 \
70 -n 100000000 \
71 -F 4 \
72 -G 2 \
73 -D "0.216 5" \
74 -A 1 \
75 -U \
76 -o /dev/null \
77 -d 0 >& $WORKDIR/rateL1_${TARGET}.txt
78 fi
79 eval set_variable rateL0_${TARGET}_Hz `awk '/Rate *1Dx1D/ { print $4 }' $WORKDIR/rateL0_${TARGET}.txt`
80 eval set_array rateL1_${TARGET}_Hz `awk '/Rate\[.*\] *=/ { print $3 }' $WORKDIR/rateL1_${TARGET}.txt`
81
82done
83
84#rm -rf $WORKDIR
85
86
87typeout
88
89# correct rates
90
91rateL0_Hz=$(( $rateL0_Hz * $rateL0_KM3NeT_highQE_Hz / $rateL0_KM3NeT_Hz ))
92
93darkcount_Hz=$(( $darkcount_Hz * 3 ))
94
95for (( i = 1; i <= ${#rateL1_Hz}; ++i )); do
96 rateL1_Hz[$i]=$(( $rateL1_Hz[$i] * $rateL1_KM3NeT_highQE_Hz[$i] / $rateL1_KM3NeT_Hz[$i] ))
97done
98
99typeout