Skip to content

Commit 3887bf2

Browse files
committed
update reserved size
1 parent e1f4f90 commit 3887bf2

1 file changed

Lines changed: 33 additions & 11 deletions

File tree

PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1669,20 +1669,42 @@ struct AnalysisSameEventPairing {
16691669
uint32_t mcDecision = static_cast<uint32_t>(0);
16701670
bool isCorrectAssoc_leg1 = false;
16711671
bool isCorrectAssoc_leg2 = false;
1672-
dielectronList.reserve(1);
1673-
// dimuonList.reserve(1);
1674-
dielectronsExtraList.reserve(1);
1675-
// dimuonsExtraList.reserve(1);
1676-
dielectronInfoList.reserve(1);
1677-
dileptonInfoList.reserve(1);
1672+
1673+
// estimate reserved size
1674+
int64_t reserveSize = 0;
1675+
for (auto& event : events) {
1676+
if (event.isEventSelected_bit(0)) {
1677+
auto groupedAssocs = assocs.sliceBy(preslice, event.globalIndex());
1678+
reserveSize += (groupedAssocs.size() * (groupedAssocs.size() - 1)) / 2; // n choose 2 combinations
1679+
}
1680+
}
1681+
1682+
dielectronList.reserve(reserveSize);
1683+
dielectronsExtraList.reserve(reserveSize);
1684+
dielectronInfoList.reserve(reserveSize);
1685+
dileptonInfoList.reserve(reserveSize);
16781686
if (fConfigOptions.flatTables.value) {
1679-
dielectronAllList.reserve(1);
1680-
// dimuonAllList.reserve(1);
1687+
dielectronAllList.reserve(reserveSize);
16811688
}
16821689
if (fConfigOptions.fConfigMiniTree) {
1683-
dileptonMiniTreeGen.reserve(1);
1684-
dileptonMiniTreeRec.reserve(1);
1685-
}
1690+
dileptonMiniTreeGen.reserve(reserveSize);
1691+
dileptonMiniTreeRec.reserve(reserveSize);
1692+
}
1693+
1694+
// dielectronList.reserve(1);
1695+
// // dimuonList.reserve(1);
1696+
// dielectronsExtraList.reserve(1);
1697+
// // dimuonsExtraList.reserve(1);
1698+
// dielectronInfoList.reserve(1);
1699+
// dileptonInfoList.reserve(1);
1700+
// if (fConfigOptions.flatTables.value) {
1701+
// dielectronAllList.reserve(1);
1702+
// // dimuonAllList.reserve(1);
1703+
// }
1704+
// if (fConfigOptions.fConfigMiniTree) {
1705+
// dileptonMiniTreeGen.reserve(1);
1706+
// dileptonMiniTreeRec.reserve(1);
1707+
// }
16861708
constexpr bool eventHasQvector = ((TEventFillMap & VarManager::ObjTypes::CollisionQvect) > 0);
16871709
constexpr bool trackHasCov = ((TTrackFillMap & VarManager::ObjTypes::TrackCov) > 0);
16881710

0 commit comments

Comments
 (0)