diff --git a/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TestMCASTTool.cxx b/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TestMCASTTool.cxx
index 7b42a48f473164b82345e2f17fbd8e0d6054e22d..2212f88f6f0c40751a717b3ad57b8e2a8bafbcf5 100644
--- a/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TestMCASTTool.cxx
+++ b/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/src/TestMCASTTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "TestMCASTTool.h"
@@ -8,6 +8,7 @@
 
 #include "xAODMuon/MuonAuxContainer.h"
 #include "xAODMuon/MuonContainer.h"
+#include "AthContainers/ConstAccessor.h"
 
 namespace CP {
 
@@ -117,11 +118,15 @@ namespace CP {
 
                 std::string syst_name = (*sysItr).name();
 
-                m_SelCategoryRaw = mu->auxdata<int>("raw_MCaST_Category");
-                m_SelCategory = mu->auxdata<int>("MCaST_Category");
+                static const SG::ConstAccessor<int> raw_MCaST_CategoryAcc ("raw_MCaST_Category");
+                static const SG::ConstAccessor<int> MCaST_CategoryAcc ("MCaST_Category");
+                static const SG::ConstAccessor<float> InnerDetectorPtAcc ("InnerDetectorPt");
+                static const SG::ConstAccessor<float> MuonSpectrometerPtAcc ("MuonSpectrometerPt");
+                m_SelCategoryRaw = raw_MCaST_CategoryAcc (*mu);
+                m_SelCategory = MCaST_CategoryAcc (*mu);
                 m_Combined->SetCalibPt(mu->pt(), syst_name);
-                m_InnerDet->SetCalibPt(mu->auxdata<float>("InnerDetectorPt"), syst_name);
-                m_MSExtr->SetCalibPt(mu->auxdata<float>("MuonSpectrometerPt"), syst_name);
+                m_InnerDet->SetCalibPt(InnerDetectorPtAcc (*mu), syst_name);
+                m_MSExtr->SetCalibPt(MuonSpectrometerPtAcc (*mu), syst_name);
                 delete mu;
             }
 
diff --git a/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/util/MCAST_Tester.cxx b/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/util/MCAST_Tester.cxx
index 076d1b7098a6c9610c9f72877718880a9f843472..46f999997577eafacf231deff44f20ad86359424 100644
--- a/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/util/MCAST_Tester.cxx
+++ b/PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonMomentumCorrections/util/MCAST_Tester.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 // System include(s):
@@ -35,6 +35,7 @@
 #include "xAODCore/tools/ReadStats.h"
 #include "xAODEventInfo/EventInfo.h"
 #include "xAODMuon/MuonContainer.h"
+#include "AthContainers/ConstAccessor.h"
 
 ANA_MSG_HEADER(msgMMC)
 ANA_MSG_SOURCE(msgMMC, "MCASTTest")
@@ -346,6 +347,8 @@ int main(int argc, char* argv[]) {
                          muon->muonType());
 
                 // either use the correctedCopy call or correct the muon object itself
+                static const SG::ConstAccessor<float> InnerDetectorPtAcc ("InnerDetectorPt");
+                static const SG::ConstAccessor<float> MuonSpectrometerPtAcc ("MuonSpectrometerPt");
                 if (useCorrectedCopy) {
                     // ::: Create a calibrated muon:
                     xAOD::Muon* mu = 0;
@@ -354,8 +357,8 @@ int main(int argc, char* argv[]) {
                         continue;
                     }
                     CorrPtCB = mu->pt();
-                    CorrPtID = mu->auxdata<float>("InnerDetectorPt");
-                    CorrPtMS = mu->auxdata<float>("MuonSpectrometerPt");
+                    CorrPtID = InnerDetectorPtAcc (*mu);
+                    CorrPtMS = MuonSpectrometerPtAcc (*mu);
 
                     
                     sysTreeMap[*sysListItr]->Fill();
@@ -368,8 +371,8 @@ int main(int argc, char* argv[]) {
                         continue;
                     }
                     CorrPtCB = muon->pt();
-                    CorrPtID = muon->auxdata<float>("InnerDetectorPt");
-                    CorrPtMS = muon->auxdata<float>("MuonSpectrometerPt");
+                    CorrPtID = InnerDetectorPtAcc (*muon);
+                    CorrPtMS = MuonSpectrometerPtAcc (*muon);
                     ExpResoCB = corrTool->expectedResolution("CB", *muon, true);
                     ExpResoID = corrTool->expectedResolution("ID", *muon, true);
                     ExpResoMS = corrTool->expectedResolution("MS", *muon, true);
diff --git a/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthFilterTool.cxx b/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthFilterTool.cxx
index 30e8f52482f3d0fc83595df0f634ec980c6db0e7..a8d98335b7cb5879f1ce1e3baf878c7d2aff4680 100644
--- a/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthFilterTool.cxx
+++ b/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthFilterTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "InDetTrackSystematicsTools/InDetTrackTruthFilterTool.h"
@@ -11,6 +11,7 @@
 #include "xAODTruth/TruthParticleContainer.h"
 #include "xAODTruth/TruthVertex.h"
 #include "xAODTruth/TruthVertexContainer.h"
+#include "AthContainers/ConstAccessor.h"
 
 #include "PathResolver/PathResolver.h"
 
@@ -282,12 +283,18 @@ namespace InDet {
     }
 
     if(m_doLRTSystematics) {
-      const ElementLink< xAOD::TruthParticleContainer > &truthParticleLink = track->auxdata< ElementLink< xAOD::TruthParticleContainer > >("truthParticleLink");
+      static const SG::ConstAccessor<ElementLink< xAOD::TruthParticleContainer > >
+        truthParticleLinkAcc ("truthParticleLink");
+      const ElementLink< xAOD::TruthParticleContainer > &truthParticleLink =
+        truthParticleLinkAcc (*track);
       if(truthParticleLink.isValid()) {
         const xAOD::TruthParticle *truthParticle = *truthParticleLink;
         double eta = truthParticle->eta();
 
-        const ElementLink< xAOD::TruthVertexContainer > &truthVertexLink = truthParticle->auxdata< ElementLink< xAOD::TruthVertexContainer > >("prodVtxLink");
+        static const SG::ConstAccessor<ElementLink< xAOD::TruthVertexContainer > >
+          prodVtxLinkAcc ("prodVtxLink");
+        const ElementLink< xAOD::TruthVertexContainer > &truthVertexLink =
+          prodVtxLinkAcc (*truthParticle);
         if(truthVertexLink.isValid()) {
           const xAOD::TruthVertex *truthVertex = *truthVertexLink;
           double prodR = truthVertex->perp();
diff --git a/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthOriginTool.cxx b/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthOriginTool.cxx
index 770f254409d2f1a87d2dbcf1d72f3506a8227868..69a850ecf302627a4fd2f6cae364c498b2d2fd99 100644
--- a/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthOriginTool.cxx
+++ b/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InDetTrackTruthOriginTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "InDetTrackSystematicsTools/InDetTrackTruthOriginTool.h"
@@ -8,6 +8,7 @@
 #include "xAODTruth/TruthParticleContainer.h"
 #include "xAODTruth/TruthEventContainer.h"
 #include "TruthUtils/MagicNumbers.h"
+#include "AthContainers/ConstAccessor.h"
 
 #include <math.h>
 
@@ -42,12 +43,14 @@ namespace InDet {
       // in practice, all tracks seem to have a truth link, but we need to also
       // check whether it's valid
       typedef ElementLink<xAOD::TruthParticleContainer> TruthLink;
-      if ( !track->isAvailable<TruthLink>("truthParticleLink") ) { 
+      static const SG::ConstAccessor<TruthLink>
+        truthParticleLinkAcc ("truthParticleLink");
+      if ( !truthParticleLinkAcc.isAvailable(*track) ) { 
         return nullptr;
       }
 
       // retrieve the link and check its validity
-      const TruthLink &link = track->auxdata<TruthLink>("truthParticleLink");
+      const TruthLink &link = truthParticleLinkAcc(*track);
 
       // a missing or invalid link implies truth particle has been dropped from 
       // the truth record at some stage - probably it was from pilup which by
diff --git a/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InclusiveTrackFilterTool.cxx b/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InclusiveTrackFilterTool.cxx
index 0af38a9003b5342487849ba67a954f662a6a34ea..b0a838b1b6ceb296ce362b0ebb30eaa4e8afcb15 100644
--- a/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InclusiveTrackFilterTool.cxx
+++ b/PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools/Root/InclusiveTrackFilterTool.cxx
@@ -1,9 +1,10 @@
 /*
-  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "InDetTrackSystematicsTools/InclusiveTrackFilterTool.h"
 #include "xAODTracking/TrackParticleContainer.h"
+#include "AthContainers/ConstAccessor.h"
 
 namespace InDet {
 
@@ -50,7 +51,8 @@ namespace InDet {
       return false;
     }
 
-    if (track->isAvailable<unsigned long>("patternRecoInfo") ) {
+    static const SG::ConstAccessor<unsigned long> patternRecoInfoAcc ("patternRecoInfo");
+    if (patternRecoInfoAcc.isAvailable(*track) ) {
       const std::bitset<xAOD::NumberOfTrackRecoInfo> patternReco = track->patternRecoInfo();
       if(not patternReco.test(49)) {
         ATH_MSG_DEBUG( "Applying LRT uncertainties to non-LRT track! Skipping" );