11#include "BmnReportElement.h"
12#include "BmnHistManager.h"
13#include "BmnDrawHist.h"
18#include "TFitResult.h"
20#include "BmnGemStripStationSet_RunSpring2017.h"
21#include "BmnGemStripStation.h"
22#include "TPaveStats.h"
24#include "BmnDrawHist.h"
25#include "BmnParticlePairsInfo.h"
36 fUseMCFile(useMCFile),
38 fUseRecoFile(useRecoFile),
41 fParticlePairsInfo(info)
49void BmnLambdaQaReport::Create() {
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;
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;
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;
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;
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;
107void BmnLambdaQaReport::Draw() {
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");
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");
127 if (fUseMCFile && fUseRecoFile) {
128 DrawNumberOfNotReconstructedLambdasHistograms(
"Number of not reconstructed lambda histograms");
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");
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");
153void BmnLambdaQaReport::DrawNumberOfReconstructableLambdaHistograms(
const string& canvasName) {
154 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 1000);
155 canvas->Divide(4, 2);
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");
174 vector<TH1*> histos1;
175 histos1.push_back(
HM()->H1(momRecN.Data()));
176 histos1.push_back(
HM()->H1(momN.Data()));
178 vector<string> labels1;
179 labels1.push_back(
"Reconstructable lambda");
180 labels1.push_back(
"All #Lambda^{0}");
182 DrawH1(histos1, labels1,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
185 vector<TH1*> histos2;
186 histos2.push_back(
HM()->H1(etaRecN.Data()));
187 histos2.push_back(
HM()->H1(etaN.Data()));
189 vector<string> labels2;
190 labels2.push_back(
"Reconstructable #Lambda^{0}");
191 labels2.push_back(
"All #Lambda^{0}");
193 DrawH1(histos2, labels2,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
196 vector<TH1*> histos3;
197 histos3.push_back(
HM()->H1(thetaRecN.Data()));
198 histos3.push_back(
HM()->H1(thetaN.Data()));
200 vector<string> labels3;
201 labels3.push_back(
"Reconstructable #Lambda^{0}");
202 labels3.push_back(
"All #Lambda^{0}");
204 DrawH1(histos3, labels3,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
207 vector<TH1*> histos4;
208 histos4.push_back(
HM()->H1(thetaRRecN.Data()));
209 histos4.push_back(
HM()->H1(thetaRN.Data()));
211 vector<string> labels4;
212 labels4.push_back(
"Reconstructable #Lambda^{0}");
213 labels4.push_back(
"All #Lambda^{0}");
215 DrawH1(histos4, labels4,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
218 vector<TH1*> histos5;
219 histos5.push_back(
HM()->H1(momXRecN.Data()));
220 histos5.push_back(
HM()->H1(momXN.Data()));
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);
228 vector<TH1*> histos6;
229 histos6.push_back(
HM()->H1(momYRecN.Data()));
230 histos6.push_back(
HM()->H1(momYN.Data()));
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);
238 vector<TH1*> histos7;
239 histos7.push_back(
HM()->H1(momZRecN.Data()));
240 histos7.push_back(
HM()->H1(momZN.Data()));
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);
250void BmnLambdaQaReport::DrawNumberOfLambdaHistograms(
const string& canvasName) {
251 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 1500, 1000);
253 canvas->Divide(3, 2);
256 TString momN = Form(
"simNLambda_P_sim");
257 TString etaN = Form(
"simNLambda_eta_sim");
258 TString thetaN = Form(
"simNLambda_theta_sim");
260 TString momXN = Form(
"simNLambda_P_x_sim");
261 TString momYN = Form(
"simNLambda_P_y_sim");
262 TString momZN = Form(
"simNLambda_P_z_sim");
283void BmnLambdaQaReport::DrawGeomEfficiencyHistograms(
const string& canvasName) {
284 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 1000);
286 canvas->Divide(4, 2);
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");
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);
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);
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);
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);
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);
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);
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);
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");
346 canvas->Divide(3, 1);
356 HM()->
H2(momEtaEff.Data())->Divide(
HM()->H2(momEtaRecN.Data()),
HM()->H2(momEtaN.Data()), 100., 1.,
"B");
360void BmnLambdaQaReport::DrawNumberOfLambdaDecayProtonsHistograms(
const string& canvasName) {
361 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
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");
373 canvas->Divide(4, 1);
378 vector<TH1*> histos1;
379 histos1.push_back(
HM()->H1(nRecProtonsMom.Data()));
380 histos1.push_back(
HM()->H1(nProtonsMom.Data()));
382 vector<string> labels1;
383 labels1.push_back(
"Reconstructable lambda decay p");
384 labels1.push_back(
"Lambda decay p");
386 DrawH1(histos1, labels1,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
390 vector<TH1*> histos2;
391 histos2.push_back(
HM()->H1(nRecProtonsEta.Data()));
392 histos2.push_back(
HM()->H1(nProtonsEta.Data()));
394 vector<string> labels2;
395 labels2.push_back(
"Reconstructable lambda decay p");
396 labels2.push_back(
"Lambda decay p");
398 DrawH1(histos2, labels2,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
402 vector<TH1*> histos3;
403 histos3.push_back(
HM()->H1(nRecProtonsTheta.Data()));
404 histos3.push_back(
HM()->H1(nProtonsTheta.Data()));
406 vector<string> labels3;
407 labels3.push_back(
"Reconstructable lambda decay p");
408 labels3.push_back(
"Lambda decay p");
410 DrawH1(histos3, labels3,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
414 vector<TH1*> histos4;
415 histos4.push_back(
HM()->H1(nRecProtonsThetaR.Data()));
416 histos4.push_back(
HM()->H1(nProtonsThetaR.Data()));
418 vector<string> labels4;
419 labels4.push_back(
"Reconstructable lambda decay p");
420 labels4.push_back(
"Lambda decay p");
422 DrawH1(histos4, labels4,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
425void BmnLambdaQaReport::DrawRecProtonsGeomEffHistograms(
const string& canvasName) {
426 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
433 canvas->Divide(4, 1);
437 HM()->
H1(recProtonsRecEffMom.Data())->Divide(
HM()->H1(
"NRecProtons_P_sim"),
HM()->H1(
"NProtons_P_sim"), 100., 1.,
"B");
441 HM()->
H1(recProtonsRecEffEta.Data())->Divide(
HM()->H1(
"NRecProtons_eta_sim"),
HM()->H1(
"NProtons_eta_sim"), 100., 1.,
"B");
445 HM()->
H1(recProtonsRecEffTheta.Data())->Divide(
HM()->H1(
"NRecProtons_theta_sim"),
HM()->H1(
"NProtons_theta_sim"), 100., 1.,
"B");
449 HM()->
H1(recProtonsRecEffThetaR.Data())->Divide(
HM()->H1(
"NRecProtons_theta_r_sim"),
HM()->H1(
"NProtons_theta_r_sim"), 100., 1.,
"B");
454void BmnLambdaQaReport::DrawNumberOfLambdaDecayMesonsHistograms(
const string& canvasName) {
455 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
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");
467 canvas->Divide(4, 1);
472 vector<TH1*> histos1;
473 histos1.push_back(
HM()->H1(nRecMesonsMom.Data()));
474 histos1.push_back(
HM()->H1(nMesonsMom.Data()));
476 vector<string> labels1;
477 labels1.push_back(
"Reconstructable lambda decay #pi^{-}");
478 labels1.push_back(
"Lambda decay #pi^{-}");
480 DrawH1(histos1, labels1,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
484 vector<TH1*> histos2;
485 histos2.push_back(
HM()->H1(nRecMesonsEta.Data()));
486 histos2.push_back(
HM()->H1(nMesonsEta.Data()));
488 vector<string> labels2;
489 labels2.push_back(
"Reconstructable lambda decay #pi^{-}");
490 labels2.push_back(
"Lambda decay #pi^{-}");
492 DrawH1(histos2, labels2,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
496 vector<TH1*> histos3;
497 histos3.push_back(
HM()->H1(nRecMesonsTheta.Data()));
498 histos3.push_back(
HM()->H1(nMesonsTheta.Data()));
500 vector<string> labels3;
501 labels3.push_back(
"Reconstructable lambda decay #pi^{-}");
502 labels3.push_back(
"Lambda decay #pi^{-}");
504 DrawH1(histos3, labels3,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
508 vector<TH1*> histos4;
509 histos4.push_back(
HM()->H1(nRecMesonsThetaR.Data()));
510 histos4.push_back(
HM()->H1(nMesonsThetaR.Data()));
512 vector<string> labels4;
513 labels4.push_back(
"Reconstructable lambda decay #pi^{-}");
514 labels4.push_back(
"Lambda decay #pi^{-}");
516 DrawH1(histos4, labels4,
kLinear,
kLog, kTRUE, 0.16, 0.91, 0.9, 0.99, drawPointsOpt.Data(), kFALSE);
519void BmnLambdaQaReport::DrawRecMesonsGeomRecEffHistograms(
const string& canvasName) {
520 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
522 TString nMesonsMom = Form(
"NMesons_P_sim");
523 TString nMesonsEta = Form(
"NMesons_eta_sim");
524 TString nMesonsTheta = Form(
"NMesons_theta_sim");
526 TString nRecMesonsMom = Form(
"NRecMesons_P_sim");
527 TString nRecMesonsEta = Form(
"NRecMesons_eta_sim");
528 TString nRecMesonsTheta = Form(
"NRecMesons_theta_sim");
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");
535 canvas->Divide(4, 1);
539 HM()->
H1(recMesonsRecEffMom.Data())->Divide(
HM()->H1(
"NRecMesons_P_sim"),
HM()->H1(
"NMesons_P_sim"), 100., 1.,
"B");
543 HM()->
H1(recMesonsRecEffEta.Data())->Divide(
HM()->H1(
"NRecMesons_eta_sim"),
HM()->H1(
"NMesons_eta_sim"), 100., 1.,
"B");
547 HM()->
H1(recMesonsRecEffTheta.Data())->Divide(
HM()->H1(
"NRecMesons_theta_sim"),
HM()->H1(
"NMesons_theta_sim"), 100., 1.,
"B");
551 HM()->
H1(recMesonsRecEffThetaR.Data())->Divide(
HM()->H1(
"NRecMesons_theta_r_sim"),
HM()->H1(
"NMesons_theta_r_sim"), 100., 1.,
"B");
555void BmnLambdaQaReport::DrawTwoDimensionalRecProtonsRecEfficiencyHistograms(
const string& canvasName) {
556 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 1500, 500);
558 TString momEtaNProtons = Form(
"simNRecProtons_eta_P_sim");
559 TString momEtaRecNProtons = Form(
"simNReconstructableRecProtons_eta_P_sim");
560 TString momEtaEffProtons = Form(
"simEffRecRecProtons_eta_P_sim");
562 canvas->Divide(3, 1);
572 HM()->
H2(momEtaEffProtons.Data())->Divide(
HM()->H2(momEtaRecNProtons.Data()),
HM()->H2(momEtaNProtons.Data()), 100., 1.,
"B");
576void BmnLambdaQaReport::DrawTwoDimensionalRecMesonsGeomRecEfficiencyHistograms(
const string& canvasName) {
577 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
579 TString momEtaNMesons = Form(
"simNRecMesons_eta_P_sim");
580 TString momEtaRecNMesons = Form(
"simNReconstructableRecMesons_eta_P_sim");
581 TString momEtaEffMesons = Form(
"simEffRecRecMesons_eta_P_sim");
583 canvas->Divide(4, 1);
593 HM()->
H2(momEtaEffMesons.Data())->Divide(
HM()->H2(momEtaRecNMesons.Data()),
HM()->H2(momEtaNMesons.Data()), 100., 1.,
"B");
597void BmnLambdaQaReport::DrawNumberOfReconstructedLambdaHistograms(
const string& canvasName) {
598 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
605 canvas->Divide(4, 1);
621void BmnLambdaQaReport::DrawReconstructionEfficiencyHistograms(
const string& canvasName) {
622 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
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");
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");
639 canvas->Divide(4, 1);
643 HM()->
H1(effLambdasReconstructedP)->Divide(
HM()->H1(
"recNLambda_P_rec"),
HM()->H1(
"simNReconstructableLambda_P_sim"), 100., 1.,
"B");
647 HM()->
H1(effLambdasReconstructedEta)->Divide(
HM()->H1(
"recNLambda_eta_rec"),
HM()->H1(
"simNReconstructableLambda_eta_sim"), 100., 1.,
"B");
651 HM()->
H1(effLambdasReconstructedTheta)->Divide(
HM()->H1(
"recNLambda_theta_rec"),
HM()->H1(
"simNReconstructableLambda_theta_sim"), 100., 1.,
"B");
655 HM()->
H1(effLambdasReconstructedThetaR)->Divide(
HM()->H1(
"recNLambda_theta_r_rec"),
HM()->H1(
"simNReconstructableLambda_theta_r_sim"), 100., 1.,
"B");
659void BmnLambdaQaReport::DrawTwoDimensionalRealRecEfficiencyHistograms(
const string& canvasName) {
660 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
662 TString momEtaN = Form(
"recNLambda_eta_P_sim");
663 TString momEtaRecEff = Form(
"recEffRecLambda_eta_P_sim");
664 TString momEtaRecN = Form(
"simNReconstructableLambda_eta_P_sim");
666 canvas->Divide(4, 1);
673 HM()->
H2(momEtaRecEff.Data())->Divide(
HM()->H2(momEtaN.Data()),
HM()->H2(momEtaRecN.Data()), 100., 1.,
"B");
678void BmnLambdaQaReport::DrawNumberOfLambdaDecayProtonsReconstructedHistograms(
const string& canvasName) {
679 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
686 canvas->Divide(4, 1);
699 DrawH1(
HM()->H1(nRecProtonsReconstructedThetaR.Data()),
kLinear,
kLinear, drawPointsOpt.Data(), kMagenta);
702void BmnLambdaQaReport::DrawRecProtonsReconstructionEfficiencyHistograms(
const string& canvasName) {
703 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
710 canvas->Divide(4, 1);
714 HM()->
H1(effRecProtonsReconstructedP)->Divide(
HM()->H1(
"recNRecProtons_P_rec"),
HM()->H1(
"NRecProtons_P_sim"), 100., 1.,
"B");
718 HM()->
H1(effRecProtonsReconstructedEta)->Divide(
HM()->H1(
"recNRecProtons_eta_rec"),
HM()->H1(
"NRecProtons_eta_sim"), 100., 1.,
"B");
722 HM()->
H1(effRecProtonsReconstructedTheta)->Divide(
HM()->H1(
"recNRecProtons_theta_rec"),
HM()->H1(
"NRecProtons_theta_sim"), 100., 1.,
"B");
726 HM()->
H1(effRecProtonsReconstructedThetaR)->Divide(
HM()->H1(
"recNRecProtons_theta_r_rec"),
HM()->H1(
"NRecProtons_theta_r_sim"), 100., 1.,
"B");
730void BmnLambdaQaReport::DrawTwoDimensionalRealRecEfficiencyRecProtonsHistograms(
const string& canvasName) {
731 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
733 TString momEtaNProt = Form(
"recNRecProtons_eta_P_sim");
734 TString momEtaRecEff = Form(
"recEffRecProtons_eta_P_sim");
735 TString momEtaRecN = Form(
"simNReconstructableRecProtons_eta_P_sim");
737 canvas->Divide(4, 1);
744 HM()->
H2(momEtaRecEff.Data())->Divide(
HM()->H2(momEtaNProt.Data()),
HM()->H2(momEtaRecN.Data()), 100., 1.,
"B");
749void BmnLambdaQaReport::DrawNumberOfLambdaDecayMesonsReconstructedHistograms(
const string& canvasName) {
750 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
757 canvas->Divide(4, 1);
773void BmnLambdaQaReport::DrawRecMesonsReconstructionEfficiencyHistograms(
const string& canvasName) {
774 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
781 canvas->Divide(4, 1);
785 HM()->
H1(effRecMesonsReconstructedP)->Divide(
HM()->H1(
"recNRecMesons_P_rec"),
HM()->H1(
"NRecMesons_P_sim"), 100., 1.,
"B");
789 HM()->
H1(effRecMesonsReconstructedEta)->Divide(
HM()->H1(
"recNRecMesons_eta_rec"),
HM()->H1(
"NRecMesons_eta_sim"), 100., 1.,
"B");
793 HM()->
H1(effRecMesonsReconstructedTheta)->Divide(
HM()->H1(
"recNRecMesons_theta_rec"),
HM()->H1(
"NRecMesons_theta_sim"), 100., 1.,
"B");
797 HM()->
H1(effRecMesonsReconstructedThetaR)->Divide(
HM()->H1(
"recNRecMesons_theta_r_rec"),
HM()->H1(
"NRecMesons_theta_r_sim"), 100., 1.,
"B");
801void BmnLambdaQaReport::DrawTwoDimensionalRealRecEfficiencyRecMesonsHistograms(
const string& canvasName) {
802 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
804 TString momEtaNProt = Form(
"recNRecMesons_eta_P_sim");
805 TString momEtaRecEff = Form(
"recEffRecMesons_eta_P_sim");
806 TString momEtaRecN = Form(
"simNReconstructableRecMesons_eta_P_sim");
808 canvas->Divide(4, 1);
815 HM()->
H2(momEtaRecEff.Data())->Divide(
HM()->H2(momEtaNProt.Data()),
HM()->H2(momEtaRecN.Data()), 100., 1.,
"B");
819void BmnLambdaQaReport::DrawNumberOfNotReconstructedLambdasHistograms(
const string& canvasName) {
820 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
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");
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");
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");
837 canvas->Divide(4, 1);
841 HM()->
H1(momNonRecLambda.Data())->Add(
HM()->H1(momN.Data()), 1);
842 HM()->
H1(momNonRecLambda.Data())->Add(
HM()->H1(nLambdasReconstructedP.Data()), -1);
846 HM()->
H1(thetaNonRecLambda.Data())->Add(
HM()->H1(thetaN.Data()), 1);
847 HM()->
H1(thetaNonRecLambda.Data())->Add(
HM()->H1(nLambdasReconstructedTheta.Data()), -1);
851 HM()->
H1(etaNonRecLambda.Data())->Add(
HM()->H1(etaN.Data()), 1);
852 HM()->
H1(etaNonRecLambda.Data())->Add(
HM()->H1(nLambdasReconstructedEta.Data()), -1);
856 HM()->
H1(thetaRNonRecLambda.Data())->Add(
HM()->H1(thetaRN.Data()), 1);
857 HM()->
H1(thetaRNonRecLambda.Data())->Add(
HM()->H1(nLambdasReconstructedThetaR.Data()), -1);
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);
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");
883 canvas->Divide(4, 3);
917void BmnLambdaQaReport::DrawReconstructedFromMCWOCutsLambdasHistograms(
const string& canvasName) {
918 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
919 TString nPairsRecoFromMCWOCutsInvMass = Form(
"NPairsRecoFromMCWOCutsInvMass");
921 canvas->Divide(4, 1);
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");
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");
942 canvas->Divide(4, 3);
976void BmnLambdaQaReport::DrawReconstructedLambdasHistograms(
const string& canvasName) {
977 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
979 TH1* hist =
HM()->
H1(
"NPairsRecoInvMass");
980 canvas->Divide(4, 1);
986 TF1* bg =
new TF1(
"BG",
"pol4", 1.07, 1.22);
987 TF1* sig =
new TF1(
"SIG",
"gaus", 1.11, 1.12);
992 bg->GetParameters(&par[0]);
993 sig->GetParameters(&par[5]);
994 TF1 *
f =
new TF1(
"f",
"pol4(0)+gaus(5)", 1.07, 1.22);
997 f->SetParameters(par);
1001 f->SetParameter(7, 0.002);
1002 TFitResultPtr fitRes = hist->Fit(
f,
"RS");
1021void BmnLambdaQaReport::DrawTwoDimensinalReconstructedLambdasHistograms(
const string& canvasName) {
1022 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 3000, 1000);
1024 TString nPairsRecoInvMassMomPart1 = Form(
"NPairsRecoInvMassMomProton");
1025 TString nPairsRecoInvMassEtaPart1 = Form(
"NPairsRecoInvMassEtaProton");
1026 TString nPairsRecoInvMassDCA1 = Form(
"NPairsRecoInvMassDCA1");
1027 TString nPairsRecoInvMassDCA12X = Form(
"NPairsRecoInvMassDCA12X");
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");
1036 canvas->Divide(4, 3);
1070void BmnLambdaQaReport::DrawReconstructedLambdasWOCutsHistograms(
const string& canvasName) {
1071 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 2000, 500);
1072 TString nPairsRecoInvMassWOCuts = Form(
"NPairsRecoInvMassWOCuts");
1074 canvas->Divide(4, 1);
1081void BmnLambdaQaReport::DrawTwoDimensinalReconstructedLambdasWOCutsHistograms(
const string& canvasName) {
1082 TCanvas* canvas =
CreateCanvas(canvasName.c_str(), canvasName.c_str(), 3000, 1000);
1084 TString nPairsRecoInvMassMomPart1WOCuts = Form(
"NPairsRecoInvMassMomProtonWOCuts");
1085 TString nPairsRecoInvMassEtaPart1WOCuts = Form(
"NPairsRecoInvMassEtaProtonWOCuts");
1086 TString nPairsRecoInvMassDCA1WOCuts = Form(
"NPairsRecoInvMassDCA1WOCuts");
1087 TString nPairsRecoInvMassDCA12XWOCuts = Form(
"NPairsRecoInvMassDCA12XWOCuts");
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");
1096 canvas->Divide(4, 3);
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.
Double_t getEtaPart1Min()
Double_t getMomPart1Max()
Double_t getEtaPart1Max()
Double_t getDCAPart2Max()
Double_t getDCAPart1Min()
Double_t getMomPart1Min()
Double_t getDCAPart2Min()
Double_t getEtaPart2Max()
Double_t getDCAPart1Max()
Double_t getMomPart2Max()
Double_t getEtaPart2Min()
Double_t getMomPart2Min()
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)
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...
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...
ostream & Out() const
All text output goes to this stream.
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)
string FindAndReplace(const string &name, const string &oldSubstr, const string &newSubstr)
vector< string > Split(const string &name, char delimiter)
string NumberToString(const T &value, int precision=1)