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
72 let
"F = `gauss $X $MEAN $SIGMA $SIGNAL $BACKGROUND`"
73 let
"DY = ($F - $Y) * ($F - $Y)"
92 let
"TRUE_SIGMA = 1.0"
93 let
"TRUE_SIGNAL = 1000.0"
94 let
"TRUE_BACKGROUND = 10.0"
102 for KEY
in MEAN SIGMA SIGNAL BACKGROUND;
do
107 printf
"%-12s %12.3f (fit) %12.3f (true)\n" $KEY ${(
P)
P1} ${(
P)P2}
133 PARAMETERS[
'let "MEAN += %"']=1.0e-2
134 PARAMETERS[
'let "SIGMA += %"']=1.0e-2
135 PARAMETERS[
'let "SIGNAL += %"']=5.0e-0
136 PARAMETERS[
'let "BACKGROUND += %"']=5.0e-1
143 let
"BACKGROUND = 0.0"
147 printf
"chi2/NDF %12.5f (fit) (gradient)\n" $(($Y1 / (${#DATA} - ${#PARAMETERS})))
151 printf
"chi2/NDF %12.5f (fit) (simplex) \n" $(($Y1 / (${#
DATA} - ${#PARAMETERS})))
155 let
"MEAN = $TRUE_MEAN"
156 let
"SIGMA = $TRUE_SIGMA"
157 let
"SIGNAL = $TRUE_SIGNAL"
158 let
"BACKGROUND = $TRUE_BACKGROUND"
162 printf
"chi2/NDF %12.5f (fit) %12.5f (true)\n" $(($Y1 / (${#
DATA} - ${#PARAMETERS}))) $(($Y2 / ${#
DATA}))
166 if (( $NUMBER_OF_TESTS > 0 ));
then
169 let
"CHI2_TRUE = 0.0"
171 for (( m = 0; $m != $NUMBER_OF_TESTS; ++m ));
do
179 PARAMETERS[
'let "MEAN += %"']=1.0e-2
180 PARAMETERS[
'let "SIGMA += %"']=1.0e-2
181 PARAMETERS[
'let "SIGNAL += %"']=5.0e-0
182 PARAMETERS[
'let "BACKGROUND += %"']=5.0e-1
189 let
"BACKGROUND = 0.0"
193 let
"MEAN = $TRUE_MEAN"
194 let
"SIGMA = $TRUE_SIGMA"
195 let
"SIGNAL = $TRUE_SIGNAL"
196 let
"BACKGROUND = $TRUE_BACKGROUND"
200 printf
"chi2/NDF %3d %12.5f (fit) %12.5f (true)\n" $m $(($Y1 / (${#
DATA} - ${#PARAMETERS}))) $(($Y2 / ${#
DATA}))
202 let
"CHI2_FIT += $Y1 / (${#DATA} + ${#PARAMETERS})"
203 let
"CHI2_TRUE += $Y2 / ${#DATA}"
206 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 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.
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
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.