From 35e2c1e2513770b7fb5c468e1cb0b3e016ed3369 Mon Sep 17 00:00:00 2001
From: Susumu Oda <susumu.oda@cern.ch>
Date: Wed, 20 Mar 2019 16:23:51 +0000
Subject: [PATCH] Cleanups of SCT_Monitoring package (ATLASDQ-679)

---
 .../share/InDetMonitoringSCT.py               |  85 +--
 .../SCT_Monitoring/SCTErrMonTool.h            |   9 +-
 .../SCT_Monitoring/SCTHitEffMonTool.h         |  18 +-
 .../SCT_Monitoring/SCTHitsNoiseMonTool.h      |  24 +-
 .../SCT_Monitoring/SCTLorentzMonTool.h        |   5 +-
 .../SCT_Monitoring/SCTMotherTrigMonTool.h     |   3 +-
 .../SCT_Monitoring/SCTRatioNoiseMonTool.h     |   6 +-
 .../SCT_Monitoring/SCTTracksMonTool.h         |   6 +-
 .../SCT_Monitoring/src/SCTErrMonTool.cxx      | 193 +++--
 .../SCT_Monitoring/src/SCTHitEffMonTool.cxx   | 673 ++++++++----------
 .../src/SCTHitsNoiseMonTool.cxx               | 234 ++----
 .../SCT_Monitoring/src/SCTLorentzMonTool.cxx  |  34 +-
 .../src/SCTMotherTrigMonTool.cxx              |   3 +-
 .../src/SCTRatioNoiseMonTool.cxx              |  60 +-
 .../SCT_Monitoring/src/SCTTracksMonTool.cxx   | 147 ++--
 .../SCT_Monitoring/src/cArrayUtilities.h      |  79 --
 16 files changed, 609 insertions(+), 970 deletions(-)
 delete mode 100644 InnerDetector/InDetMonitoring/SCT_Monitoring/src/cArrayUtilities.h

diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringSCT.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringSCT.py
index ccc64194574..79733958750 100755
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringSCT.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringSCT.py
@@ -6,45 +6,35 @@ from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
 # These lines were previously in SCT_Monitoring_ConditionsAccess.py
 ########################################################################
 
-doTriggger_InDetSCTHitsTool = False
+tracksName = (InDetKeys.SCTTracks() if InDetFlags.doTrackSegmentsSCT() else InDetKeys.UnslimmedTracks())
+
+doTriggger = False
 TrigDecisionTool_InDetSCTHitsTool = ""
 if globalflags.DataSource == "data":
   from RecExConfig.RecFlags import rec
   if rec.doTrigger():
-    doTriggger_InDetSCTHitsTool = True
+    doTriggger = True
     TrigDecisionTool_InDetSCTHitsTool = DQMonFlags.nameTrigDecTool()
 from SCT_Monitoring.SCT_MonitoringConf import SCTHitsNoiseMonTool
-InDetSCTHitsTool = SCTHitsNoiseMonTool ( name                         = "InDetSCTHitsNoiseMonTool",
-                                         OutputLevel                  = 4,
-                                         doHitmapHistos               = False,
-                                         CheckRate                    = 1000,
-                                         doPositiveEndcap             = True,
-                                         doNegativeEndcap             = True,
-                                         doTrigger = doTriggger_InDetSCTHitsTool,
-                                         TrigDecisionTool = TrigDecisionTool_InDetSCTHitsTool)
-
-InDetSCTHitsTool.tracksName = InDetKeys.SCTTracks() if  InDetFlags.doTrackSegmentsSCT() else InDetKeys.UnslimmedTracks()
-
-#ToolSvc += InDetSCTHitsTool
+InDetSCTHitsTool = SCTHitsNoiseMonTool ( name = "InDetSCTHitsNoiseMonTool",
+                                         OutputLevel = 4,
+                                         doTrigger = doTriggger,
+                                         TrigDecisionTool = TrigDecisionTool_InDetSCTHitsTool,
+                                         tracksName = tracksName )
+
 if (InDetFlags.doPrintConfigurables()):
   print InDetSCTHitsTool
 
 from SCT_Monitoring.SCT_MonitoringConf import SCTTracksMonTool
 InDetSCTTracksMonTool = SCTTracksMonTool ( name             = "InDetSCTTracksMonTool",
                                            OutputLevel      = 4,
-                                           CheckRate        = 1000,
-                                           doPositiveEndcap = True,
-                                           doNegativeEndcap = True,
-                                           doUnbiasedCalc   = True,
-                                           doTrigger        = globalflags.DataSource == "data")
-
-InDetSCTTracksMonTool.tracksName = InDetKeys.SCTTracks() if  InDetFlags.doTrackSegmentsSCT() else InDetKeys.UnslimmedTracks()
+                                           doTrigger        = doTriggger,
+                                           tracksName       = tracksName )
 
 if jobproperties.Beam.beamType()=='collisions':
   from AthenaMonitoring.FilledBunchFilterTool import GetFilledBunchFilterTool
   InDetSCTTracksMonTool.FilterTools += [GetFilledBunchFilterTool()]
 
-#ToolSvc += InDetSCTTracksMonTool
 if (InDetFlags.doPrintConfigurables()):
   print InDetSCTTracksMonTool
 
@@ -56,16 +46,12 @@ from SCT_Monitoring.SCT_MonitoringConf import SCTErrMonTool
 InDetSCTErrMonTool = SCTErrMonTool ( name             = "InDetSCTErrMonTool",
                                      OutputLevel      = 4,
                                      histoPathBase    = "/stat",
-                                     CheckRate        = 1000,
-                                     doPositiveEndcap = True,
-                                     doNegativeEndcap = True,
                                      SCT_DCSConditionsTool = sct_DCSConditionsToolSetup.getTool())
 
 if jobproperties.Beam.beamType()=='collisions':
   from AthenaMonitoring.FilledBunchFilterTool import GetFilledBunchFilterTool
   InDetSCTErrMonTool.FilterTools += [GetFilledBunchFilterTool()]
   
-#ToolSvc += InDetSCTErrMonTool
 if (InDetFlags.doPrintConfigurables()):
   print InDetSCTErrMonTool
                
@@ -84,32 +70,21 @@ SCT_BunchCrossingTool = BunchCrossingTool()
 
 from SCT_Monitoring.SCT_MonitoringConf import SCTHitEffMonTool
 InDetSCTHitEffMonTool = SCTHitEffMonTool(name = "InDetSCTHitEffMonTool",
-                                         DetectorMode            = 3,
                                          OutputLevel             = 4,
                                          IsCosmic                = InDetFlags.doCosmics(),
-                                         UseMasks                = False,
-                                         LookAtDatabase          = False,
-                                         ChronoTime              = False,
                                          HoleSearch              = InDetHoleSearchTool,
-                                         IsSim                   = globalflags.DataSource != "data",
+                                         IsSim                   = (globalflags.DataSource != "data"),
                                          ROTCreator              = SCT_ClusterOnTrackTool,
-                                         BunchCrossingTool       = SCT_BunchCrossingTool)
-
-InDetSCTHitEffMonTool.TrackName = InDetKeys.SCTTracks() if  InDetFlags.doTrackSegmentsSCT() else InDetKeys.UnslimmedTracks()
+                                         BunchCrossingTool       = SCT_BunchCrossingTool,
+                                         TrackName               = tracksName)
 
 if jobproperties.Beam.beamType()=='collisions':
   from AthenaMonitoring.FilledBunchFilterTool import GetFilledBunchFilterTool
   InDetSCTHitEffMonTool.FilterTools += [GetFilledBunchFilterTool()]
   
-#ToolSvc += InDetSCTHitEffMonTool
 if (InDetFlags.doPrintConfigurables()):
   print InDetSCTHitEffMonTool
 
-#from SCT_Monitoring.SCT_MonitoringConf import SCTTimeDependentMonTool
-#SCTTimeDependentMonTool = SCTTimeDependentMonTool("SCTTimeDependentMonTool")
-#ToolSvc+=SCTTimeDependentMonTool
-#InDetSCTMonMan.AthenaMonTools += [SCTTimeDependentMonTool]
-
 from SCT_Monitoring.SCT_MonitoringConf import SCTLorentzMonTool
 from BTagging.BTaggingConfiguration_CommonTools import toolAtlasExtrapolator
 atlasExtrapolator = toolAtlasExtrapolator('AtlasExtrapolator')
@@ -117,31 +92,24 @@ options = {}
 options.setdefault('Extrapolator', atlasExtrapolator)
 from TrackToVertex.TrackToVertexConf import Reco__TrackToVertex
 trackToVertex = Reco__TrackToVertex(**options)
-InDetSCTLorentzMonTool = SCTLorentzMonTool ( name             = "InDetSCTLorentzMonTool", TrackToVertexTool = trackToVertex,
-                                             OutputLevel      = 4)
-
-InDetSCTLorentzMonTool.tracksName = InDetKeys.SCTTracks() if  InDetFlags.doTrackSegmentsSCT() else InDetKeys.UnslimmedTracks()
+InDetSCTLorentzMonTool = SCTLorentzMonTool ( name             = "InDetSCTLorentzMonTool",
+                                             TrackToVertexTool = trackToVertex,
+                                             OutputLevel      = 4,
+                                             tracksName       = tracksName )
 
 if jobproperties.Beam.beamType()=='collisions':
   from AthenaMonitoring.FilledBunchFilterTool import GetFilledBunchFilterTool
   InDetSCTLorentzMonTool.FilterTools += [GetFilledBunchFilterTool()]
   
-#ToolSvc += InDetSCTLorentzMonTool
 if (InDetFlags.doPrintConfigurables()):
   print InDetSCTLorentzMonTool
 
 
 from SCT_Monitoring.SCT_MonitoringConf import SCTRatioNoiseMonTool
-InDetSCTRatioNoiseMonTool = SCTRatioNoiseMonTool ( name             = "InDetSCTRatioNoiseMonTool",
-                                             OutputLevel      = 4,
-                                                   doTrigger = globalflags.DataSource == "data")
-
+InDetSCTRatioNoiseMonTool = SCTRatioNoiseMonTool ( name        = "InDetSCTRatioNoiseMonTool",
+                                                   OutputLevel = 4,
+                                                   doTrigger   = doTriggger )
 
-from RecExConfig.RecFlags import rec
-if not rec.doTrigger():
-  InDetSCTRatioNoiseMonTool.doTrigger=False
-
-#ToolSvc += InDetSCTRatioNoiseMonTool
 if (InDetFlags.doPrintConfigurables()):
   print InDetSCTRatioNoiseMonTool
            
@@ -156,9 +124,12 @@ InDetSCTMonMan = AthenaMonManager("InDetSCTMonManager",
                                   Environment         = DQMonFlags.monManEnvironment(),
                                   Run                 = DQMonFlags.monManRun(),
                                   LumiBlock           = DQMonFlags.monManLumiBlock(),
-
-
-AthenaMonTools      = [ InDetSCTTracksMonTool, InDetSCTRatioNoiseMonTool, InDetSCTLorentzMonTool, InDetSCTHitEffMonTool, InDetSCTHitsTool, InDetSCTErrMonTool ] )
+                                  AthenaMonTools      = [ InDetSCTTracksMonTool,
+                                                          InDetSCTRatioNoiseMonTool,
+                                                          InDetSCTLorentzMonTool,
+                                                          InDetSCTHitEffMonTool,
+                                                          InDetSCTHitsTool,
+                                                          InDetSCTErrMonTool ] )
 
 topSequence += InDetSCTMonMan
 if (InDetFlags.doPrintConfigurables()):
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTErrMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTErrMonTool.h
index 5a4a65a4c6c..e9b4d03f0a6 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTErrMonTool.h
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTErrMonTool.h
@@ -127,8 +127,8 @@ class SCTErrMonTool : public ManagedMonitorToolBase
 
   TH1I* m_nErrors;
   TH1I* m_nLinksWithErrors;
-  int* m_nErrors_buf;
-  int* m_nLinksWithErrors_buf;
+  std::vector<int> m_nErrors_buf;
+  std::vector<int> m_nLinksWithErrors_buf;
   int m_nErrors_pos;
 
   TH1I* m_MaskedAllLinks; // maskedLinks||maskedRODs
@@ -158,7 +158,6 @@ class SCTErrMonTool : public ManagedMonitorToolBase
   // NOTE: The following is not the usual index order, which goes C, Barrel, A
   enum {iECm=0, iBARREL=1, iECp=2, iGEN=3 }; //iECp==EA, iECm==EC
 
-  std::string m_stream;
   std::string m_path;
   /// CheckHists() frequency
   int m_checkrate;
@@ -187,7 +186,7 @@ class SCTErrMonTool : public ManagedMonitorToolBase
   //@{
 
   /// Data object name: for the SCT this is "SCT_RDOs"
-  SG::ReadHandle<SCT_RDO_Container> m_dataObjectName;
+  SG::ReadHandleKey<SCT_RDO_Container> m_dataObjectName{this, "RDOKey", "SCT_RDOs"};
 
   ///SCT Helper class
   const SCT_ID* m_pSCTHelper;
@@ -289,7 +288,7 @@ class SCTErrMonTool : public ManagedMonitorToolBase
 
   float m_PSTripModules;
 
-  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey;
+  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfo"};
 };
 
 #endif
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitEffMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitEffMonTool.h
index 13a9801d673..4ecddda0908 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitEffMonTool.h
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitEffMonTool.h
@@ -117,12 +117,12 @@ private:
                                                 Int_t nbinx, Double_t* xbins,
                                                 Int_t nbiny, Double_t* ybins);
 
-  SG::ReadHandle<TrackCollection> m_TrackName;
+  SG::ReadHandleKey<TrackCollection> m_TrackName{this, "TrackName", "CombinedInDetTracks"};
   IChronoStatSvc* m_chrono;
 
   const std::map < Identifier, unsigned int >* m_badChips;
   ServiceHandle<MagField::IMagFieldSvc>  m_fieldServiceHandle;
-  ToolHandle<Trig::IBunchCrossingTool> m_bunchCrossingTool;
+  ToolHandle<Trig::IBunchCrossingTool> m_bunchCrossingTool{this, "BunchCrossingTool", "Trig::BunchCrossingTool/BunchCrossingTool"};
 
 
   Int_t m_DetectorMode;
@@ -141,7 +141,7 @@ private:
   UInt_t m_maxTracks;
 
   std::string m_path;
-  SG::ReadHandleKey<InDet::SCT_ClusterContainer> m_sctContainerName;
+  SG::ReadHandleKey<InDet::SCT_ClusterContainer> m_sctContainerName{this, "SCT_ClusterContainer", "SCT_Clusters"};
 
 
   Bool_t m_insideOutOnly;
@@ -159,11 +159,11 @@ private:
   Bool_t m_chronotime;
   Bool_t m_useIDGlobal;
 
-  ToolHandle < Trk::IResidualPullCalculator >   m_residualPullCalculator;
-  ToolHandle < Trk::IRIO_OnTrackCreator > m_rotcreator; 
-  ToolHandle < Trk::ITrackHoleSearchTool >  m_holeSearchTool;  
+  ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator{this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"};
+  ToolHandle<Trk::IRIO_OnTrackCreator> m_rotcreator{this, "ROTCreator", "InDet::SCT_ClusterOnTrackTool/SCT_ClusterOnTrackTool"};
+  ToolHandle<Trk::ITrackHoleSearchTool> m_holeSearchTool{this, "HoleSearch", "InDet::InDetTrackHoleSearchTool"};
 
-  ToolHandle < ISCT_ConfigurationConditionsTool > m_configConditions{this, "ConfigConditions",
+  ToolHandle<ISCT_ConfigurationConditionsTool> m_configConditions{this, "ConfigConditions",
       "SCT_ConfigurationConditionsTool/InDetSCT_ConfigurationConditionsTool", "Tool to retrieve SCT Configuration Tool"};
 
   typedef std::array < TProfile*, SCT_Monitoring::N_REGIONS > TProfArray;
@@ -285,8 +285,8 @@ private:
   const SCT_ID* m_sctId;
   const TRT_ID* m_trtId;
 
-  SG::ReadHandleKey<ComTime> m_comTimeName;
-  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey;
+  SG::ReadHandleKey<ComTime> m_comTimeName{this, "ComTimeKey", "TRT_Phase"};
+  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfo"};
   SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
 
   /**Convert a layer/disk number (0-21) to a bec index (0,1,2) according to position of that layer
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h
index 722645b925c..ebe9c53a2ca 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTHitsNoiseMonTool.h
@@ -60,7 +60,7 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{
  public:
   typedef unsigned int  ChipNumberType;
   SCTHitsNoiseMonTool(const std::string& type, const std::string& name,const IInterface* parent); 
-  ~SCTHitsNoiseMonTool();
+  ~SCTHitsNoiseMonTool() = default;
   virtual StatusCode initialize() final;
   /**    @name Book, fill & check (reimplemented from baseclass) */
   //@{
@@ -114,17 +114,17 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{
   VecProf2_t m_pnoiseoccupancymapHistoVectorECmTrigger;
   
   TH1F* m_nSP;
-  int* m_nSP_buf;
+  std::vector<int> m_nSP_buf;
   int m_nSP_pos;
   TH1F* m_nHits;
-  int* m_nHits_buf;
+  std::vector<int> m_nHits_buf;
   int m_nHits_pos;
   TH1F* m_nmaxHits;
-  int* m_nmaxHits_buf;
-  Identifier* m_nmaxModule_buf;
+  std::vector<int> m_nmaxHits_buf;
+  std::vector<Identifier> m_nmaxModule_buf;
   TH1F* m_nminHits;
-  int* m_nminHits_buf;
-  Identifier* m_nminModule_buf;
+  std::vector<int> m_nminHits_buf;
+  std::vector<Identifier> m_nminModule_buf;
 
   //Histograms with hits per luminosity block
   H1_t m_numBarrelHitsPerLumiBlock;
@@ -198,7 +198,7 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{
   H1_t m_hitsvsL1ID;
 
   /// Name of the Track collection to use
-  SG::ReadHandleKey<TrackCollection> m_tracksName;
+  SG::ReadHandleKey<TrackCollection> m_tracksName{this, "tracksName", "CombinedInDetTracks"};
 
   /// Name of the L1 Type to use for filling the extra NO histograms
   std::string m_NOTrigger;
@@ -300,7 +300,6 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{
   Prof_t m_tbinfracVsLB;
   Prof_t m_tbinfracVsLBECp;
   Prof_t m_tbinfracVsLBECm;
-  //std::string m_tracksName;
   bool m_initialize;
  
   //@name Histograms related methods
@@ -337,7 +336,7 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{
   ///additional maps for track NO to compare with SP NO calc
   std::map<Identifier, int> m_RDOs;
   //CAM adds map for SP NO
-  SG::ReadHandle<SpacePointContainer>  m_SCTSPContainerName;
+  SG::ReadHandleKey<SpacePointContainer> m_SCTSPContainerName{this, "SpacePointKey", "SCT_SpacePoints"};
 
   std::map<Identifier, float> m_occSumUnbiased;
   std::map<Identifier, float> m_occSumUnbiasedTrigger;
@@ -472,7 +471,7 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{
   //@{
   
   /// Data object name: for the SCT this is "SCT_RDOs"
-  SG::ReadHandleKey<SCT_RDO_Container> m_dataObjectName;
+  SG::ReadHandleKey<SCT_RDO_Container> m_dataObjectName{this, "RDOKey", "SCT_RDOs"};
 
   ///SCT Helper class
   const SCT_ID* m_pSCTHelper;
@@ -513,8 +512,7 @@ class SCTHitsNoiseMonTool : public SCTMotherTrigMonTool{
     positionString(const Identifier& plane) const;
   //@}
 
-  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey;
-  SG::ReadHandleKey<InDet::SCT_ClusterContainer> m_clusContainerKey;
+  SG::ReadHandleKey<InDet::SCT_ClusterContainer> m_clusContainerKey{this, "ClusterKey", "SCT_Clusters"};
 
   // For P->T converter of SCT_Clusters
   SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTLorentzMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTLorentzMonTool.h
index 2397e9675cf..a094358ac73 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTLorentzMonTool.h
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTLorentzMonTool.h
@@ -80,7 +80,7 @@ private:
   //@{
 
   //for Vertex and perigee
-  ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool;
+  ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool{this, "TrackToVertexTool", "Reco::TrackToVertex"};
 
   /// Vector of pointers to profile histogram of local inc angle (phi) vs nStrips (one/layer)
   Prof_t m_phiVsNstrips[4];
@@ -91,11 +91,10 @@ private:
   Prof_t m_phiVsNstrips_Side_100[4][2];
   Prof_t m_phiVsNstrips_Side_111[4][2];
 
-  std::string m_stream;
   std::string m_path;
   //@}
   /// Name of the Track collection to use
-  SG::ReadHandleKey<TrackCollection> m_tracksName;
+  SG::ReadHandleKey<TrackCollection> m_tracksName{this, "tracksName", "CombinedInDetTracks"};
   SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"};
 
   //@name Service members
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTMotherTrigMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTMotherTrigMonTool.h
index 58fda516247..7aaa508fc22 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTMotherTrigMonTool.h
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTMotherTrigMonTool.h
@@ -59,10 +59,11 @@ protected:
   bool m_doTrigger;
   /// Check if the event belongs to the SCTNoise Calibration Stream
   bool m_isStream;
+protected:
+  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfo", "Key of xAOD::EventInfo"};
 private:
   std::bitset<N_TRIGGER_TYPES> m_firedTriggers;
 
-  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EventInfoKey", "EventInfoKey", "Key of xAOD::EventInfo"};
 };
 
 #endif
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTRatioNoiseMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTRatioNoiseMonTool.h
index f1232c2811b..e14e0411115 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTRatioNoiseMonTool.h
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTRatioNoiseMonTool.h
@@ -223,18 +223,14 @@ private:
   H1_t m_NZ1_vs_modnum;
   H1_t m_N11_vs_modnum;
 
-  std::string m_stream;
   std::string m_path;
   //@}
-  /// Name of the Track collection to use
-  std::string m_tracksName;
   std::string m_NOTrigger;
 
   //@name Service members
   //@{
   /// Data object name: for the SCT this is "SCT_RDOs"
-  SG::ReadHandleKey<SCT_RDO_Container> m_dataObjectName;
-  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey;
+  SG::ReadHandleKey<SCT_RDO_Container> m_dataObjectName{this, "RDOKey", "SCT_RDOs"};
   ///SCT Helper class
   const SCT_ID* m_pSCTHelper;
   ToolHandle<IInDetConditionsTool> m_pSummaryTool{this, "conditionsTol",
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTTracksMonTool.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTTracksMonTool.h
index 1fb76d94a26..115fded36e7 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTTracksMonTool.h
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/SCT_Monitoring/SCTTracksMonTool.h
@@ -69,7 +69,7 @@ private:
   typedef std::vector<H2_t> VecH2_t;
   //@}
   TH1I* m_nTracks;
-  int* m_nTracks_buf;
+  std::vector<int> m_nTracks_buf;
   int m_nTracks_pos;
   TH1I* m_trackTrigger;
   TProfile* m_trackTriggerRate;
@@ -144,7 +144,7 @@ private:
   bool m_useIDGlobal;
   //@}
   /// Name of the Track collection to use
-  SG::ReadHandleKey<TrackCollection> m_tracksName;
+  SG::ReadHandleKey<TrackCollection> m_tracksName{this, "tracksName", "CombinedInDetTracks"};
   /// Cut on number of SCT hits on track
   int m_trackHitCut;
   /// CheckHists() frequency
@@ -154,7 +154,7 @@ private:
 
   bool m_doPositiveEndcap;
   bool m_doNegativeEndcap;
-  ToolHandle < Trk::IResidualPullCalculator >   m_residualPullCalculator;
+  ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator{this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"};
   bool   m_doUnbiasedCalc;
 
 
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx
index 7be62108fb7..32ef5b6d786 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTErrMonTool.cxx
@@ -133,7 +133,7 @@ namespace {
 // ====================================================================================================
 SCTErrMonTool::SCTErrMonTool(const std::string& type, const std::string& name, const IInterface* parent)
   : ManagedMonitorToolBase(type, name, parent),
-    m_firstHit{},
+  m_firstHit{},
   m_secondHit{},
   m_allErrs{},
   m_allErrsPerLumi{},
@@ -150,7 +150,7 @@ SCTErrMonTool::SCTErrMonTool(const std::string& type, const std::string& name, c
   m_nLinksWithErrors{},
   m_nErrors_buf{},
   m_nLinksWithErrors_buf{},
-  m_nErrors_pos{},
+  m_nErrors_pos{0},
   m_MaskedAllLinks{},
   m_numberOfEventsLumi{},
   m_numberOfEvents{},
@@ -161,8 +161,7 @@ SCTErrMonTool::SCTErrMonTool(const std::string& type, const std::string& name, c
   m_current_lb{},
   m_last_reset_lb{},
   m_sctflag(false),
-  m_dataObjectName(std::string("SCT_RDOs")),
-  m_pSCTHelper{},
+  m_pSCTHelper{nullptr},
   m_Conf{},
   m_ConfRN{},
   m_ConfNew{},
@@ -182,8 +181,6 @@ SCTErrMonTool::SCTErrMonTool(const std::string& type, const std::string& name, c
   m_ConfNoiseOnlineRecent{},
   m_DetailedConfiguration{},
   m_thistSvc("THistSvc", name),
-  m_checkBadModules(true),
-  m_ignore_RDO_cut_online(true),
   m_geo{},
   m_SCTHash{{}},
   m_mapSCT{nullptr},
@@ -192,18 +189,7 @@ SCTErrMonTool::SCTErrMonTool(const std::string& type, const std::string& name, c
   m_nBinsPhi( 100 ),
   m_WafersThreshold( 3.0 ),
   m_detectorCoverageVsLbs{nullptr},
-  m_PSTripModulesVsLbs{},
-  m_eventInfoKey(std::string("EventInfo")) {
-    /**
-     *  sroe 3 Sept 2015:
-     *  histoPathBase is declared as a property in the base class, assigned to m_path
-     *  with default as empty string.
-     *  Declaring it here as well gives rise to compilation warning
-     *  WARNING duplicated property name 'histoPathBase', see https://its.cern.ch/jira/browse/GAUDI-1023
-     *  declareProperty("histoPathBase", m_stream = "/stat");
-     **/
-
-    m_stream = "/stat";
+  m_PSTripModulesVsLbs{} {
     declareProperty("CheckRate", m_checkrate = 1000);
     declareProperty("runOnline", m_runOnline = false);
     declareProperty("CheckRecent", m_checkrecent = 20);
@@ -221,8 +207,8 @@ SCTErrMonTool::SCTErrMonTool(const std::string& type, const std::string& name, c
 
     declareProperty("DoPerLumiErrors", m_doPerLumiErrors = true);
     declareProperty("DoErr2DPerLumiHists", m_doErr2DPerLumiHists = false);
-    declareProperty("checkBadModules", m_checkBadModules);
-    declareProperty("IgnoreRDOCutOnline", m_ignore_RDO_cut_online);
+    declareProperty("checkBadModules", m_checkBadModules = true);
+    declareProperty("IgnoreRDOCutOnline", m_ignore_RDO_cut_online = true);
     //Detector Coverage Tool switch
     declareProperty("CoverageCheck",m_CoverageCheck= true);
     declareProperty("UseDCS", m_useDCS = true);
@@ -270,15 +256,8 @@ SCTErrMonTool::~SCTErrMonTool() {
         if (m_allErrsPerLumi[errType][reg][layer])LWHist::safeDelete(m_allErrsPerLumi[errType][reg][layer]);
         if (m_pallErrsPerLumi[errType][reg][layer])LWHist::safeDelete(m_pallErrsPerLumi[errType][reg][layer]);
       }
-      // for (int errType(0); errType != CategoryErrors::N_ERRCATEGORY; ++errType) {
-      //   if (m_allErrsCatePerLumi[errType][reg][layer])LWHist::safeDelete(m_allErrsCatePerLumi[errType][reg][layer]);
-      //   if (m_pallErrsCatePerLumi[errType][reg][layer])LWHist::safeDelete(m_pallErrsCatePerLumi[errType][reg][layer]);
-      // }
     }
   }
-
-  free(m_nErrors_buf);
-  free(m_nLinksWithErrors_buf);
 }
 
 // ====================================================================================================
@@ -527,7 +506,6 @@ StatusCode SCTErrMonTool::bookHistogramsRecurrent()
 StatusCode
 SCTErrMonTool::fillHistograms() {
 
-  typedef SCT_RDORawData SCTRawDataType;
   SG::ReadHandle<xAOD::EventInfo> pEvent(m_eventInfoKey);
   if (not pEvent.isValid()) {
     ATH_MSG_WARNING("Could not retrieve event info!");
@@ -562,25 +540,21 @@ SCTErrMonTool::fillHistograms() {
   int numFirstHit_ECm = 0, numSecondHit_ECm = 0, numSCTRDOs_ECm = 0;
 
   int count_SCT_RDO = 0;
-  // Use new IDC
-  SCT_RDO_Container::const_iterator lastCol = p_rdocontainer->end();
-  for (SCT_RDO_Container::const_iterator col_it = p_rdocontainer->begin(); col_it != lastCol; ++col_it) {
-    const InDetRawDataCollection<SCT_RDORawData>* SCT_Collection(*col_it);
-    if (!SCT_Collection) continue;  // select only SCT RDOs
-
-    DataVector<SCTRawDataType>::const_iterator p_rdo_end = SCT_Collection->end();
+  for (const InDetRawDataCollection<SCT_RDORawData>*SCT_Collection: *p_rdocontainer) {
+    if (SCT_Collection==nullptr) continue;  // select only SCT RDOs
 
-    Identifier SCT_Identifier = SCT_Collection->identify();
-    for (DataVector<SCTRawDataType>::const_iterator p_rdo = SCT_Collection->begin(); p_rdo != p_rdo_end; ++p_rdo) {
+    for (const SCT_RDORawData* rdo: *SCT_Collection) {
       count_SCT_RDO++;
-      const SCT3_RawData* rdo3 = dynamic_cast<const SCT3_RawData*>(*p_rdo);
-      SCT_Identifier = (*p_rdo)->identify();
+      const SCT3_RawData* rdo3 = dynamic_cast<const SCT3_RawData*>(rdo);
+      if (rdo3==nullptr) continue;
+
+      Identifier SCT_Identifier = rdo3->identify();
       int barrel_ec = m_pSCTHelper->barrel_ec(SCT_Identifier);
       if (barrel_ec == BARREL) ++numSCTRDOs;
       if (barrel_ec == ENDCAP_A && m_doPositiveEndcap) ++numSCTRDOs_ECp;
       if (barrel_ec == ENDCAP_C && m_doNegativeEndcap) ++numSCTRDOs_ECm;
 
-      if ( !(SCT_Identifier.is_valid())) {
+      if (not SCT_Identifier.is_valid()) {
         ATH_MSG_ERROR("The SCT identifier is not valid.");
         return StatusCode::RECOVERABLE;
       }
@@ -603,19 +577,19 @@ SCTErrMonTool::fillHistograms() {
   }// end for (SCT_RDO_Container...
 
   if (numSCTRDOs != 0) {
-    double scale = 100. / double(numSCTRDOs);
-    m_firstHit[iBARREL]->Fill(double(numFirstHit)*scale, 1.);
-    m_secondHit[iBARREL]->Fill(double(numSecondHit)*scale, 1.);
+    double scale = 100. / static_cast<double>(numSCTRDOs);
+    m_firstHit[iBARREL]->Fill(static_cast<double>(numFirstHit)*scale, 1.);
+    m_secondHit[iBARREL]->Fill(static_cast<double>(numSecondHit)*scale, 1.);
   }
   if (numSCTRDOs_ECp != 0 && m_doPositiveEndcap) {
-    double scale = 100. / double(numSCTRDOs_ECp);
-    m_firstHit[iECp]->Fill(double(numFirstHit_ECp)*scale, 1.);
-    m_secondHit[iECp]->Fill(double(numSecondHit_ECp)*scale, 1.);
+    double scale = 100. / static_cast<double>(numSCTRDOs_ECp);
+    m_firstHit[iECp]->Fill(static_cast<double>(numFirstHit_ECp)*scale, 1.);
+    m_secondHit[iECp]->Fill(static_cast<double>(numSecondHit_ECp)*scale, 1.);
   }
   if (numSCTRDOs_ECm != 0 && m_doNegativeEndcap) {
-    double scale = 100. / double(numSCTRDOs_ECm);
-    m_firstHit[iECm]->Fill(double(numFirstHit_ECm)*scale, 1.);
-    m_secondHit[iECm]->Fill(double(numSecondHit_ECm)*scale, 1.);
+    double scale = 100. / static_cast<double>(numSCTRDOs_ECm);
+    m_firstHit[iECm]->Fill(static_cast<double>(numFirstHit_ECm)*scale, 1.);
+    m_secondHit[iECm]->Fill(static_cast<double>(numSecondHit_ECm)*scale, 1.);
   }
   if (m_environment == AthenaMonManager::online) {
     if (m_numberOfEvents == 1 || (m_numberOfEvents > 1 && (m_numberOfEvents % m_checkrate) == 0)) {
@@ -673,7 +647,7 @@ SCTErrMonTool::checkRateHists() {
               content = m_numErrorsPerLumi[reg]->GetBinContent(xb, yb);
               if (num_modules > 0) {
                 m_rateErrorsPerLumi[reg]->Fill(cxb, cyb, 1, content);
-                m_rateErrorsPerLumi[reg]->Fill(cxb, cyb, 0, (evt_lumi * ((double) num_modules) - content));
+                m_rateErrorsPerLumi[reg]->Fill(cxb, cyb, 0, (evt_lumi * (static_cast<double>(num_modules)) - content));
               }
             }
           }
@@ -799,14 +773,12 @@ SCTErrMonTool::fillByteStreamErrorsHelper(const std::set<IdentifierHash>* errors
 
   //--- Count BS errors
   int nerrors = 0;
-  std::set<IdentifierHash>::iterator fit = errors->begin();
-  std::set<IdentifierHash>::iterator fitEnd = errors->end();
-  for (; fit != fitEnd; ++fit) {
+  for (const IdentifierHash& hash: *errors) {
     nerrors++;
-    if (!(fit->is_valid())) continue;
+    if (not hash.is_valid()) continue;
 
     //--- FIll module information with BS error
-    Identifier fitId = m_pSCTHelper->wafer_id(*fit);
+    Identifier fitId = m_pSCTHelper->wafer_id(hash);
     int layer = m_pSCTHelper->layer_disk(fitId);
     int side = m_pSCTHelper->side(fitId);
     int barrel_ec = m_pSCTHelper->barrel_ec(fitId);
@@ -857,7 +829,7 @@ SCTErrMonTool::fillByteStreamErrorsHelper(const std::set<IdentifierHash>* errors
 void
 SCTErrMonTool::numByteStreamErrors(const std::set<IdentifierHash>* errors, int& ntot, int& nbar, int& neca, int& necc) {
 
-  for (auto fit: *errors) {
+  for (const IdentifierHash& fit: *errors) {
     if (fit.is_valid()) {
       Identifier fitId = m_pSCTHelper->wafer_id(fit);
       int layer = m_pSCTHelper->layer_disk(fitId);
@@ -900,8 +872,8 @@ SCTErrMonTool::fillByteStreamErrors() {
                         bs_errs[iGEN],bs_errs[iBARREL],bs_errs[iECp],bs_errs[iECm]);
     // fill number of BS errors vs LBs
     for (int reg = 0; reg != NREGIONS_INC_GENERAL; ++reg) {
-      if (!m_sctflag) m_ByteStreamVsLB[errType][reg]->Fill(current_lb, double (bs_errs[reg]));
-      else m_ByteStreamWithSctFlagVsLB[errType][reg]->Fill(current_lb, double (bs_errs[reg]));
+      if (!m_sctflag) m_ByteStreamVsLB[errType][reg]->Fill(current_lb, static_cast<double>(bs_errs[reg]));
+      else m_ByteStreamWithSctFlagVsLB[errType][reg]->Fill(current_lb, static_cast<double>(bs_errs[reg]));
     }
   }
 
@@ -1026,7 +998,7 @@ SCTErrMonTool::fillByteStreamErrors() {
             // below...
             if (m_numberOfEvents % m_checkrate == 0 && m_runOnline == true) {
               for (int errType(0); errType != CategoryErrors::N_ERRCATEGORY; ++errType) {
-                int content = (int) m_pallErrsCate[errType][reg][lyr]->GetBinContent(xb, yb);
+                int content = static_cast<int>(m_pallErrsCate[errType][reg][lyr]->GetBinContent(xb, yb));
                 int evt = m_numberOfEvents;
                 m_allErrsCate[errType][reg][lyr]->Fill(cxb, cyb, 1, content);
                 m_allErrsCate[errType][reg][lyr]->Fill(cxb, cyb, 0, evt - content);
@@ -1051,12 +1023,12 @@ SCTErrMonTool::fillByteStreamErrors() {
 
   for (int reg = 0; reg != NREGIONS_INC_GENERAL; ++reg) {
     for (int errType(0); errType != CategoryErrors::N_ERRCATEGORY; ++errType) {
-      m_ByteStreamCategorisedVsLB[errType][reg]->Fill((int) current_lb, (bytestreamCate_errs[errType][reg]));
-      m_LinksWithCategorisedErrorsVsLB[errType][reg]->Fill((int) current_lb, (tot_mod_bytestreamCate_errs[errType][reg]));
+      m_ByteStreamCategorisedVsLB[errType][reg]->Fill(current_lb, (bytestreamCate_errs[errType][reg]));
+      m_LinksWithCategorisedErrorsVsLB[errType][reg]->Fill(current_lb, (tot_mod_bytestreamCate_errs[errType][reg]));
       if (reg==NREGIONS_INC_GENERAL-1)continue;
       int nLayers = n_layers[reg]*2;
       for (int lyr = 0; lyr != nLayers; ++lyr) {
-        m_LinksWithCategorisedErrorsVsLBLayer[errType][reg][lyr]->Fill((int) current_lb,
+        m_LinksWithCategorisedErrorsVsLBLayer[errType][reg][lyr]->Fill(current_lb,
                                                                        (tot_mod_bytestreamCate_errs_layer[errType][reg][lyr]));
       }
     }
@@ -1209,8 +1181,8 @@ SCTErrMonTool::bookErrHistos(int reg=-1) { // reg = 0:EC, 1:B, 2:EA
         m_rateErrorsPerLumi[reg]->GetXaxis()->SetBinLabel(bin+1, SCT_ByteStreamErrors::errorTypesDescription[bin].c_str());
       }
       for ( int bin(0); bin < nLayers; bin++) {
-        m_numErrorsPerLumi[reg]->GetYaxis()->SetBinLabel(bin+1, (std::to_string(int(bin/2)) +"_"+ std::to_string(int(bin%2))).c_str());
-        m_rateErrorsPerLumi[reg]->GetYaxis()->SetBinLabel(bin+1, (std::to_string(int(bin/2)) +"_"+ std::to_string(int(bin%2))).c_str());
+        m_numErrorsPerLumi[reg]->GetYaxis()->SetBinLabel(bin+1, (std::to_string(static_cast<int>(bin/2)) +"_"+ std::to_string(static_cast<int>(bin%2))).c_str());
+        m_rateErrorsPerLumi[reg]->GetYaxis()->SetBinLabel(bin+1, (std::to_string(static_cast<int>(bin/2)) +"_"+ std::to_string(static_cast<int>(bin%2))).c_str());
       }
       bool somethingFailed(false);
       if (m_doErr2DPerLumiHists) {
@@ -1311,10 +1283,8 @@ SCTErrMonTool::bookErrHistosGen() {
                                   m_evtsbins, 1, m_evtsbins + 1);
     m_nLinksWithErrors->GetXaxis()->SetTitle("Event Number");
     m_nLinksWithErrors->GetYaxis()->SetTitle("Num of Links with Errors");
-    size_t nErrors_buf_size;
-    nErrors_buf_size = m_evtsbins * sizeof(int);
-    m_nErrors_buf = (int*) malloc(nErrors_buf_size);
-    m_nLinksWithErrors_buf = (int*) malloc(nErrors_buf_size);
+    m_nErrors_buf.reserve(m_evtsbins);
+    m_nLinksWithErrors_buf.reserve(m_evtsbins);
     m_nErrors_pos = 0;
     if (Errors.regHist(m_nErrors).isFailure()) {
       ATH_MSG_WARNING("Couldn't book nErrors vs event number hist");
@@ -1430,8 +1400,8 @@ SCTErrMonTool::bookConfMapsGen() {
           int nLayers = n_layers[reg]*2;
           for (int layer(0); layer != nLayers; ++layer) {
             m_LinksWithCategorisedErrorsVsLBLayer[errType][reg][layer] =
-              TProfile_LW::create("SCT_LinksWith" + errorsString(errType) + "VsLbs" + regLabel[reg] + "lyr" + std::to_string(int(layer/2)) + "_" + std::to_string(int(layer%2)),
-                                  "Ave. num of links with " + errorsString(errType) + " per LB in " + regTitle[reg] + " layer" + std::to_string(int(layer/2)) + "_" + std::to_string(int(layer%2)),
+              TProfile_LW::create("SCT_LinksWith" + errorsString(errType) + "VsLbs" + regLabel[reg] + "lyr" + std::to_string(static_cast<int>(layer/2)) + "_" + std::to_string(static_cast<int>(layer%2)),
+                                  "Ave. num of links with " + errorsString(errType) + " per LB in " + regTitle[reg] + " layer" + std::to_string(static_cast<int>(layer/2)) + "_" + std::to_string(static_cast<int>(layer%2)),
                                   NBINS_LBs, 0.5, NBINS_LBs + 0.5);
             m_LinksWithCategorisedErrorsVsLBLayer[errType][reg][layer]->GetXaxis()->SetTitle("LumiBlock");
           }
@@ -1503,7 +1473,7 @@ SCTErrMonTool::bookConfMapsGen() {
           int nLayers = n_layers[reg]*2;
           for (int layer(0); layer != nLayers; ++layer) {
             if (ConfHist[reg].regHist(m_LinksWithCategorisedErrorsVsLBLayer[errType][reg][layer]).isFailure()) {
-              ATH_MSG_WARNING("Cannot book Histogram:SCTLinksWith" + errorsString(errType) + "VsLbs" + regLabel[reg] + "lyr" + std::to_string(int(layer/2)) + "_" + std::to_string(int(layer%2)) << "with SCT flag");
+              ATH_MSG_WARNING("Cannot book Histogram:SCTLinksWith" + errorsString(errType) + "VsLbs" + regLabel[reg] + "lyr" + std::to_string(static_cast<int>(layer/2)) + "_" + std::to_string(static_cast<int>(layer%2)) << "with SCT flag");
             }
           }
         }
@@ -1553,11 +1523,11 @@ SCTErrMonTool::bookConfMaps(int reg=-1) { // reg = 0:EC, 1:B, 2:EA
     MonGroup confMaps(this, ("SCT/"+regName+"/Conf").c_str(), ManagedMonitorToolBase::run, ATTRIB_UNMANAGED);
     m_p2DmapHistoVectorAll[reg].clear();
     for (int layer(0); layer != nLayers; ++layer) {
-      std::string mapName = "modulemap" + std::string(subDetNameShort[reg].Data()) + std::to_string(int(layer/2)) + "_" + std::to_string(int(layer%2));
+      std::string mapName = "modulemap" + std::string(subDetNameShort[reg].Data()) + std::to_string(static_cast<int>(layer/2)) + "_" + std::to_string(static_cast<int>(layer%2));
       TH2F_LW* hitsHisto_tmp = TH2F_LW::create(TString(mapName.c_str()),
                                                TString(("Module Out of Configuration : "+std::string(subDetName[reg].Data())+", "+
-                                                        std::string(layerName[reg].Data())+" "+std::to_string(int(layer/2))+
-                                                        " side "+std::to_string(int(layer%2))).c_str()),
+                                                        std::string(layerName[reg].Data())+" "+std::to_string(static_cast<int>(layer/2))+
+                                                        " side "+std::to_string(static_cast<int>(layer%2))).c_str()),
                                                n_etabins[reg], f_etabin[reg] - 0.5, l_etabin[reg] + 0.5,
                                                n_phibins[reg], f_phibin[reg] - 0.5, l_phibin[reg] + 0.5);
       hitsHisto_tmp->GetXaxis()->SetTitle("Index in the direction of #eta");
@@ -1583,8 +1553,8 @@ SCTErrMonTool::fillCondDBMaps() {
     0
   };
   int MaskedAllLinks[4] = {
-    (int) m_MaskedAllLinks->GetBinContent(1), (int) m_MaskedAllLinks->GetBinContent(2),
-    (int) m_MaskedAllLinks->GetBinContent(3), (int) m_MaskedAllLinks->GetBinContent(4)
+    static_cast<int>(m_MaskedAllLinks->GetBinContent(1)), static_cast<int>(m_MaskedAllLinks->GetBinContent(2)),
+    static_cast<int>(m_MaskedAllLinks->GetBinContent(3)), static_cast<int>(m_MaskedAllLinks->GetBinContent(4))
   };
   int ModErr[4] = {
     0
@@ -1609,7 +1579,6 @@ SCTErrMonTool::fillCondDBMaps() {
   std::string stem;
   SCT_ID::const_id_iterator planeIterator(m_pSCTHelper->wafer_begin());
   SCT_ID::const_id_iterator planeEnd = m_pSCTHelper->wafer_end();
-
   for (; planeIterator not_eq planeEnd; ++planeIterator) {
     Identifier planeId(*planeIterator);
     int eta = m_pSCTHelper->eta_module(planeId);
@@ -1693,38 +1662,38 @@ SCTErrMonTool::fillCondDBMaps() {
 
   if (m_makeConfHisto) {
     for (int reg = 0; reg <= 3; ++reg) {
-      m_Conf[reg]->Fill(0., double (MOut[reg]));
-      m_ConfRN[reg]->Fill(0., double (MOut[reg]));
-      m_ConfOutModules[reg]->Fill(0., double (MOut[reg]));
-      m_Conf[reg]->Fill(1., double (Flagged[reg]));
-      m_ConfRN[reg]->Fill(1., double (Flagged[reg]));
-      m_ConfNew[reg]->Fill(0., double (Flagged[reg]));
-      m_Conf[reg]->Fill(2., double (MaskedAllLinks[reg]));
-      m_ConfRN[reg]->Fill(2., double (MaskedAllLinks[reg]));
-      m_ConfNew[reg]->Fill(1., double (MaskedAllLinks[reg]));
-      m_Conf[reg]->Fill(3., double (ModErr[reg]));
-      m_ConfRN[reg]->Fill(3., double (ModErr[reg]));
-      m_ConfNew[reg]->Fill(2., double (ModErr[reg]));
-      m_Conf[reg]->Fill(4., double (InEffModules[reg]));
-      m_ConfRN[reg]->Fill(4., double (InEffModules[reg]));
-      m_ConfNew[reg]->Fill(3., double (InEffModules[reg]));
-      m_Conf[reg]->Fill(5., double (NoisyModules[reg]));
-      m_ConfRN[reg]->Fill(5., double (RNoisyModules[reg]));
-      m_ConfNew[reg]->Fill(4., double (NoisyModules[reg]));
+      m_Conf[reg]->Fill(0., static_cast<double>(MOut[reg]));
+      m_ConfRN[reg]->Fill(0., static_cast<double>(MOut[reg]));
+      m_ConfOutModules[reg]->Fill(0., static_cast<double>(MOut[reg]));
+      m_Conf[reg]->Fill(1., static_cast<double>(Flagged[reg]));
+      m_ConfRN[reg]->Fill(1., static_cast<double>(Flagged[reg]));
+      m_ConfNew[reg]->Fill(0., static_cast<double>(Flagged[reg]));
+      m_Conf[reg]->Fill(2., static_cast<double>(MaskedAllLinks[reg]));
+      m_ConfRN[reg]->Fill(2., static_cast<double>(MaskedAllLinks[reg]));
+      m_ConfNew[reg]->Fill(1., static_cast<double>(MaskedAllLinks[reg]));
+      m_Conf[reg]->Fill(3., static_cast<double>(ModErr[reg]));
+      m_ConfRN[reg]->Fill(3., static_cast<double>(ModErr[reg]));
+      m_ConfNew[reg]->Fill(2., static_cast<double>(ModErr[reg]));
+      m_Conf[reg]->Fill(4., static_cast<double>(InEffModules[reg]));
+      m_ConfRN[reg]->Fill(4., static_cast<double>(InEffModules[reg]));
+      m_ConfNew[reg]->Fill(3., static_cast<double>(InEffModules[reg]));
+      m_Conf[reg]->Fill(5., static_cast<double>(NoisyModules[reg]));
+      m_ConfRN[reg]->Fill(5., static_cast<double>(RNoisyModules[reg]));
+      m_ConfNew[reg]->Fill(4., static_cast<double>(NoisyModules[reg]));
       if (m_environment == AthenaMonManager::online) {
-        m_ConfOnline[reg]->Fill(0., double (MOut[reg]));
-        m_ConfOnline[reg]->Fill(1., double (Flagged[reg]));
-        m_ConfOnline[reg]->Fill(2., double (MaskedAllLinks[reg]));
-        m_ConfOnline[reg]->Fill(3., double (ModErr[reg]));
+        m_ConfOnline[reg]->Fill(0., static_cast<double>(MOut[reg]));
+        m_ConfOnline[reg]->Fill(1., static_cast<double>(Flagged[reg]));
+        m_ConfOnline[reg]->Fill(2., static_cast<double>(MaskedAllLinks[reg]));
+        m_ConfOnline[reg]->Fill(3., static_cast<double>(ModErr[reg]));
       }
     }
     if (m_environment == AthenaMonManager::online || testOffline) {
       m_ConfEffOnline->Reset("ICE");
       for (int i(0); i != 4; ++i) {
         const float f(i);
-        m_ConfEffOnline->Fill(f, double (InEffModules[i]));
-        m_ConfNoiseOnline->Fill(f, double (NoisyModules[i]));
-        m_ConfNoiseOnlineRecent->Fill(f, double (NoisyModulesRecent[i]));
+        m_ConfEffOnline->Fill(f, static_cast<double>(InEffModules[i]));
+        m_ConfNoiseOnline->Fill(f, static_cast<double>(NoisyModules[i]));
+        m_ConfNoiseOnlineRecent->Fill(f, static_cast<double>(NoisyModulesRecent[i]));
       }
     }
   }
@@ -1739,9 +1708,9 @@ StatusCode
 SCTErrMonTool::fillConfigurationDetails() {
   ATH_MSG_DEBUG("Inside fillConfigurationDetails()");
   unsigned int nBadMods = m_ConfigurationTool->badModules()->size(); // bad modules
-  const std::map<IdentifierHash, std::pair<bool, bool> > *badLinks = m_ConfigurationTool->badLinks(); // bad links
+  const std::map<IdentifierHash, std::pair<bool, bool>> *badLinks = m_ConfigurationTool->badLinks(); // bad links
   unsigned int nBadLink0(0), nBadLink1(0), nBadLinkBoth(0);
-  for (auto link: *badLinks) {
+  for (const std::pair<IdentifierHash, std::pair<bool, bool>>& link: *badLinks) {
     std::pair<bool, bool> status = link.second;
     if (status.first == false && status.second == true) {
       ++nBadLink0;
@@ -1756,7 +1725,7 @@ SCTErrMonTool::fillConfigurationDetails() {
 
   const std::map<Identifier, unsigned int>* badChips = m_ConfigurationTool->badChips(); // bad chips
   unsigned int nBadChips(0);
-  for (auto chip : *badChips) {
+  for (const std::pair<Identifier, unsigned int>& chip : *badChips) {
     unsigned int status = chip.second;
     for (unsigned int i(0); i != CHIPS_PER_MODULE; i++) {
       nBadChips += ((status & (1 << i)) == 0 ? 0 : 1);
@@ -1773,16 +1742,16 @@ SCTErrMonTool::fillConfigurationDetails() {
   int nBadStripsExclusiveBEC[] = {
     0, 0, 0
   };
-  for (auto strip: badStripsExclusive) {
+  for (const Identifier& strip: badStripsExclusive) {
     int bec(m_pSCTHelper->barrel_ec(strip));
     nBadStripsExclusiveBEC[SCT_Monitoring::bec2Index(bec)] += 1;
   }
 
-  m_DetailedConfiguration->Fill(0., double (nBadMods));
-  m_DetailedConfiguration->Fill(1., double (nBadLink0));
-  m_DetailedConfiguration->Fill(2., double (nBadLink1));
-  m_DetailedConfiguration->Fill(3., double (nBadChips));
-  m_DetailedConfiguration->Fill(4., double (nBadStripsExclusive) / 100.);
+  m_DetailedConfiguration->Fill(0., static_cast<double>(nBadMods));
+  m_DetailedConfiguration->Fill(1., static_cast<double>(nBadLink0));
+  m_DetailedConfiguration->Fill(2., static_cast<double>(nBadLink1));
+  m_DetailedConfiguration->Fill(3., static_cast<double>(nBadChips));
+  m_DetailedConfiguration->Fill(4., static_cast<double>(nBadStripsExclusive) / 100.);
 
   ATH_MSG_DEBUG("-----------------------------------------------------------------------");
   ATH_MSG_DEBUG("Number of bad modules                          = " << nBadMods);
@@ -2131,6 +2100,6 @@ double SCTErrMonTool::calculateDetectorCoverage( const TH2F* histo )
             }
         }
     }
-  detector_coverage = 100. * double( occupancy )/( double( m_nBinsEta ) * double ( m_nBinsPhi ) );
+  detector_coverage = 100. * static_cast<double>( occupancy )/( static_cast<double>( m_nBinsEta ) * static_cast<double>( m_nBinsPhi ) );
   return  detector_coverage;
 }
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx
index 088d69aa7a9..53144e5a99f 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitEffMonTool.cxx
@@ -43,12 +43,12 @@
 #include "TGraphErrors.h"
 
 // std and STL includes
-#include <cmath>
-#include <sstream>
-#include <limits>
 #include <algorithm>
-#include <limits>       // std::numeric_limits
 #include <array>
+#include <cmath>
+#include <limits>       // std::numeric_limits
+#include <memory>
+#include <sstream>
 
 using namespace SCT_Monitoring;
 
@@ -104,41 +104,9 @@ using std::string;
 // Constructor with parameters:
 SCTHitEffMonTool::SCTHitEffMonTool(const string& type, const string& name, const IInterface* parent) :
   ManagedMonitorToolBase(type, name, parent),
-  m_TrackName(std::string("ResolvedSCTTracks")),// original track collection
   m_chrono(nullptr),
   m_badChips(nullptr),
   m_fieldServiceHandle("AtlasFieldSvc", name),
-  m_bunchCrossingTool("Trig::BunchCrossingTool/BunchCrossingTool", this),
-  m_DetectorMode(1), // Barrel = 1, endcap =2, both =3
-  m_RunningMode(2),
-  m_minPixelHits(-1),
-  m_minTRTHits(-1),
-  m_minSCTHits(-1),    // If all 3 of these -1, defaults depend on cosmic/not
-  m_minOtherHits(6),
-  m_maxPhiAngle(40.), // Degrees, 100 implies no cut.
-  m_maxChi2(3.),
-  m_maxD0(10.), // mm of D0
-  m_minPt(1000.), // minimu pt in MeV/c
-  m_effdistcut(2.),
-  m_maxZ0sinTheta(0.),
-  m_maxTracks(500.),
-  m_insideOutOnly(false),
-  m_usemasks(true),
-  m_detailed(false),
-  m_superDetailed(false),
-  m_isCosmic(false),
-  m_isSim(false),
-  m_useTRTPhase(false),
-  m_useSCTorTRT(false),
-  m_requireEnclosingHits(false),
-  m_requireOtherFace(false),
-  m_requireGuardRing(false), // should be returned to true
-  m_vetoBadChips(true),
-  m_chronotime(false),
-  m_useIDGlobal(false),
-  m_residualPullCalculator("Trk::ResidualPullCalculator/ResidualPullCalculator", this),
-  m_rotcreator("InDet::SCT_ClusterOnTrackTool/SCT_ClusterOnTrackTool", this),
-  m_holeSearchTool("InDet::InDetTrackHoleSearchTool", this),
   m_Eff_Total(nullptr),
   m_Eff_TotalBCID(nullptr),
   m_Eff_hashCodeHisto(nullptr),
@@ -164,48 +132,39 @@ SCTHitEffMonTool::SCTHitEffMonTool(const string& type, const string& name, const
   m_badModFineMap(nullptr),
   m_badModMap(nullptr),
   m_badChipMap(nullptr),
+  m_countEvent{0},
   m_pixelId(nullptr),
   m_sctId(nullptr),
-  m_trtId(nullptr),
-  m_comTimeName(std::string("TRT_Phase")),
-  m_eventInfoKey(std::string("EventInfo")){
-  declareProperty("TrackName", m_TrackName);
-  declareProperty("IsCosmic", m_isCosmic);
-  declareProperty("IsSim", m_isSim);
-  declareProperty("UseMasks", m_usemasks);
-  declareProperty("Detailed", m_detailed);
-  declareProperty("SuperDetailed", m_superDetailed);
-  declareProperty("UseTRTPhase", m_useTRTPhase);
-  declareProperty("MaxPhiAngle", m_maxPhiAngle);
-  declareProperty("MinTRTHits", m_minTRTHits);
-  declareProperty("MinSCTHits", m_minSCTHits);
-  declareProperty("MinPixelHits", m_minPixelHits);
-  declareProperty("UseSCTorTRT", m_useSCTorTRT);
-  declareProperty("MinOtherHits", m_minOtherHits);
-  declareProperty("InsideOutOnly", m_insideOutOnly);
-  declareProperty("MaxChi2", m_maxChi2);
-  declareProperty("Maxd0", m_maxD0);
-  declareProperty("MaxZ0sinTheta", m_maxZ0sinTheta);
-  declareProperty("MaxTracks", m_maxTracks);
-  declareProperty("MinPt", m_minPt);
-  declareProperty("RequireEnclosingHits", m_requireEnclosingHits);
-  declareProperty("RequireOtherFace", m_requireOtherFace);
-  declareProperty("RequireGuardRing", m_requireGuardRing);
-  declareProperty("VetoBadChips", m_vetoBadChips);
-  declareProperty("LookAtDatabase", m_usedatabase);
-  declareProperty("DetectorMode", m_DetectorMode);
-  declareProperty("RunningMode", m_RunningMode);
-  declareProperty("effDistanceCut", m_effdistcut);
-  declareProperty("ChronoTime", m_chronotime);
-  declareProperty("SCT_ClusterContainer", m_sctContainerName = std::string("SCT_Clusters"));
-  declareProperty("ROTCreator", m_rotcreator);
-  declareProperty("HoleSearch", m_holeSearchTool);
-  declareProperty("ResPullCalc", m_residualPullCalculator);
-  declareProperty("useIDGlobal", m_useIDGlobal);
+  m_trtId(nullptr) {
+  declareProperty("IsCosmic", m_isCosmic=false);
+  declareProperty("IsSim", m_isSim=false);
+  declareProperty("UseMasks", m_usemasks=false);
+  declareProperty("Detailed", m_detailed=false);
+  declareProperty("SuperDetailed", m_superDetailed=false);
+  declareProperty("UseTRTPhase", m_useTRTPhase=false);
+  declareProperty("MaxPhiAngle", m_maxPhiAngle=40., "Degrees, 100 implies no cut.");
+  declareProperty("MinTRTHits", m_minTRTHits=-1);
+  declareProperty("MinSCTHits", m_minSCTHits=-1, "If all 3 of these -1, defaults depend on cosmic/not");
+  declareProperty("MinPixelHits", m_minPixelHits=-1);
+  declareProperty("UseSCTorTRT", m_useSCTorTRT=false);
+  declareProperty("MinOtherHits", m_minOtherHits=6);
+  declareProperty("InsideOutOnly", m_insideOutOnly=false);
+  declareProperty("MaxChi2", m_maxChi2=3.);
+  declareProperty("Maxd0", m_maxD0=10., "mm of D0");
+  declareProperty("MaxZ0sinTheta", m_maxZ0sinTheta=0.);
+  declareProperty("MaxTracks", m_maxTracks=500.);
+  declareProperty("MinPt", m_minPt=1000., "minimu pt in MeV/c");
+  declareProperty("RequireEnclosingHits", m_requireEnclosingHits=false);
+  declareProperty("RequireOtherFace", m_requireOtherFace=false);
+  declareProperty("RequireGuardRing", m_requireGuardRing=false, "should be returned to true");
+  declareProperty("VetoBadChips", m_vetoBadChips=true);
+  declareProperty("LookAtDatabase", m_usedatabase=false);
+  declareProperty("DetectorMode", m_DetectorMode=3, "Barrel = 1, endcap =2, both =3");
+  declareProperty("RunningMode", m_RunningMode=2);
+  declareProperty("effDistanceCut", m_effdistcut=2.);
+  declareProperty("ChronoTime", m_chronotime=false);
+  declareProperty("useIDGlobal", m_useIDGlobal=false);
   declareProperty("MagFieldSvc", m_fieldServiceHandle);
-  declareProperty("BunchCrossingTool", m_bunchCrossingTool);
-
-  m_countEvent = 0;
 
   m_Eff_summaryHisto.fill(0);
   m_Eff_summaryHistoFirstBCID.fill(0);
@@ -312,22 +271,22 @@ StatusCode
 SCTHitEffMonTool::initialize() {
   ATH_MSG_INFO("Initializing SCTHitEffMonTool");
 
-  CHECK(detStore()->retrieve(m_sctId, "SCT_ID"));
-  CHECK(detStore()->retrieve(m_pixelId, "PixelID"));
-  CHECK(detStore()->retrieve(m_trtId, "TRT_ID"));
+  ATH_CHECK(detStore()->retrieve(m_sctId, "SCT_ID"));
+  ATH_CHECK(detStore()->retrieve(m_pixelId, "PixelID"));
+  ATH_CHECK(detStore()->retrieve(m_trtId, "TRT_ID"));
 
   if (m_chronotime) {
-    CHECK(service("ChronoStatSvc", m_chrono));
+    ATH_CHECK(service("ChronoStatSvc", m_chrono));
   }
-  CHECK(ManagedMonitorToolBase::initialize());
-  CHECK(m_holeSearchTool.retrieve());
+  ATH_CHECK(ManagedMonitorToolBase::initialize());
+  ATH_CHECK(m_holeSearchTool.retrieve());
   ATH_MSG_INFO("Retrieved hole search tool " << m_holeSearchTool);
-  CHECK(m_residualPullCalculator.retrieve());
+  ATH_CHECK(m_residualPullCalculator.retrieve());
   ATH_MSG_INFO("Retrieved pull calculator tool " << m_residualPullCalculator);
-  CHECK(m_rotcreator.retrieve());
+  ATH_CHECK(m_rotcreator.retrieve());
   ATH_MSG_INFO("Retrieved tool " << m_rotcreator);
-  CHECK(m_fieldServiceHandle.retrieve());
-  CHECK(m_bunchCrossingTool.retrieve());
+  ATH_CHECK(m_fieldServiceHandle.retrieve());
+  ATH_CHECK(m_bunchCrossingTool.retrieve());
   ATH_MSG_INFO("Retrieved BunchCrossing tool " << m_bunchCrossingTool);
 
   m_path = (m_useIDGlobal) ? ("/InDetGlobal/") : ("");
@@ -373,9 +332,8 @@ SCTHitEffMonTool::bookHistograms() {
   if (newRunFlag()) {
     m_badChips = m_configConditions->badChips();
     ATH_MSG_INFO("Found " << m_badChips->size() << " bad chips");
-    for (std::map<Identifier, unsigned int>::const_iterator chip(m_badChips->begin()); chip != m_badChips->end();
-         ++chip) {
-      ATH_MSG_VERBOSE("Module " << m_sctId->wafer_hash(chip->first) << ", chip " << chip->second);
+    for (const std::pair<Identifier, unsigned int>& chip: *m_badChips) {
+      ATH_MSG_VERBOSE("Module " << m_sctId->wafer_hash(chip.first) << ", chip " << chip.second);
     }
 
     std::array < MonGroup, N_REGIONS + 1 > histGroupE = {{
@@ -398,63 +356,63 @@ SCTHitEffMonTool::bookHistograms() {
       MonGroup(this, m_path + histogramPath[GENERAL_INDEX], run, ATTRIB_UNMANAGED)
     }};
 
-    CHECK(bookEffHisto(m_Eff_Total, histGroupE[GENERAL_INDEX], "SctTotalEff", "SCT Total Efficiency", N_REGIONS, 0,
+    ATH_CHECK(bookEffHisto(m_Eff_Total, histGroupE[GENERAL_INDEX], "SctTotalEff", "SCT Total Efficiency", N_REGIONS, 0,
                        N_REGIONS));
     for (Int_t i(0); i != 3; ++i) {
       m_Eff_Total->GetXaxis()->SetBinLabel(i + 1, subDetName[i]);
     }
-    CHECK(bookEffHisto(m_Eff_TotalBCID, histGroupE[GENERAL_INDEX], "SctTotalEffBCID",
+    ATH_CHECK(bookEffHisto(m_Eff_TotalBCID, histGroupE[GENERAL_INDEX], "SctTotalEffBCID",
                        "SCT Total Efficiency for First BCID", N_REGIONS, 0, N_REGIONS));
     for (Int_t i(0); i != 3; ++i) {
       m_Eff_TotalBCID->GetXaxis()->SetBinLabel(i + 1, subDetName[i]);
     }
-    CHECK(bookEffHisto(m_Eff_hashCodeHisto, histGroupE[GENERAL_INDEX], "effHashCode", "Efficiency vs module Hash code",
+    ATH_CHECK(bookEffHisto(m_Eff_hashCodeHisto, histGroupE[GENERAL_INDEX], "effHashCode", "Efficiency vs module Hash code",
                        n_mod[GENERAL_INDEX] * 2, -0.5, n_mod[GENERAL_INDEX] * 2 - 0.5));
     m_Eff_hashCodeHisto->GetXaxis()->SetTitle("Module Hash Code");
     m_Eff_hashCodeHisto->GetYaxis()->SetTitle("Efficiency");
-    CHECK(bookEffHisto(m_Eff_LumiBlockHisto_Total, histGroupE[GENERAL_INDEX], "effLumiBlock",
+    ATH_CHECK(bookEffHisto(m_Eff_LumiBlockHisto_Total, histGroupE[GENERAL_INDEX], "effLumiBlock",
                        "Efficiency vs Luminosity block", NBINS_LBs, 0.5, NBINS_LBs + 0.5));
     m_Eff_LumiBlockHisto_Total->GetXaxis()->SetTitle("Luminosity block");
     m_Eff_LumiBlockHisto_Total->GetYaxis()->SetTitle("Efficiency");
-    CHECK(bookEffHisto(m_effdistribution, histGroupE[GENERAL_INDEX], "SctEffDistribution",
+    ATH_CHECK(bookEffHisto(m_effdistribution, histGroupE[GENERAL_INDEX], "SctEffDistribution",
                        "SCT Efficiency Distribution", 500, 0, 1));
     m_effdistribution->GetXaxis()->SetTitle("Efficiency");
     m_effdistribution->GetYaxis()->SetTitle("Links");
 
     if (m_detailed) {
-      CHECK(bookEffHisto(m_SCTNHitHisto, histGroupE[BARREL_INDEX], "SCTNHit", "Number of total SCT hits", 30, -0.5,
+      ATH_CHECK(bookEffHisto(m_SCTNHitHisto, histGroupE[BARREL_INDEX], "SCTNHit", "Number of total SCT hits", 30, -0.5,
                          29.5));
-      CHECK(bookEffHisto(m_barrelNHitHisto, histGroupE[BARREL_INDEX], "barrelNHit", "Number of hits in B", 30, -0.5,
+      ATH_CHECK(bookEffHisto(m_barrelNHitHisto, histGroupE[BARREL_INDEX], "barrelNHit", "Number of hits in B", 30, -0.5,
                          29.5));
-      CHECK(bookEffHisto(m_pNHitHisto, histGroupE[BARREL_INDEX], "pNHit", "Number of hits in EA", 30, -0.5, 29.5));
-      CHECK(bookEffHisto(m_mNHitHisto, histGroupE[BARREL_INDEX], "mNHit", "Number of hits in EC", 30, -0.5, 29.5));
-      CHECK(bookEffHisto(m_trtNHitHisto, histGroupE[BARREL_INDEX], "trtNHit", "Number of TRT hits", 140, -0.5, 139.5));
-      CHECK(bookEffHisto(m_pixelNHitHisto, histGroupE[BARREL_INDEX], "pixelNHit", "Number of pixel hits", 30, -0.5,
+      ATH_CHECK(bookEffHisto(m_pNHitHisto, histGroupE[BARREL_INDEX], "pNHit", "Number of hits in EA", 30, -0.5, 29.5));
+      ATH_CHECK(bookEffHisto(m_mNHitHisto, histGroupE[BARREL_INDEX], "mNHit", "Number of hits in EC", 30, -0.5, 29.5));
+      ATH_CHECK(bookEffHisto(m_trtNHitHisto, histGroupE[BARREL_INDEX], "trtNHit", "Number of TRT hits", 140, -0.5, 139.5));
+      ATH_CHECK(bookEffHisto(m_pixelNHitHisto, histGroupE[BARREL_INDEX], "pixelNHit", "Number of pixel hits", 30, -0.5,
                          29.5));
-      CHECK(bookEffHisto(m_hashCodeHisto, histGroupE[BARREL_INDEX], "hashCode", "module Hash code",
+      ATH_CHECK(bookEffHisto(m_hashCodeHisto, histGroupE[BARREL_INDEX], "hashCode", "module Hash code",
                          n_mod[GENERAL_INDEX] * 2, -0.5, n_mod[GENERAL_INDEX] * 2 - 0.5));
 
-      CHECK(bookEffHisto(m_d0TkHisto, histGroupE[GENERAL], "D0Tk", "Track D0", 50, -500., 500.));
-      CHECK(bookEffHisto(m_z0TkHisto, histGroupE[GENERAL], "Z0Tk", "Track Z0", 500, -500., 500.));
-      CHECK(bookEffHisto(m_PtTkHisto, histGroupE[GENERAL], "PtTk", "log10 Track Pt", 40, 2., 6.));
-      CHECK(bookEffHisto(m_nTrkHisto, histGroupE[GENERAL], "nTrk", "num Tracks", 400, -0.5, 399.5));
-      CHECK(bookEffHisto(m_etaTkHisto, histGroupE[GENERAL], "EtaTk", "Track Eta", 100, -2.5, 2.5));
-      CHECK(bookEffHisto(m_d0PrecTkHisto, histGroupE[GENERAL], "D0Tk-prec", "Track D0 prec", 100, -25., 25.));
-      CHECK(bookEffHisto(m_nTrkParsHisto, histGroupE[GENERAL], "nTrk pars", "num Tracks pars", 400, -0.5, 399.5));
-      CHECK(bookEffHisto(m_nTrkGoodHisto, histGroupE[GENERAL], "nTrk good", "num Tracks good", 400, -0.5, 399.5));
+      ATH_CHECK(bookEffHisto(m_d0TkHisto, histGroupE[GENERAL], "D0Tk", "Track D0", 50, -500., 500.));
+      ATH_CHECK(bookEffHisto(m_z0TkHisto, histGroupE[GENERAL], "Z0Tk", "Track Z0", 500, -500., 500.));
+      ATH_CHECK(bookEffHisto(m_PtTkHisto, histGroupE[GENERAL], "PtTk", "log10 Track Pt", 40, 2., 6.));
+      ATH_CHECK(bookEffHisto(m_nTrkHisto, histGroupE[GENERAL], "nTrk", "num Tracks", 400, -0.5, 399.5));
+      ATH_CHECK(bookEffHisto(m_etaTkHisto, histGroupE[GENERAL], "EtaTk", "Track Eta", 100, -2.5, 2.5));
+      ATH_CHECK(bookEffHisto(m_d0PrecTkHisto, histGroupE[GENERAL], "D0Tk-prec", "Track D0 prec", 100, -25., 25.));
+      ATH_CHECK(bookEffHisto(m_nTrkParsHisto, histGroupE[GENERAL], "nTrk pars", "num Tracks pars", 400, -0.5, 399.5));
+      ATH_CHECK(bookEffHisto(m_nTrkGoodHisto, histGroupE[GENERAL], "nTrk good", "num Tracks good", 400, -0.5, 399.5));
     }
     if (m_superDetailed) {
-      CHECK(bookEffHisto(m_LumiBlock, histGroupE[GENERAL], "LumiBlocks", "Luminosity blocks", NBINS_LBs, 0.5, NBINS_LBs + 0.5));
-      CHECK(bookEffHisto(m_effHashLumiB, histGroupE[GENERAL], "effHashCodeLumiBlock",
+      ATH_CHECK(bookEffHisto(m_LumiBlock, histGroupE[GENERAL], "LumiBlocks", "Luminosity blocks", NBINS_LBs, 0.5, NBINS_LBs + 0.5));
+      ATH_CHECK(bookEffHisto(m_effHashLumiB, histGroupE[GENERAL], "effHashCodeLumiBlock",
                          "Modules efficiencies vs. lumi. block",
                          n_mod[GENERAL_INDEX] * 2, -0.5, n_mod[GENERAL_INDEX] * 2 - 0.5, NBINS_LBs, 0.5, NBINS_LBs + 0.5));
       m_badModMap = new TGraphErrors();
       m_badModMap->SetName("MapOfDisabledModules");
-      CHECK(histGroupE[GENERAL].regGraph(m_badModMap));
+      ATH_CHECK(histGroupE[GENERAL].regGraph(m_badModMap));
       m_badChipMap = new TGraphErrors();
       m_badChipMap->SetName("MapOfDisabledChips");
-      CHECK(histGroupE[GENERAL].regGraph(m_badChipMap));
-      CHECK(bookEffHisto(m_badModFineMap, histGroupE[GENERAL], "FineMapOfDisabledModules", "", 60, -3, 3, 64, -3.2,
+      ATH_CHECK(histGroupE[GENERAL].regGraph(m_badChipMap));
+      ATH_CHECK(bookEffHisto(m_badModFineMap, histGroupE[GENERAL], "FineMapOfDisabledModules", "", 60, -3, 3, 64, -3.2,
                          3.2));
     }
     // Booking efficiency maps
@@ -497,7 +455,7 @@ SCTHitEffMonTool::bookHistograms() {
         }
         for (Long_t j(0); j != 2; ++j) {
           // book inefficiency histogram
-          CHECK(bookEffHisto(m_ineffMap[detIndex][j], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_ineffMap[detIndex][j], histGroupE[isub],
                              ineffMapName[isub] + i + "_" + j,
                              "Hit inefficiency of" + layerName[isub] + i + " / side " + j + " in " + subDetName[isub],
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
@@ -506,7 +464,7 @@ SCTHitEffMonTool::bookHistograms() {
           m_ineffMap[detIndex][j]->GetYaxis()->SetTitle("Index in the direction of #phi");
           //
 
-          CHECK(bookEffHisto(m_effMap[detIndex][j], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_effMap[detIndex][j], histGroupE[isub],
                              mapName[isub] + i + "_" + j,
                              "Hit efficiency of" + layerName[isub] + i + " / side " + j + " in " + subDetName[isub],
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
@@ -514,7 +472,7 @@ SCTHitEffMonTool::bookHistograms() {
           m_effMap[detIndex][j]->GetXaxis()->SetTitle("Index in the direction of #eta");
           m_effMap[detIndex][j]->GetYaxis()->SetTitle("Index in the direction of #phi");
 
-          CHECK(bookEffHisto(m_effMapFirstBCID[detIndex][j], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_effMapFirstBCID[detIndex][j], histGroupE[isub],
                              mapName[isub] + i + "_" + j + "_bcid",
                              "Hit efficiency of" + layerName[isub] + i + " / side " + j + " in " + subDetName[isub] + " for first BCID",
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
@@ -522,7 +480,7 @@ SCTHitEffMonTool::bookHistograms() {
           m_effMapFirstBCID[detIndex][j]->GetXaxis()->SetTitle("Index in the direction of #eta");
           m_effMapFirstBCID[detIndex][j]->GetYaxis()->SetTitle("Index in the direction of #phi");
 
-          CHECK(bookEffHisto(m_effLumiBlock[detIndex][j], histGroupL[isub],
+          ATH_CHECK(bookEffHisto(m_effLumiBlock[detIndex][j], histGroupL[isub],
                              effLumiName[isub] + i + "_" + j,
                              "Efficiency vs LumiBlock of" + layerName[isub] + i + " / side " + j + " in " +
                              subDetName[isub],
@@ -532,36 +490,36 @@ SCTHitEffMonTool::bookHistograms() {
         }
 
         if (m_superDetailed) {
-          CHECK(bookEffHisto(m_accMap[detIndex], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_accMap[detIndex], histGroupE[isub],
                              "nDisabledChips_" + subDetNameShort[isub] + "_" + i,
                              "Map of the acceptance for" + layerName[isub] + i + " in " + subDetName[isub],
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
                              n_phibins[isub], f_phibin[isub] - .5, l_phibin[isub] + .5));
           TString resid("xlResidual_");
-          CHECK(bookEffHisto(m_xlResidualHisto[isub][i], histGroupE[isub], resid + i, resid + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualHisto[isub][i], histGroupE[isub], resid + i, resid + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_xlResidualE0Histo[isub][i], histGroupE[isub], resid + "eta0_" + i, resid + "eta0_" + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualE0Histo[isub][i], histGroupE[isub], resid + "eta0_" + i, resid + "eta0_" + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_xlResidualE1Histo[isub][i], histGroupE[isub], resid + "eta1_" + i, resid + "eta1_" + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualE1Histo[isub][i], histGroupE[isub], resid + "eta1_" + i, resid + "eta1_" + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_xlResidualUnasHisto[isub][i], histGroupE[isub], resid + "unas_" + i, resid + "unas_" + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualUnasHisto[isub][i], histGroupE[isub], resid + "unas_" + i, resid + "unas_" + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i], histGroupE[isub], TString("residlayer") + i,
+          ATH_CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i], histGroupE[isub], TString("residlayer") + i,
                              TString("residlayer") + i,
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
                              n_phibins[isub], f_phibin[isub] - .5, l_phibin[isub] + .5));
-          CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i + 1], histGroupE[isub], TString("residlayer") + i + ".5",
+          ATH_CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i + 1], histGroupE[isub], TString("residlayer") + i + ".5",
                              TString("residlayer") + i + ".5",
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
                              n_phibins[isub], f_phibin[isub] - .5, l_phibin[isub] + .5));
         }
       }
 
-      CHECK(bookEffHisto(m_Eff_summaryHisto[isub], histGroupShift[isub], sumeff[isub], sumefftitle[isub],
+      ATH_CHECK(bookEffHisto(m_Eff_summaryHisto[isub], histGroupShift[isub], sumeff[isub], sumefftitle[isub],
                          2 * n_layers[isub], 0., n_layers[isub]));
-      CHECK(bookEffHisto(m_Eff_summaryHistoFirstBCID[isub], histGroupShift[isub], sumeffBCID[isub],
+      ATH_CHECK(bookEffHisto(m_Eff_summaryHistoFirstBCID[isub], histGroupShift[isub], sumeffBCID[isub],
                          sumefftitleBCID[isub], 2 * n_layers[isub], 0., n_layers[isub]));
-      CHECK(bookEffHisto(m_Eff_summaryHisto_old[isub], histGroupShift[isub], sumeff_old[isub], sumefftitle[isub],
+      ATH_CHECK(bookEffHisto(m_Eff_summaryHisto_old[isub], histGroupShift[isub], sumeff_old[isub], sumefftitle[isub],
                          2 * n_layers[isub], 0., n_layers[isub]));
       unsigned int limit[3] = {
         N_DISKSx2, N_BARRELSx2, N_DISKSx2
@@ -577,139 +535,139 @@ SCTHitEffMonTool::bookHistograms() {
       m_Eff_summaryHistoFirstBCID[isub]->GetYaxis()->SetTitle("Efficiency");
       m_Eff_summaryHisto_old[isub]->GetYaxis()->SetTitle("Efficiency");
 
-      CHECK(bookEffHisto(m_Eff_LumiBlockHisto[isub], histGroupE[isub], "effLumiBlock",
+      ATH_CHECK(bookEffHisto(m_Eff_LumiBlockHisto[isub], histGroupE[isub], "effLumiBlock",
                          "Efficiency vs Luminosity block in " + subDetName[isub], NBINS_LBs, 0.5, NBINS_LBs + 0.5));
       m_Eff_LumiBlockHisto[isub]->GetXaxis()->SetTitle("Luminosity block");
       m_Eff_LumiBlockHisto[isub]->GetYaxis()->SetTitle("Efficiency");
 
       if (m_detailed) {
-        CHECK(bookEffHisto(m_nTrkUsedHisto[isub], histGroupE[isub], "nTrk Used", "nTrk used", 50, -0.5, 49.5));
-        CHECK(bookEffHisto(m_probEnclosedHisto[isub], histGroupE[isub], "probEnclosed", "Probability Enclosed",
+        ATH_CHECK(bookEffHisto(m_nTrkUsedHisto[isub], histGroupE[isub], "nTrk Used", "nTrk used", 50, -0.5, 49.5));
+        ATH_CHECK(bookEffHisto(m_probEnclosedHisto[isub], histGroupE[isub], "probEnclosed", "Probability Enclosed",
                            2 * n_layers[isub], -.25, n_layers[isub] - .25));
-        CHECK(bookEffHisto(m_EventHisto[isub], histGroupE[isub], "EventNo", "Event No", 800, 0., 40000000.));
-        CHECK(bookEffHisto(m_Eff_EventHisto[isub], histGroupE[isub], "effEventNo", "Efficiency v Event no.", 800, 0.,
+        ATH_CHECK(bookEffHisto(m_EventHisto[isub], histGroupE[isub], "EventNo", "Event No", 800, 0., 40000000.));
+        ATH_CHECK(bookEffHisto(m_Eff_EventHisto[isub], histGroupE[isub], "effEventNo", "Efficiency v Event no.", 800, 0.,
                            40000000.));
-        CHECK(bookEffHisto(m_SelectionHisto[isub], histGroupE[isub], "selectionCuts", "Selection Cuts", 12, -0.5,
+        ATH_CHECK(bookEffHisto(m_SelectionHisto[isub], histGroupE[isub], "selectionCuts", "Selection Cuts", 12, -0.5,
                            11.5));
-        CHECK(bookEffHisto(m_Eff_SelectionHisto[isub], histGroupE[isub], "effSelectionCuts",
+        ATH_CHECK(bookEffHisto(m_Eff_SelectionHisto[isub], histGroupE[isub], "effSelectionCuts",
                            "Efficiency v Selection Cuts", 12, -0.5, 11.5));
         for (Int_t bin(0); bin != 12; ++bin) {
           m_SelectionHisto[isub]->GetXaxis()->SetBinLabel(bin + 1, selecName[bin]);
           m_Eff_SelectionHisto[isub]->GetXaxis()->SetBinLabel(bin + 1, selecName[bin]);
         }
-        CHECK(bookEffHisto(m_ResidualHisto[isub], histGroupE[isub], "residuals", "Residuals", 2000, -10, 10));
-        CHECK(bookEffHisto(m_ResidualUnasHisto[isub], histGroupE[isub], "residualsUnas", "Residuals Unassociated", 2000,
+        ATH_CHECK(bookEffHisto(m_ResidualHisto[isub], histGroupE[isub], "residuals", "Residuals", 2000, -10, 10));
+        ATH_CHECK(bookEffHisto(m_ResidualUnasHisto[isub], histGroupE[isub], "residualsUnas", "Residuals Unassociated", 2000,
                            -10, 10));
-        CHECK(bookEffHisto(m_ResidualMissHisto[isub], histGroupE[isub], "residualsMiss", "Residuals Miss", 2000, -10,
+        ATH_CHECK(bookEffHisto(m_ResidualMissHisto[isub], histGroupE[isub], "residualsMiss", "Residuals Miss", 2000, -10,
                            10));
-        CHECK(bookEffHisto(m_Unas_summaryHisto[isub], histGroupE[isub], "summaryunas",
+        ATH_CHECK(bookEffHisto(m_Unas_summaryHisto[isub], histGroupE[isub], "summaryunas",
                            "Summary Module Unassociated Per Event", 2 * 9, 0., 9.));
-        CHECK(bookEffHisto(m_chi2Histo[isub], histGroupE[isub], "chi2", "Chi2", 50, 0., 10.));
-        CHECK(bookEffHisto(m_Eff_chi2Histo[isub], histGroupE[isub], "effChi2", "Efficiency v Chi2", 25, 0., 10.));
-        CHECK(bookEffHisto(m_Eff_chi2HistoFinal[isub], histGroupE[isub], "effChi2Final", "Efficiency v Chi2, Final", 25,
+        ATH_CHECK(bookEffHisto(m_chi2Histo[isub], histGroupE[isub], "chi2", "Chi2", 50, 0., 10.));
+        ATH_CHECK(bookEffHisto(m_Eff_chi2Histo[isub], histGroupE[isub], "effChi2", "Efficiency v Chi2", 25, 0., 10.));
+        ATH_CHECK(bookEffHisto(m_Eff_chi2HistoFinal[isub], histGroupE[isub], "effChi2Final", "Efficiency v Chi2, Final", 25,
                            0., 10.));
-        CHECK(bookEffHisto(m_localMissHisto[isub], histGroupE[isub], "localMiss", "local position, hole", 40, -40., 40.,
+        ATH_CHECK(bookEffHisto(m_localMissHisto[isub], histGroupE[isub], "localMiss", "local position, hole", 40, -40., 40.,
                            40, -80., 80.));
-        CHECK(bookEffHisto(m_localUnasHisto[isub], histGroupE[isub], "localUnas", "local position, unassociated hit",
+        ATH_CHECK(bookEffHisto(m_localUnasHisto[isub], histGroupE[isub], "localUnas", "local position, unassociated hit",
                            40, -40., 40., 40, -80., 80.));
-        CHECK(bookEffHisto(m_Eff_etaHisto[isub], histGroupE[isub], "effEta", "Efficiency versus track eta", 30, -2.8,
+        ATH_CHECK(bookEffHisto(m_Eff_etaHisto[isub], histGroupE[isub], "effEta", "Efficiency versus track eta", 30, -2.8,
                            2.8));
-        CHECK(bookEffHisto(m_Eff_etaPhiCutHisto[isub], histGroupE[isub], "effEtaPhiCut",
+        ATH_CHECK(bookEffHisto(m_Eff_etaPhiCutHisto[isub], histGroupE[isub], "effEtaPhiCut",
                            "Efficiency versus track eta, phi cut", 30, -2.8, 2.8));
-        CHECK(bookEffHisto(m_Eff_otherFaceHisto[isub], histGroupE[isub], "effOtherFace",
+        ATH_CHECK(bookEffHisto(m_Eff_otherFaceHisto[isub], histGroupE[isub], "effOtherFace",
                            "Efficiency versus other face hit y/n", 3, -1.5, 1.5));
-        CHECK(bookEffHisto(m_Unas_otherFaceHisto[isub], histGroupE[isub], "effOtherFaceUnas",
+        ATH_CHECK(bookEffHisto(m_Unas_otherFaceHisto[isub], histGroupE[isub], "effOtherFaceUnas",
                            "other face hit Unassociated per event", 3, -1.5, 1.5));
-        CHECK(bookEffHisto(m_Eff_nSCTHisto[isub], histGroupE[isub], "effNSCT", "Efficiency versus Number of SCT hits",
+        ATH_CHECK(bookEffHisto(m_Eff_nSCTHisto[isub], histGroupE[isub], "effNSCT", "Efficiency versus Number of SCT hits",
                            30, -0.5, 29.5));
-        CHECK(bookEffHisto(m_Eff_nTRTHisto[isub], histGroupE[isub], "effNTRT", "Efficiency versus Number of TRT hits",
+        ATH_CHECK(bookEffHisto(m_Eff_nTRTHisto[isub], histGroupE[isub], "effNTRT", "Efficiency versus Number of TRT hits",
                            70, -1, 139.));
-        CHECK(bookEffHisto(m_Eff_nOtherHisto[isub], histGroupE[isub], "effNOther",
+        ATH_CHECK(bookEffHisto(m_Eff_nOtherHisto[isub], histGroupE[isub], "effNOther",
                            "Efficiency versus Number of other SCT  sides hit", 30, -0.5, 29.5));
-        CHECK(bookEffHisto(m_nOtherHisto[isub], histGroupE[isub], "nOther", "Number of other SCT barrel sides hit", 30,
+        ATH_CHECK(bookEffHisto(m_nOtherHisto[isub], histGroupE[isub], "nOther", "Number of other SCT barrel sides hit", 30,
                            -0.5, 29.5));
-        CHECK(bookEffHisto(m_timecorHisto[isub], histGroupE[isub], "timecor", "TRT phase", 120, -50.5, 69.5));
-        CHECK(bookEffHisto(m_Eff_timecorHisto[isub], histGroupE[isub], "effTimecor", "Efficiency vs TRT phase", 120,
+        ATH_CHECK(bookEffHisto(m_timecorHisto[isub], histGroupE[isub], "timecor", "TRT phase", 120, -50.5, 69.5));
+        ATH_CHECK(bookEffHisto(m_Eff_timecorHisto[isub], histGroupE[isub], "effTimecor", "Efficiency vs TRT phase", 120,
                            -50.5, 69.5));
-        CHECK(bookEffHisto(m_Eff_xlocHisto[isub], histGroupE[isub], "effXloc", "Module Efficiency by x local", 32, -32.,
+        ATH_CHECK(bookEffHisto(m_Eff_xlocHisto[isub], histGroupE[isub], "effXloc", "Module Efficiency by x local", 32, -32.,
                            32.));
-        CHECK(bookEffHisto(m_Eff_ylocHistos[isub], histGroupE[isub], "effYloc", "Module Efficiency by y local", 32,
+        ATH_CHECK(bookEffHisto(m_Eff_ylocHistos[isub], histGroupE[isub], "effYloc", "Module Efficiency by y local", 32,
                            -64., 64.));
-        CHECK(bookEffHisto(m_Unas_xlocHisto[isub], histGroupE[isub], "unasXloc",
+        ATH_CHECK(bookEffHisto(m_Unas_xlocHisto[isub], histGroupE[isub], "unasXloc",
                            "Unassociated hit per event by x local", 32, -32., 32.));
-        CHECK(bookEffHisto(m_Unas_ylocHisto[isub], histGroupE[isub], "unasYloc",
+        ATH_CHECK(bookEffHisto(m_Unas_ylocHisto[isub], histGroupE[isub], "unasYloc",
                            "Unassociated hit per event by y local", 32, -64., 64.));
-        CHECK(bookEffHisto(m_Eff_ptiHisto[isub], histGroupE[isub], "effPti", "Module Efficiency by q/p", 20, -0.002,
+        ATH_CHECK(bookEffHisto(m_Eff_ptiHisto[isub], histGroupE[isub], "effPti", "Module Efficiency by q/p", 20, -0.002,
                            0.002));
-        CHECK(bookEffHisto(m_Eff_ptHisto[isub], histGroupE[isub], "effPt", "Module Efficiency by log10 |p|", 40, 2.,
+        ATH_CHECK(bookEffHisto(m_Eff_ptHisto[isub], histGroupE[isub], "effPt", "Module Efficiency by log10 |p|", 40, 2.,
                            6.));
-        CHECK(bookEffHisto(m_Unas_ptiHisto[isub], histGroupE[isub], "unasPti", "Unassociated Hit per event by q/p", 20,
+        ATH_CHECK(bookEffHisto(m_Unas_ptiHisto[isub], histGroupE[isub], "unasPti", "Unassociated Hit per event by q/p", 20,
                            -0.002, 0.002));
-        CHECK(bookEffHisto(m_Unas_phiHisto[isub], histGroupE[isub], "unasPhi",
+        ATH_CHECK(bookEffHisto(m_Unas_phiHisto[isub], histGroupE[isub], "unasPhi",
                            "Unassociated hit per event by phi local", 30, -90., 90.));
-        CHECK(bookEffHisto(m_Eff_phiHisto[isub], histGroupE[isub], "effPhi", "Module Efficiency by Phi", 30, -90.,
+        ATH_CHECK(bookEffHisto(m_Eff_phiHisto[isub], histGroupE[isub], "effPhi", "Module Efficiency by Phi", 30, -90.,
                            90.));
-        CHECK(bookEffHisto(m_Eff_phiEtaCutHisto[isub], histGroupE[isub], "effPhiEtaCut",
+        ATH_CHECK(bookEffHisto(m_Eff_phiEtaCutHisto[isub], histGroupE[isub], "effPhiEtaCut",
                            "Module Efficiency by Phi, Eta cut", 30, -90., 90.));
-        CHECK(bookEffHisto(m_Eff_phiHistoFinal[isub], histGroupE[isub], "effPhiFinal", "Module Efficiency by Phi Final",
+        ATH_CHECK(bookEffHisto(m_Eff_phiHistoFinal[isub], histGroupE[isub], "effPhiFinal", "Module Efficiency by Phi Final",
                            30, -90., 90.));
-        CHECK(bookEffHisto(m_Eff_d0Histo[isub], histGroupE[isub], "effD0", "Module Efficiency by D0", 10, -500., 500.));
-        CHECK(bookEffHisto(m_Eff_d0PrecHisto[isub], histGroupE[isub], "effD0Prec", "Module Efficiency by D0 prec", 25,
+        ATH_CHECK(bookEffHisto(m_Eff_d0Histo[isub], histGroupE[isub], "effD0", "Module Efficiency by D0", 10, -500., 500.));
+        ATH_CHECK(bookEffHisto(m_Eff_d0PrecHisto[isub], histGroupE[isub], "effD0Prec", "Module Efficiency by D0 prec", 25,
                            -25., 25.));
-        CHECK(bookEffHisto(m_Eff_z0Histo[isub], histGroupE[isub], "effZ0", "Module Efficiency by Z0", 10, -1000.,
+        ATH_CHECK(bookEffHisto(m_Eff_z0Histo[isub], histGroupE[isub], "effZ0", "Module Efficiency by Z0", 10, -1000.,
                            1000.));
-        CHECK(bookEffHisto(m_etaTkUsedHisto[isub], histGroupE[isub], "EtaTkUsed", "Used Track Eta", 100, -2.8, 2.8));
-        CHECK(bookEffHisto(m_phiTkUsedHisto[isub], histGroupE[isub], "PhiTkUsed", "Used Track Phi", 50, -3.142, 3.142));
-        CHECK(bookEffHisto(m_ptiTkUsedHisto[isub], histGroupE[isub], "PtiTkUsed", "Used Track q/p (MeV)", 50, -0.002,
+        ATH_CHECK(bookEffHisto(m_etaTkUsedHisto[isub], histGroupE[isub], "EtaTkUsed", "Used Track Eta", 100, -2.8, 2.8));
+        ATH_CHECK(bookEffHisto(m_phiTkUsedHisto[isub], histGroupE[isub], "PhiTkUsed", "Used Track Phi", 50, -3.142, 3.142));
+        ATH_CHECK(bookEffHisto(m_ptiTkUsedHisto[isub], histGroupE[isub], "PtiTkUsed", "Used Track q/p (MeV)", 50, -0.002,
                            0.002));
-        CHECK(bookEffHisto(m_ptTkUsedHisto[isub], histGroupE[isub], "PtTkUsed", "Used Track log10|p| (MeV)", 40, 2.0,
+        ATH_CHECK(bookEffHisto(m_ptTkUsedHisto[isub], histGroupE[isub], "PtTkUsed", "Used Track log10|p| (MeV)", 40, 2.0,
                            6.));
-        CHECK(bookEffHisto(m_d0TkUsedHisto[isub], histGroupE[isub], "D0TkUsed", "Used Track D0", 50, -500., 500.));
-        CHECK(bookEffHisto(m_d0PrecTkUsedHisto[isub], histGroupE[isub], "D0PrecTkUsed", "Used Track D0 prec", 100, -25.,
+        ATH_CHECK(bookEffHisto(m_d0TkUsedHisto[isub], histGroupE[isub], "D0TkUsed", "Used Track D0", 50, -500., 500.));
+        ATH_CHECK(bookEffHisto(m_d0PrecTkUsedHisto[isub], histGroupE[isub], "D0PrecTkUsed", "Used Track D0 prec", 100, -25.,
                            25.));
-        CHECK(bookEffHisto(m_z0TkUsedHisto[isub], histGroupE[isub], "Z0TkUsed", "Used Track Z0", 50, -1000., 1000.));
-        CHECK(bookEffHisto(m_localHitXHisto[isub], histGroupE[isub], "localHitX", "local x position, hit", 80, -40.,
+        ATH_CHECK(bookEffHisto(m_z0TkUsedHisto[isub], histGroupE[isub], "Z0TkUsed", "Used Track Z0", 50, -1000., 1000.));
+        ATH_CHECK(bookEffHisto(m_localHitXHisto[isub], histGroupE[isub], "localHitX", "local x position, hit", 80, -40.,
                            40.));
-        CHECK(bookEffHisto(m_localHitYHistos[isub], histGroupE[isub], "localHitY", "local y position, hit", 320, -80.,
+        ATH_CHECK(bookEffHisto(m_localHitYHistos[isub], histGroupE[isub], "localHitY", "local y position, hit", 320, -80.,
                            80.));
-        CHECK(bookEffHisto(m_phiLocalHisto[isub], histGroupE[isub], "phiLocal", "local phi of tracks", 60, -90., 90.));
-        CHECK(bookEffHisto(m_phiLocalCutHisto[isub], histGroupE[isub], "phiLocalCut", "local phi of low D0 tracks", 60,
+        ATH_CHECK(bookEffHisto(m_phiLocalHisto[isub], histGroupE[isub], "phiLocal", "local phi of tracks", 60, -90., 90.));
+        ATH_CHECK(bookEffHisto(m_phiLocalCutHisto[isub], histGroupE[isub], "phiLocalCut", "local phi of low D0 tracks", 60,
                            -90., 90.));
-        CHECK(bookEffHisto(m_Eff_nTrk[isub], histGroupE[isub], "effTrk", "Efficiency versus number of tracks", 200, 0,
+        ATH_CHECK(bookEffHisto(m_Eff_nTrk[isub], histGroupE[isub], "effTrk", "Efficiency versus number of tracks", 200, 0,
                            400.));
-        CHECK(bookEffHisto(m_Eff_nGoodTrk[isub], histGroupE[isub], "effGoodTrk",
+        ATH_CHECK(bookEffHisto(m_Eff_nGoodTrk[isub], histGroupE[isub], "effGoodTrk",
                            "Efficiency versus number of good tracks", 200, 0, 400.));
       }
 
       if (m_superDetailed) {
         // CHECK (bookEffHisto(m_Eff_LumiBlockHisto[isub], histGroupE[isub],"effLumiBlock", "Efficiency v Luminosity
         // block",1000,1,1001));
-        CHECK(bookEffHisto(m_inEffStrip[isub], histGroupE[isub],
+        ATH_CHECK(bookEffHisto(m_inEffStrip[isub], histGroupE[isub],
                            "StripInEfficiency" + subDetNameShort[isub], "Strips inefficiencies in " + subDetName[isub],
                            n_mod[isub] * 2, f_mod[isub] * 2 - 0.5, (f_mod[isub] + n_mod[isub]) * 2 - 0.5, N_STRIPS,
                            FIRST_STRIP - 0.5, LAST_STRIP + 0.5));
-        CHECK(bookEffHisto(m_inEffChip[isub], histGroupE[isub],
+        ATH_CHECK(bookEffHisto(m_inEffChip[isub], histGroupE[isub],
                            "ChipInEfficiency" + subDetNameShort[isub], "Chips ineficiencies in " + subDetName[isub],
                            n_mod[isub] * 2, f_mod[isub] * 2 - 0.5, (f_mod[isub] + n_mod[isub]) * 2 - 0.5, N_CHIPS,
                            FIRST_CHIP - 0.5, LAST_CHIP + 0.5));
-        CHECK(bookEffHisto(m_badModPerSide[isub], histGroupE[isub], "badModPerSide", "Number of bad module per side",
+        ATH_CHECK(bookEffHisto(m_badModPerSide[isub], histGroupE[isub], "badModPerSide", "Number of bad module per side",
                            2 * n_layers[isub], 0., n_layers[isub]));
-        CHECK(bookEffHisto(m_holesPerTrackHisto[isub], histGroupE[isub], "holesPerTrack", "Number of holes per track",
+        ATH_CHECK(bookEffHisto(m_holesPerTrackHisto[isub], histGroupE[isub], "holesPerTrack", "Number of holes per track",
                            2 * n_layers[isub], 0, n_layers[isub]));
-        CHECK(bookEffHisto(m_holesDistPerTrackHisto[isub], histGroupE[isub], "holesDistPerTrack",
+        ATH_CHECK(bookEffHisto(m_holesDistPerTrackHisto[isub], histGroupE[isub], "holesDistPerTrack",
                            "Number of holes per track", 2 * n_layers[isub], 0, n_layers[isub]));
-        CHECK(bookEffHisto(m_chi2vPhiHisto[isub], histGroupE[isub], "Chi2vPhi", "Chi2 v Phi", 30, -90., 90.));
-        CHECK(bookEffHisto(m_localHitHisto[isub], histGroupE[isub], "localHit", "local position, hit", 40, -40., 40.,
+        ATH_CHECK(bookEffHisto(m_chi2vPhiHisto[isub], histGroupE[isub], "Chi2vPhi", "Chi2 v Phi", 30, -90., 90.));
+        ATH_CHECK(bookEffHisto(m_localHitHisto[isub], histGroupE[isub], "localHit", "local position, hit", 40, -40., 40.,
                            40, -80., 80.));
-        CHECK(bookEffHisto(m_localHitGHisto[isub], histGroupE[isub], "localHitG", "local position Guard, hit", 40, -40.,
+        ATH_CHECK(bookEffHisto(m_localHitGHisto[isub], histGroupE[isub], "localHitG", "local position Guard, hit", 40, -40.,
                            40., 40, -80., 80.));
-        CHECK(bookEffHisto(m_TwoSidesResiduals[isub], histGroupE[isub], "TwoSidesResiduals", "Two Sides Residuals", 120,
+        ATH_CHECK(bookEffHisto(m_TwoSidesResiduals[isub], histGroupE[isub], "TwoSidesResiduals", "Two Sides Residuals", 120,
                            -3., 3., 120, -3., 3.));
-        CHECK(bookEffHisto(m_TwoSidesResidualsIneff[isub], histGroupE[isub], "TwoSidesResidualsIneff",
+        ATH_CHECK(bookEffHisto(m_TwoSidesResidualsIneff[isub], histGroupE[isub], "TwoSidesResidualsIneff",
                            "Two Sides Residuals (Inefficient/Unas)", 120, -30., 30., 120, -30., 30.));
-        CHECK(bookEffHisto(m_chi2ResidualHisto[isub], histGroupE[isub], "chi2Residual", "Chi2 v Residual", 200, -10.,
+        ATH_CHECK(bookEffHisto(m_chi2ResidualHisto[isub], histGroupE[isub], "chi2Residual", "Chi2 v Residual", 200, -10.,
                            10., 120, 0., 10.));
-        CHECK(bookEffHisto(m_Eff_summaryIncBadMod[isub], histGroupE[isub], "summaryIncBadMod" + subDetNameShort[isub],
+        ATH_CHECK(bookEffHisto(m_Eff_summaryIncBadMod[isub], histGroupE[isub], "summaryIncBadMod" + subDetNameShort[isub],
                            "Efficiency vs. layer including bad sensors",
                            2 * n_layers[isub], 0., n_layers[isub]));
       }
@@ -730,9 +688,8 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
   if (newRunFlag()) {
     m_badChips = m_configConditions->badChips();
     ATH_MSG_INFO("Found " << m_badChips->size() << " bad chips");
-    for (std::map<Identifier, unsigned int>::const_iterator chip(m_badChips->begin()); chip != m_badChips->end();
-         ++chip) {
-      ATH_MSG_VERBOSE("Module " << m_sctId->wafer_hash(chip->first) << ", chip " << chip->second);
+    for (const std::pair<Identifier, unsigned int>& chip: *m_badChips) {
+      ATH_MSG_VERBOSE("Module " << m_sctId->wafer_hash(chip.first) << ", chip " << chip.second);
     }
 
     std::array < MonGroup, N_REGIONS + 1 > histGroupE = {{
@@ -755,57 +712,57 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
       MonGroup(this, m_path + histogramPath[GENERAL_INDEX], run, ATTRIB_UNMANAGED)
     }};
 
-    CHECK(bookEffHisto(m_Eff_Total, histGroupE[GENERAL_INDEX], "SctTotalEff", "SCT Total Efficiency", N_REGIONS, 0,
+    ATH_CHECK(bookEffHisto(m_Eff_Total, histGroupE[GENERAL_INDEX], "SctTotalEff", "SCT Total Efficiency", N_REGIONS, 0,
                        N_REGIONS));
     for (Int_t i(0); i != 3; ++i) {
       m_Eff_Total->GetXaxis()->SetBinLabel(i + 1, subDetName[i]);
     }
-    CHECK(bookEffHisto(m_Eff_TotalBCID, histGroupE[GENERAL_INDEX], "SctTotalEffBCID",
+    ATH_CHECK(bookEffHisto(m_Eff_TotalBCID, histGroupE[GENERAL_INDEX], "SctTotalEffBCID",
                        "SCT Total Efficiency for First BCID", N_REGIONS, 0, N_REGIONS));
     for (Int_t i(0); i != 3; ++i) {
       m_Eff_TotalBCID->GetXaxis()->SetBinLabel(i + 1, subDetName[i]);
     }
-    CHECK(bookEffHisto(m_Eff_hashCodeHisto, histGroupE[GENERAL_INDEX], "effHashCode", "Efficiency vs module Hash code",
+    ATH_CHECK(bookEffHisto(m_Eff_hashCodeHisto, histGroupE[GENERAL_INDEX], "effHashCode", "Efficiency vs module Hash code",
                        n_mod[GENERAL_INDEX] * 2, -0.5, n_mod[GENERAL_INDEX] * 2 - 0.5));
     m_Eff_hashCodeHisto->GetXaxis()->SetTitle("Module Hash Code");
     m_Eff_hashCodeHisto->GetYaxis()->SetTitle("Efficiency");
-    CHECK(bookEffHisto(m_Eff_LumiBlockHisto_Total, histGroupE[GENERAL_INDEX], "effLumiBlock",
+    ATH_CHECK(bookEffHisto(m_Eff_LumiBlockHisto_Total, histGroupE[GENERAL_INDEX], "effLumiBlock",
                        "Efficiency vs Luminosity block", NBINS_LBs, 0.5, NBINS_LBs + 0.5));
 
     if (m_detailed) {
-      CHECK(bookEffHisto(m_SCTNHitHisto, histGroupE[BARREL_INDEX], "SCTNHit", "Number of total SCT hits", 30, -0.5,
+      ATH_CHECK(bookEffHisto(m_SCTNHitHisto, histGroupE[BARREL_INDEX], "SCTNHit", "Number of total SCT hits", 30, -0.5,
                          29.5));
-      CHECK(bookEffHisto(m_barrelNHitHisto, histGroupE[BARREL_INDEX], "barrelNHit", "Number of hits in B", 30, -0.5,
+      ATH_CHECK(bookEffHisto(m_barrelNHitHisto, histGroupE[BARREL_INDEX], "barrelNHit", "Number of hits in B", 30, -0.5,
                          29.5));
-      CHECK(bookEffHisto(m_pNHitHisto, histGroupE[BARREL_INDEX], "pNHit", "Number of hits in EA", 30, -0.5, 29.5));
-      CHECK(bookEffHisto(m_mNHitHisto, histGroupE[BARREL_INDEX], "mNHit", "Number of hits in EC", 30, -0.5, 29.5));
-      CHECK(bookEffHisto(m_trtNHitHisto, histGroupE[BARREL_INDEX], "trtNHit", "Number of TRT hits", 140, -0.5, 139.5));
-      CHECK(bookEffHisto(m_pixelNHitHisto, histGroupE[BARREL_INDEX], "pixelNHit", "Number of pixel hits", 30, -0.5,
+      ATH_CHECK(bookEffHisto(m_pNHitHisto, histGroupE[BARREL_INDEX], "pNHit", "Number of hits in EA", 30, -0.5, 29.5));
+      ATH_CHECK(bookEffHisto(m_mNHitHisto, histGroupE[BARREL_INDEX], "mNHit", "Number of hits in EC", 30, -0.5, 29.5));
+      ATH_CHECK(bookEffHisto(m_trtNHitHisto, histGroupE[BARREL_INDEX], "trtNHit", "Number of TRT hits", 140, -0.5, 139.5));
+      ATH_CHECK(bookEffHisto(m_pixelNHitHisto, histGroupE[BARREL_INDEX], "pixelNHit", "Number of pixel hits", 30, -0.5,
                          29.5));
-      CHECK(bookEffHisto(m_hashCodeHisto, histGroupE[BARREL_INDEX], "hashCode", "module Hash code",
+      ATH_CHECK(bookEffHisto(m_hashCodeHisto, histGroupE[BARREL_INDEX], "hashCode", "module Hash code",
                          n_mod[GENERAL_INDEX] * 2, -0.5, n_mod[GENERAL_INDEX] * 2 - 0.5));
 
-      CHECK(bookEffHisto(m_d0TkHisto, histGroupE[GENERAL], "D0Tk", "Track D0", 50, -500., 500.));
-      CHECK(bookEffHisto(m_z0TkHisto, histGroupE[GENERAL], "Z0Tk", "Track Z0", 500, -500., 500.));
-      CHECK(bookEffHisto(m_PtTkHisto, histGroupE[GENERAL], "PtTk", "log10 Track Pt", 40, 2., 6.));
-      CHECK(bookEffHisto(m_nTrkHisto, histGroupE[GENERAL], "nTrk", "num Tracks", 400, -0.5, 399.5));
-      CHECK(bookEffHisto(m_etaTkHisto, histGroupE[GENERAL], "EtaTk", "Track Eta", 100, -2.5, 2.5));
-      CHECK(bookEffHisto(m_d0PrecTkHisto, histGroupE[GENERAL], "D0Tk-prec", "Track D0 prec", 100, -25., 25.));
-      CHECK(bookEffHisto(m_nTrkParsHisto, histGroupE[GENERAL], "nTrk pars", "num Tracks pars", 400, -0.5, 399.5));
-      CHECK(bookEffHisto(m_nTrkGoodHisto, histGroupE[GENERAL], "nTrk good", "num Tracks good", 400, -0.5, 399.5));
+      ATH_CHECK(bookEffHisto(m_d0TkHisto, histGroupE[GENERAL], "D0Tk", "Track D0", 50, -500., 500.));
+      ATH_CHECK(bookEffHisto(m_z0TkHisto, histGroupE[GENERAL], "Z0Tk", "Track Z0", 500, -500., 500.));
+      ATH_CHECK(bookEffHisto(m_PtTkHisto, histGroupE[GENERAL], "PtTk", "log10 Track Pt", 40, 2., 6.));
+      ATH_CHECK(bookEffHisto(m_nTrkHisto, histGroupE[GENERAL], "nTrk", "num Tracks", 400, -0.5, 399.5));
+      ATH_CHECK(bookEffHisto(m_etaTkHisto, histGroupE[GENERAL], "EtaTk", "Track Eta", 100, -2.5, 2.5));
+      ATH_CHECK(bookEffHisto(m_d0PrecTkHisto, histGroupE[GENERAL], "D0Tk-prec", "Track D0 prec", 100, -25., 25.));
+      ATH_CHECK(bookEffHisto(m_nTrkParsHisto, histGroupE[GENERAL], "nTrk pars", "num Tracks pars", 400, -0.5, 399.5));
+      ATH_CHECK(bookEffHisto(m_nTrkGoodHisto, histGroupE[GENERAL], "nTrk good", "num Tracks good", 400, -0.5, 399.5));
     }
     if (m_superDetailed) {
-      CHECK(bookEffHisto(m_LumiBlock, histGroupE[GENERAL], "LumiBlocks", "Luminosity blocks", NBINS_LBs, 0.5, NBINS_LBs + 0.5));
-      CHECK(bookEffHisto(m_effHashLumiB, histGroupE[GENERAL], "effHashCodeLumiBlock",
+      ATH_CHECK(bookEffHisto(m_LumiBlock, histGroupE[GENERAL], "LumiBlocks", "Luminosity blocks", NBINS_LBs, 0.5, NBINS_LBs + 0.5));
+      ATH_CHECK(bookEffHisto(m_effHashLumiB, histGroupE[GENERAL], "effHashCodeLumiBlock",
                          "Modules efficiencies vs. lumi. block",
                          n_mod[GENERAL_INDEX] * 2, -0.5, n_mod[GENERAL_INDEX] * 2 - 0.5, NBINS_LBs, 0.5, NBINS_LBs + 0.5));
       m_badModMap = new TGraphErrors();
       m_badModMap->SetName("MapOfDisabledModules");
-      CHECK(histGroupE[GENERAL].regGraph(m_badModMap));
+      ATH_CHECK(histGroupE[GENERAL].regGraph(m_badModMap));
       m_badChipMap = new TGraphErrors();
       m_badChipMap->SetName("MapOfDisabledChips");
-      CHECK(histGroupE[GENERAL].regGraph(m_badChipMap));
-      CHECK(bookEffHisto(m_badModFineMap, histGroupE[GENERAL], "FineMapOfDisabledModules", "", 60, -3, 3, 64, -3.2,
+      ATH_CHECK(histGroupE[GENERAL].regGraph(m_badChipMap));
+      ATH_CHECK(bookEffHisto(m_badModFineMap, histGroupE[GENERAL], "FineMapOfDisabledModules", "", 60, -3, 3, 64, -3.2,
                          3.2));
     }
     // Booking efficiency maps
@@ -849,7 +806,7 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
         }
         for (Long_t j(0); j != 2; ++j) {
           // book inefficiency histogram
-          CHECK(bookEffHisto(m_ineffMap[detIndex][j], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_ineffMap[detIndex][j], histGroupE[isub],
                              ineffMapName[isub] + i + "_" + j,
                              "Hit inefficiency of" + layerName[isub] + i + " / side " + j + " in " + subDetName[isub],
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
@@ -858,7 +815,7 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
           m_ineffMap[detIndex][j]->GetYaxis()->SetTitle("Index in the direction of #phi");
           //
 
-          CHECK(bookEffHisto(m_effMap[detIndex][j], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_effMap[detIndex][j], histGroupE[isub],
                              mapName[isub] + i + "_" + j,
                              "Hit efficiency of" + layerName[isub] + i + " / side " + j + " in " + subDetName[isub],
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
@@ -866,7 +823,7 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
           m_effMap[detIndex][j]->GetXaxis()->SetTitle("Index in the direction of #eta");
           m_effMap[detIndex][j]->GetYaxis()->SetTitle("Index in the direction of #phi");
 
-          CHECK(bookEffHisto(m_effMapFirstBCID[detIndex][j], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_effMapFirstBCID[detIndex][j], histGroupE[isub],
                              mapName[isub] + i + "_" + j + "_bcid",
                              "Hit efficiency of" + layerName[isub] + i + " / side " + j + " in " + subDetName[isub] + " for first BCID",
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
@@ -874,7 +831,7 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
           m_effMapFirstBCID[detIndex][j]->GetXaxis()->SetTitle("Index in the direction of #eta");
           m_effMapFirstBCID[detIndex][j]->GetYaxis()->SetTitle("Index in the direction of #phi");
 
-          CHECK(bookEffHisto(m_effLumiBlock[detIndex][j], histGroupL[isub],
+          ATH_CHECK(bookEffHisto(m_effLumiBlock[detIndex][j], histGroupL[isub],
                              effLumiName[isub] + i + "_" + j,
                              "Efficiency vs LumiBlock" + layerName[isub] + i + " / side " + j + " in " +
                              subDetName[isub],
@@ -883,36 +840,36 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
           m_effLumiBlock[detIndex][j]->GetYaxis()->SetTitle("Efficiency");
         }
         if (m_superDetailed) {
-          CHECK(bookEffHisto(m_accMap[detIndex], histGroupE[isub],
+          ATH_CHECK(bookEffHisto(m_accMap[detIndex], histGroupE[isub],
                              "nDisabledChips_" + subDetNameShort[isub] + "_" + i,
                              "Map of the acceptance for" + layerName[isub] + i + " in " + subDetName[isub],
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
                              n_phibins[isub], f_phibin[isub] - .5, l_phibin[isub] + .5));
           TString resid("xlResidual_");
-          CHECK(bookEffHisto(m_xlResidualHisto[isub][i], histGroupE[isub], resid + i, resid + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualHisto[isub][i], histGroupE[isub], resid + i, resid + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_xlResidualE0Histo[isub][i], histGroupE[isub], resid + "eta0_" + i, resid + "eta0_" + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualE0Histo[isub][i], histGroupE[isub], resid + "eta0_" + i, resid + "eta0_" + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_xlResidualE1Histo[isub][i], histGroupE[isub], resid + "eta1_" + i, resid + "eta1_" + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualE1Histo[isub][i], histGroupE[isub], resid + "eta1_" + i, resid + "eta1_" + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_xlResidualUnasHisto[isub][i], histGroupE[isub], resid + "unas_" + i, resid + "unas_" + i,
+          ATH_CHECK(bookEffHisto(m_xlResidualUnasHisto[isub][i], histGroupE[isub], resid + "unas_" + i, resid + "unas_" + i,
                              100, -30.5, 30.5, 100, -60., 60.));
-          CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i], histGroupE[isub], TString("residlayer") + i,
+          ATH_CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i], histGroupE[isub], TString("residlayer") + i,
                              TString("residlayer") + i,
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
                              n_phibins[isub], f_phibin[isub] - .5, l_phibin[isub] + .5));
-          CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i + 1], histGroupE[isub], TString("residlayer") + i + ".5",
+          ATH_CHECK(bookEffHisto(m_layerResidualHistos[isub][2 * i + 1], histGroupE[isub], TString("residlayer") + i + ".5",
                              TString("residlayer") + i + ".5",
                              n_etabins[isub], f_etabin[isub] - .5, l_etabin[isub] + .5,
                              n_phibins[isub], f_phibin[isub] - .5, l_phibin[isub] + .5));
         }
       }
 
-      CHECK(bookEffHisto(m_Eff_summaryHisto[isub], histGroupShift[isub], sumeff[isub], sumefftitle[isub],
+      ATH_CHECK(bookEffHisto(m_Eff_summaryHisto[isub], histGroupShift[isub], sumeff[isub], sumefftitle[isub],
                          2 * n_layers[isub], 0., n_layers[isub]));
-      CHECK(bookEffHisto(m_Eff_summaryHistoFirstBCID[isub], histGroupShift[isub], sumeffBCID[isub],
+      ATH_CHECK(bookEffHisto(m_Eff_summaryHistoFirstBCID[isub], histGroupShift[isub], sumeffBCID[isub],
                          sumefftitleBCID[isub], 2 * n_layers[isub], 0., n_layers[isub]));
-      CHECK(bookEffHisto(m_Eff_summaryHisto_old[isub], histGroupShift[isub], sumeff_old[isub], sumefftitle[isub],
+      ATH_CHECK(bookEffHisto(m_Eff_summaryHisto_old[isub], histGroupShift[isub], sumeff_old[isub], sumefftitle[isub],
                          2 * n_layers[isub], 0., n_layers[isub]));
       unsigned int limit[3] = {
         N_DISKSx2, N_BARRELSx2, N_DISKSx2
@@ -926,137 +883,137 @@ SCTHitEffMonTool::bookHistogramsRecurrent() {
       m_Eff_summaryHisto[isub]->GetYaxis()->SetTitle("Efficiency");
       m_Eff_summaryHistoFirstBCID[isub]->GetYaxis()->SetTitle("Efficiency");
       m_Eff_summaryHisto_old[isub]->GetYaxis()->SetTitle("Efficiency");
-      CHECK(bookEffHisto(m_Eff_LumiBlockHisto[isub], histGroupE[isub], "effLumiBlock",
+      ATH_CHECK(bookEffHisto(m_Eff_LumiBlockHisto[isub], histGroupE[isub], "effLumiBlock",
                          "Efficiency vs Luminosity block in " + subDetName[isub], NBINS_LBs, 0.5, NBINS_LBs + 0.5));
       m_Eff_LumiBlockHisto[isub]->GetXaxis()->SetTitle("Luminosity block");
       m_Eff_LumiBlockHisto[isub]->GetYaxis()->SetTitle("Efficiency");
 
       if (m_detailed) {
-        CHECK(bookEffHisto(m_nTrkUsedHisto[isub], histGroupE[isub], "nTrk Used", "nTrk used", 50, -0.5, 49.5));
-        CHECK(bookEffHisto(m_probEnclosedHisto[isub], histGroupE[isub], "probEnclosed", "Probability Enclosed",
+        ATH_CHECK(bookEffHisto(m_nTrkUsedHisto[isub], histGroupE[isub], "nTrk Used", "nTrk used", 50, -0.5, 49.5));
+        ATH_CHECK(bookEffHisto(m_probEnclosedHisto[isub], histGroupE[isub], "probEnclosed", "Probability Enclosed",
                            2 * n_layers[isub], -.25, n_layers[isub] - .25));
-        CHECK(bookEffHisto(m_EventHisto[isub], histGroupE[isub], "EventNo", "Event No", 800, 0., 40000000.));
-        CHECK(bookEffHisto(m_Eff_EventHisto[isub], histGroupE[isub], "effEventNo", "Efficiency v Event no.", 800, 0.,
+        ATH_CHECK(bookEffHisto(m_EventHisto[isub], histGroupE[isub], "EventNo", "Event No", 800, 0., 40000000.));
+        ATH_CHECK(bookEffHisto(m_Eff_EventHisto[isub], histGroupE[isub], "effEventNo", "Efficiency v Event no.", 800, 0.,
                            40000000.));
-        CHECK(bookEffHisto(m_SelectionHisto[isub], histGroupE[isub], "selectionCuts", "Selection Cuts", 12, -0.5,
+        ATH_CHECK(bookEffHisto(m_SelectionHisto[isub], histGroupE[isub], "selectionCuts", "Selection Cuts", 12, -0.5,
                            11.5));
-        CHECK(bookEffHisto(m_Eff_SelectionHisto[isub], histGroupE[isub], "effSelectionCuts",
+        ATH_CHECK(bookEffHisto(m_Eff_SelectionHisto[isub], histGroupE[isub], "effSelectionCuts",
                            "Efficiency v Selection Cuts", 12, -0.5, 11.5));
         for (Int_t bin(0); bin != 12; ++bin) {
           m_SelectionHisto[isub]->GetXaxis()->SetBinLabel(bin + 1, selecName[bin]);
           m_Eff_SelectionHisto[isub]->GetXaxis()->SetBinLabel(bin + 1, selecName[bin]);
         }
-        CHECK(bookEffHisto(m_ResidualHisto[isub], histGroupE[isub], "residuals", "Residuals", 2000, -10, 10));
-        CHECK(bookEffHisto(m_ResidualUnasHisto[isub], histGroupE[isub], "residualsUnas", "Residuals Unassociated", 2000,
+        ATH_CHECK(bookEffHisto(m_ResidualHisto[isub], histGroupE[isub], "residuals", "Residuals", 2000, -10, 10));
+        ATH_CHECK(bookEffHisto(m_ResidualUnasHisto[isub], histGroupE[isub], "residualsUnas", "Residuals Unassociated", 2000,
                            -10, 10));
-        CHECK(bookEffHisto(m_ResidualMissHisto[isub], histGroupE[isub], "residualsMiss", "Residuals Miss", 2000, -10,
+        ATH_CHECK(bookEffHisto(m_ResidualMissHisto[isub], histGroupE[isub], "residualsMiss", "Residuals Miss", 2000, -10,
                            10));
-        CHECK(bookEffHisto(m_Unas_summaryHisto[isub], histGroupE[isub], "summaryunas",
+        ATH_CHECK(bookEffHisto(m_Unas_summaryHisto[isub], histGroupE[isub], "summaryunas",
                            "Summary Module Unassociated Per Event", 2 * 9, 0., 9.));
-        CHECK(bookEffHisto(m_chi2Histo[isub], histGroupE[isub], "chi2", "Chi2", 50, 0., 10.));
-        CHECK(bookEffHisto(m_Eff_chi2Histo[isub], histGroupE[isub], "effChi2", "Efficiency v Chi2", 25, 0., 10.));
-        CHECK(bookEffHisto(m_Eff_chi2HistoFinal[isub], histGroupE[isub], "effChi2Final", "Efficiency v Chi2, Final", 25,
+        ATH_CHECK(bookEffHisto(m_chi2Histo[isub], histGroupE[isub], "chi2", "Chi2", 50, 0., 10.));
+        ATH_CHECK(bookEffHisto(m_Eff_chi2Histo[isub], histGroupE[isub], "effChi2", "Efficiency v Chi2", 25, 0., 10.));
+        ATH_CHECK(bookEffHisto(m_Eff_chi2HistoFinal[isub], histGroupE[isub], "effChi2Final", "Efficiency v Chi2, Final", 25,
                            0., 10.));
-        CHECK(bookEffHisto(m_localMissHisto[isub], histGroupE[isub], "localMiss", "local position, hole", 40, -40., 40.,
+        ATH_CHECK(bookEffHisto(m_localMissHisto[isub], histGroupE[isub], "localMiss", "local position, hole", 40, -40., 40.,
                            40, -80., 80.));
-        CHECK(bookEffHisto(m_localUnasHisto[isub], histGroupE[isub], "localUnas", "local position, unassociated hit",
+        ATH_CHECK(bookEffHisto(m_localUnasHisto[isub], histGroupE[isub], "localUnas", "local position, unassociated hit",
                            40, -40., 40., 40, -80., 80.));
-        CHECK(bookEffHisto(m_Eff_etaHisto[isub], histGroupE[isub], "effEta", "Efficiency versus track eta", 30, -2.8,
+        ATH_CHECK(bookEffHisto(m_Eff_etaHisto[isub], histGroupE[isub], "effEta", "Efficiency versus track eta", 30, -2.8,
                            2.8));
-        CHECK(bookEffHisto(m_Eff_etaPhiCutHisto[isub], histGroupE[isub], "effEtaPhiCut",
+        ATH_CHECK(bookEffHisto(m_Eff_etaPhiCutHisto[isub], histGroupE[isub], "effEtaPhiCut",
                            "Efficiency versus track eta, phi cut", 30, -2.8, 2.8));
-        CHECK(bookEffHisto(m_Eff_otherFaceHisto[isub], histGroupE[isub], "effOtherFace",
+        ATH_CHECK(bookEffHisto(m_Eff_otherFaceHisto[isub], histGroupE[isub], "effOtherFace",
                            "Efficiency versus other face hit y/n", 3, -1.5, 1.5));
-        CHECK(bookEffHisto(m_Unas_otherFaceHisto[isub], histGroupE[isub], "effOtherFaceUnas",
+        ATH_CHECK(bookEffHisto(m_Unas_otherFaceHisto[isub], histGroupE[isub], "effOtherFaceUnas",
                            "other face hit Unassociated per event", 3, -1.5, 1.5));
-        CHECK(bookEffHisto(m_Eff_nSCTHisto[isub], histGroupE[isub], "effNSCT", "Efficiency versus Number of SCT hits",
+        ATH_CHECK(bookEffHisto(m_Eff_nSCTHisto[isub], histGroupE[isub], "effNSCT", "Efficiency versus Number of SCT hits",
                            30, -0.5, 29.5));
-        CHECK(bookEffHisto(m_Eff_nTRTHisto[isub], histGroupE[isub], "effNTRT", "Efficiency versus Number of TRT hits",
+        ATH_CHECK(bookEffHisto(m_Eff_nTRTHisto[isub], histGroupE[isub], "effNTRT", "Efficiency versus Number of TRT hits",
                            70, -1, 139.));
-        CHECK(bookEffHisto(m_Eff_nOtherHisto[isub], histGroupE[isub], "effNOther",
+        ATH_CHECK(bookEffHisto(m_Eff_nOtherHisto[isub], histGroupE[isub], "effNOther",
                            "Efficiency versus Number of other SCT  sides hit", 30, -0.5, 29.5));
-        CHECK(bookEffHisto(m_nOtherHisto[isub], histGroupE[isub], "nOther", "Number of other SCT barrel sides hit", 30,
+        ATH_CHECK(bookEffHisto(m_nOtherHisto[isub], histGroupE[isub], "nOther", "Number of other SCT barrel sides hit", 30,
                            -0.5, 29.5));
-        CHECK(bookEffHisto(m_timecorHisto[isub], histGroupE[isub], "timecor", "TRT phase", 120, -50.5, 69.5));
-        CHECK(bookEffHisto(m_Eff_timecorHisto[isub], histGroupE[isub], "effTimecor", "Efficiency vs TRT phase", 120,
+        ATH_CHECK(bookEffHisto(m_timecorHisto[isub], histGroupE[isub], "timecor", "TRT phase", 120, -50.5, 69.5));
+        ATH_CHECK(bookEffHisto(m_Eff_timecorHisto[isub], histGroupE[isub], "effTimecor", "Efficiency vs TRT phase", 120,
                            -50.5, 69.5));
-        CHECK(bookEffHisto(m_Eff_xlocHisto[isub], histGroupE[isub], "effXloc", "Module Efficiency by x local", 32, -32.,
+        ATH_CHECK(bookEffHisto(m_Eff_xlocHisto[isub], histGroupE[isub], "effXloc", "Module Efficiency by x local", 32, -32.,
                            32.));
-        CHECK(bookEffHisto(m_Eff_ylocHistos[isub], histGroupE[isub], "effYloc", "Module Efficiency by y local", 32,
+        ATH_CHECK(bookEffHisto(m_Eff_ylocHistos[isub], histGroupE[isub], "effYloc", "Module Efficiency by y local", 32,
                            -64., 64.));
-        CHECK(bookEffHisto(m_Unas_xlocHisto[isub], histGroupE[isub], "unasXloc",
+        ATH_CHECK(bookEffHisto(m_Unas_xlocHisto[isub], histGroupE[isub], "unasXloc",
                            "Unassociated hit per event by x local", 32, -32., 32.));
-        CHECK(bookEffHisto(m_Unas_ylocHisto[isub], histGroupE[isub], "unasYloc",
+        ATH_CHECK(bookEffHisto(m_Unas_ylocHisto[isub], histGroupE[isub], "unasYloc",
                            "Unassociated hit per event by y local", 32, -64., 64.));
-        CHECK(bookEffHisto(m_Eff_ptiHisto[isub], histGroupE[isub], "effPti", "Module Efficiency by q/p", 20, -0.002,
+        ATH_CHECK(bookEffHisto(m_Eff_ptiHisto[isub], histGroupE[isub], "effPti", "Module Efficiency by q/p", 20, -0.002,
                            0.002));
-        CHECK(bookEffHisto(m_Eff_ptHisto[isub], histGroupE[isub], "effPt", "Module Efficiency by log10 |p|", 40, 2.,
+        ATH_CHECK(bookEffHisto(m_Eff_ptHisto[isub], histGroupE[isub], "effPt", "Module Efficiency by log10 |p|", 40, 2.,
                            6.));
-        CHECK(bookEffHisto(m_Unas_ptiHisto[isub], histGroupE[isub], "unasPti", "Unassociated Hit per event by q/p", 20,
+        ATH_CHECK(bookEffHisto(m_Unas_ptiHisto[isub], histGroupE[isub], "unasPti", "Unassociated Hit per event by q/p", 20,
                            -0.002, 0.002));
-        CHECK(bookEffHisto(m_Unas_phiHisto[isub], histGroupE[isub], "unasPhi",
+        ATH_CHECK(bookEffHisto(m_Unas_phiHisto[isub], histGroupE[isub], "unasPhi",
                            "Unassociated hit per event by phi local", 30, -90., 90.));
-        CHECK(bookEffHisto(m_Eff_phiHisto[isub], histGroupE[isub], "effPhi", "Module Efficiency by Phi", 30, -90.,
+        ATH_CHECK(bookEffHisto(m_Eff_phiHisto[isub], histGroupE[isub], "effPhi", "Module Efficiency by Phi", 30, -90.,
                            90.));
-        CHECK(bookEffHisto(m_Eff_phiEtaCutHisto[isub], histGroupE[isub], "effPhiEtaCut",
+        ATH_CHECK(bookEffHisto(m_Eff_phiEtaCutHisto[isub], histGroupE[isub], "effPhiEtaCut",
                            "Module Efficiency by Phi, Eta cut", 30, -90., 90.));
-        CHECK(bookEffHisto(m_Eff_phiHistoFinal[isub], histGroupE[isub], "effPhiFinal", "Module Efficiency by Phi Final",
+        ATH_CHECK(bookEffHisto(m_Eff_phiHistoFinal[isub], histGroupE[isub], "effPhiFinal", "Module Efficiency by Phi Final",
                            30, -90., 90.));
-        CHECK(bookEffHisto(m_Eff_d0Histo[isub], histGroupE[isub], "effD0", "Module Efficiency by D0", 10, -500., 500.));
-        CHECK(bookEffHisto(m_Eff_d0PrecHisto[isub], histGroupE[isub], "effD0Prec", "Module Efficiency by D0 prec", 25,
+        ATH_CHECK(bookEffHisto(m_Eff_d0Histo[isub], histGroupE[isub], "effD0", "Module Efficiency by D0", 10, -500., 500.));
+        ATH_CHECK(bookEffHisto(m_Eff_d0PrecHisto[isub], histGroupE[isub], "effD0Prec", "Module Efficiency by D0 prec", 25,
                            -25., 25.));
-        CHECK(bookEffHisto(m_Eff_z0Histo[isub], histGroupE[isub], "effZ0", "Module Efficiency by Z0", 10, -1000.,
+        ATH_CHECK(bookEffHisto(m_Eff_z0Histo[isub], histGroupE[isub], "effZ0", "Module Efficiency by Z0", 10, -1000.,
                            1000.));
-        CHECK(bookEffHisto(m_etaTkUsedHisto[isub], histGroupE[isub], "EtaTkUsed", "Used Track Eta", 100, -2.8, 2.8));
-        CHECK(bookEffHisto(m_phiTkUsedHisto[isub], histGroupE[isub], "PhiTkUsed", "Used Track Phi", 50, -3.142, 3.142));
-        CHECK(bookEffHisto(m_ptiTkUsedHisto[isub], histGroupE[isub], "PtiTkUsed", "Used Track q/p (MeV)", 50, -0.002,
+        ATH_CHECK(bookEffHisto(m_etaTkUsedHisto[isub], histGroupE[isub], "EtaTkUsed", "Used Track Eta", 100, -2.8, 2.8));
+        ATH_CHECK(bookEffHisto(m_phiTkUsedHisto[isub], histGroupE[isub], "PhiTkUsed", "Used Track Phi", 50, -3.142, 3.142));
+        ATH_CHECK(bookEffHisto(m_ptiTkUsedHisto[isub], histGroupE[isub], "PtiTkUsed", "Used Track q/p (MeV)", 50, -0.002,
                            0.002));
-        CHECK(bookEffHisto(m_ptTkUsedHisto[isub], histGroupE[isub], "PtTkUsed", "Used Track log10|p| (MeV)", 40, 2.0,
+        ATH_CHECK(bookEffHisto(m_ptTkUsedHisto[isub], histGroupE[isub], "PtTkUsed", "Used Track log10|p| (MeV)", 40, 2.0,
                            6.));
-        CHECK(bookEffHisto(m_d0TkUsedHisto[isub], histGroupE[isub], "D0TkUsed", "Used Track D0", 50, -500., 500.));
-        CHECK(bookEffHisto(m_d0PrecTkUsedHisto[isub], histGroupE[isub], "D0PrecTkUsed", "Used Track D0 prec", 100, -25.,
+        ATH_CHECK(bookEffHisto(m_d0TkUsedHisto[isub], histGroupE[isub], "D0TkUsed", "Used Track D0", 50, -500., 500.));
+        ATH_CHECK(bookEffHisto(m_d0PrecTkUsedHisto[isub], histGroupE[isub], "D0PrecTkUsed", "Used Track D0 prec", 100, -25.,
                            25.));
-        CHECK(bookEffHisto(m_z0TkUsedHisto[isub], histGroupE[isub], "Z0TkUsed", "Used Track Z0", 50, -1000., 1000.));
-        CHECK(bookEffHisto(m_localHitXHisto[isub], histGroupE[isub], "localHitX", "local x position, hit", 80, -40.,
+        ATH_CHECK(bookEffHisto(m_z0TkUsedHisto[isub], histGroupE[isub], "Z0TkUsed", "Used Track Z0", 50, -1000., 1000.));
+        ATH_CHECK(bookEffHisto(m_localHitXHisto[isub], histGroupE[isub], "localHitX", "local x position, hit", 80, -40.,
                            40.));
-        CHECK(bookEffHisto(m_localHitYHistos[isub], histGroupE[isub], "localHitY", "local y position, hit", 320, -80.,
+        ATH_CHECK(bookEffHisto(m_localHitYHistos[isub], histGroupE[isub], "localHitY", "local y position, hit", 320, -80.,
                            80.));
-        CHECK(bookEffHisto(m_phiLocalHisto[isub], histGroupE[isub], "phiLocal", "local phi of tracks", 60, -90., 90.));
-        CHECK(bookEffHisto(m_phiLocalCutHisto[isub], histGroupE[isub], "phiLocalCut", "local phi of low D0 tracks", 60,
+        ATH_CHECK(bookEffHisto(m_phiLocalHisto[isub], histGroupE[isub], "phiLocal", "local phi of tracks", 60, -90., 90.));
+        ATH_CHECK(bookEffHisto(m_phiLocalCutHisto[isub], histGroupE[isub], "phiLocalCut", "local phi of low D0 tracks", 60,
                            -90., 90.));
-        CHECK(bookEffHisto(m_Eff_nTrk[isub], histGroupE[isub], "effTrk", "Efficiency versus number of tracks", 200, 0,
+        ATH_CHECK(bookEffHisto(m_Eff_nTrk[isub], histGroupE[isub], "effTrk", "Efficiency versus number of tracks", 200, 0,
                            400.));
-        CHECK(bookEffHisto(m_Eff_nGoodTrk[isub], histGroupE[isub], "effGoodTrk",
+        ATH_CHECK(bookEffHisto(m_Eff_nGoodTrk[isub], histGroupE[isub], "effGoodTrk",
                            "Efficiency versus number of good tracks", 200, 0, 400.));
       }
 
       if (m_superDetailed) {
-        CHECK(bookEffHisto(m_inEffStrip[isub], histGroupE[isub],
+        ATH_CHECK(bookEffHisto(m_inEffStrip[isub], histGroupE[isub],
                            "StripInEfficiency" + subDetNameShort[isub], "Strips inefficiencies in " + subDetName[isub],
                            n_mod[isub] * 2, f_mod[isub] * 2 - 0.5, (f_mod[isub] + n_mod[isub]) * 2 - 0.5, N_STRIPS,
                            FIRST_STRIP - 0.5, LAST_STRIP + 0.5));
-        CHECK(bookEffHisto(m_inEffChip[isub], histGroupE[isub],
+        ATH_CHECK(bookEffHisto(m_inEffChip[isub], histGroupE[isub],
                            "ChipInEfficiency" + subDetNameShort[isub], "Chips ineficiencies in " + subDetName[isub],
                            n_mod[isub] * 2, f_mod[isub] * 2 - 0.5, (f_mod[isub] + n_mod[isub]) * 2 - 0.5, N_CHIPS,
                            FIRST_CHIP - 0.5, LAST_CHIP + 0.5));
-        CHECK(bookEffHisto(m_badModPerSide[isub], histGroupE[isub], "badModPerSide", "Number of bad module per side",
+        ATH_CHECK(bookEffHisto(m_badModPerSide[isub], histGroupE[isub], "badModPerSide", "Number of bad module per side",
                            2 * n_layers[isub], 0., n_layers[isub]));
-        CHECK(bookEffHisto(m_holesPerTrackHisto[isub], histGroupE[isub], "holesPerTrack", "Number of holes per track",
+        ATH_CHECK(bookEffHisto(m_holesPerTrackHisto[isub], histGroupE[isub], "holesPerTrack", "Number of holes per track",
                            2 * n_layers[isub], 0, n_layers[isub]));
-        CHECK(bookEffHisto(m_holesDistPerTrackHisto[isub], histGroupE[isub], "holesDistPerTrack",
+        ATH_CHECK(bookEffHisto(m_holesDistPerTrackHisto[isub], histGroupE[isub], "holesDistPerTrack",
                            "Number of holes per track", 2 * n_layers[isub], 0, n_layers[isub]));
-        CHECK(bookEffHisto(m_chi2vPhiHisto[isub], histGroupE[isub], "Chi2vPhi", "Chi2 v Phi", 30, -90., 90.));
-        CHECK(bookEffHisto(m_localHitHisto[isub], histGroupE[isub], "localHit", "local position, hit", 40, -40., 40.,
+        ATH_CHECK(bookEffHisto(m_chi2vPhiHisto[isub], histGroupE[isub], "Chi2vPhi", "Chi2 v Phi", 30, -90., 90.));
+        ATH_CHECK(bookEffHisto(m_localHitHisto[isub], histGroupE[isub], "localHit", "local position, hit", 40, -40., 40.,
                            40, -80., 80.));
-        CHECK(bookEffHisto(m_localHitGHisto[isub], histGroupE[isub], "localHitG", "local position Guard, hit", 40, -40.,
+        ATH_CHECK(bookEffHisto(m_localHitGHisto[isub], histGroupE[isub], "localHitG", "local position Guard, hit", 40, -40.,
                            40., 40, -80., 80.));
-        CHECK(bookEffHisto(m_TwoSidesResiduals[isub], histGroupE[isub], "TwoSidesResiduals", "Two Sides Residuals", 120,
+        ATH_CHECK(bookEffHisto(m_TwoSidesResiduals[isub], histGroupE[isub], "TwoSidesResiduals", "Two Sides Residuals", 120,
                            -3., 3., 120, -3., 3.));
-        CHECK(bookEffHisto(m_TwoSidesResidualsIneff[isub], histGroupE[isub], "TwoSidesResidualsIneff",
+        ATH_CHECK(bookEffHisto(m_TwoSidesResidualsIneff[isub], histGroupE[isub], "TwoSidesResidualsIneff",
                            "Two Sides Residuals (Inefficient/Unas)", 120, -30., 30., 120, -30., 30.));
-        CHECK(bookEffHisto(m_chi2ResidualHisto[isub], histGroupE[isub], "chi2Residual", "Chi2 v Residual", 200, -10.,
+        ATH_CHECK(bookEffHisto(m_chi2ResidualHisto[isub], histGroupE[isub], "chi2Residual", "Chi2 v Residual", 200, -10.,
                            10., 120, 0., 10.));
-        CHECK(bookEffHisto(m_Eff_summaryIncBadMod[isub], histGroupE[isub], "summaryIncBadMod" + subDetNameShort[isub],
+        ATH_CHECK(bookEffHisto(m_Eff_summaryIncBadMod[isub], histGroupE[isub], "summaryIncBadMod" + subDetNameShort[isub],
                            "Efficiency vs. layer including bad sensors",
                            2 * n_layers[isub], 0., n_layers[isub]));
       }
@@ -1091,7 +1048,6 @@ SCTHitEffMonTool::fillHistograms() {
   }
   unsigned BCID = pEvent->bcid();
   int BCIDpos = m_bunchCrossingTool->distanceFromFront(BCID);
-  //bool InTrain = m_bunchCrossingTool->isInTrain(BCID);
 
   if (m_chronotime) {
     m_chrono->chronoStart("SCTHitEff");
@@ -1138,11 +1094,9 @@ SCTHitEffMonTool::fillHistograms() {
   Int_t nTrk(0), nTrkPars(0), nTrkGood(0);
 
   // Loop over track collection to count tracks
-  const TrackCollection::const_iterator endOfTracks(tracks->end());
-  for (TrackCollection::const_iterator itr(tracks->begin()); itr != endOfTracks; ++itr) {
+  for (const Trk::Track* pthisTrack: *tracks) {
     nTrk++;
-    const Trk::Track* pthisTrack(*itr);
-    if (not pthisTrack) {
+    if (pthisTrack==nullptr) {
       continue;
     }
     if (failCut(pthisTrack and pthisTrack->trackParameters() and pthisTrack->trackParameters()->size(),
@@ -1177,11 +1131,9 @@ SCTHitEffMonTool::fillHistograms() {
   }
 
   // Loop over original track collection
-  //  const TrackCollection::const_iterator endOfTracks(tracks->end());
-  for (TrackCollection::const_iterator itr(tracks->begin()); itr != endOfTracks; ++itr) {
+  for (const Trk::Track* pthisTrack: *tracks) {
     ATH_MSG_VERBOSE("Starting new track");
-    const Trk::Track* pthisTrack(*itr);
-    if (not pthisTrack) {
+    if (pthisTrack==nullptr) {
       continue;
     }
     if (failCut(pthisTrack and pthisTrack->trackParameters() and pthisTrack->trackParameters()->size(),
@@ -1225,16 +1177,12 @@ SCTHitEffMonTool::fillHistograms() {
       continue;
     }
 
-    const Trk::Track* trackWithHoles = m_holeSearchTool->getTrackWithHoles(*pthisTrack);
+    std::unique_ptr<const Trk::Track> trackWithHoles(m_holeSearchTool->getTrackWithHoles(*pthisTrack));
     if (not trackWithHoles) {
       ATH_MSG_WARNING("trackWithHoles pointer is invalid");
       continue;
     }
     ATH_MSG_VERBOSE("Found " << trackWithHoles->trackStateOnSurfaces()->size() << " states on track");
-    // loop over all hits on track
-    DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItr =
-      trackWithHoles->trackStateOnSurfaces()->begin();
-    DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItrE = trackWithHoles->trackStateOnSurfaces()->end();
 
     Int_t NHits[3] = {
       0, 0, 0
@@ -1250,13 +1198,14 @@ SCTHitEffMonTool::fillHistograms() {
     Float_t max_layerSide(-1);
     Identifier surfaceID;
 
-    for (; TSOSItr != TSOSItrE; ++TSOSItr) {
-      surfaceID = surfaceOnTrackIdentifier(*TSOSItr);
+    // loop over all hits on track
+    for (const Trk::TrackStateOnSurface* tsos: *(trackWithHoles->trackStateOnSurfaces())) {
+      surfaceID = surfaceOnTrackIdentifier(tsos);
 
       if (!surfaceID.is_valid()) {
         continue;
       }
-      if ((*TSOSItr)->type(Trk::TrackStateOnSurface::Measurement) or(*TSOSItr)->type(Trk::TrackStateOnSurface::Outlier))
+      if (tsos->type(Trk::TrackStateOnSurface::Measurement) or tsos->type(Trk::TrackStateOnSurface::Outlier))
       {
         if (m_pixelId->is_pixel(surfaceID)) {
           pixelNHits++;
@@ -1266,15 +1215,15 @@ SCTHitEffMonTool::fillHistograms() {
         }
         if (m_sctId->is_sct(surfaceID)) {
           NHits[bec2Index(m_sctId->barrel_ec(surfaceID))]++;
-          mapOfTrackHitResiduals[surfaceID] = getResidual(surfaceID, (*TSOSItr)->trackParameters(), &*p_sctclcontainer);
+          mapOfTrackHitResiduals[surfaceID] = getResidual(surfaceID, tsos->trackParameters(), &*p_sctclcontainer);
         }
       }
 
-      if ((*TSOSItr)->type(Trk::TrackStateOnSurface::Measurement)) { // Determine zmin and zmax taking multiple
+      if (tsos->type(Trk::TrackStateOnSurface::Measurement)) { // Determine zmin and zmax taking multiple
                                                                      // hits/side into account
         if (m_isCosmic) { // If this is cosmics use z, bad method but ok...
-          if ((*TSOSItr)->trackParameters()) {
-            zpos = (*TSOSItr)->trackParameters()->position().z();
+          if (tsos->trackParameters()) {
+            zpos = tsos->trackParameters()->position().z();
             zmax = std::max(zpos, zmax);
             zmin = std::min(zpos, zmin);
           }else {
@@ -1283,7 +1232,7 @@ SCTHitEffMonTool::fillHistograms() {
         }else { // else use layer/side number : better but does not work for cosmics
           if (m_sctId->is_sct(surfaceID)) {
             layerSide = (m_sctId->barrel_ec(surfaceID) != 0) * N_BARRELS +
-                        float(m_sctId->layer_disk(surfaceID)) + (float(m_sctId->side(surfaceID)) == 0) * 0.5;
+              static_cast<float>(m_sctId->layer_disk(surfaceID)) + (static_cast<float>(m_sctId->side(surfaceID)) == 0) * 0.5;
             min_layerSide = std::min(min_layerSide, layerSide);
             max_layerSide = std::max(max_layerSide, layerSide);
           }else if (m_pixelId->is_pixel(surfaceID)) {
@@ -1305,9 +1254,9 @@ SCTHitEffMonTool::fillHistograms() {
       layersCrossedByTrack[i].resize(n_layers[i] * 2, false);
     }
 
-    for (TSOSItr = trackWithHoles->trackStateOnSurfaces()->begin(); TSOSItr != TSOSItrE; ++TSOSItr) {
+    for (const Trk::TrackStateOnSurface* tsos: *(trackWithHoles->trackStateOnSurfaces())) {
       ATH_MSG_VERBOSE("Starting new hit");
-      surfaceID = surfaceOnTrackIdentifier(*TSOSItr);
+      surfaceID = surfaceOnTrackIdentifier(tsos);
 
       if (failCut(m_sctId->is_sct(surfaceID), "hit cut: is in SCT")) {
         continue;
@@ -1330,18 +1279,18 @@ SCTHitEffMonTool::fillHistograms() {
       Int_t eff(0), unas(0);
       IdentifierHash sideHash(m_sctId->wafer_hash(surfaceID));
       Identifier module_id(m_sctId->module_id(surfaceID));
-      Float_t layerPlusHalfSide(float(layer) + float(side) * 0.5);
-      Float_t dedicated_layerPlusHalfSide(float(layer) + float((side + 1) % 2) * 0.5);
-      const Trk::TrackParameters* trkParamOnSurface((*TSOSItr)->trackParameters());
+      Float_t layerPlusHalfSide(static_cast<float>(layer) + static_cast<float>(side) * 0.5);
+      Float_t dedicated_layerPlusHalfSide(static_cast<float>(layer) + static_cast<float>((side + 1) % 2) * 0.5);
+      const Trk::TrackParameters* trkParamOnSurface(tsos->trackParameters());
       Double_t trackHitResidual(getResidual(surfaceID, trkParamOnSurface, &*p_sctclcontainer));
 
 
       Float_t distCut(m_effdistcut);
 
-      if ((*TSOSItr)->type(Trk::TrackStateOnSurface::Measurement) or(*TSOSItr)->type(Trk::TrackStateOnSurface::Outlier))
+      if (tsos->type(Trk::TrackStateOnSurface::Measurement) or tsos->type(Trk::TrackStateOnSurface::Outlier))
       {
         eff = 1;
-      } else if ((*TSOSItr)->type(Trk::TrackStateOnSurface::Hole) and fabs(trackHitResidual) < distCut) {
+      } else if (tsos->type(Trk::TrackStateOnSurface::Hole) and fabs(trackHitResidual) < distCut) {
         eff = 1;
         unas = 1;
       }
@@ -1360,10 +1309,9 @@ SCTHitEffMonTool::fillHistograms() {
       m_sctId->get_other_side(sideHash, otherSideHash);
       m_sctId->get_id(otherSideHash, otherSideSurfaceID, &context);
       otherFaceFound = mapOfTrackHitResiduals.find(otherSideSurfaceID) != mapOfTrackHitResiduals.end();
-      // (std::find(TrackSurfaceID.begin(), TrackSurfaceID.end(), otherSideSurfaceID) != TrackSurfaceID.end());
 
       Int_t nOther(sctNHits);
-      if ((*TSOSItr)->type(Trk::TrackStateOnSurface::Measurement) or(*TSOSItr)->type(Trk::TrackStateOnSurface::Outlier))
+      if (tsos->type(Trk::TrackStateOnSurface::Measurement) or tsos->type(Trk::TrackStateOnSurface::Outlier))
       {
         --nOther;
       }
@@ -1475,8 +1423,8 @@ SCTHitEffMonTool::fillHistograms() {
 
       Bool_t enclosingHits(true);
       if (m_isCosmic) {
-        if ((*TSOSItr)->trackParameters()) {
-          zpos = (*TSOSItr)->trackParameters()->position().z();
+        if (tsos->trackParameters()) {
+          zpos = tsos->trackParameters()->position().z();
           enclosingHits = (zpos > zmin)and(zpos < zmax);
         }else {
           ATH_MSG_WARNING("No track parameters found. Cannot determine whether it is an enclosed hit.");
@@ -1485,12 +1433,12 @@ SCTHitEffMonTool::fillHistograms() {
       }else {
         layerSide =
           (m_sctId->barrel_ec(surfaceID) !=
-           0) * N_BARRELS + float(m_sctId->layer_disk(surfaceID)) + (float(m_sctId->side(surfaceID)) == 0) * 0.5;
+           0) * N_BARRELS + static_cast<float>(m_sctId->layer_disk(surfaceID)) + (static_cast<float>(m_sctId->side(surfaceID)) == 0) * 0.5;
         enclosingHits = layerSide > min_layerSide and layerSide < max_layerSide;
       }
 
       if (m_detailed) {
-        m_probEnclosedHisto[isub]->Fill(layerPlusHalfSide, Int_t(enclosingHits));
+        m_probEnclosedHisto[isub]->Fill(layerPlusHalfSide, static_cast<Int_t>(enclosingHits));
       }
 
       if (m_requireEnclosingHits and not (layerPlusHalfSide == .5)and not (isub == 1 and layerPlusHalfSide ==
@@ -1701,8 +1649,8 @@ SCTHitEffMonTool::fillHistograms() {
       }
       if (m_superDetailed) {
         chipPos = (side == 1) ? 11 - chipPos : chipPos;
-        m_inEffChip[isub]->Fill(sideHash, chipPos, int(eff == 0));
-        m_inEffStrip[isub]->Fill(sideHash, xl / 79.95e-3 + 768. / 2., int(eff == 0));
+        m_inEffChip[isub]->Fill(sideHash, chipPos, static_cast<int>(eff == 0));
+        m_inEffStrip[isub]->Fill(sideHash, xl / 79.95e-3 + 768. / 2., static_cast<int>(eff == 0));
         // Find the opposite side of this module,
         if (side == 0) {
           Double_t trackHitResidual2(999);
@@ -1715,10 +1663,10 @@ SCTHitEffMonTool::fillHistograms() {
             m_TwoSidesResidualsIneff[isub]->Fill(trackHitResidual, trackHitResidual2);
           }
         }
-        const int layerSideIndex = int(layerPlusHalfSide * 2);
+        const int layerSideIndex = static_cast<int>(layerPlusHalfSide * 2);
         layersCrossedByTrack[isub][layerSideIndex] = true;
-        nHolesDistOnLayer[isub][layerSideIndex] += int(eff == 0);
-        nHolesOnLayer[isub][layerSideIndex] += int((*TSOSItr)->type(Trk::TrackStateOnSurface::Hole));
+        nHolesDistOnLayer[isub][layerSideIndex] += static_cast<int>(eff == 0);
+        nHolesOnLayer[isub][layerSideIndex] += static_cast<int>(tsos->type(Trk::TrackStateOnSurface::Hole));
         if (fabs(trackHitResidual) < 65) {
           m_layerResidualHistos[isub][layerSideIndex]->Fill(m_sctId->eta_module(surfaceID),
                                                             m_sctId->phi_module(surfaceID), trackHitResidual);
@@ -1773,16 +1721,14 @@ SCTHitEffMonTool::fillHistograms() {
       for (Int_t isub(0); isub != N_REGIONS; ++isub) {
         for (Int_t i(0); i != n_layers[isub] * 2; ++i) {
           if (layersCrossedByTrack[isub][i]) {
-            m_holesPerTrackHisto[isub]->Fill(float(i) / 2, nHolesOnLayer[isub][i]);
-            m_holesDistPerTrackHisto[isub]->Fill(float(i) / 2, nHolesOnLayer[isub][i]);
+            m_holesPerTrackHisto[isub]->Fill(static_cast<float>(i) / 2, nHolesOnLayer[isub][i]);
+            m_holesDistPerTrackHisto[isub]->Fill(static_cast<float>(i) / 2, nHolesOnLayer[isub][i]);
           }
         }
       }
     }
-    delete trackWithHoles;
-    trackWithHoles = 0;
   }
-  ATH_MSG_VERBOSE("finished loop over tracks = " << (*tracks).size());
+  ATH_MSG_VERBOSE("finished loop over tracks = " << tracks->size());
   if (m_detailed) {
     m_nTrkHisto->Fill(nTrk);
     m_nTrkParsHisto->Fill(nTrkPars);
@@ -1852,7 +1798,7 @@ SCTHitEffMonTool::procHistograms() {
           unsigned int status((*badChip).second);
           for (Int_t i(0); i < 2 * N_CHIPS; ++i) {
             if ((status & (1 << i)) != 0) {
-              accSide[int(i >= N_CHIPS)] -= 1. / N_CHIPS;
+              accSide[static_cast<int>(i >= N_CHIPS)] -= 1. / N_CHIPS;
             }
           }
           eff = (accSide[0] + accSide[1]) / 2;
@@ -1910,7 +1856,7 @@ SCTHitEffMonTool::procHistograms() {
           ATH_MSG_WARNING("Barrel-or-endcap index is invalid");
           return StatusCode::FAILURE;
         }
-        CHECK(bookEffHisto(m_accPhysMap[histnumber], histGroupE[isub],
+        ATH_CHECK(bookEffHisto(m_accPhysMap[histnumber], histGroupE[isub],
                            "nDisabledChipsPhys_" + subDetNameShort[isub] + "_" + i, "",
                            etabins[isub][i].size() - 1, &etabins[isub][i][0], phibins[isub][i].size() - 1,
                            &phibins[isub][i][0]));
@@ -1932,8 +1878,8 @@ SCTHitEffMonTool::procHistograms() {
         }
       }
     }
-    for (std::map< Identifier, Float_t >::const_iterator bMod(mapOfInEff.begin()); bMod != mapOfInEff.end(); ++bMod) {
-      Identifier surfaceID(bMod->first);
+    for (const std::pair<Identifier, Float_t> bMod: mapOfInEff) {
+      Identifier surfaceID(bMod.first);
       Int_t histnumber(becIdxLayer2Index(bec2Index(m_sctId->barrel_ec(surfaceID)), m_sctId->layer_disk(surfaceID)));
       if (histnumber < 0) {
         ATH_MSG_WARNING("Barrel-or-endcap index is invalid");
@@ -1942,7 +1888,7 @@ SCTHitEffMonTool::procHistograms() {
       IdentifierHash waferHash = m_sctId->wafer_hash(surfaceID);
       const InDetDD::SiDetectorElement* element = elements->getDetectorElement(waferHash);
       const Amg::Vector3D position = element->center();
-      m_accPhysMap[histnumber]->Fill(amgPseudoRapidity(position), position.phi(), (1. - bMod->second) * N_CHIPS * 2);
+      m_accPhysMap[histnumber]->Fill(amgPseudoRapidity(position), position.phi(), (1. - bMod.second) * N_CHIPS * 2);
     }
   }
 
@@ -1983,7 +1929,7 @@ SCTHitEffMonTool::previousChip(Double_t xl, Int_t side, bool swap) {
   Float_t stripWidth(79.95e-3);
   Float_t nChips(6.);
   Float_t xLeftEdge(xl + nStrips / 2. * stripWidth); // xl defined wrt center of module, convert to edge of module
-  Int_t chipPos(int(xLeftEdge / (stripWidth * nStrips) * nChips));
+  Int_t chipPos(static_cast<int>(xLeftEdge / (stripWidth * nStrips) * nChips));
 
   if (side == 0) {
     chipPos = swap ? 5 - chipPos : chipPos;
@@ -2027,7 +1973,7 @@ template <class T> StatusCode
 SCTHitEffMonTool::bookEffHisto(T*& histo, MonGroup& MG, TString name, TString title, Int_t nbin, Double_t x1,
                                Double_t x2) {
   histo = new T(name, title, nbin, x1, x2);
-  CHECK(MG.regHist(histo));
+  ATH_CHECK(MG.regHist(histo));
   ATH_MSG_VERBOSE("Registered " << name << " at " << histo);
   return StatusCode::SUCCESS;
 }
@@ -2037,7 +1983,7 @@ SCTHitEffMonTool::bookEffHisto(T*& histo, MonGroup& MG, TString name, TString ti
                                Int_t nbinx, Double_t x1, Double_t x2,
                                Int_t nbiny, Double_t y1, Double_t y2) {
   histo = new T(name, title, nbinx, x1, x2, nbiny, y1, y2);
-  CHECK(MG.regHist(histo));
+  ATH_CHECK(MG.regHist(histo));
   ATH_MSG_VERBOSE("Registered " << name << " at " << histo);
   return StatusCode::SUCCESS;
 }
@@ -2046,7 +1992,7 @@ template <class T> StatusCode
 SCTHitEffMonTool::bookEffHisto(T*& histo, MonGroup& MG, TString name, TString title,
                                Int_t nbinx, Double_t* xbins, Int_t nbiny, Double_t* ybins) {
   histo = new T(name, title, nbinx, xbins, nbiny, ybins);
-  CHECK(MG.regHist(histo));
+  ATH_CHECK(MG.regHist(histo));
   ATH_MSG_VERBOSE("Registered " << name << " at " << histo);
   return StatusCode::SUCCESS;
 }
@@ -2064,28 +2010,23 @@ SCTHitEffMonTool::getResidual(const Identifier& surfaceID, const Trk::TrackParam
   IdentifierHash idh(m_sctId->wafer_hash(surfaceID));
   InDet::SCT_ClusterContainer::const_iterator containerIterator(p_sctclcontainer->indexFind(idh));
   InDet::SCT_ClusterContainer::const_iterator containerEnd(p_sctclcontainer->end());
-  for (; containerIterator != containerEnd; ++containerIterator) {
-    for (InDet::SCT_ClusterCollection::const_iterator rioIterator((*containerIterator)->begin());
-         rioIterator != (*containerIterator)->end(); ++rioIterator) {
-      if (not (*rioIterator) or not (*rioIterator)->detectorElement()) {
+  if (containerIterator != containerEnd) {
+    for (const InDet::SCT_Cluster* cluster: **containerIterator) {
+      if ((cluster==nullptr) or (cluster->detectorElement()==nullptr)) {
         ATH_MSG_WARNING("nullptr to RIO or detElement");
         continue;
       }
-      if (m_sctId->wafer_id(surfaceID) == m_sctId->wafer_id(((*rioIterator)->detectorElement())->identify())) {
-        const Trk::PrepRawData* rioo(dynamic_cast<const Trk::PrepRawData *>(*rioIterator));
-        const Trk::RIO_OnTrack* rio(m_rotcreator->correct(*rioo, *trkParam));
+      if (m_sctId->wafer_id(surfaceID) == m_sctId->wafer_id(cluster->detectorElement()->identify())) {
+        const Trk::PrepRawData* rioo(dynamic_cast<const Trk::PrepRawData *>(cluster));
+        std::unique_ptr<const Trk::RIO_OnTrack> rio(m_rotcreator->correct(*rioo, *trkParam));
         if (!m_residualPullCalculator.empty()) {
-          const Trk::ResidualPull* residualPull(m_residualPullCalculator->residualPull(rio, trkParam,
-                                                                                       Trk::ResidualPull::Unbiased));
-          if (residualPull == 0) {
-            continue;
-          }
+          std::unique_ptr<const Trk::ResidualPull> residualPull(m_residualPullCalculator->residualPull(rio.get(), trkParam,
+                                                                                                       Trk::ResidualPull::Unbiased));
+          if (not residualPull) continue;
           if (fabs(residualPull->residual()[Trk::loc1]) < fabs(trackHitResidual)) {
             trackHitResidual = residualPull->residual()[Trk::loc1];
           }
-          delete residualPull;
         }
-        delete rio;
       }
     }
   }
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx
index 0fdd7ad6cc7..9e73a88557d 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx
@@ -13,7 +13,6 @@
 
 #include "SCT_Monitoring/SCTHitsNoiseMonTool.h"
 
-#include "cArrayUtilities.h"
 #include "SCT_NameFormatter.h"
 
 #include "AthContainers/DataVector.h"
@@ -135,17 +134,17 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
                                          const IInterface* parent) :
   SCTMotherTrigMonTool(type, name, parent),
   m_nSP(nullptr),
-  m_nSP_buf(nullptr),
+  m_nSP_buf{},
   m_nSP_pos(0),
   m_nHits(nullptr),
-  m_nHits_buf(nullptr),
+  m_nHits_buf{},
   m_nHits_pos(0),
   m_nmaxHits(nullptr),
-  m_nmaxHits_buf(nullptr),
-  m_nmaxModule_buf(nullptr),
+  m_nmaxHits_buf{},
+  m_nmaxModule_buf{},
   m_nminHits(nullptr),
-  m_nminHits_buf(nullptr),
-  m_nminModule_buf(nullptr),
+  m_nminHits_buf{},
+  m_nminModule_buf{},
   m_numBarrelHitsPerLumiBlock(nullptr),
   m_numHitsPerLumiBlockECp(nullptr),
   m_numHitsPerLumiBlockECm(nullptr),
@@ -153,7 +152,6 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_numSPPerLumiBlockECp(nullptr),
   m_numSPPerLumiBlockECm(nullptr),
   m_rioMap(nullptr),
-  //
   m_BARNO(nullptr),
   m_BARNOTrigger(nullptr),
   m_ECmNO(nullptr),
@@ -162,7 +160,6 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_ECpNOTrigger(nullptr),
   m_SCTNO(nullptr),
   m_SCTNOTrigger(nullptr),
-  //
   m_NallHitsBAR_vsLB(nullptr),
   m_NSPHitsBAR_vsLB(nullptr),
   m_NallHitsECm_vsLB(nullptr),
@@ -176,7 +173,6 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_NoisyModules100_vsLB(nullptr),
   m_NoisyModules1000_vsLB(nullptr),
   m_NoisyModules10000_vsLB(nullptr),
-  //
   m_NallHitsTriggerBAR_vsLB(nullptr),
   m_NSPHitsTriggerBAR_vsLB(nullptr),
   m_NallHitsTriggerECm_vsLB(nullptr),
@@ -190,7 +186,6 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_NoisyModulesTrigger100_vsLB(nullptr),
   m_NoisyModulesTrigger1000_vsLB(nullptr),
   m_NoisyModulesTrigger10000_vsLB(nullptr),
-  //
   m_MaxOccupancyStripHist(nullptr),
   m_MinOccupancyStripHist(nullptr),
   m_clusize(nullptr),
@@ -199,11 +194,11 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_hitsvsL1ID(nullptr),
   m_ncluHisto(nullptr),
   m_coincidenceHist(nullptr),
+  m_stream{"/stat"},
   m_numberOfEvents(0),
   m_numberOfEventsTrigger(0),
   m_numberOfEventsRecent(0),
   m_skipEvents(0),
-  m_booltxscan(false),
   m_current_lb(0),
   m_last_reset_lb(0),
   m_tbinHisto(nullptr),
@@ -212,12 +207,17 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_tbinHistoRecent(nullptr),
   m_tbinHistoRecentECp(nullptr),
   m_tbinHistoRecentECm(nullptr),
+  m_tbinfrac{},
+  m_tbinfracECp{},
+  m_tbinfracECm{},
+  m_clusizedist{},
+  m_clusizedistECp{},
+  m_clusizedistECm{},
   m_tbinfracall(nullptr),
   m_tbinfracVsLB(nullptr),
   m_tbinfracVsLBECp(nullptr),
   m_tbinfracVsLBECm(nullptr),
   m_initialize(false),
-  m_SCTSPContainerName(std::string("SCT_SpacePoints")),
   m_noisyM100{},
   m_noisyM1000{},
   m_noisyM10000{},
@@ -268,7 +268,6 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_NoisyModulesWithHOTrigger100_vsLB(nullptr),
   m_NoisyModulesWithHOTrigger1000_vsLB(nullptr),
   m_NoisyModulesWithHOTrigger10000_vsLB(nullptr),
-  //
   m_noisyMWithHO100{},
   m_noisyMWithHO1000{},
   m_noisyMWithHO10000{},
@@ -283,25 +282,12 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
   m_hitoccTriggerBAR_lb{},
   m_hitoccTriggerECp_lb{},
   m_hitoccTriggerECm_lb{},
-  //
-  m_dataObjectName(std::string("SCT_RDOs")),
-  m_pSCTHelper(nullptr),
-  m_eventInfoKey(std::string("EventInfo")),
-  m_clusContainerKey("SCT_Clusters") {
-    /** sroe 3 Sept 2015:
-        histoPathBase is declared as a property in the base class, assigned to m_path
-        with default as empty string.
-        Declaring it here as well gives rise to compilation warning
-        WARNING duplicated property name 'histoPathBase', see https://its.cern.ch/jira/browse/GAUDI-1023
-
-        declareProperty("histoPathBase", m_stream = "/stat"); **/
-    m_stream = "/stat";
+  m_pSCTHelper(nullptr) {
     declareProperty("localSummary", m_localSummary = 0);
-    declareProperty("doHitmapHistos", m_boolhitmaps = true);
+    declareProperty("doHitmapHistos", m_boolhitmaps = false);
     declareProperty("doTXScan", m_booltxscan = false);
     declareProperty("CheckRate", m_checkrate = 1000);
     declareProperty("CheckRecent", m_checkrecent = 30);
-    declareProperty("tracksName", m_tracksName = "Combined_Tracks");
     declareProperty("NOTrigger", m_NOTrigger = "L1_RD0_EMPTY");
     declareProperty("numberOfSigma", m_numSigma = 3);
     declareProperty("EvtsBins", m_evtsbins = 5000);
@@ -313,24 +299,6 @@ SCTHitsNoiseMonTool::SCTHitsNoiseMonTool(const std::string& type,
     declareProperty("doTrackHits", m_doTrackHits = true);
     declareProperty("MaxTracks", m_maxTracks = 1000);
     declareProperty("doLogXNoise", m_doLogXNoise = true);
-
-    clear1D(m_tbinfrac);
-    clear1D(m_tbinfracECp);
-    clear1D(m_tbinfracECm);
-    clear1D(m_clusizedist);
-    clear1D(m_clusizedistECp);
-    clear1D(m_clusizedistECm);
-  }
-
-// ====================================================================================================
-// ====================================================================================================
-SCTHitsNoiseMonTool::~SCTHitsNoiseMonTool() {
-  free(m_nSP_buf);
-  free(m_nmaxHits_buf);
-  free(m_nminHits_buf);
-  free(m_nmaxModule_buf);
-  free(m_nminModule_buf);
-  free(m_nHits_buf);
 }
 
 // ====================================================================================================
@@ -340,7 +308,6 @@ StatusCode SCTHitsNoiseMonTool::initialize() {
 
   ATH_CHECK(m_SCTSPContainerName.initialize());
   ATH_CHECK(m_dataObjectName.initialize());
-  ATH_CHECK(m_eventInfoKey.initialize());
   ATH_CHECK(m_clusContainerKey.initialize());
   ATH_CHECK(m_tracksName.initialize());
 
@@ -767,7 +734,6 @@ SCTHitsNoiseMonTool::checkHists(bool /*fromFinalize*/) {
 // ====================================================================================================
 StatusCode
 SCTHitsNoiseMonTool::generalHistsandNoise() {
-  typedef SCT_RDORawData SCTRawDataType;
   SG::ReadHandle<SCT_RDO_Container> p_rdocontainer(m_dataObjectName);
   SG::ReadHandle<xAOD::EventInfo> pEvent(m_eventInfoKey);
   if (not pEvent.isValid()) {
@@ -785,8 +751,6 @@ SCTHitsNoiseMonTool::generalHistsandNoise() {
   }
   Identifier SCT_Identifier;
   // Use new IDC
-  SCT_RDO_Container::const_iterator col_it = p_rdocontainer->begin();
-  SCT_RDO_Container::const_iterator lastCol = p_rdocontainer->end();
   int local_tothits = 0;
   int totalmodules = 0;
   int meanhits = 0;
@@ -831,65 +795,56 @@ SCTHitsNoiseMonTool::generalHistsandNoise() {
   const bool doThisSubsystem[3] = {
     m_doNegativeEndcap, true, m_doPositiveEndcap
   };
-  //
-  // Define some iterators over the SP container
-  SpacePointContainer::const_iterator spContainerIterator = sctContainer->begin();
-  SpacePointContainer::const_iterator spContainerIteratorEnd = sctContainer->end();
   // Outer Loop on RDO Collection
-  for (; col_it != lastCol; ++col_it) {
-    const InDetRawDataCollection<SCTRawDataType>* SCT_Collection(*col_it);
-    if (!SCT_Collection) {
+  for (const InDetRawDataCollection<SCT_RDORawData>* SCT_Collection: *p_rdocontainer) {
+    if (SCT_Collection==nullptr) {
       continue;  // select only SCT RDOs
     }
     // MJW new code- try getting the ID of the collection using the identify() method
     Identifier tempID = SCT_Collection->identify();
     Identifier theWaferIdentifierOfTheRDOCollection = tempID;
     Identifier theModuleIdentifierOfTheRDOCollection = m_pSCTHelper->module_id(tempID);
+    IdentifierHash theModuleHash0 = m_pSCTHelper->wafer_hash(theModuleIdentifierOfTheRDOCollection);
+    IdentifierHash theModuleHash1;
+    m_pSCTHelper->get_other_side(theModuleHash0, theModuleHash1);
     int Bec = m_pSCTHelper->barrel_ec(tempID);
     int numberOfHitsFromSPs = 0;
     int numberOfHitsFromAllRDOs = 0;
     // Now we want the space point container for this module
     // We have to compare module IDs- the SP collection is defined for the 'normal' (i.e. no stereo) module side
     // Define a set of spIDs
-    set<Identifier>mySetOfSPIds;
-    for (; spContainerIterator != spContainerIteratorEnd; ++spContainerIterator) {
+    set<Identifier> mySetOfSPIds;
+    for (unsigned int side{0}; side<2; side++) {
+      SpacePointContainer::const_iterator spContainerIterator = sctContainer->indexFind(side==0 ? theModuleHash0 : theModuleHash1);
+      if (spContainerIterator==sctContainer->end()) continue;
       Identifier tempSPID = (*spContainerIterator)->identify();
       Identifier theModuleIdentifierOfTheSPCollection = m_pSCTHelper->module_id(tempSPID);
-      if (theModuleIdentifierOfTheSPCollection > theModuleIdentifierOfTheRDOCollection) {
-        break;
-      }
       if (theModuleIdentifierOfTheRDOCollection == theModuleIdentifierOfTheSPCollection) {
-        DataVector<Trk::SpacePoint>::const_iterator nextSpacePoint = (*spContainerIterator)->begin();
-        DataVector<Trk::SpacePoint>::const_iterator nextSpacePointEnd = (*spContainerIterator)->end();
-        for (; nextSpacePoint != nextSpacePointEnd; ++nextSpacePoint) {
-          const Trk::SpacePoint& sp = **nextSpacePoint;
+        for (const Trk::SpacePoint* sp: **spContainerIterator) {
           // the following is nasty; the 'normal' sides (where the sp is defined) swap from layer to layer. To be safe,
           // we get both sides
-          const VecId_t& rdoList0 = sp.clusterList().first->rdoList();
-          const VecId_t& rdoList1 = sp.clusterList().second->rdoList();
+          const VecId_t& rdoList0 = sp->clusterList().first->rdoList();
+          const VecId_t& rdoList1 = sp->clusterList().second->rdoList();
           // copy to mySetOfSPIds. Use inserter(set, iterator_hint) for a set, or back_inserter(vec) for vector...
           copy(rdoList0.begin(), rdoList0.end(), inserter(mySetOfSPIds, mySetOfSPIds.end()));
           copy(rdoList1.begin(), rdoList1.end(), inserter(mySetOfSPIds, mySetOfSPIds.end()));
         }
-        break;
+      } else {
+        ATH_MSG_ERROR("Module identifiers are different. indexFind gives a wrong collection??");
       }
     }
     totalmodules++;
     maxrodhits = 0;
     // Now we loop over the RDOs in the RDO collection, and add to the NO vector any that are in the mySetOfSPIds
-    DataVector<SCTRawDataType>::const_iterator p_rdo = SCT_Collection->begin();
-    DataVector<SCTRawDataType>::const_iterator end_rdo = SCT_Collection->end();
-    for (; p_rdo != end_rdo; ++p_rdo) {
-      const SCT3_RawData* rdo3 = dynamic_cast<const SCT3_RawData*>(*p_rdo);
-      int tbin;// = (*p_rdo)->getTimeBin();
-      if (rdo3 != 0) {
-        tbin = (rdo3)->getTimeBin();
-      }else {
-        tbin = 3;
-      }
-      SCT_Identifier = (*p_rdo)->identify();
+    for (const SCT_RDORawData* rdo: *SCT_Collection) {
+      const SCT3_RawData* rdo3 = dynamic_cast<const SCT3_RawData*>(rdo);
+      int tbin = 3;
+      if (rdo3) {
+        tbin = rdo3->getTimeBin();
+      }
+      SCT_Identifier = rdo->identify();
       const unsigned int firstStrip(m_pSCTHelper->strip(SCT_Identifier));
-      const unsigned int numberOfStrips((*p_rdo)->getGroupSize());
+      const unsigned int numberOfStrips(rdo->getGroupSize());
       int thisBec = m_pSCTHelper->barrel_ec(SCT_Identifier);
       int thisLayerDisk = m_pSCTHelper->layer_disk(SCT_Identifier);
       int thisPhi = m_pSCTHelper->phi_module(SCT_Identifier);
@@ -1227,20 +1182,10 @@ SCTHitsNoiseMonTool::generalHistsandNoise() {
   if (not p_clucontainer.isValid()) {
     ATH_MSG_WARNING("Couldn't retrieve clusters");
   }
-  InDet::SCT_ClusterContainer::const_iterator clucol_it = p_clucontainer->begin();
-  InDet::SCT_ClusterContainer::const_iterator lastcluCol = p_clucontainer->end();
-  for (; clucol_it != lastcluCol; ++clucol_it) {
-    const InDet::SCT_ClusterCollection* SCT_Collection(*clucol_it);
-    if (!SCT_Collection) {
-      continue; // select only SCT RDOs
-    }
-    // Middle Loop on SCT Clusters only
-    DataVector<InDet::SCT_Cluster>::const_iterator p_clu(SCT_Collection->begin());
-    DataVector<InDet::SCT_Cluster>::const_iterator clus_end = SCT_Collection->end();
-    for (; p_clu != clus_end; ++p_clu) {
-      Identifier cluId = (*p_clu)->identify();
-      const InDet::SCT_Cluster& cluster = **p_clu;
-      int GroupSize = cluster.rdoList().size();
+  for (const InDet::SCT_ClusterCollection* SCT_Collection: *p_clucontainer) {
+    for (const InDet::SCT_Cluster* cluster: *SCT_Collection) {
+      Identifier cluId = cluster->identify();
+      int GroupSize = cluster->rdoList().size();
       // Fill  Cluster Size histogram
       int elementIndex = 2 * m_pSCTHelper->layer_disk(cluId) + m_pSCTHelper->side(cluId);
       int thisPhi = m_pSCTHelper->phi_module(cluId);
@@ -1940,10 +1885,10 @@ SCTHitsNoiseMonTool::checkNoiseMaps(bool final) {
         }
       }
       if (m_occSumUnbiased.size() && m_numberOfEvents) {
-        for (std::map<Identifier, float>::iterator it = m_occSumUnbiased.begin(); it != m_occSumUnbiased.end(); it++) {
-          Identifier wafer_id = it->first;
+        for (std::pair<const Identifier, float>& val: m_occSumUnbiased) {
+          Identifier wafer_id = val.first;
           int element = 2 * m_pSCTHelper->layer_disk(wafer_id) + m_pSCTHelper->side(wafer_id);
-          float occ = (m_numberOfEvents > 0) ? it->second / (m_numberOfEvents) :  it->second;
+          float occ = (m_numberOfEvents > 0) ? val.second / (m_numberOfEvents) :  val.second;
           int eta = m_pSCTHelper->eta_module(wafer_id);
           int phi = m_pSCTHelper->phi_module(wafer_id);
           int barrel_ec = m_pSCTHelper->barrel_ec(wafer_id);
@@ -1966,11 +1911,10 @@ SCTHitsNoiseMonTool::checkNoiseMaps(bool final) {
       }
       if (m_environment == AthenaMonManager::online) {
         if (m_occSumUnbiasedRecent.size() && m_numberOfEventsRecent) {
-          for (std::map<Identifier, float>::iterator it = m_occSumUnbiasedRecent.begin();
-               it != m_occSumUnbiasedRecent.end(); it++) {
-            Identifier wafer_id = it->first;
+          for (std::pair<const Identifier, float>& val: m_occSumUnbiasedRecent) {
+            Identifier wafer_id = val.first;
             int element = 2 * m_pSCTHelper->layer_disk(wafer_id) + m_pSCTHelper->side(wafer_id);
-            float occ = (m_numberOfEventsRecent > 0) ? it->second / (m_numberOfEventsRecent) :  it->second;
+            float occ = (m_numberOfEventsRecent > 0) ? val.second / (m_numberOfEventsRecent) :  val.second;
             int eta = m_pSCTHelper->eta_module(wafer_id);
             int phi = m_pSCTHelper->phi_module(wafer_id);
             int barrel_ec = m_pSCTHelper->barrel_ec(wafer_id);
@@ -1988,11 +1932,10 @@ SCTHitsNoiseMonTool::checkNoiseMaps(bool final) {
         }
       }
       if (m_occSumUnbiasedTrigger.size() && m_numberOfEventsTrigger) {
-        for (std::map<Identifier, float>::iterator it = m_occSumUnbiasedTrigger.begin();
-             it != m_occSumUnbiasedTrigger.end(); it++) {
-          Identifier wafer_id = it->first;
+        for (std::pair<const Identifier, float>&val: m_occSumUnbiasedTrigger) {
+          Identifier wafer_id = val.first;
           int element = 2 * m_pSCTHelper->layer_disk(wafer_id) + m_pSCTHelper->side(wafer_id);
-          float occ = (m_numberOfEventsTrigger > 0) ? it->second / (m_numberOfEventsTrigger) :  it->second;
+          float occ = (m_numberOfEventsTrigger > 0) ? val.second / (m_numberOfEventsTrigger) :  val.second;
           int eta = m_pSCTHelper->eta_module(wafer_id);
           int phi = m_pSCTHelper->phi_module(wafer_id);
           int barrel_ec = m_pSCTHelper->barrel_ec(wafer_id);
@@ -2015,11 +1958,10 @@ SCTHitsNoiseMonTool::checkNoiseMaps(bool final) {
       }
 
       if (m_hitoccSumUnbiased.size() && m_numberOfEvents) {
-        for (std::map<Identifier, float>::iterator it = m_hitoccSumUnbiased.begin(); it != m_hitoccSumUnbiased.end();
-             it++) {
-          Identifier wafer_id = it->first;
+        for (std::pair<const Identifier, float>& val: m_hitoccSumUnbiased) {
+          Identifier wafer_id = val.first;
           int element = 2 * m_pSCTHelper->layer_disk(wafer_id) + m_pSCTHelper->side(wafer_id);
-          float hitocc = (m_numberOfEvents > 0) ? it->second / (m_numberOfEvents) :  it->second;
+          float hitocc = (m_numberOfEvents > 0) ? val.second / (m_numberOfEvents) :  val.second;
           int eta = m_pSCTHelper->eta_module(wafer_id);
           int phi = m_pSCTHelper->phi_module(wafer_id);
           int barrel_ec = m_pSCTHelper->barrel_ec(wafer_id);
@@ -2042,11 +1984,10 @@ SCTHitsNoiseMonTool::checkNoiseMaps(bool final) {
       }
       if (m_environment == AthenaMonManager::online) {
         if (m_hitoccSumUnbiasedRecent.size() && m_numberOfEventsRecent) {
-          for (std::map<Identifier, float>::iterator it = m_hitoccSumUnbiasedRecent.begin();
-               it != m_hitoccSumUnbiasedRecent.end(); it++) {
-            Identifier wafer_id = it->first;
+          for (std::pair<const Identifier, float>& val: m_hitoccSumUnbiasedRecent) {
+            Identifier wafer_id = val.first;
             int element = 2 * m_pSCTHelper->layer_disk(wafer_id) + m_pSCTHelper->side(wafer_id);
-            float hitocc = (m_numberOfEventsRecent > 0) ? it->second / (m_numberOfEventsRecent) :  it->second;
+            float hitocc = (m_numberOfEventsRecent > 0) ? val.second / (m_numberOfEventsRecent) :  val.second;
             int eta = m_pSCTHelper->eta_module(wafer_id);
             int phi = m_pSCTHelper->phi_module(wafer_id);
             int barrel_ec = m_pSCTHelper->barrel_ec(wafer_id);
@@ -2064,11 +2005,10 @@ SCTHitsNoiseMonTool::checkNoiseMaps(bool final) {
         }
       }
       if (m_hitoccSumUnbiasedTrigger.size() && m_numberOfEventsTrigger) {
-        for (std::map<Identifier, float>::iterator it = m_hitoccSumUnbiasedTrigger.begin();
-             it != m_hitoccSumUnbiasedTrigger.end(); it++) {
-          Identifier wafer_id = it->first;
+        for (std::pair<const Identifier, float>& val: m_hitoccSumUnbiasedTrigger) {
+          Identifier wafer_id = val.first;
           int element = 2 * m_pSCTHelper->layer_disk(wafer_id) + m_pSCTHelper->side(wafer_id);
-          float hitocc = (m_numberOfEventsTrigger > 0) ? it->second / (m_numberOfEventsTrigger) :  it->second;
+          float hitocc = (m_numberOfEventsTrigger > 0) ? val.second / (m_numberOfEventsTrigger) :  val.second;
           int eta = m_pSCTHelper->eta_module(wafer_id);
           int phi = m_pSCTHelper->phi_module(wafer_id);
           int barrel_ec = m_pSCTHelper->barrel_ec(wafer_id);
@@ -2487,13 +2427,11 @@ SCTHitsNoiseMonTool::resetNoiseMapHists() {
 // ====================================================================================================
 StatusCode
 SCTHitsNoiseMonTool::resetNoiseMapsRecent() {
-  for (std::map<Identifier, float>::iterator it = m_occSumUnbiasedRecent.begin(); it != m_occSumUnbiasedRecent.end();
-       ++it) {
-    it->second = 0.0;
+  for (std::pair<const Identifier, float>& val: m_occSumUnbiasedRecent) {
+    val.second = 0.0;
   }
-  for (std::map<Identifier, float>::iterator it = m_hitoccSumUnbiasedRecent.begin();
-       it != m_hitoccSumUnbiasedRecent.end(); ++it) {
-    it->second = 0.0;
+  for (std::pair<const Identifier, float>& val: m_hitoccSumUnbiasedRecent) {
+    val.second = 0.0;
   }
   return StatusCode::SUCCESS;
 }
@@ -2942,53 +2880,35 @@ SCTHitsNoiseMonTool::bookNoiseDistributions() {
 StatusCode
 SCTHitsNoiseMonTool::bookSPvsEventNumber() {
   if (newRunFlag()) {
-    free(m_nSP_buf);
-    free(m_nHits_buf);
-    free(m_nmaxHits_buf);
-    free(m_nminHits_buf);
-    free(m_nmaxModule_buf);
-    free(m_nminModule_buf);
     MonGroup BarrelSPHist(this, "SCT/GENERAL/hits", ManagedMonitorToolBase::run, ATTRIB_UNMANAGED);
     // Book a histogram
     m_nSP = th1Factory("sct_sp_vs_en", "Number of Spacepoints vs Event Number", BarrelSPHist, 1, m_evtsbins + 1,
                        m_evtsbins);
     m_nSP->GetXaxis()->SetTitle("Event Number");
     m_nSP->GetYaxis()->SetTitle("Num of Spacepoints");
-    size_t nSP_buf_size;
-    nSP_buf_size = m_evtsbins * sizeof(int);
-    m_nSP_buf = (int*) malloc(nSP_buf_size);
+    m_nSP_buf.reserve(m_evtsbins);
     m_nSP_pos = 0;
 
     m_nHits = th1Factory("sct_av_hits_vs_en", "Number of Average Hits vs Event Number", BarrelSPHist, 1, m_evtsbins + 1,
                          m_evtsbins);
     m_nHits->GetXaxis()->SetTitle("Event Number");
     m_nHits->GetYaxis()->SetTitle("Num of Average Hits");
-    size_t nHits_buf_size;
-    nHits_buf_size = m_evtsbins * sizeof(int);
-    m_nHits_buf = (int*) malloc(nHits_buf_size);
+    m_nHits_buf.reserve(m_evtsbins);
     m_nHits_pos = 0;
 
     m_nmaxHits = th1Factory("sct_max_hits_vs_en", "Max Number of Hits vs Event Number", BarrelSPHist, 1, m_evtsbins + 1,
                             m_evtsbins);
     m_nmaxHits->GetXaxis()->SetTitle("Event Number");
     m_nmaxHits->GetYaxis()->SetTitle("Num of Max Hits");
-    size_t nmaxHits_buf_size;
-    nmaxHits_buf_size = m_evtsbins * sizeof(int);
-    m_nmaxHits_buf = (int*) malloc(nmaxHits_buf_size);
-    size_t nmaxModule_buf_size;
-    nmaxModule_buf_size = m_evtsbins * sizeof(Identifier);
-    m_nmaxModule_buf = (Identifier*) malloc(nmaxModule_buf_size);
+    m_nmaxHits_buf.reserve(m_evtsbins);
+    m_nmaxModule_buf.reserve(m_evtsbins);
 
     m_nminHits = th1Factory("sct_min_hits_vs_en", "Min Number of Hits vs Event Number", BarrelSPHist, 1, m_evtsbins + 1,
                             m_evtsbins);
     m_nminHits->GetXaxis()->SetTitle("Event Number");
     m_nminHits->GetYaxis()->SetTitle("Num of Min Hits");
-    size_t nminHits_buf_size;
-    nminHits_buf_size = m_evtsbins * sizeof(int);
-    m_nminHits_buf = (int*) malloc(nminHits_buf_size);
-    size_t nminModule_buf_size;
-    nminModule_buf_size = m_evtsbins * sizeof(Identifier);
-    m_nminModule_buf = (Identifier*) malloc(nminModule_buf_size);
+    m_nminHits_buf.reserve(m_evtsbins);
+    m_nminModule_buf.reserve(m_evtsbins);
   }
   return StatusCode::SUCCESS;
 }
@@ -3008,11 +2928,8 @@ SCTHitsNoiseMonTool::makeSPvsEventNumber() {
   }
   int sct_nspacepoints(0);
   // loop over SCT space points collections
-  SpacePointContainer::const_iterator it = SCT_spcontainer->begin();
-  SpacePointContainer::const_iterator endit = SCT_spcontainer->end();
-  for (; it != endit; ++it) {
-    const SpacePointCollection* colNext = &(**it);
-    if (!colNext) {
+  for (const SpacePointCollection* colNext: *SCT_spcontainer) {
+    if (colNext==nullptr) {
       continue;
     }
     // Identify the spacepoint collection and gets its barrel_ec to update the num SP histogram
@@ -3027,7 +2944,7 @@ SCTHitsNoiseMonTool::makeSPvsEventNumber() {
     if (thisBec == 2) {
       m_numSPPerLumiBlockECp->Fill(thisLayerDisk, colNext->size());
     }
-    sct_nspacepoints += (int) colNext->size();
+    sct_nspacepoints += static_cast<int>(colNext->size());
   }
 
   if (m_environment == AthenaMonManager::online) {
@@ -3098,7 +3015,7 @@ SCTHitsNoiseMonTool::makeVectorOfTrackRDOIdentifiers() {
     return StatusCode::SUCCESS;
   }
   // assemble list of rdo ids associated with tracks
-  for (int i = 0; i < (int) tracks->size(); i++) {
+  for (int i = 0; i < static_cast<int>(tracks->size()); i++) {
     const Trk::Track* track = (*tracks)[i];
     if (track == 0) {
       ATH_MSG_WARNING("no pointer to track!!!");
@@ -3109,11 +3026,10 @@ SCTHitsNoiseMonTool::makeVectorOfTrackRDOIdentifiers() {
     if (trackStates == 0) {
       ATH_MSG_WARNING("for current track is TrackStateOnSurfaces == Null, no data will be written for this track");
     }else {// Loop over all track states on surfaces
-      for (DataVector<const Trk::TrackStateOnSurface>::const_iterator it = trackStates->begin();
-           it != trackStates->end(); it++) {
+      for (const Trk::TrackStateOnSurface* TSOS: *trackStates) {
         // Get pointer to RIO of right type
         const InDet::SiClusterOnTrack* clus =
-          dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack());
+          dynamic_cast<const InDet::SiClusterOnTrack*>(TSOS->measurementOnTrack());
         if (clus) {
           // Get Pointer to prepRawDataObject
           const InDet::SiCluster* RawDataClus = dynamic_cast<const InDet::SiCluster*>(clus->prepRawData());
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx
index f01a5b140c3..4b445177caf 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTLorentzMonTool.cxx
@@ -46,25 +46,15 @@ using namespace SCT_Monitoring;
 // ====================================================================================================
 SCTLorentzMonTool::SCTLorentzMonTool(const string& type, const string& name,
                                      const IInterface* parent) : SCTMotherTrigMonTool(type, name, parent),
-  m_trackToVertexTool("Reco::TrackToVertex", this), // for TrackToVertexTool
+  m_numberOfEvents{0},
   m_phiVsNstrips{},
   m_phiVsNstrips_100{},
   m_phiVsNstrips_111{},
   m_phiVsNstrips_Side{},
   m_phiVsNstrips_Side_100{},
   m_phiVsNstrips_Side_111{},
+  m_path{""},
   m_pSCTHelper(nullptr) {
-  /** sroe 3 Sept 2015:
-     histoPathBase is declared as a property in the base class, assigned to m_path
-     with default as empty string.
-     Declaring it here as well gives rise to compilation warning
-     WARNING duplicated property name 'histoPathBase', see https://its.cern.ch/jira/browse/GAUDI-1023
-
-     declareProperty("histoPathBase", m_stream = "/stat"); **/
-  m_stream = "/stat";
-  declareProperty("tracksName", m_tracksName = std::string("CombinedInDetTracks")); // this recommended
-  declareProperty("TrackToVertexTool", m_trackToVertexTool); // for TrackToVertexTool
-  m_numberOfEvents = 0;
 }
 
 // ====================================================================================================
@@ -160,13 +150,9 @@ SCTLorentzMonTool::fillHistograms() {
     ATH_MSG_WARNING(" TrackCollection not found: Exit SCTLorentzTool" << m_tracksName.key());
     return StatusCode::SUCCESS;
   }
-  TrackCollection::const_iterator trkitr = tracks->begin();
-  TrackCollection::const_iterator trkend = tracks->end();
 
-  for (; trkitr != trkend; ++trkitr) {
-    // Get track
-    const Trk::Track* track = (*trkitr);
-    if (not track) {
+  for (const Trk::Track* track: *tracks) {
+    if (track==nullptr) {
       ATH_MSG_ERROR("no pointer to track!!!");
       continue;
     }
@@ -184,11 +170,10 @@ SCTLorentzMonTool::fillHistograms() {
       continue;
     }
 
-    DataVector<const Trk::TrackStateOnSurface>::const_iterator endit = trackStates->end();
-    for (DataVector<const Trk::TrackStateOnSurface>::const_iterator it = trackStates->begin(); it != endit; ++it) {
-      if ((*it)->type(Trk::TrackStateOnSurface::Measurement)) {
+    for (const Trk::TrackStateOnSurface* tsos: *trackStates) {
+      if (tsos->type(Trk::TrackStateOnSurface::Measurement)) {
         const InDet::SiClusterOnTrack* clus =
-          dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack());
+          dynamic_cast<const InDet::SiClusterOnTrack*>(tsos->measurementOnTrack());
         if (clus) { // Is it a SiCluster? If yes...
           const InDet::SiCluster* RawDataClus = dynamic_cast<const InDet::SiCluster*>(clus->prepRawData());
           if (not RawDataClus) {
@@ -216,7 +201,7 @@ SCTLorentzMonTool::fillHistograms() {
             // find cluster size
             const std::vector<Identifier>& rdoList = RawDataClus->rdoList();
             int nStrip = rdoList.size();
-            const Trk::TrackParameters* trkp = dynamic_cast<const Trk::TrackParameters*>((*it)->trackParameters());
+            const Trk::TrackParameters* trkp = dynamic_cast<const Trk::TrackParameters*>(tsos->trackParameters());
             if (not trkp) {
               ATH_MSG_WARNING(" Null pointer to MeasuredTrackParameters");
               continue;
@@ -273,10 +258,9 @@ SCTLorentzMonTool::fillHistograms() {
                 }
               }// end if passesCuts
             }// end if mtrkp
-            //            delete perigee;perigee = 0;
           } // end if SCT..
         } // end if (clus)
-      } // if ((*it)->type(Trk::TrackStateOnSurface::Measurement)){
+      } // if (tsos->type(Trk::TrackStateOnSurface::Measurement)){
     }// end of loop on TrackStatesonSurface (they can be SiClusters, TRTHits,..)
   } // end of loop on tracks
 
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx
index b882276e2f1..bf1c06182b3 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTMotherTrigMonTool.cxx
@@ -22,10 +22,9 @@ const std::string SCTMotherTrigMonTool::m_triggerNames[] = {
 
 SCTMotherTrigMonTool::SCTMotherTrigMonTool(const std::string& type, const std::string& name, const IInterface* parent)
   : ManagedMonitorToolBase(type, name, parent),
-  m_doTrigger(true),
   m_isStream(false),
   m_firedTriggers(0) {
-  declareProperty("doTrigger", m_doTrigger);
+  declareProperty("doTrigger", m_doTrigger=true);
 }
 
 StatusCode
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx
index 3674db6db4c..2cad34ca67f 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTRatioNoiseMonTool.cxx
@@ -108,7 +108,6 @@ SCTRatioNoiseMonTool::SCTRatioNoiseMonTool(const string& type,
   m_nOneSideEndcapC_ev{},
   m_nTwoSideEndcapC_ev{},
   m_nNonGoodModulesEndcapC_ev{},
-  //
   m_pnoiseoccupancymapHistoVectorECC{},
   m_pnoiseoccupancymapHistoVectorECCSide0{},
   m_pnoiseoccupancymapHistoVectorECCSide1{},
@@ -118,7 +117,6 @@ SCTRatioNoiseMonTool::SCTRatioNoiseMonTool(const string& type,
   m_pnoiseoccupancymapHistoVectorECA{},
   m_pnoiseoccupancymapHistoVectorECASide0{},
   m_pnoiseoccupancymapHistoVectorECASide1{},
-  //
   m_d1(0),
   m_n1(0),
   m_n1Barrel{},
@@ -127,28 +125,21 @@ SCTRatioNoiseMonTool::SCTRatioNoiseMonTool(const string& type,
   m_d1Barrel{},
   m_d1EndcapA{},
   m_d1EndcapC{},
-  //
   m_noSidesHit(false),
   m_oneSideHit(false),
   m_twoSidesHit(false),
   m_correct_TimeBin(false),
-  //
   m_nNoSides{},
   m_nOneSide{},
   m_nOneSide0{},
   m_nOneSide1{},
   m_nTwoSide{},
-  //
   m_nLink0{},
   m_nLink1{},
-  /** goodModules init in ctor body **/
-  //
   m_nLayer{},
   m_nEta{},
   m_nPhi{},
   m_nNonGoodModule{},
-  //
-  m_checkrecent(1),
   m_current_lb(0),
   m_last_reset_lb(0),
   m_set_timebin(-1),
@@ -172,25 +163,21 @@ SCTRatioNoiseMonTool::SCTRatioNoiseMonTool(const string& type,
   m_NZ1(nullptr),
   m_N11(nullptr),
   m_N21(nullptr),
-  //
   m_NZ1BAR{},
   m_N11BAR{},
   m_N21BAR{},
   m_NZ1BAR_vsLB{},
   m_N11BAR_vsLB{},
-  //
   m_NZ1ECC{},
   m_N11ECC{},
   m_N21ECC{},
   m_NZ1ECC_vsLB{},
   m_N11ECC_vsLB{},
-  //
   m_NZ1ECA{},
   m_N11ECA{},
   m_N21ECA{},
   m_NZ1ECA_vsLB{},
   m_N11ECA_vsLB{},
-  //
   m_NO(nullptr),
   m_NOSide(nullptr),
   m_NO_vsLB(nullptr),
@@ -212,33 +199,17 @@ SCTRatioNoiseMonTool::SCTRatioNoiseMonTool(const string& type,
   m_NOECA_disk{},
   m_NOECA_disk_vsLB{},
   m_numberHitsinBarrel{},
-  //
   m_NZ1_vs_modnum(nullptr),
   m_N11_vs_modnum(nullptr),
-  //
-  m_stream("/stat"),
   m_path(""),
-  m_tracksName(""), // never used?
-  m_NOTrigger("L1_RD0_EMPTY"),
-  m_dataObjectName(std::string("SCT_RDOs")),
-  m_eventInfoKey(std::string("EventInfo")),
-  m_pSCTHelper(nullptr),
-  m_checkBadModules(true),
-  m_ignore_RDO_cut_online(true) {
-  /** sroe 3 Sept 2015:
-     histoPathBase is declared as a property in the base class, assigned to m_path
-     with default as empty string.
-     Declaring it here as well gives rise to compilation warning
-     WARNING duplicated property name 'histoPathBase', see https://its.cern.ch/jira/browse/GAUDI-1023
-     declareProperty("histoPathBase", m_stream = "/stat"); **/
-  m_stream = "/stat";
-  declareProperty("checkBadModules", m_checkBadModules);
+  m_pSCTHelper(nullptr) {
+  declareProperty("checkBadModules", m_checkBadModules=true);
   declareProperty("CheckRate", m_checkrate = 1000);
   declareProperty("CheckRecent", m_checkrecent = 1);
   declareProperty("NOTrigger", m_NOTrigger = "L1_RD0_EMPTY");
-  declareProperty("IgnoreRDOCutOnline", m_ignore_RDO_cut_online);
+  declareProperty("IgnoreRDOCutOnline", m_ignore_RDO_cut_online=true);
 
-  for (auto& i:m_goodModules) {
+  for (bool& i: m_goodModules) {
     i = true;
   }
 }
@@ -249,7 +220,6 @@ StatusCode SCTRatioNoiseMonTool::initialize() {
   ATH_CHECK( SCTMotherTrigMonTool::initialize() );
 
   ATH_CHECK( m_dataObjectName.initialize() );
-  ATH_CHECK( m_eventInfoKey.initialize() );
 
   return StatusCode::SUCCESS;
 }
@@ -309,16 +279,12 @@ StatusCode
 SCTRatioNoiseMonTool::fillHistograms() {
   ATH_MSG_DEBUG("enters fillHistograms");
   // lets get the raw hit container
-  typedef SCT_RDORawData SCTRawDataType;
   SG::ReadHandle<SCT_RDO_Container> p_rdocontainer(m_dataObjectName);
   if (not p_rdocontainer.isValid()) {
     return StatusCode::FAILURE;
   }
 
   Identifier SCT_Identifier;
-  // Use new IDC
-  SCT_RDO_Container::const_iterator col_it = p_rdocontainer->begin();
-  SCT_RDO_Container::const_iterator lastCol = p_rdocontainer->end();
 
   // Declare Time Bin
   m_set_timebin = 4;
@@ -354,7 +320,8 @@ SCTRatioNoiseMonTool::fillHistograms() {
 
   SG::ReadHandle<xAOD::EventInfo> pEvent(m_eventInfoKey);
   if (not pEvent.isValid()) {
-    return ERROR("Could not find event pointer"), StatusCode::FAILURE;
+    ATH_MSG_ERROR("Could not find event pointer");
+    return StatusCode::FAILURE;
   }
 
   const bool isSelectedTrigger = true;
@@ -368,15 +335,13 @@ SCTRatioNoiseMonTool::fillHistograms() {
   m_current_lb = tmplb;
   int count_SCT_RDO = 0;
   if (isSelectedTrigger == true) {
-    for (; col_it != lastCol; ++col_it) {
+    for (const InDetRawDataCollection<SCT_RDORawData>* rd: *p_rdocontainer) {
       m_correct_TimeBin = false;
-      const InDetRawDataCollection<SCTRawDataType>* SCT_Collection(*col_it);
-      if (!SCT_Collection) {
+      if (rd==nullptr) {
         continue; // select only SCT RDOs
       }
-      const InDetRawDataCollection<SCT_RDORawData>* rd(*col_it);
 
-      Identifier SCT_Identifier = SCT_Collection->identify();
+      Identifier SCT_Identifier = rd->identify();
       int thisBec = m_pSCTHelper->barrel_ec(SCT_Identifier);
       int thisLayerDisk = m_pSCTHelper->layer_disk(SCT_Identifier);
       int thisPhi = m_pSCTHelper->phi_module(SCT_Identifier);
@@ -393,11 +358,10 @@ SCTRatioNoiseMonTool::fillHistograms() {
         m_nNonGoodModule[m_modNum] = 1;
       }
 
-      DataVector<SCTRawDataType>::const_iterator p_rdo_end = SCT_Collection->end();
-      for (DataVector<SCTRawDataType>::const_iterator p_rdo = SCT_Collection->begin(); p_rdo != p_rdo_end; ++p_rdo) {
+      for (const SCT_RDORawData* rdo: *rd) {
         count_SCT_RDO++;
-        const SCT3_RawData* rdo3 = dynamic_cast<const SCT3_RawData *>(*p_rdo);
-        if (rdo3 != 0) {
+        const SCT3_RawData* rdo3 = dynamic_cast<const SCT3_RawData*>(rdo);
+        if (rdo3) {
           m_tbin = (rdo3)->getTimeBin();
         }
         if (timeBinInPattern(m_tbin, XIX) && goodModule) {
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTTracksMonTool.cxx b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTTracksMonTool.cxx
index af5c55d06ec..830b748cdff 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTTracksMonTool.cxx
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/SCTTracksMonTool.cxx
@@ -70,6 +70,8 @@ SCTTracksMonTool::SCTTracksMonTool(const string& type,
                                    const IInterface* parent)
   : SCTMotherTrigMonTool(type, name, parent),
   m_nTracks(nullptr),
+  m_nTracks_buf{},
+  m_nTracks_pos{0},
   m_trackTrigger(nullptr),
   m_trackTriggerRate(nullptr),
   m_totalBarrelResidual(nullptr),
@@ -114,29 +116,16 @@ SCTTracksMonTool::SCTTracksMonTool(const string& type,
   m_psctpulls_summaryHistoVector{},
   m_psctpulls_summaryHistoVectorECp{},
   m_psctpulls_summaryHistoVectorECm{},
-  m_path(""),
-  m_useIDGlobal(false),
-  m_residualPullCalculator("Trk::ResidualPullCalculator/ResidualPullCalculator", this),
+  m_stream{"/stat"},
+  m_path{""},
   m_pSCTHelper(nullptr) {
-  /** sroe 3 Sept 2015:
-     histoPathBase is declared as a property in the base class, assigned to m_path
-     with default as empty string.
-     Declaring it here as well gives rise to compilation warning
-     WARNING duplicated property name 'histoPathBase', see https://its.cern.ch/jira/browse/GAUDI-1023
-
-     declareProperty("histoPathBase", m_stream = "/stat"); **/
-  m_stream = "/stat";
-  declareProperty("tracksName", m_tracksName = std::string("SCT_Cosmic_Tracks")); // "ExtendedTracks");
   declareProperty("trackHitCut", m_trackHitCut = 3);
   declareProperty("CheckRate", m_checkrate = 1000);
   declareProperty("doPositiveEndcap", m_doPositiveEndcap = true);
-  declareProperty("doNegativeEndcap", m_doNegativeEndcap = false);
-  declareProperty("ResPullCalc", m_residualPullCalculator);
+  declareProperty("doNegativeEndcap", m_doNegativeEndcap = true);
   declareProperty("useIDGlobal", m_useIDGlobal = false);
   declareProperty("doUnbiasedCalc", m_doUnbiasedCalc = true);
   declareProperty("EvtsBins", m_evtsbins = 5000);
-  m_nTracks_buf = nullptr;
-  m_nTracks_pos = 0;
 }
 
 // ====================================================================================================
@@ -145,7 +134,7 @@ StatusCode SCTTracksMonTool::initialize() {
   ATH_CHECK( SCTMotherTrigMonTool::initialize() );
 
   ATH_CHECK( m_tracksName.initialize() );
-  CHECK(m_residualPullCalculator.retrieve());
+  ATH_CHECK(m_residualPullCalculator.retrieve());
   return StatusCode::SUCCESS;
 }
 
@@ -159,12 +148,12 @@ SCTTracksMonTool::bookHistogramsRecurrent() {
   if (newRunFlag()) {
     m_numberOfEvents = 0;
   }
-  CHECK(detStore()->retrieve(m_pSCTHelper, "SCT_ID"));
+  ATH_CHECK(detStore()->retrieve(m_pSCTHelper, "SCT_ID"));
   if (m_doUnbiasedCalc) {
-    CHECK(m_updator.retrieve());
+    ATH_CHECK(m_updator.retrieve());
   }
   // Booking  Track related Histograms
-  CHECK(bookGeneralHistos());
+  ATH_CHECK(bookGeneralHistos());
   const bool doThisSubsystem[N_REGIONS] = {
     m_doNegativeEndcap, true, m_doPositiveEndcap
   };
@@ -190,12 +179,12 @@ SCTTracksMonTool::bookHistograms() {
   if (newRunFlag()) {
     m_numberOfEvents = 0;
   }
-  CHECK(detStore()->retrieve(m_pSCTHelper, "SCT_ID"));
+  ATH_CHECK(detStore()->retrieve(m_pSCTHelper, "SCT_ID"));
   if (m_doUnbiasedCalc) {
-    CHECK(m_updator.retrieve());
+    ATH_CHECK(m_updator.retrieve());
   }
   // Booking  Track related Histograms
-  CHECK(bookGeneralHistos());
+  ATH_CHECK(bookGeneralHistos());
   const bool doThisSubsystem[N_REGIONS] = {
     m_doNegativeEndcap, true, m_doPositiveEndcap
   };
@@ -272,9 +261,7 @@ SCTTracksMonTool::fillHistograms() {
     return StatusCode::SUCCESS;
   }
   int local_tot_trkhits(0);
-  TrackCollection::const_iterator trkend(tracks->end());
-  TrackCollection::const_iterator trkbegin(tracks->begin());
-  if (trkend == trkbegin) {
+  if (tracks->size()==0) {
     if (m_doTrigger) {
       for (int trig(0); trig != N_TRIGGER_TYPES; ++trig) {
         m_trackTriggerRate->Fill(trig, 0);
@@ -286,13 +273,12 @@ SCTTracksMonTool::fillHistograms() {
   }
   int goodTrks_N = 0;
   ATH_MSG_DEBUG("Begin loop over " << tracks->size() << " tracks");
-  for (TrackCollection::const_iterator trkitr(tracks->begin()); trkitr != trkend; ++trkitr) {
-    int local_scthits = 0;
-    const Trk::Track* track = (*trkitr);
+  for (const Trk::Track* track: *tracks) {
     if (not track) {
       ATH_MSG_ERROR("No pointer to track");
       break;
     }
+    int local_scthits = 0;
     int scthits_on_trk(0);     // Breaks out of loop if track has less than 3 sct hits
     const Trk::TrackSummary* trkSum(track->trackSummary());
     if (trkSum) {
@@ -365,9 +351,9 @@ SCTTracksMonTool::fillHistograms() {
     H1_t residualsSummaryHistogram(0);
     H1_t pullsSummaryHistogram(0);
     DataVector<const Trk::TrackStateOnSurface>::const_iterator endit(trackStates->end());
-    for (DataVector<const Trk::TrackStateOnSurface>::const_iterator it(trackStates->begin()); it != endit; ++it) {
-      if ((*it)->type(Trk::TrackStateOnSurface::Measurement)) {
-        const InDet::SiClusterOnTrack* clus(dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack()));
+    for (const Trk::TrackStateOnSurface* tsos: *trackStates) {
+      if (tsos->type(Trk::TrackStateOnSurface::Measurement)) {
+        const InDet::SiClusterOnTrack* clus(dynamic_cast<const InDet::SiClusterOnTrack*>(tsos->measurementOnTrack()));
         if (clus) { // Is it a SiCluster? If yes...
           const InDet::SiCluster* RawDataClus(dynamic_cast<const InDet::SiCluster*>(clus->prepRawData()));
           if (not RawDataClus) {
@@ -384,14 +370,14 @@ SCTTracksMonTool::fillHistograms() {
             const bool doThisDetector(doThisSubsystem[subsystemIndex]);
             hasHits[subsystemIndex] = true;
             const Trk::TrackParameters* trkParameters(0);
-            const Trk::RIO_OnTrack* rio(dynamic_cast<const Trk::RIO_OnTrack*>((*it)->measurementOnTrack()));
+            const Trk::RIO_OnTrack* rio(dynamic_cast<const Trk::RIO_OnTrack*>(tsos->measurementOnTrack()));
             bool updateSucceeds(true);
             if (rio) {
 #ifndef NDEBUG
               ATH_MSG_DEBUG("if rio");
 #endif
               if (m_doUnbiasedCalc) {
-                const Trk::TrackParameters* trkParam((*it)->trackParameters());
+                const Trk::TrackParameters* trkParam(tsos->trackParameters());
                 if (trkParam) {
                   trkParameters = m_updator->removeFromState(*trkParam, rio->localParameters(), rio->localCovariance());
                   updateSucceeds = (trkParameters != 0);
@@ -401,7 +387,7 @@ SCTTracksMonTool::fillHistograms() {
               ATH_MSG_DEBUG("not rio");
             }
             if (!trkParameters) {
-              trkParameters = (*it)->trackParameters();
+              trkParameters = tsos->trackParameters();
             }
             if (trkParameters) {
               const AmgVector(5) LocalTrackParameters(trkParameters->parameters());
@@ -410,11 +396,11 @@ SCTTracksMonTool::fillHistograms() {
               ATH_MSG_DEBUG("Cluster Position Phi= " << clus->localParameters()[Trk::locX]);
 #endif
               if (!m_residualPullCalculator.empty()) {
-                const Trk::ResidualPull* residualPull(m_residualPullCalculator->residualPull(rio, trkParameters,
-                                                                                             m_doUnbiasedCalc ? Trk::ResidualPull::Unbiased : Trk::ResidualPull::Biased));
+                std::unique_ptr<const Trk::ResidualPull> residualPull(m_residualPullCalculator->residualPull(rio, trkParameters,
+                                                                                                             m_doUnbiasedCalc ? Trk::ResidualPull::Unbiased : Trk::ResidualPull::Biased));
                 if (!residualPull) {
                   ATH_MSG_WARNING("Residual Pull Calculator did not succeed!");
-                  return StatusCode::FAILURE;
+                  return StatusCode::SUCCESS;
                 } else {
                   float local_residual(residualPull->residual()[Trk::locX]);
                   float local_pull(residualPull->pull()[Trk::locX]);
@@ -454,8 +440,6 @@ SCTTracksMonTool::fillHistograms() {
                     }
                   }
                 }
-                delete residualPull;
-                residualPull = 0;
               }
             } else { // no measured local parameters, pull won't be calculated
               ATH_MSG_WARNING("No measured local parameters, pull won't be calculated");
@@ -519,7 +503,7 @@ SCTTracksMonTool::fillHistograms() {
             }
           } // end if SCT..
         } // end if (clus)
-      } // if ((*it)->type(Trk::TrackStateOnSurface::Measurement))
+      } // if (tsos->type(Trk::TrackStateOnSurface::Measurement))
     }// end of loop on TrackStatesonSurface (they can be SiClusters, TRTHits,..)
     m_trk_ncluHisto->Fill(local_scthits, 1.);
     // We now know whether this particular track had hits in the barrel or endcaps- update the profile histogram
@@ -538,7 +522,7 @@ SCTTracksMonTool::fillHistograms() {
       }
     }
     // Time Dependent SP plots only online
-    m_nTracks_buf[m_nTracks_pos] = (int) (m_trk_chi2->GetEntries());
+    m_nTracks_buf[m_nTracks_pos] = static_cast<int>(m_trk_chi2->GetEntries());
     m_nTracks_pos++;
     if (m_nTracks_pos == m_evtsbins) {
       m_nTracks_pos = 0;
@@ -652,16 +636,15 @@ SCTTracksMonTool::checkHists(bool /*fromFinalize*/) {
     }
     //  (*residualsRms[0])[0]->GetXaxis()->SetTitle("Index in the direction of #eta");
   }
-    // Now checking RMS and Means of Pulls 1D Histos
+  // Now checking RMS and Means of Pulls 1D Histos
   TF1 pullgaus("pullgaus", "gaus");
   pullgaus.SetParameter(1, 0.);
   pullgaus.SetParameter(2, 1.);
   if (not m_psctpulls_summaryHistoVector.empty()) {
-    VecH1_t::const_iterator endit(m_psctpulls_summaryHistoVector.end());
-    for (VecH1_t::const_iterator it(m_psctpulls_summaryHistoVector.begin()); it != endit; ++it) {
-      if ((*it)->GetEntries() > 2) {// only fit if #entries > 1, otherwise root crashes
-        ATH_MSG_DEBUG("GetEntries = " << (*it)->GetEntries());
-        (*it)->Fit("pullgaus", "Q", "", -2., 2.); // Fit Pulls with a gaussian, Quiet mode ; adding 'N' would aslo do no
+    for (const H1_t h1: m_psctpulls_summaryHistoVector) {
+      if (h1->GetEntries() > 2) {// only fit if #entries > 1, otherwise root crashes
+        ATH_MSG_DEBUG("GetEntries = " << h1->GetEntries());
+        h1->Fit("pullgaus", "Q", "", -2., 2.); // Fit Pulls with a gaussian, Quiet mode ; adding 'N' would aslo do no
                                                   // drawing of the fitted function: the increase in speed is small,
                                                   // though.
         double par[3], epar[3];
@@ -670,10 +653,10 @@ SCTTracksMonTool::checkHists(bool /*fromFinalize*/) {
           epar[i] = pullgaus.GetParError(i);    // error on the params
         }
         if (abs(par[1]) > 5. * epar[1]) {
-          (*it)->SetLineColor(2);
+          h1->SetLineColor(2);
         }
         if ((par[2] - 5. * epar[2]) > 2.) {
-          (*it)->SetLineColor(2);
+          h1->SetLineColor(2);
         }
       }
     }
@@ -689,7 +672,7 @@ SCTTracksMonTool::checkHists(bool /*fromFinalize*/) {
    // use kalman updator to get unbiased states
    IAlgTool*  algTool;
    ListItem ltool("Trk::KalmanUpdator/TrkKalmanUpdator");
-   CHECK(toolSvc()->retrieveTool(ltool.type(), ltool.name(), algTool));
+   ATH_CHECK(toolSvc()->retrieveTool(ltool.type(), ltool.name(), algTool));
    m_updator = dynamic_cast<Trk::IUpdator*>(algTool);
    if (not m_updator ) {
     ATH_MSG_FATAL("Could not get KalmanUpdator for unbiased track states");
@@ -727,28 +710,28 @@ SCTTracksMonTool::bookGeneralHistos() {
     m_tracksPerRegion->GetXaxis()->SetBinLabel(1, "EndCapC");
     m_tracksPerRegion->GetXaxis()->SetBinLabel(2, "Barrel");
     m_tracksPerRegion->GetXaxis()->SetBinLabel(3, "EndCapA");
-    CHECK(Tracks.regHist(m_tracksPerRegion));
+    ATH_CHECK(Tracks.regHist(m_tracksPerRegion));
     m_totalBarrelResidual = new TH1F("totalBarrelResidual", "Overall Residual Distribution for the Barrel", 100, -0.5,
                                      0.5);
     m_totalBarrelResidual->GetXaxis()->SetTitle("Residual [mm]");
-    CHECK(Tracks.regHist(m_totalBarrelResidual));
+    ATH_CHECK(Tracks.regHist(m_totalBarrelResidual));
     m_totalEndCapAResidual = new TH1F("totalEndCapAResidual", "Overall Residual Distribution for the EndCapA", 100,
                                       -0.5, 0.5);
     m_totalEndCapAResidual->GetXaxis()->SetTitle("Residual [mm]");
-    CHECK(Tracks.regHist(m_totalEndCapAResidual));
+    ATH_CHECK(Tracks.regHist(m_totalEndCapAResidual));
     m_totalEndCapCResidual = new TH1F("totalEndCapCResidual", "Overall Residual Distribution for the EndCapC", 100,
                                       -0.5, 0.5);
     m_totalEndCapCResidual->GetXaxis()->SetTitle("Residual [mm]");
-    CHECK(Tracks.regHist(m_totalEndCapCResidual));
+    ATH_CHECK(Tracks.regHist(m_totalEndCapCResidual));
     m_totalBarrelPull = new TH1F("totalBarrelPull", "Overall Pull Distribution for the Barrel", 100, -5, 5);
     m_totalBarrelPull->GetXaxis()->SetTitle("Pull");
-    CHECK(Tracks.regHist(m_totalBarrelPull));
+    ATH_CHECK(Tracks.regHist(m_totalBarrelPull));
     m_totalEndCapAPull = new TH1F("totalEndCapAPull", "Overall Pull Distribution for the EndCapA", 100, -5, 5);
     m_totalEndCapAPull->GetXaxis()->SetTitle("Pull");
-    CHECK(Tracks.regHist(m_totalEndCapAPull));
+    ATH_CHECK(Tracks.regHist(m_totalEndCapAPull));
     m_totalEndCapCPull = new TH1F("totalEndCapCPull", "Overall Pull Distribution for the EndCapC", 100, -5, 5);
     m_totalEndCapCPull->GetXaxis()->SetTitle("Pull");
-    CHECK(Tracks.regHist(m_totalEndCapCPull));
+    ATH_CHECK(Tracks.regHist(m_totalEndCapCPull));
 
     if (m_doTrigger == true) {
       m_trackTrigger = new TH1I("trackTriggers", "Tracks for different trigger types", N_TRIGGER_TYPES, -0.5, 7.5);            //
@@ -762,8 +745,8 @@ SCTTracksMonTool::bookGeneralHistos() {
         m_trackTrigger->GetXaxis()->SetBinLabel(trig + 1, SCTMotherTrigMonTool::m_triggerNames[trig].c_str());
         m_trackTriggerRate->GetXaxis()->SetBinLabel(trig + 1, SCTMotherTrigMonTool::m_triggerNames[trig].c_str());
       }
-      CHECK(Tracks.regHist(m_trackTrigger));
-      CHECK(Tracks.regHist(m_trackTriggerRate));
+      ATH_CHECK(Tracks.regHist(m_trackTrigger));
+      ATH_CHECK(Tracks.regHist(m_trackTriggerRate));
     }
     // Book histogram of track rate for different regions of the detector
     m_trackRate = new TProfile("SCTTrackRate", "Track per event for SCT regions", 3, 0.0, 3.0);
@@ -771,56 +754,54 @@ SCTTracksMonTool::bookGeneralHistos() {
     m_trackRate->GetXaxis()->SetBinLabel(2, "Barrel");
     m_trackRate->GetXaxis()->SetBinLabel(3, "EndcapA");
 
-    CHECK(Tracks.regHist(m_trackRate));
+    ATH_CHECK(Tracks.regHist(m_trackRate));
     //
     m_trk_ncluHisto = new TH1F("trk_sct_hits", "SCT HITS per single Track", N_HIT_BINS, FIRST_HIT_BIN, LAST_HIT_BIN);
     m_trk_ncluHisto->GetXaxis()->SetTitle("Num of Hits");
-    CHECK(Tracks.regHist(m_trk_ncluHisto));
+    ATH_CHECK(Tracks.regHist(m_trk_ncluHisto));
 
     m_trk_nclu_totHisto = new TH1F("sct_hits_onall_tracks", "SCT HITS on all event Tracks", N_HIT_BINS, FIRST_HIT_BIN,
                                    LAST_HIT_BIN);
     m_trk_nclu_totHisto->GetXaxis()->SetTitle("Num of SCT Hits");
     m_trk_nclu_totHisto->GetYaxis()->SetTitle("Num of Events");
-    CHECK(Tracks.regHist(m_trk_nclu_totHisto));
+    ATH_CHECK(Tracks.regHist(m_trk_nclu_totHisto));
 
     m_trk_chi2 = new TH1F("trk_chi2", "Track #chi^{2} div ndf", 150, 0., 150.);
     m_trk_chi2->GetXaxis()->SetTitle("Number of track #chi^{2}/NDF");
-    CHECK(Tracks.regHist(m_trk_chi2));
+    ATH_CHECK(Tracks.regHist(m_trk_chi2));
 
     m_trk_N = new TH1F("trk_N", "Number of tracks", 400, 0, 4000);
     m_trk_N->GetXaxis()->SetTitle("Number of tracks");
-    CHECK(Tracks.regHist(m_trk_N));
+    ATH_CHECK(Tracks.regHist(m_trk_N));
 
 
     m_trk_pt = new TH1F("trk_pt", "Track P_{T}", 150, 0., 150.);
     m_trk_pt->GetXaxis()->SetTitle("P_{T} [GeV]");
-    CHECK(Tracks.regHist(m_trk_pt));
+    ATH_CHECK(Tracks.regHist(m_trk_pt));
 
     m_trk_d0 = new TH1F("trk_d0", "Track d0", 160, -40., 40.);
     m_trk_d0->GetXaxis()->SetTitle("d0 [mm]");
-    CHECK(Tracks.regHist(m_trk_d0));
+    ATH_CHECK(Tracks.regHist(m_trk_d0));
 
     m_trk_z0 = new TH1F("trk_z0", "Track z0", 200, -200., 200.);
     m_trk_z0->GetXaxis()->SetTitle("z0 [mm]");
-    CHECK(Tracks.regHist(m_trk_z0));
+    ATH_CHECK(Tracks.regHist(m_trk_z0));
 
     m_trk_phi = new TH1F("trk_phi", "Track Phi", 160, -4, 4.);
     m_trk_phi->GetXaxis()->SetTitle("#phi [rad]");
-    CHECK(Tracks.regHist(m_trk_phi));
+    ATH_CHECK(Tracks.regHist(m_trk_phi));
 
     m_trk_eta = new TH1F("trk_eta", "Track Eta", 160, -4., 4.);
     m_trk_eta->GetXaxis()->SetTitle("#eta");
-    CHECK(Tracks.regHist(m_trk_eta));
+    ATH_CHECK(Tracks.regHist(m_trk_eta));
 
     if (m_environment == AthenaMonManager::online) {
       m_nTracks = new TH1I("sct_tracks_vs_en", "Number of Tracks vs Event Number", m_evtsbins, 1, m_evtsbins + 1);
       m_nTracks->GetXaxis()->SetTitle("Event Number");
       m_nTracks->GetYaxis()->SetTitle("Num of Tracks");
-      size_t nTracks_buf_size;
-      nTracks_buf_size = m_evtsbins * sizeof(int);
-      m_nTracks_buf = (int*) malloc(nTracks_buf_size);
+      m_nTracks_buf.reserve(m_evtsbins);
       m_nTracks_pos = 0;
-      CHECK(Tracks.regHist(m_nTracks));
+      ATH_CHECK(Tracks.regHist(m_nTracks));
     }
   }
   return StatusCode::SUCCESS;
@@ -884,9 +865,9 @@ SCTTracksMonTool::bookTrackHistos(const SCT_Monitoring::Bec becVal) {
     string streamPull(string("pulls") + abbreviation + streamDelimiter + layerSide.name());
     string titleResidual(string("SCT Residuals for ") + polarityString + ": " + layerSide.title());
     string titlePull(string("SCT Pulls: ") + layerSide.title());
-    CHECK(h1Factory(streamResidual + "_summary", "Summary " + titleResidual, 0.5, endCapTracksResi,
+    ATH_CHECK(h1Factory(streamResidual + "_summary", "Summary " + titleResidual, 0.5, endCapTracksResi,
                     *p_residualsSummary));
-    CHECK(h1Factory(streamPull + "_summary", "Summary " + titlePull, 5., endCapTracksPull, *p_pullsSummary));
+    ATH_CHECK(h1Factory(streamPull + "_summary", "Summary " + titlePull, 5., endCapTracksPull, *p_pullsSummary));
   }
 
 
@@ -922,8 +903,8 @@ SCTTracksMonTool::bookTrackHistos(const SCT_Monitoring::Bec becVal) {
       string titleResidual(string("SCT Residuals for ") + polarityString + ": " + layerSide.title());
       string titlePull(string("SCT Pulls: ") + layerSide.title());
 
-      CHECK(p2Factory(streamResidual, titleResidual, becVal, endCapTracksResi, *p_residuals));
-      CHECK(p2Factory(streamPull, titlePull, becVal, endCapTracksPull, *p_pulls));
+      ATH_CHECK(p2Factory(streamResidual, titleResidual, becVal, endCapTracksResi, *p_residuals));
+      ATH_CHECK(p2Factory(streamPull, titlePull, becVal, endCapTracksPull, *p_pulls));
     }
 
     for (unsigned int i(0); i != limit; ++i) {
@@ -935,8 +916,8 @@ SCTTracksMonTool::bookTrackHistos(const SCT_Monitoring::Bec becVal) {
       string streamPull("pullsRMS" + abbreviation + streamDelimiter + layerString + streamDelimiter + sideString);
       string titleResidual("SCT Residuals RMS for " + polarityString + ": " + layerSide.title());
       string titlePull(string("SCT Pulls RMS for ") + polarityString + ": " + layerSide.title());
-      CHECK(h2Factory(streamResidual, titleResidual, becVal, endCapTracksResi, *p_residualsRms));
-      CHECK(h2Factory(streamPull, titlePull, becVal, endCapTracksPull, *p_pullsRms));
+      ATH_CHECK(h2Factory(streamResidual, titleResidual, becVal, endCapTracksResi, *p_residualsRms));
+      ATH_CHECK(h2Factory(streamPull, titlePull, becVal, endCapTracksPull, *p_pullsRms));
     }
   }
 
@@ -959,7 +940,7 @@ SCTTracksMonTool::h2Factory(const std::string& name, const std::string& title,
   }
   H2_t tmp = new TH2F(TString(name), TString(
                         title), nEta, firstEta - 0.5, lastEta + 0.5, nPhi, firstPhi - 0.5, lastPhi + 0.5);
-  CHECK(registry.regHist(tmp));
+  ATH_CHECK(registry.regHist(tmp));
   storageVector.push_back(tmp);
   return StatusCode::SUCCESS;
 }
@@ -980,7 +961,7 @@ SCTTracksMonTool::p2Factory(const std::string& name, const std::string& title,
   }
   Prof2_t tmp = new TProfile2D(TString(name), TString(
                                  title), nEta, firstEta - 0.5, lastEta + 0.5, nPhi, firstPhi - 0.5, lastPhi + 0.5, "s");
-  CHECK(registry.regHist(tmp));
+  ATH_CHECK(registry.regHist(tmp));
   storageVector.push_back(tmp);
   return StatusCode::SUCCESS;
 }
@@ -992,7 +973,7 @@ SCTTracksMonTool::h1Factory(const std::string& name, const std::string& title, c
   const float lo(-extent), hi(extent);
   H1_t tmp = new TH1F(TString(name), TString(title), nbins, lo, hi);
 
-  CHECK(registry.regHist(tmp));
+  ATH_CHECK(registry.regHist(tmp));
   storageVector.push_back(tmp);
   return StatusCode::SUCCESS;
 }
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/cArrayUtilities.h b/InnerDetector/InDetMonitoring/SCT_Monitoring/src/cArrayUtilities.h
deleted file mode 100644
index d94e20aaf96..00000000000
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/src/cArrayUtilities.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef SCT_MonitoringcArrayUtilities_h
-#define SCT_MonitoringcArrayUtilities_h
-
-/**    @file cArrayUtilities.cxx
- *
- *
- *  @author  Shaun Roe
- *  Header amnd implementation for utiities dealing with
- *  C-style arrays
- */
-
-
-namespace SCT_Monitoring {
-  // give the total size of a 3D C-style array
-  template<class T, int Size1, int Size2, int Size3>
-  int
-  extent(T (&/*parray*/)[Size1][Size2][Size3]) {
-    return Size1 * Size2 * Size3;
-  }
-
-  // give the total size of a 2D C-style array
-  template<class T, int Size1, int Size2>
-  int
-  extent(T (&/*parray*/)[Size1][Size2]) {
-    return Size1 * Size2;
-  }
-
-  // give beyond-the-end pointer for 2D C-style array
-  template<class T, int Size1, int Size2>
-  T *
-  endof(T (&parray)[Size1][Size2]) {
-    return &(parray[0][0]) + extent(parray);
-  }
-
-  // give the byte size of a 3D C-style array
-  template<class T, int Size1, int Size2, int Size3>
-  int
-  byte_extent3D(T (&)[Size1][Size2][Size3]) {
-    return Size1 * Size2 * Size3 * sizeof(T);
-  }
-
-  // give the byte size of a 2D C-style array
-  template<class T, int Size1, int Size2>
-  int
-  byte_extent(T (&)[Size1][Size2]) {
-    return Size1 * Size2 * sizeof(T);
-  }
-
-  // give the byte size of a 1D C-style array
-  template<class T, int Size1>
-  int
-  byte_extent1D(T (&)[Size1]) {
-    return Size1 * sizeof(T);
-  }
-
-  template <class T, int Size1, int Size2, int Size3>
-  void
-  clear3D(T (&parray)[Size1][Size2][Size3]) {
-    memset(parray, 0, byte_extent3D(parray));
-  }
-
-  template <class T, int Size1, int Size2>
-  void
-  clear(T (&parray)[Size1][Size2]) {
-    memset(parray, 0, byte_extent(parray));
-  }
-
-  // for 1-D arrays
-  template <class T, int Size1>
-  void
-  clear1D(T (&parray)[Size1]) {
-    memset(parray, 0, byte_extent1D(parray));
-  }
-}
-#endif
-- 
GitLab