1 #include "BinnedParams.hxx" 4 BinnedParams::BinnedParams(){
9 _typeShort = kUnknownShort;
12 _useInterpolation =
false;
16 void BinnedParams::Initialize(
17 const std::string& folder_name,
18 const std::string& name,
20 const std::string& extension,
21 bool useInterpolation){
26 _useInterpolation = useInterpolation;
43 void BinnedParams::SetShortType(){
45 if (_type == k1D_SYMMETRIC ||
46 _type == k1D_SYMMETRIC_NOMEAN ||
48 _type == k1D_EFF_SYMMETRIC ||
49 _type == k1D_EFF_ASSYMMETRIC){
53 else if ( _type == k2D_SYMMETRIC ||
54 _type == k2D_SYMMETRIC_NOMEAN ||
56 _type == k2D_EFF_SYMMETRIC ||
57 _type == k2D_EFF_ASSYMMETRIC){
69 std::cout <<
"-------- BinnedParams: " << _name <<
"--------------------" << std::endl;
70 std::cout << std::endl;
73 if (_type==k1D_SYMMETRIC){
74 std::cout <<
"#: \t min \t max \t mean \t sigma" << std::endl;
75 for (it=0;it<_nBins;it++, i++)
76 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_mean <<
"\t " << _bins[it]->_sigma << std::endl;
78 else if (_type==k2D_SYMMETRIC){
79 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t mean \t sigma" << std::endl;
80 for (it=0; it<_nBins;it++, i++)
81 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " 82 << _bins[it]->_max2 <<
"\t " << _bins[it]->_mean <<
"\t " << _bins[it]->_sigma << std::endl;
84 else if (_type==k3D_SYMMETRIC){
85 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t min3 \t max3 \t mean \t sigma" << std::endl;
86 for (it=0; it<_nBins;it++, i++)
87 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2
88 <<
"\t" << _bins[it]->_min3 <<
"\t " << _bins[it]->_max3
89 <<
"\t " << _bins[it]->_mean <<
"\t " << _bins[it]->_sigma << std::endl;
92 else if (_type==k1D_SYMMETRIC_NOMEAN){
93 std::cout <<
"#: \t min \t max \t sigma" << std::endl;
94 for (it=0;it<_nBins;it++, i++)
95 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_sigma << std::endl;
97 else if (_type==k2D_SYMMETRIC_NOMEAN){
98 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t sigma" << std::endl;
99 for (it=0; it<_nBins;it++, i++)
100 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " 101 << _bins[it]->_max2 <<
"\t " << _bins[it]->_sigma << std::endl;
103 else if (_type==k3D_SYMMETRIC_NOMEAN){
104 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t min3 \t max3 \t sigma" << std::endl;
105 for (it=0; it<_nBins;it++, i++)
106 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2
107 <<
"\t" << _bins[it]->_min3 <<
"\t " << _bins[it]->_max3 <<
"\t " << _bins[it]->_sigma << std::endl;
110 else if (_type==k1D_DATA){
111 std::cout <<
"#: \t min \t max \t value" << std::endl;
112 for (it=0;it<_nBins;it++, i++)
113 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_mean << std::endl;
115 else if (_type==k2D_DATA){
116 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t data" << std::endl;
117 for (it=0; it<_nBins;it++, i++)
118 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " 119 << _bins[it]->_max2 <<
"\t " << _bins[it]->_mean << std::endl;
121 else if (_type==k3D_DATA){
122 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t min3 \t max3 \t data" << std::endl;
123 for (it=0; it<_nBins;it++, i++)
124 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2
125 <<
"\t" << _bins[it]->_min3 <<
"\t " << _bins[it]->_max3 <<
"\t " << _bins[it]->_mean << std::endl;
128 else if (_type==k1D_EFF_SYMMETRIC){
129 std::cout <<
"#: \t min \t max \t real \t meanmc \t sigmamc \t meandata \t sigmadata" << std::endl;
130 for (it=0; it<_nBins;it++, i++)
131 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_meanREAL <<
"\t " 132 << _bins[it]->_meanMC <<
"\t " << _bins[it]->_sigmaMCl<< _bins[it]->_meanDATA <<
"\t " << _bins[it]->_sigmaDATAl << std::endl;
134 else if (_type==k2D_EFF_SYMMETRIC){
135 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t real \t meanmc \t sigmamc \t meandata \t sigmadata" << std::endl;
136 for (it=0; it<_nBins;it++, i++)
137 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2 <<
"\t " 138 << _bins[it]->_meanREAL <<
"\t "<< _bins[it]->_meanMC <<
"\t " << _bins[it]->_sigmaMCl<< _bins[it]->_meanDATA <<
"\t " << _bins[it]->_sigmaDATAl << std::endl;
141 else if (_type==k3D_EFF_SYMMETRIC){
142 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t min3 \t max3 \t real \t meanmc \t sigmamc \t meandata \t sigmadata" << std::endl;
143 for (it=0; it<_nBins;it++, i++)
144 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2
145 <<
"\t" << _bins[it]->_min3 <<
"\t " << _bins[it]->_max3
146 <<
"\t" << _bins[it]->_meanREAL <<
"\t "<< _bins[it]->_meanMC <<
"\t " << _bins[it]->_sigmaMCl<< _bins[it]->_meanDATA <<
"\t " << _bins[it]->_sigmaDATAl << std::endl;
149 else if (_type==k1D_EFF_ASSYMMETRIC){
150 std::cout <<
"#: \t min \t max \t real \t meanmc \t sigmamcl \t sigmamch \t meandata \t sigmadatal \t sigmadatah" << std::endl;
151 for (it=0; it<_nBins;it++, i++)
152 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_meanREAL <<
"\t "<< _bins[it]->_meanMC <<
"\t " 153 << _bins[it]->_sigmaMCl <<
"\t " << _bins[it]->_sigmaMCh << _bins[it]->_meanDATA <<
"\t " << _bins[it]->_sigmaDATAl<<
" \t " 154 << _bins[it]->_sigmaDATAh << std::endl;
156 else if (_type==k2D_EFF_ASSYMMETRIC){
157 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t real \t meanmc \t sigmamcl \t sigmamch \t meandata \t sigmadatal \t sigmadatah" << std::endl;
158 for (it=0; it<_nBins;it++, i++)
159 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2 <<
"\t " 160 << _bins[it]->_meanREAL <<
"\t "<< _bins[it]->_meanMC <<
"\t " << _bins[it]->_sigmaMCl <<
"\t " << _bins[it]->_sigmaMCh<<
"\t " 161 << _bins[it]->_meanDATA <<
"\t " << _bins[it]->_sigmaDATAl<<
"\t " << _bins[it]->_sigmaDATAh << std::endl;
164 else if (_type==k3D_EFF_ASSYMMETRIC){
165 std::cout <<
"#: \t min1 \t max1 \t min2 \t max2 \t min3 \t max3 \t real \t meanmc \t sigmamcl \t sigmamch \t meandata \t sigmadatal \t sigmadatah" << std::endl;
166 for (it=0; it<_nBins;it++, i++)
167 std::cout << i <<
": \t " << _bins[it]->_min <<
"\t " << _bins[it]->_max <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2
168 <<
"\t " << _bins[it]->_min2 <<
"\t " << _bins[it]->_max2
169 <<
"\t" << _bins[it]->_meanREAL <<
"\t " << _bins[it]->_meanMC <<
"\t " << _bins[it]->_sigmaMCl <<
"\t " << _bins[it]->_sigmaMCh
170 <<
"\t" << _bins[it]->_meanDATA <<
"\t " << _bins[it]->_sigmaDATAl <<
"\t " << _bins[it]->_sigmaDATAh << std::endl;
180 std::string inputFileName = inputDirName+
"/"+_name+extension+
".dat";
182 std::ifstream inputFile(inputFileName.c_str(), std::ios::in);
185 std::cerr <<
"Cannot open input file '" << inputFileName <<
"'. Exit!" << std::endl;
189 std::string start, end, start2, end2, start3, end3, mean, sigma;
190 std::string mean_REAL, mean_CS_MC, sig_CS_MCl, sig_CS_MCh, mean_CS_DATA, sig_CS_DATAl, sig_CS_DATAh ;
192 if(_type==k1D_SYMMETRIC){
193 while (inputFile >> start >> end >> mean >> sigma ) {
194 AddBin(strtod(start.c_str(), &pEnd),
195 strtod(end.c_str(), &pEnd),
196 strtod(mean.c_str(), &pEnd),
197 strtod(sigma.c_str(), &pEnd));
200 else if(_type==k2D_SYMMETRIC){
201 while (inputFile >> start >> end >> start2 >> end2 >> mean >> sigma ) {
202 AddBin(strtod(start.c_str(), &pEnd),
203 strtod(end.c_str(), &pEnd),
204 strtod(start2.c_str(), &pEnd),
205 strtod(end2.c_str(), &pEnd),
206 strtod(mean.c_str(), &pEnd),
207 strtod(sigma.c_str(), &pEnd));
211 else if(_type==k3D_SYMMETRIC){
212 while (inputFile >> start >> end >> start2 >> end2 >> start3 >> end3 >> mean >> sigma ) {
213 AddBin(strtod(start.c_str(), &pEnd),
214 strtod(end.c_str(), &pEnd),
215 strtod(start2.c_str(), &pEnd),
216 strtod(end2.c_str(), &pEnd),
217 strtod(start3.c_str(), &pEnd),
218 strtod(end3.c_str(), &pEnd),
219 strtod(mean.c_str(), &pEnd),
220 strtod(sigma.c_str(), &pEnd));
224 if(_type==k1D_SYMMETRIC_NOMEAN){
225 while (inputFile >> start >> end >> sigma) {
226 AddBin(strtod(start.c_str(), &pEnd),
227 strtod(end.c_str(), &pEnd),
229 strtod(sigma.c_str(), &pEnd));
232 else if(_type==k2D_SYMMETRIC_NOMEAN){
233 while (inputFile >> start >> end >> start2 >> end2 >> sigma) {
234 AddBin(strtod(start.c_str(), &pEnd),
235 strtod(end.c_str(), &pEnd),
236 strtod(start2.c_str(), &pEnd),
237 strtod(end2.c_str(), &pEnd),
239 strtod(sigma.c_str(), &pEnd));
243 else if(_type==k3D_SYMMETRIC_NOMEAN){
244 while (inputFile >> start >> end >> start2 >> end2 >> start3 >> end3 >> sigma ) {
245 AddBin(strtod(start.c_str(), &pEnd),
246 strtod(end.c_str(), &pEnd),
247 strtod(start2.c_str(), &pEnd),
248 strtod(end2.c_str(), &pEnd),
249 strtod(start3.c_str(), &pEnd),
250 strtod(end3.c_str(), &pEnd),
252 strtod(sigma.c_str(), &pEnd));
257 while (inputFile >> start >> end >> mean) {
258 AddBin(strtod(start.c_str(), &pEnd),
259 strtod(end.c_str(), &pEnd),
260 strtod(mean.c_str(), &pEnd),
264 else if(_type==k2D_DATA){
265 while (inputFile >> start >> end >> start2 >> end2 >> mean) {
266 AddBin(strtod(start.c_str(), &pEnd),
267 strtod(end.c_str(), &pEnd),
268 strtod(start2.c_str(), &pEnd),
269 strtod(end2.c_str(), &pEnd),
270 strtod(mean.c_str(), &pEnd),
275 else if(_type==k3D_DATA){
276 while (inputFile >> start >> end >> start2 >> end2 >> start3 >> end3 >> mean) {
277 AddBin(strtod(start.c_str(), &pEnd),
278 strtod(end.c_str(), &pEnd),
279 strtod(start2.c_str(), &pEnd),
280 strtod(end2.c_str(), &pEnd),
281 strtod(start3.c_str(), &pEnd),
282 strtod(end3.c_str(), &pEnd),
283 strtod(mean.c_str(), &pEnd),
288 else if(_type==k1D_EFF_SYMMETRIC){
289 while (inputFile >> start >> end >> mean_REAL >> mean_CS_MC >> sig_CS_MCl >> mean_CS_DATA >> sig_CS_DATAl) {
290 AddBin(strtod(start.c_str(), &pEnd),
291 strtod(end.c_str(), &pEnd),
292 strtod(mean_REAL.c_str(), &pEnd),
293 strtod(mean_CS_MC.c_str(), &pEnd),
294 strtod(sig_CS_MCl.c_str(), &pEnd),
295 strtod(sig_CS_MCl.c_str(), &pEnd),
296 strtod(mean_CS_DATA.c_str(), &pEnd),
297 strtod(sig_CS_DATAl.c_str(), &pEnd),
298 strtod(sig_CS_DATAl.c_str(), &pEnd));
301 else if(_type==k2D_EFF_SYMMETRIC){
302 while (inputFile >> start >> end >> start2 >> end2 >> mean_REAL >> mean_CS_MC >> sig_CS_MCl >> mean_CS_DATA >> sig_CS_DATAl) {
303 AddBin(strtod(start.c_str(), &pEnd),
304 strtod(end.c_str(), &pEnd),
305 strtod(start2.c_str(), &pEnd),
306 strtod(end2.c_str(), &pEnd),
307 strtod(mean_REAL.c_str(), &pEnd),
308 strtod(mean_CS_MC.c_str(), &pEnd),
309 strtod(sig_CS_MCl.c_str(), &pEnd),
310 strtod(sig_CS_MCl.c_str(), &pEnd),
311 strtod(mean_CS_DATA.c_str(), &pEnd),
312 strtod(sig_CS_DATAl.c_str(), &pEnd),
313 strtod(sig_CS_DATAl.c_str(), &pEnd));
316 else if(_type==k3D_EFF_SYMMETRIC){
317 while (inputFile >> start >> end >> start2 >> end2 >> start3 >> end3 >> mean_REAL >> mean_CS_MC >> sig_CS_MCl >> mean_CS_DATA >> sig_CS_DATAl) {
318 AddBin(strtod(start.c_str(), &pEnd),
319 strtod(end.c_str(), &pEnd),
320 strtod(start2.c_str(), &pEnd),
321 strtod(end2.c_str(), &pEnd),
322 strtod(start3.c_str(), &pEnd),
323 strtod(end3.c_str(), &pEnd),
324 strtod(mean_REAL.c_str(), &pEnd),
325 strtod(mean_CS_MC.c_str(), &pEnd),
326 strtod(sig_CS_MCl.c_str(), &pEnd),
327 strtod(sig_CS_MCl.c_str(), &pEnd),
328 strtod(mean_CS_DATA.c_str(), &pEnd),
329 strtod(sig_CS_DATAl.c_str(), &pEnd),
330 strtod(sig_CS_DATAl.c_str(), &pEnd));
334 else if(_type==k1D_EFF_ASSYMMETRIC){
335 while (inputFile >> start >> end >> mean_REAL >> mean_CS_MC >> sig_CS_MCl >> sig_CS_MCh >> mean_CS_DATA >> sig_CS_DATAl >> sig_CS_DATAh ) {
336 AddBin(strtod(start.c_str(), &pEnd),
337 strtod(end.c_str(), &pEnd),
338 strtod(mean_REAL.c_str(), &pEnd),
339 strtod(mean_CS_MC.c_str(), &pEnd),
340 strtod(sig_CS_MCl.c_str(), &pEnd),
341 strtod(sig_CS_MCh.c_str(), &pEnd),
342 strtod(mean_CS_DATA.c_str(), &pEnd),
343 strtod(sig_CS_DATAl.c_str(), &pEnd),
344 strtod(sig_CS_DATAh.c_str(), &pEnd));
347 else if(_type==k2D_EFF_ASSYMMETRIC){
348 while (inputFile >> start >> end >> start2 >> end2 >> mean_REAL >> mean_CS_MC >> sig_CS_MCl >> sig_CS_MCh >> mean_CS_DATA >> sig_CS_DATAl >> sig_CS_DATAh ) {
349 AddBin(strtod(start.c_str(), &pEnd),
350 strtod(end.c_str(), &pEnd),
351 strtod(start2.c_str(), &pEnd),
352 strtod(end2.c_str(), &pEnd),
353 strtod(mean_REAL.c_str(), &pEnd),
354 strtod(mean_CS_MC.c_str(), &pEnd),
355 strtod(sig_CS_MCl.c_str(), &pEnd),
356 strtod(sig_CS_MCh.c_str(), &pEnd),
357 strtod(mean_CS_DATA.c_str(), &pEnd),
358 strtod(sig_CS_DATAl.c_str(), &pEnd),
359 strtod(sig_CS_DATAh.c_str(), &pEnd));
363 else if(_type==k3D_EFF_ASSYMMETRIC){
364 while (inputFile >> start >> end >> start2 >> end2 >> start3 >> end3
365 >> mean_REAL>> mean_CS_MC >> sig_CS_MCl >> sig_CS_MCh >> mean_CS_DATA >> sig_CS_DATAl >> sig_CS_DATAh ) {
366 AddBin(strtod(start.c_str(), &pEnd),
367 strtod(end.c_str(), &pEnd),
368 strtod(start2.c_str(), &pEnd),
369 strtod(end2.c_str(), &pEnd),
370 strtod(start3.c_str(), &pEnd),
371 strtod(end3.c_str(), &pEnd),
372 strtod(mean_REAL.c_str(), &pEnd),
373 strtod(mean_CS_MC.c_str(), &pEnd),
374 strtod(sig_CS_MCl.c_str(), &pEnd),
375 strtod(sig_CS_MCh.c_str(), &pEnd),
376 strtod(mean_CS_DATA.c_str(), &pEnd),
377 strtod(sig_CS_DATAl.c_str(), &pEnd),
378 strtod(sig_CS_DATAh.c_str(), &pEnd));
391 if (_typeShort!=k1D)
return false;
395 for (it=0; it<_nBins;it++){
396 if (value>=_bins[it]->_min && value<_bins[it]->_max){
412 if (_typeShort!=k2D)
return false;
415 for (Int_t it=0; it<_nBins;it++){
416 if (value1>=_bins[it]->_min && value1<_bins[it]->_max && value2>= _bins[it]->_min2 && value2 < _bins[it]->_max2 ){
431 if (_typeShort!=k3D)
return false;
434 for (Int_t it=0; it<_nBins;it++){
435 if (value1>=_bins[it]->_min && value1<_bins[it]->_max
436 && value2>= _bins[it]->_min2 && value2 < _bins[it]->_max2
437 && value3>= _bins[it]->_min3 && value3 < _bins[it]->_max3 ){
453 if (_typeShort!=k1D)
return false;
457 for (it=0; it<_nBins;it++){
458 if (value>=_bins[it]->_min && value<_bins[it]->_max){
474 for (it=0; it<_nBins;it++){
476 mean =_bins[it]->
_mean;
477 sigma =_bins[it]->_sigma;
493 for (it=0; it<_nBins;it++){
497 params.
sigma = bin->_sigma;
519 if (!
GetBin(value, bin))
return false;
534 if (!
GetBin(value, bin))
return false;
537 params.
sigma = bin->_sigma;
557 if (!
GetBin(value1, value2, bin))
return false;
571 if (!
GetBin(value1, value2, bin))
return false;
574 params.
sigma = bin->_sigma;
593 if (!
GetBin(value1, value2, value3, bin))
return false;
607 if (!
GetBin(value1, value2, value3, bin))
return false;
610 params.
sigma = bin->_sigma;
627 if((UInt_t)index>=NMAXSYSTSOURCEBINS) {
628 std::cout<<
" problem size of the array is " << NMAXSYSTSOURCEBINS <<
", bin index is "<<index<<std::endl;
631 if (correct) _ncorrect[index]++;
632 else _nwrong[index]++;
643 if (_nGraphBins == 0)
646 _graphBins[0]->
Update(min, max, mean, sigma);
661 if (_nGraphBins == 0)
664 _graphBins[0]->
Update(min, max,
685 Float_t value = (max + min)/2;
689 _graphBins[_nGraphBins++] = bin;
711 Float_t value = (max + min)/2;
715 _graphBins[_nGraphBins++] = bin;
736 Float_t value1 = (max + min)/2;
738 Float_t value2 = (max2 + min2)/2;
743 _graphBins[_nGraphBins++] = bin;
766 Float_t value1 = (max + min)/2;
768 Float_t value2 = (max2 + min2)/2;
773 _graphBins[_nGraphBins++] = bin;
793 if (_typeShort!=k2D)
return false;
796 for (Int_t it=0; it<_nGraphBins;it++){
797 if (value1>=_graphBins[it]->_min && value1<_graphBins[it]->_max){
798 bin = _graphBins[it];
812 if (_typeShort!=k3D)
return false;
815 for (Int_t it=0; it<_nGraphBins;it++){
816 if (value1>=_graphBins[it]->_min && value1<_graphBins[it]->_max
817 && value2>= _graphBins[it]->_min2 && value2 < _graphBins[it]->_max2){
818 bin = _graphBins[it];
832 if (_nGraphBins == 0)
return false;
835 if (!bin)
return false;
859 if (!
GetGraphBin(value1, value2, bin))
return false;
869 if (!GetValue( BinnedParamsGraphBin::kMean, value, params.
mean ))
871 if (!GetValue( BinnedParamsGraphBin::kSigma, value, params.
sigma ))
873 if (!GetValue( BinnedParamsGraphBin::kMeanMCANA, value, params.
meanMCANA ))
875 if (!GetValue( BinnedParamsGraphBin::kMeanMC, value, params.
meanMC ))
877 if (!GetValue( BinnedParamsGraphBin::kSigmaMCl, value, params.
sigmaMCl ))
879 if (!GetValue( BinnedParamsGraphBin::kSigmaMCh, value, params.sigmaMCh ))
881 if (!GetValue( BinnedParamsGraphBin::kMeanDATA, value, params.
meanDATA ))
883 if (!GetValue( BinnedParamsGraphBin::kSigmaDATAl, value, params.
sigmaDATAl ))
885 if (!GetValue( BinnedParamsGraphBin::kSigmaDATAh, value, params.sigmaDATAh ))
Float_t _meanREAL
mean and sigma for this bin
bool GetBinIndex(Float_t value, Int_t &index)
Gets the bin index for a 1D source.
bool GetParams(Float_t value, BinnedParamsParams ¶ms)
Fill params given a value.
void Print()
Dump into the screen the systematic source values.
void SetType(TypeEnum type)
Set the type.
Float_t sigma
The sigma value for each of the systematic parameters of the control sample taking errors from data a...
bool GetGraphBin(Float_t value, BinnedParamsGraphBin *&bin)
Gets the bin for a 2D source.
bool GetBinValues(Float_t value, Float_t &mean, Float_t &sigma)
Gets the bin values for a 1D source.
Float_t meanDATA
The mean value for each of the systematic parameters of the control sample.
bool UpdateEfficiencyCounter(Int_t index, bool correct)
Update the efficiency variables _ncorrect and _nwrong.
Float_t _sigmaDATAl
Efficiency of the DATA control sample.
Float_t _mean
mean and sigma for this bin
Float_t meanMC
The mean value for each of the systematic parameters of the control sample.
void Read(const std::string &inputDirName, const std::string &extension="")
Read from a file the systematic source values.
void AddBin(Float_t min, Float_t max, Float_t meanREAL, Float_t meanMC, Float_t sigmaMCl, Float_t sigmaMCh, Float_t meanDATA, Float_t sigmaDATAl, Float_t sigmaDATAh)
Add a new bin for a 1D source.
Float_t _sigmaMCl
Efficiency of the MC control sample.
bool GetInterBinValues(Float_t value1, BinnedParamsParams ¶ms)
Get values using interpolation.
TypeEnum
Enumerator describing the values that _type member can take.
Float_t mean
The mean value for each of the systematic parameters of the control sample.
Float_t meanMCANA
The mean value for each of the systematic parameters of the analysis sample.
Float_t _sigmaMCh
Low error on Efficiency of the MC control sample.
Float_t _meanMC
Efficiency of the MC analysis sample.
bool GetBin(Float_t value, BinnedParamsBin *&bin)
Gets the bin for a 1D source.
void AddGraphBin(Float_t min, Float_t max, Float_t meanREAL, Float_t meanMC, Float_t sigmaMCl, Float_t sigmaMCh, Float_t meanDATA, Float_t sigmaDATAl, Float_t sigmaDATAh)
Add a new bin graph for a 1D source.
Float_t sigmaDATAl
The sigma value for each of the systematic parameters of the control sample /// with possibility of a...
bool GetParametersForBin(Int_t index, Float_t &mean, Float_t &sigma)
Gets the bin values for a source provided the bin index.
Int_t _index
high error on Efficiency of the DATA control sample
Float_t _sigmaDATAh
Low error on Efficiency of the DATA control sample.
void Update(Float_t min, Float_t max, Float_t meanREAL, Float_t meanMC, Float_t sigmaMCl, Float_t sigmaMCh, Float_t meanDATA, Float_t sigmaDATAl, Float_t sigmaDATAh)
Update.
Float_t _meanDATA
high error on Efficiency of the MC control sample