Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
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

◆ main()

int main ( int argc,
char ** argv )

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

23{
24 using namespace std;
25 using namespace JPP;
26
27 const double xmin = -10.0;
28 const double xmax = +10.0;
29
31
32 unsigned int numberOfEvents;
33 unsigned int numberOfBins;
34 JLegendre_t f1(xmin, xmax);
35 int debug;
36
37 try {
38
39 JParser<> zap("Example program to test Legendre polynome.");
40
41 zap['n'] = make_field(numberOfEvents) = 0;
42 zap['N'] = make_field(numberOfBins) = 10;
43 zap['L'] = make_field(f1);
44 zap['d'] = make_field(debug) = 3;
45
46 zap(argc, argv);
47 }
48 catch(const exception &error) {
49 FATAL(error.what() << endl);
50 }
51
52
54
55 for (unsigned int i = 0; i != numberOfBins; ++i) {
56
57 const double x = xmin + i * (xmax - xmin) / (numberOfBins - 1);
58
59 data[x] = f1(x);
60 }
61
62 for (map<double, double>::const_iterator i = data.begin(); i != data.end(); ++i) {
63 DEBUG("data: " << FIXED(7,3) << i->first << ' ' << FIXED(7,3) << i->second << endl);
64 }
65
66
67 const size_t N = 3;
68
69 JLegendre<double, N> g1(data.begin(), data.end());
70
71 for (size_t n = 0; n != N + 1; ++n) {
72 STATUS("Legendre: " << setw(2) << n << ' ' << FIXED(7,3) << g1[n] << endl);
73 }
74
75 if (numberOfEvents > 0) {
76
77 JQuantile Q;
78
79 for (unsigned int i = 0; i != numberOfEvents; ++i) {
80
81 const double x = gRandom->Uniform(xmin, xmax);
82 const double y = f1(x);
83 const double z = g1(x);
84
85 Q.put(y - z);
86 }
87
88 Q.print(cout);
89 }
90
91 return 0;
92}
#define DEBUG(A)
Message macros.
Definition JMessage.hh:62
#define STATUS(A)
Definition JMessage.hh:63
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Double_t g1(const Double_t x)
Function.
Definition JQuantiles.cc:25
int numberOfBins
number of bins for average CDF integral of optical module
Definition JSirene.cc:73
Utility class to parse command line options.
Definition JParser.hh:1698
const JPolynome f1(1.0, 2.0, 3.0)
Function.
const double xmax
const double xmin
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
const int n
Definition JPolint.hh:791
Auxiliary data structure for floating point format specification.
Definition JManip.hh:448
Base class for Legendre polynome.
Definition JLegendre.hh:28
Template definition for function evaluation of Legendre polynome.
Definition JLegendre.hh:269
Auxiliary data structure for running average, standard deviation and quantiles.
Definition JQuantile.hh:46
std::ostream & print(std::ostream &out, bool lpr=true) const
Print quantile.
Definition JQuantile.hh:382
void put(const double x, const double w=1.0)
Put value.
Definition JQuantile.hh:133