Jpp  15.0.1-rc.2-highQE
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JMath/JLegendre.cc File Reference

Example program to test Legendre polynome. More...

#include <string>
#include <iostream>
#include <iomanip>
#include "TRandom3.h"
#include "JMath/JLegendre.hh"
#include "JMath/JMathSupportkit.hh"
#include "JTools/JQuantile.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Example program to test Legendre polynome.

Author
mdejong

Definition in file JMath/JLegendre.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 23 of file JMath/JLegendre.cc.

24 {
25  using namespace std;
26  using namespace JPP;
27 
28  const double xmin = -10.0;
29  const double xmax = +10.0;
30 
31  typedef JLegendre<double> JLegendre_t;
32 
33  unsigned int numberOfEvents;
34  unsigned int numberOfBins;
35  JLegendre_t f1(xmin, xmax);
36  int debug;
37 
38  try {
39 
40  JParser<> zap("Example program to test Legendre polynome.");
41 
42  zap['n'] = make_field(numberOfEvents) = 0;
43  zap['N'] = make_field(numberOfBins) = 10;
44  zap['L'] = make_field(f1);
45  zap['d'] = make_field(debug) = 3;
46 
47  zap(argc, argv);
48  }
49  catch(const exception &error) {
50  FATAL(error.what() << endl);
51  }
52 
53 
55 
56  for (unsigned int i = 0; i != numberOfBins; ++i) {
57 
58  const double x = xmin + i * (xmax - xmin) / (numberOfBins - 1);
59 
60  data[x] = f1(x);
61  }
62 
63  for (map<double, double>::const_iterator i = data.begin(); i != data.end(); ++i) {
64  DEBUG("data: " << FIXED(7,3) << i->first << ' ' << FIXED(7,3) << i->second << endl);
65  }
66 
67 
68  const size_t N = 3;
69 
70  JLegendre<double, N> g1(data.begin(), data.end());
71 
72  for (size_t n = 0; n != N + 1; ++n) {
73  STATUS("Legendre: " << setw(2) << n << ' ' << FIXED(7,3) << g1[n] << endl);
74  }
75 
76  if (numberOfEvents > 0) {
77 
78  JQuantile Q;
79 
80  for (unsigned int i = 0; i != numberOfEvents; ++i) {
81 
82  const double x = gRandom->Uniform(xmin, xmax);
83  const double y = f1(x);
84  const double z = g1(x);
85 
86  Q.put(y - z);
87  }
88 
89  Q.print(cout);
90  }
91 
92  return 0;
93 }
Utility class to parse command line options.
Definition: JParser.hh:1500
Q(UTCMax_s-UTCMin_s)-livetime_s
#define STATUS(A)
Definition: JMessage.hh:63
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:446
const int n
Definition: JPolint.hh:660
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1961
int debug
debug level
Definition: JSirene.cc:63
#define FATAL(A)
Definition: JMessage.hh:67
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
int numberOfBins
number of bins for average CDF integral of optical module
Definition: JSirene.cc:64
Double_t g1(const Double_t x)
Function.
Definition: JQuantiles.cc:25