@@ -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