85     JParser<> zap(
"Program to test JGandalf algorithm.");
 
   95   catch(
const exception& error) {
 
   96     FATAL(error.what() << endl);
 
  101   ASSERT(numberOfEvents > 0);
 
  105   TF1 fs(
"fs", 
"exp(-0.5 * (x-[0])*(x-[0]) / ([1]*[1]))");
 
  108   fs.FixParameter(0, 
gauss.mean);
 
  109   fs.FixParameter(1, 
gauss.sigma);
 
  112   const Double_t 
xmin = -5.0;
 
  113   const Double_t 
xmax = +5.0;
 
  120   TH1D      
H[] = { TH1D(
"ha", 
"", 101,   -0.1,    +0.1),
 
  121                     TH1D(
"hb", 
"", 101,   -0.1,    +0.1),
 
  122                     TH1D(
"hc", 
"", 101, -100.0,  +100.0),
 
  123                     TH1D(
"hd", 
"", 101, -100.0,  +100.0) };
 
  127   for (
int i = 0; i != numberOfEvents; ++i) {
 
  129     STATUS(
"event: " << setw(10) << i << 
'\r'); 
DEBUG(endl);
 
  131     TH1D h0(
"h0", NULL, nx, 
xmin, 
xmax);
 
  135     h0.FillRandom(
"fs", (Int_t) 
gauss.signal);
 
  136     h0.FillRandom(
"fb", (Int_t) 
gauss.background);
 
  140     for (Int_t i = 1; i <= h0.GetNbinsX(); ++i) {
 
  141       data.push_back(JElement_t(h0.GetBinCenter (i),
 
  142                                 h0.GetBinContent(i)));
 
  149     fit.parameters.resize(4);
 
  151     fit.parameters[0] = &JGauss::mean;
 
  153     fit.parameters[2] = &JGauss::signal;
 
  154     fit.parameters[3] = &JGauss::background;
 
  156     fit.value = 
JGauss(h0.GetMean(),
 
  158                        h0.GetEntries() * (
xmax - 
xmin) / nx - h0.GetMinimum(),
 
  161     DEBUG(
"Start value " << fit.value << endl);
 
  165     const double chi2 = fit(
g1, 
data.begin(), 
data.end());
 
  169     DEBUG(
"Final value " << fit.value << endl);
 
  170     DEBUG(
"Chi2 " << chi2 << endl);
 
  172     const double Y[] = { fit.value.mean                             - 
gauss.mean,
 
  173                          fit.value.sigma                            - 
gauss.sigma,
 
  175                          fit.value.background * nx                  - 
gauss.background };
 
  177     for (
int i = 0; i != 
sizeof(Q)/
sizeof(Q[0]); ++i) {
 
  183   for (
int i = 0; i != 
sizeof(Q)/
sizeof(Q[0]); ++i) {
 
  195     for (
int i = 0; i != 
sizeof(
H)/
sizeof(
H[0]); ++i) {
 
  203   for (
int i = 0; i != 
sizeof(Q)/
sizeof(Q[0]); ++i) {
 
double getMean(vector< double > &v)
get mean of vector content
 
std::ostream & shortprint(std::ostream &out)
Set short printing.
 
std::ostream & longprint(std::ostream &out)
Set long printing.
 
#define DEBUG(A)
Message macros.
 
#define ASSERT(A,...)
Assert macro.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Double_t g1(const Double_t x)
Function.
 
Place holder for custom implementation.
 
Auxiliary class for CPU timing and usage.
 
void print(std::ostream &out, const JScale_t scale=milli_t) const
Print timer data.
 
Utility class to parse command line options.
 
Auxiliary classes and methods for linear and iterative data regression.
 
double gauss(const double x, const double sigma)
Gauss function (normalised to 1 at x = 0).
 
static const double H
Planck constant [eV s].
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).