diff --git a/Calorimeter/CaloExample/CaloRecEx/share/CaloRecCTB.py b/Calorimeter/CaloExample/CaloRecEx/share/CaloRecCTB.py
index c90d474c57cf9a4c196358db76ec261bf869c7d7..ddb2031e1f7f4c22625a84fd74a1dc4e07940d48 100644
--- a/Calorimeter/CaloExample/CaloRecEx/share/CaloRecCTB.py
+++ b/Calorimeter/CaloExample/CaloRecEx/share/CaloRecCTB.py
@@ -77,10 +77,14 @@ jobproperties.TileRecFlags.TileRawChannelContainer = "TileRawChannelFit"
 
 include ("CaloRec/CaloRec_jobOptions.py")
 
-from TileL2Algs.TileL2AlgsConf import TileL2Builder
-TileL2Builder = TileL2Builder("TileL2Builder")
-ToolSvc += TileL2Builder
-TileL2Builder.TileRawChannelContainer = "TileRawChannelFit"
+from AthenaCommon.AlgSequence import AlgSequence
+topSequence = AlgSequence()
+
+if hasattr(topSequence, "TileRawChannelToL2"):
+    from TileL2Algs.TileL2AlgsConf import TileL2Builder
+    TileL2Builder = TileL2Builder("TileL2Builder")
+    TileL2Builder.TileRawChannelContainer = "TileRawChannelFit"
+    topSequence.TileRawChannelToL2.TileL2Builder = TileL2Builder
 
 from CaloRec.CaloRecConf import CaloClusterMaker
 LArTBClusterMaker = CaloClusterMaker("LArTBClusterMaker")
@@ -96,8 +100,6 @@ theLArTBClusterBuilder.LArCaloRegion="BARREL"
 ToolSvc += theLArTBClusterBuilder
 LArTBClusterMaker.ClusterMakerTools = [ ToolSvc.theLArTBClusterBuilder.getFullName() ]
 
-from AthenaCommon.AlgSequence import AlgSequence
-topSequence = AlgSequence()
 topSequence += LArTBClusterMaker
 
 
diff --git a/TileCalorimeter/TileL2Algs/TileL2Algs/TileL2Builder.h b/TileCalorimeter/TileL2Algs/TileL2Algs/TileL2Builder.h
index 0c49d136e4e76a26353b91e00d165c000486bfa7..cb05d7bf033fc223de8c53a3c9396c937b4531d3 100644
--- a/TileCalorimeter/TileL2Algs/TileL2Algs/TileL2Builder.h
+++ b/TileCalorimeter/TileL2Algs/TileL2Algs/TileL2Builder.h
@@ -23,6 +23,8 @@
 #include "TileEvent/TileContainer.h"
 #include "TileEvent/TileRawChannelContainer.h"
 #include "TileIdentifier/TileFragHash.h"
+#include "TileConditions/TileCondToolEmscale.h"
+#include "TileConditions/ITileBadChanTool.h"
 
 // Athena includes
 #include "AthenaBaseComps/AthAlgTool.h"
@@ -37,9 +39,6 @@
 
 // forward declarations
 class TileHWID;
-class TileCondToolEmscale;
-class TileCondToolNoiseRawChn;
-class ITileBadChanTool;
 
 class TileL2Builder: public AthAlgTool {
 
@@ -189,11 +188,13 @@ class TileL2Builder: public AthAlgTool {
     const TileHWID* m_tileHWID;
 
     /** Handle to Tile calibration tool */
-    ToolHandle<TileCondToolEmscale> m_tileToolEmscale;
-    ToolHandle<TileCondToolNoiseRawChn> m_tileToolNoiseRawChn; //!< tool which provided noise values
+    ToolHandle<TileCondToolEmscale> m_tileToolEmscale{this,
+        "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"};
 
     /** Handle to Tile bad channel tool */
-    ToolHandle<ITileBadChanTool> m_tileBadChanTool; //!< Tile Bad Channel tool
+    ToolHandle<ITileBadChanTool> m_tileBadChanTool{this,
+        "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"};
+
 
     TileFragHash m_hashFunc;
 
diff --git a/TileCalorimeter/TileL2Algs/TileL2Algs/TileRawChannelToL2.h b/TileCalorimeter/TileL2Algs/TileL2Algs/TileRawChannelToL2.h
index 46dfdc09a742c0eee9280106d3763a5d8a5f2ac9..b75b3175afe83e6a04445fe3b3a2f2ad184a6e61 100755
--- a/TileCalorimeter/TileL2Algs/TileL2Algs/TileRawChannelToL2.h
+++ b/TileCalorimeter/TileL2Algs/TileL2Algs/TileRawChannelToL2.h
@@ -64,7 +64,7 @@ class TileRawChannelToL2: public AthAlgorithm {
   private:
 
     /** Pointer to TileL2Builder */
-    PublicToolHandle<TileL2Builder> m_tileL2Builder{this, "L2Builder", "TileL2Builder", ""};
+    ToolHandle<TileL2Builder> m_tileL2Builder{this, "TileL2Builder", "TileL2Builder", "Tile L2 builder tool"};
 
     /** TileL2Container in detector store */
     SG::WriteHandleKey<TileL2Container> m_l2ContainerKey{this,"TileL2Container","TileL2Cnt",
diff --git a/TileCalorimeter/TileL2Algs/src/TileL2Builder.cxx b/TileCalorimeter/TileL2Algs/src/TileL2Builder.cxx
index 6dc1097c3ec0c2dc97b1c83515956c5953c213bf..bf6c2094b5c8428b906cbf8eaccee66da0ea79a4 100644
--- a/TileCalorimeter/TileL2Algs/src/TileL2Builder.cxx
+++ b/TileCalorimeter/TileL2Algs/src/TileL2Builder.cxx
@@ -24,11 +24,9 @@
 #include "TileIdentifier/TileRawChannelUnit.h"
 #include "TileIdentifier/TileHWID.h"
 #include "TileCalibBlobObjs/TileCalibUtils.h"
-#include "TileConditions/TileCondToolEmscale.h"
-#include "TileConditions/TileCondToolNoiseRawChn.h"
+
 #include "TileConditions/TileCablingService.h"
 #include "TileConditions/TileCablingSvc.h"
-#include "TileConditions/ITileBadChanTool.h"
 #include "TileDetDescr/TileDetDescrManager.h"
 
 // Calo includes
@@ -55,19 +53,13 @@ TileL2Builder::TileL2Builder(const std::string& type, const std::string& name,
     : AthAlgTool(type, name, parent)
   , m_noiseThreshold(100.0) // 100 MeV universal cut for now
   , m_noiseType(9999)       // this huge value means that noise cut is taken from JO
-  , m_tileHWID(0)
-  , m_tileToolEmscale("TileCondToolEmscale")
-  , m_tileToolNoiseRawChn("TileCondToolNoiseRawChn")
-  , m_tileBadChanTool("TileBadChanTool")
+  , m_tileHWID(nullptr)
 {
 
   declareInterface<TileL2Builder>(this);
 
   declareProperty("NoiseThreshold", m_noiseThreshold);       // use channels only above noise cut
   declareProperty("Noise", m_noiseType);            // choose between electronic or total noise
-  declareProperty("TileCondToolEmscale", m_tileToolEmscale);      // Name of calibration tool
-  declareProperty("TileCondToolNoiseRawChn", m_tileToolNoiseRawChn=nullptr);  // Name of tool with noise RMS
-  declareProperty("TileBadChanTool", m_tileBadChanTool);      // Name of bad channel tool
 }
 
 TileL2Builder::~TileL2Builder() {
@@ -75,29 +67,29 @@ TileL2Builder::~TileL2Builder() {
 
 StatusCode TileL2Builder::initialize() {
 
-  CHECK( detStore()->retrieve(m_tileHWID) );
+  ATH_CHECK( detStore()->retrieve(m_tileHWID) );
 
   // get TileCondToolEmscale
-  CHECK( m_tileToolEmscale.retrieve() );
+  ATH_CHECK( m_tileToolEmscale.retrieve() );
 
   // get TileBadChanTool
-  CHECK( m_tileBadChanTool.retrieve() );
+  ATH_CHECK( m_tileBadChanTool.retrieve() );
 
   // Initialize
   this->m_hashFunc.initialize(m_tileHWID);
 
   const TileID* tileID;
-  CHECK( detStore()->retrieve(tileID) );
+  ATH_CHECK( detStore()->retrieve(tileID) );
 
   const TileTBID* tileTBID;
-  CHECK( detStore()->retrieve(tileTBID) );
+  ATH_CHECK( detStore()->retrieve(tileTBID) );
 
   // retrieve Tile detector manager and TileID helper from det store
   const TileDetDescrManager* tileMgr;
-  CHECK( detStore()->retrieve(tileMgr) );
+  ATH_CHECK( detStore()->retrieve(tileMgr) );
 
   ServiceHandle<TileCablingSvc> cablingSvc("TileCablingSvc", name());
-  CHECK( cablingSvc.retrieve());
+  ATH_CHECK( cablingSvc.retrieve());
 
   const TileCablingService* cabling = cablingSvc->cablingService();
   if (!cabling) {