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