12#include "BmnGemTrack.h"
13#include "BmnGlobalTrack.h"
14#include "BmnHistManager.h"
16#include "BmnParticlePair.h"
17#include "BmnSiliconPoint.h"
18#include "BmnSimulationReport.h"
19#include "CbmMCTrack.h"
20#include "FairRootManager.h"
25#include <boost/assign/list_of.hpp>
30using boost::assign::list_of;
31using std::binary_search;
76 val = (
i == 0) ? -DBL_MAX : DBL_MAX;
77 for (
Int_t j = 0; j < 2; j++) {
78 val = (j == 0) ? -DBL_MAX : DBL_MAX;
110 CreateH1(
"numberOfLambdas_LambdaQa",
"",
"", 1, 0, 1.);
111 CreateH1(
"numberOfReconstructableLambdas_LambdaQa",
"",
"", 1, 0, 1.);
122 CreateH1(
"numberOfMCReconstructedParticlePairsQA",
"",
"", 1, 0, 1.);
123 CreateH1(
"numberOfMCReconstructedLambdasQA",
"",
"", 1, 0, 1.);
124 CreateH1(
"numberOfMCReconstructedAllParticlePairsQA",
"",
"", 1, 0, 1.);
129 CreateH1(
"numberOfReconstructedParticlePairWithMatchedLambdaQA",
"",
"", 1, 0, 1.);
130 CreateH1(
"numberOfNotReconstructedLambdasQA",
"",
"", 1, 0, 1.);
141 CreateH1(
"numberOfReconstructedParticlePairsQA",
"",
"", 1, 0, 1.);
156 vector<Int_t> indicesOfLambdaProtons;
157 vector<Int_t> indicesOfLambdaMesons;
160 vector<array<int, 3>> indicesOfLamda;
162 for (
Int_t iTrack = 0; iTrack <
fMCTracks->GetEntriesFast(); iTrack++) {
166 cout <<
"Monte-Carlo simulation branch error" << endl;
174 Double_t pRapidity = 0.5 *
Log((P + P_z) / (P - P_z));
180 fHM->H1(
"numberOfLambdas_LambdaQa")->Fill(1);
182 fHM->H1(
"simNLambda_P_sim")->Fill(P);
183 fHM->H1(
"simNLambda_eta_sim")->Fill(pRapidity);
185 fHM->H1(
"simNLambda_theta_r_sim")->Fill(rapidity);
186 fHM->H1(
"simNLambda_P_x_sim")->Fill(P_x);
187 fHM->H1(
"simNLambda_P_y_sim")->Fill(P_y);
188 fHM->H1(
"simNLambda_P_z_sim")->Fill(P_z);
189 fHM->H2(
"simNLambda_eta_P_sim")->Fill(P, pRapidity);
199 indicesOfLambdaProtons.push_back(iTrack);
201 fHM->H1(
"NProtons_P_sim")->Fill(P);
202 fHM->H1(
"NProtons_eta_sim")->Fill(pRapidity);
204 fHM->H1(
"NProtons_theta_r_sim")->Fill(rapidity);
205 fHM->H2(
"simNRecProtons_eta_P_sim")->Fill(pRapidity, P);
211 nSiliconHitsOnTrackP++;
215 fHM->H1(
"NRecProtons_P_sim")->Fill(P);
216 fHM->H1(
"NRecProtons_eta_sim")->Fill(pRapidity);
218 fHM->H1(
"NRecProtons_theta_r_sim")->Fill(rapidity);
219 fHM->H2(
"simNReconstructableRecProtons_eta_P_sim")->Fill(pRapidity, P);
227 if (motherIdMeson < 0) {
232 indicesOfLambdaMesons.push_back(iTrack);
234 fHM->H1(
"NMesons_P_sim")->Fill(P);
235 fHM->H1(
"NMesons_eta_sim")->Fill(pRapidity);
237 fHM->H1(
"NMesons_theta_r_sim")->Fill(rapidity);
238 fHM->H2(
"simNRecMesons_eta_P_sim")->Fill(pRapidity, P);
244 nSiliconHitsOnTrackM++;
248 fHM->H1(
"NRecMesons_P_sim")->Fill(P);
249 fHM->H1(
"NRecMesons_eta_sim")->Fill(pRapidity);
251 fHM->H1(
"NRecMesons_theta_r_sim")->Fill(rapidity);
252 fHM->H2(
"simNReconstructableRecMesons_eta_P_sim")->Fill(pRapidity, P);
258 for (
size_t cnt1 = 0; cnt1 < indicesOfLambdaProtons.size(); cnt1++) {
259 for (
size_t cnt2 = 0; cnt2 < indicesOfLambdaMesons.size(); cnt2++) {
263 array<int, 3> tmp = {((
CbmMCTrack*)
fMCTracks->At(indicesOfLambdaProtons[cnt1]))->GetMotherId(),
264 indicesOfLambdaProtons[cnt1], indicesOfLambdaMesons[cnt2]};
265 indicesOfLamda.push_back(tmp);
270 for (
size_t cnt = 0; cnt < indicesOfLamda.size(); cnt++) {
271 Int_t nSiliconHitsOnTrackP = 0;
272 Int_t nSiliconHitsOnTrackM = 0;
273 Int_t nSSDHitsOnTrackP = 0;
274 Int_t nSSDHitsOnTrackM = 0;
275 Int_t nGEMHitsOnTrackP = 0;
276 Int_t nGEMHitsOnTrackM = 0;
280 if (trId == indicesOfLamda[cnt][1])
281 nSiliconHitsOnTrackP++;
282 else if (trId == indicesOfLamda[cnt][2])
283 nSiliconHitsOnTrackM++;
289 if (nGEMHitsOnTrackP + nSiliconHitsOnTrackP + nSSDHitsOnTrackP >= 4
290 && nGEMHitsOnTrackM + nSiliconHitsOnTrackM + nSSDHitsOnTrackM >= 4)
298 Double_t pRapidity = 0.5 *
Log((P + P_z) / (P - P_z));
301 fHM->H1(
"numberOfReconstructableLambdas_LambdaQa")->Fill(1);
303 fHM->H1(
"simNReconstructableLambda_P_sim")->Fill(P);
304 fHM->H1(
"simNReconstructableLambda_eta_sim")->Fill(pRapidity);
305 fHM->H1(
"simNReconstructableLambda_theta_r_sim")->Fill(rapidity);
307 fHM->H1(
"simNReconstructableLambda_P_x_sim")->Fill(P_x);
308 fHM->H1(
"simNReconstructableLambda_P_y_sim")->Fill(P_y);
309 fHM->H1(
"simNReconstructableLambda_P_z_sim")->Fill(P_z);
310 fHM->H2(
"simNReconstructableLambda_eta_P_sim")->Fill(P, pRapidity);
327 if (momPart1 <
fMom[0][0] || momPart1 >
fMom[0][1] || momPart2 <
fMom[1][0] || momPart2 >
fMom[1][1])
330 if (etaPart1 <
fEta[0][0] || etaPart1 >
fEta[0][1] || etaPart2 <
fEta[1][0] || etaPart2 >
fEta[1][1])
334 if (dca1 <
fDCA[0][0] || dca1 >
fDCA[0][1] || dca2 <
fDCA[1][0] || dca2 >
fDCA[1][1])
344 fHM->H1(
"numberOfMCReconstructedAllParticlePairsQA")->Fill(1);
345 fHM->H1(
"NPairsRecoFromMCInvMass")->Fill(pair->
GetInvMass());
347 fHM->H2(
"NPairsRecoFromMCInvMassMomProton")->Fill(momPart1, pair->
GetInvMass());
348 fHM->H2(
"NPairsRecoFromMCInvMassMomMeson")->Fill(momPart2, pair->
GetInvMass());
349 fHM->H2(
"NPairsRecoFromMCInvMassEtaProton")->Fill(etaPart1, pair->
GetInvMass());
350 fHM->H2(
"NPairsRecoFromMCInvMassEtaMeson")->Fill(etaPart2, pair->
GetInvMass());
351 fHM->H2(
"NPairsRecoFromMCInvMassDCA1")->Fill(dca1, pair->
GetInvMass());
352 fHM->H2(
"NPairsRecoFromMCInvMassDCA2")->Fill(dca2, pair->
GetInvMass());
353 fHM->H2(
"NPairsRecoFromMCInvMassDCA12X")->Fill(dca12, pair->
GetInvMass());
354 fHM->H2(
"NPairsRecoFromMCInvMassPath")->Fill(path, pair->
GetInvMass());
358 if (!negMCTrack || !posMCTrack)
368 fHM->H1(
"numberOfMCReconstructedLambdasQA")->Fill(1);
374 fHM->H1(
"numberOfMCReconstructedParticlePairsQA")->Fill(1);
378 fHM->H1(
"NPairsRecoFromMCWOCutsInvMass")->Fill(pair->
GetInvMass());
390 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassMomProton")->Fill(momPart1, pair->
GetInvMass());
391 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassMomMeson")->Fill(momPart2, pair->
GetInvMass());
392 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassEtaProton")->Fill(etaPart1, pair->
GetInvMass());
393 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassEtaMeson")->Fill(etaPart2, pair->
GetInvMass());
395 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassDCA1")->Fill(dca1, pair->
GetInvMass());
396 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassDCA2")->Fill(dca2, pair->
GetInvMass());
397 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassDCA12X")->Fill(dca12x, pair->
GetInvMass());
398 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassDCA12Y")->Fill(dca12y, pair->
GetInvMass());
399 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassDCA12XsubY")->Fill(
abs(dca12x - dca12y), pair->
GetInvMass());
400 fHM->H2(
"NPairsRecoFromMCWOCutsInvMassPath")->Fill(path, pair->
GetInvMass());
404 if (!negMCTrack || !posMCTrack)
422 cout <<
"proton track obtaining error" << endl;
428 cout <<
"meson track obtaining error" << endl;
437 if (!primaryPartTr) {
438 cout <<
"lambda track obtaining error" << endl;
446 fHM->H1(
"numberOfReconstructedParticlePairWithMatchedLambdaQA")->Fill(1);
453 Double_t pRapidityLMC = 0.5 *
Log((momLambdaMC + momLambdaZMC) / (momLambdaMC - momLambdaZMC));
456 fHM->H1(
"recNLambda_P_rec")->Fill(momLambdaMC);
457 fHM->H1(
"recNLambda_theta_rec")->Fill(thetaMC);
458 fHM->H1(
"recNLambda_eta_rec")->Fill(pRapidityLMC);
459 fHM->H1(
"recNLambda_theta_r_rec")->Fill(thetaR);
460 fHM->H2(
"recNLambda_eta_P_sim")->Fill(pRapidityLMC, momLambdaMC);
464 Double_t pRapidityPMC = 0.5 *
Log((momProtMC + momProtZMC) / (momProtMC - momProtZMC));
467 fHM->H1(
"recNRecProtons_P_rec")->Fill(momProtMC);
469 fHM->H1(
"recNRecProtons_eta_rec")->Fill(pRapidityPMC);
470 fHM->H1(
"recNRecProtons_theta_r_rec")->Fill(thetaRProt);
471 fHM->H2(
"recNRecProtons_eta_P_sim")->Fill(pair->
GetEtaPart1(), momProtMC);
475 Double_t pRapidityMMC = 0.5 *
Log((momMesMC + momMesZMC) / (momMesMC - momMesZMC));
478 fHM->H1(
"recNRecMesons_P_rec")->Fill(momMesMC);
480 fHM->H1(
"recNRecMesons_eta_rec")->Fill(pRapidityMMC);
481 fHM->H1(
"recNRecMesons_theta_r_rec")->Fill(thetaRMes);
482 fHM->H2(
"recNRecMesons_eta_P_sim")->Fill(pair->
GetEtaPart1(), momMesMC);
499 if (momPart1 <
fMom[0][0] || momPart1 >
fMom[0][1] || momPart2 <
fMom[1][0] || momPart2 >
fMom[1][1])
502 if (etaPart1 <
fEta[0][0] || etaPart1 >
fEta[0][1] || etaPart2 <
fEta[1][0] || etaPart2 >
fEta[1][1])
506 if (dca1 <
fDCA[0][0] || dca1 >
fDCA[0][1] || dca2 <
fDCA[1][0] || dca2 >
fDCA[1][1])
516 fHM->H1(
"numberOfReconstructedParticlePairsQA")->Fill(1);
519 fHM->H2(
"NPairsRecoInvMassMomProton")->Fill(momPart1, pair->
GetInvMass());
520 fHM->H2(
"NPairsRecoInvMassMomMeson")->Fill(momPart2, pair->
GetInvMass());
521 fHM->H2(
"NPairsRecoInvMassEtaProton")->Fill(etaPart1, pair->
GetInvMass());
522 fHM->H2(
"NPairsRecoInvMassEtaMeson")->Fill(etaPart2, pair->
GetInvMass());
523 fHM->H2(
"NPairsRecoInvMassDCA1")->Fill(dca1, pair->
GetInvMass());
524 fHM->H2(
"NPairsRecoInvMassDCA2")->Fill(dca2, pair->
GetInvMass());
525 fHM->H2(
"NPairsRecoInvMassDCA12X")->Fill(dca12x, pair->
GetInvMass());
526 fHM->H2(
"NPairsRecoInvMassDCA12Y")->Fill(dca12y, pair->
GetInvMass());
527 fHM->H2(
"NPairsRecoInvMassDCA12XsubY")->Fill(
abs(dca12x - dca12y), pair->
GetInvMass());
528 fHM->H2(
"NPairsRecoInvMassPath")->Fill(path, pair->
GetInvMass());
535 fHM->H1(
"NPairsRecoInvMassWOCuts")->Fill(pair->
GetInvMass());
547 fHM->H2(
"NPairsRecoInvMassMomProtonWOCuts")->Fill(momPart1, pair->
GetInvMass());
548 fHM->H2(
"NPairsRecoInvMassMomMesonWOCuts")->Fill(momPart2, pair->
GetInvMass());
549 fHM->H2(
"NPairsRecoInvMassEtaProtonWOCuts")->Fill(etaPart1, pair->
GetInvMass());
550 fHM->H2(
"NPairsRecoInvMassEtaMesonWOCuts")->Fill(etaPart2, pair->
GetInvMass());
552 fHM->H2(
"NPairsRecoInvMassDCA1WOCuts")->Fill(dca1, pair->
GetInvMass());
553 fHM->H2(
"NPairsRecoInvMassDCA2WOCuts")->Fill(dca2, pair->
GetInvMass());
554 fHM->H2(
"NPairsRecoInvMassDCA12XWOCuts")->Fill(dca12x, pair->
GetInvMass());
555 fHM->H2(
"NPairsRecoInvMassDCA12YWOCuts")->Fill(dca12y, pair->
GetInvMass());
556 fHM->H2(
"NPairsRecoInvMassDCA12XsubYWOCuts")->Fill(
abs(dca12x - dca12y), pair->
GetInvMass());
557 fHM->H2(
"NPairsRecoInvMassPathWOCuts")->Fill(path, pair->
GetInvMass());
565 vector<TClonesArray*> isPairBranches;
597 FairRootManager* ioman = FairRootManager::Instance();
600 Fatal(
"Init",
"BmnRootManager is not instantiated");
617 const string& xTitle,
618 const string& yTitle,
623 TH1F* h =
new TH1F(name.c_str(),
string(
";" + xTitle +
";" + yTitle).c_str(), nofBins, minBin, maxBin);
628 const string& xTitle,
629 const string& yTitle,
630 const string& zTitle,
638 TH2F* h =
new TH2F(name.c_str(), (
";" + xTitle +
";" + yTitle +
";" + zTitle).c_str(), nofBinsX, minBinX, maxBinX,
639 nofBinsY, minBinY, maxBinY);
645 CreateH1(
"simNReconstructableLambda_P_sim",
"P_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}",
fNOfBins,
647 CreateH1(
"simNReconstructableLambda_eta_sim",
"#eta_{sim}",
"number of reconstructable #Lambda^{0}",
fNOfBins,
649 CreateH1(
"simNReconstructableLambda_theta_sim",
"#theta_{sim}, degrees",
"number of reconstructable #Lambda^{0}",
651 CreateH1(
"simNReconstructableLambda_theta_r_sim",
"Y^{r}_{sim}",
"number of reconstructable #Lambda^{0}",
fNOfBins,
653 CreateH1(
"simNReconstructableLambda_P_x_sim",
"P^{x}_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}",
655 CreateH1(
"simNReconstructableLambda_P_y_sim",
"P^{y}_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}",
657 CreateH1(
"simNReconstructableLambda_P_z_sim",
"P^{z}_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}",
671 CreateH1(
"simNLambda_P_x_sim",
"P^{x}_{sim}, GeV/c",
"number of #Lambda^{0}",
fNOfBins, -2, 2);
672 CreateH1(
"simNLambda_P_y_sim",
"P^{y}_{sim}, GeV/c",
"number of #Lambda^{0}",
fNOfBins, -2, 2);
673 CreateH1(
"simNLambda_P_z_sim",
"P^{z}_{sim}, GeV/c",
"number of #Lambda^{0}",
fNOfBins, -1, 4);
680 CreateH1(
"simLambdaRecEff_eta_sim",
"#eta_{sim}",
"geometrical efficiency, % efficiency, %",
fNOfBins,
682 CreateH1(
"simLambdaRecEff_theta_sim",
"#theta_{sim}, degrees",
"geometrical efficiency, %",
fNOfBins,
686 CreateH1(
"simLambdaRecEff_P_x_sim",
"P^{x}_{sim}, GeV/c",
"geometrical efficiency, %",
fNOfBins, -2, 2);
687 CreateH1(
"simLambdaRecEff_P_y_sim",
"P^{y}_{sim}, GeV/c",
"geometrical efficiency, %",
fNOfBins, -2, 2);
688 CreateH1(
"simLambdaRecEff_P_z_sim",
"P^{z}_{sim}, GeV/c",
"geometrical efficiency, %",
fNOfBins, -1, 4);
693 CreateH2(
"simNReconstructableLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of #Lambda^{0}",
fNOfBins,
695 CreateH2(
"simNLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of #Lambda^{0}",
fNOfBins,
697 CreateH2(
"simEffRecLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"geometrical efficiency, %",
fNOfBins,
711 CreateH1(
"NRecProtons_P_sim",
"P_{sim}, GeV/c",
"number of reconstructable lambda decay p",
fNOfBins,
713 CreateH1(
"NRecProtons_eta_sim",
"#eta_{sim}",
"number of reconstructable lambda decay p",
fNOfBins,
715 CreateH1(
"NRecProtons_theta_sim",
"#theta_{sim}, degrees",
"number of reconstructable lambda decay p",
fNOfBins,
717 CreateH1(
"NRecProtons_theta_r_sim",
"Y^{r}_{sim}, degrees",
"number of reconstructable lambda decay p",
fNOfBins,
727 CreateH1(
"simRecProtonsRecEff_theta_sim",
"#theta_{sim}, degrees",
"geometrical efficiency, %",
fNOfBins,
729 CreateH1(
"simRecProtonsRecEff_theta_r_sim",
"Y^{r}_{sim}, degrees",
"geometrical efficiency, %",
fNOfBins,
735 CreateH2(
"simNRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p",
fNOfBins,
737 CreateH2(
"simNReconstructableRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p",
739 CreateH2(
"simEffRecRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"reconstruction efficiency, %",
fNOfBins,
749 CreateH1(
"NMesons_theta_sim",
"#theta_{sim}, degrees",
"number of lambda decay #pi^{-}",
fNOfBins,
751 CreateH1(
"NMesons_theta_r_sim",
"Y^{r}_{sim}, degrees",
"number of lambda decay #pi^{-}",
fNOfBins,
753 CreateH1(
"NRecMesons_P_sim",
"P_{sim}, GeV/c",
"number of reconstructable lambda decay #pi^{-}",
fNOfBins,
755 CreateH1(
"NRecMesons_eta_sim",
"#eta_{sim}",
"number of reconstructable lambda decay #pi^{-}",
fNOfBins,
757 CreateH1(
"NRecMesons_theta_sim",
"#theta_{sim}, degrees",
"number of reconstructable lambda decay #pi^{-}",
759 CreateH1(
"NRecMesons_theta_r_sim",
"Y^{r}_{sim}, degrees",
"number of reconstructable lambda decay #pi^{-}",
769 CreateH1(
"simRecMesonsRecEff_theta_sim",
"#theta_{sim}, degrees",
"geometrical efficiency, %",
fNOfBins,
771 CreateH1(
"simRecMesonsRecEff_theta_r_sim",
"Y^{r}_{sim}, degrees",
"geometrical efficiency, %",
fNOfBins,
777 CreateH2(
"simNRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay #pi^{-}",
fNOfBins,
779 CreateH2(
"simNReconstructableRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay #pi^{-}",
781 CreateH2(
"simEffRecRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"geometrical efficiency, %",
fNOfBins,
789 CreateH1(
"recNLambda_theta_rec",
"#theta_{sim}, degrees",
"number of #Lambda^{0} reconstructed",
fNOfBins,
793 CreateH1(
"recNLambda_theta_r_rec",
"Y^{r}_{sim}",
"number of #Lambda^{0} reconstructed",
fNOfBins,
801 CreateH1(
"recEffLambda_theta_rec",
"#theta_{sim}, degrees",
"reconstruction efficiency, %",
fNOfBins,
811 CreateH2(
"recNLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of reconstructed #Lambda^{0}",
fNOfBins,
819 CreateH1(
"recNRecProtons_P_rec",
"P_{sim}, GeV/c",
"number of lambda decay p reconstructed",
fNOfBins,
821 CreateH1(
"recNRecProtons_theta_rec",
"#theta_{sim}, degrees",
"number of lambda decay p reconstructed",
fNOfBins,
823 CreateH1(
"recNRecProtons_eta_rec",
"#eta_{sim}",
"number of lambda decay p reconstructed",
fNOfBins,
825 CreateH1(
"recNRecProtons_theta_r_rec",
"Y^{r}_{sim}",
"number of lambda decay p reconstructed",
fNOfBins,
833 CreateH1(
"recEffRecProtons_theta_rec",
"#theta_{sim}, degrees",
"reconstruction efficiency, %",
fNOfBins,
837 CreateH1(
"recEffRecProtons_theta_r_rec",
"Y^{r}_{sim}",
"reconstruction efficiency, %",
fNOfBins,
843 CreateH2(
"recNRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p",
fNOfBins,
845 CreateH2(
"recEffRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"efficiency, %",
fNOfBins,
851 CreateH1(
"recNRecMesons_P_rec",
"P_{sim}, GeV/c",
"number of lambda decay p reconstructed",
fNOfBins,
853 CreateH1(
"recNRecMesons_theta_rec",
"#theta_{sim}, degrees",
"number of lambda decay p reconstructed",
fNOfBins,
855 CreateH1(
"recNRecMesons_eta_rec",
"#eta_{sim}",
"number of lambda decay p reconstructed",
fNOfBins,
857 CreateH1(
"recNRecMesons_theta_r_rec",
"Y^{r}_{sim}",
"number of lambda decay p reconstructed",
fNOfBins,
865 CreateH1(
"recEffRecMesons_theta_rec",
"#theta_{sim}, degrees",
"reconstruction efficiency, %",
fNOfBins,
869 CreateH1(
"recEffRecMesons_theta_r_rec",
"Y^{r}_{sim}",
"reconstruction efficiency, %",
fNOfBins,
875 CreateH2(
"recNRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p",
fNOfBins,
883 CreateH1(
"NPairsRecoFromMCInvMass",
"m_{inv}, GeV/c^2",
"number of particle pairs",
fNOfBins, 1.07, 1.22);
888 CreateH2(
"NPairsRecoFromMCInvMassMomProton",
"P^{p}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
890 CreateH2(
"NPairsRecoFromMCInvMassEtaProton",
"#eta^{p}_{sim}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
892 CreateH2(
"NPairsRecoFromMCInvMassDCA1",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
894 CreateH2(
"NPairsRecoFromMCInvMassMomMeson",
"P^{#pi^{-}}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
897 CreateH2(
"NPairsRecoFromMCInvMassEtaMeson",
"#eta^{#pi^{-}}_{sim}",
"m_{inv}, GeV/c^{2}",
900 CreateH2(
"NPairsRecoFromMCInvMassDCA2",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
902 CreateH2(
"NPairsRecoFromMCInvMassDCA12X",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
904 CreateH2(
"NPairsRecoFromMCInvMassDCA12Y",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
906 CreateH2(
"NPairsRecoFromMCInvMassDCA12XsubY",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
909 CreateH2(
"NPairsRecoFromMCInvMassPath",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
915 CreateH1(
"NPairsRecoFromMCWOCutsInvMass",
"m_{inv}, GeV/c^2",
"number of particle pairs",
fNOfBins, 1.07, 1.22);
920 CreateH2(
"NPairsRecoFromMCWOCutsInvMassMomProton",
"P^{p}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
923 CreateH2(
"NPairsRecoFromMCWOCutsInvMassEtaProton",
"#eta^{p}_{sim}",
"m_{inv}, GeV/c^{2}",
926 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA1",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
928 CreateH2(
"NPairsRecoFromMCWOCutsInvMassMomMeson",
"P^{#pi^{-}}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
931 CreateH2(
"NPairsRecoFromMCWOCutsInvMassEtaMeson",
"#eta^{#pi^{-}}_{sim}",
"m_{inv}, GeV/c^{2}",
934 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA2",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
936 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA12X",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
938 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA12Y",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
940 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA12XsubY",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
943 CreateH2(
"NPairsRecoFromMCWOCutsInvMassPath",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
949 CreateH1(
"recNNotRecLambda_P_rec",
"P_{sim}, GeV/c",
"number of #Lambda^{0} not reconstructed",
fNOfBins,
951 CreateH1(
"recNNotRecLambda_theta_rec",
"#theta_{sim}, degrees",
"number of #Lambda^{0} not reconstructed",
fNOfBins,
953 CreateH1(
"recNNotRecLambda_eta_rec",
"#eta_{sim}",
"number of #Lambda^{0} not reconstructed",
fNOfBins,
955 CreateH1(
"recNNotRecLambda_theta_r_rec",
"Y^{r}_{sim}",
"number of #Lambda^{0} not reconstructed",
fNOfBins,
966 CreateH2(
"NPairsRecoInvMassMomProton",
"P^{p}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
968 CreateH2(
"NPairsRecoInvMassEtaProton",
"#eta^{p}_{reco}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
970 CreateH2(
"NPairsRecoInvMassDCA1",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
972 CreateH2(
"NPairsRecoInvMassMomMeson",
"P^{#pi^{-}}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
974 CreateH2(
"NPairsRecoInvMassEtaMeson",
"#eta^{#pi^{-}}_{reco}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
976 CreateH2(
"NPairsRecoInvMassDCA2",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
978 CreateH2(
"NPairsRecoInvMassDCA12X",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
980 CreateH2(
"NPairsRecoInvMassDCA12Y",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
982 CreateH2(
"NPairsRecoInvMassDCA12XsubY",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
985 CreateH2(
"NPairsRecoInvMassPath",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
997 CreateH2(
"NPairsRecoInvMassMomProtonWOCuts",
"P^{p}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
1000 CreateH2(
"NPairsRecoInvMassEtaProtonWOCuts",
"#eta^{p}_{reco}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
1002 CreateH2(
"NPairsRecoInvMassDCA1WOCuts",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
1004 CreateH2(
"NPairsRecoInvMassMomMesonWOCuts",
"P^{#pi^{-}}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
1007 CreateH2(
"NPairsRecoInvMassEtaMesonWOCuts",
"#eta^{#pi^{-}}_{reco}",
"m_{inv}, GeV/c^{2}",
1010 CreateH2(
"NPairsRecoInvMassDCA2WOCuts",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
1012 CreateH2(
"NPairsRecoInvMassDCA12XWOCuts",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
1014 CreateH2(
"NPairsRecoInvMassDCA12YWOCuts",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
1016 CreateH2(
"NPairsRecoInvMassDCA12XsubYWOCuts",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
1019 CreateH2(
"NPairsRecoInvMassPathWOCuts",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs",
fNOfBins,
visualising simulated lambda reconstruction performance calculation.
FairTask for MC simulated lambda reconstruction performance calculation.
void Fatal(const char *location, const char *msgfmt,...)
void CreateTwoDimensionalRecProtonsRecEfficiencyHistograms()
virtual ~BmnLambdaQa()
Destructor.
void CreateRecMesonsReconstructionEfficiencyHistograms()
Int_t fMesonsThetaRangeMax
void CreateReconstructedParticlePairsHistograms()
void CreateReconstructedParticlePairsFromMCDataHistograms()
Int_t fNOfParticlePairsMC
Int_t fMesonsThetaRRangeMax
void CreateNumberOfLambdaDecayMesonsHistograms()
void CreateTwoDimensionalReconstructedParticlePairsHistograms()
void CreateH2(const string &name, const string &xTitle, const string &yTitle, const string &zTitle, Int_t nofBinsX, Double_t minBinX, Double_t maxBinX, Int_t nofBinsY, Double_t minBinY, Double_t maxBinY)
void CreateTwoDimensionalRecEfficiencyHistograms()
TClonesArray * fGlobalTracks
Int_t fNOfParticlePairsWithMatchedLambda
Int_t fMesonsThetaRRangeMin
Int_t fMesonsThetaRangeMin
Int_t fLambdaThetaRangeMax
virtual void Finish()
Derived from FairTask.
Int_t fLambdaThetaRRangeMin
virtual InitStatus Init()
Derived from FairTask.
void CreateRecProtonsReconstructionEfficiencyHistograms()
void CreateNumberOfNotReconstructedLambdaHistograms()
void CreateTwoDimensionalNumberOfReconstructedMesonsHistograms()
Int_t fNOfParticlePairsMCAll
void CreateH1(const string &name, const string &xTitle, const string &yTitle, Int_t nofBins, Double_t minBin, Double_t maxBin)
void CreateNumberOfReconstrcutedLambdaHistograms()
void CreateTwoDimensionalRealRecEfficiencyHistograms()
void CreateNumberOfLambdaHistograms()
Int_t fProtonsThetaRangeMax
void CreateReconstructedParticlePairsFromMCDataWOCutsHistograms()
Int_t fLambdaThetaRRangeMax
void CreateTwoDimensionalReconstructedParticlePairsFromMCDataHistograms()
Int_t fNOfLambdasParticlePairsMC
Int_t fLambdaThetaRangeMin
Int_t fProtonsEtaRangeMax
TClonesArray * fParticlePair_RECO
void CreateReconstructionEfficiencyHistograms()
void CreateReconstructedParticlePairsWOCutsHistograms()
TClonesArray * fParticlePair_MC
void CreateTwoDimensionalRecMesonsRecEfficiencyHistograms()
Int_t fProtonsEtaRangeMin
void CreateRecProtonsRecEfficiencyHistograms()
Int_t fProtonsThetaRRangeMin
void CreateTwoDimensionalReconstructedParticlePairsWOCutsHistograms()
void CreateNumberOLambdaDecayProtonsHistograms()
void CreateLambdaRecEfficiencyHistograms()
void CreateTwoDimensionalReconstructedParticlePairsFromMCDataWOCutsHistograms()
TClonesArray * fSiliconPoints
void CreateNumberOfReconstrcutedRecProtonHistograms()
static Int_t fCurrentEvent
Int_t fProtonsThetaRangeMin
virtual void Exec(Option_t *opt)
Derived from FairTask.
void CreateNumberOfReconstrcutedRecMesonsHistograms()
void CreateNumberOfReconstructableLambdaHistograms()
Int_t fProtonsThetaRRangeMax
void CreateRecMesonsRecEfficiencyHistograms()
void CreateTwoDimensionalNumberOfReconstructedProtonsHistograms()
Int_t GetMCTrackIdPart1()
Int_t GetMCTrackIdPart2()
void setDCAPart2Min(Double_t val)
void setEtaPart1Max(Double_t val)
void setEtaPart2Max(Double_t val)
void setMomPart2Min(Double_t val)
void setDCA12Min(Double_t val)
void setMomPart1Min(Double_t val)
void setPathMin(Double_t val)
void setDCAPart1Max(Double_t val)
void setDCAPart1Min(Double_t val)
void setDCA12Max(Double_t val)
void setPathMax(Double_t val)
void setMomPart1Max(Double_t val)
void setEtaPart1Min(Double_t val)
void setMomPart2Max(Double_t val)
void setEtaPart2Min(Double_t val)
void setDCAPart2Max(Double_t val)
Base class for simulation reports.
void Create(BmnHistManager *histManager, const string &outputDir)
Main function which creates report data.
Long64_t GetNPoints(DetectorId detId) const
Accessors to the number of MCPoints in the detectors.
Double_t GetRapidity() const
Int_t GetMotherId() const
Int_t GetPdgCode() const
Accessors.
RVec< PromoteType< T > > abs(const RVec< T > &v)
constexpr Double_t RadToDeg()