Skip to content

Commit 78815c2

Browse files
authored
[PWGCF] FemtoUniverse - D0 task update (#8610)
1 parent b227e2a commit 78815c2

File tree

2 files changed

+14
-37
lines changed

2 files changed

+14
-37
lines changed

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,6 @@ struct femtoUniverseProducerTask {
779779
if (!colCuts.isSelected(col)) {
780780
return;
781781
}
782-
783782
if (!ConfIsUsePileUp) {
784783
if (ConfDoSpher) {
785784
outputCollision(vtxZ, mult, multNtr, colCuts.computeSphericity(col, tracks), mMagField);

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackD0.cxx

Lines changed: 14 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,8 @@ struct femtoUniversePairTaskTrackD0 {
111111
Configurable<int> ConfPIDTrack{"ConfPIDTrack", 2, "Particle 2 - Read from cutCulator"}; // we also need the possibility to specify whether the bit is true/false ->std>>vector<std::pair<int, int>>
112112
Configurable<int> ConfTrackSign{"ConfTrackSign", 1, "Track sign"};
113113
Configurable<bool> ConfIsTrackIdentified{"ConfIsTrackIdentified", true, "Enable PID for the track"};
114+
Configurable<float> ConfTrackLowPtCut{"ConfTrackLowPtCut", 0.5, "Low pT cut of the track"};
115+
Configurable<float> ConfTrackHighPtCut{"ConfTrackHighPtCut", 2.5, "High pT cut of the track"};
114116
} ConfTrack;
115117

116118
/// Particle 2 --- D0/D0bar meson
@@ -133,23 +135,22 @@ struct femtoUniversePairTaskTrackD0 {
133135
} ConfD0D0barSideBand;
134136

135137
Configurable<std::vector<double>> binsPt{"binsPt", std::vector<double>{hf_cuts_d0_to_pi_k::vecBinsPt}, "pT bin limits"};
136-
Configurable<uint> ConfChooseD0trackCorr{"ConfChooseD0trackCorr", 3, "If 0 - only D0s, 1 - only D0bars, 2 - D0/D0bar (one mass hypo.), 3 - all D0/D0bar cand."};
137-
Configurable<bool> ConfUsePtCutForD0D0bar{"ConfUsePtCutForD0D0bar", false, "Include pT cut for D0/D0bar in same and mixed processes."};
138+
Configurable<uint8_t> ConfChooseD0trackCorr{"ConfChooseD0trackCorr", 3, "If 0 - only D0s, 1 - only D0bars, 2 - D0/D0bar (one mass hypo.), 3 - all D0/D0bar cand."};
138139
Configurable<bool> ConfUseMassCutForD0D0bar{"ConfUseMassCutForD0D0bar", false, "Switch to save D0/D0bar within declared inv. mass range"};
139140

140141
/// Partitions for particle 1
141-
Partition<FemtoFullParticles> partsTrack = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kTrack)) && (aod::femtouniverseparticle::sign == int8_t(ConfTrack.ConfTrackSign));
142+
Partition<FemtoFullParticles> partsTrack = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kTrack)) && (aod::femtouniverseparticle::sign == int8_t(ConfTrack.ConfTrackSign)) && (aod::femtouniverseparticle::pt > ConfTrack.ConfTrackLowPtCut) && (aod::femtouniverseparticle::pt < ConfTrack.ConfTrackHighPtCut);
142143
Partition<soa::Join<aod::FDParticles, aod::FDMCLabels>> partsTrackMC = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kTrack));
143144

144145
/// Partitions for particle 2
145-
/// Partition with all D0/D0bar mesons (which pass double and one mass hypothesis)
146-
Partition<FemtoFullParticles> partsAllDmesons = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0));
146+
/// Partition with all D0/D0bar mesons (which pass double mass hypothesis)
147+
Partition<FemtoFullParticles> partsAllDmesons = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0)) && (aod::femtouniverseparticle::mLambda > 0.0f) && (aod::femtouniverseparticle::mAntiLambda > 0.0f);
147148
/// Partition with D0/D0bar candidates, which pass only one mass hypothesis
148149
Partition<FemtoFullParticles> partsOnlyD0D0bar = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0)) && (aod::femtouniverseparticle::mLambda < 0.0f || aod::femtouniverseparticle::mAntiLambda < 0.0f);
149150
/// Partition with D0 mesons only (one mass hypothesis)
150-
Partition<FemtoFullParticles> partsD0s = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0)) && (aod::femtouniverseparticle::mLambda > 0.0f) && (aod::femtouniverseparticle::mAntiLambda < 0.0f);
151+
Partition<FemtoFullParticles> partsD0s = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0)) && (aod::femtouniverseparticle::mLambda > 0.0f) && (aod::femtouniverseparticle::mAntiLambda < 0.0f) && (aod::femtouniverseparticle::pt > ConfDmesons.ConfMinPtD0D0bar) && (aod::femtouniverseparticle::pt < ConfDmesons.ConfMaxPtD0D0bar);
151152
/// Partition with D0bar mesons only (one mass hypothesis)
152-
Partition<FemtoFullParticles> partsD0bars = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0)) && (aod::femtouniverseparticle::mLambda < 0.0f) && (aod::femtouniverseparticle::mAntiLambda > 0.0f);
153+
Partition<FemtoFullParticles> partsD0bars = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0)) && (aod::femtouniverseparticle::mLambda < 0.0f) && (aod::femtouniverseparticle::mAntiLambda > 0.0f) && (aod::femtouniverseparticle::pt > ConfDmesons.ConfMinPtD0D0bar) && (aod::femtouniverseparticle::pt < ConfDmesons.ConfMaxPtD0D0bar);
153154
/// Partition for D0/D0bar mesons from MC
154155
Partition<soa::Join<aod::FDParticles, aod::FDMCLabels>> partsD0D0barMC = (aod::femtouniverseparticle::partType == uint8_t(aod::femtouniverseparticle::ParticleType::kD0));
155156

@@ -403,9 +404,8 @@ struct femtoUniversePairTaskTrackD0 {
403404

404405
// D0/D0bar histograms
405406
auto vbins = (std::vector<double>)binsPt;
406-
registry.add("hMassVsPt", "2-prong candidates;inv. mass (#pi K) (GeV/#it{c}^{2});entries", {HistType::kTH2F, {ConfInvMassBins, {vbins, "#it{p}_{T} (GeV/#it{c})"}}});
407-
registry.add("hMassVsPtFinerBinning", "2-prong candidates;inv. mass (#pi K) (GeV/#it{c}^{2});entries", {HistType::kTH2F, {ConfInvMassFinerBins, {vbins, "#it{p}_{T} (GeV/#it{c})"}}});
408-
registry.add("hInvMassVsPtOnlyD0D0bar", "2-prong candidates;inv. mass (#pi K) (GeV/#it{c}^{2});entries", {HistType::kTH2F, {ConfInvMassBins, {vbins, "#it{p}_{T} (GeV/#it{c})"}}});
407+
registry.add("D0D0bar_oneMassHypo/hMassVsPt", "2-prong candidates;inv. mass (#pi K) (GeV/#it{c}^{2});entries", {HistType::kTH2F, {ConfInvMassBins, {vbins, "#it{p}_{T} (GeV/#it{c})"}}});
408+
registry.add("D0D0bar_oneMassHypo/hMassVsPtFinerBinning", "2-prong candidates;inv. mass (#pi K) (GeV/#it{c}^{2});entries", {HistType::kTH2F, {ConfInvMassFinerBins, {vbins, "#it{p}_{T} (GeV/#it{c})"}}});
409409
registry.add("hDeltaPhiSigSig", "SxS correlation;#Delta#varphi (rad);counts", {HistType::kTH1F, {{10, 0.0, o2::constants::math::PI}}});
410410
registry.add("hDeltaPhiD0BgD0barSig", "B(D0)x S(D0bar) correlation;#Delta#varphi (rad);counts", {HistType::kTH1F, {{10, 0.0, o2::constants::math::PI}}});
411411
registry.add("hDeltaPhiD0SigD0barBg", "S(D0)x B(D0bar) correlation;#Delta#varphi (rad);counts", {HistType::kTH1F, {{10, 0.0, o2::constants::math::PI}}});
@@ -430,16 +430,6 @@ struct femtoUniversePairTaskTrackD0 {
430430
// loop over all D mesons
431431
for (auto const& dmeson : groupPartsAllDmesons) {
432432

433-
if (dmeson.mLambda() > 0.0f) {
434-
registry.fill(HIST("hMassVsPt"), dmeson.mLambda(), dmeson.pt());
435-
registry.fill(HIST("hMassVsPtFinerBinning"), dmeson.mLambda(), dmeson.pt());
436-
}
437-
438-
if (dmeson.mAntiLambda() > 0.0f) {
439-
registry.fill(HIST("hMassVsPt"), dmeson.mAntiLambda(), dmeson.pt());
440-
registry.fill(HIST("hMassVsPtFinerBinning"), dmeson.mAntiLambda(), dmeson.pt());
441-
}
442-
443433
registry.fill(HIST("hPtDmesonCand"), dmeson.pt());
444434
registry.fill(HIST("hPhiDmesonCand"), dmeson.phi());
445435
registry.fill(HIST("hEtaDmesonCand"), dmeson.eta());
@@ -451,7 +441,7 @@ struct femtoUniversePairTaskTrackD0 {
451441
registry.fill(HIST("hPtD0D0bar"), d0d0bar.pt());
452442

453443
if (d0d0bar.mLambda() > 0.0f && d0d0bar.mAntiLambda() < 0.0f) {
454-
registry.fill(HIST("hInvMassVsPtOnlyD0D0bar"), d0d0bar.mLambda(), d0d0bar.pt());
444+
registry.fill(HIST("D0D0bar_oneMassHypo/hMassVsPt"), d0d0bar.mLambda(), d0d0bar.pt());
455445
if (d0d0bar.mLambda() > ConfDmesons.ConfMinInvMassD0D0bar && d0d0bar.mLambda() < ConfDmesons.ConfMaxInvMassD0D0bar) {
456446
registry.fill(HIST("hInvMassD0"), d0d0bar.mLambda());
457447
}
@@ -460,7 +450,7 @@ struct femtoUniversePairTaskTrackD0 {
460450
registry.fill(HIST("hEtaD0"), d0d0bar.eta());
461451
}
462452
if (d0d0bar.mLambda() < 0.0f && d0d0bar.mAntiLambda() > 0.0f) {
463-
registry.fill(HIST("hInvMassVsPtOnlyD0D0bar"), d0d0bar.mAntiLambda(), d0d0bar.pt());
453+
registry.fill(HIST("D0D0bar_oneMassHypo/hMassVsPt"), d0d0bar.mAntiLambda(), d0d0bar.pt());
464454
if (d0d0bar.mAntiLambda() > ConfDmesons.ConfMinInvMassD0D0bar && d0d0bar.mAntiLambda() < ConfDmesons.ConfMaxInvMassD0D0bar) {
465455
registry.fill(HIST("hInvMassD0bar"), d0d0bar.mAntiLambda());
466456
}
@@ -611,15 +601,9 @@ struct femtoUniversePairTaskTrackD0 {
611601
continue;
612602
}
613603
}
614-
// // Set pT cut for D0/D0bar candidates
615-
if (ConfUsePtCutForD0D0bar) {
616-
if (d0candidate.pt() < ConfDmesons.ConfMinPtD0D0bar && d0candidate.pt() > ConfDmesons.ConfMaxPtD0D0bar) {
617-
continue;
618-
}
619-
}
620604
// // Set inv. mass cut for D0/D0bar candidates
621605
if (ConfUseMassCutForD0D0bar) {
622-
if ((d0candidate.mLambda() < ConfD0D0barSideBand.ConfSignalRegionMin && d0candidate.mLambda() > ConfD0D0barSideBand.ConfSignalRegionMax) || (d0candidate.mAntiLambda() < ConfD0D0barSideBand.ConfSignalRegionMin && d0candidate.mAntiLambda() > ConfD0D0barSideBand.ConfSignalRegionMax)) {
606+
if ((d0candidate.mLambda() < ConfD0D0barSideBand.ConfSignalRegionMin || d0candidate.mLambda() > ConfD0D0barSideBand.ConfSignalRegionMax) || (d0candidate.mAntiLambda() < ConfD0D0barSideBand.ConfSignalRegionMin || d0candidate.mAntiLambda() > ConfD0D0barSideBand.ConfSignalRegionMax)) {
623607
continue;
624608
}
625609
}
@@ -708,15 +692,9 @@ struct femtoUniversePairTaskTrackD0 {
708692
continue;
709693
}
710694
}
711-
// // Set pT cut for D0/D0bar candidates
712-
if (ConfUsePtCutForD0D0bar) {
713-
if (d0candidate.pt() < ConfDmesons.ConfMinPtD0D0bar && d0candidate.pt() > ConfDmesons.ConfMaxPtD0D0bar) {
714-
continue;
715-
}
716-
}
717695
// // Set inv. mass cut for D0/D0bar candidates
718696
if (ConfUseMassCutForD0D0bar) {
719-
if ((d0candidate.mLambda() < ConfD0D0barSideBand.ConfSignalRegionMin && d0candidate.mLambda() > ConfD0D0barSideBand.ConfSignalRegionMax) || (d0candidate.mAntiLambda() < ConfD0D0barSideBand.ConfSignalRegionMin && d0candidate.mAntiLambda() > ConfD0D0barSideBand.ConfSignalRegionMax)) {
697+
if ((d0candidate.mLambda() < ConfD0D0barSideBand.ConfSignalRegionMin || d0candidate.mLambda() > ConfD0D0barSideBand.ConfSignalRegionMax) || (d0candidate.mAntiLambda() < ConfD0D0barSideBand.ConfSignalRegionMin || d0candidate.mAntiLambda() > ConfD0D0barSideBand.ConfSignalRegionMax)) {
720698
continue;
721699
}
722700
}

0 commit comments

Comments
 (0)