4 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/
null
5 source $JPP_BIN/gradient.sh
10 usage "$script [number of tests]"
13 if (( $# == 1 ));
then
31 let
"u = ($1 - $2) / $3"
33 echo $(( $4 *
exp(-0.5*
u*
u) / (sqrt(2.0*$PI) * $3) + $5 ))
44 # Generate random data according true parameters.
50 for ((
X = -5.0; $X <= +5.0;
X += 0.5 ));
do
52 let
"Y = `gauss $X $TRUE_MEAN $TRUE_SIGMA $TRUE_SIGNAL $TRUE_BACKGROUND`"
54 DATA[$X]=`$JPP_DIR/examples/JMath/getPoisson -e $Y`
62 # The function is evaluated using parameters MEAN, SIGMA, SIGNAL and BACKGROUND.
64 # \param 1 variable containing chi2 value on return
73 let
"F = `gauss $X $MEAN $SIGMA $SIGNAL $BACKGROUND`"
74 let
"DY = ($F - $Y) * ($F - $Y)"
93 let
"TRUE_SIGMA = 1.0"
94 let
"TRUE_SIGNAL = 1000.0"
95 let
"TRUE_BACKGROUND = 10.0"
103 for KEY
in MEAN SIGMA SIGNAL BACKGROUND;
do
108 printf
"%-12s %12.3f (fit) %12.3f (true)\n" $KEY ${(
P)
P1} ${(
P)P2}
113 if (( $NUMBER_OF_TESTS == 0 ));
then
134 PARAMETERS[
'let "MEAN += %"']=1.0e-2
135 PARAMETERS[
'let "SIGMA += %"']=1.0e-2
136 PARAMETERS[
'let "SIGNAL += %"']=5.0e-0
137 PARAMETERS[
'let "BACKGROUND += %"']=5.0e-1
144 let
"BACKGROUND = 0.0"
148 printf
"chi2/NDF %12.5f (fit) (gradient)\n" $(($Y1 / (${#DATA} - ${#PARAMETERS})))
152 printf
"chi2/NDF %12.5f (fit) (simplex) \n" $(($Y1 / (${#
DATA} - ${#PARAMETERS})))
156 let
"MEAN = $TRUE_MEAN"
157 let
"SIGMA = $TRUE_SIGMA"
158 let
"SIGNAL = $TRUE_SIGNAL"
159 let
"BACKGROUND = $TRUE_BACKGROUND"
163 printf
"chi2/NDF %12.5f (fit) %12.5f (true)\n" $(($Y1 / (${#
DATA} - ${#PARAMETERS}))) $(($Y2 / ${#
DATA}))
170 let
"CHI2_TRUE = 0.0"
172 for (( m = 0; $m != $NUMBER_OF_TESTS; ++m ));
do
180 PARAMETERS[
'let "MEAN += %"']=1.0e-2
181 PARAMETERS[
'let "SIGMA += %"']=1.0e-2
182 PARAMETERS[
'let "SIGNAL += %"']=5.0e-0
183 PARAMETERS[
'let "BACKGROUND += %"']=5.0e-1
190 let
"BACKGROUND = 0.0"
194 let
"MEAN = $TRUE_MEAN"
195 let
"SIGMA = $TRUE_SIGMA"
196 let
"SIGNAL = $TRUE_SIGNAL"
197 let
"BACKGROUND = $TRUE_BACKGROUND"
201 printf
"chi2/NDF %3d %12.5f (fit) %12.5f (true)\n" $m $(($Y1 / (${#
DATA} - ${#PARAMETERS}))) $(($Y2 / ${#
DATA}))
203 let
"CHI2_FIT += $Y1 / (${#DATA} - ${#PARAMETERS})"
204 let
"CHI2_TRUE += $Y2 / ${#DATA}"
207 printf
"<> %12.5f (fit) %12.5f (true)\n" $(($CHI2_FIT / $NUMBER_OF_TESTS)) $(($CHI2_TRUE / $NUMBER_OF_TESTS))
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
typeset A DATA function generate
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable DEBUG set_variable TMAX_NS set_variable OPTION none DATA
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable DIR $JPP_DIR examples JPhysics set_variable DEBUG set_variable darkcount_Hz set_variable rateL0_Hz set_array rateL1_Hz if do_usage *then usage $script[working directory] fi function typeout()
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
then set_variable NUMBER_OF_TESTS else set_variable NUMBER_OF_TESTS fi function gauss()
no fit printf nominal n $STRING awk v X
double getChi2(const double P)
Get chi2 corresponding to given probability.
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
#define DEBUG(A)
Message macros.