diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h
index 68ab722f6a0d5d4c1e096f716b7cd83f1ed8e22d..b0f1ae4d2479c6f9b1cadbf34d157c58781480e3 100644
--- a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h
+++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/IL1CPMTools.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 ///////////////////////////////////////////////////////////////////
 // L1CPMTools.h, 
@@ -32,25 +32,25 @@ class CPMTobRoI;
     static const InterfaceID& interfaceID( ) ;
 
     // enter declaration of your interface-defining member functions here
-      virtual void mapTowers(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTowerMap_t* towers) = 0;
+      virtual void mapTowers(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTowerMap_t* towers) const = 0;
       
-      virtual void findRoIs(const xAOD::CPMTowerMap_t* towers, DataVector<CPMTobAlgorithm>* tobs, int slice = -1) = 0;
+      virtual void findRoIs(const xAOD::CPMTowerMap_t* towers, DataVector<CPMTobAlgorithm>* tobs, int slice = -1) const = 0;
       
-      virtual void findRoIs(const DataVector<xAOD::CPMTower>* cpmts, DataVector<CPMTobAlgorithm>* tobs, int slice = -1) = 0;
+      virtual void findRoIs(const DataVector<xAOD::CPMTower>* cpmts, DataVector<CPMTobAlgorithm>* tobs, int slice = -1) const = 0;
      
-      virtual void findCPMTobRoIs(const xAOD::CPMTowerMap_t* towers, xAOD::CPMTobRoIContainer* rois, int slice = -1) = 0;
+      virtual void findCPMTobRoIs(const xAOD::CPMTowerMap_t* towers, xAOD::CPMTobRoIContainer* rois, int slice = -1) const = 0;
      
-      virtual void findCPMTobRoIs(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTobRoIContainer* rois, int slice = -1) = 0;
+      virtual void findCPMTobRoIs(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTobRoIContainer* rois, int slice = -1) const = 0;
       
       virtual void findCPMResults(const xAOD::CPMTowerMap_t* towers, int crate, int module,
                                   DataVector<CPMTobRoI>* rois, std::vector<unsigned int>& emCMXData,
-                                  std::vector<unsigned int>& tauCMXData, int slice = -1) = 0;
+                                  std::vector<unsigned int>& tauCMXData, int slice = -1) const = 0;
       
-      virtual CPMTobAlgorithm findRoI(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1)  = 0;
+      virtual CPMTobAlgorithm findRoI(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1) const = 0;
       
-      virtual void formSums(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1)  = 0;
+      virtual void formSums(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1) = 0;
       
-      virtual void formSums(uint32_t roiWord, const xAOD::CPMTowerMap_t* towers, int slice = -1)  = 0;
+      virtual void formSums(uint32_t roiWord, const xAOD::CPMTowerMap_t* towers, int slice = -1) = 0;
       
       virtual int Core() const = 0;
       
diff --git a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPMTools.h b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPMTools.h
index 5e01291f091613fb8eca850c46de435bdaa2c7c3..9ba991e2dd324bd34abb54415d0b73302e4c78a0 100644
--- a/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPMTools.h
+++ b/Trigger/TrigT1/TrigT1CaloTools/TrigT1CaloTools/L1CPMTools.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 ///////////////////////////////////////////////////////////////////
 // L1CPMTools.h, 
@@ -33,9 +33,9 @@ namespace LVL1
       r RoI location from the stored TriggerTowers.
       Used for offline monitoring and trigger reconstruction.
 
-      Useage: L1CPMTools->mapTowers() // set up event for analysis
-              L1CPMTools->formSums(eta, phi) // for each RoI
-              L1CPMTools->EmClus() // etc. Return values
+      Usage: L1CPMTools->mapTowers() // set up event for analysis
+             L1CPMTools->formSums(eta, phi) // for each RoI
+             L1CPMTools->EmClus() // etc. Return values
       
       @author  Alan Watson <Alan.Watson@cern.ch>
   */  
@@ -52,54 +52,54 @@ namespace LVL1
       virtual ~L1CPMTools ();
       
        /** standard Athena-Algorithm method */
-      virtual StatusCode initialize();
+      virtual StatusCode initialize() override;
        /** standard Athena-Algorithm method */
-      virtual StatusCode finalize  ();
+      virtual StatusCode finalize  () override;
       
       /** Tool-based EM/tau algorithm implementation */
       
       /** Map CPMTowers from user-supplied DataVector of inputs */
-      virtual void mapTowers(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTowerMap_t* towers);
+      virtual void mapTowers(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTowerMap_t* towers) const override;
        
       /** Find RoIs in user-supplied map of input towers */
-      virtual void findRoIs(const xAOD::CPMTowerMap_t* towers, DataVector<CPMTobAlgorithm>* tobs, int slice = -1);
+      virtual void findRoIs(const xAOD::CPMTowerMap_t* towers, DataVector<CPMTobAlgorithm>* tobs, int slice = -1) const override;
       
       /** Find RoIs in user-supplied DataVector of input towers */
-      virtual void findRoIs(const DataVector<xAOD::CPMTower>* cpmts, DataVector<CPMTobAlgorithm>* tobs, int slice = -1);
+      virtual void findRoIs(const DataVector<xAOD::CPMTower>* cpmts, DataVector<CPMTobAlgorithm>* tobs, int slice = -1) const override;
      
       /** Form CPM results for specified crate/module using user-supplied map of input towers
           This version fills a vector of CPMTobRoI for the whole detector */
-      virtual void findCPMTobRoIs(const xAOD::CPMTowerMap_t* towers, xAOD::CPMTobRoIContainer* rois, int slice = -1);
+      virtual void findCPMTobRoIs(const xAOD::CPMTowerMap_t* towers, xAOD::CPMTobRoIContainer* rois, int slice = -1) const override;
      
       /** Form CPM results for specified crate/module using user-supplied vector of input towers
           This version fills a vector of CPMTobRoI for the whole detector */
-      virtual void findCPMTobRoIs(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTobRoIContainer* rois, int slice = -1);
+      virtual void findCPMTobRoIs(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTobRoIContainer* rois, int slice = -1) const override;
       
       /** Form CPM results for specified crate/module using user-supplied map of input towers
           This version adds to DataVector of CPMTobRoI and returns backplane data words*/
       virtual void findCPMResults(const xAOD::CPMTowerMap_t* towers, int crate, int module,
                                   DataVector<CPMTobRoI>* rois, std::vector<unsigned int>& emCMXData,
-                                  std::vector<unsigned int>& tauCMXData, int slice = -1);
+                                  std::vector<unsigned int>& tauCMXData, int slice = -1) const override;
       
       /** Return RoI object for a specified location */
-      virtual CPMTobAlgorithm findRoI(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1) ;
+      virtual CPMTobAlgorithm findRoI(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1)  const override;
       
       /** Form cluster/isolation sums for a given RoI location */
-      virtual void formSums(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1) ;
-      virtual void formSums(uint32_t roiWord, const xAOD::CPMTowerMap_t* towers, int slice = -1) ;
+      virtual void formSums(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice = -1)  override;
+      virtual void formSums(uint32_t roiWord, const xAOD::CPMTowerMap_t* towers, int slice = -1) override;
       /** Methods to return the cluster/isolation ET values */
-      virtual int Core() const;
-      virtual int EMCore() const;
-      virtual int HadCore() const;
-      virtual int EMClus() const;
-      virtual int TauClus() const;
-      virtual int EMIsol() const;
-      virtual int HadIsol() const;
-      virtual bool isEtMax() const;  
-      virtual bool isEMRoI() const;  
-      virtual bool isTauRoI() const;  
-      virtual unsigned int EMIsolWord() const;
-      virtual unsigned int TauIsolWord() const;
+      virtual int Core() const override;
+      virtual int EMCore() const override;
+      virtual int HadCore() const override;
+      virtual int EMClus() const override;
+      virtual int TauClus() const override;
+      virtual int EMIsol() const override;
+      virtual int HadIsol() const override;
+      virtual bool isEtMax() const override;
+      virtual bool isEMRoI() const override;
+      virtual bool isTauRoI() const override; 
+      virtual unsigned int EMIsolWord() const override;
+      virtual unsigned int TauIsolWord() const override;
             
     private:
       
diff --git a/Trigger/TrigT1/TrigT1CaloTools/src/L1CPMTools.cxx b/Trigger/TrigT1/TrigT1CaloTools/src/L1CPMTools.cxx
index 39dfb3e0f8d8816622102e59428ae1d9aaf9d07b..12b13cf25742597d7a79369c010219d1d061f08b 100644
--- a/Trigger/TrigT1/TrigT1CaloTools/src/L1CPMTools.cxx
+++ b/Trigger/TrigT1/TrigT1CaloTools/src/L1CPMTools.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 ///////////////////////////////////////////////////////////////////
 // L1CPMTools.cxx,  
@@ -58,7 +58,7 @@ StatusCode L1CPMTools::finalize()
 
 void L1CPMTools::findCPMResults(const xAOD::CPMTowerMap_t* towers, int crate, int module,
                                 DataVector<CPMTobRoI>* rois, std::vector<unsigned int>& emCMXData,
-                                std::vector<unsigned int>& tauCMXData, int slice) {
+                                std::vector<unsigned int>& tauCMXData, int slice) const {
 
   /** This tool appends to an existing DataVector of results, so do not clear that.
    *  But reset & resize the module results vectors, to be safe */
@@ -209,7 +209,7 @@ void L1CPMTools::findCPMResults(const xAOD::CPMTowerMap_t* towers, int crate, in
 
 /** Find all CPMTobRoIs in the event */
 
-void L1CPMTools::findCPMTobRoIs(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTobRoIContainer* rois, int slice) {
+void L1CPMTools::findCPMTobRoIs(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTobRoIContainer* rois, int slice) const {
 
   /** Need a map of CPMTowers as input */
   xAOD::CPMTowerMap_t* towers = new xAOD::CPMTowerMap_t;
@@ -228,7 +228,7 @@ void L1CPMTools::findCPMTobRoIs(const DataVector<xAOD::CPMTower>* cpmts, xAOD::C
 
 /** Find all CPMTobRoIs in the event */
 
-void L1CPMTools::findCPMTobRoIs(const xAOD::CPMTowerMap_t* towers, xAOD::CPMTobRoIContainer* rois, int slice) {
+void L1CPMTools::findCPMTobRoIs(const xAOD::CPMTowerMap_t* towers, xAOD::CPMTobRoIContainer* rois, int slice) const {
 
   /** Clear results vector to be safe */
   rois->clear();
@@ -276,7 +276,7 @@ void L1CPMTools::findCPMTobRoIs(const xAOD::CPMTowerMap_t* towers, xAOD::CPMTobR
 
 
 /** Find list of TOBs from user-supplied vector of CPMTowers */
-void L1CPMTools::findRoIs(const DataVector<xAOD::CPMTower>* cpmts, DataVector<CPMTobAlgorithm>* tobs, int slice){
+void L1CPMTools::findRoIs(const DataVector<xAOD::CPMTower>* cpmts, DataVector<CPMTobAlgorithm>* tobs, int slice) const {
 
   /** Need a map of CPMTowers as input */
   xAOD::CPMTowerMap_t* towers = new xAOD::CPMTowerMap_t;
@@ -294,7 +294,7 @@ void L1CPMTools::findRoIs(const DataVector<xAOD::CPMTower>* cpmts, DataVector<CP
  
 
 /** Find list of TOBs from user-supplied map of CPMTowers */
-void L1CPMTools::findRoIs(const xAOD::CPMTowerMap_t* towers, DataVector<CPMTobAlgorithm>* tobs, int slice){
+void L1CPMTools::findRoIs(const xAOD::CPMTowerMap_t* towers, DataVector<CPMTobAlgorithm>* tobs, int slice) const {
 
   /** Clear results vector to be safe */
   tobs->clear();
@@ -330,7 +330,7 @@ void L1CPMTools::findRoIs(const xAOD::CPMTowerMap_t* towers, DataVector<CPMTobAl
 }
 
 /** CPMTower map from user-supplied vector of CPMTowers */
-void L1CPMTools::mapTowers(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTowerMap_t* towers){
+void L1CPMTools::mapTowers(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTowerMap_t* towers) const {
 
   // Clear map before filling
   towers->clear();
@@ -366,7 +366,7 @@ void L1CPMTools::mapTowers(const DataVector<xAOD::CPMTower>* cpmts, xAOD::CPMTow
 
 /** Return RoI for given coordinates */
 
-CPMTobAlgorithm L1CPMTools::findRoI(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice) {
+CPMTobAlgorithm L1CPMTools::findRoI(double RoIeta, double RoIphi, const xAOD::CPMTowerMap_t* towers, int slice) const {
 
   // Performs all processing for this location
   CPMTobAlgorithm roi(RoIeta, RoIphi, towers, m_configSvc, slice);