Jpp  debug
the software that should make you happy
JPrintK40Rates.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to evaluate rates due to K40 decays.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 
21 source $JPP_DIR/setenv.sh $JPP_DIR
22 
23 
24 set_variable DIR $JPP_DIR/examples/JPhysics/
25 set_variable DEBUG 2
26 
27 set_variable darkcount_Hz 700.0
28 set_variable rateL0_Hz 4500.0
29 
30 # https://elog.km3net.de/Analysis/597
31 
32 set_array rateL1_Hz 568 49.1 5.48 0.479 # 0.0613 0.000781 0.000133
33 
34 if do_usage $*; then
35  usage "$script [working directory]"
36 fi
37 
38 
39 function 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 
50 set_variable WORKDIR ${TMPDIR:-/tmp}/.K40
51 
52 mkdir -p $WORKDIR
53 
54 cp $DIR/JRateK40.cc $WORKDIR/rateL0.cc
55 cp $DIR/JMultiplicityK40.cc $WORKDIR/rateL1.cc
56 
57 cat>$WORKDIR/Makefile<<EOF
58 include \$(JPP_DIR)/make/JMakefile
59 EOF
60 
61 for 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 
82 done
83 
84 #rm -rf $WORKDIR
85 
86 
87 typeout
88 
89 # correct rates
90 
91 rateL0_Hz=$(( $rateL0_Hz * $rateL0_KM3NeT_highQE_Hz / $rateL0_KM3NeT_Hz ))
92 
93 darkcount_Hz=$(( $darkcount_Hz * 3 ))
94 
95 for (( i = 1; i <= ${#rateL1_Hz}; ++i )); do
96  rateL1_Hz[$i]=$(( $rateL1_Hz[$i] * $rateL1_KM3NeT_highQE_Hz[$i] / $rateL1_KM3NeT_Hz[$i] ))
97 done
98 
99 typeout