Skip to content

Commit 76cf112

Browse files
committed
ITS: findRoads reduce resizing of seeds
1 parent 72899dd commit 76cf112

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -776,6 +776,9 @@ void TrackerTraits<nLayers>::findRoads(const int iteration)
776776

777777
for (int startLevel{mTrkParams[iteration].CellsPerRoad()}; startLevel >= mTrkParams[iteration].CellMinimumLevel(); --startLevel) {
778778
CA_DEBUGGER(std::cout << "\t > Processing level " << startLevel << std::endl);
779+
auto seedFilter = [&](const CellSeed& seed) {
780+
return seed.getQ2Pt() <= 1.e3 && seed.getChi2() <= mTrkParams[0].MaxChi2NDF * ((startLevel + 2) * 2 - 5);
781+
};
779782
bounded_vector<CellSeed> trackSeeds(mMemoryPool.get());
780783
for (int startLayer{mTrkParams[iteration].CellsPerRoad() - 1}; startLayer >= startLevel - 1; --startLayer) {
781784
if ((mTrkParams[iteration].StartLayerMask & (1 << (startLayer + 2))) == 0) {
@@ -798,9 +801,10 @@ void TrackerTraits<nLayers>::findRoads(const int iteration)
798801
deepVectorClear(lastCellId); /// tame the memory peaks
799802
deepVectorClear(lastCellSeed); /// tame the memory peaks
800803

801-
std::copy_if(updatedCellSeed.begin(), updatedCellSeed.end(), std::back_inserter(trackSeeds), [&](const CellSeed& seed) {
802-
return seed.getQ2Pt() <= 1.e3 && seed.getChi2() <= mTrkParams[0].MaxChi2NDF * ((startLevel + 2) * 2 - 5);
803-
});
804+
if (!updatedCellSeed.empty()) {
805+
trackSeeds.reserve(trackSeeds.size() + std::count_if(updatedCellSeed.begin(), updatedCellSeed.end(), seedFilter));
806+
std::copy_if(updatedCellSeed.begin(), updatedCellSeed.end(), std::back_inserter(trackSeeds), seedFilter);
807+
}
804808
}
805809

806810
if (trackSeeds.empty()) {

0 commit comments

Comments
 (0)