From bb1802aa4798e050770ae67db1635f687721d50b Mon Sep 17 00:00:00 2001 From: Will Leight <wleight@cern.ch> Date: Tue, 9 Feb 2021 14:15:00 +0100 Subject: [PATCH] Fix for ATLASRECTS-6016 This essentially reverts a small part of the recent cleanup to ensure that the calo exit parameters are found correctly in standalone fits. --- .../src/CombinedMuonTrackBuilder.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx index da1f44d2a701..cf74f5a80d12 100755 --- a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx +++ b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx @@ -1406,13 +1406,13 @@ CombinedMuonTrackBuilder::standaloneFit(const Trk::Track& inputSpectrometerTrack // pRatio is the ratio of fitted to start momentum value at calo exit // find parameters at calo exit const Trk::TrackParameters* params_pRat = nullptr; - - for (const auto& s : *extrapolated->trackStateOnSurfaces()){ - if (s->trackParameters() && !m_calorimeterVolume->inside(s->trackParameters()->position()) && s->type(Trk::TrackStateOnSurface::Perigee)){ - params_pRat = s->trackParameters(); - break; - } - } + auto s = extrapolated->trackStateOnSurfaces()->begin(); + while (!(**s).trackParameters() || m_calorimeterVolume->inside((**s).trackParameters()->position())) { + if ((**s).trackParameters() && !(**s).type(Trk::TrackStateOnSurface::Perigee)) + params_pRat = (**s).trackParameters(); + ++s; + } + // extrapolated fit with missing calo parameters - this should never happen! if (params_pRat) { pRatio = momentum / parameters->momentum().mag(); -- GitLab