25 inline Double_t
g1(
const Double_t
x)
27 return TMath::Gaus(x, 0.0, 1.0, kTRUE);
37 inline Double_t
G1(
const Double_t
x)
39 return 0.5 * (1.0 + TMath::Erf(sqrt(0.5)*x));
48 int main(
int argc,
char **argv)
59 JParser<> zap(
"Example program to test quantiles calculation of a function.");
68 catch(
const exception &error) {
69 FATAL(error.what() << endl);
76 if (Q < 0.0 || Q > 1.0) {
77 FATAL(
"Fatal error: quantile " <<
Q << endl);
82 const Double_t xmin = -5.0;
83 const Double_t xmax = +5.0;
87 NOTICE(
"quantity " << setw(10) <<
"calculated" <<
" / " << setw(10) <<
"true" << endl);
88 NOTICE(
"X " <<
FIXED(10,6) << quantiles.getX() <<
" / " <<
FIXED(10,6) << 0.0 << endl);
89 NOTICE(
"FWHM " <<
FIXED(10,6) << quantiles.getFWHM() <<
" / " <<
FIXED(10,6) << 2.0*sqrt(2.0*log(2.0)) << endl);
90 NOTICE(
"integral " <<
FIXED(10,6) << quantiles.getIntegral() <<
" / " <<
FIXED(10,6) <<
G1(xmax) -
G1(xmin) << endl);
91 NOTICE(
"quantile " <<
FIXED(10,6) << (
G1(quantiles.getUpperLimit()) -
92 G1(quantiles.getLowerLimit())) <<
" / " <<
FIXED(10,6) <<
Q << endl);
94 ASSERT(fabs(quantiles.getX() - 0.0) < precision);
95 ASSERT(fabs(quantiles.getFWHM() - 2.0*sqrt(2.0*log(2.0))) < precision);
96 ASSERT(fabs(quantiles.getIntegral() - (
G1(xmax) -
G1(xmin))) < precision);
97 ASSERT(fabs((
G1(quantiles.getUpperLimit()) -
98 G1(quantiles.getLowerLimit())) -
Q) < precision);
Utility class to parse command line options.
Q(UTCMax_s-UTCMin_s)-livetime_s
int main(int argc, char *argv[])
Auxiliary data structure for floating point format specification.
Double_t G1(const Double_t x)
Integral of method g1.
#define ASSERT(A,...)
Assert macro.
I/O formatting auxiliaries.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
General purpose class for a collection of sorted elements.
General purpose messaging.
Utility class to parse command line options.
int numberOfBins
number of bins for average CDF integral of optical module
Double_t g1(const Double_t x)
Function.