Skip to content

Commit 4a17754

Browse files
JifengDengJifeng Dengalibuild
authored
[PWGDQ] Fix table reservation problem (#17230)
Co-authored-by: Jifeng Deng <jifeng.deng@cern.ch> Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 413e906 commit 4a17754

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

PWGDQ/Tasks/tableReader_withAssoc.cxx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3496,7 +3496,7 @@ struct AnalysisAsymmetricPairing {
34963496

34973497
// Template function to run same event pairing with asymmetric pairs (e.g. kaon-pion)
34983498
template <bool TTwoProngFitter, int TPairType, uint32_t TEventFillMap, uint32_t TTrackFillMap, typename TEvents, typename TTrackAssocs, typename TTracks>
3499-
void runAsymmetricPairing(TEvents const& events, Preslice<TTrackAssocs>& preslice, TTrackAssocs const& assocs, TTracks const& /*tracks*/)
3499+
void runAsymmetricPairing(TEvents const& events, Preslice<TTrackAssocs>& preslice, TTrackAssocs const& /*assocs*/, TTracks const& /*tracks*/)
35003500
{
35013501
fPairCount.clear();
35023502

@@ -3509,8 +3509,23 @@ struct AnalysisAsymmetricPairing {
35093509

35103510
int sign1 = 0;
35113511
int sign2 = 0;
3512-
ditrackList.reserve(assocs.size());
3513-
ditrackExtraList.reserve(assocs.size());
3512+
3513+
// Reserve capacity for the output tables
3514+
int64_t reserveSize = 0;
3515+
for (auto const& event : events) {
3516+
if (!event.isEventSelected_bit(0)) {
3517+
continue;
3518+
}
3519+
if (fConfigRemoveCollSplittingCandidates.value && event.isEventSelected_bit(2)) {
3520+
continue;
3521+
}
3522+
auto groupedLegAAssocs = legACandidateAssocs.sliceBy(preslice, event.globalIndex());
3523+
auto groupedLegBAssocs = legBCandidateAssocs.sliceBy(preslice, event.globalIndex());
3524+
reserveSize += static_cast<int64_t>(groupedLegAAssocs.size()) *
3525+
static_cast<int64_t>(groupedLegBAssocs.size());
3526+
}
3527+
ditrackList.reserve(reserveSize);
3528+
ditrackExtraList.reserve(reserveSize);
35143529

35153530
constexpr bool trackHasCov = ((TTrackFillMap & VarManager::ObjTypes::TrackCov) > 0 || (TTrackFillMap & VarManager::ObjTypes::ReducedTrackBarrelCov) > 0);
35163531

0 commit comments

Comments
 (0)