12#include "BmnDrawHist.h"
13#include "BmnGemStripStation.h"
14#include "BmnGemStripStationSet_RunSpring2017.h"
15#include "BmnHistManager.h"
17#include "BmnParticlePairsInfo.h"
18#include "BmnReportElement.h"
38 vector<TClonesArray*> branches)
63 Out() <<
"<h1> <font color='00FF00'>The criterion for lambda to be reconstructable: </font></h1>" << endl;
64 Out() <<
"<h1> <font color='00FF00'>Both of its decay products have at least </font><font color='FF0000'> 4 "
65 "</font><font color='00FF00'> gem or silicon hits </font></h1>"
69 Out() <<
"<h1> Number of lambda:\n" <<
HM()->
H1(
"numberOfLambdas_LambdaQa")->
GetEntries() <<
"</h1>" << endl;
70 Out() <<
"<h1> Number of reconstructable lambda:\n"
71 <<
HM()->
H1(
"numberOfReconstructableLambdas_LambdaQa")->
GetEntries() <<
"</h1>" << endl;
74 Out() << setprecision(2) << fixed <<
"<h1> Geometrical efficiency:\n"
75 << lRecEff * 100 <<
"%" <<
"</h1>" << endl;
76 Out() << setprecision(2) <<
"<h1> Number of particle pairs reconstructed by MC tracks:\n"
77 <<
HM()->
H1(
"numberOfMCReconstructedParticlePairsQA")->
GetEntries() <<
"</h1>" << endl;
78 Out() << setprecision(2) <<
"<h1> Number of particle pairs reconstructed by MC tracks being lambda:\n"
79 <<
HM()->
H1(
"numberOfMCReconstructedLambdasQA")->
GetEntries() <<
"</h1>" << endl;
80 Out() << setprecision(2) << fixed
81 <<
"<h1> Percentage of particle pairs reconstructed by MC tracks being lambda:\n"
83 /
HM()->
H1(
"numberOfMCReconstructedParticlePairsQA")->
GetEntries() * 100
86 Out() <<
"<h1> <font color='6f00ff'> Kinematic cuts for MC are: </font></h1>" << endl;
95 Out() <<
"<h1> <font color='6f00ff'> Geometrical cuts for MC are: </font></h1>" << endl;
107 Out() << setprecision(2) <<
"<h1> Number of reconstructed particle pairs:\n"
108 <<
HM()->
H1(
"numberOfReconstructedParticlePairsQA")->
GetEntries() <<
"</h1>" << endl;
109 Out() <<
"<h1> <font color='90ff00'> Kinematic cuts for reco are: </font></h1>" << endl;
118 Out() <<
"<h1> <font color='90ff00'> Geometrical cuts for reco are: </font></h1>" << endl;
133 /
HM()->
H1(
"numberOfReconstructableLambdas_LambdaQa")->
GetEntries();
134 Out() << setprecision(2)
135 <<
"<h1> Number of reconstructed particle pairs with primary particle having MC matched lambda:\n"
136 <<
HM()->
H1(
"numberOfReconstructedParticlePairWithMatchedLambdaQA")->
GetEntries() <<
"</h1>" << endl;
137 Out() << setprecision(2) << fixed <<
"<h1> Reconstruction algorithms efficiency:\n"
138 << lRecEffR * 100 <<
"%" <<
"</h1>" << endl;
139 Out() << setprecision(2) <<
"<h1> Number of reconstructed fake lambdas:\n"
141 -
HM()->
H1(
"numberOfReconstructedParticlePairWithMatchedLambdaQA")->
GetEntries()
143 Out() << setprecision(2) << fixed <<
"<h1> Total reconstruction efficiency:\n"
144 << lRecEff * lRecEffR * 100 <<
"%" <<
"</h1>" << endl;
145 Out() << setprecision(2) <<
"<h1> Number of not reconstructed lambdas:\n"
147 -
HM()->
H1(
"numberOfReconstructedParticlePairWithMatchedLambdaQA")->
GetEntries()
156 "Number of reconstructable lambda determined by the geometry and overall number of lambda histograms");
160 "geometry and overall number of protons histograms");
163 "Two dimensional number of recontstructive protons determined by the geometry histograms");
165 "geometry and overall number of mesons histograms");
168 "Two dimensional number of lambda decay mesons determined by the geometry histograms");
173 "Two dimensional reconstructed particle pairs from MC data");
176 "Two dimensional reconstructed particle pairs from MC data without cuts");
185 "Two dimensional number of reconstructed particle pairs histograms");
188 "Number of reconstructed lambda decay protons histograms");
191 "Two dimensional number of reconstructed lambda decay protons histograms");
193 "Number of reconstructed lambda decay mesons histograms");
196 "Two dimensional number of reconstructed lambda decay mesons histograms");
206 "Reconstructed particle pairs without cuts from reconstruction data");
208 "Two dimensional reconstructed without cuts particle pairs data");
219 TString momRecN =
Form(
"simNReconstructableLambda_P_sim");
220 TString etaRecN =
Form(
"simNReconstructableLambda_eta_sim");
221 TString thetaRecN =
Form(
"simNReconstructableLambda_theta_sim");
222 TString thetaRRecN =
Form(
"simNReconstructableLambda_theta_r_sim");
223 TString momXRecN =
Form(
"simNReconstructableLambda_P_x_sim");
224 TString momYRecN =
Form(
"simNReconstructableLambda_P_y_sim");
225 TString momZRecN =
Form(
"simNReconstructableLambda_P_z_sim");
235 vector<TH1*> histos1;
236 histos1.push_back(
HM()->H1(momRecN.
Data()));
237 histos1.push_back(
HM()->H1(momN.
Data()));
239 vector<string> labels1;
240 labels1.push_back(
"Reconstructable lambda");
241 labels1.push_back(
"All #Lambda^{0}");
243 DrawH1(histos1, labels1,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
246 vector<TH1*> histos2;
247 histos2.push_back(
HM()->H1(etaRecN.
Data()));
248 histos2.push_back(
HM()->H1(etaN.
Data()));
250 vector<string> labels2;
251 labels2.push_back(
"Reconstructable #Lambda^{0}");
252 labels2.push_back(
"All #Lambda^{0}");
254 DrawH1(histos2, labels2,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
257 vector<TH1*> histos3;
258 histos3.push_back(
HM()->H1(thetaRecN.
Data()));
259 histos3.push_back(
HM()->H1(thetaN.
Data()));
261 vector<string> labels3;
262 labels3.push_back(
"Reconstructable #Lambda^{0}");
263 labels3.push_back(
"All #Lambda^{0}");
265 DrawH1(histos3, labels3,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
268 vector<TH1*> histos4;
269 histos4.push_back(
HM()->H1(thetaRRecN.
Data()));
270 histos4.push_back(
HM()->H1(thetaRN.
Data()));
272 vector<string> labels4;
273 labels4.push_back(
"Reconstructable #Lambda^{0}");
274 labels4.push_back(
"All #Lambda^{0}");
276 DrawH1(histos4, labels4,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
279 vector<TH1*> histos5;
280 histos5.push_back(
HM()->H1(momXRecN.
Data()));
281 histos5.push_back(
HM()->H1(momXN.
Data()));
283 vector<string> labels5;
284 labels5.push_back(
"Reconstructable #Lambda^{0}");
285 labels5.push_back(
"All #Lambda^{0}");
286 DrawH1(histos5, labels5,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
289 vector<TH1*> histos6;
290 histos6.push_back(
HM()->H1(momYRecN.
Data()));
291 histos6.push_back(
HM()->H1(momYN.
Data()));
293 vector<string> labels6;
294 labels6.push_back(
"Reconstructable #Lambda^{0}");
295 labels6.push_back(
"All #Lambda^{0}");
296 DrawH1(histos6, labels6,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
299 vector<TH1*> histos7;
300 histos7.push_back(
HM()->H1(momZRecN.
Data()));
301 histos7.push_back(
HM()->H1(momZN.
Data()));
303 vector<string> labels7;
304 labels7.push_back(
"Reconstructable #Lambda^{0}");
305 labels7.push_back(
"All #Lambda^{0}");
306 DrawH1(histos7, labels7,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
352 TString thetaEff =
Form(
"simLambdaRecEff_theta_sim");
353 TString thetaREff =
Form(
"simLambdaRecEff_theta_r_sim");
359 HM()->
H1(momEff)->
Divide(
HM()->H1(
"simNReconstructableLambda_P_sim"),
HM()->H1(
"simNLambda_P_sim"), 100., 1.,
"B");
365 HM()->
H1(etaEff)->
Divide(
HM()->H1(
"simNReconstructableLambda_eta_sim"),
HM()->H1(
"simNLambda_eta_sim"), 100., 1.,
372 HM()->
H1(thetaEff)->
Divide(
HM()->H1(
"simNReconstructableLambda_theta_sim"),
HM()->H1(
"simNLambda_theta_sim"), 100.,
379 HM()->
H1(thetaREff)->
Divide(
HM()->H1(
"simNReconstructableLambda_theta_r_sim"),
HM()->H1(
"simNLambda_theta_r_sim"),
386 HM()->
H1(momXEff)->
Divide(
HM()->H1(
"simNReconstructableLambda_P_x_sim"),
HM()->H1(
"simNLambda_P_x_sim"), 100., 1.,
393 HM()->
H1(momYEff)->
Divide(
HM()->H1(
"simNReconstructableLambda_P_y_sim"),
HM()->H1(
"simNLambda_P_y_sim"), 100., 1.,
400 HM()->
H1(momZEff)->
Divide(
HM()->H1(
"simNReconstructableLambda_P_z_sim"),
HM()->H1(
"simNLambda_P_z_sim"), 100., 1.,
411 TString momEtaRecN =
Form(
"simNReconstructableLambda_eta_P_sim");
412 TString momEtaEff =
Form(
"simEffRecLambda_eta_P_sim");
434 TString nProtonsTheta =
Form(
"NProtons_theta_sim");
435 TString nProtonsThetaR =
Form(
"NProtons_theta_r_sim");
437 TString nRecProtonsMom =
Form(
"NRecProtons_P_sim");
438 TString nRecProtonsEta =
Form(
"NRecProtons_eta_sim");
439 TString nRecProtonsTheta =
Form(
"NRecProtons_theta_sim");
440 TString nRecProtonsThetaR =
Form(
"NRecProtons_theta_r_sim");
447 vector<TH1*> histos1;
448 histos1.push_back(
HM()->H1(nRecProtonsMom.
Data()));
449 histos1.push_back(
HM()->H1(nProtonsMom.
Data()));
451 vector<string> labels1;
452 labels1.push_back(
"Reconstructable lambda decay p");
453 labels1.push_back(
"Lambda decay p");
455 DrawH1(histos1, labels1,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
459 vector<TH1*> histos2;
460 histos2.push_back(
HM()->H1(nRecProtonsEta.
Data()));
461 histos2.push_back(
HM()->H1(nProtonsEta.
Data()));
463 vector<string> labels2;
464 labels2.push_back(
"Reconstructable lambda decay p");
465 labels2.push_back(
"Lambda decay p");
467 DrawH1(histos2, labels2,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
471 vector<TH1*> histos3;
472 histos3.push_back(
HM()->H1(nRecProtonsTheta.
Data()));
473 histos3.push_back(
HM()->H1(nProtonsTheta.
Data()));
475 vector<string> labels3;
476 labels3.push_back(
"Reconstructable lambda decay p");
477 labels3.push_back(
"Lambda decay p");
479 DrawH1(histos3, labels3,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
483 vector<TH1*> histos4;
484 histos4.push_back(
HM()->H1(nRecProtonsThetaR.
Data()));
485 histos4.push_back(
HM()->H1(nProtonsThetaR.
Data()));
487 vector<string> labels4;
488 labels4.push_back(
"Reconstructable lambda decay p");
489 labels4.push_back(
"Lambda decay p");
491 DrawH1(histos4, labels4,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
498 TString recProtonsRecEffMom =
Form(
"simRecProtonsRecEff_P_sim");
499 TString recProtonsRecEffEta =
Form(
"simRecProtonsRecEff_eta_sim");
500 TString recProtonsRecEffTheta =
Form(
"simRecProtonsRecEff_theta_sim");
501 TString recProtonsRecEffThetaR =
Form(
"simRecProtonsRecEff_theta_r_sim");
507 HM()->
H1(recProtonsRecEffMom.
Data())
508 ->
Divide(
HM()->H1(
"NRecProtons_P_sim"),
HM()->H1(
"NProtons_P_sim"), 100., 1.,
"B");
512 HM()->
H1(recProtonsRecEffEta.
Data())
513 ->
Divide(
HM()->H1(
"NRecProtons_eta_sim"),
HM()->H1(
"NProtons_eta_sim"), 100., 1.,
"B");
517 HM()->
H1(recProtonsRecEffTheta.
Data())
518 ->
Divide(
HM()->H1(
"NRecProtons_theta_sim"),
HM()->H1(
"NProtons_theta_sim"), 100., 1.,
"B");
522 HM()->
H1(recProtonsRecEffThetaR.
Data())
523 ->
Divide(
HM()->H1(
"NRecProtons_theta_r_sim"),
HM()->H1(
"NProtons_theta_r_sim"), 100., 1.,
"B");
534 TString nMesonsThetaR =
Form(
"NMesons_theta_r_sim");
537 TString nRecMesonsEta =
Form(
"NRecMesons_eta_sim");
538 TString nRecMesonsTheta =
Form(
"NRecMesons_theta_sim");
539 TString nRecMesonsThetaR =
Form(
"NRecMesons_theta_r_sim");
546 vector<TH1*> histos1;
547 histos1.push_back(
HM()->H1(nRecMesonsMom.
Data()));
548 histos1.push_back(
HM()->H1(nMesonsMom.
Data()));
550 vector<string> labels1;
551 labels1.push_back(
"Reconstructable lambda decay #pi^{-}");
552 labels1.push_back(
"Lambda decay #pi^{-}");
554 DrawH1(histos1, labels1,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
558 vector<TH1*> histos2;
559 histos2.push_back(
HM()->H1(nRecMesonsEta.
Data()));
560 histos2.push_back(
HM()->H1(nMesonsEta.
Data()));
562 vector<string> labels2;
563 labels2.push_back(
"Reconstructable lambda decay #pi^{-}");
564 labels2.push_back(
"Lambda decay #pi^{-}");
566 DrawH1(histos2, labels2,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
570 vector<TH1*> histos3;
571 histos3.push_back(
HM()->H1(nRecMesonsTheta.
Data()));
572 histos3.push_back(
HM()->H1(nMesonsTheta.
Data()));
574 vector<string> labels3;
575 labels3.push_back(
"Reconstructable lambda decay #pi^{-}");
576 labels3.push_back(
"Lambda decay #pi^{-}");
578 DrawH1(histos3, labels3,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
582 vector<TH1*> histos4;
583 histos4.push_back(
HM()->H1(nRecMesonsThetaR.
Data()));
584 histos4.push_back(
HM()->H1(nMesonsThetaR.
Data()));
586 vector<string> labels4;
587 labels4.push_back(
"Reconstructable lambda decay #pi^{-}");
588 labels4.push_back(
"Lambda decay #pi^{-}");
590 DrawH1(histos4, labels4,
kLinear,
kLog,
kTRUE, 0.16, 0.91, 0.9, 0.99,
drawPointsOpt.Data(),
kFALSE);
602 TString nRecMesonsEta =
Form(
"NRecMesons_eta_sim");
603 TString nRecMesonsTheta =
Form(
"NRecMesons_theta_sim");
605 TString recMesonsRecEffMom =
Form(
"simRecMesonsRecEff_P_sim");
606 TString recMesonsRecEffEta =
Form(
"simRecMesonsRecEff_eta_sim");
607 TString recMesonsRecEffTheta =
Form(
"simRecMesonsRecEff_theta_sim");
608 TString recMesonsRecEffThetaR =
Form(
"simRecMesonsRecEff_theta_r_sim");
614 HM()->
H1(recMesonsRecEffMom.
Data())->
Divide(
HM()->H1(
"NRecMesons_P_sim"),
HM()->H1(
"NMesons_P_sim"), 100., 1.,
"B");
619 ->
Divide(
HM()->H1(
"NRecMesons_eta_sim"),
HM()->H1(
"NMesons_eta_sim"), 100., 1.,
"B");
623 HM()->
H1(recMesonsRecEffTheta.
Data())
624 ->
Divide(
HM()->H1(
"NRecMesons_theta_sim"),
HM()->H1(
"NMesons_theta_sim"), 100., 1.,
"B");
628 HM()->
H1(recMesonsRecEffThetaR.
Data())
629 ->
Divide(
HM()->H1(
"NRecMesons_theta_r_sim"),
HM()->H1(
"NMesons_theta_r_sim"), 100., 1.,
"B");
637 TString momEtaNProtons =
Form(
"simNRecProtons_eta_P_sim");
638 TString momEtaRecNProtons =
Form(
"simNReconstructableRecProtons_eta_P_sim");
639 TString momEtaEffProtons =
Form(
"simEffRecRecProtons_eta_P_sim");
652 ->
Divide(
HM()->H2(momEtaRecNProtons.
Data()),
HM()->H2(momEtaNProtons.
Data()), 100., 1.,
"B");
660 TString momEtaNMesons =
Form(
"simNRecMesons_eta_P_sim");
661 TString momEtaRecNMesons =
Form(
"simNReconstructableRecMesons_eta_P_sim");
662 TString momEtaEffMesons =
Form(
"simEffRecRecMesons_eta_P_sim");
675 ->
Divide(
HM()->H2(momEtaRecNMesons.
Data()),
HM()->H2(momEtaNMesons.
Data()), 100., 1.,
"B");
683 TString nLambdasReconstructedP =
Form(
"recNLambda_P_rec");
684 TString nLambdasReconstructedTheta =
Form(
"recNLambda_theta_rec");
685 TString nLambdasReconstructedEta =
Form(
"recNLambda_eta_rec");
686 TString nLambdasReconstructedThetaR =
Form(
"recNLambda_theta_r_rec");
708 TString effLambdasReconstructedP =
Form(
"recEffLambda_P_rec");
709 TString effLambdasReconstructedTheta =
Form(
"recEffLambda_theta_rec");
710 TString effLambdasReconstructedEta =
Form(
"recEffLambda_eta_rec");
711 TString effLambdasReconstructedThetaR =
Form(
"recEffLambda_theta_r_rec");
713 TString nLambdasReconstructedP =
Form(
"recNLambda_P_rec");
714 TString nLambdasReconstructedTheta =
Form(
"recNLambda_theta_rec");
715 TString nLambdasReconstructedEta =
Form(
"recNLambda_eta_rec");
716 TString nLambdasReconstructedThetaR =
Form(
"recNLambda_theta_r_rec");
718 TString momRecN =
Form(
"simNReconstructableLambda_P_sim");
719 TString etaRecN =
Form(
"simNReconstructableLambda_eta_sim");
720 TString thetaRecN =
Form(
"simNReconstructableLambda_theta_sim");
721 TString thetaRRecN =
Form(
"simNReconstructableLambda_theta_r_sim");
727 HM()->
H1(effLambdasReconstructedP)
728 ->
Divide(
HM()->H1(
"recNLambda_P_rec"),
HM()->H1(
"simNReconstructableLambda_P_sim"), 100., 1.,
"B");
732 HM()->
H1(effLambdasReconstructedEta)
733 ->
Divide(
HM()->H1(
"recNLambda_eta_rec"),
HM()->H1(
"simNReconstructableLambda_eta_sim"), 100., 1.,
"B");
737 HM()->
H1(effLambdasReconstructedTheta)
738 ->
Divide(
HM()->H1(
"recNLambda_theta_rec"),
HM()->H1(
"simNReconstructableLambda_theta_sim"), 100., 1.,
"B");
742 HM()->
H1(effLambdasReconstructedThetaR)
743 ->
Divide(
HM()->H1(
"recNLambda_theta_r_rec"),
HM()->H1(
"simNReconstructableLambda_theta_r_sim"), 100., 1.,
"B");
752 TString momEtaRecEff =
Form(
"recEffRecLambda_eta_P_sim");
753 TString momEtaRecN =
Form(
"simNReconstructableLambda_eta_P_sim");
770 TString nRecProtonsReconstructedP =
Form(
"recNRecProtons_P_rec");
771 TString nRecProtonsReconstructedTheta =
Form(
"recNRecProtons_theta_rec");
772 TString nRecProtonsReconstructedEta =
Form(
"recNRecProtons_eta_rec");
773 TString nRecProtonsReconstructedThetaR =
Form(
"recNRecProtons_theta_r_rec");
795 TString effRecProtonsReconstructedP =
Form(
"recEffRecProtons_P_rec");
796 TString effRecProtonsReconstructedTheta =
Form(
"recEffRecProtons_theta_rec");
797 TString effRecProtonsReconstructedEta =
Form(
"recEffRecProtons_eta_rec");
798 TString effRecProtonsReconstructedThetaR =
Form(
"recEffRecProtons_theta_r_rec");
804 HM()->
H1(effRecProtonsReconstructedP)
805 ->
Divide(
HM()->H1(
"recNRecProtons_P_rec"),
HM()->H1(
"NRecProtons_P_sim"), 100., 1.,
"B");
809 HM()->
H1(effRecProtonsReconstructedEta)
810 ->
Divide(
HM()->H1(
"recNRecProtons_eta_rec"),
HM()->H1(
"NRecProtons_eta_sim"), 100., 1.,
"B");
814 HM()->
H1(effRecProtonsReconstructedTheta)
815 ->
Divide(
HM()->H1(
"recNRecProtons_theta_rec"),
HM()->H1(
"NRecProtons_theta_sim"), 100., 1.,
"B");
819 HM()->
H1(effRecProtonsReconstructedThetaR)
820 ->
Divide(
HM()->H1(
"recNRecProtons_theta_r_rec"),
HM()->H1(
"NRecProtons_theta_r_sim"), 100., 1.,
"B");
828 TString momEtaNProt =
Form(
"recNRecProtons_eta_P_sim");
829 TString momEtaRecEff =
Form(
"recEffRecProtons_eta_P_sim");
830 TString momEtaRecN =
Form(
"simNReconstructableRecProtons_eta_P_sim");
847 TString nRecMesonsReconstructedP =
Form(
"recNRecMesons_P_rec");
848 TString nRecMesonsReconstructedTheta =
Form(
"recNRecMesons_theta_rec");
849 TString nRecMesonsReconstructedEta =
Form(
"recNRecMesons_eta_rec");
850 TString nRecMesonsReconstructedThetaR =
Form(
"recNRecMesons_theta_r_rec");
872 TString effRecMesonsReconstructedP =
Form(
"recEffRecMesons_P_rec");
873 TString effRecMesonsReconstructedTheta =
Form(
"recEffRecMesons_theta_rec");
874 TString effRecMesonsReconstructedEta =
Form(
"recEffRecMesons_eta_rec");
875 TString effRecMesonsReconstructedThetaR =
Form(
"recEffRecMesons_theta_r_rec");
881 HM()->
H1(effRecMesonsReconstructedP)
882 ->
Divide(
HM()->H1(
"recNRecMesons_P_rec"),
HM()->H1(
"NRecMesons_P_sim"), 100., 1.,
"B");
886 HM()->
H1(effRecMesonsReconstructedEta)
887 ->
Divide(
HM()->H1(
"recNRecMesons_eta_rec"),
HM()->H1(
"NRecMesons_eta_sim"), 100., 1.,
"B");
891 HM()->
H1(effRecMesonsReconstructedTheta)
892 ->
Divide(
HM()->H1(
"recNRecMesons_theta_rec"),
HM()->H1(
"NRecMesons_theta_sim"), 100., 1.,
"B");
896 HM()->
H1(effRecMesonsReconstructedThetaR)
897 ->
Divide(
HM()->H1(
"recNRecMesons_theta_r_rec"),
HM()->H1(
"NRecMesons_theta_r_sim"), 100., 1.,
"B");
905 TString momEtaNProt =
Form(
"recNRecMesons_eta_P_sim");
906 TString momEtaRecEff =
Form(
"recEffRecMesons_eta_P_sim");
907 TString momEtaRecN =
Form(
"simNReconstructableRecMesons_eta_P_sim");
924 TString momNonRecLambda =
Form(
"recNNotRecLambda_P_rec");
925 TString thetaNonRecLambda =
Form(
"recNNotRecLambda_theta_rec");
926 TString etaNonRecLambda =
Form(
"recNNotRecLambda_eta_rec");
927 TString thetaRNonRecLambda =
Form(
"recNNotRecLambda_theta_r_rec");
934 TString nLambdasReconstructedP =
Form(
"recNLambda_P_rec");
935 TString nLambdasReconstructedTheta =
Form(
"recNLambda_theta_rec");
936 TString nLambdasReconstructedEta =
Form(
"recNLambda_eta_rec");
937 TString nLambdasReconstructedThetaR =
Form(
"recNLambda_theta_r_rec");
944 HM()->
H1(momNonRecLambda.
Data())->
Add(
HM()->H1(nLambdasReconstructedP.
Data()), -1);
949 HM()->
H1(thetaNonRecLambda.
Data())->
Add(
HM()->H1(nLambdasReconstructedTheta.
Data()), -1);
954 HM()->
H1(etaNonRecLambda.
Data())->
Add(
HM()->H1(nLambdasReconstructedEta.
Data()), -1);
959 HM()->
H1(thetaRNonRecLambda.
Data())->
Add(
HM()->H1(nLambdasReconstructedThetaR.
Data()), -1);
966 TString nPairsRecoFromMCInvMass =
Form(
"NPairsRecoFromMCInvMass");
976 TString nPairsRecoFromMCInvMassMomPart1 =
Form(
"NPairsRecoFromMCInvMassMomProton");
977 TString nPairsRecoFromMCInvMassEtaPart1 =
Form(
"NPairsRecoFromMCInvMassEtaProton");
978 TString nPairsRecoFromMCInvMassDCA1 =
Form(
"NPairsRecoFromMCInvMassDCA1");
979 TString nPairsRecoFromMCInvMassDCA12X =
Form(
"NPairsRecoFromMCInvMassDCA12X");
980 TString nPairsRecoFromMCInvMassMomPart2 =
Form(
"NPairsRecoFromMCInvMassMomMeson");
981 TString nPairsRecoFromMCInvMassEtaPart2 =
Form(
"NPairsRecoFromMCInvMassEtaMeson");
982 TString nPairsRecoFromMCInvMassDCA2 =
Form(
"NPairsRecoFromMCInvMassDCA2");
983 TString nPairsRecoFromMCInvMassDCA12Y =
Form(
"NPairsRecoFromMCInvMassDCA12Y");
984 TString nPairsRecoFromMCInvMassDCA12XsubY =
Form(
"NPairsRecoFromMCInvMassDCA12XsubY");
985 TString nPairsRecoFromMCInvMassPath =
Form(
"NPairsRecoFromMCInvMassPath");
1024 TString nPairsRecoFromMCWOCutsInvMass =
Form(
"NPairsRecoFromMCWOCutsInvMass");
1036 TString nPairsRecoFromMCWOCutsInvMassMomPart1 =
Form(
"NPairsRecoFromMCWOCutsInvMassMomProton");
1037 TString nPairsRecoFromMCWOCutsInvMassEtaPart1 =
Form(
"NPairsRecoFromMCWOCutsInvMassEtaProton");
1038 TString nPairsRecoFromMCWOCutsInvMassDCA1 =
Form(
"NPairsRecoFromMCWOCutsInvMassDCA1");
1039 TString nPairsRecoFromMCWOCutsInvMassDCA12X =
Form(
"NPairsRecoFromMCWOCutsInvMassDCA12X");
1041 TString nPairsRecoFromMCWOCutsInvMassMomPart2 =
Form(
"NPairsRecoFromMCWOCutsInvMassMomMeson");
1042 TString nPairsRecoFromMCWOCutsInvMassEtaPart2 =
Form(
"NPairsRecoFromMCWOCutsInvMassEtaMeson");
1043 TString nPairsRecoFromMCWOCutsInvMassDCA2 =
Form(
"NPairsRecoFromMCWOCutsInvMassDCA2");
1044 TString nPairsRecoFromMCWOCutsInvMassDCA12Y =
Form(
"NPairsRecoFromMCWOCutsInvMassDCA12Y");
1045 TString nPairsRecoFromMCWOCutsInvMassDCA12XsubY =
Form(
"NPairsRecoFromMCWOCutsInvMassDCA12XsubY");
1046 TString nPairsRecoFromMCWOCutsInvMassPath =
Form(
"NPairsRecoFromMCWOCutsInvMassPath");
1086 TH1* hist =
HM()->
H1(
"NPairsRecoInvMass");
1093 TF1* bg =
new TF1(
"BG",
"pol4", 1.07, 1.22);
1094 TF1* sig =
new TF1(
"SIG",
"gaus", 1.11, 1.12);
1098 hist->
Fit(sig,
"R");
1101 TF1* f =
new TF1(
"f",
"pol4(0)+gaus(5)", 1.07, 1.22);
1104 f->SetParameters(par);
1108 f->SetParameter(7, 0.002);
1131 TString nPairsRecoInvMassMomPart1 =
Form(
"NPairsRecoInvMassMomProton");
1132 TString nPairsRecoInvMassEtaPart1 =
Form(
"NPairsRecoInvMassEtaProton");
1133 TString nPairsRecoInvMassDCA1 =
Form(
"NPairsRecoInvMassDCA1");
1134 TString nPairsRecoInvMassDCA12X =
Form(
"NPairsRecoInvMassDCA12X");
1136 TString nPairsRecoInvMassMomPart2 =
Form(
"NPairsRecoInvMassMomMeson");
1137 TString nPairsRecoInvMassEtaPart2 =
Form(
"NPairsRecoInvMassEtaMeson");
1138 TString nPairsRecoInvMassDCA2 =
Form(
"NPairsRecoInvMassDCA2");
1139 TString nPairsRecoInvMassDCA12Y =
Form(
"NPairsRecoInvMassDCA12Y");
1140 TString nPairsRecoInvMassDCA12XsubY =
Form(
"NPairsRecoInvMassDCA12XsubY");
1141 TString nPairsRecoInvMassPath =
Form(
"NPairsRecoInvMassPath");
1180 TString nPairsRecoInvMassWOCuts =
Form(
"NPairsRecoInvMassWOCuts");
1193 TString nPairsRecoInvMassMomPart1WOCuts =
Form(
"NPairsRecoInvMassMomProtonWOCuts");
1194 TString nPairsRecoInvMassEtaPart1WOCuts =
Form(
"NPairsRecoInvMassEtaProtonWOCuts");
1195 TString nPairsRecoInvMassDCA1WOCuts =
Form(
"NPairsRecoInvMassDCA1WOCuts");
1196 TString nPairsRecoInvMassDCA12XWOCuts =
Form(
"NPairsRecoInvMassDCA12XWOCuts");
1198 TString nPairsRecoInvMassMomPart2WOCuts =
Form(
"NPairsRecoInvMassMomMesonWOCuts");
1199 TString nPairsRecoInvMassEtaPart2WOCuts =
Form(
"NPairsRecoInvMassEtaMesonWOCuts");
1200 TString nPairsRecoInvMassDCA2WOCuts =
Form(
"NPairsRecoInvMassDCA2WOCuts");
1201 TString nPairsRecoInvMassDCA12YWOCuts =
Form(
"NPairsRecoInvMassDCA12YWOCuts");
1202 TString nPairsRecoInvMassDCA12XsubYWOCuts =
Form(
"NPairsRecoInvMassDCA12XsubYWOCuts");
1203 TString nPairsRecoInvMassPathWOCuts =
Form(
"NPairsRecoInvMassPathWOCuts");
visualising simulated lambda reconstruction performance calculation.
FairTask for MC simulated lambda reconstruction performance calculation.
char * Form(const char *fmt,...)
TH2 * H2(const TString &name) const
Return pointer to TH2 histogram.
TH1 * H1(const TString &name) const
Return pointer to TH1 histogram.
void DrawTwoDimensionalRealRecEfficiencyRecMesonsHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedLambdasWOCutsHistograms(const string &canvasName)
void DrawReconstructedFromMCLambdasHistograms(const string &canvasName)
void DrawTwoDimensionalRecProtonsRecEfficiencyHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayProtonsHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayMesonsHistograms(const string &canvasName)
void DrawTwoDimensionalRecGeomEfficiencyHistograms(const string &canvasName)
virtual void Draw()
Pure abstract function which is called from public Create() function.
void DrawGeomEfficiencyHistograms(const string &canvasName)
void DrawRecProtonsGeomEffHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayMesonsReconstructedHistograms(const string &canvasName)
void DrawTwoDimensionalRealRecEfficiencyRecProtonsHistograms(const string &canvasName)
void DrawReconstructedFromMCWOCutsLambdasHistograms(const string &canvasName)
void DrawRecProtonsReconstructionEfficiencyHistograms(const string &canvasName)
void DrawReconstructionEfficiencyHistograms(const string &canvasName)
void DrawTwoDimensionalRecMesonsGeomRecEfficiencyHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedFromMCLambdasHistograms(const string &canvasName)
void DrawNumberOfReconstructableLambdaHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedLambdasHistograms(const string &canvasName)
void DrawNumberOfReconstructedLambdaHistograms(const string &canvasName)
void DrawReconstructedLambdasWOCutsHistograms(const string &canvasName)
void DrawNumberOfNotReconstructedLambdasHistograms(const string &canvasName)
void DrawNumberOfLambdaDecayProtonsReconstructedHistograms(const string &canvasName)
virtual void Create()
Pure abstract function which is called from public Create() function.
void DrawRecMesonsReconstructionEfficiencyHistograms(const string &canvasName)
void DrawReconstructedLambdasHistograms(const string &canvasName)
void DrawRecMesonsGeomRecEffHistograms(const string &canvasName)
void DrawNumberOfLambdaHistograms(const string &canvasName)
BmnParticlePairsInfo * fParticlePairsInfo
void DrawTwoDimensionalRealRecEfficiencyHistograms(const string &canvasName)
void DrawTwoDimensinalReconstructedFromMCWOCutsLambdasHistograms(const string &canvasName)
virtual ~BmnLambdaQaReport()
Destructor.
virtual string Title(int size, const string &title) const =0
Return string with title.
virtual string DocumentBegin() const =0
Return string with open tags for document.
virtual string DocumentEnd() const =0
Return string with close tags of the document.
void SetReportName(TString name)
void PrintCanvases() const
Print images created from canvases in the report.
const BmnReportElement * R() const
Accessor to BmnReportElement object.
TCanvas * CreateCanvas(const char *name, const char *title, Int_t ww, Int_t wh)
Create canvas and put it to vector of TCanvases.
ostream & Out() const
All text output goes to this stream.
BmnHistManager * HM() const
Return pointer to Histogram manager.
BmnSimulationReport()
Constructor.
TVirtualPad * cd(Int_t subpadnumber=0) override
virtual Double_t * GetParameters() const
virtual Bool_t Add(const TH1 *h, const TH1 *h2, Double_t c1=1, Double_t c2=1)
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
virtual void SetMaximum(Double_t maximum=-1111)
virtual void SetMinimum(Double_t minimum=-1111)
virtual Double_t GetEntries() const
virtual Bool_t Divide(const TH1 *h1)
virtual const char * GetTitle() const
void SetGrid(Int_t valuex=1, Int_t valuey=1) override
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
const char * Data() const
void DrawH2(TH2 *hist, HistScale logx=kLinear, HistScale logy=kLinear, HistScale logz=kLinear, const string &drawOpt="COLZ")
void DrawH1(TH1 *hist, HistScale logx=kLinear, HistScale logy=kLinear, const string &drawOpt="", Int_t color=BmnDrawingOptions::Color(0), Int_t lineWidth=BmnDrawingOptions::LineWidth(), Int_t lineStyle=BmnDrawingOptions::LineStyle(0), Float_t markerSize=BmnDrawingOptions::MarkerSize(), Int_t markerStyle=BmnDrawingOptions::MarkerStyle(0), Int_t fillColor=-1)
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)