diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx index 77dffaa07ee26ea2743a904480c553619a7b160b..3a1122d04ddbc3b4f3a3709be56d8c10938126da 100644 --- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx +++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx @@ -225,15 +225,22 @@ StatusCode CKF2::execute() { else return false; }); + allTracks.remove_if([&](const TrackInfo &p) { + return (p.nMeasurements <= 12); + }); + while (not allTracks.empty()) { TrackInfo selected = allTracks.front(); + allTracks.erase(allTracks.begin()); auto destProxy = selectedTracks.getTrack(selectedTracks.addTrack()); destProxy.copyFrom(tracks.getTrack(selected.index), true); // make sure we copy track states! - - allTracks.remove_if([&](const TrackInfo &p) { - return (p.nMeasurements <= 12) || ((p.clusterSet & selected.clusterSet).count() > 6); - }); + + if(not allTracks.empty()){ + allTracks.remove_if([&](const TrackInfo &p) { + return ((p.clusterSet & selected.clusterSet).count() > 6); + }); + } } ATH_MSG_DEBUG("There are " << selectedTracks.size() << " selected tracks for this event.");