BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnLambdaQaReport.cxx
Go to the documentation of this file.
1/**
2 * \file BmnLambdaQaReport.cxx
3 * \brief visualising simulated lambda reconstruction performance calculation.
4 * \author Andrey Lebedev <andrey.lebedev@gsi.de> - original author for CBM experiment
5 * \author Sergey Merts <sergey.merts@gmail.com> - modifications for BMN experiment
6 * \author Alexander Lytaev <sas-lyt@ya.ru> - modifications for BMN experiment
7 * \date 2018 July
8 */
9
10#include "BmnLambdaQaReport.h"
11
12#include "BmnDrawHist.h"
13#include "BmnGemStripStation.h"
14#include "BmnGemStripStationSet_RunSpring2017.h"
15#include "BmnHistManager.h"
16#include "BmnLambdaQa.h"
17#include "BmnParticlePairsInfo.h"
18#include "BmnReportElement.h"
19#include "BmnUtils.h"
20#include "TCanvas.h"
21#include "TF1.h"
22#include "TFitResult.h"
23#include "TH1.h"
24#include "TPaveStats.h"
25#include "TProfile.h"
26
27#include <iomanip>
28#include <iostream>
29#include <vector>
30using namespace std;
33using lit::Split;
34
36 Bool_t useRecoFile,
38 vector<TClonesArray*> branches)
40 , fUseMCFile(useMCFile)
41 , fMC(branches[0])
42 , fUseRecoFile(useRecoFile)
43 , fRECO(branches[1])
44 , drawPointsOpt("PE1")
45 , fParticlePairsInfo(info)
46{
47 SetReportName("lambda_qa");
48}
49
51
53{
54 Out() << R()->DocumentBegin();
55 Out() << R()->Title(0, GetTitle());
58 Out() << R()->DocumentEnd();
59}
60
62{
63 Out() << "<h1> <font color='00FF00'>The criterion for lambda to be reconstructable: </font></h1>" << endl;
64 Out() << "<h1> <font color='00FF00'>Both of its decay products have at least </font><font color='FF0000'> 4 "
65 "</font><font color='00FF00'> gem or silicon hits </font></h1>"
66 << endl;
67
68 if (fUseMCFile) {
69 Out() << "<h1> Number of lambda:\n" << HM()->H1("numberOfLambdas_LambdaQa")->GetEntries() << "</h1>" << endl;
70 Out() << "<h1> Number of reconstructable lambda:\n"
71 << HM()->H1("numberOfReconstructableLambdas_LambdaQa")->GetEntries() << "</h1>" << endl;
72 Double_t lRecEff = HM()->H1("numberOfReconstructableLambdas_LambdaQa")->GetEntries()
73 / HM()->H1("numberOfLambdas_LambdaQa")->GetEntries();
74 Out() << setprecision(2) << fixed << "<h1> Geometrical efficiency:\n"
75 << lRecEff * 100 << "%" << "</h1>" << endl;
76 Out() << setprecision(2) << "<h1> Number of particle pairs reconstructed by MC tracks:\n"
77 << HM()->H1("numberOfMCReconstructedParticlePairsQA")->GetEntries() << "</h1>" << endl;
78 Out() << setprecision(2) << "<h1> Number of particle pairs reconstructed by MC tracks being lambda:\n"
79 << HM()->H1("numberOfMCReconstructedLambdasQA")->GetEntries() << "</h1>" << endl;
80 Out() << setprecision(2) << fixed
81 << "<h1> Percentage of particle pairs reconstructed by MC tracks being lambda:\n"
82 << HM()->H1("numberOfMCReconstructedLambdasQA")->GetEntries()
83 / HM()->H1("numberOfMCReconstructedParticlePairsQA")->GetEntries() * 100
84 << "% </h1>" << endl;
85
86 Out() << "<h1> <font color='6f00ff'> Kinematic cuts for MC are: </font></h1>" << endl;
87 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getMomPart1Min() << " < P_1 < "
88 << fParticlePairsInfo->getMomPart1Max() << " (GeV/c)" << "</h1>" << endl;
89 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getMomPart2Min() << " < P_2 < "
90 << fParticlePairsInfo->getMomPart2Max() << " (GeV/c)" << "</h1>" << endl;
91 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getEtaPart1Min() << " < Eta_1 < "
92 << fParticlePairsInfo->getEtaPart1Max() << "" << "</h1>" << endl;
93 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getEtaPart2Min() << " < Eta_2 < "
94 << fParticlePairsInfo->getEtaPart2Max() << "" << "</h1>" << endl;
95 Out() << "<h1> <font color='6f00ff'> Geometrical cuts for MC are: </font></h1>" << endl;
96 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getDCAPart1Min() << " < DCA1 < "
97 << fParticlePairsInfo->getDCAPart1Max() << " cm" << "</h1>" << endl;
98 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getDCAPart2Min() << " < DCA2 < "
99 << fParticlePairsInfo->getDCAPart2Max() << " cm" << "</h1>" << endl;
100 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getDCA12Min() << " < DCA_12 < "
101 << fParticlePairsInfo->getDCA12Max() << " cm" << "</h1>" << endl;
102 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getPathMin() << " < PATH < "
103 << fParticlePairsInfo->getPathMax() << " cm" << "</h1>" << endl;
104 }
105
106 if (fUseRecoFile) {
107 Out() << setprecision(2) << "<h1> Number of reconstructed particle pairs:\n"
108 << HM()->H1("numberOfReconstructedParticlePairsQA")->GetEntries() << "</h1>" << endl;
109 Out() << "<h1> <font color='90ff00'> Kinematic cuts for reco are: </font></h1>" << endl;
110 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getMomPart1Min() << " < P_1 < "
111 << fParticlePairsInfo->getMomPart1Max() << " (GeV/c)" << "</h1>" << endl;
112 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getMomPart2Min() << " < P_2 < "
113 << fParticlePairsInfo->getMomPart2Max() << " (GeV/c)" << "</h1>" << endl;
114 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getEtaPart1Min() << " < Eta_1 < "
115 << fParticlePairsInfo->getEtaPart1Max() << "" << "</h1>" << endl;
116 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getEtaPart2Min() << " < Eta_2 < "
117 << fParticlePairsInfo->getEtaPart2Max() << "" << "</h1>" << endl;
118 Out() << "<h1> <font color='90ff00'> Geometrical cuts for reco are: </font></h1>" << endl;
119 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getDCAPart1Min() << " < DCA1 < "
120 << fParticlePairsInfo->getDCAPart1Max() << " cm" << "</h1>" << endl;
121 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getDCAPart2Min() << " < DCA2 < "
122 << fParticlePairsInfo->getDCAPart2Max() << " cm" << "</h1>" << endl;
123 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getDCA12Min() << " < DCA_12 < "
124 << fParticlePairsInfo->getDCA12Max() << " cm" << "</h1>" << endl;
125 Out() << setprecision(2) << "<h1>" << fParticlePairsInfo->getPathMin() << " < PATH < "
126 << fParticlePairsInfo->getPathMax() << " cm" << "</h1>" << endl;
127 }
128
129 if (fUseRecoFile && fUseMCFile) {
130 Double_t lRecEff = HM()->H1("numberOfReconstructableLambdas_LambdaQa")->GetEntries()
131 / HM()->H1("numberOfLambdas_LambdaQa")->GetEntries();
132 Double_t lRecEffR = HM()->H1("numberOfReconstructedParticlePairWithMatchedLambdaQA")->GetEntries()
133 / HM()->H1("numberOfReconstructableLambdas_LambdaQa")->GetEntries();
134 Out() << setprecision(2)
135 << "<h1> Number of reconstructed particle pairs with primary particle having MC matched lambda:\n"
136 << HM()->H1("numberOfReconstructedParticlePairWithMatchedLambdaQA")->GetEntries() << "</h1>" << endl;
137 Out() << setprecision(2) << fixed << "<h1> Reconstruction algorithms efficiency:\n"
138 << lRecEffR * 100 << "%" << "</h1>" << endl;
139 Out() << setprecision(2) << "<h1> Number of reconstructed fake lambdas:\n"
140 << HM()->H1("numberOfReconstructedParticlePairsQA")->GetEntries()
141 - HM()->H1("numberOfReconstructedParticlePairWithMatchedLambdaQA")->GetEntries()
142 << "</h1>" << endl;
143 Out() << setprecision(2) << fixed << "<h1> Total reconstruction efficiency:\n"
144 << lRecEff * lRecEffR * 100 << "%" << "</h1>" << endl;
145 Out() << setprecision(2) << "<h1> Number of not reconstructed lambdas:\n"
146 << HM()->H1("numberOfLambdas_LambdaQa")->GetEntries()
147 - HM()->H1("numberOfReconstructedParticlePairWithMatchedLambdaQA")->GetEntries()
148 << "</h1>" << endl;
149 }
150}
151
153{
154 if (fUseMCFile) {
156 "Number of reconstructable lambda determined by the geometry and overall number of lambda histograms");
157 DrawGeomEfficiencyHistograms("Geometrical lambda reconstruction efficiency histograms");
158 DrawTwoDimensionalRecGeomEfficiencyHistograms("Two dimensional number of lambda histograms");
159 DrawNumberOfLambdaDecayProtonsHistograms("Number of reconstructable lambda decay protons determined by the "
160 "geometry and overall number of protons histograms");
161 DrawRecProtonsGeomEffHistograms("Lambda decay protons geometrical reconstruction efficiency");
163 "Two dimensional number of recontstructive protons determined by the geometry histograms");
164 DrawNumberOfLambdaDecayMesonsHistograms("Number of reconstructable lambda decay mesons determined by the "
165 "geometry and overall number of mesons histograms");
166 DrawRecMesonsGeomRecEffHistograms("Lambda decay mesons geometrical reconstruction efficiency");
168 "Two dimensional number of lambda decay mesons determined by the geometry histograms");
169
170 if (fMC) {
171 DrawReconstructedFromMCLambdasHistograms("Reconstructed from MC particle pairs");
173 "Two dimensional reconstructed particle pairs from MC data");
174 DrawReconstructedFromMCWOCutsLambdasHistograms("Reconstructed from MC particle pairs without cuts");
176 "Two dimensional reconstructed particle pairs from MC data without cuts");
177 }
178 }
179
180 if (fUseMCFile && fUseRecoFile) {
181 DrawNumberOfNotReconstructedLambdasHistograms("Number of not reconstructed lambda histograms");
182
183 if (fRECO) {
185 "Two dimensional number of reconstructed particle pairs histograms");
186 DrawReconstructionEfficiencyHistograms("Particle pairs reconstruction efficiency");
188 "Number of reconstructed lambda decay protons histograms");
189 DrawRecProtonsReconstructionEfficiencyHistograms("Lambda decay protons reconstruction efficiency");
191 "Two dimensional number of reconstructed lambda decay protons histograms");
193 "Number of reconstructed lambda decay mesons histograms");
194 DrawRecMesonsReconstructionEfficiencyHistograms("Reconstructive mesons reconstruction efficiency");
196 "Two dimensional number of reconstructed lambda decay mesons histograms");
197 DrawNumberOfReconstructedLambdaHistograms("Number of reconstructed particle pairs histograms");
198 }
199 }
200
201 if (fUseRecoFile) {
202 if (fRECO) {
203 DrawReconstructedLambdasHistograms("Reconstructed particle pairs from reconstruction data");
204 DrawTwoDimensinalReconstructedLambdasHistograms("Two dimensional reconstructed particle pairs data");
206 "Reconstructed particle pairs without cuts from reconstruction data");
208 "Two dimensional reconstructed without cuts particle pairs data");
209 }
210 }
211}
212
214{
215 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 1000);
216 canvas->Divide(4, 2);
217 canvas->SetGrid();
218
219 TString momRecN = Form("simNReconstructableLambda_P_sim");
220 TString etaRecN = Form("simNReconstructableLambda_eta_sim");
221 TString thetaRecN = Form("simNReconstructableLambda_theta_sim");
222 TString thetaRRecN = Form("simNReconstructableLambda_theta_r_sim");
223 TString momXRecN = Form("simNReconstructableLambda_P_x_sim");
224 TString momYRecN = Form("simNReconstructableLambda_P_y_sim");
225 TString momZRecN = Form("simNReconstructableLambda_P_z_sim");
226 TString momN = Form("simNLambda_P_sim");
227 TString etaN = Form("simNLambda_eta_sim");
228 TString thetaN = Form("simNLambda_theta_sim");
229 TString thetaRN = Form("simNLambda_theta_r_sim");
230 TString momXN = Form("simNLambda_P_x_sim");
231 TString momYN = Form("simNLambda_P_y_sim");
232 TString momZN = Form("simNLambda_P_z_sim");
233
234 canvas->cd(1);
235 vector<TH1*> histos1;
236 histos1.push_back(HM()->H1(momRecN.Data()));
237 histos1.push_back(HM()->H1(momN.Data()));
238
239 vector<string> labels1;
240 labels1.push_back("Reconstructable lambda");
241 labels1.push_back("All #Lambda^{0}");
242
243 DrawH1(histos1, labels1, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
244
245 canvas->cd(2);
246 vector<TH1*> histos2;
247 histos2.push_back(HM()->H1(etaRecN.Data()));
248 histos2.push_back(HM()->H1(etaN.Data()));
249
250 vector<string> labels2;
251 labels2.push_back("Reconstructable #Lambda^{0}");
252 labels2.push_back("All #Lambda^{0}");
253
254 DrawH1(histos2, labels2, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
255
256 canvas->cd(3);
257 vector<TH1*> histos3;
258 histos3.push_back(HM()->H1(thetaRecN.Data()));
259 histos3.push_back(HM()->H1(thetaN.Data()));
260
261 vector<string> labels3;
262 labels3.push_back("Reconstructable #Lambda^{0}");
263 labels3.push_back("All #Lambda^{0}");
264
265 DrawH1(histos3, labels3, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
266
267 canvas->cd(4);
268 vector<TH1*> histos4;
269 histos4.push_back(HM()->H1(thetaRRecN.Data()));
270 histos4.push_back(HM()->H1(thetaRN.Data()));
271
272 vector<string> labels4;
273 labels4.push_back("Reconstructable #Lambda^{0}");
274 labels4.push_back("All #Lambda^{0}");
275
276 DrawH1(histos4, labels4, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
277
278 canvas->cd(5);
279 vector<TH1*> histos5;
280 histos5.push_back(HM()->H1(momXRecN.Data()));
281 histos5.push_back(HM()->H1(momXN.Data()));
282
283 vector<string> labels5;
284 labels5.push_back("Reconstructable #Lambda^{0}");
285 labels5.push_back("All #Lambda^{0}");
286 DrawH1(histos5, labels5, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
287
288 canvas->cd(6);
289 vector<TH1*> histos6;
290 histos6.push_back(HM()->H1(momYRecN.Data()));
291 histos6.push_back(HM()->H1(momYN.Data()));
292
293 vector<string> labels6;
294 labels6.push_back("Reconstructable #Lambda^{0}");
295 labels6.push_back("All #Lambda^{0}");
296 DrawH1(histos6, labels6, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
297
298 canvas->cd(7);
299 vector<TH1*> histos7;
300 histos7.push_back(HM()->H1(momZRecN.Data()));
301 histos7.push_back(HM()->H1(momZN.Data()));
302
303 vector<string> labels7;
304 labels7.push_back("Reconstructable #Lambda^{0}");
305 labels7.push_back("All #Lambda^{0}");
306 DrawH1(histos7, labels7, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
307}
308
310{
311 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 1500, 1000);
312
313 canvas->Divide(3, 2);
314 canvas->SetGrid();
315
316 TString momN = Form("simNLambda_P_sim");
317 TString etaN = Form("simNLambda_eta_sim");
318 TString thetaN = Form("simNLambda_theta_sim");
319
320 TString momXN = Form("simNLambda_P_x_sim");
321 TString momYN = Form("simNLambda_P_y_sim");
322 TString momZN = Form("simNLambda_P_z_sim");
323
324 canvas->cd(1);
325 DrawH1(HM()->H1(momN.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen);
326
327 canvas->cd(2);
328 DrawH1(HM()->H1(etaN.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen);
329
330 canvas->cd(3);
331 DrawH1(HM()->H1(thetaN.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen);
332
333 canvas->cd(4);
334 DrawH1(HM()->H1(momXN.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen);
335
336 canvas->cd(5);
337 DrawH1(HM()->H1(momYN.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen);
338
339 canvas->cd(6);
340 DrawH1(HM()->H1(momZN.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen);
341}
342
344{
345 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 1000);
346
347 canvas->Divide(4, 2);
348 canvas->SetGrid();
349
350 TString momEff = Form("simLambdaRecEff_P_sim");
351 TString etaEff = Form("simLambdaRecEff_eta_sim");
352 TString thetaEff = Form("simLambdaRecEff_theta_sim");
353 TString thetaREff = Form("simLambdaRecEff_theta_r_sim");
354 TString momXEff = Form("simLambdaRecEff_P_x_sim");
355 TString momYEff = Form("simLambdaRecEff_P_y_sim");
356 TString momZEff = Form("simLambdaRecEff_P_z_sim");
357
358 canvas->cd(1);
359 HM()->H1(momEff)->Divide(HM()->H1("simNReconstructableLambda_P_sim"), HM()->H1("simNLambda_P_sim"), 100., 1., "B");
360 HM()->H1(momEff)->SetMaximum(100.0);
361 HM()->H1(momEff)->SetMinimum(0.0);
362 DrawH1(HM()->H1(momEff.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
363
364 canvas->cd(2);
365 HM()->H1(etaEff)->Divide(HM()->H1("simNReconstructableLambda_eta_sim"), HM()->H1("simNLambda_eta_sim"), 100., 1.,
366 "B");
367 HM()->H1(etaEff)->SetMaximum(100.0);
368 HM()->H1(etaEff)->SetMinimum(0.0);
369 DrawH1(HM()->H1(etaEff.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
370
371 canvas->cd(3);
372 HM()->H1(thetaEff)->Divide(HM()->H1("simNReconstructableLambda_theta_sim"), HM()->H1("simNLambda_theta_sim"), 100.,
373 1., "B");
374 HM()->H1(thetaEff)->SetMaximum(100.0);
375 HM()->H1(thetaEff)->SetMinimum(0.0);
376 DrawH1(HM()->H1(thetaEff.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
377
378 canvas->cd(4);
379 HM()->H1(thetaREff)->Divide(HM()->H1("simNReconstructableLambda_theta_r_sim"), HM()->H1("simNLambda_theta_r_sim"),
380 100., 1., "B");
381 HM()->H1(thetaREff)->SetMaximum(100.0);
382 HM()->H1(thetaREff)->SetMinimum(0.0);
383 DrawH1(HM()->H1(thetaREff.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
384
385 canvas->cd(5);
386 HM()->H1(momXEff)->Divide(HM()->H1("simNReconstructableLambda_P_x_sim"), HM()->H1("simNLambda_P_x_sim"), 100., 1.,
387 "B");
388 HM()->H1(momXEff)->SetMaximum(100.0);
389 HM()->H1(momXEff)->SetMinimum(0.0);
390 DrawH1(HM()->H1(momXEff.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
391
392 canvas->cd(6);
393 HM()->H1(momYEff)->Divide(HM()->H1("simNReconstructableLambda_P_y_sim"), HM()->H1("simNLambda_P_y_sim"), 100., 1.,
394 "B");
395 HM()->H1(momYEff)->SetMaximum(100.0);
396 HM()->H1(momYEff)->SetMinimum(0.0);
397 DrawH1(HM()->H1(momYEff.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
398
399 canvas->cd(7);
400 HM()->H1(momZEff)->Divide(HM()->H1("simNReconstructableLambda_P_z_sim"), HM()->H1("simNLambda_P_z_sim"), 100., 1.,
401 "B");
402 HM()->H1(momZEff)->SetMaximum(100.0);
403 HM()->H1(momZEff)->SetMinimum(0.0);
404 DrawH1(HM()->H1(momZEff.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
405}
406
408{
409 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 1500, 500);
410 TString momEtaN = Form("simNLambda_eta_P_sim");
411 TString momEtaRecN = Form("simNReconstructableLambda_eta_P_sim");
412 TString momEtaEff = Form("simEffRecLambda_eta_P_sim");
413
414 canvas->Divide(3, 1);
415 canvas->SetGrid();
416
417 canvas->cd(1);
418 DrawH2(HM()->H2(momEtaN.Data()), kLinear, kLinear, kLinear);
419
420 canvas->cd(2);
421 DrawH2(HM()->H2(momEtaRecN.Data()), kLinear, kLinear, kLinear);
422
423 canvas->cd(3);
424 HM()->H2(momEtaEff.Data())->Divide(HM()->H2(momEtaRecN.Data()), HM()->H2(momEtaN.Data()), 100., 1., "B");
425 DrawH2(HM()->H2(momEtaEff.Data()), kLinear, kLinear, kLinear);
426}
427
429{
430 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
431
432 TString nProtonsMom = Form("NProtons_P_sim");
433 TString nProtonsEta = Form("NProtons_eta_sim");
434 TString nProtonsTheta = Form("NProtons_theta_sim");
435 TString nProtonsThetaR = Form("NProtons_theta_r_sim");
436
437 TString nRecProtonsMom = Form("NRecProtons_P_sim");
438 TString nRecProtonsEta = Form("NRecProtons_eta_sim");
439 TString nRecProtonsTheta = Form("NRecProtons_theta_sim");
440 TString nRecProtonsThetaR = Form("NRecProtons_theta_r_sim");
441
442 canvas->Divide(4, 1);
443 canvas->SetGrid();
444
445 canvas->cd(1);
446
447 vector<TH1*> histos1;
448 histos1.push_back(HM()->H1(nRecProtonsMom.Data()));
449 histos1.push_back(HM()->H1(nProtonsMom.Data()));
450
451 vector<string> labels1;
452 labels1.push_back("Reconstructable lambda decay p");
453 labels1.push_back("Lambda decay p");
454
455 DrawH1(histos1, labels1, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
456
457 canvas->cd(2);
458
459 vector<TH1*> histos2;
460 histos2.push_back(HM()->H1(nRecProtonsEta.Data()));
461 histos2.push_back(HM()->H1(nProtonsEta.Data()));
462
463 vector<string> labels2;
464 labels2.push_back("Reconstructable lambda decay p");
465 labels2.push_back("Lambda decay p");
466
467 DrawH1(histos2, labels2, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
468
469 canvas->cd(3);
470
471 vector<TH1*> histos3;
472 histos3.push_back(HM()->H1(nRecProtonsTheta.Data()));
473 histos3.push_back(HM()->H1(nProtonsTheta.Data()));
474
475 vector<string> labels3;
476 labels3.push_back("Reconstructable lambda decay p");
477 labels3.push_back("Lambda decay p");
478
479 DrawH1(histos3, labels3, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
480
481 canvas->cd(4);
482
483 vector<TH1*> histos4;
484 histos4.push_back(HM()->H1(nRecProtonsThetaR.Data()));
485 histos4.push_back(HM()->H1(nProtonsThetaR.Data()));
486
487 vector<string> labels4;
488 labels4.push_back("Reconstructable lambda decay p");
489 labels4.push_back("Lambda decay p");
490
491 DrawH1(histos4, labels4, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
492}
493
495{
496 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
497
498 TString recProtonsRecEffMom = Form("simRecProtonsRecEff_P_sim");
499 TString recProtonsRecEffEta = Form("simRecProtonsRecEff_eta_sim");
500 TString recProtonsRecEffTheta = Form("simRecProtonsRecEff_theta_sim");
501 TString recProtonsRecEffThetaR = Form("simRecProtonsRecEff_theta_r_sim");
502
503 canvas->Divide(4, 1);
504 canvas->SetGrid();
505
506 canvas->cd(1);
507 HM()->H1(recProtonsRecEffMom.Data())
508 ->Divide(HM()->H1("NRecProtons_P_sim"), HM()->H1("NProtons_P_sim"), 100., 1., "B");
509 DrawH1(HM()->H1(recProtonsRecEffMom.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
510
511 canvas->cd(2);
512 HM()->H1(recProtonsRecEffEta.Data())
513 ->Divide(HM()->H1("NRecProtons_eta_sim"), HM()->H1("NProtons_eta_sim"), 100., 1., "B");
514 DrawH1(HM()->H1(recProtonsRecEffEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
515
516 canvas->cd(3);
517 HM()->H1(recProtonsRecEffTheta.Data())
518 ->Divide(HM()->H1("NRecProtons_theta_sim"), HM()->H1("NProtons_theta_sim"), 100., 1., "B");
519 DrawH1(HM()->H1(recProtonsRecEffTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
520
521 canvas->cd(4);
522 HM()->H1(recProtonsRecEffThetaR.Data())
523 ->Divide(HM()->H1("NRecProtons_theta_r_sim"), HM()->H1("NProtons_theta_r_sim"), 100., 1., "B");
524 DrawH1(HM()->H1(recProtonsRecEffThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
525}
526
528{
529 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
530
531 TString nMesonsMom = Form("NMesons_P_sim");
532 TString nMesonsEta = Form("NMesons_eta_sim");
533 TString nMesonsTheta = Form("NMesons_theta_sim");
534 TString nMesonsThetaR = Form("NMesons_theta_r_sim");
535
536 TString nRecMesonsMom = Form("NRecMesons_P_sim");
537 TString nRecMesonsEta = Form("NRecMesons_eta_sim");
538 TString nRecMesonsTheta = Form("NRecMesons_theta_sim");
539 TString nRecMesonsThetaR = Form("NRecMesons_theta_r_sim");
540
541 canvas->Divide(4, 1);
542 canvas->SetGrid();
543
544 canvas->cd(1);
545
546 vector<TH1*> histos1;
547 histos1.push_back(HM()->H1(nRecMesonsMom.Data()));
548 histos1.push_back(HM()->H1(nMesonsMom.Data()));
549
550 vector<string> labels1;
551 labels1.push_back("Reconstructable lambda decay #pi^{-}");
552 labels1.push_back("Lambda decay #pi^{-}");
553
554 DrawH1(histos1, labels1, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
555
556 canvas->cd(2);
557
558 vector<TH1*> histos2;
559 histos2.push_back(HM()->H1(nRecMesonsEta.Data()));
560 histos2.push_back(HM()->H1(nMesonsEta.Data()));
561
562 vector<string> labels2;
563 labels2.push_back("Reconstructable lambda decay #pi^{-}");
564 labels2.push_back("Lambda decay #pi^{-}");
565
566 DrawH1(histos2, labels2, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
567
568 canvas->cd(3);
569
570 vector<TH1*> histos3;
571 histos3.push_back(HM()->H1(nRecMesonsTheta.Data()));
572 histos3.push_back(HM()->H1(nMesonsTheta.Data()));
573
574 vector<string> labels3;
575 labels3.push_back("Reconstructable lambda decay #pi^{-}");
576 labels3.push_back("Lambda decay #pi^{-}");
577
578 DrawH1(histos3, labels3, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
579
580 canvas->cd(4);
581
582 vector<TH1*> histos4;
583 histos4.push_back(HM()->H1(nRecMesonsThetaR.Data()));
584 histos4.push_back(HM()->H1(nMesonsThetaR.Data()));
585
586 vector<string> labels4;
587 labels4.push_back("Reconstructable lambda decay #pi^{-}");
588 labels4.push_back("Lambda decay #pi^{-}");
589
590 DrawH1(histos4, labels4, kLinear, kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
591}
592
594{
595 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
596
597 TString nMesonsMom = Form("NMesons_P_sim");
598 TString nMesonsEta = Form("NMesons_eta_sim");
599 TString nMesonsTheta = Form("NMesons_theta_sim");
600
601 TString nRecMesonsMom = Form("NRecMesons_P_sim");
602 TString nRecMesonsEta = Form("NRecMesons_eta_sim");
603 TString nRecMesonsTheta = Form("NRecMesons_theta_sim");
604
605 TString recMesonsRecEffMom = Form("simRecMesonsRecEff_P_sim");
606 TString recMesonsRecEffEta = Form("simRecMesonsRecEff_eta_sim");
607 TString recMesonsRecEffTheta = Form("simRecMesonsRecEff_theta_sim");
608 TString recMesonsRecEffThetaR = Form("simRecMesonsRecEff_theta_r_sim");
609
610 canvas->Divide(4, 1);
611 canvas->SetGrid();
612
613 canvas->cd(1);
614 HM()->H1(recMesonsRecEffMom.Data())->Divide(HM()->H1("NRecMesons_P_sim"), HM()->H1("NMesons_P_sim"), 100., 1., "B");
615 DrawH1(HM()->H1(recMesonsRecEffMom.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
616
617 canvas->cd(2);
618 HM()->H1(recMesonsRecEffEta.Data())
619 ->Divide(HM()->H1("NRecMesons_eta_sim"), HM()->H1("NMesons_eta_sim"), 100., 1., "B");
620 DrawH1(HM()->H1(recMesonsRecEffEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
621
622 canvas->cd(3);
623 HM()->H1(recMesonsRecEffTheta.Data())
624 ->Divide(HM()->H1("NRecMesons_theta_sim"), HM()->H1("NMesons_theta_sim"), 100., 1., "B");
625 DrawH1(HM()->H1(recMesonsRecEffTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
626
627 canvas->cd(4);
628 HM()->H1(recMesonsRecEffThetaR.Data())
629 ->Divide(HM()->H1("NRecMesons_theta_r_sim"), HM()->H1("NMesons_theta_r_sim"), 100., 1., "B");
630 DrawH1(HM()->H1(recMesonsRecEffThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kGreen + 2);
631}
632
634{
635 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 1500, 500);
636
637 TString momEtaNProtons = Form("simNRecProtons_eta_P_sim");
638 TString momEtaRecNProtons = Form("simNReconstructableRecProtons_eta_P_sim");
639 TString momEtaEffProtons = Form("simEffRecRecProtons_eta_P_sim");
640
641 canvas->Divide(3, 1);
642 canvas->SetGrid();
643
644 canvas->cd(1);
645 DrawH2(HM()->H2(momEtaNProtons.Data()), kLinear, kLinear, kLinear);
646
647 canvas->cd(2);
648 DrawH2(HM()->H2(momEtaRecNProtons.Data()), kLinear, kLinear, kLinear);
649
650 canvas->cd(3);
651 HM()->H2(momEtaEffProtons.Data())
652 ->Divide(HM()->H2(momEtaRecNProtons.Data()), HM()->H2(momEtaNProtons.Data()), 100., 1., "B");
653 DrawH2(HM()->H2(momEtaEffProtons.Data()), kLinear, kLinear, kLinear);
654}
655
657{
658 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
659
660 TString momEtaNMesons = Form("simNRecMesons_eta_P_sim");
661 TString momEtaRecNMesons = Form("simNReconstructableRecMesons_eta_P_sim");
662 TString momEtaEffMesons = Form("simEffRecRecMesons_eta_P_sim");
663
664 canvas->Divide(4, 1);
665 canvas->SetGrid();
666
667 canvas->cd(1);
668 DrawH2(HM()->H2(momEtaNMesons.Data()), kLinear, kLinear, kLinear);
669
670 canvas->cd(2);
671 DrawH2(HM()->H2(momEtaRecNMesons.Data()), kLinear, kLinear, kLinear);
672
673 canvas->cd(3);
674 HM()->H2(momEtaEffMesons.Data())
675 ->Divide(HM()->H2(momEtaRecNMesons.Data()), HM()->H2(momEtaNMesons.Data()), 100., 1., "B");
676 DrawH2(HM()->H2(momEtaEffMesons.Data()), kLinear, kLinear, kLinear);
677}
678
680{
681 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
682
683 TString nLambdasReconstructedP = Form("recNLambda_P_rec");
684 TString nLambdasReconstructedTheta = Form("recNLambda_theta_rec");
685 TString nLambdasReconstructedEta = Form("recNLambda_eta_rec");
686 TString nLambdasReconstructedThetaR = Form("recNLambda_theta_r_rec");
687
688 canvas->Divide(4, 1);
689 canvas->SetGrid();
690
691 canvas->cd(1);
692 DrawH1(HM()->H1(nLambdasReconstructedP.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
693
694 canvas->cd(2);
695 DrawH1(HM()->H1(nLambdasReconstructedEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
696
697 canvas->cd(3);
698 DrawH1(HM()->H1(nLambdasReconstructedTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
699
700 canvas->cd(4);
701 DrawH1(HM()->H1(nLambdasReconstructedThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
702}
703
705{
706 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
707
708 TString effLambdasReconstructedP = Form("recEffLambda_P_rec");
709 TString effLambdasReconstructedTheta = Form("recEffLambda_theta_rec");
710 TString effLambdasReconstructedEta = Form("recEffLambda_eta_rec");
711 TString effLambdasReconstructedThetaR = Form("recEffLambda_theta_r_rec");
712
713 TString nLambdasReconstructedP = Form("recNLambda_P_rec");
714 TString nLambdasReconstructedTheta = Form("recNLambda_theta_rec");
715 TString nLambdasReconstructedEta = Form("recNLambda_eta_rec");
716 TString nLambdasReconstructedThetaR = Form("recNLambda_theta_r_rec");
717
718 TString momRecN = Form("simNReconstructableLambda_P_sim");
719 TString etaRecN = Form("simNReconstructableLambda_eta_sim");
720 TString thetaRecN = Form("simNReconstructableLambda_theta_sim");
721 TString thetaRRecN = Form("simNReconstructableLambda_theta_r_sim");
722
723 canvas->Divide(4, 1);
724 canvas->SetGrid();
725
726 canvas->cd(1);
727 HM()->H1(effLambdasReconstructedP)
728 ->Divide(HM()->H1("recNLambda_P_rec"), HM()->H1("simNReconstructableLambda_P_sim"), 100., 1., "B");
729 DrawH1(HM()->H1(effLambdasReconstructedP.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
730
731 canvas->cd(2);
732 HM()->H1(effLambdasReconstructedEta)
733 ->Divide(HM()->H1("recNLambda_eta_rec"), HM()->H1("simNReconstructableLambda_eta_sim"), 100., 1., "B");
734 DrawH1(HM()->H1(effLambdasReconstructedEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
735
736 canvas->cd(3);
737 HM()->H1(effLambdasReconstructedTheta)
738 ->Divide(HM()->H1("recNLambda_theta_rec"), HM()->H1("simNReconstructableLambda_theta_sim"), 100., 1., "B");
739 DrawH1(HM()->H1(effLambdasReconstructedTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
740
741 canvas->cd(4);
742 HM()->H1(effLambdasReconstructedThetaR)
743 ->Divide(HM()->H1("recNLambda_theta_r_rec"), HM()->H1("simNReconstructableLambda_theta_r_sim"), 100., 1., "B");
744 DrawH1(HM()->H1(effLambdasReconstructedThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
745}
746
748{
749 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
750
751 TString momEtaN = Form("recNLambda_eta_P_sim");
752 TString momEtaRecEff = Form("recEffRecLambda_eta_P_sim");
753 TString momEtaRecN = Form("simNReconstructableLambda_eta_P_sim");
754
755 canvas->Divide(4, 1);
756 canvas->SetGrid();
757
758 canvas->cd(1);
759 DrawH2(HM()->H2(momEtaN.Data()), kLinear, kLinear, kLinear);
760
761 canvas->cd(2);
762 HM()->H2(momEtaRecEff.Data())->Divide(HM()->H2(momEtaN.Data()), HM()->H2(momEtaRecN.Data()), 100., 1., "B");
763 DrawH2(HM()->H2(momEtaRecEff.Data()), kLinear, kLinear, kLinear);
764}
765
767{
768 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
769
770 TString nRecProtonsReconstructedP = Form("recNRecProtons_P_rec");
771 TString nRecProtonsReconstructedTheta = Form("recNRecProtons_theta_rec");
772 TString nRecProtonsReconstructedEta = Form("recNRecProtons_eta_rec");
773 TString nRecProtonsReconstructedThetaR = Form("recNRecProtons_theta_r_rec");
774
775 canvas->Divide(4, 1);
776 canvas->SetGrid();
777
778 canvas->cd(1);
779 DrawH1(HM()->H1(nRecProtonsReconstructedP.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
780
781 canvas->cd(2);
782 DrawH1(HM()->H1(nRecProtonsReconstructedEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
783
784 canvas->cd(3);
785 DrawH1(HM()->H1(nRecProtonsReconstructedTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
786
787 canvas->cd(4);
788 DrawH1(HM()->H1(nRecProtonsReconstructedThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
789}
790
792{
793 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
794
795 TString effRecProtonsReconstructedP = Form("recEffRecProtons_P_rec");
796 TString effRecProtonsReconstructedTheta = Form("recEffRecProtons_theta_rec");
797 TString effRecProtonsReconstructedEta = Form("recEffRecProtons_eta_rec");
798 TString effRecProtonsReconstructedThetaR = Form("recEffRecProtons_theta_r_rec");
799
800 canvas->Divide(4, 1);
801 canvas->SetGrid();
802
803 canvas->cd(1);
804 HM()->H1(effRecProtonsReconstructedP)
805 ->Divide(HM()->H1("recNRecProtons_P_rec"), HM()->H1("NRecProtons_P_sim"), 100., 1., "B");
806 DrawH1(HM()->H1(effRecProtonsReconstructedP.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
807
808 canvas->cd(2);
809 HM()->H1(effRecProtonsReconstructedEta)
810 ->Divide(HM()->H1("recNRecProtons_eta_rec"), HM()->H1("NRecProtons_eta_sim"), 100., 1., "B");
811 DrawH1(HM()->H1(effRecProtonsReconstructedEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
812
813 canvas->cd(3);
814 HM()->H1(effRecProtonsReconstructedTheta)
815 ->Divide(HM()->H1("recNRecProtons_theta_rec"), HM()->H1("NRecProtons_theta_sim"), 100., 1., "B");
816 DrawH1(HM()->H1(effRecProtonsReconstructedTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
817
818 canvas->cd(4);
819 HM()->H1(effRecProtonsReconstructedThetaR)
820 ->Divide(HM()->H1("recNRecProtons_theta_r_rec"), HM()->H1("NRecProtons_theta_r_sim"), 100., 1., "B");
821 DrawH1(HM()->H1(effRecProtonsReconstructedThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
822}
823
825{
826 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
827
828 TString momEtaNProt = Form("recNRecProtons_eta_P_sim");
829 TString momEtaRecEff = Form("recEffRecProtons_eta_P_sim");
830 TString momEtaRecN = Form("simNReconstructableRecProtons_eta_P_sim");
831
832 canvas->Divide(4, 1);
833 canvas->SetGrid();
834
835 canvas->cd(1);
836 DrawH2(HM()->H2(momEtaNProt.Data()), kLinear, kLinear, kLinear);
837
838 canvas->cd(2);
839 HM()->H2(momEtaRecEff.Data())->Divide(HM()->H2(momEtaNProt.Data()), HM()->H2(momEtaRecN.Data()), 100., 1., "B");
840 DrawH2(HM()->H2(momEtaRecEff.Data()), kLinear, kLinear, kLinear);
841}
842
844{
845 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
846
847 TString nRecMesonsReconstructedP = Form("recNRecMesons_P_rec");
848 TString nRecMesonsReconstructedTheta = Form("recNRecMesons_theta_rec");
849 TString nRecMesonsReconstructedEta = Form("recNRecMesons_eta_rec");
850 TString nRecMesonsReconstructedThetaR = Form("recNRecMesons_theta_r_rec");
851
852 canvas->Divide(4, 1);
853 canvas->SetGrid();
854
855 canvas->cd(1);
856 DrawH1(HM()->H1(nRecMesonsReconstructedP.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
857
858 canvas->cd(2);
859 DrawH1(HM()->H1(nRecMesonsReconstructedEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
860
861 canvas->cd(3);
862 DrawH1(HM()->H1(nRecMesonsReconstructedTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
863
864 canvas->cd(4);
865 DrawH1(HM()->H1(nRecMesonsReconstructedThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kMagenta);
866}
867
869{
870 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
871
872 TString effRecMesonsReconstructedP = Form("recEffRecMesons_P_rec");
873 TString effRecMesonsReconstructedTheta = Form("recEffRecMesons_theta_rec");
874 TString effRecMesonsReconstructedEta = Form("recEffRecMesons_eta_rec");
875 TString effRecMesonsReconstructedThetaR = Form("recEffRecMesons_theta_r_rec");
876
877 canvas->Divide(4, 1);
878 canvas->SetGrid();
879
880 canvas->cd(1);
881 HM()->H1(effRecMesonsReconstructedP)
882 ->Divide(HM()->H1("recNRecMesons_P_rec"), HM()->H1("NRecMesons_P_sim"), 100., 1., "B");
883 DrawH1(HM()->H1(effRecMesonsReconstructedP.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
884
885 canvas->cd(2);
886 HM()->H1(effRecMesonsReconstructedEta)
887 ->Divide(HM()->H1("recNRecMesons_eta_rec"), HM()->H1("NRecMesons_eta_sim"), 100., 1., "B");
888 DrawH1(HM()->H1(effRecMesonsReconstructedEta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
889
890 canvas->cd(3);
891 HM()->H1(effRecMesonsReconstructedTheta)
892 ->Divide(HM()->H1("recNRecMesons_theta_rec"), HM()->H1("NRecMesons_theta_sim"), 100., 1., "B");
893 DrawH1(HM()->H1(effRecMesonsReconstructedTheta.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
894
895 canvas->cd(4);
896 HM()->H1(effRecMesonsReconstructedThetaR)
897 ->Divide(HM()->H1("recNRecMesons_theta_r_rec"), HM()->H1("NRecMesons_theta_r_sim"), 100., 1., "B");
898 DrawH1(HM()->H1(effRecMesonsReconstructedThetaR.Data()), kLinear, kLinear, drawPointsOpt.Data(), kCyan);
899}
900
902{
903 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
904
905 TString momEtaNProt = Form("recNRecMesons_eta_P_sim");
906 TString momEtaRecEff = Form("recEffRecMesons_eta_P_sim");
907 TString momEtaRecN = Form("simNReconstructableRecMesons_eta_P_sim");
908
909 canvas->Divide(4, 1);
910 canvas->SetGrid();
911
912 canvas->cd(1);
913 DrawH2(HM()->H2(momEtaNProt.Data()), kLinear, kLinear, kLinear);
914
915 canvas->cd(2);
916 HM()->H2(momEtaRecEff.Data())->Divide(HM()->H2(momEtaNProt.Data()), HM()->H2(momEtaRecN.Data()), 100., 1., "B");
917 DrawH2(HM()->H2(momEtaRecEff.Data()), kLinear, kLinear, kLinear);
918}
919
921{
922 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
923
924 TString momNonRecLambda = Form("recNNotRecLambda_P_rec");
925 TString thetaNonRecLambda = Form("recNNotRecLambda_theta_rec");
926 TString etaNonRecLambda = Form("recNNotRecLambda_eta_rec");
927 TString thetaRNonRecLambda = Form("recNNotRecLambda_theta_r_rec");
928
929 TString momN = Form("simNLambda_P_sim");
930 TString etaN = Form("simNLambda_eta_sim");
931 TString thetaN = Form("simNLambda_theta_sim");
932 TString thetaRN = Form("simNLambda_theta_r_sim");
933
934 TString nLambdasReconstructedP = Form("recNLambda_P_rec");
935 TString nLambdasReconstructedTheta = Form("recNLambda_theta_rec");
936 TString nLambdasReconstructedEta = Form("recNLambda_eta_rec");
937 TString nLambdasReconstructedThetaR = Form("recNLambda_theta_r_rec");
938
939 canvas->Divide(4, 1);
940 canvas->SetGrid();
941
942 canvas->cd(1);
943 HM()->H1(momNonRecLambda.Data())->Add(HM()->H1(momN.Data()), 1);
944 HM()->H1(momNonRecLambda.Data())->Add(HM()->H1(nLambdasReconstructedP.Data()), -1);
945 DrawH1(HM()->H1(momNonRecLambda.Data()), kLinear, kLinear, drawPointsOpt.Data(), kRed);
946
947 canvas->cd(2);
948 HM()->H1(thetaNonRecLambda.Data())->Add(HM()->H1(thetaN.Data()), 1);
949 HM()->H1(thetaNonRecLambda.Data())->Add(HM()->H1(nLambdasReconstructedTheta.Data()), -1);
950 DrawH1(HM()->H1(thetaNonRecLambda.Data()), kLinear, kLinear, drawPointsOpt.Data(), kRed);
951
952 canvas->cd(3);
953 HM()->H1(etaNonRecLambda.Data())->Add(HM()->H1(etaN.Data()), 1);
954 HM()->H1(etaNonRecLambda.Data())->Add(HM()->H1(nLambdasReconstructedEta.Data()), -1);
955 DrawH1(HM()->H1(etaNonRecLambda.Data()), kLinear, kLinear, drawPointsOpt.Data(), kRed);
956
957 canvas->cd(4);
958 HM()->H1(thetaRNonRecLambda.Data())->Add(HM()->H1(thetaRN.Data()), 1);
959 HM()->H1(thetaRNonRecLambda.Data())->Add(HM()->H1(nLambdasReconstructedThetaR.Data()), -1);
960 DrawH1(HM()->H1(thetaRNonRecLambda.Data()), kLinear, kLinear, drawPointsOpt.Data(), kRed);
961}
962
964{
965 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
966 TString nPairsRecoFromMCInvMass = Form("NPairsRecoFromMCInvMass");
967 canvas->Divide(4, 1);
968 canvas->SetGrid();
969 canvas->cd(1);
970 DrawH1(HM()->H1(nPairsRecoFromMCInvMass.Data()), kLinear, kLinear, drawPointsOpt.Data(), kOrange);
971}
972
974{
975 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 3000, 1000);
976 TString nPairsRecoFromMCInvMassMomPart1 = Form("NPairsRecoFromMCInvMassMomProton");
977 TString nPairsRecoFromMCInvMassEtaPart1 = Form("NPairsRecoFromMCInvMassEtaProton");
978 TString nPairsRecoFromMCInvMassDCA1 = Form("NPairsRecoFromMCInvMassDCA1");
979 TString nPairsRecoFromMCInvMassDCA12X = Form("NPairsRecoFromMCInvMassDCA12X");
980 TString nPairsRecoFromMCInvMassMomPart2 = Form("NPairsRecoFromMCInvMassMomMeson");
981 TString nPairsRecoFromMCInvMassEtaPart2 = Form("NPairsRecoFromMCInvMassEtaMeson");
982 TString nPairsRecoFromMCInvMassDCA2 = Form("NPairsRecoFromMCInvMassDCA2");
983 TString nPairsRecoFromMCInvMassDCA12Y = Form("NPairsRecoFromMCInvMassDCA12Y");
984 TString nPairsRecoFromMCInvMassDCA12XsubY = Form("NPairsRecoFromMCInvMassDCA12XsubY");
985 TString nPairsRecoFromMCInvMassPath = Form("NPairsRecoFromMCInvMassPath");
986
987 canvas->Divide(4, 3);
988 canvas->SetGrid();
989
990 canvas->cd(1);
991 DrawH2(HM()->H2(nPairsRecoFromMCInvMassMomPart1.Data()), kLinear, kLinear, kLinear);
992
993 canvas->cd(2);
994 DrawH2(HM()->H2(nPairsRecoFromMCInvMassEtaPart1.Data()), kLinear, kLinear, kLinear);
995
996 canvas->cd(3);
997 DrawH2(HM()->H2(nPairsRecoFromMCInvMassDCA1.Data()), kLinear, kLinear, kLinear);
998
999 canvas->cd(4);
1000 DrawH2(HM()->H2(nPairsRecoFromMCInvMassDCA12X.Data()), kLinear, kLinear, kLinear);
1001
1002 canvas->cd(5);
1003 DrawH2(HM()->H2(nPairsRecoFromMCInvMassMomPart2.Data()), kLinear, kLinear, kLinear);
1004
1005 canvas->cd(6);
1006 DrawH2(HM()->H2(nPairsRecoFromMCInvMassEtaPart2.Data()), kLinear, kLinear, kLinear);
1007
1008 canvas->cd(7);
1009 DrawH2(HM()->H2(nPairsRecoFromMCInvMassDCA2.Data()), kLinear, kLinear, kLinear);
1010
1011 canvas->cd(8);
1012 DrawH2(HM()->H2(nPairsRecoFromMCInvMassDCA12Y.Data()), kLinear, kLinear, kLinear);
1013
1014 canvas->cd(9);
1015 DrawH2(HM()->H2(nPairsRecoFromMCInvMassDCA12XsubY.Data()), kLinear, kLinear, kLinear);
1016
1017 canvas->cd(10);
1018 DrawH2(HM()->H2(nPairsRecoFromMCInvMassPath.Data()), kLinear, kLinear, kLinear);
1019}
1020
1022{
1023 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
1024 TString nPairsRecoFromMCWOCutsInvMass = Form("NPairsRecoFromMCWOCutsInvMass");
1025
1026 canvas->Divide(4, 1);
1027 canvas->SetGrid();
1028
1029 canvas->cd(1);
1030 DrawH1(HM()->H1(nPairsRecoFromMCWOCutsInvMass.Data()), kLinear, kLinear, drawPointsOpt.Data(), kOrange);
1031}
1032
1034{
1035 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 3000, 1000);
1036 TString nPairsRecoFromMCWOCutsInvMassMomPart1 = Form("NPairsRecoFromMCWOCutsInvMassMomProton");
1037 TString nPairsRecoFromMCWOCutsInvMassEtaPart1 = Form("NPairsRecoFromMCWOCutsInvMassEtaProton");
1038 TString nPairsRecoFromMCWOCutsInvMassDCA1 = Form("NPairsRecoFromMCWOCutsInvMassDCA1");
1039 TString nPairsRecoFromMCWOCutsInvMassDCA12X = Form("NPairsRecoFromMCWOCutsInvMassDCA12X");
1040
1041 TString nPairsRecoFromMCWOCutsInvMassMomPart2 = Form("NPairsRecoFromMCWOCutsInvMassMomMeson");
1042 TString nPairsRecoFromMCWOCutsInvMassEtaPart2 = Form("NPairsRecoFromMCWOCutsInvMassEtaMeson");
1043 TString nPairsRecoFromMCWOCutsInvMassDCA2 = Form("NPairsRecoFromMCWOCutsInvMassDCA2");
1044 TString nPairsRecoFromMCWOCutsInvMassDCA12Y = Form("NPairsRecoFromMCWOCutsInvMassDCA12Y");
1045 TString nPairsRecoFromMCWOCutsInvMassDCA12XsubY = Form("NPairsRecoFromMCWOCutsInvMassDCA12XsubY");
1046 TString nPairsRecoFromMCWOCutsInvMassPath = Form("NPairsRecoFromMCWOCutsInvMassPath");
1047
1048 canvas->Divide(4, 3);
1049 canvas->SetGrid();
1050
1051 canvas->cd(1);
1052 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassMomPart1.Data()), kLinear, kLinear, kLinear);
1053
1054 canvas->cd(2);
1055 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassEtaPart1.Data()), kLinear, kLinear, kLinear);
1056
1057 canvas->cd(3);
1058 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassDCA1.Data()), kLinear, kLinear, kLinear);
1059
1060 canvas->cd(4);
1061 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassDCA12X.Data()), kLinear, kLinear, kLinear);
1062
1063 canvas->cd(5);
1064 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassMomPart2.Data()), kLinear, kLinear, kLinear);
1065
1066 canvas->cd(6);
1067 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassEtaPart2.Data()), kLinear, kLinear, kLinear);
1068
1069 canvas->cd(7);
1070 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassDCA2.Data()), kLinear, kLinear, kLinear);
1071
1072 canvas->cd(8);
1073 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassDCA12Y.Data()), kLinear, kLinear, kLinear);
1074
1075 canvas->cd(9);
1076 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassDCA12XsubY.Data()), kLinear, kLinear, kLinear);
1077
1078 canvas->cd(10);
1079 DrawH2(HM()->H2(nPairsRecoFromMCWOCutsInvMassPath.Data()), kLinear, kLinear, kLinear);
1080}
1081
1083{
1084 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
1085
1086 TH1* hist = HM()->H1("NPairsRecoInvMass");
1087 canvas->Divide(4, 1);
1088 canvas->SetGrid();
1089
1090 canvas->cd(1);
1091
1092 Double_t par[8];
1093 TF1* bg = new TF1("BG", "pol4", 1.07, 1.22);
1094 TF1* sig = new TF1("SIG", "gaus", 1.11, 1.12);
1095 hist->Fit(bg, "R");
1096 // sig->SetParameter(1, 1.115);
1097 // sig->SetParameter(2, 0.002);
1098 hist->Fit(sig, "R");
1099 bg->GetParameters(&par[0]);
1100 sig->GetParameters(&par[5]);
1101 TF1* f = new TF1("f", "pol4(0)+gaus(5)", 1.07, 1.22);
1102 f->SetNpx(500);
1103
1104 f->SetParameters(par);
1105 // f->SetLineColor(kMagenta + 1);
1106 // f->SetLineWidth(3);
1107 // f->SetParameter(6, 1.1152);
1108 f->SetParameter(7, 0.002);
1109 TFitResultPtr fitRes = hist->Fit(f, "RS");
1110 // Double_t mean = fitRes->Parameter(6);
1111 // Double_t sigma = fitRes->Parameter(7);
1112 // Double_t T = hist->Integral(hist->FindBin(mean - 3 * sigma), hist->FindBin(mean + 3 * sigma));
1113 // Double_t B = bg->Integral(mean - 3 * sigma, mean + 3 * sigma) / hist->GetBinWidth(1);
1114 // Double_t S_to_B = T / B - 1;
1115 // Double_t Signif = (T - B) / TMath::Sqrt(T);
1116
1117 // hist->SetMarkerStyle(20);
1118 // hist->SetMarkerColor(kSpring - 6);
1119 // hist->SetLineColor(kSpring - 6);
1120 // hist->SetLineWidth(1);
1121 // hist->GetXaxis()->SetTitle("M_{(p + #pi^{-})}, GeV/c^{2}");
1122 // hist->GetYaxis()->SetTitle("Entries / 2 MeV/c^{2}");
1123
1124 DrawH1(hist, kLinear, kLinear, drawPointsOpt.Data(), kOrange);
1125}
1126
1128{
1129 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 3000, 1000);
1130
1131 TString nPairsRecoInvMassMomPart1 = Form("NPairsRecoInvMassMomProton");
1132 TString nPairsRecoInvMassEtaPart1 = Form("NPairsRecoInvMassEtaProton");
1133 TString nPairsRecoInvMassDCA1 = Form("NPairsRecoInvMassDCA1");
1134 TString nPairsRecoInvMassDCA12X = Form("NPairsRecoInvMassDCA12X");
1135
1136 TString nPairsRecoInvMassMomPart2 = Form("NPairsRecoInvMassMomMeson");
1137 TString nPairsRecoInvMassEtaPart2 = Form("NPairsRecoInvMassEtaMeson");
1138 TString nPairsRecoInvMassDCA2 = Form("NPairsRecoInvMassDCA2");
1139 TString nPairsRecoInvMassDCA12Y = Form("NPairsRecoInvMassDCA12Y");
1140 TString nPairsRecoInvMassDCA12XsubY = Form("NPairsRecoInvMassDCA12XsubY");
1141 TString nPairsRecoInvMassPath = Form("NPairsRecoInvMassPath");
1142
1143 canvas->Divide(4, 3);
1144 canvas->SetGrid();
1145
1146 canvas->cd(1);
1147 DrawH2(HM()->H2(nPairsRecoInvMassMomPart1.Data()), kLinear, kLinear, kLinear);
1148
1149 canvas->cd(2);
1150 DrawH2(HM()->H2(nPairsRecoInvMassEtaPart1.Data()), kLinear, kLinear, kLinear);
1151
1152 canvas->cd(3);
1153 DrawH2(HM()->H2(nPairsRecoInvMassDCA1.Data()), kLinear, kLinear, kLinear);
1154
1155 canvas->cd(4);
1156 DrawH2(HM()->H2(nPairsRecoInvMassDCA12X.Data()), kLinear, kLinear, kLinear);
1157
1158 canvas->cd(5);
1159 DrawH2(HM()->H2(nPairsRecoInvMassMomPart2.Data()), kLinear, kLinear, kLinear);
1160
1161 canvas->cd(6);
1162 DrawH2(HM()->H2(nPairsRecoInvMassEtaPart2.Data()), kLinear, kLinear, kLinear);
1163
1164 canvas->cd(7);
1165 DrawH2(HM()->H2(nPairsRecoInvMassDCA2.Data()), kLinear, kLinear, kLinear);
1166
1167 canvas->cd(8);
1168 DrawH2(HM()->H2(nPairsRecoInvMassDCA12Y.Data()), kLinear, kLinear, kLinear);
1169
1170 canvas->cd(9);
1171 DrawH2(HM()->H2(nPairsRecoInvMassDCA12XsubY.Data()), kLinear, kLinear, kLinear);
1172
1173 canvas->cd(10);
1174 DrawH2(HM()->H2(nPairsRecoInvMassPath.Data()), kLinear, kLinear, kLinear);
1175}
1176
1178{
1179 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
1180 TString nPairsRecoInvMassWOCuts = Form("NPairsRecoInvMassWOCuts");
1181
1182 canvas->Divide(4, 1);
1183 canvas->SetGrid();
1184
1185 canvas->cd(1);
1186 DrawH1(HM()->H1(nPairsRecoInvMassWOCuts.Data()), kLinear, kLinear, drawPointsOpt.Data(), kOrange);
1187}
1188
1190{
1191 TCanvas* canvas = CreateCanvas(canvasName.c_str(), canvasName.c_str(), 3000, 1000);
1192
1193 TString nPairsRecoInvMassMomPart1WOCuts = Form("NPairsRecoInvMassMomProtonWOCuts");
1194 TString nPairsRecoInvMassEtaPart1WOCuts = Form("NPairsRecoInvMassEtaProtonWOCuts");
1195 TString nPairsRecoInvMassDCA1WOCuts = Form("NPairsRecoInvMassDCA1WOCuts");
1196 TString nPairsRecoInvMassDCA12XWOCuts = Form("NPairsRecoInvMassDCA12XWOCuts");
1197
1198 TString nPairsRecoInvMassMomPart2WOCuts = Form("NPairsRecoInvMassMomMesonWOCuts");
1199 TString nPairsRecoInvMassEtaPart2WOCuts = Form("NPairsRecoInvMassEtaMesonWOCuts");
1200 TString nPairsRecoInvMassDCA2WOCuts = Form("NPairsRecoInvMassDCA2WOCuts");
1201 TString nPairsRecoInvMassDCA12YWOCuts = Form("NPairsRecoInvMassDCA12YWOCuts");
1202 TString nPairsRecoInvMassDCA12XsubYWOCuts = Form("NPairsRecoInvMassDCA12XsubYWOCuts");
1203 TString nPairsRecoInvMassPathWOCuts = Form("NPairsRecoInvMassPathWOCuts");
1204
1205 canvas->Divide(4, 3);
1206 canvas->SetGrid();
1207
1208 canvas->cd(1);
1209 DrawH2(HM()->H2(nPairsRecoInvMassMomPart1WOCuts.Data()), kLinear, kLinear, kLinear);
1210
1211 canvas->cd(2);
1212 DrawH2(HM()->H2(nPairsRecoInvMassEtaPart1WOCuts.Data()), kLinear, kLinear, kLinear);
1213
1214 canvas->cd(3);
1215 DrawH2(HM()->H2(nPairsRecoInvMassDCA1WOCuts.Data()), kLinear, kLinear, kLinear);
1216
1217 canvas->cd(4);
1218 DrawH2(HM()->H2(nPairsRecoInvMassDCA12XWOCuts.Data()), kLinear, kLinear, kLinear);
1219
1220 canvas->cd(5);
1221 DrawH2(HM()->H2(nPairsRecoInvMassMomPart2WOCuts.Data()), kLinear, kLinear, kLinear);
1222
1223 canvas->cd(6);
1224 DrawH2(HM()->H2(nPairsRecoInvMassEtaPart2WOCuts.Data()), kLinear, kLinear, kLinear);
1225
1226 canvas->cd(7);
1227 DrawH2(HM()->H2(nPairsRecoInvMassDCA2WOCuts.Data()), kLinear, kLinear, kLinear);
1228
1229 canvas->cd(8);
1230 DrawH2(HM()->H2(nPairsRecoInvMassDCA12YWOCuts.Data()), kLinear, kLinear, kLinear);
1231
1232 canvas->cd(9);
1233 DrawH2(HM()->H2(nPairsRecoInvMassDCA12XsubYWOCuts.Data()), kLinear, kLinear, kLinear);
1234
1235 canvas->cd(10);
1236 DrawH2(HM()->H2(nPairsRecoInvMassPathWOCuts.Data()), kLinear, kLinear, kLinear);
1237}
visualising simulated lambda reconstruction performance calculation.
FairTask for MC simulated lambda reconstruction performance calculation.
bool Bool_t
constexpr Bool_t kFALSE
double Double_t
constexpr Bool_t kTRUE
kRed
kOrange
kGreen
kMagenta
kCyan
char * Form(const char *fmt,...)
TH2 * H2(const TString &name) const
Return pointer to TH2 histogram.
TH1 * H1(const TString &name) const
Return pointer to TH1 histogram.
void DrawTwoDimensionalRealRecEfficiencyRecMesonsHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedLambdasWOCutsHistograms(const string &canvasName)
void DrawReconstructedFromMCLambdasHistograms(const string &canvasName)
void DrawTwoDimensionalRecProtonsRecEfficiencyHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayProtonsHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayMesonsHistograms(const string &canvasName)
void DrawTwoDimensionalRecGeomEfficiencyHistograms(const string &canvasName)
TClonesArray * fRECO
virtual void Draw()
Pure abstract function which is called from public Create() function.
void DrawGeomEfficiencyHistograms(const string &canvasName)
void DrawRecProtonsGeomEffHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayMesonsReconstructedHistograms(const string &canvasName)
void DrawTwoDimensionalRealRecEfficiencyRecProtonsHistograms(const string &canvasName)
void DrawReconstructedFromMCWOCutsLambdasHistograms(const string &canvasName)
void DrawRecProtonsReconstructionEfficiencyHistograms(const string &canvasName)
void DrawReconstructionEfficiencyHistograms(const string &canvasName)
void DrawTwoDimensionalRecMesonsGeomRecEfficiencyHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedFromMCLambdasHistograms(const string &canvasName)
void DrawNumberOfReconstructableLambdaHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedLambdasHistograms(const string &canvasName)
void DrawNumberOfReconstructedLambdaHistograms(const string &canvasName)
void DrawReconstructedLambdasWOCutsHistograms(const string &canvasName)
void DrawNumberOfNotReconstructedLambdasHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayProtonsReconstructedHistograms(const string &canvasName)
virtual void Create()
Pure abstract function which is called from public Create() function.
void DrawRecMesonsReconstructionEfficiencyHistograms(const string &canvasName)
void DrawReconstructedLambdasHistograms(const string &canvasName)
void DrawRecMesonsGeomRecEffHistograms(const string &canvasName)
void DrawNumberOfLambdaHistograms(const string &canvasName)
BmnParticlePairsInfo * fParticlePairsInfo
void DrawTwoDimensionalRealRecEfficiencyHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedFromMCWOCutsLambdasHistograms(const string &canvasName)
virtual ~BmnLambdaQaReport()
Destructor.
virtual string Title(int size, const string &title) const =0
Return string with title.
virtual string DocumentBegin() const =0
Return string with open tags for document.
virtual string DocumentEnd() const =0
Return string with close tags of the document.
void SetReportName(TString name)
Definition BmnReport.h:56
void PrintCanvases() const
Print images created from canvases in the report.
const BmnReportElement * R() const
Accessor to BmnReportElement object.
Definition BmnReport.h:45
TCanvas * CreateCanvas(const char *name, const char *title, Int_t ww, Int_t wh)
Create canvas and put it to vector of TCanvases.
Definition BmnReport.cxx:75
ostream & Out() const
All text output goes to this stream.
Definition BmnReport.h:50
BmnHistManager * HM() const
Return pointer to Histogram manager.
BmnSimulationReport()
Constructor.
TVirtualPad * cd(Int_t subpadnumber=0) override
virtual Double_t * GetParameters() const
virtual Bool_t Add(const TH1 *h, const TH1 *h2, Double_t c1=1, Double_t c2=1)
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
virtual void SetMaximum(Double_t maximum=-1111)
virtual void SetMinimum(Double_t minimum=-1111)
virtual Double_t GetEntries() const
virtual Bool_t Divide(const TH1 *h1)
virtual const char * GetTitle() const
void SetGrid(Int_t valuex=1, Int_t valuey=1) override
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
const char * Data() const
void DrawH2(TH2 *hist, HistScale logx=kLinear, HistScale logy=kLinear, HistScale logz=kLinear, const string &drawOpt="COLZ")
void DrawH1(TH1 *hist, HistScale logx=kLinear, HistScale logy=kLinear, const string &drawOpt="", Int_t color=BmnDrawingOptions::Color(0), Int_t lineWidth=BmnDrawingOptions::LineWidth(), Int_t lineStyle=BmnDrawingOptions::LineStyle(0), Float_t markerSize=BmnDrawingOptions::MarkerSize(), Int_t markerStyle=BmnDrawingOptions::MarkerStyle(0), Int_t fillColor=-1)
@ kLinear
Definition BmnDrawHist.h:66
@ kLog
Definition BmnDrawHist.h:65
string FindAndReplace(const string &name, const string &oldSubstr, const string &newSubstr)
Definition BmnUtils.cxx:19
vector< string > Split(const string &name, char delimiter)
Definition BmnUtils.cxx:27
string NumberToString(const T &value, int precision=1)
Definition BmnUtils.h:26
Definition json.hpp:4446