Skip to content

Commit f5eca74

Browse files
author
Barbara Chytla
committed
Adding a process for cascades with centrality and a PDG histogram
1 parent 125d2de commit f5eca74

File tree

3 files changed

+53
-2
lines changed

3 files changed

+53
-2
lines changed

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

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

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