From f0930ec16fcc59b58750329188ddef192a8b3195 Mon Sep 17 00:00:00 2001
From: Savanna Marie Shaw <savanna.marie.shaw@cern.ch>
Date: Tue, 30 Jun 2020 09:06:44 +0000
Subject: [PATCH] Protect against invalid detector elements in MDT decoding

Adding some protection against invalid detector elements in the MDT decoding which arise when trying to access chambers that don't exist when running the NSW trigger test. Fixes ATR-21606.
---
 .../MuonMDT_CnvTools/src/MdtRdoToPrepDataToolCore.cxx        | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataToolCore.cxx b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataToolCore.cxx
index 5ef7c5f25e3..d7ebd8e5deb 100644
--- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataToolCore.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataToolCore.cxx
@@ -221,7 +221,10 @@ bool Muon::MdtRdoToPrepDataToolCore::handlePRDHash( IdentifierHash hash, const M
   if (m_BMEpresent) { // after BMEs were installed, the RDOs are indexed by the detectorElement hash of a multilayer
     Identifier elementId;
     IdContext tmp_context = m_idHelperSvc->mdtIdHelper().module_context();
-    m_idHelperSvc->mdtIdHelper().get_id(hash, elementId, &tmp_context);
+    if(m_idHelperSvc->mdtIdHelper().get_id(hash, elementId, &tmp_context)){
+      ATH_MSG_DEBUG("Found invalid elementId");
+      return false;
+    }
 
     Identifier multilayerId = m_idHelperSvc->mdtIdHelper().multilayerID(elementId, 1); //first multilayer
     IdentifierHash multilayerHash;
-- 
GitLab