From d366ecadcfd4447cbd16371c22abb75f0b402f82 Mon Sep 17 00:00:00 2001 From: Marvin Hemmer Date: Tue, 5 Aug 2025 14:32:03 +0200 Subject: [PATCH] [PWGJE,EMCAL-670] Fix MCParticle check in taskEmcExtensiveMcQa.cxx --- PWGJE/Tasks/taskEmcExtensiveMcQa.cxx | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/PWGJE/Tasks/taskEmcExtensiveMcQa.cxx b/PWGJE/Tasks/taskEmcExtensiveMcQa.cxx index 002e2f3c711..bd32d591775 100644 --- a/PWGJE/Tasks/taskEmcExtensiveMcQa.cxx +++ b/PWGJE/Tasks/taskEmcExtensiveMcQa.cxx @@ -140,18 +140,13 @@ struct TaskEmcExtensiveMcQa { /// \param mcparticle is the mcparticle we want to find the PoI type /// \param mcparticles table containing the mcparticles /// \return PoI type of the given mcparticle - template - int findPoIType(T const& mcparticle, TMCs const& mcparticles) + template + int findPoIType(T const& mcparticle) { - if (!mcparticle.has_mothers()) { - return -1; - } - - int motherid = mcparticle.mothersIds()[0]; - auto mother = mcparticles.iteratorAt(motherid); - auto it = std::find(arrPoIPDG.begin(), arrPoIPDG.end(), std::abs(mother.pdgCode())); + auto it = std::find(arrPoIPDG.begin(), arrPoIPDG.end(), std::abs(mcparticle.pdgCode())); if (it != arrPoIPDG.end()) { - return *it; + int index = std::distance(arrPoIPDG.begin(), it); + return index; } else { return PoI::kHadron; } @@ -160,7 +155,7 @@ struct TaskEmcExtensiveMcQa { Filter clusterDefinitionSelection = (o2::aod::emcalcluster::definition == clusterDefinition); /// \brief Process EMCAL clusters that are matched to a collisions - void processCollisions(CollisionEvSels const& collisions, SelectedClusters const& clusters, McParticles const& mcparticles) + void processCollisions(CollisionEvSels const& collisions, SelectedClusters const& clusters, McParticles const& /*mcparticles*/) { for (const auto& collision : collisions) { @@ -179,8 +174,8 @@ struct TaskEmcExtensiveMcQa { continue; } auto mainMcParticle = cluster.mcParticle_as()[0]; - float radius = std::hypot(mainMcParticle.px(), mainMcParticle.py()); - mHistManager.fill(HIST("hSparseClusterQA"), cluster.energy(), cluster.time(), cluster.m02(), cluster.nCells(), radius, findPoIType(mainMcParticle, mcparticles)); + float radius = std::hypot(mainMcParticle.vx(), mainMcParticle.vy()); + mHistManager.fill(HIST("hSparseClusterQA"), cluster.energy(), cluster.time(), cluster.m02(), cluster.nCells(), radius, findPoIType(mainMcParticle)); } } }