12#include "BmnHistManager.h"
13#include "BmnGemTrack.h"
14#include "BmnSimulationReport.h"
15#include "BmnParticlePair.h"
16#include "BmnSiliconPoint.h"
17#include "BmnGlobalTrack.h"
18#include "CbmMCTrack.h"
22#include <TClonesArray.h>
23#include "FairRootManager.h"
25#include <boost/assign/list_of.hpp>
33using std::binary_search;
34using boost::assign::list_of;
37Int_t BmnLambdaQa::fCurrentEvent = 0;
45 fLambdaEtaRangeMin(0.),
46 fLambdaEtaRangeMax(5.),
47 fLambdaThetaRangeMin(0.),
48 fLambdaThetaRangeMax(45.),
49 fLambdaThetaRRangeMin(0.),
50 fLambdaThetaRRangeMax(2.5),
51 fProtonsPRangeMin(0.),
52 fProtonsPRangeMax(4.),
53 fProtonsEtaRangeMin(0.),
54 fProtonsEtaRangeMax(5.),
55 fProtonsThetaRangeMin(0.),
56 fProtonsThetaRangeMax(45.),
57 fProtonsThetaRRangeMin(0.),
58 fProtonsThetaRRangeMax(2.5),
61 fMesonsEtaRangeMin(0.),
62 fMesonsEtaRangeMax(4.),
63 fMesonsThetaRangeMin(0.),
64 fMesonsThetaRangeMax(45.),
65 fMesonsThetaRRangeMin(0.),
66 fMesonsThetaRRangeMax(2.5),
75 for (Int_t
i = 0;
i < 2;
i++) {
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;
99 fNReconstructable = 0;
101 fNOfParticlePairs = 0;
102 fNOfParticlePairsWithMatchedLambda = 0;
104 fNOfParticlePairsMC = 0;
105 fNOfLambdasParticlePairsMC = 0;
106 fNOfParticlePairsMCAll = 0;
108 CreateH1(
"numberOfLambdas_LambdaQa",
"",
"", 1, 0, 1.);
109 CreateH1(
"numberOfReconstructableLambdas_LambdaQa",
"",
"", 1, 0, 1.);
110 CreateNumberOfReconstructableLambdaHistograms();
111 CreateNumberOfLambdaHistograms();
112 CreateLambdaRecEfficiencyHistograms();
113 CreateTwoDimensionalRecEfficiencyHistograms();
114 CreateNumberOLambdaDecayProtonsHistograms();
115 CreateNumberOfLambdaDecayMesonsHistograms();
116 CreateRecProtonsRecEfficiencyHistograms();
117 CreateRecMesonsRecEfficiencyHistograms();
118 CreateTwoDimensionalRecProtonsRecEfficiencyHistograms();
119 CreateTwoDimensionalRecMesonsRecEfficiencyHistograms();
120 CreateH1(
"numberOfMCReconstructedParticlePairsQA",
"",
"", 1, 0, 1.);
121 CreateH1(
"numberOfMCReconstructedLambdasQA",
"",
"", 1, 0, 1.);
122 CreateH1(
"numberOfMCReconstructedAllParticlePairsQA",
"",
"", 1, 0, 1.);
123 CreateTwoDimensionalReconstructedParticlePairsFromMCDataHistograms();
124 CreateReconstructedParticlePairsFromMCDataHistograms();
125 CreateTwoDimensionalReconstructedParticlePairsFromMCDataWOCutsHistograms();
126 CreateReconstructedParticlePairsFromMCDataWOCutsHistograms();
127 CreateH1(
"numberOfReconstructedParticlePairWithMatchedLambdaQA",
"",
"", 1, 0, 1.);
128 CreateH1(
"numberOfNotReconstructedLambdasQA",
"",
"", 1, 0, 1.);
129 CreateNumberOfReconstrcutedLambdaHistograms();
130 CreateReconstructionEfficiencyHistograms();
131 CreateTwoDimensionalRealRecEfficiencyHistograms();
132 CreateNumberOfReconstrcutedRecProtonHistograms();
133 CreateTwoDimensionalNumberOfReconstructedProtonsHistograms();
134 CreateRecProtonsReconstructionEfficiencyHistograms();
135 CreateNumberOfReconstrcutedRecMesonsHistograms();
136 CreateTwoDimensionalNumberOfReconstructedMesonsHistograms();
137 CreateRecMesonsReconstructionEfficiencyHistograms();
138 CreateNumberOfNotReconstructedLambdaHistograms();
139 CreateH1(
"numberOfReconstructedParticlePairsQA",
"",
"", 1, 0, 1.);
140 CreateTwoDimensionalReconstructedParticlePairsHistograms();
141 CreateReconstructedParticlePairsHistograms();
142 CreateTwoDimensionalReconstructedParticlePairsWOCutsHistograms();
143 CreateReconstructedParticlePairsWOCutsHistograms();
149 if (fCurrentEvent % 100 == 0)
150 cout <<
"Event# " << fCurrentEvent << endl;
153 vector <Int_t> indicesOfLambdaProtons;
154 vector <Int_t> indicesOfLambdaMesons;
157 vector <array< int, 3 >> indicesOfLamda;
159 for (Int_t iTrack = 0; iTrack < fMCTracks->GetEntriesFast(); iTrack++) {
163 cout <<
"Monte-Carlo simulation branch error" << endl;
167 Double_t P = ((
CbmMCTrack*) fMCTracks->At(iTrack))->GetP();
168 Double_t P_x = ((
CbmMCTrack*) fMCTracks->At(iTrack))->GetPx();
169 Double_t P_y = ((
CbmMCTrack*) fMCTracks->At(iTrack))->GetPy();
170 Double_t P_z = ((
CbmMCTrack*) fMCTracks->At(iTrack))->GetPz();
171 Double_t pRapidity = 0.5 * Log((P + P_z) / (P - P_z));
172 Double_t rapidity = ((
CbmMCTrack*) fMCTracks->At(iTrack))->GetRapidity();
177 fHM->
H1(
"numberOfLambdas_LambdaQa")->Fill(1);
179 fHM->
H1(
"simNLambda_P_sim")->Fill(P);
180 fHM->
H1(
"simNLambda_eta_sim")->Fill(pRapidity);
181 fHM->
H1(
"simNLambda_theta_sim")->Fill(TMath::ACos(P_z / P) * TMath::RadToDeg());
182 fHM->
H1(
"simNLambda_theta_r_sim")->Fill(rapidity);
183 fHM->
H1(
"simNLambda_P_x_sim")->Fill(P_x);
184 fHM->
H1(
"simNLambda_P_y_sim")->Fill(P_y);
185 fHM->
H1(
"simNLambda_P_z_sim")->Fill(P_z);
186 fHM->
H2(
"simNLambda_eta_P_sim")->Fill(P, pRapidity);
195 if (3122 == ((
CbmMCTrack*) fMCTracks->At(motherId))->GetPdgCode()) {
196 indicesOfLambdaProtons.push_back(iTrack);
198 fHM->
H1(
"NProtons_P_sim")->Fill(P);
199 fHM->
H1(
"NProtons_eta_sim")->Fill(pRapidity);
200 fHM->
H1(
"NProtons_theta_sim")->Fill(TMath::ACos(P_z / P) * TMath::RadToDeg());
201 fHM->
H1(
"NProtons_theta_r_sim")->Fill(rapidity);
202 fHM->
H2(
"simNRecProtons_eta_P_sim")->Fill(pRapidity, P);
204 Double_t nSiliconHitsOnTrackP = 0;
206 for (Int_t hit = 0; hit < fSiliconPoints->GetEntriesFast(); hit++) {
207 if (((
BmnSiliconPoint*) fSiliconPoints->At(hit))->GetTrackID() == iTrack)
208 nSiliconHitsOnTrackP++;
212 fHM->
H1(
"NRecProtons_P_sim")->Fill(P);
213 fHM->
H1(
"NRecProtons_eta_sim")->Fill(pRapidity);
214 fHM->
H1(
"NRecProtons_theta_sim")->Fill(TMath::ACos(P_z / P) * TMath::RadToDeg());
215 fHM->
H1(
"NRecProtons_theta_r_sim")->Fill(rapidity);
216 fHM->
H2(
"simNReconstructableRecProtons_eta_P_sim")->Fill(pRapidity, P);
224 if (motherIdMeson < 0) {
228 if (3122 == ((
CbmMCTrack*) fMCTracks->At(motherIdMeson))->GetPdgCode()) {
229 indicesOfLambdaMesons.push_back(iTrack);
231 fHM->
H1(
"NMesons_P_sim")->Fill(P);
232 fHM->
H1(
"NMesons_eta_sim")->Fill(pRapidity);
233 fHM->
H1(
"NMesons_theta_sim")->Fill(TMath::ACos(P_z / P) * TMath::RadToDeg());
234 fHM->
H1(
"NMesons_theta_r_sim")->Fill(rapidity);
235 fHM->
H2(
"simNRecMesons_eta_P_sim")->Fill(pRapidity, P);
237 Double_t nSiliconHitsOnTrackM = 0;
239 for (Int_t hit = 0; hit < fSiliconPoints->GetEntriesFast(); hit++) {
240 if (((
BmnSiliconPoint*) fSiliconPoints->At(hit))->GetTrackID() == iTrack)
241 nSiliconHitsOnTrackM++;
245 fHM->
H1(
"NRecMesons_P_sim")->Fill(P);
246 fHM->
H1(
"NRecMesons_eta_sim")->Fill(pRapidity);
247 fHM->
H1(
"NRecMesons_theta_sim")->Fill(TMath::ACos(P_z / P) * TMath::RadToDeg());
248 fHM->
H1(
"NRecMesons_theta_r_sim")->Fill(rapidity);
249 fHM->
H2(
"simNReconstructableRecMesons_eta_P_sim")->Fill(pRapidity, P);
255 for (
size_t cnt1 = 0; cnt1 < indicesOfLambdaProtons.size(); cnt1++) {
256 for (
size_t cnt2 = 0; cnt2 < indicesOfLambdaMesons.size(); cnt2++) {
257 if (((
CbmMCTrack*) fMCTracks->At(indicesOfLambdaProtons[cnt1]))->GetMotherId() == ((
CbmMCTrack*) fMCTracks->At(indicesOfLambdaMesons[cnt2]))->GetMotherId()) {
258 array<int, 3> tmp = {((
CbmMCTrack*) fMCTracks->At(indicesOfLambdaProtons[cnt1]))->GetMotherId(), indicesOfLambdaProtons[cnt1], indicesOfLambdaMesons[cnt2]};
259 indicesOfLamda.push_back(tmp);
264 for (
size_t cnt = 0; cnt < indicesOfLamda.size(); cnt++) {
265 Int_t nSiliconHitsOnTrackP = 0;
266 Int_t nSiliconHitsOnTrackM = 0;
267 Int_t nSSDHitsOnTrackP = 0;
268 Int_t nSSDHitsOnTrackM = 0;
269 Int_t nGEMHitsOnTrackP = 0;
270 Int_t nGEMHitsOnTrackM = 0;
272 for (Int_t hit = 0; hit < fSiliconPoints->GetEntriesFast(); hit++) {
273 Int_t trId = ((
BmnSiliconPoint*) fSiliconPoints->At(hit))->GetTrackID();
274 if (trId == indicesOfLamda[cnt][1]) nSiliconHitsOnTrackP++;
275 else if (trId == indicesOfLamda[cnt][2]) nSiliconHitsOnTrackM++;
278 nGEMHitsOnTrackP = ((
CbmMCTrack*) fMCTracks->At(indicesOfLamda[cnt][1]))->GetNPoints(
kGEM);
279 nGEMHitsOnTrackM = ((
CbmMCTrack*) fMCTracks->At(indicesOfLamda[cnt][2]))->GetNPoints(
kGEM);
281 if (nGEMHitsOnTrackP + nSiliconHitsOnTrackP + nSSDHitsOnTrackP >= 4 && nGEMHitsOnTrackM + nSiliconHitsOnTrackM + nSSDHitsOnTrackM >= 4) {
284 Double_t P = ((
CbmMCTrack*) fMCTracks->At(indicesOfLamda[cnt][0]))->GetP();
285 Double_t P_x = ((
CbmMCTrack*) fMCTracks->At(indicesOfLamda[cnt][0]))->GetPx();
286 Double_t P_y = ((
CbmMCTrack*) fMCTracks->At(indicesOfLamda[cnt][0]))->GetPy();
287 Double_t P_z = ((
CbmMCTrack*) fMCTracks->At(indicesOfLamda[cnt][0]))->GetPz();
288 Double_t pRapidity = 0.5 * Log((P + P_z) / (P - P_z));
289 Double_t rapidity = ((
CbmMCTrack*) fMCTracks->At(indicesOfLamda[cnt][0]))->GetRapidity();
291 fHM->
H1(
"numberOfReconstructableLambdas_LambdaQa")->Fill(1);
293 fHM->
H1(
"simNReconstructableLambda_P_sim")->Fill(P);
294 fHM->
H1(
"simNReconstructableLambda_eta_sim")->Fill(pRapidity);
295 fHM->
H1(
"simNReconstructableLambda_theta_r_sim")->Fill(rapidity);
296 fHM->
H1(
"simNReconstructableLambda_theta_sim")->Fill(TMath::ACos(P_z / P) * TMath::RadToDeg());
297 fHM->
H1(
"simNReconstructableLambda_P_x_sim")->Fill(P_x);
298 fHM->
H1(
"simNReconstructableLambda_P_y_sim")->Fill(P_y);
299 fHM->
H1(
"simNReconstructableLambda_P_z_sim")->Fill(P_z);
300 fHM->
H2(
"simNReconstructableLambda_eta_P_sim")->Fill(P, pRapidity);
304 if (fParticlePair_MC)
305 for (Int_t iPair = 0; iPair < fParticlePair_MC->GetEntriesFast(); iPair++) {
311 Double_t dca1 = pair->
GetDCA1();
312 Double_t dca2 = pair->
GetDCA2();
314 Double_t path = pair->
GetPath();
317 if (momPart1 < fMom[0][0] || momPart1 > fMom[0][1] || momPart2 < fMom[1][0] || momPart2 > fMom[1][1])
320 if (etaPart1 < fEta[0][0] || etaPart1 > fEta[0][1] || etaPart2 < fEta[1][0] || etaPart2 > fEta[1][1])
324 if (dca1 < fDCA[0][0] || dca1 > fDCA[0][1] || dca2 < fDCA[1][0] || dca2 > fDCA[1][1])
327 if (dca12 < fDCA12[0] || dca12 > fDCA12[1])
330 if (path < fPath[0] || path > fPath[1])
333 fNOfParticlePairsMC++;
334 fHM->
H1(
"numberOfMCReconstructedAllParticlePairsQA")->Fill(1);
335 fHM->
H1(
"NPairsRecoFromMCInvMass")->Fill(pair->
GetInvMass());
337 fHM->
H2(
"NPairsRecoFromMCInvMassMomProton")->Fill(momPart1, pair->
GetInvMass());
338 fHM->
H2(
"NPairsRecoFromMCInvMassMomMeson")->Fill(momPart2, pair->
GetInvMass());
339 fHM->
H2(
"NPairsRecoFromMCInvMassEtaProton")->Fill(etaPart1, pair->
GetInvMass());
340 fHM->
H2(
"NPairsRecoFromMCInvMassEtaMeson")->Fill(etaPart2, pair->
GetInvMass());
341 fHM->
H2(
"NPairsRecoFromMCInvMassDCA1")->Fill(dca1, pair->
GetInvMass());
342 fHM->
H2(
"NPairsRecoFromMCInvMassDCA2")->Fill(dca2, pair->
GetInvMass());
343 fHM->
H2(
"NPairsRecoFromMCInvMassDCA12X")->Fill(dca12, pair->
GetInvMass());
344 fHM->
H2(
"NPairsRecoFromMCInvMassPath")->Fill(path, pair->
GetInvMass());
348 if (!negMCTrack || !posMCTrack)
continue;
356 fNOfLambdasParticlePairsMC++;
357 fHM->
H1(
"numberOfMCReconstructedLambdasQA")->Fill(1);
360 if (fParticlePair_MC)
361 for (Int_t iPair = 0; iPair < fParticlePair_MC->GetEntriesFast(); iPair++) {
362 fNOfParticlePairsMCAll++;
363 fHM->
H1(
"numberOfMCReconstructedParticlePairsQA")->Fill(1);
367 fHM->
H1(
"NPairsRecoFromMCWOCutsInvMass")->Fill(pair->
GetInvMass());
373 Double_t dca1 = pair->
GetDCA1();
374 Double_t dca2 = pair->
GetDCA2();
377 Double_t path = pair->
GetPath();
379 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassMomProton")->Fill(momPart1, pair->
GetInvMass());
380 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassMomMeson")->Fill(momPart2, pair->
GetInvMass());
381 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassEtaProton")->Fill(etaPart1, pair->
GetInvMass());
382 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassEtaMeson")->Fill(etaPart2, pair->
GetInvMass());
384 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassDCA1")->Fill(dca1, pair->
GetInvMass());
385 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassDCA2")->Fill(dca2, pair->
GetInvMass());
386 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassDCA12X")->Fill(dca12x, pair->
GetInvMass());
387 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassDCA12Y")->Fill(dca12y, pair->
GetInvMass());
388 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassDCA12XsubY")->Fill(abs(dca12x - dca12y), pair->
GetInvMass());
389 fHM->
H2(
"NPairsRecoFromMCWOCutsInvMassPath")->Fill(path, pair->
GetInvMass());
393 if (!negMCTrack || !posMCTrack)
continue;
404 if (fParticlePair_RECO)
405 for (Int_t iPair = 0; iPair < fParticlePair_RECO->GetEntriesFast(); iPair++) {
410 cout <<
"proton track obtaining error" << endl;
416 cout <<
"meson track obtaining error" << endl;
424 if (!primaryPartTr) {
425 cout <<
"lambda track obtaining error" << endl;
432 fNOfParticlePairsWithMatchedLambda++;
433 fHM->
H1(
"numberOfReconstructedParticlePairWithMatchedLambdaQA")->Fill(1);
437 Double_t momLambdaZMC = primaryPartTr->
GetPz();
438 Double_t momLambdaMC = primaryPartTr->
GetP();
439 Double_t thetaMC = TMath::ACos(momLambdaZMC / momLambdaMC) * TMath::RadToDeg();
440 Double_t pRapidityLMC = 0.5 * Log((momLambdaMC + momLambdaZMC) / (momLambdaMC - momLambdaZMC));
443 fHM->
H1(
"recNLambda_P_rec")->Fill(momLambdaMC);
444 fHM->
H1(
"recNLambda_theta_rec")->Fill(thetaMC);
445 fHM->
H1(
"recNLambda_eta_rec")->Fill(pRapidityLMC);
446 fHM->
H1(
"recNLambda_theta_r_rec")->Fill(thetaR);
447 fHM->
H2(
"recNLambda_eta_P_sim")->Fill(pRapidityLMC, momLambdaMC);
449 Double_t momProtMC = posPartTr->
GetP();
450 Double_t momProtZMC = posPartTr->
GetPz();
451 Double_t pRapidityPMC = 0.5 * Log((momProtMC + momProtZMC) / (momProtMC - momProtZMC));
454 fHM->
H1(
"recNRecProtons_P_rec")->Fill(momProtMC);
455 fHM->
H1(
"recNRecProtons_theta_rec")->Fill(TMath::ACos(momProtZMC / momProtMC) * TMath::RadToDeg());
456 fHM->
H1(
"recNRecProtons_eta_rec")->Fill(pRapidityPMC);
457 fHM->
H1(
"recNRecProtons_theta_r_rec")->Fill(thetaRProt);
458 fHM->
H2(
"recNRecProtons_eta_P_sim")->Fill(pair->
GetEtaPart1(), momProtMC);
460 Double_t momMesMC = negPartTr->
GetP();
461 Double_t momMesZMC = negPartTr->
GetPz();
462 Double_t pRapidityMMC = 0.5 * Log((momMesMC + momMesZMC) / (momMesMC - momMesZMC));
465 fHM->
H1(
"recNRecMesons_P_rec")->Fill(momMesMC);
466 fHM->
H1(
"recNRecMesons_theta_rec")->Fill(TMath::ACos(momMesZMC / momMesMC) * TMath::RadToDeg());
467 fHM->
H1(
"recNRecMesons_eta_rec")->Fill(pRapidityMMC);
468 fHM->
H1(
"recNRecMesons_theta_r_rec")->Fill(thetaRMes);
469 fHM->
H2(
"recNRecMesons_eta_P_sim")->Fill(pair->
GetEtaPart1(), momMesMC);
472 if (fParticlePair_RECO)
473 for (Int_t iPair = 0; iPair < fParticlePair_RECO->GetEntriesFast(); iPair++) {
479 Double_t dca1 = pair->
GetDCA1();
480 Double_t dca2 = pair->
GetDCA2();
483 Double_t path = pair->
GetPath();
486 if (momPart1 < fMom[0][0] || momPart1 > fMom[0][1] || momPart2 < fMom[1][0] || momPart2 > fMom[1][1])
489 if (etaPart1 < fEta[0][0] || etaPart1 > fEta[0][1] || etaPart2 < fEta[1][0] || etaPart2 > fEta[1][1])
493 if (dca1 < fDCA[0][0] || dca1 > fDCA[0][1] || dca2 < fDCA[1][0] || dca2 > fDCA[1][1])
496 if (dca12x < fDCA12[0] || dca12x > fDCA12[1])
499 if (path < fPath[0] || path > fPath[1])
503 fHM->
H1(
"numberOfReconstructedParticlePairsQA")->Fill(1);
506 fHM->
H2(
"NPairsRecoInvMassMomProton")->Fill(momPart1, pair->
GetInvMass());
507 fHM->
H2(
"NPairsRecoInvMassMomMeson")->Fill(momPart2, pair->
GetInvMass());
508 fHM->
H2(
"NPairsRecoInvMassEtaProton")->Fill(etaPart1, pair->
GetInvMass());
509 fHM->
H2(
"NPairsRecoInvMassEtaMeson")->Fill(etaPart2, pair->
GetInvMass());
510 fHM->
H2(
"NPairsRecoInvMassDCA1")->Fill(dca1, pair->
GetInvMass());
511 fHM->
H2(
"NPairsRecoInvMassDCA2")->Fill(dca2, pair->
GetInvMass());
512 fHM->
H2(
"NPairsRecoInvMassDCA12X")->Fill(dca12x, pair->
GetInvMass());
513 fHM->
H2(
"NPairsRecoInvMassDCA12Y")->Fill(dca12y, pair->
GetInvMass());
514 fHM->
H2(
"NPairsRecoInvMassDCA12XsubY")->Fill(abs(dca12x - dca12y), pair->
GetInvMass());
515 fHM->
H2(
"NPairsRecoInvMassPath")->Fill(path, pair->
GetInvMass());
518 if (fParticlePair_RECO)
519 for (Int_t iPair = 0; iPair < fParticlePair_RECO->GetEntriesFast(); iPair++) {
522 fHM->
H1(
"NPairsRecoInvMassWOCuts")->Fill(pair->
GetInvMass());
528 Double_t dca1 = pair->
GetDCA1();
529 Double_t dca2 = pair->
GetDCA2();
532 Double_t path = pair->
GetPath();
534 fHM->
H2(
"NPairsRecoInvMassMomProtonWOCuts")->Fill(momPart1, pair->
GetInvMass());
535 fHM->
H2(
"NPairsRecoInvMassMomMesonWOCuts")->Fill(momPart2, pair->
GetInvMass());
536 fHM->
H2(
"NPairsRecoInvMassEtaProtonWOCuts")->Fill(etaPart1, pair->
GetInvMass());
537 fHM->
H2(
"NPairsRecoInvMassEtaMesonWOCuts")->Fill(etaPart2, pair->
GetInvMass());
539 fHM->
H2(
"NPairsRecoInvMassDCA1WOCuts")->Fill(dca1, pair->
GetInvMass());
540 fHM->
H2(
"NPairsRecoInvMassDCA2WOCuts")->Fill(dca2, pair->
GetInvMass());
541 fHM->
H2(
"NPairsRecoInvMassDCA12XWOCuts")->Fill(dca12x, pair->
GetInvMass());
542 fHM->
H2(
"NPairsRecoInvMassDCA12YWOCuts")->Fill(dca12y, pair->
GetInvMass());
543 fHM->
H2(
"NPairsRecoInvMassDCA12XsubYWOCuts")->Fill(abs(dca12x - dca12y), pair->
GetInvMass());
544 fHM->
H2(
"NPairsRecoInvMassPathWOCuts")->Fill(path, pair->
GetInvMass());
551 vector <TClonesArray*> isPairBranches;
552 isPairBranches.push_back(fParticlePair_MC);
553 isPairBranches.push_back(fParticlePair_RECO);
576 report->
Create(fHM, fOutputDir);
581void BmnLambdaQa::ReadDataBranches() {
582 FairRootManager* ioman = FairRootManager::Instance();
585 Fatal(
"Init",
"BmnRootManager is not instantiated");
587 fMCTracks = (TClonesArray*) ioman->GetObject(
"MCTrack");
588 fGlobalTracks = (TClonesArray*) ioman->GetObject(
"BmnGlobalTrack");
589 fSiliconPoints = (TClonesArray*) ioman->GetObject(
"SiliconPoint");
591 fParticlePair_MC = (TClonesArray*) ioman->GetObject(
"ParticlePair_MC");
592 fParticlePair_RECO = (TClonesArray*) ioman->GetObject(
"ParticlePair_RECO");
598 fUseRecoFile = kTRUE;
601void BmnLambdaQa::CreateH1(
const string& name,
const string& xTitle,
const string& yTitle, Int_t nofBins, Double_t minBin, Double_t maxBin) {
602 TH1F* h =
new TH1F(
name.c_str(),
string(
";" + xTitle +
";" + yTitle).c_str(), nofBins, minBin, maxBin);
606void BmnLambdaQa::CreateH2(
608 const string& xTitle,
609 const string& yTitle,
610 const string& zTitle,
617 TH2F* h =
new TH2F(
name.c_str(), (
";" + xTitle +
";" + yTitle +
";" + zTitle).c_str(), nofBinsX, minBinX, maxBinX, nofBinsY, minBinY, maxBinY);
621void BmnLambdaQa::CreateNumberOfReconstructableLambdaHistograms() {
622 CreateH1(
"simNReconstructableLambda_P_sim",
"P_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
623 CreateH1(
"simNReconstructableLambda_eta_sim",
"#eta_{sim}",
"number of reconstructable #Lambda^{0}", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
624 CreateH1(
"simNReconstructableLambda_theta_sim",
"#theta_{sim}, degrees",
"number of reconstructable #Lambda^{0}", fNOfBins, fLambdaThetaRangeMin, fLambdaThetaRangeMax);
625 CreateH1(
"simNReconstructableLambda_theta_r_sim",
"Y^{r}_{sim}",
"number of reconstructable #Lambda^{0}", fNOfBins, fLambdaThetaRRangeMin, fLambdaThetaRRangeMax);
626 CreateH1(
"simNReconstructableLambda_P_x_sim",
"P^{x}_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}", fNOfBins, -2, 2);
627 CreateH1(
"simNReconstructableLambda_P_y_sim",
"P^{y}_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}", fNOfBins, -2, 2);
628 CreateH1(
"simNReconstructableLambda_P_z_sim",
"P^{z}_{sim}, GeV/c",
"number of reconstructable #Lambda^{0}", fNOfBins, -1, 4);
631void BmnLambdaQa::CreateNumberOfLambdaHistograms() {
632 CreateH1(
"simNLambda_P_sim",
"P_{sim}, GeV/c",
"number of #Lambda^{0}", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
633 CreateH1(
"simNLambda_eta_sim",
"#eta_{sim}",
"number of #Lambda^{0}", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
634 CreateH1(
"simNLambda_theta_sim",
"#theta_{sim}, degrees",
"number of #Lambda^{0}", fNOfBins, fLambdaThetaRangeMin, fLambdaThetaRangeMax);
635 CreateH1(
"simNLambda_theta_r_sim",
"Y^{r}_{sim}",
"number of #Lambda^{0}", fNOfBins, fLambdaThetaRRangeMin, fLambdaThetaRRangeMax);
636 CreateH1(
"simNLambda_P_x_sim",
"P^{x}_{sim}, GeV/c",
"number of #Lambda^{0}", fNOfBins, -2, 2);
637 CreateH1(
"simNLambda_P_y_sim",
"P^{y}_{sim}, GeV/c",
"number of #Lambda^{0}", fNOfBins, -2, 2);
638 CreateH1(
"simNLambda_P_z_sim",
"P^{z}_{sim}, GeV/c",
"number of #Lambda^{0}", fNOfBins, -1, 4);
641void BmnLambdaQa::CreateLambdaRecEfficiencyHistograms() {
642 CreateH1(
"simLambdaRecEff_P_sim",
"P_{sim}, GeV/c",
"geometrical efficiency, %", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
643 CreateH1(
"simLambdaRecEff_eta_sim",
"#eta_{sim}",
"geometrical efficiency, % efficiency, %", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
644 CreateH1(
"simLambdaRecEff_theta_sim",
"#theta_{sim}, degrees",
"geometrical efficiency, %", fNOfBins, fLambdaThetaRangeMin, fLambdaThetaRangeMax);
645 CreateH1(
"simLambdaRecEff_theta_r_sim",
"Y^{r}_{sim}",
"geometrical efficiency, %", fNOfBins, fLambdaThetaRRangeMin, fLambdaThetaRRangeMax);
646 CreateH1(
"simLambdaRecEff_P_x_sim",
"P^{x}_{sim}, GeV/c",
"geometrical efficiency, %", fNOfBins, -2, 2);
647 CreateH1(
"simLambdaRecEff_P_y_sim",
"P^{y}_{sim}, GeV/c",
"geometrical efficiency, %", fNOfBins, -2, 2);
648 CreateH1(
"simLambdaRecEff_P_z_sim",
"P^{z}_{sim}, GeV/c",
"geometrical efficiency, %", fNOfBins, -1, 4);
651void BmnLambdaQa::CreateTwoDimensionalRecEfficiencyHistograms() {
652 CreateH2(
"simNReconstructableLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of #Lambda^{0}", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax, fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
653 CreateH2(
"simNLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of #Lambda^{0}", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax, fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
654 CreateH2(
"simEffRecLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"geometrical efficiency, %", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax, fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
657void BmnLambdaQa::CreateNumberOLambdaDecayProtonsHistograms() {
658 CreateH1(
"NProtons_P_sim",
"P_{sim}, GeV/c",
"number of lambda decay p", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
659 CreateH1(
"NProtons_eta_sim",
"#eta_{sim}",
"number of lambda decay p", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax);
660 CreateH1(
"NProtons_theta_sim",
"#theta_{sim}, degrees",
"number of lambda decay p", fNOfBins, fProtonsThetaRangeMin, fProtonsThetaRangeMax);
661 CreateH1(
"NProtons_theta_r_sim",
"Y^{r}_{sim}",
"number of lambda decay p", fNOfBins, fProtonsThetaRRangeMin, fProtonsThetaRRangeMax);
662 CreateH1(
"NRecProtons_P_sim",
"P_{sim}, GeV/c",
"number of reconstructable lambda decay p", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
663 CreateH1(
"NRecProtons_eta_sim",
"#eta_{sim}",
"number of reconstructable lambda decay p", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax);
664 CreateH1(
"NRecProtons_theta_sim",
"#theta_{sim}, degrees",
"number of reconstructable lambda decay p", fNOfBins, fProtonsThetaRangeMin, fProtonsThetaRangeMax);
665 CreateH1(
"NRecProtons_theta_r_sim",
"Y^{r}_{sim}, degrees",
"number of reconstructable lambda decay p", fNOfBins, fProtonsThetaRRangeMin, fProtonsThetaRRangeMax);
668void BmnLambdaQa::CreateRecProtonsRecEfficiencyHistograms() {
669 CreateH1(
"simRecProtonsRecEff_P_sim",
"P_{sim}, GeV/c",
"geometrical efficiency, %", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
670 CreateH1(
"simRecProtonsRecEff_eta_sim",
"#eta_{sim}",
"geometrical efficiency, %", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax);
671 CreateH1(
"simRecProtonsRecEff_theta_sim",
"#theta_{sim}, degrees",
"geometrical efficiency, %", fNOfBins, fProtonsThetaRangeMin, fProtonsThetaRangeMax);
672 CreateH1(
"simRecProtonsRecEff_theta_r_sim",
"Y^{r}_{sim}, degrees",
"geometrical efficiency, %", fNOfBins, fProtonsThetaRRangeMin, fProtonsThetaRRangeMax);
675void BmnLambdaQa::CreateTwoDimensionalRecProtonsRecEfficiencyHistograms() {
676 CreateH2(
"simNRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
677 CreateH2(
"simNReconstructableRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
678 CreateH2(
"simEffRecRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"reconstruction efficiency, %", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
681void BmnLambdaQa::CreateNumberOfLambdaDecayMesonsHistograms() {
682 CreateH1(
"NMesons_P_sim",
"P_{sim}, GeV/c",
"number of lambda decay #pi^{-}", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
683 CreateH1(
"NMesons_eta_sim",
"#eta_{sim}",
"number of lambda decay #pi^{-}", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax);
684 CreateH1(
"NMesons_theta_sim",
"#theta_{sim}, degrees",
"number of lambda decay #pi^{-}", fNOfBins, fMesonsThetaRangeMin, fMesonsThetaRangeMax);
685 CreateH1(
"NMesons_theta_r_sim",
"Y^{r}_{sim}, degrees",
"number of lambda decay #pi^{-}", fNOfBins, fMesonsThetaRRangeMin, fMesonsThetaRRangeMax);
686 CreateH1(
"NRecMesons_P_sim",
"P_{sim}, GeV/c",
"number of reconstructable lambda decay #pi^{-}", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
687 CreateH1(
"NRecMesons_eta_sim",
"#eta_{sim}",
"number of reconstructable lambda decay #pi^{-}", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax);
688 CreateH1(
"NRecMesons_theta_sim",
"#theta_{sim}, degrees",
"number of reconstructable lambda decay #pi^{-}", fNOfBins, fMesonsThetaRangeMin, fMesonsThetaRangeMax);
689 CreateH1(
"NRecMesons_theta_r_sim",
"Y^{r}_{sim}, degrees",
"number of reconstructable lambda decay #pi^{-}", fNOfBins, fMesonsThetaRRangeMin, fMesonsThetaRRangeMax);
692void BmnLambdaQa::CreateRecMesonsRecEfficiencyHistograms() {
693 CreateH1(
"simRecMesonsRecEff_P_sim",
"P_{sim}, GeV/c",
"geometrical efficiency, %", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
694 CreateH1(
"simRecMesonsRecEff_eta_sim",
"#eta_{sim}",
"geometrical efficiency, %", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax);
695 CreateH1(
"simRecMesonsRecEff_theta_sim",
"#theta_{sim}, degrees",
"geometrical efficiency, %", fNOfBins, fMesonsThetaRangeMin, fMesonsThetaRangeMax);
696 CreateH1(
"simRecMesonsRecEff_theta_r_sim",
"Y^{r}_{sim}, degrees",
"geometrical efficiency, %", fNOfBins, fMesonsThetaRRangeMin, fMesonsThetaRRangeMax);
699void BmnLambdaQa::CreateTwoDimensionalRecMesonsRecEfficiencyHistograms() {
700 CreateH2(
"simNRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay #pi^{-}", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
701 CreateH2(
"simNReconstructableRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay #pi^{-}", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
702 CreateH2(
"simEffRecRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"geometrical efficiency, %", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
705void BmnLambdaQa::CreateNumberOfReconstrcutedLambdaHistograms() {
706 CreateH1(
"recNLambda_P_rec",
"P_{sim}, GeV/c",
"number of #Lambda^{0} reconstructed", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
707 CreateH1(
"recNLambda_theta_rec",
"#theta_{sim}, degrees",
"number of #Lambda^{0} reconstructed", fNOfBins, fLambdaThetaRangeMin, fLambdaThetaRangeMax);
708 CreateH1(
"recNLambda_eta_rec",
"#eta_{sim}",
"number of #Lambda^{0} reconstructed", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
709 CreateH1(
"recNLambda_theta_r_rec",
"Y^{r}_{sim}",
"number of #Lambda^{0} reconstructed", fNOfBins, fLambdaThetaRRangeMin, fLambdaThetaRRangeMax);
712void BmnLambdaQa::CreateReconstructionEfficiencyHistograms() {
713 CreateH1(
"recEffLambda_P_rec",
"P_{sim}, GeV/c",
"reconstruction efficiency, %", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
714 CreateH1(
"recEffLambda_theta_rec",
"#theta_{sim}, degrees",
"reconstruction efficiency, %", fNOfBins, fLambdaThetaRangeMin, fLambdaThetaRangeMax);
715 CreateH1(
"recEffLambda_eta_rec",
"#eta_{sim}",
"reconstruction efficiency, %", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
716 CreateH1(
"recEffLambda_theta_r_rec",
"Y^{r}_{sim}",
"reconstruction efficiency, %", fNOfBins, fLambdaThetaRRangeMin, fLambdaThetaRRangeMax);
719void BmnLambdaQa::CreateTwoDimensionalRealRecEfficiencyHistograms() {
720 CreateH2(
"recNLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of reconstructed #Lambda^{0}", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax, fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
721 CreateH2(
"recEffRecLambda_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"efficiency, %", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax, fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
724void BmnLambdaQa::CreateNumberOfReconstrcutedRecProtonHistograms() {
725 CreateH1(
"recNRecProtons_P_rec",
"P_{sim}, GeV/c",
"number of lambda decay p reconstructed", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
726 CreateH1(
"recNRecProtons_theta_rec",
"#theta_{sim}, degrees",
"number of lambda decay p reconstructed", fNOfBins, fProtonsThetaRangeMin, fProtonsThetaRangeMax);
727 CreateH1(
"recNRecProtons_eta_rec",
"#eta_{sim}",
"number of lambda decay p reconstructed", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax);
728 CreateH1(
"recNRecProtons_theta_r_rec",
"Y^{r}_{sim}",
"number of lambda decay p reconstructed", fNOfBins, fProtonsThetaRRangeMin, fProtonsThetaRRangeMax);
731void BmnLambdaQa::CreateRecProtonsReconstructionEfficiencyHistograms() {
732 CreateH1(
"recEffRecProtons_P_rec",
"P_{sim}, GeV/c",
"reconstruction efficiency, %", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
733 CreateH1(
"recEffRecProtons_theta_rec",
"#theta_{sim}, degrees",
"reconstruction efficiency, %", fNOfBins, fProtonsThetaRangeMin, fProtonsThetaRangeMax);
734 CreateH1(
"recEffRecProtons_eta_rec",
"#eta_{sim}",
"reconstruction efficiency, %", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax);
735 CreateH1(
"recEffRecProtons_theta_r_rec",
"Y^{r}_{sim}",
"reconstruction efficiency, %", fNOfBins, fProtonsThetaRRangeMin, fProtonsThetaRRangeMax);
738void BmnLambdaQa::CreateTwoDimensionalNumberOfReconstructedProtonsHistograms() {
739 CreateH2(
"recNRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
740 CreateH2(
"recEffRecProtons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"efficiency, %", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax);
743void BmnLambdaQa::CreateNumberOfReconstrcutedRecMesonsHistograms() {
744 CreateH1(
"recNRecMesons_P_rec",
"P_{sim}, GeV/c",
"number of lambda decay p reconstructed", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
745 CreateH1(
"recNRecMesons_theta_rec",
"#theta_{sim}, degrees",
"number of lambda decay p reconstructed", fNOfBins, fMesonsThetaRangeMin, fMesonsThetaRangeMax);
746 CreateH1(
"recNRecMesons_eta_rec",
"#eta_{sim}",
"number of lambda decay p reconstructed", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax);
747 CreateH1(
"recNRecMesons_theta_r_rec",
"Y^{r}_{sim}",
"number of lambda decay p reconstructed", fNOfBins, fMesonsThetaRRangeMin, fMesonsThetaRRangeMax);
750void BmnLambdaQa::CreateRecMesonsReconstructionEfficiencyHistograms() {
751 CreateH1(
"recEffRecMesons_P_rec",
"P_{sim}, GeV/c",
"reconstruction efficiency, %", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
752 CreateH1(
"recEffRecMesons_theta_rec",
"#theta_{sim}, degrees",
"reconstruction efficiency, %", fNOfBins, fMesonsThetaRangeMin, fMesonsThetaRangeMax);
753 CreateH1(
"recEffRecMesons_eta_rec",
"#eta_{sim}",
"reconstruction efficiency, %", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax);
754 CreateH1(
"recEffRecMesons_theta_r_rec",
"Y^{r}_{sim}",
"reconstruction efficiency, %", fNOfBins, fMesonsThetaRRangeMin, fMesonsThetaRRangeMax);
757void BmnLambdaQa::CreateTwoDimensionalNumberOfReconstructedMesonsHistograms() {
758 CreateH2(
"recNRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"number of lambda decay p", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
759 CreateH2(
"recEffRecMesons_eta_P_sim",
"P_{sim}, GeV/c",
"#eta_{sim}",
"efficiency, %", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax);
762void BmnLambdaQa::CreateReconstructedParticlePairsFromMCDataHistograms() {
763 CreateH1(
"NPairsRecoFromMCInvMass",
"m_{inv}, GeV/c^2",
"number of particle pairs", fNOfBins, 1.07, 1.22);
766void BmnLambdaQa::CreateTwoDimensionalReconstructedParticlePairsFromMCDataHistograms() {
767 CreateH2(
"NPairsRecoFromMCInvMassMomProton",
"P^{p}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
768 CreateH2(
"NPairsRecoFromMCInvMassEtaProton",
"#eta^{p}_{sim}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
769 CreateH2(
"NPairsRecoFromMCInvMassDCA1",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA1RangeMin, fDCA1RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
770 CreateH2(
"NPairsRecoFromMCInvMassMomMeson",
"P^{#pi^{-}}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
771 CreateH2(
"NPairsRecoFromMCInvMassEtaMeson",
"#eta^{#pi^{-}}_{sim}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
772 CreateH2(
"NPairsRecoFromMCInvMassDCA2",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA2RangeMin, fDCA2RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
773 CreateH2(
"NPairsRecoFromMCInvMassDCA12X",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
774 CreateH2(
"NPairsRecoFromMCInvMassDCA12Y",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12YRangeMin, fDCA12YRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
775 CreateH2(
"NPairsRecoFromMCInvMassDCA12XsubY",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
776 CreateH2(
"NPairsRecoFromMCInvMassPath",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fPathRangeMin, fPathRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
779void BmnLambdaQa::CreateReconstructedParticlePairsFromMCDataWOCutsHistograms() {
780 CreateH1(
"NPairsRecoFromMCWOCutsInvMass",
"m_{inv}, GeV/c^2",
"number of particle pairs", fNOfBins, 1.07, 1.22);
783void BmnLambdaQa::CreateTwoDimensionalReconstructedParticlePairsFromMCDataWOCutsHistograms() {
784 CreateH2(
"NPairsRecoFromMCWOCutsInvMassMomProton",
"P^{p}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
785 CreateH2(
"NPairsRecoFromMCWOCutsInvMassEtaProton",
"#eta^{p}_{sim}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
786 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA1",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA1RangeMin, fDCA1RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
787 CreateH2(
"NPairsRecoFromMCWOCutsInvMassMomMeson",
"P^{#pi^{-}}_{sim}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
788 CreateH2(
"NPairsRecoFromMCWOCutsInvMassEtaMeson",
"#eta^{#pi^{-}}_{sim}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
789 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA2",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA2RangeMin, fDCA2RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
790 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA12X",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
791 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA12Y",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12YRangeMin, fDCA12YRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
792 CreateH2(
"NPairsRecoFromMCWOCutsInvMassDCA12XsubY",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
793 CreateH2(
"NPairsRecoFromMCWOCutsInvMassPath",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fPathRangeMin, fPathRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
796void BmnLambdaQa::CreateNumberOfNotReconstructedLambdaHistograms() {
797 CreateH1(
"recNNotRecLambda_P_rec",
"P_{sim}, GeV/c",
"number of #Lambda^{0} not reconstructed", fNOfBins, fLambdaPRangeMin, fLambdaPRangeMax);
798 CreateH1(
"recNNotRecLambda_theta_rec",
"#theta_{sim}, degrees",
"number of #Lambda^{0} not reconstructed", fNOfBins, fLambdaThetaRangeMin, fLambdaThetaRangeMax);
799 CreateH1(
"recNNotRecLambda_eta_rec",
"#eta_{sim}",
"number of #Lambda^{0} not reconstructed", fNOfBins, fLambdaEtaRangeMin, fLambdaEtaRangeMax);
800 CreateH1(
"recNNotRecLambda_theta_r_rec",
"Y^{r}_{sim}",
"number of #Lambda^{0} not reconstructed", fNOfBins, fLambdaThetaRRangeMin, fLambdaThetaRRangeMax);
803void BmnLambdaQa::CreateReconstructedParticlePairsHistograms() {
804 CreateH1(
"NPairsRecoInvMass",
"m_{inv}, GeV/c^2",
"number of particle pairs", fNOfBins, fInvMassMin, fInvMassMax);
807void BmnLambdaQa::CreateTwoDimensionalReconstructedParticlePairsHistograms() {
808 CreateH2(
"NPairsRecoInvMassMomProton",
"P^{p}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
809 CreateH2(
"NPairsRecoInvMassEtaProton",
"#eta^{p}_{reco}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
810 CreateH2(
"NPairsRecoInvMassDCA1",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA1RangeMin, fDCA1RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
811 CreateH2(
"NPairsRecoInvMassMomMeson",
"P^{#pi^{-}}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
812 CreateH2(
"NPairsRecoInvMassEtaMeson",
"#eta^{#pi^{-}}_{reco}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
813 CreateH2(
"NPairsRecoInvMassDCA2",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA2RangeMin, fDCA2RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
814 CreateH2(
"NPairsRecoInvMassDCA12X",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
815 CreateH2(
"NPairsRecoInvMassDCA12Y",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12YRangeMin, fDCA12YRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
816 CreateH2(
"NPairsRecoInvMassDCA12XsubY",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
817 CreateH2(
"NPairsRecoInvMassPath",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fPathRangeMin, fPathRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
820void BmnLambdaQa::CreateReconstructedParticlePairsWOCutsHistograms() {
821 CreateH1(
"NPairsRecoInvMassWOCuts",
"m_{inv}, GeV/c^2",
"number of particle pairs", fNOfBins, fInvMassMin, fInvMassMax);
824void BmnLambdaQa::CreateTwoDimensionalReconstructedParticlePairsWOCutsHistograms() {
825 CreateH2(
"NPairsRecoInvMassMomProtonWOCuts",
"P^{p}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsPRangeMin, fProtonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
826 CreateH2(
"NPairsRecoInvMassEtaProtonWOCuts",
"#eta^{p}_{reco}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fProtonsEtaRangeMin, fProtonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
827 CreateH2(
"NPairsRecoInvMassDCA1WOCuts",
"DCA^{p}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA1RangeMin, fDCA1RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
828 CreateH2(
"NPairsRecoInvMassMomMesonWOCuts",
"P^{#pi^{-}}_{reco}, GeV/c",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsPRangeMin, fMesonsPRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
829 CreateH2(
"NPairsRecoInvMassEtaMesonWOCuts",
"#eta^{#pi^{-}}_{reco}",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fMesonsEtaRangeMin, fMesonsEtaRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
830 CreateH2(
"NPairsRecoInvMassDCA2WOCuts",
"DCA^{#pi^{-}}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA2RangeMin, fDCA2RangeMax, fNOfBins, fInvMassMin, fInvMassMax);
831 CreateH2(
"NPairsRecoInvMassDCA12XWOCuts",
"DCA12_{X}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
832 CreateH2(
"NPairsRecoInvMassDCA12YWOCuts",
"DCA12_{Y}, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12YRangeMin, fDCA12YRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
833 CreateH2(
"NPairsRecoInvMassDCA12XsubYWOCuts",
"|DCA12_{X} - DCA12_{Y}|, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fDCA12XRangeMin, fDCA12XRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
834 CreateH2(
"NPairsRecoInvMassPathWOCuts",
"path, cm",
"m_{inv}, GeV/c^{2}",
"number of particle pairs", fNOfBins, fPathRangeMin, fPathRangeMax, fNOfBins, fInvMassMin, fInvMassMax);
visualising simulated lambda reconstruction performance calculation.
FairTask for MC simulated lambda reconstruction performance calculation.
void Add(const TString &name, TNamed *object)
Add new named object to manager.
TH2 * H2(const TString &name) const
Return pointer to TH2 histogram.
void WriteToFile()
Write all histograms to current opened file.
TH1 * H1(const TString &name) const
Return pointer to TH1 histogram.
virtual ~BmnLambdaQa()
Destructor.
virtual void Finish()
Derived from FairTask.
virtual InitStatus Init()
Derived from FairTask.
virtual void Exec(Option_t *opt)
Derived from FairTask.
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
Double_t GetRapidity() const
Int_t GetMotherId() const