Skip to content

Commit 88b072c

Browse files
committed
Merge branch 'master' of https://github.com/AliceO2Group/O2Physics into doublephiv101
2 parents 3faf128 + fe32c98 commit 88b072c

File tree

31 files changed

+1713
-857
lines changed

31 files changed

+1713
-857
lines changed

EventFiltering/PWGLF/strangenessFilter.cxx

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ struct strangenessFilter {
225225
hProcessedEvents->GetXaxis()->SetBinLabel(16, aod::filtering::OmegaXi::columnLabel());
226226

227227
hCandidate->GetXaxis()->SetBinLabel(1, "All");
228-
hCandidate->GetXaxis()->SetBinLabel(2, "Has_V0");
228+
hCandidate->GetXaxis()->SetBinLabel(2, "PassBuilderSel");
229229
hCandidate->GetXaxis()->SetBinLabel(3, "DCA_meson");
230230
hCandidate->GetXaxis()->SetBinLabel(4, "DCA_baryon");
231231
hCandidate->GetXaxis()->SetBinLabel(5, "TPCNsigma_pion");
@@ -243,6 +243,7 @@ struct strangenessFilter {
243243
hCandidate->GetXaxis()->SetBinLabel(17, "CascCosPA");
244244
hCandidate->GetXaxis()->SetBinLabel(18, "DCAV0ToPV");
245245
hCandidate->GetXaxis()->SetBinLabel(19, "ProperLifeTime");
246+
hCandidate->GetXaxis()->SetBinLabel(20, "Rapidity");
246247

247248
std::vector<double> centBinning = {0., 1., 5., 10., 20., 30., 40., 50., 70., 100.};
248249
AxisSpec multAxisNTPV = {100, 0.0f, 100.0f, "N. tracks PV estimator"};
@@ -419,6 +420,7 @@ struct strangenessFilter {
419420
mDCAFitter.setMinParamChange(minParamChange);
420421
mDCAFitter.setMinRelChi2Change(minRelChi2Change);
421422
mDCAFitter.setUseAbsDCA(useAbsDCA);
423+
mStraHelper.fitter.setBz(mBz);
422424
}
423425
if (!mStraHelper.lut) { /// done only once
424426
ccdb->setURL(ccdbUrl);
@@ -667,13 +669,18 @@ struct strangenessFilter {
667669
}
668670
hCandidate->Fill(5.5);
669671
}
670-
hCandidate->Fill(7.5);
672+
hCandidate->Fill(6.5); // OLD: eta dau (selection now applied in strangeness helper)
673+
hCandidate->Fill(7.5); // OLD: bachtopv (selection now applied in strangeness helper)
671674

672675
// not striclty needed as selection are applied beforehand - just as QA (no change in number expected)
673676
if (Cascv0radius < v0radius) {
674677
continue;
675678
}
676679
hCandidate->Fill(8.5);
680+
if (Casccascradius < cascradius) {
681+
continue;
682+
}
683+
hCandidate->Fill(9.5);
677684
if (v0DauCPA < v0cospa) {
678685
continue;
679686
}
@@ -682,7 +689,14 @@ struct strangenessFilter {
682689
continue;
683690
}
684691
hCandidate->Fill(11.5);
685-
692+
if (mStraHelper.cascade.cascadeDaughterDCA > dcacascdau) {
693+
continue;
694+
}
695+
hCandidate->Fill(12.5);
696+
if (std::fabs(LambdaMass - constants::physics::MassLambda) > masslambdalimit) {
697+
continue;
698+
}
699+
hCandidate->Fill(13.5);
686700
if (std::fabs(etaCasc) > eta) {
687701
continue;
688702
}
@@ -695,6 +709,20 @@ struct strangenessFilter {
695709
}
696710
hCandidate->Fill(15.5);
697711

712+
// Fill selections QA for Xi
713+
if (cascCPA > casccospaxi) {
714+
hCandidate->Fill(16.5);
715+
if (cascCPA > dcav0topv) {
716+
hCandidate->Fill(17.5);
717+
if (xiproperlifetime < properlifetimefactor * ctauxi) {
718+
hCandidate->Fill(18.5);
719+
if (std::fabs(yXi) < rapidity) {
720+
hCandidate->Fill(19.5);
721+
}
722+
}
723+
}
724+
}
725+
698726
const auto deltaMassXi = useSigmaBasedMassCutXi ? getMassWindow(stfilter::species::Xi, ptCasc) : ximasswindow;
699727
const auto deltaMassOmega = useSigmaBasedMassCutOmega ? getMassWindow(stfilter::species::Omega, ptCasc) : omegamasswindow;
700728

@@ -740,9 +768,9 @@ struct strangenessFilter {
740768
QAHistosTopologicalVariables.fill(HIST("hDCAV0ToPVXi"), DCAV0ToPV);
741769
QAHistosTopologicalVariables.fill(HIST("hDCAV0DaughtersXi"), mStraHelper.cascade.v0DaughterDCA);
742770
QAHistosTopologicalVariables.fill(HIST("hDCACascDaughtersXi"), mStraHelper.cascade.cascadeDaughterDCA);
743-
QAHistosTopologicalVariables.fill(HIST("hDCABachToPVXi"), mStraHelper.cascade.bachelorDCAxy);
744-
QAHistosTopologicalVariables.fill(HIST("hDCAPosToPVXi"), mStraHelper.cascade.positiveDCAxy);
745-
QAHistosTopologicalVariables.fill(HIST("hDCANegToPVXi"), mStraHelper.cascade.negativeDCAxy);
771+
QAHistosTopologicalVariables.fill(HIST("hDCABachToPVXi"), std::fabs(mStraHelper.cascade.bachelorDCAxy));
772+
QAHistosTopologicalVariables.fill(HIST("hDCAPosToPVXi"), std::fabs(mStraHelper.cascade.positiveDCAxy));
773+
QAHistosTopologicalVariables.fill(HIST("hDCANegToPVXi"), std::fabs(mStraHelper.cascade.negativeDCAxy));
746774
QAHistosTopologicalVariables.fill(HIST("hInvMassLambdaXi"), LambdaMass);
747775

748776
if (doextraQA) {

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)