58{
61
63 int numberOfEvents;
66 bool subtract;
68
69 try {
70
71 JParser<> zap(
"Example program to test 1D histogram.");
72
79
80 zap(argc, argv);
81 }
82 catch(const exception &error) {
83 FATAL(error.what() << endl);
84 }
85
86
87 if (numberOfEvents <= 0) {
88 FATAL(
"No events." << endl);
89 }
90
91
92 const Int_t nx = 1000;
93 const Double_t
xmin = -5.0;
94 const Double_t
xmax = +5.0;
95
96
98
100
101
102
103
106 else
108
109
110
111
112 for (int i = 0; i != numberOfEvents; ++i) {
113 histogram.
fill(gRandom->Gaus(0.0, 1.0), 1.0);
114 }
115
116 histogram.
div((
double) numberOfEvents);
117
118
119
120
122
123
124
126
128
130
131
133
135
137
138 f1.setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
139 F1.setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
140
141
143
144 TH1D h0("h0", NULL, nx, xmin, xmax);
145 TH1D h1("h1", NULL, nx, xmin, xmax);
146 TH1D h2("h2", NULL, nx, xmin, xmax);
147
148 TH1D i0("i0", NULL, nx, xmin, xmax);
149 TH1D i1("i1", NULL, nx, xmin, xmax);
150
151 for (int i = 1; i <= h0.GetNbinsX(); ++i) {
152
153 const Double_t
x = h0.GetBinCenter(i);
154
155 h0.SetBinContent(i,
g1(x));
156 i0.SetBinContent(i,
G1(x));
157
158 try {
159 h1.SetBinContent(i, get_value(
F1(x).fp));
160 h2.SetBinContent(i, get_value(
f1(x)));
161 i1.SetBinContent(i, get_value(
F1(x)));
162 }
163 catch(const exception& error) {
164 ERROR(error.what() << endl);
165 }
166 }
167
168 if (subtract) {
169 h1.Add(&h0, -1.0);
170 h2.Add(&h0, -1.0);
171 i1.Add(&i0, -1.0);
172 }
173
174 out.Write();
175 out.Close();
176}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Double_t g1(const Double_t x)
Function.
Double_t G1(const Double_t x)
Integral of method g1.
int numberOfBins
number of bins for average CDF integral of optical module
Utility class to parse command line options.
const JPolynome F1
Integral.
const JPolynome f1(1.0, 2.0, 3.0)
Function.
static const JZero zero
Function object to assign zero value.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).