Jpp 20.0.0-rc.6
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
10set_variable DEBUG 2
11set_variable: NUISANCE ASTRONOMY_NUISANCE fixed fixed
12set_variable: FORMAT GRAPHICS_FORMAT gif
13set_variable+ BATCH GRAPHICS_BATCH -B
14set_variable: SNR ASTRONOMY_SNR 0.2
15set_variable: M_SIZE ASTRONOMY_M_SIZE 10000
16
17if do_usage $*; then
18 usage "$script <config file name for data> <config file name for pseudosets>"\
19 "\nThe histograms correspond to \"<file name>:<histogram name>\"."
20fi
21
22if (( $# != 2 )); then
23 fatal "Wrong number of arguments."
24fi
25
26set_variable CONFIG_DATA $argv[1]
27set_variable CONFIG_PSEUDO $argv[2]
28
29timer_start
30
31
32$JPP_DIR/examples/JAstronomy/JRealExperiment \
33 -E "`cat $CONFIG_DATA`" \
34 -R $SNR \
35 -d $DEBUG >& benchmark.data.log
36
37awk '/result:/ { print $(NF - 1) }' benchmark.data.log | read LIKELIHOOD_RATIO
38awk '/result:/ { print $(NF) }' benchmark.data.log | read SIGNAL
39
40#test p-value calculation: for a best fitted signal build pseudoexperiments with such a signal and find fraction of pex with TS > TS_observed
41$JPP_DIR/examples/JAstronomy/JGen2 \
42 -o benchmark\[$H0\].root \
43 -E $CONFIG_PSEUDO \
44 -n 10000 \
45 -s $SIGNAL \
46 -x "10000 -10 100" \
47 -Q $LIKELIHOOD_RATIO \
48 -R $SNR \
49 -M $M_SIZE \
50 -d $DEBUG >& benchmark.$SIGNAL.log
51
52awk '/Maximal probability:/ { print $(NF - 1) }' benchmark.$SIGNAL.log | read PCHECK
53
54if (( $(echo "$LIKELIHOOD_RATIO <= 0" |bc -l) )); then
55 printf "Observed likelihood ratio: %1.2e signal\t%1.2e pcheck\t%1.2e\n\t\t\t\t\t\t" $LIKELIHOOD_RATIO $SIGNAL $PCHECK
56
57fi
58
59H0=0
60let "NUMBER_OF_TESTS = 100000"
61
62if (( $(echo "$LIKELIHOOD_RATIO > 0" |bc -l) )); then
63 for (( ; 1 ; )); do # p-vale
64 $JPP_DIR/examples/JAstronomy/JGen2 \
65 -o benchmark\[$H0\].root \
66 -E $CONFIG_PSEUDO \
67 -n $NUMBER_OF_TESTS \
68 -s 0 \
69 -x "10000 -10 100" \
70 -Q $LIKELIHOOD_RATIO \
71 -R $SNR \
72 -M $M_SIZE \
73 -d $DEBUG >& benchmark.$H0.log
74
75 awk '/Maximal probability:/ { print $(NF - 1) }' benchmark.$H0.log | read P
76
77 NTAIL_OK=$(awk -v NUMBER_OF_TESTS="$NUMBER_OF_TESTS" -v P="$P" 'BEGIN {print (P*NUMBER_OF_TESTS > 1e3 ? 1 : 0)}')
78
79 if (( $NTAIL_OK == 1 )); then
80 break
81 else
82 let "NUMBER_OF_TESTS *= 10"
83 fi
84 done
85 STDERR=$(awk -v NUMBER_OF_TESTS="$NUMBER_OF_TESTS" -v P="$P" 'BEGIN {print (sqrt(P/NUMBER_OF_TESTS))}')
86
87 printf "Observed likelihood ratio: %1.2e signal\t%1.2e pcheck\t%1.2e\t -> P = %1.2e+-%1.2e, \t n=%1.2e\n" $LIKELIHOOD_RATIO $SIGNAL $PCHECK $P $STDERR $NUMBER_OF_TESTS
88fi