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