@@ -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