From e0341476b4f34559050bdf165ddb5572a493584c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Tiek=C3=B6tter?= Date: Mon, 31 Aug 2026 17:41:16 +0200 Subject: [PATCH 1/2] Fix asymmetric pairing ditrack reserve size --- ALICE3/DataModel/ReducedTablesAlice3.h | 3 +++ ALICE3/TableProducer/alice3DqTableMaker.cxx | 2 +- ALICE3/Tasks/alice3DqEfficiency.cxx | 21 ++++++++++++++++++--- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ALICE3/DataModel/ReducedTablesAlice3.h b/ALICE3/DataModel/ReducedTablesAlice3.h index ee3501258f5..02fab89707e 100644 --- a/ALICE3/DataModel/ReducedTablesAlice3.h +++ b/ALICE3/DataModel/ReducedTablesAlice3.h @@ -25,11 +25,14 @@ #include "ALICE3/DataModel/OTFTOF.h" #include "ALICE3/DataModel/collisionAlice3.h" #include "Common/DataModel/Centrality.h" +#include "Common/DataModel/Multiplicity.h" #include #include #include +#include <> + #include #include diff --git a/ALICE3/TableProducer/alice3DqTableMaker.cxx b/ALICE3/TableProducer/alice3DqTableMaker.cxx index 355da2af7c9..075873899e3 100644 --- a/ALICE3/TableProducer/alice3DqTableMaker.cxx +++ b/ALICE3/TableProducer/alice3DqTableMaker.cxx @@ -445,7 +445,7 @@ struct Alice3DqTableMaker { (dynamic_cast(fStatsList->At(0)))->Fill(3.0, static_cast(o2::aod::evsel::kNsel)); // Fill historams after event cuts - fHistMan->FillHistClass("Event_AfterCuts", VarManager::fgValues); + fHistMan->FillHistClass("Event_AfterCuts", dqefficiency_helpers::varValues()); event(collision.posX(), collision.posY(), collision.posZ(), collision.numContrib(), collision.collisionTime(), collision.collisionTimeRes(), collision.multDensity()); diff --git a/ALICE3/Tasks/alice3DqEfficiency.cxx b/ALICE3/Tasks/alice3DqEfficiency.cxx index e5fcf09da51..f276a8803b5 100644 --- a/ALICE3/Tasks/alice3DqEfficiency.cxx +++ b/ALICE3/Tasks/alice3DqEfficiency.cxx @@ -1920,15 +1920,30 @@ struct Alice3DqEfficiencyAnalysisAsymmetricPairing { } // Function to run same event pairing with asymmetric pairs (e.g. kaon-pion) - void runAsymmetricPairing(MyEventsVtxCovSelected const& events, PresliceUnsorted& preslice, MyBarrelAssocs const& /*assocs*/, MyBarrelTracksWithCovWithAmbiguities const& /*tracks*/, ReA3MCEvents const& /*mcEvents*/, ReA3MCTracks const& /*mcTracks*/) + void runAsymmetricPairing(MyEventsVtxCovSelected const& events, PresliceUnsorted& preslice, MyBarrelAssocs const& assocs, MyBarrelTracksWithCovWithAmbiguities const& /*tracks*/, ReA3MCEvents const& /*mcEvents*/, ReA3MCTracks const& /*mcTracks*/) { fPairCount.clear(); int sign1 = 0; int sign2 = 0; uint32_t mcDecision = 0; - ditrackList.reserve(1); - ditrackExtraList.reserve(1); + + int64_t reserveSize = 0; + for (auto const& event : events) { + if (event.isEventSelected_bit(0)) { + auto groupedAssocs = assocs.sliceBy(preslice, event.globalIndex()); + size_t nGood = 0; + for (auto const& t : groupedAssocs) { + if (t.isBarrelSelected_raw() > 0u) { + nGood++; + } + } + reserveSize += nGood * (nGood - 1) / 2; + } + } + + ditrackList.reserve(reserveSize); + ditrackExtraList.reserve(reserveSize); for (const auto& event : events) { if (!event.isEventSelected_bit(0)) { From ab315bb01215cb1ef2f97649003dbeb5a514d3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Tiek=C3=B6tter?= Date: Mon, 31 Aug 2026 17:43:27 +0200 Subject: [PATCH 2/2] Remove empty include --- ALICE3/DataModel/ReducedTablesAlice3.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/ALICE3/DataModel/ReducedTablesAlice3.h b/ALICE3/DataModel/ReducedTablesAlice3.h index 02fab89707e..f11becd0945 100644 --- a/ALICE3/DataModel/ReducedTablesAlice3.h +++ b/ALICE3/DataModel/ReducedTablesAlice3.h @@ -31,8 +31,6 @@ #include #include -#include <> - #include #include