Jpp 20.0.0-rc.8
the software that should make you happy
Loading...
Searching...
No Matches
observation_mset.sh
Go to the documentation of this file.
1#!/bin/env zsh
2#
3# \author mdejong
4#
5version=1.0
6script=${0##*/}
7
8source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
9
10zmodload zsh/mathfunc
11
12set_variable DEBUG 2
13set_variable: SNR ASTRONOMY_SNR 0.2
14set_variable: M_SIZE ASTRONOMY_M_SIZE 10000
15set_variable: NUISANCE ASTRONOMY_NUISANCE fixed fixed
16set_variable: FORMAT GRAPHICS_FORMAT gif
17set_variable+ BATCH GRAPHICS_BATCH -B
18
19if do_usage $*; then
20 usage "$script <config file name for data> <config file name for pseudosets>"\
21 "\nThe histograms correspond to \"<file name>:<histogram name>\"."
22fi
23
24if (( $# != 2 )); then
25 fatal "Wrong number of arguments."
26fi
27
28set_variable CONFIG_DATA $argv[1]
29set_variable CONFIG_PSEUDO $argv[2]
30
31timer_start
32
33let "NUMBER_OF_TESTS = 100000"
34
35$JPP_DIR/examples/JAstronomy/JRealExperiment \
36 -E $CONFIG_DATA \
37 -R $SNR \
38 -n $NUMBER_OF_TESTS \
39 -d $DEBUG >& benchmark.data.log
40
41awk '/result:/ { print $(NF - 1) }' benchmark.data.log | read LIKELIHOOD_RATIO
42awk '/result:/ { print $(NF) }' benchmark.data.log | read SIGNAL
43awk '/upper limit:/ { print $(NF) }' benchmark.data.log | read UPPER_LIMIT
44
45SIGMA_UPPER_LIMIT=$(( $UPPER_LIMIT * sqrt(1.0 / ($NUMBER_OF_TESTS*1.0)*0.9/0.1) ))
46
47if (( $(echo "$LIKELIHOOD_RATIO <= 0" |bc -l) )); then
48 printf "Observed likelihood ratio:\t%1.2e\tsignal\t%1.2e\tUL =\t%1.2e\t+-\t%1.2e\n" $LIKELIHOOD_RATIO $SIGNAL $UPPER_LIMIT $SIGMA_UPPER_LIMIT
49fi
50
51H0=0
52
53
54if (( $LIKELIHOOD_RATIO > 0 )); then
55
56 #test p-value calculation: for a best fitted signal build pseudoexperiments with such a signal and find fraction of pex with TS > TS_observed
57 $JPP_DIR/examples/JAstronomy/JGen2 \
58 -o /dev/null \
59 -E $CONFIG_PSEUDO \
60 -n $NUMBER_OF_TESTS \
61 -s $SIGNAL \
62 -Q $LIKELIHOOD_RATIO \
63 -R $SNR \
64 -M $M_SIZE \
65 -d $DEBUG >& benchmark.$SIGNAL.log
66
67 awk '/Maximal probability:/ { print $(NF - 1) }' benchmark.$SIGNAL.log | read PCHECK
68
69
70 for (( ; 1 ; )); do # p-vale
71 $JPP_DIR/examples/JAstronomy/JGen2 \
72 -o /dev/null \
73 -E $CONFIG_PSEUDO \
74 -n $NUMBER_OF_TESTS \
75 -s $H0 \
76 -Q $LIKELIHOOD_RATIO \
77 -R $SNR \
78 -M $M_SIZE \
79 -d $DEBUG >& benchmark.$H0.log
80
81 awk '/Maximal probability:/ { print $(NF - 1) }' benchmark.$H0.log | read P
82
83 if (( $P*($NUMBER_OF_TESTS*1.0) > 1.0e3 )); then
84 break
85 else
86 let "NUMBER_OF_TESTS *= 10"
87 fi
88 done
89
90 STDERR=$(( sqrt($P/($NUMBER_OF_TESTS*1.0)) ))
91
92 printf "Observed likelihood ratio:\t%1.2e\tsignal\t%1.2e\tUL =\t%1.2e\t+-\t%1.2e\t-> P =\t%1.2e\t+-\t%1.2e\tn=\t%1.2e\tpcheck\t%1.2e\n" $LIKELIHOOD_RATIO $SIGNAL $UPPER_LIMIT $SIGMA_UPPER_LIMIT $P $STDERR $NUMBER_OF_TESTS $PCHECK
93fi