Skip to content

Commit e349c37

Browse files
authored
[PWGCF] add PID pt-Nch distribution (#10917)
1 parent 31afacb commit e349c37

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

PWGCF/Flow/Tasks/flowMc.cxx

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,14 @@ struct FlowMc {
6565
O2_DEFINE_CONFIGURABLE(cfgFlowEfficiency, std::string, "", "CCDB path to efficiency object")
6666
O2_DEFINE_CONFIGURABLE(cfgCentVsIPTruth, std::string, "", "CCDB path to centrality vs IP truth")
6767
O2_DEFINE_CONFIGURABLE(cfgIsGlobalTrack, bool, false, "Use global tracks instead of hasTPC&&hasITS")
68+
O2_DEFINE_CONFIGURABLE(cfgK0Lambda0Enabled, bool, false, "Add K0 and Lambda0")
6869
O2_DEFINE_CONFIGURABLE(cfgFlowCumulantEnabled, bool, false, "switch of calculating flow")
6970
O2_DEFINE_CONFIGURABLE(cfgFlowCumulantNbootstrap, int, 30, "Number of subsamples")
7071
O2_DEFINE_CONFIGURABLE(cfgTrackDensityCorrUse, bool, false, "Use track density efficiency correction")
7172
O2_DEFINE_CONFIGURABLE(cfgTrackDensityCorrSlopeFactor, float, 1.0f, "A factor to scale the track density efficiency slope")
7273
Configurable<std::vector<double>> cfgTrackDensityP0{"cfgTrackDensityP0", std::vector<double>{0.6003720411, 0.6152630970, 0.6288860646, 0.6360694031, 0.6409494798, 0.6450540203, 0.6482117301, 0.6512592056, 0.6640008690, 0.6862631416, 0.7005738691, 0.7106567432, 0.7170728333}, "parameter 0 for track density efficiency correction"};
7374
Configurable<std::vector<double>> cfgTrackDensityP1{"cfgTrackDensityP1", std::vector<double>{-1.007592e-05, -8.932635e-06, -9.114538e-06, -1.054818e-05, -1.220212e-05, -1.312304e-05, -1.376433e-05, -1.412813e-05, -1.289562e-05, -1.050065e-05, -8.635725e-06, -7.380821e-06, -6.201250e-06}, "parameter 1 for track density efficiency correction"};
75+
float maxEta = 0.8;
7476

7577
ConfigurableAxis axisB{"axisB", {100, 0.0f, 20.0f}, ""};
7678
ConfigurableAxis axisCentrality{"axisCentrality", {VARIABLE_WIDTH, 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90}, "X axis for histograms"};
@@ -143,6 +145,16 @@ struct FlowMc {
143145
histos.add<TH2>("hEPVsPhi", "hEPVsPhi;Event Plane Angle; #varphi", HistType::kTH2D, {axisPhi, axisPhi});
144146
histos.add<TH2>("hPtNchGenerated", "Reco production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
145147
histos.add<TH2>("hPtNchGlobal", "Global production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
148+
histos.add<TH2>("hPtNchGeneratedPion", "Reco production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
149+
histos.add<TH2>("hPtNchGlobalPion", "Global production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
150+
histos.add<TH2>("hPtNchGeneratedKaon", "Reco production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
151+
histos.add<TH2>("hPtNchGlobalKaon", "Global production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
152+
histos.add<TH2>("hPtNchGeneratedProton", "Reco production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
153+
histos.add<TH2>("hPtNchGlobalProton", "Global production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
154+
histos.add<TH2>("hPtNchGeneratedK0", "Reco production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
155+
histos.add<TH2>("hPtNchGlobalK0", "Global production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
156+
histos.add<TH2>("hPtNchGeneratedLambda", "Reco production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
157+
histos.add<TH2>("hPtNchGlobalLambda", "Global production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
146158
histos.add<TH1>("hPtMCGen", "Monte Carlo Truth; pT (GeV/c);", {HistType::kTH1D, {axisPt}});
147159
histos.add<TH1>("hPtMCGlobal", "Monte Carlo Global; pT (GeV/c);", {HistType::kTH1D, {axisPt}});
148160
histos.add<TH1>("hPhiWeightedTrDen", "corrected #phi distribution, considering track density", {HistType::kTH1D, {axisPhi}});
@@ -348,7 +360,7 @@ struct FlowMc {
348360
continue;
349361
if (!mcParticle.isPhysicalPrimary())
350362
continue;
351-
if (std::fabs(mcParticle.eta()) > 0.8) // main acceptance
363+
if (std::fabs(mcParticle.eta()) > maxEta) // main acceptance
352364
continue;
353365
if (mcParticle.has_tracks()) {
354366
auto const& tracks = mcParticle.tracks_as<RecoTracks>();
@@ -388,12 +400,16 @@ struct FlowMc {
388400
for (auto const& mcParticle : mcParticles) {
389401
// focus on bulk: e, mu, pi, k, p
390402
int pdgCode = std::abs(mcParticle.pdgCode());
391-
if (pdgCode != PDG_t::kElectron && pdgCode != PDG_t::kMuonMinus && pdgCode != PDG_t::kPiPlus && pdgCode != kKPlus && pdgCode != PDG_t::kProton)
403+
bool extraPDGType = true;
404+
if (cfgK0Lambda0Enabled) {
405+
extraPDGType = (pdgCode != PDG_t::kK0Short && pdgCode != PDG_t::kLambda0);
406+
}
407+
if (extraPDGType && pdgCode != PDG_t::kElectron && pdgCode != PDG_t::kMuonMinus && pdgCode != PDG_t::kPiPlus && pdgCode != kKPlus && pdgCode != PDG_t::kProton)
392408
continue;
393409

394410
if (!mcParticle.isPhysicalPrimary())
395411
continue;
396-
if (std::fabs(mcParticle.eta()) > 0.8) // main acceptance
412+
if (std::fabs(mcParticle.eta()) > maxEta) // main acceptance
397413
continue;
398414

399415
float deltaPhi = mcParticle.phi() - mcCollision.eventPlaneAngle();
@@ -402,6 +418,16 @@ struct FlowMc {
402418
histos.fill(HIST("hBVsPtVsPhiGenerated"), imp, deltaPhi, mcParticle.pt());
403419
histos.fill(HIST("hPtNchGenerated"), mcParticle.pt(), nChGlobal);
404420
histos.fill(HIST("hPtMCGen"), mcParticle.pt());
421+
if (pdgCode == PDG_t::kPiPlus)
422+
histos.fill(HIST("hPtNchGeneratedPion"), mcParticle.pt(), nChGlobal);
423+
if (pdgCode == PDG_t::kKPlus)
424+
histos.fill(HIST("hPtNchGeneratedKaon"), mcParticle.pt(), nChGlobal);
425+
if (pdgCode == PDG_t::kProton)
426+
histos.fill(HIST("hPtNchGeneratedProton"), mcParticle.pt(), nChGlobal);
427+
if (pdgCode == PDG_t::kK0Short)
428+
histos.fill(HIST("hPtNchGeneratedK0"), mcParticle.pt(), nChGlobal);
429+
if (pdgCode == PDG_t::kLambda0)
430+
histos.fill(HIST("hPtNchGeneratedLambda"), mcParticle.pt(), nChGlobal);
405431

406432
nCh++;
407433

@@ -493,6 +519,16 @@ struct FlowMc {
493519
histos.fill(HIST("hBVsPtVsPhiGlobal"), imp, deltaPhi, mcParticle.pt(), wacc * weff);
494520
histos.fill(HIST("hPtNchGlobal"), mcParticle.pt(), nChGlobal);
495521
histos.fill(HIST("hPtMCGlobal"), mcParticle.pt());
522+
if (pdgCode == PDG_t::kPiPlus)
523+
histos.fill(HIST("hPtNchGlobalPion"), mcParticle.pt(), nChGlobal);
524+
if (pdgCode == PDG_t::kKPlus)
525+
histos.fill(HIST("hPtNchGlobalKaon"), mcParticle.pt(), nChGlobal);
526+
if (pdgCode == PDG_t::kProton)
527+
histos.fill(HIST("hPtNchGlobalProton"), mcParticle.pt(), nChGlobal);
528+
if (pdgCode == PDG_t::kK0Short)
529+
histos.fill(HIST("hPtNchGlobalK0"), mcParticle.pt(), nChGlobal);
530+
if (pdgCode == PDG_t::kLambda0)
531+
histos.fill(HIST("hPtNchGlobalLambda"), mcParticle.pt(), nChGlobal);
496532
}
497533
// if any track present, fill
498534
if (validTrack)

0 commit comments

Comments
 (0)