Skip to content

Commit 77cdd75

Browse files
basiachBarbara Chytla
andauthored
[PWGCF] FemtoUniverse - Adding centrality for MC cascades and a PDG histogram (#11517)
Co-authored-by: Barbara Chytla <barbara.chytla@cern.ch>
1 parent ca6ee0e commit 77cdd75

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2336,6 +2336,47 @@ struct FemtoUniverseProducerTask {
23362336
}
23372337
PROCESS_SWITCH(FemtoUniverseProducerTask, processTruthAndFullMCCasc, "Provide both MC truth and reco for tracks and Cascades", false);
23382338

2339+
void processTruthAndFullMCCentRun3Casc(
2340+
aod::McCollisions const& mccols,
2341+
aod::McParticles const& mcParticles,
2342+
aod::FemtoFullCollisionCentRun3MCs const& collisions,
2343+
soa::Filtered<soa::Join<aod::FemtoFullTracks, aod::McTrackLabels>> const& tracks,
2344+
soa::Join<o2::aod::CascDatas, aod::McCascLabels> const& fullCascades,
2345+
aod::BCsWithTimestamps const&)
2346+
{
2347+
2348+
// recos
2349+
std::set<int> recoMcIds;
2350+
for (const auto& col : collisions) {
2351+
auto groupedTracks = tracks.sliceBy(perCollisionTracks, col.globalIndex());
2352+
auto groupedCascParts = fullCascades.sliceBy(perCollisionCascs, col.globalIndex());
2353+
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
2354+
const auto colcheck = fillCollisionsCentRun3<true>(col);
2355+
if (colcheck) {
2356+
fillTracks<true>(groupedTracks);
2357+
fillCascade<true>(col, groupedCascParts, groupedTracks);
2358+
}
2359+
for (const auto& track : groupedTracks) {
2360+
if (trackCuts.isSelectedMinimal(track))
2361+
recoMcIds.insert(track.mcParticleId());
2362+
}
2363+
}
2364+
2365+
// truth
2366+
for (const auto& mccol : mccols) {
2367+
auto groupedCollisions = collisions.sliceBy(recoCollsPerMCCollCentPbPb, mccol.globalIndex());
2368+
for (const auto& col : groupedCollisions) {
2369+
const auto colcheck = fillMCTruthCollisionsCentRun3(col); // fills the reco collisions for mc collision
2370+
if (colcheck) {
2371+
auto groupedMCParticles = mcParticles.sliceBy(perMCCollision, mccol.globalIndex());
2372+
outputCollExtra(1.0, 1.0);
2373+
fillParticles<decltype(groupedMCParticles), true, true>(groupedMCParticles, recoMcIds); // fills mc particles
2374+
}
2375+
}
2376+
}
2377+
}
2378+
PROCESS_SWITCH(FemtoUniverseProducerTask, processTruthAndFullMCCentRun3Casc, "Provide both MC truth and reco for tracks and cascades with centrality", false);
2379+
23392380
Preslice<soa::Join<aod::HfCand2Prong, aod::HfCand2ProngMcRec, aod::HfSelD0, aod::HfMlD0>> perCollisionD0s = aod::track::collisionId;
23402381
void processTrackD0MC(aod::McCollisions const& mccols,
23412382
aod::TracksWMc const&,

PWGCF/FemtoUniverse/Tasks/femtoUniverseEfficiencyBase.cxx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ struct FemtoUniverseEfficiencyBase {
160160
trackHistoPartOneRec.init(&qaRegistry, confTempFitVarpTBins, confTempFitVarDCABins, 0, confPDGCodePartOne, confIsDebug);
161161
registryMCOrigin.add("part1/hPt", " ;#it{p}_{T} (GeV/c); Entries", {HistType::kTH1F, {{240, 0, 6}}});
162162
registryPDG.add("part1/PDGvspT", "PDG;#it{p}_{T} (GeV/c); PDG", {HistType::kTH2F, {{500, 0, 5}, {16001, -8000.5, 8000.5}}});
163+
registryPDG.add("part1/PDGvspTall", "PDG;#it{p}_{T} (GeV/c); PDG", {HistType::kTH2F, {{500, 0, 5}, {16001, -8000.5, 8000.5}}});
163164
if (confParticleTypePartOne == uint8_t(aod::femtouniverseparticle::ParticleType::kV0)) {
164165
trackHistoV0OneRec.init(&qaRegistry, confTempFitVarpTBins, confTempFitVarCPABins, 0, confPDGCodePartOne, confIsDebug);
165166
trackHistoV0OneChildPosRec.init(&qaRegistry, confTempFitVarpTBins, confTempFitVarDCABins, 0, 0, confIsDebug, "posChildV0_1");
@@ -169,6 +170,7 @@ struct FemtoUniverseEfficiencyBase {
169170
}
170171

171172
registryPDG.add("part2/PDGvspT", "PDG;#it{p}_{T} (GeV/c); PDG", {HistType::kTH2F, {{500, 0, 5}, {16001, -8000.5, 8000.5}}});
173+
registryPDG.add("part2/PDGvspTall", "PDG;#it{p}_{T} (GeV/c); PDG", {HistType::kTH2F, {{500, 0, 5}, {16001, -8000.5, 8000.5}}});
172174
if (!confIsSame) {
173175
trackHistoPartTwoGen.init(&qaRegistry, confTempFitVarpTBins, confTempFitVarPDGBins, 0, confPDGCodePartTwo, false);
174176
trackHistoPartTwoRec.init(&qaRegistry, confTempFitVarpTBins, confTempFitVarDCABins, 0, confPDGCodePartTwo, confIsDebug);
@@ -373,6 +375,8 @@ struct FemtoUniverseEfficiencyBase {
373375
continue;
374376
}
375377

378+
registryPDG.fill(HIST("part1/PDGvspTall"), part.pt(), mcParticle.pdgMCTruth());
379+
376380
if (!(std::abs(mcParticle.pdgMCTruth()) == std::abs(confPDGCodePartOne))) {
377381
continue;
378382
}
@@ -397,6 +401,8 @@ struct FemtoUniverseEfficiencyBase {
397401
continue;
398402
}
399403

404+
registryPDG.fill(HIST("part2/PDGvspTall"), part.pt(), mcParticle.pdgMCTruth());
405+
400406
if (!(std::abs(mcParticle.pdgMCTruth()) == std::abs(confPDGCodePartTwo))) {
401407
continue;
402408
}

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
631631
// MC truth
632632
void processSameEventMCgen(const FilteredFDCollision& col, [[maybe_unused]] const FemtoFullParticles& parts)
633633
{
634+
const int multCol = confUseCent ? col.multV0M() : col.multNtr();
635+
634636
auto groupPartsOne = partsOneMCgen->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache);
635637
auto groupPartsTwo = partsTwoMCgen->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache);
636638

@@ -665,7 +667,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
665667
int pdgCodeCasc = static_cast<int>(p2.pidCut());
666668
if ((confCascType1 == 0 && pdgCodeCasc != 3334) || (confCascType1 == 2 && pdgCodeCasc != -3334) || (confCascType1 == 1 && pdgCodeCasc != 3312) || (confCascType1 == 3 && pdgCodeCasc != -3312))
667669
continue;
668-
sameEventCont.setPair<false>(p1, p2, col.multNtr(), confUse3D, 1.0f);
670+
sameEventCont.setPair<false>(p1, p2, multCol, confUse3D, 1.0f);
669671
}
670672
}
671673
}
@@ -676,6 +678,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
676678
ColumnBinningPolicy<aod::collision::PosZ, aod::femtouniversecollision::MultNtr> colBinning{{confVtxBins, confMultBins}, true};
677679

678680
for (const auto& [collision1, collision2] : soa::selfCombinations(colBinning, 5, -1, cols, cols)) {
681+
const int multCol = confUseCent ? collision1.multV0M() : collision1.multNtr();
679682

680683
auto groupPartsOne = partsOneMCgen->sliceByCached(aod::femtouniverseparticle::fdCollisionId, collision1.globalIndex(), cache);
681684
auto groupPartsTwo = partsTwoMCgen->sliceByCached(aod::femtouniverseparticle::fdCollisionId, collision2.globalIndex(), cache);
@@ -692,7 +695,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
692695
int pdgCodeCasc = static_cast<int>(p2.pidCut());
693696
if ((confCascType1 == 0 && pdgCodeCasc != 3334) || (confCascType1 == 2 && pdgCodeCasc != -3334) || (confCascType1 == 1 && pdgCodeCasc != 3312) || (confCascType1 == 3 && pdgCodeCasc != -3312))
694697
continue;
695-
mixedEventCont.setPair<false>(p1, p2, collision1.multNtr(), confUse3D, 1.0f);
698+
mixedEventCont.setPair<false>(p1, p2, multCol, confUse3D, 1.0f);
696699
}
697700
}
698701
}

0 commit comments

Comments
 (0)