File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2011,9 +2011,21 @@ struct AnalysisSameEventPairing {
20112011 for (auto & event : events) {
20122012 if (event.isEventSelected_bit (0 )) {
20132013 auto groupedAssocs = assocs.sliceBy (preslice, event.globalIndex ());
2014- reserveSize += (groupedAssocs.size () * (groupedAssocs.size () - 1 )) / 2 ; // n choose 2 combinations
2014+ size_t nGood = 0 ;
2015+ for (auto const & t : groupedAssocs) {
2016+ if constexpr (TPairType == VarManager::kDecayToEE ) {
2017+ if (t.isBarrelSelected_raw ()) {
2018+ nGood++;
2019+ }
2020+ } else if constexpr (TPairType == VarManager::kDecayToMuMu ) {
2021+ if (t.isMuonSelected_raw ()) {
2022+ nGood++;
2023+ }
2024+ }
2025+ }
2026+ reserveSize += nGood * (nGood - 1 ) / 2 ;
20152027 }
2016- }
2028+ }
20172029
20182030 dielectronList.reserve (reserveSize);
20192031 dimuonList.reserve (reserveSize);
Original file line number Diff line number Diff line change @@ -1675,9 +1675,22 @@ struct AnalysisSameEventPairing {
16751675 for (auto & event : events) {
16761676 if (event.isEventSelected_bit (0 )) {
16771677 auto groupedAssocs = assocs.sliceBy (preslice, event.globalIndex ());
1678- reserveSize += (groupedAssocs.size () * (groupedAssocs.size () - 1 )) / 2 ; // n choose 2 combinations
1678+ size_t nGood = 0 ;
1679+ for (auto const & t : groupedAssocs) {
1680+ if constexpr (TPairType == VarManager::kDecayToEE ) {
1681+ if (t.isBarrelSelected_raw ()) {
1682+ nGood++;
1683+ }
1684+ }
1685+ /* else if constexpr (TPairType == VarManager::kDecayToMuMu) {
1686+ if (t.isMuonSelected_raw()) {
1687+ nGood++;
1688+ }
1689+ }*/
1690+ }
1691+ reserveSize += nGood * (nGood - 1 ) / 2 ;
16791692 }
1680- }
1693+ }
16811694
16821695 dielectronList.reserve (reserveSize);
16831696 dielectronsExtraList.reserve (reserveSize);
Original file line number Diff line number Diff line change @@ -1849,7 +1849,6 @@ struct AnalysisSameEventPairing {
18491849 reserveSize += nGood * (nGood - 1 ) / 2 ;
18501850 }
18511851 }
1852- LOG (info) << " Reserving capacity for " << reserveSize << " pairs in the output tables" ;
18531852
18541853 dielectronList.reserve (reserveSize);
18551854 dimuonList.reserve (reserveSize);
Original file line number Diff line number Diff line change @@ -1642,9 +1642,17 @@ struct AnalysisSameEventPairing {
16421642 for (auto & event : events) {
16431643 if (event.isEventSelected_bit (0 )) {
16441644 auto groupedAssocs = assocs.sliceBy (preslice, event.globalIndex ());
1645- reserveSize += (groupedAssocs.size () * (groupedAssocs.size () - 1 )) / 2 ; // n choose 2 combinations
1645+ size_t nGood = 0 ;
1646+ for (auto const & t : groupedAssocs) {
1647+ if constexpr (TPairType == VarManager::kDecayToEE ) {
1648+ if (t.isBarrelSelected_raw ()) {
1649+ nGood++;
1650+ }
1651+ }
1652+ }
1653+ reserveSize += nGood * (nGood - 1 ) / 2 ;
16461654 }
1647- }
1655+ }
16481656
16491657 dielectronList.reserve (reserveSize);
16501658 dielectronsExtraList.reserve (reserveSize);
You can’t perform that action at this time.
0 commit comments