diff --git a/AtlasTest/DatabaseTest/AthenaDBTestRec/src/lib/TestCoolRecRead.cxx b/AtlasTest/DatabaseTest/AthenaDBTestRec/src/lib/TestCoolRecRead.cxx
index af993810024ad1f5f5debd9faa20d8d70606e290..7b900bbde07f2cee99af067da7a48ef3d9fa7443 100644
--- a/AtlasTest/DatabaseTest/AthenaDBTestRec/src/lib/TestCoolRecRead.cxx
+++ b/AtlasTest/DatabaseTest/AthenaDBTestRec/src/lib/TestCoolRecRead.cxx
@@ -9,9 +9,6 @@
 #include <fstream>
 
 #include "StoreGate/StoreGateSvc.h"
-//#include "xAODEventInfo/EventInfo.h"
-#include "EventInfo/EventInfo.h"
-#include "EventInfo/EventID.h"
 #include "AthenaKernel/IOVRange.h"
 
 #include "AthenaDBTestRec/TestCoolRecRead.h"
@@ -102,20 +99,11 @@ StatusCode TestCoolRecRead::initialize() {
 
 StatusCode TestCoolRecRead::execute() {
   // find the run number for mismatch check
-  int run=0;
-  int event=0;
-  int lumib=0;
-  uint64_t nsTime=0;
-  // const xAOD::EventInfo* eventInfo(0);
-  const DataHandle<EventInfo> eventInfo;
-  if (StatusCode::SUCCESS==evtStore()->retrieve(eventInfo)) {
-    run=eventInfo->event_ID()->run_number();
-    event=eventInfo->event_ID()->event_number();
-    lumib=eventInfo->event_ID()->lumi_block();
-    nsTime=eventInfo->event_ID()->time_stamp()*1000000000LL;
-   } else {
-    ATH_MSG_WARNING("Could not get Event object to find runnumber");
-   }
+  const EventIDBase& eid = getContext().eventID();
+  int run = eid.run_number();
+  int event = eid.event_number();
+  int lumib = eid.lumi_block();
+  uint64_t nsTime = eid.time_stamp()*1000000000LL;
   IOVTime iovkey(run,lumib,nsTime);
   // loop through all folders and access data
   for (std::vector<TestCoolRecFolder>::iterator ifolder=m_folderlist.begin();
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestBuildInput.ref b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestBuildInput.ref
index 482e717e24a1d62dc1e43abbd45a9db428286807..e8d0927bc78a6c7983c09dde6a773c63b653f065 100644
--- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestBuildInput.ref
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestBuildInput.ref
@@ -2,7 +2,7 @@ AddTrigMap           INFO in initialize()
 WriteData           DEBUG Property update for OutputLevel : new value = 2
 WriteData            INFO in initialize()
 WriteData           DEBUG input handles: 0
-WriteData           DEBUG output handles: 0
+WriteData           DEBUG output handles: 2
 WriteData           DEBUG Data Deps for WriteData
 DecisionSvc          INFO Inserting stream: FullColl with no Algs
 DecisionSvc          INFO Inserting stream: NullColl with no Algs
@@ -108,5 +108,8 @@ WriteData           DEBUG in execute()
 WriteData            INFO EventInfo event: 19  run: 0
 WriteData            INFO registered all data
 FullColl.Regist...   INFO Collection Events output: 20
+FullColl.Regist...   INFO Unable to register collection: PFN 'RootCollection||PFN:SplittableCollection.root' already registered ( POOL : "registerPFN" from "FileCatalog" )
 NullColl.Regist...   INFO Collection Events output: 0
+NullColl.Regist...   INFO Unable to register collection: PFN 'RootCollection||PFN:NullableCollection.root' already registered ( POOL : "registerPFN" from "FileCatalog" )
 WriteData            INFO in finalize()
+WriteData           DEBUG Calling destructor
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestCheckNull.ref b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestCheckNull.ref
index 8936c70e03a618cd67fbb5a01d7f2026a28337f9..9ad18527dfc3ed3f68d87761fe5d58f4558393aa 100644
--- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestCheckNull.ref
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestCheckNull.ref
@@ -7,7 +7,7 @@ EventSelector        INFO EventSelection with query
 EventSelector       DEBUG Try item: "PFN:NullableCollection.root" from the collection list.
 EventSelector        INFO Using standard collection ref 
 EventSelector       DEBUG Try item: "PFN:NullableCollection.root" from the collection list.
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
 FullColl            DEBUG Property update for OutputLevel : new value = 2
@@ -33,5 +33,7 @@ AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 EventSelector       DEBUG Try item: "PFN:NullableCollection.root" from the collection list.
 FullColl            DEBUG handle() incident type: MetaDataStop
 FullColl.Regist...   INFO Collection Events output: 0
+FullColl.Regist...   INFO Unable to register collection: PFN 'RootCollection||PFN:CheckNull.root' already registered ( POOL : "registerPFN" from "FileCatalog" )
 ReadData             INFO in finalize()
+ReadData            DEBUG Calling destructor
 FullColl            DEBUG In finalize
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.cxx b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.cxx
index fd9b54080bea428065a75865e04230d6817f51df..91cd3ff46e66e9ae176a8fcad5fde39da8861df9 100755
--- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.cxx
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.cxx
@@ -63,10 +63,6 @@ DummyLumirangeTool::DummyLumirangeTool(const std::string& name,
     declareProperty("LumiTot",      m_lumitot, "total number of lumiblocks to write");
 }
 
-// Standard Destructor
-DummyLumirangeTool::~DummyLumirangeTool()   {
-}
-
 // initialize data writer
 StatusCode 
 DummyLumirangeTool::initialize() 
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.h b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.h
index edcc0a84bd2816cb2530689254e90be616ef3538..d76695b0b2182e1a1b8f43677bf70afae27a9205 100755
--- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.h
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/src/DummyLumirangeTool.h
@@ -58,9 +58,6 @@ public:
 
 protected:
 
-  /// Standard Destructor
-  virtual ~DummyLumirangeTool();
-
   /// name of store:
   StringProperty   m_storeName;
   IntegerProperty  m_lumigran, m_firstrun;
diff --git a/AtlasTest/DatabaseTest/AthenaPoolTest/src/EventInfoReader.h b/AtlasTest/DatabaseTest/AthenaPoolTest/src/EventInfoReader.h
index ae2f7211ba8889fc36fdda67b5a026f910937638..9961ed952615726e2054af0ff548ce817bc69338 100755
--- a/AtlasTest/DatabaseTest/AthenaPoolTest/src/EventInfoReader.h
+++ b/AtlasTest/DatabaseTest/AthenaPoolTest/src/EventInfoReader.h
@@ -28,9 +28,9 @@
 #include "GaudiKernel/ServiceHandle.h"
 
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "GeoModelInterfaces/IGeoModelSvc.h"
 
 class StoreGateSvc;
-class IGeoModelSvc;
 
 class EventInfoReader : public AthAlgorithm {
 public:
diff --git a/AtlasTest/GoogleTestTools/share/GoogleTestToolsTests.ref b/AtlasTest/GoogleTestTools/share/GoogleTestToolsTests.ref
new file mode 100644
index 0000000000000000000000000000000000000000..1a12a640a5ecd04aa11ef9c7c7ae696be9f8d331
--- /dev/null
+++ b/AtlasTest/GoogleTestTools/share/GoogleTestToolsTests.ref
@@ -0,0 +1,22 @@
+[==========] Running 1 test from 1 test case.
+[----------] Global test environment set-up.
+[----------] 1 test from InitGaudiGoogleTestTest
+[ RUN      ] InitGaudiGoogleTestTest.basictest
+ApplicationMgr    SUCCESS 
+====================================================================================================================================
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
+                                          running on karma on Wed Jul  4 10:48:30 2018
+====================================================================================================================================
+ApplicationMgr       INFO Application Manager Configured successfully
+HistogramPersis...WARNING Histograms saving not required.
+ApplicationMgr       INFO Application Manager Initialized successfully
+EventLoopMgr         INFO Histograms converted successfully according to request.
+ToolSvc              INFO Removing all tools created by ToolSvc
+ApplicationMgr       INFO Application Manager Finalized successfully
+ApplicationMgr       INFO Application Manager Terminated successfully
+[       OK ] InitGaudiGoogleTestTest.basictest (44 ms)
+[----------] 1 test from InitGaudiGoogleTestTest (44 ms total)
+
+[----------] Global test environment tear-down
+[==========] 1 test from 1 test case ran. (44 ms total)
+[  PASSED  ] 1 test.
diff --git a/AtlasTest/TestTools/share/post.sh b/AtlasTest/TestTools/share/post.sh
index 04290bea01f3f58ad41306ba397133366c984401..0e2cf33da04c55b61576707f7e570aa2fb03b318 100755
--- a/AtlasTest/TestTools/share/post.sh
+++ b/AtlasTest/TestTools/share/post.sh
@@ -1,4 +1,7 @@
 #!/bin/sh
+#
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+#
 #/** @file post.sh
 # @brief sh script that check the return code of an executable and compares
 # its output with a reference (if available).
@@ -6,10 +9,33 @@
 #
 # @author Scott Snyder <snyder@fnal.gov> - ATLAS Collaboration.
 # @author Paolo Calafiura <pcalafiura@lbl.gov> - ATLAS Collaboration.
-# $Id: post.sh,v 1.23 2007-11-10 00:00:07 calaf Exp $
 # **/
+
+usage() {
+    cat <<EOF
+Syntax: post.sh TESTNAME [EXTRAPATTERNS] [-s PATTERNS]
+    TESTNAME       name of unit test
+    EXTRAPATTERNS  additional regex patterns to exlude in diff
+    -s             use PATTERNS to select lines for diff
+EOF
+}
+
+if [ "$#" -lt 1 ]; then
+    usage
+    exit 1
+fi
+
 test=$1
-extrapatterns="$2"
+
+# When used from cmake $2 and $3 will arrive as a single quoted argument, i.e. $2.
+# Concatenate them here so the same code works also from the command line.
+pat="$2 $3"
+if [[ "$pat" = "-s "* ]]; then
+    selectpatterns=`echo "$pat" | sed 's/-s\s*//'`
+else
+    extrapatterns="$2"
+fi
+
 #verbose="1"
 if [ "$POST_SH_NOCOLOR" = "" ]; then
  GREEN=""
@@ -223,16 +249,22 @@ else
            fi
        fi
 
-       if [ -r $reflog ]
-           then
-	   jobrep=${joblog}-rep
-	   sed -r "$II" $joblog > $jobrep
-	   refrep=`basename ${reflog}`-rep
-	   sed -r "$II" $reflog > $refrep
+       if [ -r $reflog ]; then
+	       jobrep=${joblog}-rep
+	       sed -r "$II" $joblog > $jobrep
+	       refrep=`basename ${reflog}`-rep
+	       sed -r "$II" $reflog > $refrep
            jobdiff=${joblog}-todiff
            refdiff=`basename ${reflog}`-todiff
-           egrep -a -v "$PP" < $jobrep > $jobdiff
-           egrep -a -v "$PP" < $refrep > $refdiff
+
+           # We either exclude or select lines for the diff
+           if [ -z "$selectpatterns" ]; then
+               egrep -a -v "$PP" < $jobrep > $jobdiff
+               egrep -a -v "$PP" < $refrep > $refdiff
+           else
+               egrep -a "$selectpatterns" < $jobrep > $jobdiff
+               egrep -a "$selectpatterns" < $refrep > $refdiff
+           fi
            diff -a -b -E -B -u $jobdiff $refdiff
            diffStatus=$?
            if [ $diffStatus != 0 ] ; then
@@ -241,7 +273,7 @@ else
                exit 1
            else
                if [ "$verbose" != "" ]; then
-                 echo "$GREEN post.sh> OK: $joblog and $reflog identical $RESET"
+                   echo "$GREEN post.sh> OK: $joblog and $reflog identical $RESET"
                fi
            fi
        else
diff --git a/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h b/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h
index c1ff21c52496645be36edcc1b933b77081d6f0ed..f83c3f4aca39467c81ebe79614d010240f6356f6 100644
--- a/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h
+++ b/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h
@@ -134,8 +134,6 @@ class CaloCalibClusterMomentsMaker: public AthAlgTool, virtual public CaloCluste
 
   const CaloDmDescrManager* m_caloDmDescrManager; 
 
-  StoreGateSvc* m_storeGate;
-
   int m_n_phi_out;
   int m_n_eta_out;
   double m_out_phi_max;
diff --git a/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx b/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx
index 136701078dc13975e9d7163d0bfdb9c1794f724d..23654fa3dbe5292402959bdcb4da7fb33838682d 100644
--- a/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx
+++ b/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx
@@ -63,7 +63,6 @@ CaloCalibClusterMomentsMaker::CaloCalibClusterMomentsMaker(const std::string& ty
     m_calo_id(0),
     m_caloDM_ID(0),
     m_caloDmDescrManager(0),
-    m_storeGate(0),
     m_energyMin(200*MeV),
     m_energyMinCalib(20*MeV),
     m_apars_alpha(0.5),
diff --git a/Calorimeter/CaloClusterCorrection/src/CaloRunClusterCorrections.h b/Calorimeter/CaloClusterCorrection/src/CaloRunClusterCorrections.h
index acad852df91ad85614af2ddf5d30d963abe185ef..8412df6118ccdd21369c5472b17bafd3d55d8129 100644
--- a/Calorimeter/CaloClusterCorrection/src/CaloRunClusterCorrections.h
+++ b/Calorimeter/CaloClusterCorrection/src/CaloRunClusterCorrections.h
@@ -29,10 +29,10 @@
 //#include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "CaloRec/Blob2ToolConstants.h"
+#include "GaudiKernel/IJobOptionsSvc.h"
 
 class StoreGateSvc;
 class MsgStream;
-class IJobOptionsSvc;
 class IToolSvc;
 
 
diff --git a/Calorimeter/CaloCnv/CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv/CaloSuperCellMgrDetDescrCnv.h b/Calorimeter/CaloCnv/CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv/CaloSuperCellMgrDetDescrCnv.h
index 858cc4fae998ae399fec0ddab6da3ff02b4772df..1a46a9e465bbfb8aaee864f870e10a24bf27a04e 100755
--- a/Calorimeter/CaloCnv/CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv/CaloSuperCellMgrDetDescrCnv.h
+++ b/Calorimeter/CaloCnv/CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv/CaloSuperCellMgrDetDescrCnv.h
@@ -20,11 +20,13 @@
 
 #include "DetDescrCnvSvc/DetDescrConverter.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "CaloDetDescr/ICaloSuperCellAlignTool.h"
+#include "CaloDetDescr/ICaloSuperCellIDTool.h"
+
+
 class CaloSuperCellDetDescrManager;
 class CaloDetDescrManager;
 class CaloDetDescrElement;
-class ICaloSuperCellIDTool;
-class ICaloSuperCellAlignTool;
 
 
 /**
diff --git a/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p1.h b/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p1.h
index 89ae096545a10815e4929b7ee538dbcc916c20e0..e19979cdd737bd4f59929186a5c63cb68e274a6e 100755
--- a/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p1.h
+++ b/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p1.h
@@ -9,14 +9,13 @@
 
 
 //#include "CaloEvent/CaloShowerContainer.h"
-//#include "CaloTPCnv/CaloShowerContainer_p1.h"
+#include "CaloTPCnv/CaloShowerContainer_p1.h"
 #include "CaloTPCnv/CaloClusterMomentStoreCnv_p1.h"
 #include "CaloTPCnv/CaloSamplingDataCnv_p1.h"
 #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
 
 
 class CaloShowerContainer;
-class CaloShowerContainer_p1;
 
 
 
diff --git a/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p2.h b/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p2.h
index b56611252fcf6188c318dd6bbf6c780e54a583c8..35711f1a5857e2fc752b831a181b7b9c94daedc5 100755
--- a/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p2.h
+++ b/Calorimeter/CaloCnv/CaloTPCnv/CaloTPCnv/CaloShowerContainerCnv_p2.h
@@ -11,11 +11,11 @@
 #include "AthenaKernel/ITPCnvBase.h"
 #include "CaloTPCnv/CaloClusterMomentContainerCnv_p1.h"
 #include "CaloTPCnv/CaloSamplingDataContainerCnv_p1.h"
+#include "CaloTPCnv/CaloShowerContainer_p2.h"
 #include "AthenaPoolCnvSvc/ITPConverter.h"
 #include "GaudiKernel/MsgStream.h"
 
 class CaloShowerContainer;
-class CaloShowerContainer_p2;
 
 class CaloShowerContainerCnv_p2
   : public ITPCnvBase
diff --git a/Calorimeter/CaloCondBlobAlgs/CaloCondBlobAlgs/CaloNoiseDbExample.h b/Calorimeter/CaloCondBlobAlgs/CaloCondBlobAlgs/CaloNoiseDbExample.h
index 0eb976ab460829194f6fbaa9e325caece1c7e1f3..eb7c2ff3df49d38ddb1925e97e4d3b9f5d993279 100755
--- a/Calorimeter/CaloCondBlobAlgs/CaloCondBlobAlgs/CaloNoiseDbExample.h
+++ b/Calorimeter/CaloCondBlobAlgs/CaloCondBlobAlgs/CaloNoiseDbExample.h
@@ -68,9 +68,7 @@ class CaloNoiseDbExample: public AthAlgorithm
   //=== non-property members
   const xAOD::EventInfo*    m_evt;
   //
-  const DataHandle<CaloIdManager> m_caloIdMgr;
   const CaloCell_ID*       m_calo_id;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
   
   //=== blob storage
   const DataHandle<CondAttrListCollection>                m_noiseAttrListColl;
diff --git a/Calorimeter/CaloCondBlobAlgs/src/CaloNoiseDbExample.cxx b/Calorimeter/CaloCondBlobAlgs/src/CaloNoiseDbExample.cxx
index 8827c3324b63df26bc469406de5b8759543bb349..2c09a67f42d7a0ff1dc8d00002b0c58bc7cafafc 100644
--- a/Calorimeter/CaloCondBlobAlgs/src/CaloNoiseDbExample.cxx
+++ b/Calorimeter/CaloCondBlobAlgs/src/CaloNoiseDbExample.cxx
@@ -41,9 +41,10 @@ StatusCode
 CaloNoiseDbExample::initialize()
 {
   ATH_MSG_DEBUG ("in initialize()" );
-  
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
+
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
   
   
   //=== Bind noise DataHandle to COOL folder
@@ -132,8 +133,6 @@ CaloNoiseDbExample::printSomeInfo()
     Identifier id=m_calo_id->cell_id(idHash);
     if (m_calo_id->is_tile(id)) {
 
-      //    const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id);
-    
       int ngain = 4;
       for (int igain=0;igain<ngain;igain++) {
 
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.cxx
index a7131c74677fb41f7ab8bd1761b793bbc70c2a0b..ca3c8cfa15eeed0c7e9afbca4cd7f9d45efb5651 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.cxx
@@ -57,10 +57,9 @@ StatusCode CaloAddCellPedShift::initialize()
 {
   ATH_MSG_DEBUG ("CaloAddCellPedShift initialize()" );
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
-
-  ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
 
   ATH_CHECK( detStore()->regFcn(&CaloAddCellPedShift::updateMap, this, m_noiseAttrListColl, m_folderName) );
   ATH_MSG_INFO ( " registered a callback for " << m_folderName << " folder " );
@@ -164,14 +163,17 @@ StatusCode CaloAddCellPedShift::stop()
   }
   fclose(finput);
   ATH_MSG_INFO ( " end of reading file" );
-  
+
+  const CaloDetDescrManager* calodetdescrmgr = nullptr;
+  ATH_CHECK( detStore()->retrieve(calodetdescrmgr) );
+
 
   FILE* fp = fopen("calopedestal.txt","w");
   ATH_MSG_INFO ( " start loop over Calo cells " << ncell );
   for (int i=0;i<ncell;i++) {
        IdentifierHash idHash=i;
        Identifier id=m_calo_id->cell_id(idHash);
-       const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id);
+       const CaloDetDescrElement* calodde = calodetdescrmgr->get_element(id);
        int subCalo;
        IdentifierHash idSubHash = m_calo_id->subcalo_cell_hash (idHash, subCalo);
 
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.h b/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.h
index 2b74ca932bb18ed740d5a6ebc76ef804646a62e9..4b95afd7cb0b324ab9ac7b788d5e3c8a70cc7a44 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloAddCellPedShift.h
@@ -58,8 +58,6 @@ class CaloAddCellPedShift : public AthAlgorithm {
 
   ITHistSvc* m_thistSvc;
 
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
   ToolHandle<LArCablingService> m_cablingService;
   const CaloCell_ID*       m_calo_id;
   const LArOnlineID*      m_onlineID;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx
index 5ef8c309475de5ce0612cabdd13f5ae195063e14..b6f79f0c770eb46d2506083e343c908a44d59e76 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.cxx
@@ -46,9 +46,10 @@
 CaloCellCalcEnergyCorr::CaloCellCalcEnergyCorr( const std::string& name, 
 						ISvcLocator* pSvcLocator ) : 
   AthAlgorithm( name, pSvcLocator ),
-  m_larem_id(0),
-  m_larhec_id(0),
-  m_larfcal_id(0)
+  m_calodetdescrmgr(nullptr),
+  m_larem_id(nullptr),
+  m_larhec_id(nullptr),
+  m_larfcal_id(nullptr)
 {
   declareProperty("Folder",m_folder="/LAR/CellCorrOfl/EnergyCorr");
   std::vector<int> ivec; ivec.push_back(-1);
@@ -79,13 +80,13 @@ StatusCode CaloCellCalcEnergyCorr::initialize()
 
 // retrieve LArEM id helpers
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
 
-  m_larem_id   = m_caloIdMgr->getEM_ID();
-  m_larhec_id   = m_caloIdMgr->getHEC_ID();
-  m_larfcal_id   = m_caloIdMgr->getFCAL_ID();
+  m_larem_id   = mgr->getEM_ID();
+  m_larhec_id  = mgr->getHEC_ID();
+  m_larfcal_id = mgr->getFCAL_ID();
 
-//  retrieve CaloDetDescrMgr 
   ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
 
   return StatusCode::SUCCESS;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.h b/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.h
index ce480bbc7dbb4f8b3a64b8de417ed47a93b76c91..5fac001d7259b228491bf26210914d3f13111a63 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellCalcEnergyCorr.h
@@ -47,8 +47,7 @@ private:
   std::vector<float> m_hvvalue;    // value to fill for every hvline
 
   // Private members
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
+  const CaloDetDescrManager* m_calodetdescrmgr;
   const LArEM_ID* m_larem_id;
   const LArHEC_ID* m_larhec_id;
   const LArFCAL_ID* m_larfcal_id;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.cxx
index 318e2bb6c4e1649bbf4e4e82355970856bc2773b..6402578bd358089ebaf54c19d011e5b912c9e441 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.cxx
@@ -50,10 +50,9 @@ StatusCode CaloCellEnergyCorr2Ntuple::initialize()
 
   ATH_CHECK( service("THistSvc",m_thistSvc) );
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
-
-  ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
 
   ATH_CHECK( detStore()->regHandle(m_AttrListColl,m_key) );
 
@@ -99,12 +98,15 @@ StatusCode CaloCellEnergyCorr2Ntuple::stop()
   int nchan=flt->getNChans();
   ATH_MSG_INFO ( "NObjs: "<<nobj<<" nChans: "<<nchan<<" nGains: "<<flt->getNGains() );
 
+  const CaloDetDescrManager* calodetdescrmgr = nullptr;
+  ATH_CHECK( detStore()->retrieve(calodetdescrmgr) );
+
   int ncell=m_calo_id->calo_cell_hash_max();
   ATH_MSG_INFO ( " start loop over Calo cells " << ncell );
   for (int i=0;i<ncell;i++) {
        IdentifierHash idHash=i;
        Identifier id=m_calo_id->cell_id(idHash);
-       const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id);
+       const CaloDetDescrElement* calodde = calodetdescrmgr->get_element(id);
 
        m_Hash =  i;
        m_OffId = (int)(id.get_identifier32().get_compact());
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.h b/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.h
index d5167c6e422c75278d18a18a87fd2903c75dcfc5..e56335f5391cba7fe81fdf1798e1a14b4b672665 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellEnergyCorr2Ntuple.h
@@ -52,8 +52,6 @@ class CaloCellEnergyCorr2Ntuple : public AthAlgorithm {
   //=== blob storage
   ITHistSvc* m_thistSvc;
 
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
   const CaloCell_ID*       m_calo_id;
 
   std::string m_key;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx
index 80562f4d8f503fc6b7a17a04110042854b45039f..dcde585d101fc8856214934ff6f7255828af926c 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.cxx
@@ -22,8 +22,9 @@ using CLHEP::HepVector;
 //Constructor
 CaloCellNoiseAlg::CaloCellNoiseAlg(const std::string& name, ISvcLocator* pSvcLocator):
   AthAlgorithm(name,pSvcLocator),
-  m_thistSvc(NULL),
-  m_calo_id(NULL),
+  m_thistSvc(nullptr),
+  m_calodetdescrmgr(nullptr),
+  m_calo_id(nullptr),
   m_adc2mevTool("LArADC2MeVTool"),
   m_ncell(0),
   m_lumiblock(0),
@@ -104,8 +105,9 @@ StatusCode CaloCellNoiseAlg::initialize()
 {
   ATH_MSG_DEBUG ("CaloCellNoiseAlg initialize()" );
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
 
   ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
 
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h
index 86e9f39b4c545e981bcb111f3e48c4048a4e592a..9f365a30ac7178bb767c2985666139486d886060 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellNoiseAlg.h
@@ -57,8 +57,7 @@
   //---------------------------------------------------
   ITHistSvc* m_thistSvc;
 
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
+  const CaloDetDescrManager* m_calodetdescrmgr;
   const CaloCell_ID*       m_calo_id;
   const DataHandle<ILArNoise> m_dd_noise;
   const DataHandle<ILArPedestal> m_dd_pedestal;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.cxx
index 7ab172f7eecc455ca335a191760c168a5e8d7209..667e626eb6103807712ef6d54743c8cfee62dff9 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.cxx
@@ -42,10 +42,10 @@ StatusCode CaloCellPosition2Ntuple::initialize()
   ATH_MSG_DEBUG ("CaloCellPosition2Ntuple initialize()" );
   ATH_CHECK( service("THistSvc",m_thistSvc) );
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
 
-  ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
   ATH_CHECK( detStore()->regHandle(m_cellPos,m_key) );
 
   m_tree = new TTree("mytree","Calo Noise ntuple");
@@ -82,6 +82,9 @@ StatusCode CaloCellPosition2Ntuple::stop()
 
   int nread = (int)(m_cellPos->size());
 
+  const CaloDetDescrManager* calodetdescrmgr = nullptr;
+  ATH_CHECK( detStore()->retrieve(calodetdescrmgr) );
+
   if (nread > ncell) {
     ATH_MSG_WARNING ( " CaloCellPosition size different from max lar hash " << m_cellPos->size() << " " << ncell );
     return StatusCode::SUCCESS;
@@ -90,7 +93,7 @@ StatusCode CaloCellPosition2Ntuple::stop()
   for (int i=0;i<ncell;i++) {
        IdentifierHash idHash=i;
        Identifier id=m_calo_id->cell_id(idHash);
-       const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id);
+       const CaloDetDescrElement* calodde = calodetdescrmgr->get_element(id);
 
        m_Hash =  i;
        m_OffId = (int)(id.get_identifier32().get_compact());
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.h b/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.h
index 2edca0543c554b07dc62f9b839284fbbc39108cc..36ddf23c40eef1c8b0f3c8109bd7099e584117fb 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloCellPosition2Ntuple.h
@@ -50,8 +50,6 @@ class CaloCellPosition2Ntuple : public AthAlgorithm {
   //---------------------------------------------------
   ITHistSvc* m_thistSvc;
 
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
   const CaloCell_ID*       m_calo_id;
 
   const DataHandle<CaloRec::CaloCellPositionShift> m_cellPos;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.cxx
index fc3b2988ee2a27a5ed9e28ca8d6666c8fb438205..dc4d05e9e2ff21fac9c20a05201e3fa8c5a8d021 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.cxx
@@ -29,10 +29,10 @@ StatusCode CaloFillCellPositionShift::initialize()
 {
   ATH_MSG_DEBUG ("CaloFillCellPositionShift initialize()" );
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
 
-  ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
   ATH_MSG_INFO ( " end of CaloFillCellPositionShift::initialize " );
   return StatusCode::SUCCESS; 
 
@@ -58,11 +58,14 @@ StatusCode CaloFillCellPositionShift::stop()
 
   ATH_CHECK( detStore()->record(m_cellPos,m_key) );
 
+  const CaloDetDescrManager* calodetdescrmgr = nullptr;
+  ATH_CHECK( detStore()->retrieve(calodetdescrmgr) );
+
   ATH_MSG_INFO ( " start loop over Calo cells " << ncell );
   for (int i=0;i<ncell;i++) {
       IdentifierHash idHash=i+emmin;
       Identifier id=m_calo_id->cell_id(idHash);
-      const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id);
+      const CaloDetDescrElement* calodde = calodetdescrmgr->get_element(id);
 
       //float eta = calodde->eta();
       float phi = calodde->phi();
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.h b/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.h
index 2f0b054e117f53e5d6a83fe6b08cba9c0227ab5e..ac5e123df29819d51e2fda906a2e0182b6411025 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloFillCellPositionShift.h
@@ -50,8 +50,6 @@ class CaloFillCellPositionShift : public AthAlgorithm {
   //---------------------------------------------------
   // Member variables
   //---------------------------------------------------
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
   const CaloCell_ID*       m_calo_id;
 
   CaloRec::CaloCellPositionShift* m_cellPos;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.cxx
index 5b1bc6b2a695e07ae84bf99acb5f45f8d05d88c1..d8d1511e24113f5b71d5eed6950fe483acf6225d 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.cxx
@@ -49,10 +49,9 @@ StatusCode CaloNoise2Ntuple::initialize()
 
   ATH_CHECK( service("THistSvc",m_thistSvc) );
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
-
-  ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
 
   ATH_CHECK( m_noiseTool.retrieve() );
 
@@ -99,12 +98,15 @@ StatusCode CaloNoise2Ntuple::stop()
 {
   ATH_MSG_INFO ( "  Run Number, lumiblock " << m_runNumber << " " << m_lumiBlock );
 
+  const CaloDetDescrManager* calodetdescrmgr = nullptr;
+  ATH_CHECK( detStore()->retrieve(calodetdescrmgr) );
+
   int ncell=m_calo_id->calo_cell_hash_max();
   ATH_MSG_INFO ( " start loop over Calo cells " << ncell );
   for (int i=0;i<ncell;i++) {
        IdentifierHash idHash=i;
        Identifier id=m_calo_id->cell_id(idHash);
-       const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id);
+       const CaloDetDescrElement* calodde = calodetdescrmgr->get_element(id);
        int subCalo;
        IdentifierHash idSubHash = m_calo_id->subcalo_cell_hash (idHash, subCalo);
 
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.h b/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.h
index 263ee5b7ea3b811f250ba5fdafb6ef13a3a6d089..599233ce21869d4ab64ba81e4ec5b86206ce2c2e 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloNoise2Ntuple.h
@@ -49,8 +49,6 @@ class CaloNoise2Ntuple : public AthAlgorithm {
   //---------------------------------------------------
   ITHistSvc* m_thistSvc;
 
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
   const CaloCell_ID*       m_calo_id;
 
   ToolHandle<ICaloNoiseTool> m_noiseTool;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.cxx b/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.cxx
index aed5b266fed7fb10d60f7e4007f3e0bef3681e36..c0307088983175632dc2dc738444b76ab404621d 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.cxx
@@ -48,10 +48,10 @@ StatusCode CaloRescaleNoise::initialize()
   ATH_MSG_DEBUG ("CaloRescaleNoise initialize()" );
   ATH_CHECK(service("THistSvc",m_thistSvc) );
 
-  ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-  m_calo_id      = m_caloIdMgr->getCaloCell_ID();
+  const CaloIdManager* mgr = nullptr;
+  ATH_CHECK( detStore()->retrieve( mgr ) );
+  m_calo_id      = mgr->getCaloCell_ID();
 
-  ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
   ATH_CHECK( m_noiseTool.retrieve() );
   ATH_CHECK( m_hvCorrTool.retrieve() );
   ATH_CHECK( detStore()->regHandle(m_dd_HVScaleCorr,m_keyHVScaleCorr) );
@@ -84,14 +84,17 @@ StatusCode CaloRescaleNoise::execute()
 //__________________________________________________________________________
 StatusCode CaloRescaleNoise::stop()
 {
-   FILE* fp = fopen("calonoise.txt","w");
+  FILE* fp = fopen("calonoise.txt","w");
+
+  const CaloDetDescrManager* calodetdescrmgr = nullptr;
+  ATH_CHECK( detStore()->retrieve(calodetdescrmgr) );
 
   int ncell=m_calo_id->calo_cell_hash_max();
   ATH_MSG_INFO ( " start loop over Calo cells " << ncell );
   for (int i=0;i<ncell;i++) {
        IdentifierHash idHash=i;
        Identifier id=m_calo_id->cell_id(idHash);
-       const CaloDetDescrElement* calodde = m_calodetdescrmgr->get_element(id);
+       const CaloDetDescrElement* calodde = calodetdescrmgr->get_element(id);
        int subCalo;
        IdentifierHash idSubHash = m_calo_id->subcalo_cell_hash (idHash, subCalo);
 
diff --git a/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.h b/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.h
index 0d39f15b69a9f471a2b2e584583f6abbb934f056..3b41e57c30e919fc7883a37886a4bc4fed01a713 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/CaloRescaleNoise.h
@@ -52,8 +52,6 @@ class CaloRescaleNoise : public AthAlgorithm {
   //---------------------------------------------------
   ITHistSvc* m_thistSvc;
 
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
   const CaloCell_ID*       m_calo_id;
 
   ToolHandle<ICaloNoiseTool> m_noiseTool;
diff --git a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx
index 0789cbd1338cc3eace2646f438b46a6fd2de901d..2b5a2e2acd61c5a527cc843ccbec6d1a268c4c77 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx
+++ b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.cxx
@@ -72,9 +72,10 @@
        return StatusCode::SUCCESS;
      }
 
-    ATH_CHECK( detStore()->retrieve( m_caloIdMgr ) );
-    m_larem_id   = m_caloIdMgr->getEM_ID();
-    m_calo_id      = m_caloIdMgr->getCaloCell_ID();
+    const CaloIdManager* mgr = nullptr;
+    ATH_CHECK( detStore()->retrieve( mgr ) );
+    m_larem_id   = mgr->getEM_ID();
+    m_calo_id    = mgr->getCaloCell_ID();
 
 //  retrieve CaloDetDescrMgr 
     ATH_CHECK( detStore()->retrieve(m_calodetdescrmgr) );
diff --git a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h
index 781ed6038c4291597bdb174177ad1921f926b3a0..ad65c1a8d941fd05e169915da7e4013248fac191 100644
--- a/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h
+++ b/Calorimeter/CaloCondPhysAlgs/src/LArMinBiasAlg.h
@@ -61,11 +61,9 @@
   double m_weight_lowPt;
   double m_weight_highPt;
   ToolHandle<LArCablingService> m_cablingService;
-  const DataHandle<CaloIdManager> m_caloIdMgr;
-  const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
+  const CaloDetDescrManager* m_calodetdescrmgr = nullptr;
   const LArEM_ID*        m_larem_id = nullptr;
   const CaloCell_ID*       m_calo_id = nullptr;
-  const DataHandle<ILArMinBias>  m_dd_minbias;
   std::vector<double> m_eCell;
   
 
diff --git a/Calorimeter/CaloDetDescr/src/CaloDetDescrManager.cxx b/Calorimeter/CaloDetDescr/src/CaloDetDescrManager.cxx
index f032dc83340cb0fbc2fd6d818e1ce5b104f3d811..4ae3085928a37c5632e4d34fde85f00baf7012b7 100755
--- a/Calorimeter/CaloDetDescr/src/CaloDetDescrManager.cxx
+++ b/Calorimeter/CaloDetDescr/src/CaloDetDescrManager.cxx
@@ -1617,8 +1617,9 @@ const CaloDetDescrManager* CaloDetDescrManager::instance()
 	if(detStore->contains<CaloDetDescrManager>("CaloMgr")) 
 	{
 	  // The instance already exists - retrieve it and save it locally.
-	  status = detStore->retrieve(theMgr);
-	  s_instance = const_cast<CaloDetDescrManager*>(theMgr);
+	  if (detStore->retrieve(theMgr).isSuccess()) {
+            s_instance = const_cast<CaloDetDescrManager*>(theMgr);
+          }
 	}
       } 
       else {
diff --git a/Calorimeter/CaloIdentifier/CMakeLists.txt b/Calorimeter/CaloIdentifier/CMakeLists.txt
index 0211e9b186dab0d0473ef01328de34eb4c101059..1627df779dfbd3ba6025d22682379795c848f535 100644
--- a/Calorimeter/CaloIdentifier/CMakeLists.txt
+++ b/Calorimeter/CaloIdentifier/CMakeLists.txt
@@ -158,6 +158,11 @@ atlas_add_test( CaloIDHelper_test
                 LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} CaloGeoHelpers SGTools AtlasDetDescr IdDict Identifier GaudiKernel TestTools CxxUtils StoreGateLib SGtests IdDictParser PathResolver CaloIdentifier
                 EXTRA_PATTERNS "mask/zero|Reading file|^AtlasDetectorID(Helper)?::" )
 
+atlas_add_test( CaloHelpersTest_test
+                SOURCES
+                test/CaloHelpersTest_test.cxx
+                LINK_LIBRARIES CaloIdentifier )
+
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
 atlas_install_runtime( share/SuperCaloNeighborsSuperCells-April2014.dat share/FCalSuperCells2DNeighborsNew-April2014.txt share/FCalSuperCells3DNeighborsPrevNew-April2014.txt share/FCalSuperCells3DNeighborsNextNew-April2014.txt share/TileSuperCellNeighbour.txt share/TileNeighbour.txt share/TileNeighbour_reduced.txt share/FCal2DNeighbors.txt share/FCal3DNeighborsPrev.txt share/FCal3DNeighborsNext.txt share/FCal2DNeighbors_H6.txt share/FCal3DNeighborsPrev_H6.txt share/FCal3DNeighborsNext_H6.txt share/SuperCaloNeighbours.dat share/SuperCaloNeighbours_H6.dat share/SuperCaloNeighbours_H8.dat share/FCal2DNeighbors-DC3-05-Comm-01.txt share/FCal3DNeighborsNext-DC3-05-Comm-01.txt share/FCal3DNeighborsPrev-DC3-05-Comm-01.txt share/SuperCaloNeighbours-DC3-05-Comm-01.dat share/FCal2DNeighbors-April2011.txt share/FCal3DNeighborsNext-April2011.txt share/FCal3DNeighborsPrev-April2011.txt share/SuperCaloNeighbours-April2011.dat share/sFCal2DNeighborsNew-Dec2014.txt share/sFCal3DNeighborsNextNew-Dec2014.txt share/sFCal3DNeighborsPrevNew-Dec2014.txt share/SuperCaloNeighbours-sFCal-Dec2014.dat )
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloHelpersTest.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloHelpersTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..bd74a57965ee6267cf00d4c20cec809ecc9fd381
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloHelpersTest.h
@@ -0,0 +1,59 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+/*
+ * Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration.
+ */
+/**
+ * @file CaloIdentifier/CaloHelpersTest.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jun, 2018
+ * @brief Helper to initialize ID helpers for unit tests.
+ */
+
+
+#ifndef CALOIDENTIFIER_CALOHELPERSTEST_H
+#define CALOIDENTIFIER_CALOHELPERSTEST_H
+
+
+#include "CaloIdentifier/LArEM_ID.h"
+#include "CaloIdentifier/LArHEC_ID.h"
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "CaloIdentifier/LArMiniFCAL_ID.h"
+#include "CaloIdentifier/TileID.h"
+#include "CaloIdentifier/CaloCell_ID.h"
+#include <memory>
+
+
+class IdDictParser;
+
+
+/**
+ * @brief Helper to initialize ID helpers for unit tests.
+ *
+ * An object of this class can be created in a unit test in order to provide
+ * initialized instances of the ID helpers.
+ */
+class CaloHelpersTest
+{
+public:
+  CaloHelpersTest();
+  ~CaloHelpersTest();
+
+  const LArEM_ID&        emID() const;
+  const LArHEC_ID&       hecID() const;
+  const LArFCAL_ID&      fcalID() const;
+  const LArMiniFCAL_ID&  minifcalID() const;
+  const TileID&          tileID() const;
+  const CaloCell_ID&     caloID() const;
+
+private:
+  std::unique_ptr<IdDictParser> m_parser;
+  LArEM_ID                      m_em_idHelper;
+  LArHEC_ID                     m_hec_idHelper;
+  LArFCAL_ID                    m_fcal_idHelper;
+  LArMiniFCAL_ID                m_minifcal_idHelper;
+  TileID                        m_tile_idHelper;
+  std::unique_ptr<CaloCell_ID>  m_calo_idHelper;
+};
+
+
+#endif // not CALOIDENTIFIER_CALOHELPERSTEST_H
diff --git a/Calorimeter/CaloIdentifier/share/CaloHelpersTest_test.ref b/Calorimeter/CaloIdentifier/share/CaloHelpersTest_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..ce622d9064b4f6672f059168b1c42d50de9c27a2
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/CaloHelpersTest_test.ref
@@ -0,0 +1,9 @@
+CaloIdentifier/CaloHelpersTest
+test1
+LArMiniFCAL_ID       INFO  initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID.
+LArEM: 173312 36
+LArHEC: 5632 16
+LArFCAL: 3524 6
+LArMinifcal: 0 0
+Tile: 5184 6
+calo: 187652 64
diff --git a/Calorimeter/CaloIdentifier/src/CaloDM_ID.cxx b/Calorimeter/CaloIdentifier/src/CaloDM_ID.cxx
index f6368960c9d9618fbf93ff155347c2e880e68849..41970aed3bccd4621476bc02341bdd7fd6b3fa74 100755
--- a/Calorimeter/CaloIdentifier/src/CaloDM_ID.cxx
+++ b/Calorimeter/CaloIdentifier/src/CaloDM_ID.cxx
@@ -291,7 +291,8 @@ int  CaloDM_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
   m_full_tile_zone_range = m_dict->build_multirange(reg_id2, prefix2, "phivalue");
 
 
-  if(m_msgSvc)
+  if (!m_quiet) {
+    if(m_msgSvc)
     {
       log << MSG::DEBUG << " initialize_from_dict : " << endmsg;
       log << MSG::DEBUG << " LAr zone range -> "  << (std::string)m_full_lar_zone_range << endmsg;
@@ -299,7 +300,7 @@ int  CaloDM_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
       log << MSG::DEBUG << " Tile zone range -> "  << (std::string)m_full_tile_zone_range << endmsg;
       log << MSG::DEBUG << " Tile region range -> "  << (std::string)m_full_tile_region_range << endmsg;
     }
-  else
+    else
     {
       std::cout << " CaloDM_ID::initialize_from_dict : " 
 		<< std::endl;
@@ -312,6 +313,7 @@ int  CaloDM_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
       std::cout << " Tile region range -> "  << (std::string)m_full_tile_region_range
 		<< std::endl;
     }
+  }
     
 
   // Setup the hash tables
@@ -871,7 +873,8 @@ int   CaloDM_ID::initLevelsFromDict(void)
   m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
   m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
 
-  if(m_msgSvc)
+  if (!m_quiet) {
+    if(m_msgSvc)
     {
       //      log << MSG::DEBUG << "CaloDM_ID::initLevelsFromDict - found levels " << endmsg ;
       //      log << MSG::DEBUG << "subdet         " << m_CALO_INDEX     << endmsg ;
@@ -890,7 +893,7 @@ int   CaloDM_ID::initLevelsFromDict(void)
       log << MSG::DEBUG << "eta       "  << m_eta_impl.show_to_string() << endmsg;
       log << MSG::DEBUG << "phi       "  << m_phi_impl.show_to_string() << endmsg;
     }
-  else
+    else
     { 
       //      std::cout << "CaloDM_ID::initLevelsFromDict - found levels " << std::endl ;
       //      std::cout << "subdet         " << m_CALO_INDEX     << std::endl ;
@@ -909,6 +912,7 @@ int   CaloDM_ID::initLevelsFromDict(void)
       std::cout << "eta       "  << m_eta_impl.show_to_string() << std::endl;
       std::cout << "phi       "  << m_phi_impl.show_to_string() << std::endl;
     }
+  }
   return(0) ;
 }
 
diff --git a/Calorimeter/CaloIdentifier/src/CaloHelpersTest.cxx b/Calorimeter/CaloIdentifier/src/CaloHelpersTest.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a59a68cd2c2eb1c69159a5bbc2a96b93b0ba0071
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloHelpersTest.cxx
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration.
+ */
+/**
+ * @file CaloIdentifier/src/CaloHelpersTest.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jun, 2018
+ * @brief Helper to initialize ID helpers for unit tests.
+ */
+
+
+#include "CaloIdentifier/CaloHelpersTest.h"
+#include "IdDictParser/IdDictParser.h"
+
+
+CaloHelpersTest::CaloHelpersTest()
+{
+  m_parser = std::make_unique<IdDictParser>();
+  m_parser->register_external_entity("LArCalorimeter", "IdDictLArCalorimeter.xml");
+  IdDictMgr& idd = m_parser->parse("IdDictParser/ATLAS_IDS.xml");
+  m_em_idHelper.set_quiet (true);
+  m_em_idHelper.set_do_neighbours(false);
+  m_em_idHelper.initialize_from_dictionary(idd);
+  m_hec_idHelper.set_quiet (true);
+  m_hec_idHelper.initialize_from_dictionary(idd);
+  m_fcal_idHelper.set_quiet (true);
+  m_fcal_idHelper.set_do_neighbours(false);
+  m_fcal_idHelper.initialize_from_dictionary(idd);
+  m_minifcal_idHelper.set_quiet (true);
+  m_minifcal_idHelper.set_do_neighbours(false);
+  m_minifcal_idHelper.initialize_from_dictionary(idd);
+  m_tile_idHelper.set_quiet (true);
+  m_tile_idHelper.set_do_neighbours(false);
+  m_tile_idHelper.initialize_from_dictionary(idd);
+
+  m_calo_idHelper = std::make_unique<CaloCell_ID> (&m_em_idHelper,
+                                                   &m_hec_idHelper,
+                                                   &m_fcal_idHelper,
+                                                   &m_minifcal_idHelper,
+                                                   &m_tile_idHelper);
+  m_calo_idHelper->set_quiet (true);
+  m_calo_idHelper->initialize_from_dictionary(idd);
+}
+
+
+CaloHelpersTest::~CaloHelpersTest()
+{
+}
+
+
+const LArEM_ID&        CaloHelpersTest::emID() const
+{
+  return m_em_idHelper;
+}
+
+
+const LArHEC_ID&       CaloHelpersTest::hecID() const
+{
+  return m_hec_idHelper;
+}
+
+
+const LArFCAL_ID&      CaloHelpersTest::fcalID() const
+{
+  return m_fcal_idHelper;
+}
+
+
+const LArMiniFCAL_ID&       CaloHelpersTest::minifcalID() const
+{
+  return m_minifcal_idHelper;
+}
+
+
+const TileID&         CaloHelpersTest::tileID() const
+{
+  return m_tile_idHelper;
+}
+
+
+const CaloCell_ID&     CaloHelpersTest::caloID() const
+{
+  return *m_calo_idHelper;
+}
diff --git a/Calorimeter/CaloIdentifier/src/CaloLVL1_ID.cxx b/Calorimeter/CaloIdentifier/src/CaloLVL1_ID.cxx
index d9fffa1ea34e4593abe287b214ce374efe37ea9b..2a37a9e3b81bd2681d3c9ce9648e037f93a0c4ec 100755
--- a/Calorimeter/CaloIdentifier/src/CaloLVL1_ID.cxx
+++ b/Calorimeter/CaloIdentifier/src/CaloLVL1_ID.cxx
@@ -932,22 +932,23 @@ int   CaloLVL1_ID::initLevelsFromDict(void)
   m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
   m_layer_impl    = region.m_implementation[m_LAYER_INDEX]; 
 
-  strm1 << m_calo_impl.show_to_string();
-  strm2 << m_lvl1_impl.show_to_string();
-  strm3 << m_sampling_impl.show_to_string();
-  strm4 << m_region_impl.show_to_string();
-  strm5 << m_eta_impl.show_to_string();
-  strm6 << m_phi_impl.show_to_string();
-  strm7 << m_layer_impl.show_to_string();
-  strg = "decode index and bit fields for each level: ";
-  strg1= "calo  "+strm1.str();
-  strg2= "detzside  "+strm2.str();
-  strg3= "samp  "+strm3.str();
-  strg4= "reg  "+strm4.str();
-  strg5= "eta  "+strm5.str();
-  strg6= "phi  "+strm6.str();
-  strg7= "layer  "+strm7.str();
-  if(m_msgSvc) 
+  if (!m_quiet) {
+    strm1 << m_calo_impl.show_to_string();
+    strm2 << m_lvl1_impl.show_to_string();
+    strm3 << m_sampling_impl.show_to_string();
+    strm4 << m_region_impl.show_to_string();
+    strm5 << m_eta_impl.show_to_string();
+    strm6 << m_phi_impl.show_to_string();
+    strm7 << m_layer_impl.show_to_string();
+    strg = "decode index and bit fields for each level: ";
+    strg1= "calo  "+strm1.str();
+    strg2= "detzside  "+strm2.str();
+    strg3= "samp  "+strm3.str();
+    strg4= "reg  "+strm4.str();
+    strg5= "eta  "+strm5.str();
+    strg6= "phi  "+strm6.str();
+    strg7= "layer  "+strm7.str();
+    if(m_msgSvc) 
     {
       log << MSG::DEBUG << strg << endmsg;
       log << MSG::DEBUG << strg1 << endmsg;
@@ -958,7 +959,7 @@ int   CaloLVL1_ID::initLevelsFromDict(void)
       log << MSG::DEBUG << strg6 << endmsg;
       log << MSG::DEBUG << strg7 << endmsg;
     }
-  else 
+    else 
     {
       std::cout << strg << std::endl;
       std::cout << strg1 << std::endl;
@@ -969,6 +970,7 @@ int   CaloLVL1_ID::initLevelsFromDict(void)
       std::cout << strg6 << std::endl;
       std::cout << strg7 << std::endl;
     }
+  }
   
   return(0) ;
 }
diff --git a/Calorimeter/CaloIdentifier/src/LArEM_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/LArEM_Base_ID.cxx
index 804726edcd265572a78f76f78fb009d31ea613fb..8fe249f3b6e268cde1df0af5978b1a6bb1bfc026 100644
--- a/Calorimeter/CaloIdentifier/src/LArEM_Base_ID.cxx
+++ b/Calorimeter/CaloIdentifier/src/LArEM_Base_ID.cxx
@@ -414,27 +414,29 @@ int LArEM_Base_ID::initLevelsFromDict (const std::string& group_name)
   m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
   m_slar_impl     = region.m_implementation[m_SLAR_INDEX]; 
 
-  if(m_msgSvc) {
-    log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
-    log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "em   "   << m_em_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "bec  "  << m_bec_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "samp " << m_sampling_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "reg  "  << m_region_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "is-slar  "  << m_slar_impl.show_to_string() << endmsg;
-  }
-  else {
-    std::cout << "decode index and bit fields for each level: " << std::endl;
-    std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
-    std::cout << "em   "   << m_em_impl.show_to_string() << std::endl;
-    std::cout << "bec  "  << m_bec_impl.show_to_string() << std::endl;
-    std::cout << "samp " << m_sampling_impl.show_to_string() << std::endl;
-    std::cout << "reg  "  << m_region_impl.show_to_string() << std::endl;
-    std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
-    std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
-    std::cout << "is-slar  "  << m_slar_impl.show_to_string() << std::endl;
+  if (!m_quiet) {
+    if(m_msgSvc) {
+      log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
+      log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "em   "   << m_em_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "bec  "  << m_bec_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "samp " << m_sampling_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "reg  "  << m_region_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "is-slar  "  << m_slar_impl.show_to_string() << endmsg;
+    }
+    else {
+      std::cout << "decode index and bit fields for each level: " << std::endl;
+      std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
+      std::cout << "em   "   << m_em_impl.show_to_string() << std::endl;
+      std::cout << "bec  "  << m_bec_impl.show_to_string() << std::endl;
+      std::cout << "samp " << m_sampling_impl.show_to_string() << std::endl;
+      std::cout << "reg  "  << m_region_impl.show_to_string() << std::endl;
+      std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
+      std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
+      std::cout << "is-slar  "  << m_slar_impl.show_to_string() << std::endl;
+    }
   }
   
 
@@ -527,22 +529,24 @@ LArEM_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
 
     m_full_em_range = dict()->build_multirange(reg_id, group_name, prefix);
     m_full_region_range = dict()->build_multirange(reg_id, group_name, prefix, "region");  
-    
-    if(m_msgSvc) {
-      log << MSG::DEBUG << " initialize_from_dict : " 
-	  << endmsg;
-      log << MSG::DEBUG << " region range -> "  << (std::string)m_full_region_range
-	  << endmsg;
-      log << MSG::DEBUG << " channel range -> "  << (std::string)m_full_em_range
-	  << endmsg;
-    }
-    else {
-      std::cout << " LArEM_Base_ID::initialize_from_dict : " 
-		<< std::endl;
-      std::cout << " region range -> "  << (std::string)m_full_region_range
-		<< std::endl;
-      std::cout << " channel range -> "  << (std::string)m_full_em_range
-		<< std::endl;
+
+    if (!m_quiet) {
+      if(m_msgSvc) {
+        log << MSG::DEBUG << " initialize_from_dict : " 
+            << endmsg;
+        log << MSG::DEBUG << " region range -> "  << (std::string)m_full_region_range
+            << endmsg;
+        log << MSG::DEBUG << " channel range -> "  << (std::string)m_full_em_range
+            << endmsg;
+      }
+      else {
+        std::cout << " LArEM_Base_ID::initialize_from_dict : " 
+                  << std::endl;
+        std::cout << " region range -> "  << (std::string)m_full_region_range
+                  << std::endl;
+        std::cout << " channel range -> "  << (std::string)m_full_em_range
+                  << std::endl;
+      }
     }
    
     // initialize m_two_sym_sides
diff --git a/Calorimeter/CaloIdentifier/src/LArFCAL_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/LArFCAL_Base_ID.cxx
index cf56a88b4a6e5b8f8dc4f769c6f6ab37e6605c14..66a646f496522471ad6e544716bf80bc71d7f3ae 100755
--- a/Calorimeter/CaloIdentifier/src/LArFCAL_Base_ID.cxx
+++ b/Calorimeter/CaloIdentifier/src/LArFCAL_Base_ID.cxx
@@ -208,18 +208,20 @@ int  LArFCAL_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr
     m_full_channel_range = dict()->build_multirange(region_id, group_name, prefix);
     m_full_module_range = dict()->build_multirange(region_id, group_name, prefix, "module");
 
-    std::string strg0 = " initialize_from_dict : " ;
-    std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
-    std::string strg2 = " module range -> "  + (std::string)m_full_module_range;
-    if(m_msgSvc) {
-      log << MSG::DEBUG << strg0 << endmsg;
-      log << MSG::DEBUG << strg1 << endmsg;
-      log << MSG::DEBUG << strg2 << endmsg;
-    }
-    else {
-      std::cout << strg0 << std::endl;
-      std::cout << strg1 << std::endl;
-      std::cout << strg2 << std::endl;
+    if (!m_quiet) {
+      std::string strg0 = " initialize_from_dict : " ;
+      std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
+      std::string strg2 = " module range -> "  + (std::string)m_full_module_range;
+      if(m_msgSvc) {
+        log << MSG::DEBUG << strg0 << endmsg;
+        log << MSG::DEBUG << strg1 << endmsg;
+        log << MSG::DEBUG << strg2 << endmsg;
+      }
+      else {
+        std::cout << strg0 << std::endl;
+        std::cout << strg1 << std::endl;
+        std::cout << strg2 << std::endl;
+      }
     }
 
     // Setup the hash tables
@@ -505,25 +507,27 @@ int         LArFCAL_Base_ID::initLevelsFromDict(const std::string& /*group_name*
   m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
   m_slar_impl     = region.m_implementation[m_SLAR_INDEX]; 
 
-  if(m_msgSvc) {
-    log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
-    log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "fcal "  << m_fcal_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "pn   "  << m_pn_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "mod  "  << m_module_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "is-slar  "  << m_slar_impl.show_to_string() << endmsg;
-  }
-  else {
-    std::cout << "decode index and bit fields for each level: " << std::endl;
-    std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
-    std::cout << "fcal "  << m_fcal_impl.show_to_string() << std::endl;
-    std::cout << "pn   "  << m_pn_impl.show_to_string() << std::endl;
-    std::cout << "mod  "  << m_module_impl.show_to_string() << std::endl;
-    std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
-    std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
-    std::cout << "is-slar  "  << m_slar_impl.show_to_string() << std::endl;
+  if (!m_quiet) {
+    if(m_msgSvc) {
+      log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
+      log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "fcal "  << m_fcal_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "pn   "  << m_pn_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "mod  "  << m_module_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "is-slar  "  << m_slar_impl.show_to_string() << endmsg;
+    }
+    else {
+      std::cout << "decode index and bit fields for each level: " << std::endl;
+      std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
+      std::cout << "fcal "  << m_fcal_impl.show_to_string() << std::endl;
+      std::cout << "pn   "  << m_pn_impl.show_to_string() << std::endl;
+      std::cout << "mod  "  << m_module_impl.show_to_string() << std::endl;
+      std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
+      std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
+      std::cout << "is-slar  "  << m_slar_impl.show_to_string() << std::endl;
+    }
   }
 
 
diff --git a/Calorimeter/CaloIdentifier/src/LArHEC_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/LArHEC_Base_ID.cxx
index 939d6412c781e586d96be1a67ee20f5f27e0c615..b5fc8ab1fc5f1df55b99efa42de41258d77290d5 100755
--- a/Calorimeter/CaloIdentifier/src/LArHEC_Base_ID.cxx
+++ b/Calorimeter/CaloIdentifier/src/LArHEC_Base_ID.cxx
@@ -243,18 +243,20 @@ int  LArHEC_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
       m_full_channel_range = dict()->build_multirange(exp_region_id, group_name, prefix);
       m_full_region_range = dict()->build_multirange(exp_region_id, group_name, prefix, "region");  
 
-      std::string strg0 = "initialize_from_dict : " ;
-      std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
-      std::string strg2 = " region range -> "  + (std::string)m_full_region_range;
-      if(m_msgSvc) {
-	log << MSG::DEBUG << strg0 << endmsg;
-	log << MSG::DEBUG << strg1 << endmsg;
-	log << MSG::DEBUG << strg2 << endmsg;
-      }
-      else {
-	std::cout << strg0 << std::endl;
-	std::cout << strg1 << std::endl;
-	std::cout << strg2 << std::endl;
+      if (!m_quiet) {
+        std::string strg0 = "initialize_from_dict : " ;
+        std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
+        std::string strg2 = " region range -> "  + (std::string)m_full_region_range;
+        if(m_msgSvc) {
+          log << MSG::DEBUG << strg0 << endmsg;
+          log << MSG::DEBUG << strg1 << endmsg;
+          log << MSG::DEBUG << strg2 << endmsg;
+        }
+        else {
+          std::cout << strg0 << std::endl;
+          std::cout << strg1 << std::endl;
+          std::cout << strg2 << std::endl;
+        }
       }
 
 
@@ -682,27 +684,29 @@ int LArHEC_Base_ID::initLevelsFromDict (const std::string& /*group_name*/)
   m_slar_impl     = region.m_implementation[m_SLAR_INDEX]; 
 
 
-  if(m_msgSvc) {
-    log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
-    log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "hec  "  << m_hec_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "pn   "  << m_pn_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "samp "  << m_sampling_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "reg  "  << m_region_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "is-slar  " << m_slar_impl.show_to_string() << endmsg;
-  } 
-  else {
-    std::cout << "decode index and bit fields for each level: " << std::endl;
-    std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
-    std::cout << "hec  "  << m_hec_impl.show_to_string() << std::endl;
-    std::cout << "pn   "  << m_pn_impl.show_to_string() << std::endl;
-    std::cout << "samp "  << m_sampling_impl.show_to_string() << std::endl;
-    std::cout << "reg  "  << m_region_impl.show_to_string() << std::endl;
-    std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
-    std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
-    std::cout << "is-slar  " << m_slar_impl.show_to_string() << std::endl;
+  if (!m_quiet) {
+    if(m_msgSvc) {
+      log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
+      log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "hec  "  << m_hec_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "pn   "  << m_pn_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "samp "  << m_sampling_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "reg  "  << m_region_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "is-slar  " << m_slar_impl.show_to_string() << endmsg;
+    } 
+    else {
+      std::cout << "decode index and bit fields for each level: " << std::endl;
+      std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
+      std::cout << "hec  "  << m_hec_impl.show_to_string() << std::endl;
+      std::cout << "pn   "  << m_pn_impl.show_to_string() << std::endl;
+      std::cout << "samp "  << m_sampling_impl.show_to_string() << std::endl;
+      std::cout << "reg  "  << m_region_impl.show_to_string() << std::endl;
+      std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
+      std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
+      std::cout << "is-slar  " << m_slar_impl.show_to_string() << std::endl;
+    }
   }
     
   return(0) ;
@@ -1146,11 +1150,13 @@ int LArHEC_Base_ID::init_neighbors(void)
 
   const std::vector<const IdDictRegion*>& vecOfDictRegions = dictRegions();
 
-  if(m_msgSvc) {
-    log << MSG::DEBUG << "init_neighbors" << endmsg;
-  }
-  else {
-    std::cout << " LArHEC_Base_ID::init_neighbors " << std::endl;
+  if (!m_quiet) {
+    if(m_msgSvc) {
+      log << MSG::DEBUG << "init_neighbors" << endmsg;
+    }
+    else {
+      std::cout << " LArHEC_Base_ID::init_neighbors " << std::endl;
+    }
   }
 
   //
diff --git a/Calorimeter/CaloIdentifier/src/LArMiniFCAL_ID.cxx b/Calorimeter/CaloIdentifier/src/LArMiniFCAL_ID.cxx
index b4259d309b659089e609950cf3f15bb129842460..4336ec1523d940f03141cd8d69e6a55d33b81745 100644
--- a/Calorimeter/CaloIdentifier/src/LArMiniFCAL_ID.cxx
+++ b/Calorimeter/CaloIdentifier/src/LArMiniFCAL_ID.cxx
@@ -303,21 +303,23 @@ int  LArMiniFCAL_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
     m_full_module_range = dict()->build_multirange(region_id, str, prefix, "module");
     m_full_depth_range = dict()->build_multirange(region_id, str, prefix, "depth-mfcal");
 
-    std::string strg0 = "initialize_from_dict : " ;
-    std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
-    std::string strg2 = " module range -> "  + (std::string)m_full_module_range;
-    std::string strg2a= " depth range -> "   + (std::string)m_full_depth_range;
-    if(m_msgSvc) {
-      log << MSG::DEBUG << strg0 << endmsg;
-      log << MSG::DEBUG << strg1 << endmsg;
-      log << MSG::DEBUG << strg2 << endmsg;
-      log << MSG::DEBUG << strg2a<< endmsg;
-    }
-    else {
-      std::cout << strg0 << std::endl;
-      std::cout << strg1 << std::endl;
-      std::cout << strg2 << std::endl;
-      std::cout << strg2a<< std::endl;
+    if (!m_quiet) {
+      std::string strg0 = "initialize_from_dict : " ;
+      std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
+      std::string strg2 = " module range -> "  + (std::string)m_full_module_range;
+      std::string strg2a= " depth range -> "   + (std::string)m_full_depth_range;
+      if(m_msgSvc) {
+        log << MSG::DEBUG << strg0 << endmsg;
+        log << MSG::DEBUG << strg1 << endmsg;
+        log << MSG::DEBUG << strg2 << endmsg;
+        log << MSG::DEBUG << strg2a<< endmsg;
+      }
+      else {
+        std::cout << strg0 << std::endl;
+        std::cout << strg1 << std::endl;
+        std::cout << strg2 << std::endl;
+        std::cout << strg2a<< std::endl;
+      }
     }
 
     // Setup the hash tables
@@ -618,26 +620,28 @@ int         LArMiniFCAL_ID::initLevelsFromDict(void)
   m_depth_impl    = region.m_implementation[m_DEPTH_INDEX]; 
   m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
   m_phi_impl      = region.m_implementation[m_PHI_INDEX];
- 
-  if(m_msgSvc) {
-    log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
-    log << MSG::DEBUG << "lar   "   << m_lar_impl.show_to_string()    << endmsg;
-    log << MSG::DEBUG << "fcal  "   << m_fcal_impl.show_to_string()   << endmsg;
-    log << MSG::DEBUG << "pn    "   << m_pn_impl.show_to_string()     << endmsg;
-    log << MSG::DEBUG << "mod   "   << m_module_impl.show_to_string() << endmsg;
-    log << MSG::DEBUG << "depth "   << m_depth_impl.show_to_string()  << endmsg;
-    log << MSG::DEBUG << "eta   "   << m_eta_impl.show_to_string()    << endmsg;
-    log << MSG::DEBUG << "phi   "   << m_phi_impl.show_to_string()    << endmsg;
-  }
-  else {
-    std::cout << "decode index and bit fields for each level: " << std::endl;
-    std::cout << "lar   "  << m_lar_impl.show_to_string()    << std::endl;
-    std::cout << "fcal  "  << m_fcal_impl.show_to_string()   << std::endl;
-    std::cout << "pn    "  << m_pn_impl.show_to_string()     << std::endl;
-    std::cout << "mod   "  << m_module_impl.show_to_string() << std::endl;
-    std::cout << "depth "  << m_depth_impl.show_to_string()  << std::endl;
-    std::cout << "eta   "  << m_eta_impl.show_to_string()    << std::endl;
-    std::cout << "phi   "  << m_phi_impl.show_to_string()    << std::endl;
+
+  if (!m_quiet) {
+    if(m_msgSvc) {
+      log << MSG::DEBUG << "decode index and bit fields for each level: " << endmsg;
+      log << MSG::DEBUG << "lar   "   << m_lar_impl.show_to_string()    << endmsg;
+      log << MSG::DEBUG << "fcal  "   << m_fcal_impl.show_to_string()   << endmsg;
+      log << MSG::DEBUG << "pn    "   << m_pn_impl.show_to_string()     << endmsg;
+      log << MSG::DEBUG << "mod   "   << m_module_impl.show_to_string() << endmsg;
+      log << MSG::DEBUG << "depth "   << m_depth_impl.show_to_string()  << endmsg;
+      log << MSG::DEBUG << "eta   "   << m_eta_impl.show_to_string()    << endmsg;
+      log << MSG::DEBUG << "phi   "   << m_phi_impl.show_to_string()    << endmsg;
+    }
+    else {
+      std::cout << "decode index and bit fields for each level: " << std::endl;
+      std::cout << "lar   "  << m_lar_impl.show_to_string()    << std::endl;
+      std::cout << "fcal  "  << m_fcal_impl.show_to_string()   << std::endl;
+      std::cout << "pn    "  << m_pn_impl.show_to_string()     << std::endl;
+      std::cout << "mod   "  << m_module_impl.show_to_string() << std::endl;
+      std::cout << "depth "  << m_depth_impl.show_to_string()  << std::endl;
+      std::cout << "eta   "  << m_eta_impl.show_to_string()    << std::endl;
+      std::cout << "phi   "  << m_phi_impl.show_to_string()    << std::endl;
+    }
   }
 
 
diff --git a/Calorimeter/CaloIdentifier/src/TTOnlineID.cxx b/Calorimeter/CaloIdentifier/src/TTOnlineID.cxx
index c33db6038f15324386f3dfc970f0cf17e2d85f9c..3fbbfa455c0f1abe61136162bab964fb6a1ecb33 100755
--- a/Calorimeter/CaloIdentifier/src/TTOnlineID.cxx
+++ b/Calorimeter/CaloIdentifier/src/TTOnlineID.cxx
@@ -2,797 +2,799 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "CaloIdentifier/TTOnlineID.h"
-#include "AtlasDetDescr/AtlasDetectorID.h"
-#include "Identifier/IdentifierHash.h"
-#include "IdDict/IdDictDefs.h"
-#include "CxxUtils/StrFormat.h"
-#include "GaudiKernel/MsgStream.h"
-#include <algorithm>
-#include <string>
-#include <set>
-#include <stdio.h>
-#include <iostream>
-#include <math.h>
-#include <assert.h>
-
-using CxxUtils::strformat;
-
-
-TTOnlineID::TTOnlineID(void) :
-  m_calo_index(999),
-  m_detzside_index(999),
-  m_l1online_regions_index(999),
-  m_crate_index(999),
-  m_module_index(999),
-  m_submodule_index(999),
-  m_channel_index(999),
-  m_dict(0),
-  m_crateHashMax(0),
-  m_moduleHashMax(0),
-  m_submoduleHashMax(0),
-  m_channelHashMax(0),
-  m_iDetZSideFieldValue(-1)
-{
-
-}
-
-TTOnlineID:: ~TTOnlineID(){}
-
-
-IdContext TTOnlineID::crateContext(void) const
-{
-  ExpandedIdentifier id;
-  return (IdContext(id, 0, m_crate_index));
-}
-
-IdContext TTOnlineID::moduleContext(void) const
-{
-  ExpandedIdentifier id;
-  return (IdContext(id, 0, m_module_index));
-}
-
-IdContext TTOnlineID::submoduleContext(void) const
-{
-  ExpandedIdentifier id;
-  return (IdContext(id, 0, m_submodule_index));
-}
-
-IdContext TTOnlineID::channelContext(void) const
-{
-  ExpandedIdentifier id;
-  return (IdContext(id, 0, m_channel_index));
-}
-
-
-
-//==========================================================================
-int  TTOnlineID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
-//==========================================================================
-{
-
-  MsgStream log(m_msgSvc, "TTOnlineID" );
-  std::string strg = "initialize_from_dictionary";
-  if(m_msgSvc) {
-    log << MSG::INFO << strg << endmsg;
-  }
-  else {
-    std::cout << strg << std::endl;
-  }
-
-  // Check whether this helper should be reinitialized
-  // -------------------------------------------------
-  if (!reinitialize(dict_mgr)) {
-    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed"
-		    << endmsg;
-    return (0);
-  }
-  else {
-    log << MSG::DEBUG << "(Re)initialize" << endmsg;
-  }
-
-  // init base object
-  // ----------------
-  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)){
-    return (1);
-  }
-
-  m_dict = dict_mgr.find_dictionary("Calorimeter");
-
-  log << MSG::DEBUG << " => defined m_dict from find_dictionary(Calorimeter) = " << m_dict << endmsg;
-  if(!m_dict)
-    {
-      strg = " initialize_from_dictionary - cannot access Calorimeter dictionary";
-      if(m_msgSvc) {
-	//log << MSG::ERROR << strg << endmsg;
-      }
-      else
-	{
-	  std::cout << "TTOnlineID::" << strg << std::endl;
-	}
-      return 1;
-    }
-
-  // Register version of the dictionary used
-  // ---------------------------------------
-  if (register_dict_tag(dict_mgr, "Calorimeter")) return(1);
-
-  // initialize dictionary version
-  // -----------------------------
-  AtlasDetectorID::setDictVersion(dict_mgr, "Calorimeter");
-
-
-  // Initialize the field indices
-  // --------------------------------------
-  if(initLevelsFromDict()) return (1);
-
-  /* Find value for the field Calorimeter */
-  // ---------------------------------------
-  const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS");
-  int caloValue   = -1;
-  if (atlasDict->get_label_value("subdet", "Calorimeter", caloValue)) {
-    std::stringstream strm;
-    strm << atlasDict->m_name;
-    strg= " Could not get value for label 'Calorimeter' of field 'subdet' in dictionary "+strm.str();
-    if(m_msgSvc){
-      log << MSG::ERROR << strg << endmsg;
-    }
-    else{
-      std::cout << "TTOnlineID:" << strg << std::endl;
-    }
-    return (1);
-  }
-  log << MSG::DEBUG << "[init_from_dictionary] > caloValue = "<< caloValue << endmsg;
-
-  /* Find values for the fake field DetZside */
-  // --------------------------------------
-
-  // retrieve the calo tag from the DB
-  std::string tag = m_dict->dict_tag();
-  bool oldTag = ( tag.size()==0 || tag == "CaloIdentifier-DC3-05" || tag == "CaloIdentifier-LVL1-01");
-  log << MSG::DEBUG << "Calorimeter dict. DB tag= " << tag << endmsg;
-
-  //int detzsideValue   = -1;
-  //if (m_dict->get_label_value("DetZside", "no_side", detzsideValue)) {
-  if (m_dict->get_label_value("DetZside", "no_side", m_iDetZSideFieldValue)) {
-    if (!oldTag) {
-      std::stringstream strm;
-      strm <<  m_dict->m_name;
-      strg = "WARNING : Could not get value for label 'DetZside' in dictionary "+strm.str();
-      if(m_msgSvc) {
-	log << MSG::INFO << strg << endmsg;
-      }
-      else{
-	std::cout << strg << std::endl;
-      }
-    }
-    return (0);
-  }
-  log << MSG::DEBUG << "[init_from_dictionary] > detzsideValue = "<< detzside_field_value() << endmsg;
-
-
-  // Set up id for tower and layer's range prefix
-  // ---------------------------------------------
-  //   Note: negative value is good enough to get multirange since the
-  //   regions are symmetric in +/-eta
-
-  ExpandedIdentifier reg_id;
-  reg_id.add(caloValue);
-  reg_id.add(detzside_field_value());
-
-  Range prefix;
-  m_full_crate_range     = m_dict->build_multirange(reg_id, prefix, "crate");
-  m_full_module_range    = m_dict->build_multirange(reg_id, prefix, "module");
-  m_full_submodule_range = m_dict->build_multirange(reg_id, prefix, "submodule");
-  m_full_channel_range   = m_dict->build_multirange(reg_id, prefix, "channel");
-
-  log << MSG::DEBUG << "[initialize_from_dictionary] >  Crate range -> "
-      << (std::string)m_full_crate_range << endmsg;
-  log << MSG::DEBUG << "[initialize_from_dictionary] >  Module range -> "
-      << (std::string)m_full_module_range << endmsg;
-  log << MSG::DEBUG << "[initialize_from_dictionary] >  SubModule range -> "
-      << (std::string)m_full_submodule_range << endmsg;
-  log << MSG::DEBUG << "[initialize_from_dictionary] >  Channel range -> "
-      << (std::string)m_full_channel_range << endmsg;
-
-
-  // Setup the hash tables
-  // --------------------------------------
-  if(init_hashes()) return (1);
-  return 0;
-}
-
-
-//=====================================================================================
-int TTOnlineID::get_expanded_id  (const HWIdentifier& id, ExpandedIdentifier& exp_id,
-				     const IdContext* context) const
-//=====================================================================================
-{
-  MsgStream log(m_msgSvc, "TTOnlineID" );
-  // We assume that the context is >= region
-  exp_id.clear();
-  exp_id << calo_field_value();
-  exp_id << detzside_field_value();
-  if(context && context->end_index() >= m_crate_index) {
-    exp_id << crate(id);
-    if(context->end_index() >= m_module_index) {
-      exp_id << module(id);
-      if(context->end_index() >= m_submodule_index) {
-				exp_id << submodule(id);
-				if(context->end_index() >= m_channel_index)
-					exp_id << channel(id);
-      }
-    }
-  }
-  return (0);
-}
-
-
-//=====================================================================================
-void TTOnlineID::channel_Id_checks   ( int crate, int module, int submodule, int channel  ) const
-//=====================================================================================
-{
-  // Fill expanded id
-  ExpandedIdentifier id(calo_exp());
-  id << detzside_field_value() << crate << module << submodule << channel;
-  if( id.last_error () != ExpandedIdentifier::none) {
-    std::string errorMessage =
-      "Error in TTOnlineID::channel_Id_checks(field values), did not build, " +
-      strformat ("crate: %d , module: %d, submodule: %d , channel: %d ",
-                 crate , module , submodule, channel);
-    throw CaloID_Exception(errorMessage , 2);
-  }
-  if (!m_full_channel_range.match(id)) {
-    std::string errorMessage = "[TTOnlineID]::channnelId() result is not OK: ID, range = "
-      + std::string(id) + " , " + (std::string)m_full_channel_range;
-    throw CaloID_Exception(errorMessage , 2);
-  }
-}
-
-/* ================================================================*/
-void TTOnlineID::channel_Id_checks   ( const HWIdentifier submoduleId, int channel ) const
-/* ================================================================*/
-{
-  // Check that id is within allowed range
-  // Fill expanded id
-    ExpandedIdentifier expId;
-    IdContext context = submoduleContext();
-    if (get_expanded_id(submoduleId, expId, &context)) {
-	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID = "
-	    + show_to_string(submoduleId) ;
-	throw CaloID_Exception(errorMessage , 99);
-    }
-
-    expId << channel;
-    if (!m_full_channel_range.match(expId)) {
-	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
-	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
-	throw CaloID_Exception(errorMessage , 99);
-    }
-}
-
-/* ================================================================*/
-void TTOnlineID::channel_Id_checks   ( const HWIdentifier moduleId, int submodule, int channel ) const
-/* ================================================================*/
-{
-  // Check that id is within allowed range
-  // Fill expanded id
-    ExpandedIdentifier expId;
-    IdContext context = moduleContext();
-    if (get_expanded_id(moduleId, expId, &context)) {
-	std::string errorMessage = "TTOnlineID::channel_Id_checks(moduleId) result is not OK: ID = "
-	    + show_to_string(moduleId) ;
-	throw CaloID_Exception(errorMessage , 99);
-    }
-
-    expId << submodule << channel;
-    if (!m_full_channel_range.match(expId)) {
-	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
-	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
-	throw CaloID_Exception(errorMessage , 99);
-    }
-}
-
-/* ================================================================*/
-void TTOnlineID::channel_Id_checks   ( const HWIdentifier crateId, int module, int submodule, int channel ) const
-/* ================================================================*/
-{
-  // Check that id is within allowed range
-  // Fill expanded id
-    ExpandedIdentifier expId;
-    IdContext context = crateContext();
-    if (get_expanded_id(crateId, expId, &context)) {
-	std::string errorMessage = "TTOnlineID::channel_Id_checks(crateId) result is not OK: ID = "
-	    + show_to_string(crateId) ;
-	throw CaloID_Exception(errorMessage , 99);
-    }
-
-    expId << module << submodule << channel;
-    if (!m_full_channel_range.match(expId)) {
-	std::string errorMessage = "TTOnlineID::channel_Id_checks(crateId) result is not OK: ID, range = "
-	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
-	throw CaloID_Exception(errorMessage , 99);
-    }
-}
-
-/* ================================================================*/
-void TTOnlineID::submodule_Id_checks( int crate, int module, int submodule ) const
-/* ================================================================*/
-{
-  // Check that id is within allowed range
-  // Fill expanded id
-  ExpandedIdentifier expId(calo_exp());
-  expId << detzside_field_value() << crate <<  module << submodule;
-
-  if(  expId.last_error () != ExpandedIdentifier::none ){
-    std::string errorMessage =
-      "Error in TTOnlineID::submodule_Id_checks, values ok but did not build, "+
-      strformat ("crate: %d , module: %d , submodule: %d",
-                 crate , module, submodule);
-    throw CaloID_Exception(errorMessage , 99);
-  }
-  if (!m_full_submodule_range.match(expId)) { std::string errorMessage = "TTOnlineID::submodule_Id_checks() result is not OK: ID, range = "
-      + std::string(expId) + " , " + (std::string)m_full_submodule_range;
-    throw CaloID_Exception(errorMessage , 99);
-  }
-}
-
-/* ================================================================*/
-void TTOnlineID::module_Id_checks( int crate, int module ) const
-/* ================================================================*/
-{
-  // Check that id is within allowed range
-  // Fill expanded id
-  ExpandedIdentifier expId(calo_exp());
-  expId << detzside_field_value() << crate << module;
-
-  if(  expId.last_error () != ExpandedIdentifier::none ){
-    std::string errorMessage =
-      "Error in TTOnlineID::module_Id_checks, values ok but did not build, " +
-      strformat ("crate: %d , module: %d", crate , module);
-    throw CaloID_Exception(errorMessage , 99);
-  }
-  if (!m_full_module_range.match(expId)) { std::string errorMessage = "TTOnlineID::module_Id_checks() result is not OK: ID, range = "
-      + std::string(expId) + " , " + (std::string)m_full_module_range;
-    throw CaloID_Exception(errorMessage , 99);
-  }
-}
-
-/* ================================================================*/
-void TTOnlineID::crate_Id_checks( int crate ) const
-/* ================================================================*/
-{
-  // Check that id is within allowed range
-  // Fill expanded id
-  ExpandedIdentifier expId(calo_exp());
-  expId << detzside_field_value() << crate;
-
-  if(  expId.last_error () != ExpandedIdentifier::none ){
-    std::string errorMessage =
-      "Error in TTOnlineID::crate_Id_checks, values ok but did not build, " +
-      strformat ("crate: %d", crate);
-    throw CaloID_Exception(errorMessage , 99);
-  }
-  if (!m_full_crate_range.match(expId)) { std::string errorMessage = "TTOnlineID::crate_Id_checks() result is not OK: ID, range = "
-      + std::string(expId) + " , " + (std::string)m_full_crate_range;
-    throw CaloID_Exception(errorMessage , 99);
-  }
-}
-
-
-//=========================================================
-int TTOnlineID::initLevelsFromDict(void)
-//=========================================================
-{
-  MsgStream log(m_msgSvc, "TTOnlineID" );
-  log << MSG::DEBUG  << "[initLevelsFromDict] (0) Entering routine... " << endmsg;
-
-  if(!m_dict) {
-    log << MSG::INFO  << "TTOnlineID::initLevelsFromDict - dictionary NOT initialized "
-              << endmsg ;
-    return (1);
-  }
-
-  log << MSG::DEBUG  << "[initLevelsFromDict] (1) m_dict OK ... " << endmsg;
-
-  // Find out which identifier field corresponds to each level.
-  // ----------------------------------------------------------
-  m_calo_index                = 999 ;
-  m_detzside_index            = 999 ;
-  m_crate_index               = 999 ;
-  m_module_index              = 999 ;
-  m_submodule_index           = 999 ;
-  m_channel_index             = 999 ;
-
-  log << MSG::DEBUG  << "[initLevelsFromDict] (2) data member initialization OK ... "  << endmsg;
-
-  // retrieve the calo tag from the DB
-  std::string tag = m_dict->dict_tag();
-  bool oldTag = ( tag.size()==0 || tag == "CaloIdentifier-DC3-05" || tag == "CaloIdentifier-LVL1-01");
-  log << MSG::DEBUG << "Calorimeter dict. DB tag= " << tag << endmsg;
-
-  // Save index to a Online LVL1 region for unpacking - search with region name
-  IdDictRegion* reg = m_dict->find_region("PPM_Crate-00");
-  if (reg) {
-      m_l1online_regions_index = reg->m_index;}
-  else {
-    if(!oldTag) log << MSG::INFO  << "WARNING : TTOnlineID::initLevelsFromDict - unable to find 'PPM_Crate-00' region" << endmsg;
-    return (0);
-  }
-  log << MSG::DEBUG  << "[initLevelsFromDict] (3) region 'PPM_Crate-00' found OK ... " << m_l1online_regions_index << endmsg;
-
-  // Look for Fields...
-  // ------------------
-  IdDictField* field = m_dict->find_field("subdet") ;
-  if (field) {
-    m_calo_index = field->m_index;}
-  else {
-    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'Calo' field "
-              << endmsg ;
-    return (1);
-  }
-  log << MSG::DEBUG  << "[initLevelsFromDict] (4) field 'Calo' found OK "  << endmsg;
-
-
-  field = m_dict->find_field("DetZside") ;
-  if (field) {
-    m_detzside_index = field->m_index ;}
-  else {
-    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'DetZside' field "
-              << endmsg ;
-    return (1);
-  }
-  log << MSG::DEBUG  << "[initLevelsFromDict] (5) field 'DetZside' found OK "  << endmsg;
-
-
-  field = m_dict->find_field("crate") ;
-  if (field) {
-    m_crate_index = field->m_index ;}
-  else {
-    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'crate' field "
-              << endmsg ;
-    return (1);
-  }
-  log << MSG::DEBUG  << "[initLevelsFromDict] (6) field 'crate' found OK "  << endmsg;
-
-  field = m_dict->find_field("module") ;
-  if (field) {
-    m_module_index = field->m_index ;
-  }
-  else {
-    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'module' field "
-              << endmsg ;
-    return (1);
-  }
-  log << MSG::DEBUG  << "[initLevelsFromDict] (7) field 'module' found OK "  << endmsg;
-
-  field = m_dict->find_field("submodule") ;
-  if (field) {
-    m_submodule_index = field->m_index ;
-  }
-  else {
-    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'submodule' field " << endmsg ;
-    return (1);
-  }
-  log << MSG::DEBUG  << "[initLevelsFromDict] (8) field 'submodule' found OK "  << endmsg;
-
-  field = m_dict->find_field("channel") ;
-  if (field) {
-    m_channel_index = field->m_index ;
-  }
-  else {
-    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'channel' field " << endmsg;
-    return (1);
-  }
-  log << MSG::DEBUG  << "[initLevelsFromDict] (9) field 'channel' found OK "  << endmsg;
-
-
-  // Set the field implementation
-  // ------------------------------
-  const IdDictRegion& region = *m_dict->m_regions[m_l1online_regions_index];
-  log << MSG::DEBUG  << "[initLevelsFromDict] (10) found levels: " << endmsg ;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > subdet         " << m_calo_index           << endmsg ;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > detzside       " << m_detzside_index  << endmsg ;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > crate          " << m_crate_index          << endmsg ;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > module         " << m_module_index         << endmsg ;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > submodule      " << m_submodule_index      << endmsg ;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > channel        " << m_channel_index        << endmsg ;
-
-  log << MSG::DEBUG  << "[initLevelsFromDict] > ...fields implementation... " << endmsg;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_calo_index " << endmsg;
-  m_calo_impl          = region.m_implementation[m_calo_index];
-
-  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_det_side_index " << endmsg;
-  m_calo_detzside_impl = region.m_implementation[m_detzside_index];
-
-  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_crate_index " << endmsg;
-  m_crate_impl     = region.m_implementation[m_crate_index];
-
-  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_module_index " << endmsg;
-  m_module_impl     = region.m_implementation[m_module_index];
-  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_submodule_index " << endmsg;
-  m_submodule_impl   = region.m_implementation[m_submodule_index];
-  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_channel_index " << endmsg;
-  m_channel_impl   = region.m_implementation[m_channel_index];
-
-  log << MSG::DEBUG  << "[initLevelsFromDict] (11) decode index and bit fields for each level: " << endmsg;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > calo          " << m_calo_impl.show_to_string() << endmsg;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > detzside  "  << m_calo_detzside_impl.show_to_string() << endmsg;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > crate         " << m_crate_impl.show_to_string()  << endmsg;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > module        " << m_module_impl.show_to_string() << endmsg;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > submodule     " << m_submodule_impl.show_to_string()  << endmsg;
-  log << MSG::DEBUG  << "[initLevelsFromDict] > channel       " << m_channel_impl.show_to_string()  << endmsg;
-
-  return(0) ;
-}
-
-
-//=====================================================
-int  TTOnlineID::init_hashes(void)
-//=====================================================
-{
-  MsgStream log(m_msgSvc, "TTOnlineID" );
-  std::stringstream strm1;
-  std::stringstream strm2;
-  std::stringstream strm3;
-  std::string strg1;
-  std::string strg2;
-  std::string strg3;
-
-  // Crate hash
-  // -----------
-	{
-	  m_crateHashMax = m_full_crate_range.cardinality();
-	  m_crate_vec.resize(m_crateHashMax);
-	  unsigned int nids = 0;
-	  std::set<HWIdentifier> ids;
-	  for (unsigned int i = 0; i < m_full_crate_range.size(); ++i) {
-	    const Range& range = m_full_crate_range[i];
-	    Range::const_identifier_factory first = range.factory_begin();
-	    Range::const_identifier_factory last  = range.factory_end();
-	    for (; first != last; ++first) {
-	      const ExpandedIdentifier& exp_id = (*first);
-	      HWIdentifier cra_id = crateId( exp_id[m_crate_index] ) ;
-
-	      if(!(ids.insert(cra_id)).second){
-		strm1 << nids;
-		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
-		strm3 << show_to_string(cra_id);
-		strg3 = " expanded Id= "+strm3.str();
-		if(m_msgSvc){
-		  log  << MSG::ERROR << strg1 << endmsg;
-		  log  << MSG::ERROR << strg3 << endmsg;
-		}
-		else{
-		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
-		  std::cout << strg3 << std::endl;
-		}
-	      }
-	      nids++;
-	    }
-	  }
-	  if(ids.size() != m_crateHashMax) {
-	    strm1 << ids.size();
-	    strm2 << m_crateHashMax;
-	    strg1 = "[init_hashes] >";
-	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
-	    strg3 = " hash max "+strm2.str();
-	    if(m_msgSvc)
-	      {
-		log << MSG::ERROR << strg1 << endmsg;
-		log << MSG::ERROR << strg2 << endmsg;
-		log << MSG::ERROR << strg3 << endmsg;
-	      }
-	    else
-	      {
-		std::cout << "TTOnlineID::" << strg1 << std::endl;
-		std::cout << "Error" << strg2 << std::endl;
-		std::cout << strg3 << std::endl;
-	      }
-	    return (1);
-	  }
-
-	  nids=0;
-	  std::set<HWIdentifier>::const_iterator first = ids.begin();
-	  std::set<HWIdentifier>::const_iterator last  = ids.end();
-	  for (;first != last && nids < m_crate_vec.size(); ++first) {
-	    m_crate_vec[nids] = (*first) ;
-	    nids++;
-	  }
-	  log << MSG::DEBUG << "[init_hashes()] > Crate_size= " << m_crate_vec.size() << endmsg;
-	}
-
-  // Module hash
-  // -----------
-	{
-	  m_moduleHashMax = m_full_module_range.cardinality();
-	  m_module_vec.resize(m_moduleHashMax);
-	  unsigned int nids = 0;
-	  std::set<HWIdentifier> ids;
-	  for (unsigned int i = 0; i < m_full_module_range.size(); ++i) {
-	    const Range& range = m_full_module_range[i];
-	    Range::const_identifier_factory first = range.factory_begin();
-	    Range::const_identifier_factory last  = range.factory_end();
-	    for (; first != last; ++first) {
-	      const ExpandedIdentifier& exp_id = (*first);
-	      HWIdentifier mod_id = moduleId(exp_id[m_crate_index], exp_id[m_module_index] ) ;
-
-	      if(!(ids.insert(mod_id)).second){
-		strm1 << nids;
-		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
-		strm3 << show_to_string(mod_id);
-		strg3 = " expanded Id= "+strm3.str();
-		if(m_msgSvc){
-		  log  << MSG::ERROR << strg1 << endmsg;
-		  log  << MSG::ERROR << strg3 << endmsg;
-		}
-		else{
-		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
-		  std::cout << strg3 << std::endl;
-		}
-	      }
-	      nids++;
-	    }
-	  }
-	  if(ids.size() != m_moduleHashMax) {
-	    strm1 << ids.size();
-	    strm2 << m_moduleHashMax;
-	    strg1 = "[init_hashes] >";
-	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
-	    strg3 = " hash max "+strm2.str();
-	    if(m_msgSvc)
-	      {
-		log << MSG::ERROR << strg1 << endmsg;
-		log << MSG::ERROR << strg2 << endmsg;
-		log << MSG::ERROR << strg3 << endmsg;
-	      }
-	    else
-	      {
-		std::cout << "TTOnlineID::" << strg1 << std::endl;
-		std::cout << "Error" << strg2 << std::endl;
-		std::cout << strg3 << std::endl;
-	      }
-	    return (1);
-	  }
-
-	  nids=0;
-	  std::set<HWIdentifier>::const_iterator first = ids.begin();
-	  std::set<HWIdentifier>::const_iterator last  = ids.end();
-	  for (;first != last && nids < m_module_vec.size(); ++first) {
-	    m_module_vec[nids] = (*first) ;
-	    nids++;
-	  }
-	  log << MSG::DEBUG << "[init_hashes()] > Module_size= " << m_module_vec.size() << endmsg;
-	}
-
-  // SubModule hash
-  // -----------
-	{
-	  m_submoduleHashMax = m_full_submodule_range.cardinality();
-	  m_submodule_vec.resize(m_submoduleHashMax);
-	  unsigned int nids = 0;
-	  std::set<HWIdentifier> ids;
-	  for (unsigned int i = 0; i < m_full_submodule_range.size(); ++i) {
-	    const Range& range = m_full_submodule_range[i];
-	    Range::const_identifier_factory first = range.factory_begin();
-	    Range::const_identifier_factory last  = range.factory_end();
-	    for (; first != last; ++first) {
-	      const ExpandedIdentifier& exp_id = (*first);
-	      HWIdentifier submod_id = submoduleId(exp_id[m_crate_index], exp_id[m_module_index], exp_id[m_submodule_index] ) ;
-
-	      if(!(ids.insert(submod_id)).second){
-		strm1 << nids;
-		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
-		strm3 << show_to_string(submod_id);
-		strg3 = " expanded Id= "+strm3.str();
-		if(m_msgSvc){
-		  log  << MSG::ERROR << strg1 << endmsg;
-		  log  << MSG::ERROR << strg3 << endmsg;
-		}
-		else{
-		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
-		  //std::cout << strg2 << std::endl;
-		  std::cout << strg3 << std::endl;
-		}
-	      }
-	      nids++;
-	    }
-	  }
-	  if(ids.size() != m_submoduleHashMax) {
-	    strm1 << ids.size();
-	    strm2 << m_submoduleHashMax;
-	    strg1 = "[init_hashes] >";
-	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
-	    strg3 = " hash max "+strm2.str();
-	    if(m_msgSvc)
-	      {
-		log << MSG::ERROR << strg1 << endmsg;
-		log << MSG::ERROR << strg2 << endmsg;
-		log << MSG::ERROR << strg3 << endmsg;
-	      }
-	    else
-	      {
-		std::cout << "TTOnlineID::" << strg1 << std::endl;
-		std::cout << "Error" << strg2 << std::endl;
-		std::cout << strg3 << std::endl;
-	      }
-	    return (1);
-	  }
-
-	  nids=0;
-	  std::set<HWIdentifier>::const_iterator first = ids.begin();
-	  std::set<HWIdentifier>::const_iterator last  = ids.end();
-	  for (;first != last && nids < m_submodule_vec.size(); ++first) {
-	    m_submodule_vec[nids] = (*first) ;
-	    nids++;
-	  }
-	  log << MSG::DEBUG << "[init_hashes()] > Submodule_size= " << m_submodule_vec.size() << endmsg;
-	}
-
-  // Channel hash
-  // -----------
-	{
-	  m_channelHashMax = m_full_channel_range.cardinality();
-	  m_channel_vec.resize(m_channelHashMax);
-	  unsigned int nids = 0;
-	  std::set<HWIdentifier> ids;
-	  for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
-	    const Range& range = m_full_channel_range[i];
-	    Range::const_identifier_factory first = range.factory_begin();
-	    Range::const_identifier_factory last  = range.factory_end();
-	    for (; first != last; ++first) {
-	      const ExpandedIdentifier& exp_id = (*first);
-	      HWIdentifier chan_id = channelId(exp_id[m_crate_index], exp_id[m_module_index], exp_id[m_submodule_index], exp_id[m_channel_index]) ;
-
-	      if(!(ids.insert(chan_id)).second){
-		strm1 << nids;
-		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
-		strm3 << show_to_string(chan_id);
-		strg3 = " expanded Id= "+strm3.str();
-		if(m_msgSvc){
-		  log  << MSG::ERROR << strg1 << endmsg;
-		  log  << MSG::ERROR << strg3 << endmsg;
-		}
-		else{
-		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
-		  std::cout << strg3 << std::endl;
-		}
-	      }
-	      nids++;
-	    }
-	  }
-	  if(ids.size() != m_channelHashMax) {
-	    strm1 << ids.size();
-	    strm2 << m_channelHashMax;
-	    strg1 = "[init_hashes] >";
-	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
-	    strg3 = " hash max "+strm2.str();
-	    if(m_msgSvc)
-	      {
-		log << MSG::ERROR << strg1 << endmsg;
-		log << MSG::ERROR << strg2 << endmsg;
-		log << MSG::ERROR << strg3 << endmsg;
-	      }
-	    else
-	      {
-		std::cout << "TTOnlineID::" << strg1 << std::endl;
-		std::cout << "Error" << strg2 << std::endl;
-		std::cout << strg3 << std::endl;
-	      }
-	    return (1);
-	  }
-
-	  nids=0;
-	  std::set<HWIdentifier>::const_iterator first = ids.begin();
-	  std::set<HWIdentifier>::const_iterator last  = ids.end();
-	  for (;first != last && nids < m_channel_vec.size(); ++first) {
-	    m_channel_vec[nids] = (*first) ;
-	    nids++;
-	  }
-	  log << MSG::DEBUG << "[init_hashes()] > Channel_size= " << m_channel_vec.size() << endmsg;
-	}
-  return (0);
-}
-
-
-
+#include "CaloIdentifier/TTOnlineID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "CxxUtils/StrFormat.h"
+#include "GaudiKernel/MsgStream.h"
+#include <algorithm>
+#include <string>
+#include <set>
+#include <stdio.h>
+#include <iostream>
+#include <math.h>
+#include <assert.h>
+
+using CxxUtils::strformat;
+
+
+TTOnlineID::TTOnlineID(void) :
+  m_calo_index(999),
+  m_detzside_index(999),
+  m_l1online_regions_index(999),
+  m_crate_index(999),
+  m_module_index(999),
+  m_submodule_index(999),
+  m_channel_index(999),
+  m_dict(0),
+  m_crateHashMax(0),
+  m_moduleHashMax(0),
+  m_submoduleHashMax(0),
+  m_channelHashMax(0),
+  m_iDetZSideFieldValue(-1)
+{
+
+}
+
+TTOnlineID:: ~TTOnlineID(){}
+
+
+IdContext TTOnlineID::crateContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_crate_index));
+}
+
+IdContext TTOnlineID::moduleContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_module_index));
+}
+
+IdContext TTOnlineID::submoduleContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_submodule_index));
+}
+
+IdContext TTOnlineID::channelContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_channel_index));
+}
+
+
+
+//==========================================================================
+int  TTOnlineID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+//==========================================================================
+{
+
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  std::string strg = "initialize_from_dictionary";
+  if(m_msgSvc) {
+    log << MSG::INFO << strg << endmsg;
+  }
+  else {
+    std::cout << strg << std::endl;
+  }
+
+  // Check whether this helper should be reinitialized
+  // -------------------------------------------------
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed"
+		    << endmsg;
+    return (0);
+  }
+  else {
+    log << MSG::DEBUG << "(Re)initialize" << endmsg;
+  }
+
+  // init base object
+  // ----------------
+  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)){
+    return (1);
+  }
+
+  m_dict = dict_mgr.find_dictionary("Calorimeter");
+
+  log << MSG::DEBUG << " => defined m_dict from find_dictionary(Calorimeter) = " << m_dict << endmsg;
+  if(!m_dict)
+    {
+      strg = " initialize_from_dictionary - cannot access Calorimeter dictionary";
+      if(m_msgSvc) {
+	//log << MSG::ERROR << strg << endmsg;
+      }
+      else
+	{
+	  std::cout << "TTOnlineID::" << strg << std::endl;
+	}
+      return 1;
+    }
+
+  // Register version of the dictionary used
+  // ---------------------------------------
+  if (register_dict_tag(dict_mgr, "Calorimeter")) return(1);
+
+  // initialize dictionary version
+  // -----------------------------
+  AtlasDetectorID::setDictVersion(dict_mgr, "Calorimeter");
+
+
+  // Initialize the field indices
+  // --------------------------------------
+  if(initLevelsFromDict()) return (1);
+
+  /* Find value for the field Calorimeter */
+  // ---------------------------------------
+  const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS");
+  int caloValue   = -1;
+  if (atlasDict->get_label_value("subdet", "Calorimeter", caloValue)) {
+    std::stringstream strm;
+    strm << atlasDict->m_name;
+    strg= " Could not get value for label 'Calorimeter' of field 'subdet' in dictionary "+strm.str();
+    if(m_msgSvc){
+      log << MSG::ERROR << strg << endmsg;
+    }
+    else{
+      std::cout << "TTOnlineID:" << strg << std::endl;
+    }
+    return (1);
+  }
+  log << MSG::DEBUG << "[init_from_dictionary] > caloValue = "<< caloValue << endmsg;
+
+  /* Find values for the fake field DetZside */
+  // --------------------------------------
+
+  // retrieve the calo tag from the DB
+  std::string tag = m_dict->dict_tag();
+  bool oldTag = ( tag.size()==0 || tag == "CaloIdentifier-DC3-05" || tag == "CaloIdentifier-LVL1-01");
+  log << MSG::DEBUG << "Calorimeter dict. DB tag= " << tag << endmsg;
+
+  //int detzsideValue   = -1;
+  //if (m_dict->get_label_value("DetZside", "no_side", detzsideValue)) {
+  if (m_dict->get_label_value("DetZside", "no_side", m_iDetZSideFieldValue)) {
+    if (!oldTag) {
+      std::stringstream strm;
+      strm <<  m_dict->m_name;
+      strg = "WARNING : Could not get value for label 'DetZside' in dictionary "+strm.str();
+      if(m_msgSvc) {
+	log << MSG::INFO << strg << endmsg;
+      }
+      else{
+	std::cout << strg << std::endl;
+      }
+    }
+    return (0);
+  }
+  log << MSG::DEBUG << "[init_from_dictionary] > detzsideValue = "<< detzside_field_value() << endmsg;
+
+
+  // Set up id for tower and layer's range prefix
+  // ---------------------------------------------
+  //   Note: negative value is good enough to get multirange since the
+  //   regions are symmetric in +/-eta
+
+  ExpandedIdentifier reg_id;
+  reg_id.add(caloValue);
+  reg_id.add(detzside_field_value());
+
+  Range prefix;
+  m_full_crate_range     = m_dict->build_multirange(reg_id, prefix, "crate");
+  m_full_module_range    = m_dict->build_multirange(reg_id, prefix, "module");
+  m_full_submodule_range = m_dict->build_multirange(reg_id, prefix, "submodule");
+  m_full_channel_range   = m_dict->build_multirange(reg_id, prefix, "channel");
+
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  Crate range -> "
+      << (std::string)m_full_crate_range << endmsg;
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  Module range -> "
+      << (std::string)m_full_module_range << endmsg;
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  SubModule range -> "
+      << (std::string)m_full_submodule_range << endmsg;
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  Channel range -> "
+      << (std::string)m_full_channel_range << endmsg;
+
+
+  // Setup the hash tables
+  // --------------------------------------
+  if(init_hashes()) return (1);
+  return 0;
+}
+
+
+//=====================================================================================
+int TTOnlineID::get_expanded_id  (const HWIdentifier& id, ExpandedIdentifier& exp_id,
+				     const IdContext* context) const
+//=====================================================================================
+{
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  // We assume that the context is >= region
+  exp_id.clear();
+  exp_id << calo_field_value();
+  exp_id << detzside_field_value();
+  if(context && context->end_index() >= m_crate_index) {
+    exp_id << crate(id);
+    if(context->end_index() >= m_module_index) {
+      exp_id << module(id);
+      if(context->end_index() >= m_submodule_index) {
+				exp_id << submodule(id);
+				if(context->end_index() >= m_channel_index)
+					exp_id << channel(id);
+      }
+    }
+  }
+  return (0);
+}
+
+
+//=====================================================================================
+void TTOnlineID::channel_Id_checks   ( int crate, int module, int submodule, int channel  ) const
+//=====================================================================================
+{
+  // Fill expanded id
+  ExpandedIdentifier id(calo_exp());
+  id << detzside_field_value() << crate << module << submodule << channel;
+  if( id.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in TTOnlineID::channel_Id_checks(field values), did not build, " +
+      strformat ("crate: %d , module: %d, submodule: %d , channel: %d ",
+                 crate , module , submodule, channel);
+    throw CaloID_Exception(errorMessage , 2);
+  }
+  if (!m_full_channel_range.match(id)) {
+    std::string errorMessage = "[TTOnlineID]::channnelId() result is not OK: ID, range = "
+      + std::string(id) + " , " + (std::string)m_full_channel_range;
+    throw CaloID_Exception(errorMessage , 2);
+  }
+}
+
+/* ================================================================*/
+void TTOnlineID::channel_Id_checks   ( const HWIdentifier submoduleId, int channel ) const
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+    ExpandedIdentifier expId;
+    IdContext context = submoduleContext();
+    if (get_expanded_id(submoduleId, expId, &context)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID = "
+	    + show_to_string(submoduleId) ;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+
+    expId << channel;
+    if (!m_full_channel_range.match(expId)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+}
+
+/* ================================================================*/
+void TTOnlineID::channel_Id_checks   ( const HWIdentifier moduleId, int submodule, int channel ) const
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+    ExpandedIdentifier expId;
+    IdContext context = moduleContext();
+    if (get_expanded_id(moduleId, expId, &context)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(moduleId) result is not OK: ID = "
+	    + show_to_string(moduleId) ;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+
+    expId << submodule << channel;
+    if (!m_full_channel_range.match(expId)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+}
+
+/* ================================================================*/
+void TTOnlineID::channel_Id_checks   ( const HWIdentifier crateId, int module, int submodule, int channel ) const
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+    ExpandedIdentifier expId;
+    IdContext context = crateContext();
+    if (get_expanded_id(crateId, expId, &context)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(crateId) result is not OK: ID = "
+	    + show_to_string(crateId) ;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+
+    expId << module << submodule << channel;
+    if (!m_full_channel_range.match(expId)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(crateId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+}
+
+/* ================================================================*/
+void TTOnlineID::submodule_Id_checks( int crate, int module, int submodule ) const
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(calo_exp());
+  expId << detzside_field_value() << crate <<  module << submodule;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in TTOnlineID::submodule_Id_checks, values ok but did not build, "+
+      strformat ("crate: %d , module: %d , submodule: %d",
+                 crate , module, submodule);
+    throw CaloID_Exception(errorMessage , 99);
+  }
+  if (!m_full_submodule_range.match(expId)) { std::string errorMessage = "TTOnlineID::submodule_Id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_submodule_range;
+    throw CaloID_Exception(errorMessage , 99);
+  }
+}
+
+/* ================================================================*/
+void TTOnlineID::module_Id_checks( int crate, int module ) const
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(calo_exp());
+  expId << detzside_field_value() << crate << module;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in TTOnlineID::module_Id_checks, values ok but did not build, " +
+      strformat ("crate: %d , module: %d", crate , module);
+    throw CaloID_Exception(errorMessage , 99);
+  }
+  if (!m_full_module_range.match(expId)) { std::string errorMessage = "TTOnlineID::module_Id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_module_range;
+    throw CaloID_Exception(errorMessage , 99);
+  }
+}
+
+/* ================================================================*/
+void TTOnlineID::crate_Id_checks( int crate ) const
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(calo_exp());
+  expId << detzside_field_value() << crate;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in TTOnlineID::crate_Id_checks, values ok but did not build, " +
+      strformat ("crate: %d", crate);
+    throw CaloID_Exception(errorMessage , 99);
+  }
+  if (!m_full_crate_range.match(expId)) { std::string errorMessage = "TTOnlineID::crate_Id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_crate_range;
+    throw CaloID_Exception(errorMessage , 99);
+  }
+}
+
+
+//=========================================================
+int TTOnlineID::initLevelsFromDict(void)
+//=========================================================
+{
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  log << MSG::DEBUG  << "[initLevelsFromDict] (0) Entering routine... " << endmsg;
+
+  if(!m_dict) {
+    log << MSG::INFO  << "TTOnlineID::initLevelsFromDict - dictionary NOT initialized "
+              << endmsg ;
+    return (1);
+  }
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] (1) m_dict OK ... " << endmsg;
+
+  // Find out which identifier field corresponds to each level.
+  // ----------------------------------------------------------
+  m_calo_index                = 999 ;
+  m_detzside_index            = 999 ;
+  m_crate_index               = 999 ;
+  m_module_index              = 999 ;
+  m_submodule_index           = 999 ;
+  m_channel_index             = 999 ;
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] (2) data member initialization OK ... "  << endmsg;
+
+  // retrieve the calo tag from the DB
+  std::string tag = m_dict->dict_tag();
+  bool oldTag = ( tag.size()==0 || tag == "CaloIdentifier-DC3-05" || tag == "CaloIdentifier-LVL1-01");
+  log << MSG::DEBUG << "Calorimeter dict. DB tag= " << tag << endmsg;
+
+  // Save index to a Online LVL1 region for unpacking - search with region name
+  IdDictRegion* reg = m_dict->find_region("PPM_Crate-00");
+  if (reg) {
+      m_l1online_regions_index = reg->m_index;}
+  else {
+    if(!oldTag) log << MSG::INFO  << "WARNING : TTOnlineID::initLevelsFromDict - unable to find 'PPM_Crate-00' region" << endmsg;
+    return (0);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (3) region 'PPM_Crate-00' found OK ... " << m_l1online_regions_index << endmsg;
+
+  // Look for Fields...
+  // ------------------
+  IdDictField* field = m_dict->find_field("subdet") ;
+  if (field) {
+    m_calo_index = field->m_index;}
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'Calo' field "
+              << endmsg ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (4) field 'Calo' found OK "  << endmsg;
+
+
+  field = m_dict->find_field("DetZside") ;
+  if (field) {
+    m_detzside_index = field->m_index ;}
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'DetZside' field "
+              << endmsg ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (5) field 'DetZside' found OK "  << endmsg;
+
+
+  field = m_dict->find_field("crate") ;
+  if (field) {
+    m_crate_index = field->m_index ;}
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'crate' field "
+              << endmsg ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (6) field 'crate' found OK "  << endmsg;
+
+  field = m_dict->find_field("module") ;
+  if (field) {
+    m_module_index = field->m_index ;
+  }
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'module' field "
+              << endmsg ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (7) field 'module' found OK "  << endmsg;
+
+  field = m_dict->find_field("submodule") ;
+  if (field) {
+    m_submodule_index = field->m_index ;
+  }
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'submodule' field " << endmsg ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (8) field 'submodule' found OK "  << endmsg;
+
+  field = m_dict->find_field("channel") ;
+  if (field) {
+    m_channel_index = field->m_index ;
+  }
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'channel' field " << endmsg;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (9) field 'channel' found OK "  << endmsg;
+
+
+  // Set the field implementation
+  // ------------------------------
+  const IdDictRegion& region = *m_dict->m_regions[m_l1online_regions_index];
+  log << MSG::DEBUG  << "[initLevelsFromDict] (10) found levels: " << endmsg ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > subdet         " << m_calo_index           << endmsg ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > detzside       " << m_detzside_index  << endmsg ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > crate          " << m_crate_index          << endmsg ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > module         " << m_module_index         << endmsg ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > submodule      " << m_submodule_index      << endmsg ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > channel        " << m_channel_index        << endmsg ;
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...fields implementation... " << endmsg;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_calo_index " << endmsg;
+  m_calo_impl          = region.m_implementation[m_calo_index];
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_det_side_index " << endmsg;
+  m_calo_detzside_impl = region.m_implementation[m_detzside_index];
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_crate_index " << endmsg;
+  m_crate_impl     = region.m_implementation[m_crate_index];
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_module_index " << endmsg;
+  m_module_impl     = region.m_implementation[m_module_index];
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_submodule_index " << endmsg;
+  m_submodule_impl   = region.m_implementation[m_submodule_index];
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_channel_index " << endmsg;
+  m_channel_impl   = region.m_implementation[m_channel_index];
+
+  if (!m_quiet) {
+    log << MSG::DEBUG  << "[initLevelsFromDict] (11) decode index and bit fields for each level: " << endmsg;
+    log << MSG::DEBUG  << "[initLevelsFromDict] > calo          " << m_calo_impl.show_to_string() << endmsg;
+    log << MSG::DEBUG  << "[initLevelsFromDict] > detzside  "  << m_calo_detzside_impl.show_to_string() << endmsg;
+    log << MSG::DEBUG  << "[initLevelsFromDict] > crate         " << m_crate_impl.show_to_string()  << endmsg;
+    log << MSG::DEBUG  << "[initLevelsFromDict] > module        " << m_module_impl.show_to_string() << endmsg;
+    log << MSG::DEBUG  << "[initLevelsFromDict] > submodule     " << m_submodule_impl.show_to_string()  << endmsg;
+    log << MSG::DEBUG  << "[initLevelsFromDict] > channel       " << m_channel_impl.show_to_string()  << endmsg;
+  }
+
+  return(0) ;
+}
+
+
+//=====================================================
+int  TTOnlineID::init_hashes(void)
+//=====================================================
+{
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  std::stringstream strm1;
+  std::stringstream strm2;
+  std::stringstream strm3;
+  std::string strg1;
+  std::string strg2;
+  std::string strg3;
+
+  // Crate hash
+  // -----------
+	{
+	  m_crateHashMax = m_full_crate_range.cardinality();
+	  m_crate_vec.resize(m_crateHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_crate_range.size(); ++i) {
+	    const Range& range = m_full_crate_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier cra_id = crateId( exp_id[m_crate_index] ) ;
+
+	      if(!(ids.insert(cra_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(cra_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endmsg;
+		  log  << MSG::ERROR << strg3 << endmsg;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_crateHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_crateHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endmsg;
+		log << MSG::ERROR << strg2 << endmsg;
+		log << MSG::ERROR << strg3 << endmsg;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_crate_vec.size(); ++first) {
+	    m_crate_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Crate_size= " << m_crate_vec.size() << endmsg;
+	}
+
+  // Module hash
+  // -----------
+	{
+	  m_moduleHashMax = m_full_module_range.cardinality();
+	  m_module_vec.resize(m_moduleHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_module_range.size(); ++i) {
+	    const Range& range = m_full_module_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier mod_id = moduleId(exp_id[m_crate_index], exp_id[m_module_index] ) ;
+
+	      if(!(ids.insert(mod_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(mod_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endmsg;
+		  log  << MSG::ERROR << strg3 << endmsg;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_moduleHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_moduleHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endmsg;
+		log << MSG::ERROR << strg2 << endmsg;
+		log << MSG::ERROR << strg3 << endmsg;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_module_vec.size(); ++first) {
+	    m_module_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Module_size= " << m_module_vec.size() << endmsg;
+	}
+
+  // SubModule hash
+  // -----------
+	{
+	  m_submoduleHashMax = m_full_submodule_range.cardinality();
+	  m_submodule_vec.resize(m_submoduleHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_submodule_range.size(); ++i) {
+	    const Range& range = m_full_submodule_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier submod_id = submoduleId(exp_id[m_crate_index], exp_id[m_module_index], exp_id[m_submodule_index] ) ;
+
+	      if(!(ids.insert(submod_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(submod_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endmsg;
+		  log  << MSG::ERROR << strg3 << endmsg;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  //std::cout << strg2 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_submoduleHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_submoduleHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endmsg;
+		log << MSG::ERROR << strg2 << endmsg;
+		log << MSG::ERROR << strg3 << endmsg;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_submodule_vec.size(); ++first) {
+	    m_submodule_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Submodule_size= " << m_submodule_vec.size() << endmsg;
+	}
+
+  // Channel hash
+  // -----------
+	{
+	  m_channelHashMax = m_full_channel_range.cardinality();
+	  m_channel_vec.resize(m_channelHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+	    const Range& range = m_full_channel_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier chan_id = channelId(exp_id[m_crate_index], exp_id[m_module_index], exp_id[m_submodule_index], exp_id[m_channel_index]) ;
+
+	      if(!(ids.insert(chan_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(chan_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endmsg;
+		  log  << MSG::ERROR << strg3 << endmsg;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_channelHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_channelHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endmsg;
+		log << MSG::ERROR << strg2 << endmsg;
+		log << MSG::ERROR << strg3 << endmsg;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_channel_vec.size(); ++first) {
+	    m_channel_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Channel_size= " << m_channel_vec.size() << endmsg;
+	}
+  return (0);
+}
+
+
+
diff --git a/Calorimeter/CaloIdentifier/src/TileTBID.cxx b/Calorimeter/CaloIdentifier/src/TileTBID.cxx
index 83aa0de738338e447a182e8f111203c67fadb9a2..69c16637aad6f7a2e7e9e2538f7ddc74c568aac0 100755
--- a/Calorimeter/CaloIdentifier/src/TileTBID.cxx
+++ b/Calorimeter/CaloIdentifier/src/TileTBID.cxx
@@ -486,10 +486,12 @@ int  TileTBID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
   m_full_module_range = m_dict->build_multirange(reg_id, prefix, "tbmodule");
   m_full_type_range   = m_dict->build_multirange(reg_id, prefix, "type");
 
-  log << MSG::DEBUG << "initialize_from_dict : "                                 << endmsg;
-  log << MSG::DEBUG << " type range -> "    << (std::string)m_full_type_range    << endmsg;
-  log << MSG::DEBUG << " module range -> "  << (std::string)m_full_module_range  << endmsg;
-  log << MSG::DEBUG << " channel range -> " << (std::string)m_full_channel_range << endmsg;
+  if (!m_quiet) {
+    log << MSG::DEBUG << "initialize_from_dict : "                                 << endmsg;
+    log << MSG::DEBUG << " type range -> "    << (std::string)m_full_type_range    << endmsg;
+    log << MSG::DEBUG << " module range -> "  << (std::string)m_full_module_range  << endmsg;
+    log << MSG::DEBUG << " channel range -> " << (std::string)m_full_channel_range << endmsg;
+  }
 
   // Setup the hash tables
   if(init_hashes()) return (1);
@@ -610,12 +612,14 @@ int TileTBID::initLevelsFromDict(void)
   m_system_impl.pack  (tile_field_value(),m_base_tile_type);
   m_section_impl.pack (TileTBID::TILE_TESTBEAM,m_base_tile_type);
 
-  log << MSG::DEBUG << "initLevelsFromDict decode index and bit fields for each level: "              << endmsg ;
-  log << MSG::DEBUG << " system   [" << m_SYSTEM_INDEX   << "]  " << m_system_impl.show_to_string()   << endmsg ;
-  log << MSG::DEBUG << " section  [" << m_SECTION_INDEX  << "]  " << m_section_impl.show_to_string()  << endmsg ;
-  log << MSG::DEBUG << " type     [" << m_TYPE_INDEX     << "]  " << m_type_impl.show_to_string()     << endmsg ;
-  log << MSG::DEBUG << " module   [" << m_MODULE_INDEX   << "]  " << m_module_impl.show_to_string()   << endmsg ;
-  log << MSG::DEBUG << " channel  [" << m_CHANNEL_INDEX  << "]  " << m_channel_impl.show_to_string()  << endmsg ;
+  if (!m_quiet) {
+    log << MSG::DEBUG << "initLevelsFromDict decode index and bit fields for each level: "              << endmsg ;
+    log << MSG::DEBUG << " system   [" << m_SYSTEM_INDEX   << "]  " << m_system_impl.show_to_string()   << endmsg ;
+    log << MSG::DEBUG << " section  [" << m_SECTION_INDEX  << "]  " << m_section_impl.show_to_string()  << endmsg ;
+    log << MSG::DEBUG << " type     [" << m_TYPE_INDEX     << "]  " << m_type_impl.show_to_string()     << endmsg ;
+    log << MSG::DEBUG << " module   [" << m_MODULE_INDEX   << "]  " << m_module_impl.show_to_string()   << endmsg ;
+    log << MSG::DEBUG << " channel  [" << m_CHANNEL_INDEX  << "]  " << m_channel_impl.show_to_string()  << endmsg ;
+  }
 
   return(0) ;
 }
diff --git a/Calorimeter/CaloIdentifier/src/Tile_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/Tile_Base_ID.cxx
index ae9cf305eddc928cb63021c231fd22f0b630d6f8..21c78f22449820acfd027b43149cfe53b71e473f 100755
--- a/Calorimeter/CaloIdentifier/src/Tile_Base_ID.cxx
+++ b/Calorimeter/CaloIdentifier/src/Tile_Base_ID.cxx
@@ -1266,13 +1266,15 @@ Tile_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
     m_full_region_range.remove_range(reg_id);
   }
 
-  log << MSG::DEBUG << "initialize_from_dict : "                                << endmsg;
-  log << MSG::DEBUG << " region range -> "  << (std::string)m_full_region_range << endmsg;
-  log << MSG::DEBUG << " module range -> "  << (std::string)m_full_module_range << endmsg;
-  log << MSG::DEBUG << " tower range ->  "  << (std::string)m_full_tower_range  << endmsg;
-  log << MSG::DEBUG << " cell range ->   "  << (std::string)m_full_cell_range   << endmsg;
-  log << MSG::DEBUG << " pmt range ->    "  << (std::string)m_full_pmt_range    << endmsg;
-  log << MSG::DEBUG << " adc range ->    "  << (std::string)m_full_adc_range    << endmsg;
+  if (!m_quiet) {
+    log << MSG::DEBUG << "initialize_from_dict : "                                << endmsg;
+    log << MSG::DEBUG << " region range -> "  << (std::string)m_full_region_range << endmsg;
+    log << MSG::DEBUG << " module range -> "  << (std::string)m_full_module_range << endmsg;
+    log << MSG::DEBUG << " tower range ->  "  << (std::string)m_full_tower_range  << endmsg;
+    log << MSG::DEBUG << " cell range ->   "  << (std::string)m_full_cell_range   << endmsg;
+    log << MSG::DEBUG << " pmt range ->    "  << (std::string)m_full_pmt_range    << endmsg;
+    log << MSG::DEBUG << " adc range ->    "  << (std::string)m_full_adc_range    << endmsg;
+  }
     
   // Setup the hash tables
   if(init_hashes()) return (1);
@@ -1733,15 +1735,17 @@ int Tile_Base_ID::initLevelsFromDict (const std::string& group_name)
   m_pmt_impl     = region.m_implementation[m_PMT_INDEX]; 
   m_adc_impl     = region.m_implementation[m_ADC_INDEX]; 
 
-  log << MSG::DEBUG << "initLevelsFromDict decode index and bit fields for each level: "              << endmsg ;
-  log << MSG::DEBUG << " system   [" << m_SYSTEM_INDEX   << "]  " << m_system_impl.show_to_string()   << endmsg ;
-  log << MSG::DEBUG << " section  [" << m_SECTION_INDEX  << "]  " << m_section_impl.show_to_string()  << endmsg ;
-  log << MSG::DEBUG << " side     [" << m_SIDE_INDEX     << "]  " << m_side_impl.show_to_string()     << endmsg ;
-  log << MSG::DEBUG << " module   [" << m_MODULE_INDEX   << "]  " << m_module_impl.show_to_string()   << endmsg ;
-  log << MSG::DEBUG << " tower    [" << m_TOWER_INDEX    << "]  " << m_tower_impl.show_to_string()    << endmsg ;
-  log << MSG::DEBUG << " sampling [" << m_SAMPLE_INDEX   << "]  " << m_sample_impl.show_to_string()   << endmsg ;
-  log << MSG::DEBUG << " pmt      [" << m_PMT_INDEX      << "]  " << m_pmt_impl.show_to_string()      << endmsg ;
-  log << MSG::DEBUG << " adc      [" << m_ADC_INDEX      << "]  " << m_adc_impl.show_to_string()      << endmsg ;
+  if (!m_quiet) {
+    log << MSG::DEBUG << "initLevelsFromDict decode index and bit fields for each level: "              << endmsg ;
+    log << MSG::DEBUG << " system   [" << m_SYSTEM_INDEX   << "]  " << m_system_impl.show_to_string()   << endmsg ;
+    log << MSG::DEBUG << " section  [" << m_SECTION_INDEX  << "]  " << m_section_impl.show_to_string()  << endmsg ;
+    log << MSG::DEBUG << " side     [" << m_SIDE_INDEX     << "]  " << m_side_impl.show_to_string()     << endmsg ;
+    log << MSG::DEBUG << " module   [" << m_MODULE_INDEX   << "]  " << m_module_impl.show_to_string()   << endmsg ;
+    log << MSG::DEBUG << " tower    [" << m_TOWER_INDEX    << "]  " << m_tower_impl.show_to_string()    << endmsg ;
+    log << MSG::DEBUG << " sampling [" << m_SAMPLE_INDEX   << "]  " << m_sample_impl.show_to_string()   << endmsg ;
+    log << MSG::DEBUG << " pmt      [" << m_PMT_INDEX      << "]  " << m_pmt_impl.show_to_string()      << endmsg ;
+    log << MSG::DEBUG << " adc      [" << m_ADC_INDEX      << "]  " << m_adc_impl.show_to_string()      << endmsg ;
+  }
   
   return(0) ;
 }
diff --git a/Calorimeter/CaloIdentifier/test/CaloHelpersTest_test.cxx b/Calorimeter/CaloIdentifier/test/CaloHelpersTest_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..1503e3f02e7217dc9ca780b4c30d6002f46f5a70
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/CaloHelpersTest_test.cxx
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration.
+ */
+/**
+ * @file CaloIdentifier/test/CaloHelpersTest_test.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jun, 2018
+ * @brief Unit test for CaloHelpersTest.
+ */
+
+
+#undef NDEBUG
+#include "CaloIdentifier/CaloHelpersTest.h"
+#include <iostream>
+#include <cassert>
+
+
+void test1()
+{
+  std::cout << "test1\n";
+  CaloHelpersTest idhelpers;
+  std::cout << "LArEM: "
+            << idhelpers.emID().channel_hash_max() << " "
+            << idhelpers.emID().region_hash_max() << "\n";
+  std::cout << "LArHEC: "
+            << idhelpers.hecID().channel_hash_max() << " "
+            << idhelpers.hecID().region_hash_max() << "\n";
+  std::cout << "LArFCAL: "
+            << idhelpers.fcalID().channel_hash_max() << " "
+            << idhelpers.fcalID().region_hash_max() << "\n";
+  std::cout << "LArMinifcal: "
+            << idhelpers.minifcalID().channel_hash_max() << " "
+            << idhelpers.minifcalID().region_hash_max() << "\n";
+  std::cout << "Tile: "
+            << idhelpers.tileID().channel_hash_max() << " "
+            << idhelpers.tileID().region_hash_max() << "\n";
+  std::cout << "calo: "
+            << idhelpers.caloID().calo_cell_hash_max() << " "
+            << idhelpers.caloID().calo_region_hash_max() << "\n";
+}
+
+
+int main()
+{
+  std::cout << "CaloIdentifier/CaloHelpersTest\n";
+  test1();
+  return 0;
+}
diff --git a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCClassification.h b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCClassification.h
index 1a3f4c412a3c104c6e6a3a3c049a74383bf3153c..8fd21fccafecd2b7867731753caba91c4800e28e 100644
--- a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCClassification.h
+++ b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCClassification.h
@@ -21,6 +21,8 @@
 class StoreGateSvc;
 
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "xAODCaloEvent/CaloClusterContainer.h"
+#include "StoreGate/ReadHandleKey.h"
 #include "GaudiKernel/HistoDef.h"
 #include <vector>
 #include <string>
@@ -108,7 +110,7 @@ class GetLCClassification : public AthAlgorithm
   /**
    * @brief Name of the CaloClusterContainer to use. */
 
-  std::string m_clusterCollName;
+  SG::ReadHandleKey<xAOD::CaloClusterContainer> m_clusterCollName;
 
   /** 
    * @brief string to choose different normalization types
diff --git a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCDeadMaterialTree.h b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCDeadMaterialTree.h
index 2e6d28e30f062605135df2dc731d0365488e2e84..9568904c0640b3dc0faf044aa683ed1bddc364d9 100644
--- a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCDeadMaterialTree.h
+++ b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCDeadMaterialTree.h
@@ -21,7 +21,7 @@ class StoreGateSvc;
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "xAODCaloEvent/CaloClusterContainer.h"
-//#include "CaloEvent/CaloClusterMoment.h"
+#include "StoreGate/ReadHandleKey.h"
 #include <vector>
 #include <string>
 
@@ -71,11 +71,11 @@ class GetLCDeadMaterialTree : public AthAlgorithm {
 
     /**
      * @brief Name of the uncalibrated CaloClusterContainer to use. */
-    std::string m_clusterCollName;
+    SG::ReadHandleKey<xAOD::CaloClusterContainer> m_clusterCollName;
 
     /**
      * @brief Name of the calibrated CaloClusterContainer to use. */
-    std::string m_clusterCollNameCalib;
+    SG::ReadHandleKey<xAOD::CaloClusterContainer> m_clusterCollNameCalib;
 
     /**
      * @brief Collection of dead material correction coeffitients */
diff --git a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCOutOfCluster.h b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCOutOfCluster.h
index 76d32cd6624204294b39b4367518486003be112c..fcfaf141597e45ba5a26d82b7b4986cf5ffacaf1 100644
--- a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCOutOfCluster.h
+++ b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCOutOfCluster.h
@@ -19,6 +19,8 @@
 
 
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "xAODCaloEvent/CaloClusterContainer.h"
+#include "StoreGate/ReadHandleKey.h"
 #include "GaudiKernel/HistoDef.h"
 #include <vector>
 #include <string>
@@ -108,7 +110,7 @@ class GetLCOutOfCluster : public AthAlgorithm
 
   /**
    * @brief Name of the CaloClusterContainer to use. */
-  std::string m_clusterCollName;
+  SG::ReadHandleKey<xAOD::CaloClusterContainer> m_clusterCollName;
 
   /** 
    * @brief vector of names of the calorimeter samplings not to use
diff --git a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCSinglePionsPerf.h b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCSinglePionsPerf.h
index 96f1eaa640e299858b5b6fd91950bcd2c8047d93..3aab3b543cdc98fa4d0137482d80e6f8e49f77b7 100644
--- a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCSinglePionsPerf.h
+++ b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCSinglePionsPerf.h
@@ -15,16 +15,15 @@
  */
 
 
+#include "xAODCaloEvent/CaloClusterContainer.h"
+#include "CaloSimEvent/CaloCalibrationHitContainer.h"
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "StoreGate/ReadHandleKeyArray.h"
+#include "StoreGate/ReadHandleKey.h"
 #include <vector>
 #include <string>
 #include <set>
 
-// #include "CaloEvent/CaloClusterMoment.h"
-// #include "CaloEvent/CaloClusterContainer.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "xAODCaloEvent/CaloClusterContainer.h"
-// #include "xAODCaloEvent/CaloClusterMoment.h"
 
 class StoreGateSvc;
 class AtlasDetectorID;
@@ -66,17 +65,14 @@ class GetLCSinglePionsPerf : public AthAlgorithm
     //CaloDepthTool* m_caloDepthTool;
     const CaloDmDescrManager *m_caloDmDescrManager;
 
-    std::string m_clusterBasicCollName;
-    std::vector<std::string > m_clusterCollNames;
+    SG::ReadHandleKey<xAOD::CaloClusterContainer> m_clusterBasicCollName;
+    SG::ReadHandleKeyArray<xAOD::CaloClusterContainer> m_clusterCollNames;
     std::string m_outputFileName;
     TFile * m_outputFile;
-    std::vector<std::string> m_CalibrationHitContainerNames;
-    std::vector<std::string> m_DMCalibrationHitContainerNames;
+    SG::ReadHandleKeyArray<CaloCalibrationHitContainer> m_CalibrationHitContainerNames;
+    SG::ReadHandleKeyArray<CaloCalibrationHitContainer> m_DMCalibrationHitContainerNames;
     moment_name_vector m_validMoments;
 
-//     const DataHandle<CaloClusterContainer> pClusColl;
-    const DataHandle<xAOD::CaloClusterContainer> m_clusColl ;
-
     double m_distance_cut;
 
     int   m_netabin;
@@ -150,9 +146,12 @@ class GetLCSinglePionsPerf : public AthAlgorithm
     int m_mc_enerbin;
     int m_mc_phibin;
 
-    int fill_reco();
-    int fill_moments();
-    int fill_calibhits();
+    int fill_reco (const xAOD::CaloClusterContainer& clusColl,
+                   const EventContext& ctx);
+    int fill_moments (const xAOD::CaloClusterContainer& clusColl,
+                      const EventContext& ctx);
+    int fill_calibhits (const xAOD::CaloClusterContainer& clusColl,
+                        const EventContext& ctx);
 
 };
 
diff --git a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCWeights.h b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCWeights.h
index bfaffe573df11d5db46632283dc71cbc5e006390..510b6dbecce47dfa1f43035ac0c4c33410fae671 100644
--- a/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCWeights.h
+++ b/Calorimeter/CaloLocalHadCalib/CaloLocalHadCalib/GetLCWeights.h
@@ -18,7 +18,11 @@
  * clusters. */
 
 #include "GaudiKernel/HistoDef.h"
+#include "CaloSimEvent/CaloCalibrationHitContainer.h"
+#include "xAODCaloEvent/CaloClusterContainer.h"
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "StoreGate/ReadHandleKey.h"
+#include "StoreGate/ReadHandleKeyArray.h"
 #include <vector>
 #include <string>
 
@@ -125,14 +129,14 @@ class GetLCWeights : public AthAlgorithm
   /**
    * @brief Name of the CaloClusterContainer to use. */
 
-  std::string m_clusterCollName;
+  SG::ReadHandleKey<xAOD::CaloClusterContainer> m_clusterCollName;
 
   /** 
    * @brief vector of calibration hit container names to use. 
    *
    * The containers specified in this property should hold calibration
    * hits inside the calorimeter systems. */
-  std::vector<std::string> m_CalibrationHitContainerNames;
+  SG::ReadHandleKeyArray<CaloCalibrationHitContainer> m_CalibrationHitContainerNames;
 
   /** 
    * @brief flag to switch on/off the use of the inversion method
diff --git a/Calorimeter/CaloLocalHadCalib/src/GetLCClassification.cxx b/Calorimeter/CaloLocalHadCalib/src/GetLCClassification.cxx
index 98324b0b41928b9d01ec8aadef1810908cf45732..0e6a42275e42ad497105f2886f4640084091bc35 100644
--- a/Calorimeter/CaloLocalHadCalib/src/GetLCClassification.cxx
+++ b/Calorimeter/CaloLocalHadCalib/src/GetLCClassification.cxx
@@ -26,6 +26,7 @@
 //---------------
 #include "CaloLocalHadCalib/GetLCDefs.h"
 #include "xAODCaloEvent/CaloClusterContainer.h"
+#include "StoreGate/ReadHandle.h"
 
 #include "AthenaKernel/errorcheck.h"
 #include "GaudiKernel/ISvcLocator.h"
@@ -225,6 +226,8 @@ StatusCode GetLCClassification::initialize()
       }
     }
   }
+
+  ATH_CHECK( m_clusterCollName.initialize() );
   
   return StatusCode::SUCCESS;
 }
@@ -247,14 +250,7 @@ StatusCode GetLCClassification::finalize()
 
 StatusCode GetLCClassification::execute()
 {
-  const DataHandle<xAOD::CaloClusterContainer> cc ;
-  StatusCode sc = evtStore()->retrieve(cc,m_clusterCollName);
-
-  if(sc != StatusCode::SUCCESS) {
-    ATH_MSG_ERROR( "Could not retrieve ClusterContainer " 
-                   << m_clusterCollName << " from StoreGate"  );
-    return sc;
-  }
+  SG::ReadHandle<xAOD::CaloClusterContainer> cc (m_clusterCollName);
 
   // total calib hit energy of all clusters 
   double eCalibTot(0.); 
diff --git a/Calorimeter/CaloLocalHadCalib/src/GetLCDeadMaterialTree.cxx b/Calorimeter/CaloLocalHadCalib/src/GetLCDeadMaterialTree.cxx
index 8a69f9c78f1f73c80005d516236dbc525a274f04..0e414a5cb94188291f573e5248b26b5b15948da2 100644
--- a/Calorimeter/CaloLocalHadCalib/src/GetLCDeadMaterialTree.cxx
+++ b/Calorimeter/CaloLocalHadCalib/src/GetLCDeadMaterialTree.cxx
@@ -46,6 +46,7 @@
 //#include "CaloEvent/CaloClusterMoment.h"
 #include "TBEvent/TBEventInfo.h"
 #include "CaloLocalHadCalib/GetLCSinglePionsPerf.h"
+#include "StoreGate/ReadHandle.h"
 
 #include "TFile.h"
 #include "TTree.h"
@@ -171,6 +172,14 @@ StatusCode GetLCDeadMaterialTree::initialize()
 
   m_outputTree = m_data->MakeTree("DeadMaterialTree");
 
+  ATH_CHECK( m_clusterCollName.initialize() );
+  if (m_doSaveCalibClusInfo) {
+    ATH_CHECK( m_clusterCollNameCalib.initialize() );
+  }
+  else {
+    m_clusterCollNameCalib = "";
+  }
+
   return StatusCode::SUCCESS;
 }
 
@@ -201,19 +210,7 @@ StatusCode GetLCDeadMaterialTree::execute()
   /* ********************************************
   access to cluster container
   ******************************************** */
-  const DataHandle<xAOD::CaloClusterContainer> pClusColl;
-  ATH_CHECK( evtStore()->retrieve(pClusColl,m_clusterCollName) );
-
-  const DataHandle<xAOD::CaloClusterContainer> pClusCollCalib;
-  if(m_doSaveCalibClusInfo) {
-    ATH_CHECK( evtStore()->retrieve(pClusCollCalib,m_clusterCollNameCalib) );
-
-    if(pClusColl->size() != pClusCollCalib->size()) {
-      ATH_MSG_WARNING( "Different size of calibrated and uncalibrated cluster collection " 
-                       << pClusColl->size() << " " << pClusCollCalib->size()  );
-      return StatusCode::SUCCESS;
-    }
-  }
+  SG::ReadHandle<xAOD::CaloClusterContainer> pClusColl (m_clusterCollName);
 
   /* ********************************************
   reading TBEventInfo
@@ -308,6 +305,13 @@ StatusCode GetLCDeadMaterialTree::execute()
     }
 
     if(m_doSaveCalibClusInfo) {
+      SG::ReadHandle<xAOD::CaloClusterContainer> pClusCollCalib (m_clusterCollNameCalib);
+      if(pClusColl->size() != pClusCollCalib->size()) {
+        ATH_MSG_WARNING( "Different size of calibrated and uncalibrated cluster collection " 
+                         << pClusColl->size() << " " << pClusCollCalib->size()  );
+        return StatusCode::SUCCESS;
+      }
+
       const xAOD::CaloCluster * theClusterCalib = pClusCollCalib->at(iClus);
 
       // reco status
diff --git a/Calorimeter/CaloLocalHadCalib/src/GetLCOutOfCluster.cxx b/Calorimeter/CaloLocalHadCalib/src/GetLCOutOfCluster.cxx
index e4c49dca8edb4e6ff4e3481d23e4fceb3def47d6..b607393bcdbc7b12a5c401d45f53098a6d1dabbd 100644
--- a/Calorimeter/CaloLocalHadCalib/src/GetLCOutOfCluster.cxx
+++ b/Calorimeter/CaloLocalHadCalib/src/GetLCOutOfCluster.cxx
@@ -27,6 +27,7 @@
 #include "CaloLocalHadCalib/GetLCDefs.h"
 #include "xAODCaloEvent/CaloClusterContainer.h"
 #include "CaloUtils/CaloSamplingHelper.h"
+#include "StoreGate/ReadHandle.h"
 
 #include "AthenaKernel/errorcheck.h"
 
@@ -255,6 +256,8 @@ StatusCode GetLCOutOfCluster::initialize() {
     msg() << " " << *samplingIter;
   msg() << endmsg;
 
+  ATH_CHECK( m_clusterCollName.initialize() );
+
   return StatusCode::SUCCESS;
 }
 
@@ -276,23 +279,13 @@ StatusCode GetLCOutOfCluster::finalize()
 
 StatusCode GetLCOutOfCluster::execute()
 {
-  const DataHandle<xAOD::CaloClusterContainer> cc ;
-  StatusCode sc = evtStore()->retrieve(cc,m_clusterCollName);
-
-  if(sc != StatusCode::SUCCESS) {
-    ATH_MSG_ERROR( "Could not retrieve ClusterContainer " 
-	<< m_clusterCollName << " from StoreGate" );
-    return sc;
-  }
+  SG::ReadHandle<xAOD::CaloClusterContainer> cc (m_clusterCollName);
 
   // total calib hit energy of all clusters 
   double eCalibTot(0.); 
   double nClusECalibGt0 = 0.0;
 
-  xAOD::CaloClusterContainer::const_iterator clusIter = cc->begin();
-  xAOD::CaloClusterContainer::const_iterator clusIterEnd = cc->end();
-  for( ;clusIter!=clusIterEnd;clusIter++) {
-    const xAOD::CaloCluster * theCluster = (*clusIter);      
+  for (const xAOD::CaloCluster* theCluster : *cc) {
     double eC=999; 
     if (!theCluster->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_TOT,eC)) {
       ATH_MSG_ERROR( "Failed to retrieve cluster moment ENG_CALIB_TOT" );
@@ -318,9 +311,7 @@ StatusCode GetLCOutOfCluster::execute()
   if ( eCalibTot > 0 ) {
     const double inv_eCalibTot = 1. / eCalibTot;
     const double inv_nClusECalibGt0 = 1. / nClusECalibGt0;
-    clusIter = cc->begin();
-    for( ;clusIter!=clusIterEnd;clusIter++) {
-      const xAOD::CaloCluster * pClus = (*clusIter);
+    for (const xAOD::CaloCluster* pClus : *cc) {
       double eng = pClus->e();
 
       if ( m_ClassificationTypeNumber != GetLCDefs::NONE ) {
diff --git a/Calorimeter/CaloLocalHadCalib/src/GetLCSinglePionsPerf.cxx b/Calorimeter/CaloLocalHadCalib/src/GetLCSinglePionsPerf.cxx
index bb0c031fa6572d4a54cd72a79f417a4fa16131a1..87dce0aa44502803d0cc414fc5d7504b7fe51a35 100644
--- a/Calorimeter/CaloLocalHadCalib/src/GetLCSinglePionsPerf.cxx
+++ b/Calorimeter/CaloLocalHadCalib/src/GetLCSinglePionsPerf.cxx
@@ -478,6 +478,10 @@ StatusCode GetLCSinglePionsPerf::initialize()
 
   delete [] xbins;
 
+  ATH_CHECK( m_clusterBasicCollName.initialize() );
+  ATH_CHECK( m_CalibrationHitContainerNames.initialize() );
+  ATH_CHECK( m_DMCalibrationHitContainerNames.initialize() );
+
   return StatusCode::SUCCESS;
 }
 
@@ -660,7 +664,9 @@ StatusCode GetLCSinglePionsPerf::finalize()
 
 **************************************************************************** */
 StatusCode GetLCSinglePionsPerf::execute()
-{ 
+{
+  const EventContext& ctx = getContext();
+
   /* ********************************************
   reading TBEventInfo
   ******************************************** */
@@ -704,8 +710,8 @@ StatusCode GetLCSinglePionsPerf::execute()
 
   if(m_mc_etabin <0 || m_mc_etabin >= m_netabin || m_mc_enerbin <0 || m_mc_enerbin >= m_nlogenerbin || m_mc_phibin !=0) return StatusCode::SUCCESS;
 
-  ATH_CHECK(  evtStore()->retrieve(m_clusColl, m_clusterBasicCollName ) );
-  if(m_clusColl->size() == 0)  {
+  SG::ReadHandle<xAOD::CaloClusterContainer> clusColl (m_clusterBasicCollName, ctx);
+  if(clusColl->size() == 0)  {
     ATH_MSG_WARNING( "Empty ClusterContainer "  <<  m_clusterBasicCollName  );
     return StatusCode::SUCCESS;
   }
@@ -716,11 +722,7 @@ StatusCode GetLCSinglePionsPerf::execute()
     float engClusCalibThs = 1.0*MeV;
     HepLorentzVector hlv_pion(1,0,0,1);
     hlv_pion.setREtaPhi(1./cosh(m_mc_eta),m_mc_eta,m_mc_phi);
-    xAOD::CaloClusterContainer::const_iterator clusIter = m_clusColl->begin();
-    xAOD::CaloClusterContainer::const_iterator clusIterEnd = m_clusColl->end();
-    for( ;clusIter!=clusIterEnd;clusIter++) {
-      const xAOD::CaloCluster * theCluster = (*clusIter); // this collection has cluster moments
-// 
+    for (const xAOD::CaloCluster* theCluster : *clusColl) {
       double mx_calib_tot;
       if( !theCluster->retrieveMoment( xAOD::CaloCluster::ENG_CALIB_TOT, mx_calib_tot) ) {
         ATH_MSG_ERROR( "Moment ENG_CALIB_TOT is absent"   );
@@ -757,15 +759,15 @@ StatusCode GetLCSinglePionsPerf::execute()
   }
 
   if(m_doEngRecOverTruth || m_doEngTag || m_doEngRecSpect || m_doEngNoiseClus){
-    fill_reco();
+    fill_reco (*clusColl, ctx);
   }
 
   if(m_doClusMoments) {
-    fill_moments();
+    fill_moments (*clusColl, ctx);
   }
 
   if(m_doCalibHitsValidation) {
-    fill_calibhits();
+    fill_calibhits (*clusColl, ctx);
   }
 
   return StatusCode::SUCCESS;
@@ -778,16 +780,16 @@ StatusCode GetLCSinglePionsPerf::execute()
 + classification performance
 + noise clusters
 **************************************************************************** */
-int GetLCSinglePionsPerf::fill_reco()
+int GetLCSinglePionsPerf::fill_reco (const xAOD::CaloClusterContainer& clusColl,
+                                     const EventContext& ctx)
 {
   /* ********************************************
   reading cluster collections for each calibration level
   ******************************************** */
   std::vector<const xAOD::CaloClusterContainer *> clusCollVector;
-  for(std::vector<std::string >::iterator it=m_clusterCollNames.begin(); it!=m_clusterCollNames.end(); it++){    
-    const DataHandle<xAOD::CaloClusterContainer> pColl;
-    ATH_CHECK( evtStore()->retrieve(pColl, (*it) ), -1 );
-    clusCollVector.push_back(pColl);
+  for (const SG::ReadHandleKey<xAOD::CaloClusterContainer> & k : m_clusterCollNames) {
+    SG::ReadHandle<xAOD::CaloClusterContainer> pColl (k, ctx);
+    clusCollVector.push_back(pColl.cptr());
   }
 
   HepLorentzVector hlv_pion(1,0,0,1);
@@ -806,12 +808,9 @@ int GetLCSinglePionsPerf::fill_reco()
   engClusSumCalibTagged.resize(m_ntagcases, 0.0);
 
   int nGoodClus = 0;
-  xAOD::CaloClusterContainer::const_iterator clusIter = m_clusColl->begin();
-  xAOD::CaloClusterContainer::const_iterator clusIterEnd = m_clusColl->end();
-  unsigned int iClus = 0;
-  for( ;clusIter!=clusIterEnd;clusIter++,iClus++) {
-    const xAOD::CaloCluster * theCluster = (*clusIter); // this collection has cluster moments
-
+  unsigned int iClus = -1;
+  for (const xAOD::CaloCluster* theCluster : clusColl) {
+    ++iClus;
     double mx_calib_tot;
     if( !theCluster->retrieveMoment( xAOD::CaloCluster::ENG_CALIB_TOT, mx_calib_tot) ) {
       ATH_MSG_ERROR( "Moment ENG_CALIB_TOT is absent"   );
@@ -970,23 +969,22 @@ int GetLCSinglePionsPerf::fill_reco()
 /* ****************************************************************************
 to check moments assignment
 **************************************************************************** */
-int GetLCSinglePionsPerf::fill_moments()
+int GetLCSinglePionsPerf::fill_moments (const xAOD::CaloClusterContainer& clusColl,
+                                        const EventContext& ctx)
 {
   /* ********************************************
   reading calibration containers
   ******************************************** */
-  const DataHandle<CaloCalibrationHitContainer> cchc;
   std::vector<const CaloCalibrationHitContainer *> v_cchc;
-  std::vector<std::string>::iterator iter;
-  for (iter=m_CalibrationHitContainerNames.begin(); iter!=m_CalibrationHitContainerNames.end();iter++) {
-    ATH_CHECK( evtStore()->retrieve(cchc,*iter), -1 );
-    v_cchc.push_back(cchc);
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer> k : m_CalibrationHitContainerNames) {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (k, ctx);
+    v_cchc.push_back(cchc.cptr());
   }
 
   std::vector<const CaloCalibrationHitContainer *> v_dmcchc;
-  for (iter=m_DMCalibrationHitContainerNames.begin();iter!=m_DMCalibrationHitContainerNames.end();iter++) {
-    ATH_CHECK(  evtStore()->retrieve(cchc,*iter), -1 );
-    v_dmcchc.push_back(cchc);
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer> k : m_DMCalibrationHitContainerNames) {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (k, ctx);
+    v_dmcchc.push_back(cchc.cptr());
   }
 
   // calculate total calibration energy int active+inactive hits
@@ -1060,16 +1058,14 @@ int GetLCSinglePionsPerf::fill_moments()
   double  engClusSumCalib(0);
   double  engClusSumCalibPresOnly(0);
   std::vector<std::vector<double > > clsMoments; // [iClus][m_nmoments]
-  clsMoments.resize(m_clusColl->size());
+  clsMoments.resize(clusColl.size());
   std::vector<double > clsMomentsSum; // [m_nmoments]
   clsMomentsSum.resize(m_nmoments,0.0);
 
   // retrieving cluster moments
-  xAOD::CaloClusterContainer::const_iterator clusIter = m_clusColl->begin();
-  xAOD::CaloClusterContainer::const_iterator clusIterEnd = m_clusColl->end();
-  unsigned int iClus = 0;
-  for( ;clusIter!=clusIterEnd;clusIter++,iClus++) {
-    const xAOD::CaloCluster * theCluster = (*clusIter);
+  unsigned int iClus = -1;
+  for (const xAOD::CaloCluster* theCluster : clusColl) {
+    ++iClus;
     clsMoments[iClus].resize(m_validMoments.size(),0.0);
     int iMoment=0;
     for(moment_name_vector::const_iterator im=m_validMoments.begin(); im!=m_validMoments.end(); im++, iMoment++){
@@ -1175,7 +1171,7 @@ int GetLCSinglePionsPerf::fill_moments()
     if(m_doClusMoments && xnorm > m_mc_ener*0.0001) {
       // moments assigned to first 3 maximum clusters
       const double inv_xnorm = 1. / xnorm;
-      for(unsigned int i_cls=0; i_cls<m_clusColl->size(); i_cls++){
+      for(unsigned int i_cls=0; i_cls<clusColl.size(); i_cls++){
         m_clusMoment_vs_eta[iMoment][i_cls][m_mc_enerbin]->Fill(m_mc_eta, clsMoments[i_cls][iMoment]*inv_xnorm);
         m_clusMoment_vs_ebeam[iMoment][i_cls][m_mc_etabin]->Fill(m_mc_ener, clsMoments[i_cls][iMoment]*inv_xnorm);
       if(i_cls>=2) break;
@@ -1200,23 +1196,22 @@ int GetLCSinglePionsPerf::fill_moments()
 /* ****************************************************************************
 calibration hits validation
 **************************************************************************** */
-int GetLCSinglePionsPerf::fill_calibhits()
+int GetLCSinglePionsPerf::fill_calibhits (const xAOD::CaloClusterContainer& clusColl,
+                                          const EventContext& ctx)
 {
   /* ********************************************
   reading calibration containers
   ******************************************** */
-  const DataHandle<CaloCalibrationHitContainer> cchc;
   std::vector<const CaloCalibrationHitContainer *> v_cchc;
-  std::vector<std::string>::iterator iter;
-  for (iter=m_CalibrationHitContainerNames.begin(); iter!=m_CalibrationHitContainerNames.end();iter++) {
-    ATH_CHECK( evtStore()->retrieve(cchc,*iter), -1 );
-    v_cchc.push_back(cchc);
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer> k : m_CalibrationHitContainerNames) {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (k, ctx);
+    v_cchc.push_back(cchc.cptr());
   }
 
   std::vector<const CaloCalibrationHitContainer *> v_dmcchc;
-  for (iter=m_DMCalibrationHitContainerNames.begin();iter!=m_DMCalibrationHitContainerNames.end();iter++) {
-    ATH_CHECK( evtStore()->retrieve(cchc,*iter), -1 );
-    v_dmcchc.push_back(cchc);
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer> k : m_DMCalibrationHitContainerNames) {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (k, ctx);
+    v_dmcchc.push_back(cchc.cptr());
   }
 
   // calculate total calibration energy int active+inactive hits
@@ -1276,14 +1271,11 @@ int GetLCSinglePionsPerf::fill_calibhits()
 
   // calibration energy assigned to one or another cluster
   // retrieving cluster moments
-  xAOD::CaloClusterContainer::const_iterator clusIter = m_clusColl->begin();
-  xAOD::CaloClusterContainer::const_iterator clusIterEnd = m_clusColl->end();
   double engCalibAssigned = 0.0;
   double engClusSumCalibPresOnly = 0.0;
-  unsigned int iClus = 0;
-  for( ;clusIter!=clusIterEnd;clusIter++,iClus++) {
-    const xAOD::CaloCluster * theCluster = (*clusIter);
-
+  unsigned int iClus = -1;
+  for (const xAOD::CaloCluster* theCluster : clusColl) {
+    ++iClus;
     double mx_calib_tot, mx_calib_ooc, mx_calib_dm;
 //     if( !theCluster->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_TOT, mx_calib_tot)
 //          || !theCluster->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_OUT_L, mx_calib_ooc)
diff --git a/Calorimeter/CaloLocalHadCalib/src/GetLCWeights.cxx b/Calorimeter/CaloLocalHadCalib/src/GetLCWeights.cxx
index ae3a3565774d27306608de96680193646bf8e9f1..297812d7cfa0199aabb78d966d6275cdc00c37ab 100644
--- a/Calorimeter/CaloLocalHadCalib/src/GetLCWeights.cxx
+++ b/Calorimeter/CaloLocalHadCalib/src/GetLCWeights.cxx
@@ -32,6 +32,7 @@
 #include "CaloSimEvent/CaloCalibrationHitContainer.h"
 #include "CaloDetDescr/CaloDetDescrManager.h"
 #include "CaloIdentifier/CaloCell_ID.h"
+#include "StoreGate/ReadHandle.h"
 
 #include "AthenaKernel/errorcheck.h"
 
@@ -334,6 +335,9 @@ StatusCode GetLCWeights::initialize()
       }
     }
   }
+
+  ATH_CHECK( m_clusterCollName.initialize() );
+  ATH_CHECK( m_CalibrationHitContainerNames.initialize() );
   
   return StatusCode::SUCCESS;
 }
@@ -359,33 +363,13 @@ StatusCode GetLCWeights::finalize()
 
 StatusCode GetLCWeights::execute()
 {
-  const DataHandle<xAOD::CaloClusterContainer> cc ;
-  StatusCode sc = evtStore()->retrieve(cc,m_clusterCollName);
-
-  if(sc != StatusCode::SUCCESS) {
-    ATH_MSG_ERROR( "Could not retrieve ClusterContainer " 
-	<< m_clusterCollName << " from StoreGate" );
-    return sc;
-  }
+  const EventContext& ctx = getContext();
+  SG::ReadHandle<xAOD::CaloClusterContainer> cc (m_clusterCollName, ctx);
 
-  const DataHandle<CaloCalibrationHitContainer> cchc;
   std::vector<const CaloCalibrationHitContainer *> v_cchc;
-  std::vector<std::string>::iterator iter;
-  for (iter=m_CalibrationHitContainerNames.begin();
-       iter!=m_CalibrationHitContainerNames.end();iter++) {
-    if ( !evtStore()->contains<CaloCalibrationHitContainer>(*iter)) {
-      ATH_MSG_ERROR( "SG does not contain calibration hit container " << *iter );
-      return StatusCode::FAILURE;
-    }
-    else {
-      sc = evtStore()->retrieve(cchc,*iter);
-      if (sc.isFailure() ) {
-	ATH_MSG_ERROR( "Cannot retrieve calibration hit container " << *iter );
-	return sc;
-      } 
-      else
-	v_cchc.push_back(cchc);
-    }
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer> k : m_CalibrationHitContainerNames) {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (k, ctx);
+    v_cchc.push_back(cchc.cptr());
   }
 
   std::vector<ClusWeight *> cellVector[CaloCell_ID::NSUBCALO];
@@ -404,13 +388,9 @@ StatusCode GetLCWeights::execute()
   // total calib hit energy of all clusters 
   double eCalibTot(0.); 
 
-  xAOD::CaloClusterContainer::const_iterator clusIter = cc->begin();
-  xAOD::CaloClusterContainer::const_iterator clusIterEnd = cc->end();
   unsigned int iClus = 0;
   double nClusECalibGt0 = 0.0;
-  for( ;clusIter!=clusIterEnd;clusIter++,iClus++) {
-    const xAOD::CaloCluster * theCluster = (*clusIter);
-    
+  for (const xAOD::CaloCluster* theCluster : *cc) {
     double eC=999; 
     if (!theCluster->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_TOT,eC)) {
       ATH_MSG_ERROR( "Failed to retrieve cluster moment ENG_CALIB_TOT");
diff --git a/Calorimeter/CaloRec/src/CaloClusterMomentsMaker.cxx b/Calorimeter/CaloRec/src/CaloClusterMomentsMaker.cxx
index bd88b890e4dd8533d659e08d0c42f191a6f70a33..2d4eedba9b6f1a40f53e9bcfb03c9954b0f9fdf0 100644
--- a/Calorimeter/CaloRec/src/CaloClusterMomentsMaker.cxx
+++ b/Calorimeter/CaloRec/src/CaloClusterMomentsMaker.cxx
@@ -133,7 +133,7 @@ CaloClusterMomentsMaker::CaloClusterMomentsMaker(const std::string& type,
     m_twoGaussianNoise(false),
     m_caloDepthTool("CaloDepthTool",this),
     m_noiseTool("CaloNoiseTool"),
-    m_larHVScaleRetriever("LArHVScaleRetriever"),
+    m_larHVScaleRetriever("LArHVScaleRetriever", this),
     m_absOpt(false) 
 {
   declareInterface<CaloClusterCollectionProcessor> (this);
diff --git a/Calorimeter/CaloRec/src/CaloTopoClusterMaker.h b/Calorimeter/CaloRec/src/CaloTopoClusterMaker.h
index 607a39916d645a60ad70ac144e87ca7aa51cf8dc..ac7806737edb5035ea972a4fc179d1c2273b4355 100644
--- a/Calorimeter/CaloRec/src/CaloTopoClusterMaker.h
+++ b/Calorimeter/CaloRec/src/CaloTopoClusterMaker.h
@@ -39,8 +39,8 @@
 #include "AthenaKernel/IOVSvcDefs.h"
 #include "Identifier/IdentifierHash.h"
 #include "CaloRec/CaloClusterCollectionProcessor.h"
+#include "CaloInterface/ICalorimeterNoiseTool.h"
 
-class ICalorimeterNoiseTool;
 class Identifier; 
 class CaloDetDescrManager; 
 class CaloDetDescrElement;
diff --git a/Control/AthAnalysisBaseComps/AthAnalysisBaseComps/AthAnalysisHelper.h b/Control/AthAnalysisBaseComps/AthAnalysisBaseComps/AthAnalysisHelper.h
index ead06242a6353f09ab977208e84a0a85be62b8fc..d05f7fc57052c8fcf1d3e1effb0044adb0b22b07 100644
--- a/Control/AthAnalysisBaseComps/AthAnalysisBaseComps/AthAnalysisHelper.h
+++ b/Control/AthAnalysisBaseComps/AthAnalysisBaseComps/AthAnalysisHelper.h
@@ -180,7 +180,7 @@ public:
 	//use ToolSvc as parent
 	parent = Gaudi::svcLocator()->service( "ToolSvc" );
       }
-      IAlgTool* algtool = AlgTool::Factory::create(type,type,name,parent);
+      IAlgTool *algtool = AlgTool::Factory::create(type,type,name,parent).release();
       algtool->addRef(); //important to increment the reference count so that Gaudi Garbage collection wont delete alg ahead of time 
       W* out = dynamic_cast<W*>(algtool);
       if(!out && algtool) {
@@ -199,7 +199,7 @@ public:
    static IAlgorithm* createAlgorithm(const std::string& typeAndName) {
       std::string type = typeAndName; std::string name = typeAndName;
       if(type.find("/")!=std::string::npos) { type = type.substr(0,type.find("/")); name = name.substr(name.find("/")+1,name.length()); }
-      IAlgorithm* out = Algorithm::Factory::create(type,name,Gaudi::svcLocator());
+      IAlgorithm* out = Algorithm::Factory::create(type,name,Gaudi::svcLocator()).release();
       out->addRef(); //important to increment the reference count so that Gaudi Garbage collection wont delete alg ahead of time 
       return out;
    }
diff --git a/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h b/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h
index 99398dfa1a57a880315f845a2372cb9913e394d0..4472d43ea233388abae444a7f4ea4a5ce24141a4 100644
--- a/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h
+++ b/Control/AthenaBaseComps/AthenaBaseComps/AthReentrantAlgorithm.h
@@ -147,6 +147,16 @@ class AthReentrantAlgorithm
   virtual const EventContext& getContext() const override;
 
 
+  /**
+   * @brief Execute an algorithm.
+   *
+   * We override this in order to work around an issue with the Algorithm
+   * base class storing the event context in a member variable that can
+   * cause crashes in MT jobs.
+   */
+  virtual StatusCode sysExecute (const EventContext& ctx) override;
+
+
   
   /**
    * @brief Return the list of extra output dependencies.
diff --git a/Control/AthenaBaseComps/src/AthCnvSvc.cxx b/Control/AthenaBaseComps/src/AthCnvSvc.cxx
index 7de1cd9b3231aa193b8d73f6a831a7a0ce4a9658..32d9a676db45f134926f2328ce791635f735190b 100644
--- a/Control/AthenaBaseComps/src/AthCnvSvc.cxx
+++ b/Control/AthenaBaseComps/src/AthCnvSvc.cxx
@@ -478,17 +478,16 @@ AthCnvSvc::createConverter (long typ,
                             const CLID& clid, 
                             const ICnvFactory* /*fac*/)
 {
-  IConverter *cnv = 0;
 
-  cnv = Gaudi::PluginService::Factory<IConverter*, ISvcLocator*>::create
-    (ConverterID(typ,clid), serviceLocator().get() );
+  std::unique_ptr<IConverter> cnv{Converter::Factory::create
+    (ConverterID(typ,clid), serviceLocator().get() )};
 
-  if (0==cnv) {
+  if (!cnv) {
     typ = (typ<0xFF) ? typ : typ&0xFFFFFF00;
-    cnv = Gaudi::PluginService::Factory<IConverter*, ISvcLocator*>::create
-       (ConverterID(typ,clid), serviceLocator().get() );
+    cnv = Converter::Factory::create
+      (ConverterID(typ,clid), serviceLocator().get() );
   }
-  return cnv;
+  return cnv.release();
 
 }
 
diff --git a/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx b/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx
index 1d733128172fa75b326368b398bc2d72a28d6fe6..d658de0ea31ec0a01d4c0e59459328ee1fc21deb 100644
--- a/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx
+++ b/Control/AthenaBaseComps/src/AthReentrantAlgorithm.cxx
@@ -81,6 +81,25 @@ const EventContext& AthReentrantAlgorithm::getContext() const
   return Gaudi::Hive::currentContext();
 }
 
+/**
+ * @brief Execute an algorithm.
+ *
+ * We override this in order to work around an issue with the Algorithm
+ * base class storing the event context in a member variable that can
+ * cause crashes in MT jobs.
+ */
+StatusCode AthReentrantAlgorithm::sysExecute (const EventContext& ctx)
+{
+  EventContext ctx2 = ctx;
+  // sysExecute will assign the context we pass in to a member variable of 
+  // the algorithm.  If the context is referencing any dynamic memory,
+  // then we can end up with a double-delete.  So clear out any extension ---
+  // we won't actually use the context we pass to here for anything anyway.
+  ctx2.setExtension (boost::any());
+  return ::ReEntAlgorithm::sysExecute (ctx2);
+}
+
+
 /**
  * @brief Return the list of extra output dependencies.
  *
diff --git a/Control/AthenaCommon/python/AppMgr.py b/Control/AthenaCommon/python/AppMgr.py
index 55bcdb2f003463618a94272a269006dcf52b4d14..35389b0641f9f3a1e9fe049c59c938fcb3ca03bf 100755
--- a/Control/AthenaCommon/python/AppMgr.py
+++ b/Control/AthenaCommon/python/AppMgr.py
@@ -299,10 +299,7 @@ class AthAppMgr( AppMgr ):
          ipa2=IPA("IncidentProcAlg2")
          athEndSeq += ipa2
 
-         # unroll AthFilterSeq to save some function calls and
-         # stack size on the C++ side
-         for c in athFilterSeq.getChildren():
-            athMasterSeq += c
+         athMasterSeq += athFilterSeq
 
          # XXX: should we discard empty sequences ?
          #      might save some CPU and memory...
@@ -324,8 +321,8 @@ class AthAppMgr( AppMgr ):
          athAlgEvtSeq += athAllAlgSeq
          athAlgEvtSeq += athEndSeq
 
-         athMasterSeq += athAlgEvtSeq
-         athMasterSeq += athOutSeq
+         athFilterSeq += athAlgEvtSeq
+         athFilterSeq += athOutSeq
          athMasterSeq += athRegSeq
          
          Logging.log.debug ("building master sequence... [done]")
@@ -975,8 +972,8 @@ def AuditorSvc():             # backwards compatibility
 #                        +--- athEndSeq
 #                |
 #                +--- athOutSeq
-#                |
-#                +--- athRegStreams
+#         |
+#         +--- athRegStreams
 athMasterSeq = AlgSequence.AthSequencer( "AthMasterSeq" )
 athFilterSeq = AlgSequence.AthSequencer( "AthFilterSeq" )
 athCondSeq   = AlgSequence.AthSequencer( "AthCondSeq" )
diff --git a/Control/AthenaConfiguration/python/ComponentAccumulator.py b/Control/AthenaConfiguration/python/ComponentAccumulator.py
index ed445f6118ec29e7c8ddbb592339fb105514f037..4f1d2c64e3ac556a7494aad34d13c804cdadf86b 100644
--- a/Control/AthenaConfiguration/python/ComponentAccumulator.py
+++ b/Control/AthenaConfiguration/python/ComponentAccumulator.py
@@ -24,7 +24,7 @@ class ComponentAccumulator(object):
 
     def __init__(self):        
         self._msg=logging.getLogger('ComponentAccumulator')
-        self._sequence=AthSequencer()    #(Nested) sequence of event processing algorithms per sequence + their private tools 
+        self._sequence=AthSequencer('AthAlgSeq')    #(Nested) sequence of event processing algorithms per sequence + their private tools 
         self._conditionsAlgs=[]          #Unordered list of conditions algorithms + their private tools 
         self._services=[]                #List of service, not yet sure if the order matters here in the MT age
         self._conditionsInput=set()      #List of database folder (as string), eventually passed to IOVDbSvc
diff --git a/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx b/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx
index 119bf817505f08ce80c97a0c603fe8e9db6ea30d..07cd88c2a673c0e00a4bf2823b4404fcd5c28c17 100644
--- a/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx
+++ b/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx
@@ -45,7 +45,7 @@ namespace Athena_test {
 						     Gaudi::Utils::toString( 42.0 ) ) );
       IAlgorithm* ialg= Algorithm::Factory::create( "MyPackageAlg",
 						    "MyPackageAlg",
-						    Gaudi::svcLocator() );
+						    Gaudi::svcLocator() ).release();
       myAlg= dynamic_cast<Algorithm*>( ialg );
 
     }
diff --git a/Control/AthenaExamples/AthExBeginRun/src/BeginRunAlg.h b/Control/AthenaExamples/AthExBeginRun/src/BeginRunAlg.h
index c6e99a4094a8bcda512979969dee05856a06f057..84422acbedef8c7a62b4610083b4bf24801ed254 100644
--- a/Control/AthenaExamples/AthExBeginRun/src/BeginRunAlg.h
+++ b/Control/AthenaExamples/AthExBeginRun/src/BeginRunAlg.h
@@ -15,13 +15,13 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "StoreGate/DataHandle.h"
 #include "AthenaKernel/IOVSvcDefs.h"
+#include "IOVDbTestConditions/IOVDbTestAmdbCorrection.h"
 
 // STL includes
 #include <string>
 
 class IAlgTool;
 class StoreGateSvc;
-class IOVDbTestAmdbCorrection;
 
 /**
  * @class BeginRunAlg
diff --git a/Control/AthenaExamples/AthExUnittest/test/gt_AthExUnittest.cxx b/Control/AthenaExamples/AthExUnittest/test/gt_AthExUnittest.cxx
index 5fc4682bdb46baea84bfb9e13327546d39c665d5..091a8bb6782ad3d5e2d7ad5e5243686b7ce39a8e 100644
--- a/Control/AthenaExamples/AthExUnittest/test/gt_AthExUnittest.cxx
+++ b/Control/AthenaExamples/AthExUnittest/test/gt_AthExUnittest.cxx
@@ -45,7 +45,7 @@ namespace Athena_test {
 						     Gaudi::Utils::toString( 42.0 ) ) );
       IAlgorithm* ialg= Algorithm::Factory::create( "AthExUnittestAlg",
 						    "AthExUnittestAlg",
-						    Gaudi::svcLocator() );
+						    Gaudi::svcLocator() ).release();
       myAlg= dynamic_cast<Algorithm*>( ialg );
 
     }
diff --git a/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyAlg.h b/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyAlg.h
index 5b2918c8c22707795926dba0fef86eac6e8807a5..b884d70f30babd663476bddd5ca2f7e20796b468 100644
--- a/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyAlg.h
+++ b/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyAlg.h
@@ -7,7 +7,7 @@
 
 // Data members classes
 #include <list>
-class PileUpMergeSvc;
+#include "PileUpTools/PileUpMergeSvc.h"
  
 
 /////////////////////////////////////////////////////////////////////////////
diff --git a/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyMultiInputAlg.h b/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyMultiInputAlg.h
index 5e2c413e2e442a4c3eb06a7a19d11c76c8c0385d..fa0bf65f80b5d2a81382a122fab78b64923899e2 100644
--- a/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyMultiInputAlg.h
+++ b/Control/AthenaExamples/MultiInputExample/MultiInputExample/MyMultiInputAlg.h
@@ -7,7 +7,7 @@
 
 // Data members classes
 #include <list>
-class PileUpMergeSvc;
+#include "PileUpTools/PileUpMergeSvc.h"
  
 
 /////////////////////////////////////////////////////////////////////////////
diff --git a/Control/AthenaKernel/AthenaKernel/ITPCnvBase.h b/Control/AthenaKernel/AthenaKernel/ITPCnvBase.h
index 1d5898ef656b521068710f6b232962a2973ba443..900a36ed417a301da24d1e20d2b69ce0456eb899 100644
--- a/Control/AthenaKernel/AthenaKernel/ITPCnvBase.h
+++ b/Control/AthenaKernel/AthenaKernel/ITPCnvBase.h
@@ -28,7 +28,7 @@ class ITPCnvBase
   /////////////////////////////////////////////////////////////////// 
  public: 
 #if GAUDI_VERSION > CALC_GAUDI_VERSION(25, 3) 
-  typedef Gaudi::PluginService::Factory<ITPCnvBase*> Factory;
+  typedef Gaudi::PluginService::Factory<ITPCnvBase*()> Factory;
 #else  
   typedef Gaudi::PluginService::Factory0<ITPCnvBase*> Factory;
 #endif
diff --git a/Control/AthenaKernel/AthenaKernel/TPCnvFactory.h b/Control/AthenaKernel/AthenaKernel/TPCnvFactory.h
index b5203c87b70e47a4f37c4399b95531335d6e2e28..a52b9ca5512daca071e45a78e3774539b4d865d4 100644
--- a/Control/AthenaKernel/AthenaKernel/TPCnvFactory.h
+++ b/Control/AthenaKernel/AthenaKernel/TPCnvFactory.h
@@ -139,22 +139,19 @@ namespace Athena {
 #else
 #define DO_ATHTPCNV_PLUGINSVC_FACTORY_WITH_ID(type, id, trans_type, pers_type, is_last_version, cnv_type, signature, serial) \
   namespace { \
-    class DO_ATHTPCNV_FACTORY_REGISTER_CNAME(type, serial) { \
-    public: \
-      typedef type::Factory s_t;      \
-      typedef ::Gaudi::PluginService::Details::Factory<type> f_t; \
-      static s_t::FuncType creator() { return &f_t::create<s_t>; } \
-      DO_ATHTPCNV_FACTORY_REGISTER_CNAME(type, serial) () { \
-        using ::Gaudi::PluginService::Details::Registry; \
+    struct DO_ATHTPCNV_FACTORY_REGISTER_CNAME( type, serial ) {              \
+      DO_ATHTPCNV_FACTORY_REGISTER_CNAME( type, serial )()                   \
+      {                                                                      \
+        using ::Gaudi::PluginService::DeclareFactory;                        \
         std::string prefix; \
         if (cnv_type == Athena::TPCnvType::ARA) \
           prefix = "_ARA"; \
         else if (cnv_type == Athena::TPCnvType::Trigger)   \
           prefix = "_TRIG"; \
-        Registry::instance().add<s_t, type>(id, creator()); \
+        DeclareFactory<type> normal{};                                       \
         if (is_last_version == Athena::TPCnvVers::Current) \
-          Registry::instance().add<s_t, type>(prefix + "_TRANS_" + #trans_type, creator()); \
-        Registry::instance().add<s_t, type>(prefix + "_PERS_" + #pers_type, creator()); \
+          DeclareFactory<type> transient{prefix + "_TRANS_" + #trans_type};  \
+        DeclareFactory<type>   persistent{prefix + "_PERS_" + #pers_type};   \
       } \
     } DO_ATHTPCNV_FACTORY_REGISTER_CNAME(s_ ## type, serial); \
   }
diff --git a/Control/AthenaServices/share/AthTPCnvSvc.ref b/Control/AthenaServices/share/AthTPCnvSvc.ref
index 85d15a0adbbdb64421363d778ed5268eab7fa705..63c7a904d296a3d2dd5919a278fe74fe6a667c67 100644
--- a/Control/AthenaServices/share/AthTPCnvSvc.ref
+++ b/Control/AthenaServices/share/AthTPCnvSvc.ref
@@ -1,18 +1,20 @@
-Fri Mar 17 17:22:56 CET 2017
-Preloading tcmalloc_minimal.so
+Sun Jul  8 10:45:18 EDT 2018
+WARNING: TCMALLOCDIR not defined, will use libc malloc
 Py:Athena            INFO including file "AthenaCommon/Preparation.py"
-Py:Athena            INFO using release [AthenaWorkDir-22.0.0] [x86_64-slc6-gcc49-opt] [private/private] -- built on [2017-03-17 17:16]
+Py:Athena            INFO using release [?-21.0.0] [i686-slc5-gcc43-dbg] [?/?] -- built on [?]
 Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Py:Athena            INFO executing ROOT6Setup
-[?1034hPy:Athena            INFO including file "AthenaCommon/Execution.py"
+Py:Athena            INFO including file "AthenaCommon/Execution.py"
 Py:Athena            INFO including file "AthenaServices/AthTPCnvSvc_test.py"
-Py:ConfigurableDb    INFO Read module info for 5282 configurables from 7 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 502 configurables from 2 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
+# setting LC_ALL to "C"
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v28r1)
-                                          running on p05614910w96644.cern.ch on Fri Mar 17 17:23:07 2017
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
+                                          running on karma on Sun Jul  8 10:45:20 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -20,14 +22,13 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 StatusCodeSvc        INFO initialize
 AthDictLoaderSvc     INFO in initialize...
 AthDictLoaderSvc     INFO acquired Dso-registry
-ClassIDSvc           INFO  getRegistryEntries: read 2303 CLIDRegistry entries for module ALL
-ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+ClassIDSvc           INFO  getRegistryEntries: read 2826 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 CoreDumpSvc          INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
 HistogramPersis...WARNING Histograms saving not required.
 ApplicationMgr       INFO Application Manager Initialized successfully
-ClassIDSvc           INFO  getRegistryEntries: read 1103 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1136 CLIDRegistry entries for module ALL
 AthTPCnvSvc       WARNING Could not load converter for transient class [AthenaServicesTestConverters::TBTRIG]
 AthTPCnvSvc       WARNING Could not load converter for transient class [AthenaServicesTestConverters::TBTRIG]
 AthTPCnvSvc       WARNING could not load converter for transient CLID [20394825] (AthenaServicesTestConverters::TBTRIG)
@@ -39,13 +40,14 @@ Py:Configurable     ERROR attempt to add a duplicate (AthBeginSeq.BeginIncFiring
 Py:Configurable     ERROR attempt to add a duplicate (AthBeginSeq.IncidentProcAlg1) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthEndSeq.EndIncFiringAlg) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthEndSeq.IncidentProcAlg2) ... dupe ignored
+Py:Configurable     ERROR attempt to add a duplicate (AthMasterSeq.AthFilterSeq) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthAllAlgSeq.AthCondSeq) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthAllAlgSeq.AthAlgSeq) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthAlgEvtSeq.AthBeginSeq) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthAlgEvtSeq.AthAllAlgSeq) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthAlgEvtSeq.AthEndSeq) ... dupe ignored
-Py:Configurable     ERROR attempt to add a duplicate (AthMasterSeq.AthAlgEvtSeq) ... dupe ignored
-Py:Configurable     ERROR attempt to add a duplicate (AthMasterSeq.AthOutSeq) ... dupe ignored
+Py:Configurable     ERROR attempt to add a duplicate (AthFilterSeq.AthAlgEvtSeq) ... dupe ignored
+Py:Configurable     ERROR attempt to add a duplicate (AthFilterSeq.AthOutSeq) ... dupe ignored
 Py:Configurable     ERROR attempt to add a duplicate (AthMasterSeq.AthRegSeq) ... dupe ignored
 StatusCodeSvc        INFO reinitialize
 ClassIDSvc           INFO RE-initializing ClassIDSvc
@@ -62,7 +64,7 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-ChronoStatSvc        INFO Time User   : Tot= 2.71  [s]                                             #=  1
+ChronoStatSvc        INFO Time User   : Tot= 1.54  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Control/AthenaServices/src/AthTPCnvSvc.cxx b/Control/AthenaServices/src/AthTPCnvSvc.cxx
index 7b466fde5a6dcf0a253775ea25b275cc28787c9c..8d8b177e07e6efa66d3813d9863e8a68331bbd2e 100644
--- a/Control/AthenaServices/src/AthTPCnvSvc.cxx
+++ b/Control/AthenaServices/src/AthTPCnvSvc.cxx
@@ -10,6 +10,7 @@
 /////////////////////////////////////////////////////////////////// 
 
 #include "AthTPCnvSvc.h"
+#include "GaudiKernel/Converter.h"
 
 
 namespace {
@@ -56,7 +57,7 @@ AthTPCnvSvc::~AthTPCnvSvc()
 ITPCnvBase* 
 AthTPCnvSvc::load_tpcnv(const std::string& cls)
 {
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create (cls);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create (cls).release();
   if (cnv == nullptr) {
     ATH_MSG_INFO("could not load class [" << cls
                  << "] via Reflex::PluginService");
@@ -75,7 +76,7 @@ AthTPCnvSvc::t2p_cnv(const std::string& transClassName,
                      Athena::TPCnvType::Value type /*= Athena::TPCnvType::Athena*/)
 
 {
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create (prefix(type) + "_TRANS_" + transClassName);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create (prefix(type) + "_TRANS_" + transClassName).release();
   if (cnv == nullptr && type != Athena::TPCnvType::Athena)
     return t2p_cnv (transClassName);
   if (cnv == nullptr) {
@@ -101,7 +102,7 @@ AthTPCnvSvc::t2p_cnv(const CLID& transClid,
     return nullptr;
   }
 
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create (prefix(type) + "_TRANS_" + trans_type);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create (prefix(type) + "_TRANS_" + trans_type).release();
   if (cnv == nullptr) {
     // try a typeinfo-name before bailing out...
     if (!m_clidSvc->getTypeInfoNameOfID(transClid, trans_type).isSuccess()) {
@@ -109,7 +110,7 @@ AthTPCnvSvc::t2p_cnv(const CLID& transClid,
                    << transClid << "]");
       return nullptr;
     }
-    cnv = ITPCnvBase::Factory::create (prefix(type) + "_TRANS_" + trans_type);
+    cnv = ITPCnvBase::Factory::create (prefix(type) + "_TRANS_" + trans_type).release();
   }
   if (cnv == nullptr && type != Athena::TPCnvType::Athena)
     return t2p_cnv (transClid);
@@ -130,7 +131,7 @@ ITPCnvBase*
 AthTPCnvSvc::p2t_cnv(const std::string& persClassName,
                      Athena::TPCnvType::Value type /*= Athena::TPCnvType::Athena*/)
 {
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create (prefix(type) + "_PERS_" + persClassName);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create (prefix(type) + "_PERS_" + persClassName).release();
   if (cnv == nullptr && type != Athena::TPCnvType::Athena)
     return p2t_cnv (persClassName);
   if (cnv == nullptr) {
diff --git a/Control/AthenaServices/src/DelayedConditionsCleanerSvc.cxx b/Control/AthenaServices/src/DelayedConditionsCleanerSvc.cxx
index c709b8c86599378faebf743720866d043eb898f4..4673bf3df893337b87e3661a022b12057583af22 100644
--- a/Control/AthenaServices/src/DelayedConditionsCleanerSvc.cxx
+++ b/Control/AthenaServices/src/DelayedConditionsCleanerSvc.cxx
@@ -436,7 +436,12 @@ DelayedConditionsCleanerSvc::cleanContainer (CondContInfo* ci,
     ++ci->m_removed2plus;
   }
 }
+  
+/**
+ * @brief Standard destructor.
+ */
 
+DelayedConditionsCleanerSvc::~DelayedConditionsCleanerSvc() {}
 
 /**
  * @brief Standard Gaudi finalize method.
diff --git a/Control/AthenaServices/src/DelayedConditionsCleanerSvc.h b/Control/AthenaServices/src/DelayedConditionsCleanerSvc.h
index b6b648279b5147a847e2eb8a63f1532798b7ebcc..237ddf03a5f05fe050cd3afc79b326e72f76c6a3 100644
--- a/Control/AthenaServices/src/DelayedConditionsCleanerSvc.h
+++ b/Control/AthenaServices/src/DelayedConditionsCleanerSvc.h
@@ -69,6 +69,11 @@ public:
    */
   DelayedConditionsCleanerSvc (const std::string& name, ISvcLocator* svc);
 
+  /**
+   * @brief Standard destructor. Needed to avoid problems with unique_ptr
+   */
+  ~DelayedConditionsCleanerSvc();
+
 
   /**
    * @brief Standard Gaudi initialize method.
diff --git a/Control/AthenaServices/src/MixingEventSelector.h b/Control/AthenaServices/src/MixingEventSelector.h
index fe6ed1e1cac8256fd5f101384bec4a439c0a0d4d..bf486ec6717ac55225566917c893a84f1e056833 100644
--- a/Control/AthenaServices/src/MixingEventSelector.h
+++ b/Control/AthenaServices/src/MixingEventSelector.h
@@ -20,6 +20,7 @@
 #include "AthenaBaseComps/AthService.h"
 #include "AthenaKernel/IAddressProvider.h"
 #include "AthenaKernel/IAthenaSelectorTool.h"
+#include "AthenaKernel/IAtRndmGenSvc.h"
 
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/IEvtSelector.h"
@@ -34,8 +35,6 @@ class MixingEventIterator;
 
 class StoreGateSvc;
 
-class IAtRndmGenSvc;
-
 namespace CLHEP {
   class RandFlat;
 }
diff --git a/Control/AthenaServices/src/TestRandomSeqAlg.h b/Control/AthenaServices/src/TestRandomSeqAlg.h
index a3cf98a33d8990d97fb71d0741f148b603c36e00..75f3d23bd24029652967cf0ad8b9e8d32c1e7ab1 100644
--- a/Control/AthenaServices/src/TestRandomSeqAlg.h
+++ b/Control/AthenaServices/src/TestRandomSeqAlg.h
@@ -8,9 +8,9 @@
 #define ATHENASERVICES_TESTRANDOMSEQALG_H 1
 
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaKernel/IAtRndmGenSvc.h"
 #include "GaudiKernel/Property.h"
 #include "GaudiKernel/ServiceHandle.h"
-class IAtRndmGenSvc;
 namespace CLHEP { class HepRandomEngine; }
 /** @class TestRandomSegAlg
    * @brief a trivial algorithm to test the sequence of random numbers
diff --git a/Control/CLIDComps/util/genCLIDDB.cxx b/Control/CLIDComps/util/genCLIDDB.cxx
index 6c8e0c8fcc03ec59b84e5c7b743853f95261c9a7..467c242d013f42f39bedf911daf61c74cd937c8f 100644
--- a/Control/CLIDComps/util/genCLIDDB.cxx
+++ b/Control/CLIDComps/util/genCLIDDB.cxx
@@ -103,6 +103,7 @@ int main(int argc, char* argv[]) {
       return gaudiError("clidDB_gen can not run");
     }  
   }
+
   if ( 0 == pSvcLoc ) {
     return gaudiError( "NULL pointer to ISvcLocator" );
   }
@@ -114,8 +115,9 @@ int main(int argc, char* argv[]) {
   IClassIDSvc* pClassIDSvc(0);
   if (!(pSvcLoc->service("ClassIDSvc", pClassIDSvc, true).isSuccess())) {
     cerr << "can not get ClassIDSvc, no clid.db will be generated" << endl;
-    return 0;
+    return 1;
   }
+
   if ( 0 == pClassIDSvc ) {
     return gaudiError("NULL pointer to IClassIDSvc");
   }
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterAlg.h b/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterAlg.h
index ed53cc5cfc67cab408b9e17eef8c113d663477c4..8d899ce2b4294e58cce51a8a5cb330ada6536cc1 100644
--- a/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterAlg.h
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/CondWriterAlg.h
@@ -21,9 +21,7 @@
 #include "StoreGate/ReadHandleKey.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
-
-
-class IAthenaOutputStreamTool;
+#include "AthenaKernel/IAthenaOutputStreamTool.h"
 
 
 namespace DMTest {
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/setConverterLibrary.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/setConverterLibrary.cxx
index a7d3d3a75ec5c5fdd33ac824b489afc334f49e25..e0a751f6f1194221bf4fb14a02315b0947da5f75 100644
--- a/Control/DataModelTest/DataModelTestDataCommon/src/setConverterLibrary.cxx
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/setConverterLibrary.cxx
@@ -29,9 +29,9 @@ void setPluginLibrary (const std::string& name, const std::string& lib)
     const_cast<Details::Registry::FactoryMap&>(reg.factories());
   Details::Registry::FactoryMap::iterator i = map.find (name);
   if (i == map.end())
-    map.insert (std::make_pair (name, Details::Registry::FactoryInfo(lib)));
+    map.insert (std::make_pair (name, Details::Registry::FactoryInfo{lib}));
   else
-    i->second = Details::Registry::FactoryInfo(lib);
+    i->second = Details::Registry::FactoryInfo{lib};
 }
 
 
diff --git a/Control/DataModelTest/DataModelTestDataRead/src/HLTResultReader.h b/Control/DataModelTest/DataModelTestDataRead/src/HLTResultReader.h
index 3a618a96548eb694ceac24713874a844ee4cacea..f66aac622e0ae7eb549027d5135ff85ff9c0fd39 100644
--- a/Control/DataModelTest/DataModelTestDataRead/src/HLTResultReader.h
+++ b/Control/DataModelTest/DataModelTestDataRead/src/HLTResultReader.h
@@ -20,11 +20,11 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "StoreGate/ReadHandleKey.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "TrigNavigation/Navigation.h"
 
 
 namespace HLT {
   class HLTResult;
-  class Navigation;
 }
 
 
diff --git a/Control/DataModelTest/DataModelTestDataWrite/src/HLTResultWriter.h b/Control/DataModelTest/DataModelTestDataWrite/src/HLTResultWriter.h
index b8e07419653abb85e7464408548462b1b577d883..6d95e714ad6b3478e64fc501f2914b487b896299 100644
--- a/Control/DataModelTest/DataModelTestDataWrite/src/HLTResultWriter.h
+++ b/Control/DataModelTest/DataModelTestDataWrite/src/HLTResultWriter.h
@@ -20,11 +20,10 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "StoreGate/WriteHandleKey.h"
 #include "GaudiKernel/ToolHandle.h"
-
+#include "TrigNavigation/Navigation.h"
 
 namespace HLT {
   class HLTResult;
-  class Navigation;
 }
 
 
diff --git a/Control/IOVSvc/IOVSvc/IOVSvc.h b/Control/IOVSvc/IOVSvc/IOVSvc.h
index bbe15bbaf71889883a3c86a01ab524282d9b46eb..ddd4295b7386e844d6b0e5bb105adcf51929c5c1 100755
--- a/Control/IOVSvc/IOVSvc/IOVSvc.h
+++ b/Control/IOVSvc/IOVSvc/IOVSvc.h
@@ -210,7 +210,9 @@ private:
   ServiceHandle<StoreGateSvc> p_sgs, p_detStore;
   ServiceHandle<ICondSvc> p_condSvc;
 
-  mutable std::mutex m_lock;
+  // Recursive because createCondObj dereferences a DataProxy, which can
+  // eventually recursively call back to IOVSvc.
+  mutable std::recursive_mutex m_lock;
 
 };
 
diff --git a/Control/IOVSvc/IOVSvc/IOVSvcTool.h b/Control/IOVSvc/IOVSvc/IOVSvcTool.h
index 39476cfaf7993e1a41b91c17a1fdbd4fbdcce5d2..452916e37099f67948c8fb15772fd010ef88fb53 100644
--- a/Control/IOVSvc/IOVSvc/IOVSvcTool.h
+++ b/Control/IOVSvc/IOVSvc/IOVSvcTool.h
@@ -167,8 +167,6 @@ public:
     m_ignoredProxies.insert(proxy);
   }
 
-protected:
-
   // Destructor.
   virtual ~IOVSvcTool();
 
diff --git a/Control/IOVSvc/src/IOVSvc.cxx b/Control/IOVSvc/src/IOVSvc.cxx
index 08710bb5170712eed2abb8cd0a016dc146f1306e..938289b648e9cb0d581b2e52a0dccf6b6115a2c7 100755
--- a/Control/IOVSvc/src/IOVSvc.cxx
+++ b/Control/IOVSvc/src/IOVSvc.cxx
@@ -145,6 +145,7 @@ StatusCode
 IOVSvc::regProxy( const DataProxy *proxy, const std::string& key,
                   const std::string& storeName ) {
 
+  std::lock_guard<std::recursive_mutex> lock(m_lock);
   IIOVSvcTool *ist = getTool( storeName );
   if (ist == 0) {
     msg() << MSG::ERROR << "regProxy: no IOVSvcTool associated with store \"" 
@@ -185,6 +186,7 @@ StatusCode
 IOVSvc::regProxy( const CLID& clid, const std::string& key,
                   const std::string& storeName ) {
 
+  std::lock_guard<std::recursive_mutex> lock(m_lock);
   IIOVSvcTool *ist = getTool( storeName );
   if (ist == 0) {
     msg() << MSG::ERROR << "regProxy: no IOVSvcTool associated with store \"" 
@@ -226,6 +228,7 @@ StatusCode
 IOVSvc::deregProxy( const DataProxy *proxy ) {
 
 
+  std::lock_guard<std::recursive_mutex> lock(m_lock);
   IIOVSvcTool *ist = getTool( proxy );
   if (ist == 0) {
     msg() << MSG::ERROR << "deregProxy: no IOVSvcTool found for proxy "
@@ -247,6 +250,7 @@ StatusCode
 IOVSvc::deregProxy( const CLID& clid, const std::string& key ) {
 
 
+  std::lock_guard<std::recursive_mutex> lock(m_lock);
   IIOVSvcTool *ist = getTool( clid, key );
   if (ist == 0) {
     msg() << MSG::ERROR << "deregProxy: no IOVSvcTool found for proxy " 
@@ -830,7 +834,7 @@ StatusCode
 IOVSvc::createCondObj(CondContBase* ccb, const DataObjID& id, 
                       const EventIDBase& now) {
   
-  std::lock_guard<std::mutex> lock(m_lock);
+  std::lock_guard<std::recursive_mutex> lock(m_lock);
 
   ATH_MSG_DEBUG("createCondObj:  id: " << id << "  t: " << now << "  valid: "
                 << ccb->valid(now));
diff --git a/DataQuality/DataQualityUtils/python/hancoolmod.py b/DataQuality/DataQualityUtils/python/hancoolmod.py
index a4f93c27eabae3e743d7d6ee0e6bf5c4a1b77c1b..b7ed7da5db78543cbc33591c5c9d95d14b780d08 100644
--- a/DataQuality/DataQualityUtils/python/hancoolmod.py
+++ b/DataQuality/DataQualityUtils/python/hancoolmod.py
@@ -9,6 +9,10 @@ import sys
 import pdb
 import glob
 
+import logging
+logger = logging.getLogger('hancoolmod')
+logger.addHandler(logging.NullHandler())
+
 import ROOT
 ## Importing gSystem may change the current directory to one of the
 ## command-line arguments; chdir to original directory to have
@@ -24,7 +28,6 @@ from ROOT import dqutils
 ## LumiBlock length (in minutes)
 LBlength = 1.0
 
-
 ## Mapping han<->COOL
 folderMap = {
     # ATLAS global
@@ -154,7 +157,7 @@ def getLimits( name ):
             low_limit = 1
             hi_limit = max_hi_limit
     except Exception, e:
-        print 'Could not determine limits because:', e
+        logging.warning('Could not determine limits because: %s', e)
         low_limit = 1
         hi_limit = 4294967295
 
@@ -182,9 +185,9 @@ def hancool(runNumber=3070,
 
     runlimitscache = {}
     
-    print '====> Running hancool_defects'
+    logger.info('====> Running hancool_defects')
     hancool_defects(runNumber, filePath, dbConnection, 'HEAD', isESn)
-    print '<==== Done with hancool_defects'
+    logger.info('<==== Done with hancool_defects')
 
 # Nothing that follows applies for Run 2 ...
 #    if ( filePath.rfind("/")!=(len(filePath)-1) ):
@@ -510,9 +513,11 @@ def hancool_defects(runNumber, filePath="./", dbConnection="", db_tag='HEAD', is
     from DQDefects import DefectsDB
     ddb = DefectsDB(dbConnection, read_only=False)
     if isESn:
+        logging.info('Running detmask_defects')
         detmask_defects(runNumber, ddb)
     with ddb.storage_buffer:
         for defect in iovs_merge(defects):
+            logger.debug('Uploading %s', defect)
             ddb.insert(defect.defect, since=(runNumber << 32 | defect.since),
                        until=(runNumber << 32 | defect.until),
                        comment=defect.comment,
diff --git a/DataQuality/DataQualityUtils/scripts/DQWebDisplay.py b/DataQuality/DataQualityUtils/scripts/DQWebDisplay.py
index feac44c4b9485b2f9a64675ed93ee2f81a5e41a9..b6f79c0f2856ddbcaf66007f4ffb7fe9fea1a544 100755
--- a/DataQuality/DataQualityUtils/scripts/DQWebDisplay.py
+++ b/DataQuality/DataQualityUtils/scripts/DQWebDisplay.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
+# -*- coding: utf-8 -*-
 
 # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-# -*- coding: utf-8 -*-
 
 ## *****************************************************************************
 VERSION = '$Id: DQWebDisplay.py 690278 2015-08-19 22:18:53Z ponyisi $'
@@ -9,6 +9,9 @@ VERSION = '$Id: DQWebDisplay.py 690278 2015-08-19 22:18:53Z ponyisi $'
 
 import os
 
+import logging
+logging.basicConfig()
+
 ## Needed to correct ROOT behavior; see below
 CWD = os.getcwd()
 os.chdir(CWD)
diff --git a/Database/APR/CollectionBase/src/CollectionFactory.cpp b/Database/APR/CollectionBase/src/CollectionFactory.cpp
index 0fc459a2c9d6ca8ee7e1ad84edeb684bbaf901dc..803958d8deaaf111a5ff1f0a6d64fe92091e97d5 100755
--- a/Database/APR/CollectionBase/src/CollectionFactory.cpp
+++ b/Database/APR/CollectionBase/src/CollectionFactory.cpp
@@ -54,7 +54,8 @@ pool::CollectionFactory::create_callPlugin( const pool::ICollectionDescription&
 					    pool::ISession* session ) const
 {
    std::string type( description.type() );
-   ICollection *coll = Gaudi::PluginService::Factory<ICollection*, const ICollectionDescription*, ICollection::OpenMode, ISession*>::create( type, &description, openMode, session );
+   //   ICollection *coll = Gaudi::PluginService::Factory<ICollection*, const ICollectionDescription*, ICollection::OpenMode, ISession*>::create( type, &description, openMode, session ).release();
+   ICollection *coll = Gaudi::PluginService::Factory<ICollection*( const ICollectionDescription*, ICollection::OpenMode, ISession*)>::create( type, &description, openMode, session ).release();
    if( !coll ) {
       std::string errorMsg = "APR::CollectionFactory::create(" + type + "," + description.name() + ") FAILED!  Plugin for that collection technology could not be loaded.";
       if( type == "MemoryCollection" ) {
diff --git a/Database/APR/ImplicitCollection/src/ImplicitCollection.h b/Database/APR/ImplicitCollection/src/ImplicitCollection.h
index df5d0c2fe46b04fd456503e698d4d30ffc6c937c..32855c71215ddb93ee3329100b7994064115d1c1 100755
--- a/Database/APR/ImplicitCollection/src/ImplicitCollection.h
+++ b/Database/APR/ImplicitCollection/src/ImplicitCollection.h
@@ -26,7 +26,7 @@ namespace pool {
   class ImplicitCollection : virtual public ICollection
   {
   public:
-    typedef Gaudi::PluginService::Factory<ICollection*, const ICollectionDescription*, ICollection::OpenMode, ISession*> Factory;  
+    typedef Gaudi::PluginService::Factory<ICollection*( const ICollectionDescription*, ICollection::OpenMode, ISession*)> Factory;  
 
     /** Constructor - old style
        Throws POOL exception.
diff --git a/Database/APR/RelationalCollection/src/RelationalCollection.h b/Database/APR/RelationalCollection/src/RelationalCollection.h
index 49910cf7a5559a135fa63f63225b7e66baaa8aae..4ad428f7457090eee4bc19dbeca7bf8d501e0958 100755
--- a/Database/APR/RelationalCollection/src/RelationalCollection.h
+++ b/Database/APR/RelationalCollection/src/RelationalCollection.h
@@ -47,7 +47,7 @@ namespace pool {
      class RelationalCollection : virtual public ICollection, public ICollectionRelationalExtensions
     {
     public:
-    typedef Gaudi::PluginService::Factory<ICollection*, const ICollectionDescription*, ICollection::OpenMode, ISession*> Factory;
+      typedef Gaudi::PluginService::Factory<ICollection*( const ICollectionDescription*, ICollection::OpenMode, ISession*)> Factory;
 
       /** 
        * Constructor.
diff --git a/Database/APR/RootCollection/src/RootCollection.h b/Database/APR/RootCollection/src/RootCollection.h
index bd69afa434b5b3b3dc35d555373cd1c19c7f5980..b927679ff8b047f51ee6344f58ff1b416076eddb 100755
--- a/Database/APR/RootCollection/src/RootCollection.h
+++ b/Database/APR/RootCollection/src/RootCollection.h
@@ -70,7 +70,7 @@ namespace pool {
       class RootCollection :  public ICollection {
     
      public:
-	typedef Gaudi::PluginService::Factory<ICollection*, const ICollectionDescription*, ICollection::OpenMode, ISession*> Factory;
+	typedef Gaudi::PluginService::Factory<ICollection*( const ICollectionDescription*, ICollection::OpenMode, ISession*)> Factory;
     
         /// Constructor
         /// @param session If you want to access the referenced objects you have to provide an ISession
diff --git a/Database/APR/RootStorageSvc/src/RootOODb.h b/Database/APR/RootStorageSvc/src/RootOODb.h
index 92fd8190e2d9e0c462922b80dfa781788e34b8eb..051a49012cf756a2a1d845ee49609b629671d750 100755
--- a/Database/APR/RootStorageSvc/src/RootOODb.h
+++ b/Database/APR/RootStorageSvc/src/RootOODb.h
@@ -37,7 +37,7 @@ namespace pool  {
     */
   class RootOODb  : public IOODatabase  {
   public:
-    typedef Gaudi::PluginService::Factory<IOODatabase*> Factory;
+    typedef Gaudi::PluginService::Factory<IOODatabase*()> Factory;
 
     /// Standard Constructor
     RootOODb(DbType typ=ROOT_StorageType);
diff --git a/Database/APR/StorageSvc/StorageSvc/IOODatabase.h b/Database/APR/StorageSvc/StorageSvc/IOODatabase.h
index 7b3acb6eef8292b26ee1e0b764d960c058f32739..e7d8d1e974c18dba4d557cb210bc51786a0d5fcd 100644
--- a/Database/APR/StorageSvc/StorageSvc/IOODatabase.h
+++ b/Database/APR/StorageSvc/StorageSvc/IOODatabase.h
@@ -48,7 +48,7 @@ namespace pool    {
     * @version 1.0
     */
    class IOODatabase : public RefCounter  {
-   protected:  
+   public:  
     virtual ~IOODatabase() {}
 
    public:
diff --git a/Database/APR/StorageSvc/src/DbSessionObj.cpp b/Database/APR/StorageSvc/src/DbSessionObj.cpp
index 82c5c170c1ce19b6e7473567f05cd5a673b9b65f..e6d5328bb798da52956b41f798c2f2d056ab62b8 100644
--- a/Database/APR/StorageSvc/src/DbSessionObj.cpp
+++ b/Database/APR/StorageSvc/src/DbSessionObj.cpp
@@ -56,7 +56,7 @@ DbStatus DbSessionObj::close()   {
 IOODatabase* DbSessionObj::db(const DbType& typ) {
    if( m_dbTypes[typ] == 0 ) {
       const std::string nam = typ.storageName();
-      IOODatabase* imp = Gaudi::PluginService::Factory<IOODatabase*>::create(nam);
+      IOODatabase* imp = Gaudi::PluginService::Factory<IOODatabase*()>::create(nam).release();
       if( imp )  {
          m_dbTypes[typ] = imp;
       } else {
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref
index 0d2823eadf67c972731d4b0831e5c9eb73eb940b..fd8dcc5704736e5ed51c08d29fd0b629bec10efb 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref
@@ -1,24 +1,19 @@
-Wed May 23 21:37:35 CEST 2018
+Wed Jul 18 18:17:35 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_AppendJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 47 genConfDb files
-Py:ConfigurableDb WARNING Found 1 duplicates among the 47 genConfDb files :
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -<component name>: <module> - [ <duplicates> ]
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -TrackTools: DerivationFrameworkTileCal.DerivationFrameworkTileCalConf - ['TileD3PDMaker.TileD3PDMakerConf']
-Py:ConfigurableDb WARNING Fix your cmt/requirements file !!
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus083.cern.ch on Wed May 23 21:37:56 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:17:42 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -26,40 +21,43 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 StatusCodeSvc        INFO initialize
 AthDictLoaderSvc     INFO in initialize...
 AthDictLoaderSvc     INFO acquired Dso-registry
-ClassIDSvc           INFO  getRegistryEntries: read 2322 CLIDRegistry entries for module ALL
-ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 WriteData           DEBUG Property update for OutputLevel : new value = 2
 WriteData            INFO in initialize()
-WriteData           DEBUG input handles: 0
-WriteData           DEBUG output handles: 0
-WriteData           DEBUG Data Deps for WriteData
-WriteTag             INFO in initialize()
-Stream1             DEBUG Property update for OutputLevel : new value = 2
-Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 1345 CLIDRegistry entries for module ALL
-Stream1             DEBUG In initialize 
-Stream1             DEBUG Found IDecisionSvc.
-DecisionSvc          INFO Inserting stream: Stream1 with no Algs
-Stream1             DEBUG End initialize 
-Stream1             DEBUG In initialize
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
 AthenaPoolCnvSvc    DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolCnvSvc     INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
 PoolSvc             DEBUG Property update for OutputLevel : new value = 2
+PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:Catalog1.xml) [ok]
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-05-22T2053/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus083.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
 PoolSvc              INFO Setting up APR FileCatalog and Streams
 PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
+WriteData           DEBUG input handles: 0
+WriteData           DEBUG output handles: 2
+WriteData           DEBUG Data Deps for WriteData
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+PetersHits' ) 
+WriteTag             INFO in initialize()
+Stream1             DEBUG Property update for OutputLevel : new value = 2
+Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
+ClassIDSvc           INFO  getRegistryEntries: read 1304 CLIDRegistry entries for module ALL
+Stream1             DEBUG In initialize 
+Stream1             DEBUG Found IDecisionSvc.
+DecisionSvc          INFO Inserting stream: Stream1 with no Algs
+Stream1             DEBUG End initialize 
+Stream1             DEBUG In initialize
 Stream1             DEBUG Found StoreGateSvc store.
 Stream1             DEBUG Found MetaDataStore store.
 OutputStreamSeq...   INFO Initializing OutputStreamSequencerSvc - package version AthenaServices-00-00-00
@@ -84,7 +82,7 @@ AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
 ApplicationMgr       INFO Application Manager Started successfully
 EventPersistenc...   INFO Added successfully Conversion service:McCnvSvc
-ClassIDSvc           INFO  getRegistryEntries: read 1392 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 460 CLIDRegistry entries for module ALL
 AthenaEventLoopMgr   INFO   ===>>>  start of run 2    <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #20, run #2 0 events processed so far  <<<===
 WriteData           DEBUG in execute()
@@ -462,20 +460,21 @@ WriteData            INFO in finalize()
 WriteTag             INFO in finalize()
 Stream1             DEBUG finalize: Optimize output
 Stream1             DEBUG finalize: end optimize output
+WriteData           DEBUG Calling destructor
 IncidentProcAlg2     INFO Finalize
 EventSelector        INFO finalize
-AthenaPoolCnvSvc    DEBUG releasing all workers
 DecisionSvc          INFO Finalized successfully.
+AthenaPoolCnvSvc    DEBUG releasing all workers
 AthDictLoaderSvc     INFO in finalize...
 ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
+commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 21
 cRep_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.238(+- 1.52)/    0/   10 [ms] #= 42
-commitOutput         INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.952(+- 2.94)/    0/   10 [ms] #= 21
-fRep_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.476(+- 2.13)/    0/   10 [ms] #= 42
-cRepR_ALL            INFO Time User   : Tot=   20 [ms] Ave/Min/Max= 0.14(+- 1.17)/    0/   10 [ms] #=143
-ChronoStatSvc        INFO Time User   : Tot= 1.77  [s]                                             #=  1
+fRep_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.238(+- 1.52)/    0/   10 [ms] #= 42
+cRepR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.0699(+-0.833)/    0/   10 [ms] #=143
+ChronoStatSvc        INFO Time User   : Tot= 0.77  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref
index bbe91692dfdf8d4478d14a87685ae2b5379d8cc9..610977114f462b91be8906df907c9099979fe049 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref
@@ -1,24 +1,19 @@
-Thu May 24 03:25:39 CEST 2018
+Wed Jul 18 20:05:04 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ConcatJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 48 genConfDb files
-Py:ConfigurableDb WARNING Found 1 duplicates among the 48 genConfDb files :
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -<component name>: <module> - [ <duplicates> ]
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -TrackTools: DerivationFrameworkTileCal.DerivationFrameworkTileCalConf - ['TileD3PDMaker.TileD3PDMakerConf']
-Py:ConfigurableDb WARNING Fix your cmt/requirements file !!
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus028.cern.ch on Thu May 24 03:26:09 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 20:05:12 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -26,39 +21,43 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 StatusCodeSvc        INFO initialize
 AthDictLoaderSvc     INFO in initialize...
 AthDictLoaderSvc     INFO acquired Dso-registry
-ClassIDSvc           INFO  getRegistryEntries: read 2322 CLIDRegistry entries for module ALL
-ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 384 CLIDRegistry entries for module ALL
 WriteData           DEBUG Property update for OutputLevel : new value = 2
 WriteData            INFO in initialize()
-WriteData           DEBUG input handles: 0
-WriteData           DEBUG output handles: 0
-WriteData           DEBUG Data Deps for WriteData
-Stream1             DEBUG Property update for OutputLevel : new value = 2
-Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 1729 CLIDRegistry entries for module ALL
-Stream1             DEBUG In initialize 
-Stream1             DEBUG Found IDecisionSvc.
-DecisionSvc          INFO Inserting stream: Stream1 with no Algs
-Stream1             DEBUG End initialize 
-Stream1             DEBUG In initialize
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
 AthenaPoolCnvSvc    DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolCnvSvc     INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
 PoolSvc             DEBUG Property update for OutputLevel : new value = 2
+PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:Catalog1.xml) [ok]
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-05-22T2101/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus028.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
 PoolSvc              INFO Setting up APR FileCatalog and Streams
 PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
+WriteData           DEBUG input handles: 0
+WriteData           DEBUG output handles: 2
+WriteData           DEBUG Data Deps for WriteData
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+PetersHits' ) 
+Stream1             DEBUG Property update for OutputLevel : new value = 2
+Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
+ClassIDSvc           INFO  getRegistryEntries: read 1272 CLIDRegistry entries for module ALL
+Stream1             DEBUG In initialize 
+Stream1             DEBUG Found IDecisionSvc.
+DecisionSvc          INFO Inserting stream: Stream1 with no Algs
+Stream1             DEBUG End initialize 
+Stream1             DEBUG In initialize
 Stream1             DEBUG Found StoreGateSvc store.
 Stream1             DEBUG Found MetaDataStore store.
 OutputStreamSeq...   INFO Initializing OutputStreamSequencerSvc - package version AthenaServices-00-00-00
@@ -81,12 +80,13 @@ MakeInputDataHe...   INFO Initializing MakeInputDataHeader - package version Out
 MakeInputDataHe...   INFO Name of Stream to be made Input: Stream1
 ReWriteData         DEBUG Property update for OutputLevel : new value = 2
 ReWriteData          INFO in initialize()
-ReWriteData         DEBUG input handles: 0
-ReWriteData         DEBUG output handles: 0
+ReWriteData         DEBUG input handles: 1
+ReWriteData         DEBUG output handles: 1
 ReWriteData         DEBUG Data Deps for ReWriteData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + OUTPUT  ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 Stream2             DEBUG Property update for OutputLevel : new value = 2
 Stream2.Stream2...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 900 CLIDRegistry entries for module ALL
 Stream2             DEBUG In initialize 
 Stream2             DEBUG Found IDecisionSvc.
 DecisionSvc          INFO Inserting stream: Stream2 with no Algs
@@ -1320,20 +1320,22 @@ Stream1             DEBUG finalize: end optimize output
 ReWriteData          INFO in finalize()
 Stream2             DEBUG finalize: Optimize output
 Stream2             DEBUG finalize: end optimize output
+WriteData           DEBUG Calling destructor
+ReWriteData         DEBUG Calling destructor
 IncidentProcAlg2     INFO Finalize
 EventSelector        INFO finalize
-AthenaPoolCnvSvc    DEBUG releasing all workers
 DecisionSvc          INFO Finalized successfully.
+AthenaPoolCnvSvc    DEBUG releasing all workers
 AthDictLoaderSvc     INFO in finalize...
 ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-commitOutput         INFO Time User   : Tot=   60 [ms] Ave/Min/Max= 1.43(+-  3.5)/    0/   10 [ms] #= 42
-cRepR_ALL            INFO Time User   : Tot=  160 [ms] Ave/Min/Max=0.964(+- 6.13)/    0/   60 [ms] #=166
-cRep_ALL             INFO Time User   : Tot=  200 [ms] Ave/Min/Max= 1.61(+- 11.5)/    0/  100 [ms] #=124
-fRep_ALL             INFO Time User   : Tot=  300 [ms] Ave/Min/Max= 2.42(+- 11.7)/    0/   80 [ms] #=124
-ChronoStatSvc        INFO Time User   : Tot= 3.75  [s]                                             #=  1
+commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 42
+cRepR_ALL            INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.181(+- 1.33)/    0/   10 [ms] #=166
+fRep_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.242(+- 1.54)/    0/   10 [ms] #=124
+cRep_ALL             INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.403(+- 2.66)/    0/   20 [ms] #=124
+ChronoStatSvc        INFO Time User   : Tot= 0.78  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref
index 736ed3f30f39d8d05c70ae80f8c271efc63b390e..b36732510ffae6b92c112f0ff06eb044df308e05 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:30:46 CEST 2018
+Wed Jul 18 18:56:51 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_FilterJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:30:53 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:56:58 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -35,7 +36,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -48,6 +49,7 @@ EventSelector       DEBUG Property update for OutputLevel : new value = 2
 EventSelector        INFO Initializing EventSelector - package version EventSelectorAthenaPool-00-00-00
 EventSelector       DEBUG Service base class initialized successfully
 EventSelector.Q...  DEBUG Property update for OutputLevel : new value = 2
+ClassIDSvc           INFO  getRegistryEntries: read 1969 CLIDRegistry entries for module ALL
 EventSelector.Q...   INFO in initialize()
 EventSelector        INFO reinitialization...
 EventSelector        INFO EventSelection with query EventNumber > 5
@@ -128,12 +130,14 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 Stream1             DEBUG Property update for OutputLevel : new value = 2
 Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 3018 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 76 CLIDRegistry entries for module ALL
 Stream1             DEBUG In initialize 
 Stream1             DEBUG Found IDecisionSvc.
 DecisionSvc          INFO Inserting stream: Stream1 with no Algs
@@ -816,13 +820,13 @@ EventSelector.Q...   INFO in finalize()
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
+commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 11
 cRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 32
-commitOutput         INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.909(+- 2.87)/    0/   10 [ms] #= 11
-fRep_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.312(+- 1.74)/    0/   10 [ms] #= 32
-cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 35
-cRepR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.233(+- 1.51)/    0/   10 [ms] #= 43
-cObj_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.606(+- 2.39)/    0/   10 [ms] #= 33
-ChronoStatSvc        INFO Time User   : Tot= 0.88  [s]                                             #=  1
+fRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 32
+cRepR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 43
+cObjR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.286(+- 1.67)/    0/   10 [ms] #= 35
+cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.909(+- 2.87)/    0/   10 [ms] #= 33
+ChronoStatSvc        INFO Time User   : Tot= 0.83  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
index c23f482c048c36ab54fc68d7ef6c880b007fb960..1f54fbaa0dc0968ff669c99e4373c09bce1de23e 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:52:18 CEST 2018
+Wed Jul 18 20:12:05 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_RCondJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:52:26 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 20:12:13 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadCond            DEBUG Property update for OutputLevel : new value = 2
 ReadCond             INFO in initialize()
 ReadCond            DEBUG input handles: 0
@@ -40,7 +41,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -165,9 +166,11 @@ SimplePoolFile4...  DEBUG --->Reading Param:PFN=[SimplePoolFile4.root]
 SimplePoolFile4...  DEBUG --->Reading Param:POOL_VSN=[1.1]
 SimplePoolFile4...  DEBUG --->Reading Param:FORMAT_VSN=[1.1]
 ##Params            DEBUG No objects passing selection criteria... Container has 4 Entries in total.
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -238,7 +241,7 @@ MetaDataSvc         DEBUG Loaded input meta data store proxies
 MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 0
-ClassIDSvc           INFO  getRegistryEntries: read 2687 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1714 CLIDRegistry entries for module ALL
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
 EventSelector       DEBUG found AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000]
@@ -293,9 +296,9 @@ ReadData             INFO CLID = 9102, key = MyHits
 ReadData             INFO CLID = 222376821, key = StreamX
 ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
 ReadData             INFO TagInfo: 
-ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
 ReadData             INFO EventInfo event: 0 run: 1
 ReadData             INFO Get Smart data ptr 1
+ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 SimplePoolFile1...  DEBUG --> Access   DbContainer  READ      [ROOT_Tree] CollectionTree(ExampleHitContainer_p1/MyHits)
 CollectionTree(...  DEBUG Opening
@@ -958,8 +961,8 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
 cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 70
-cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.462(+- 2.73)/    0/   20 [ms] #= 65
-ChronoStatSvc        INFO Time User   : Tot= 0.83  [s]                                             #=  1
+cObj_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.308(+- 1.73)/    0/   10 [ms] #= 65
+ChronoStatSvc        INFO Time User   : Tot= 0.82  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilter.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilter.ref
index 5ca6d2ff234d03ab13fbac570c8e0d5317c94bce..604d8576a2c4bc692967202e8acb8af634db8035 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilter.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilter.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:30:56 CEST 2018
+Wed Jul 18 18:57:01 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_RFilterJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:31:04 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:57:09 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -35,7 +36,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -54,9 +55,11 @@ EventSelector       DEBUG Try item: "SimplePoolCollection5.root" from the collec
 EventSelector        INFO Using standard collection ref 
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -64,7 +67,7 @@ EventSelector       DEBUG Try item: "SimplePoolCollection5.root" from the collec
 ApplicationMgr       INFO Application Manager Started successfully
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 2
-ClassIDSvc           INFO  getRegistryEntries: read 2609 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1636 CLIDRegistry entries for module ALL
 EventSelector       DEBUG record AthenaAttribute, name = Stream1_derived_ref = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
 EventSelector       DEBUG record AthenaAttribute, name = Stream1_ref = [DB=????][CNT=][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -331,8 +334,8 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
 cObjR_ALL            INFO Time User   : Tot=   80 [ms] Ave/Min/Max= 2.58(+- 14.1)/    0/   80 [ms] #= 31
-cObj_ALL             INFO Time User   : Tot=  110 [ms] Ave/Min/Max= 3.67(+- 16.2)/    0/   90 [ms] #= 30
-ChronoStatSvc        INFO Time User   : Tot=  0.8  [s]                                             #=  1
+cObj_ALL             INFO Time User   : Tot=  100 [ms] Ave/Min/Max= 3.33(+- 16.2)/    0/   90 [ms] #= 30
+ChronoStatSvc        INFO Time User   : Tot= 0.74  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref
index 60498c03d390df67061250aca18d3a0499748fac..af6a39289c3a44b4a977cb552d0e2432d1038f0a 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:52:39 CEST 2018
+Wed Jul 18 19:56:25 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_RMetaJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:52:47 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 19:56:33 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -37,7 +38,7 @@ PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.x
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -124,9 +125,11 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -206,7 +209,7 @@ MetaData(Exampl...  DEBUG Opening
 MetaData(Exampl...  DEBUG    attributes# = 1
 MetaData(Exampl...  DEBUG Branch container 'ExampleHitContainer_p1_PedestalWriteData'
 MetaData(Exampl...  DEBUG Opened container MetaData(ExampleHitContainer_p1/PedestalWriteData) of type ROOT_Tree
-ClassIDSvc           INFO  getRegistryEntries: read 2697 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1724 CLIDRegistry entries for module ALL
 ToolSvc.AthPool...   INFO Pedestal x = 193136 y = -5580.01 z = -175208 string = <..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o>
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 0
@@ -870,8 +873,8 @@ ToolSvc.AthPool...   INFO in finalize()
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
 cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 67
-cObj_ALL             INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.781(+- 3.21)/    0/   20 [ms] #= 64
-ChronoStatSvc        INFO Time User   : Tot= 0.82  [s]                                             #=  1
+cObj_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.312(+- 1.74)/    0/   10 [ms] #= 64
+ChronoStatSvc        INFO Time User   : Tot= 0.78  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py
index 360eb580981b252fbf3772dde0496cfd3be282b2..daef84be46304348b19702a60a656fd30dd9d8d8 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RWJobOptions.py
@@ -76,6 +76,7 @@ from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolE
 topSequence += AthPoolEx__WriteTag("WriteTag")
 MagicWriteTag = AthPoolEx__WriteTag( "MagicWriteTag" )
 MagicWriteTag.Key = "MagicTag"
+MagicWriteTag.TagKey = "MagicTag"
 MagicWriteTag.Magic = 24
 topSequence += MagicWriteTag
 
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref
index 37eb613f6e6ecfd082846eebfdb286e69a1ebf23..9dfc969acb6d0ef83eea519d764e802cd9a78457 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:06:34 CEST 2018
+Wed Jul 18 18:24:33 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_RWJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:06:43 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:24:41 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -36,7 +37,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -126,19 +127,23 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 ReWriteData         DEBUG Property update for OutputLevel : new value = 2
 ReWriteData          INFO in initialize()
-ReWriteData         DEBUG input handles: 0
-ReWriteData         DEBUG output handles: 0
+ReWriteData         DEBUG input handles: 1
+ReWriteData         DEBUG output handles: 1
 ReWriteData         DEBUG Data Deps for ReWriteData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + OUTPUT  ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 WriteTag             INFO in initialize()
 MagicWriteTag        INFO in initialize()
 Stream1             DEBUG Property update for OutputLevel : new value = 2
 Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 3018 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 2045 CLIDRegistry entries for module ALL
 Stream1             DEBUG In initialize 
 Stream1             DEBUG Found IDecisionSvc.
 DecisionSvc          INFO Inserting stream: Stream1 with no Algs
@@ -1971,13 +1976,13 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
+commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 21
 cRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 62
 cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 66
-commitOutput         INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.476(+- 2.13)/    0/   10 [ms] #= 21
-fRep_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.161(+- 1.26)/    0/   10 [ms] #= 62
-cRepR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.0613(+-0.781)/    0/   10 [ms] #=163
-cObj_ALL             INFO Time User   : Tot=   40 [ms] Ave/Min/Max=0.635(+- 3.02)/    0/   20 [ms] #= 63
-ChronoStatSvc        INFO Time User   : Tot= 0.93  [s]                                             #=  1
+cRepR_ALL            INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.123(+- 1.56)/    0/   20 [ms] #=163
+fRep_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.484(+-  2.8)/    0/   20 [ms] #= 62
+cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.476(+- 2.13)/    0/   10 [ms] #= 63
+ChronoStatSvc        INFO Time User   : Tot= 0.89  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref
index f71b52126af0fec11759f064459bd950983a6818..01051bf9a6d5f309db01d94c5c1787f8067dd0b1 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:24:42 CEST 2018
+Wed Jul 18 18:50:57 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ReWriteAgainJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:24:49 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:51:05 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -36,7 +37,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -120,19 +121,23 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 ReWriteData         DEBUG Property update for OutputLevel : new value = 2
 ReWriteData          INFO in initialize()
-ReWriteData         DEBUG input handles: 0
-ReWriteData         DEBUG output handles: 0
+ReWriteData         DEBUG input handles: 1
+ReWriteData         DEBUG output handles: 1
 ReWriteData         DEBUG Data Deps for ReWriteData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + OUTPUT  ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 WriteTag             INFO in initialize()
 MagicWriteTag        INFO in initialize()
 Stream1             DEBUG Property update for OutputLevel : new value = 2
 Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 3015 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 2042 CLIDRegistry entries for module ALL
 Stream1             DEBUG In initialize 
 Stream1             DEBUG Found IDecisionSvc.
 DecisionSvc          INFO Inserting stream: Stream1 with no Algs
@@ -2028,12 +2033,12 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
 cRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 62
-cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 65
-commitOutput         INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.952(+- 2.94)/    0/   10 [ms] #= 21
-fRep_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.161(+- 1.26)/    0/   10 [ms] #= 62
-cRepR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.0613(+-0.781)/    0/   10 [ms] #=163
-cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.476(+- 2.78)/    0/   20 [ms] #= 63
-ChronoStatSvc        INFO Time User   : Tot= 0.88  [s]                                             #=  1
+commitOutput         INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.476(+- 2.13)/    0/   10 [ms] #= 21
+cObjR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.154(+- 1.23)/    0/   10 [ms] #= 65
+fRep_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.484(+-  2.8)/    0/   20 [ms] #= 62
+cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.476(+- 2.13)/    0/   10 [ms] #= 63
+cRepR_ALL            INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.184(+- 1.74)/    0/   20 [ms] #=163
+ChronoStatSvc        INFO Time User   : Tot= 0.91  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py
index a22b7ce2512dd980e8f74388e6c904970873949a..620ae1e040bac7c210cf51d5d77960f5be12112c 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgainJobOptions.py
@@ -76,6 +76,7 @@ from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolE
 topSequence += AthPoolEx__WriteTag("WriteTag")
 MagicWriteTag = AthPoolEx__WriteTag( "MagicWriteTag" )
 MagicWriteTag.Key = "MagicTag"
+MagicWriteTag.TagKey = "MagicTag"
 MagicWriteTag.Magic = 24
 topSequence += MagicWriteTag
 
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref
index b1ad6a656c57500c7859980d9e1f82636f1d407d..54dd59069d7e3c9dced8b1ec58b6d0f0d1a43175 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:24:52 CEST 2018
+Wed Jul 18 18:51:08 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ReWriteNextJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:25:01 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:51:17 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -36,7 +37,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -126,19 +127,23 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 ReWriteData         DEBUG Property update for OutputLevel : new value = 2
 ReWriteData          INFO in initialize()
-ReWriteData         DEBUG input handles: 0
-ReWriteData         DEBUG output handles: 0
+ReWriteData         DEBUG input handles: 1
+ReWriteData         DEBUG output handles: 1
 ReWriteData         DEBUG Data Deps for ReWriteData
+  + INPUT IGNORED  ( 'ExampleHitContainer' , '' ) 
+  + OUTPUT IGNORED  ( 'ExampleTrackContainer' , '' ) 
 WriteTag             INFO in initialize()
 MagicWriteTag        INFO in initialize()
 Stream1             DEBUG Property update for OutputLevel : new value = 2
 Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 3018 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 2045 CLIDRegistry entries for module ALL
 Stream1             DEBUG In initialize 
 Stream1             DEBUG Found IDecisionSvc.
 DecisionSvc          INFO Inserting stream: Stream1 with no Algs
@@ -245,8 +250,8 @@ ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks Elemen
 ReadData             INFO Could not find ExampleHitContainer/MyHits
 ReWriteData         DEBUG in execute()
 ReWriteData          INFO registered all data
-ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
 WriteTag             INFO EventInfo event: 0  run: 1
+ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
 WriteTag             INFO registered all data
 MagicWriteTag        INFO EventInfo event: 0  run: 1
 MagicWriteTag        INFO registered all data
@@ -1369,10 +1374,10 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 21
 cRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 62
 cRepR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #=163
-fRep_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.161(+- 1.26)/    0/   10 [ms] #= 62
+commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 21
+fRep_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.323(+- 1.77)/    0/   10 [ms] #= 62
 cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 65
 cObj_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.317(+- 1.75)/    0/   10 [ms] #= 63
 ChronoStatSvc        INFO Time User   : Tot=  0.9  [s]                                             #=  1
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py
index 0f040b42f18b7576f0a12fe2428be69074fd4746..b4bb295563dadbd218501422a6ff75eb1a86caa0 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNextJobOptions.py
@@ -70,12 +70,13 @@ svcMgr.AthenaPoolCnvSvc.CommitInterval = 10;
 # Load "user algorithm" top algorithms to be run, and the libraries that house them
 from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__ReadData,AthPoolEx__ReWriteData
 topSequence += AthPoolEx__ReadData("ReadData")
-topSequence += AthPoolEx__ReWriteData("ReWriteData")
+topSequence += AthPoolEx__ReWriteData("ReWriteData", ExampleHitKey="")
 
 from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__WriteTag
 topSequence += AthPoolEx__WriteTag("WriteTag")
 MagicWriteTag = AthPoolEx__WriteTag( "MagicWriteTag" )
 MagicWriteTag.Key = "MagicTag"
+MagicWriteTag.TagKey = "MagicTag"
 MagicWriteTag.Magic = 24
 topSequence += MagicWriteTag
 
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref
index fb3630bee8d536283afaa125e2cc855288c3ab5f..baaed5e335c73ef360706633ea531889377a29bc 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:19:44 CEST 2018
+Wed Jul 18 18:29:06 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ReadJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:19:53 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:29:15 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -35,7 +36,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -169,9 +170,11 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -256,7 +259,7 @@ EventSelector        INFO skipping event 9
 EventSelector        INFO skipping event 10
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
-ClassIDSvc           INFO  getRegistryEntries: read 2690 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1717 CLIDRegistry entries for module ALL
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG found AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A]
@@ -315,7 +318,7 @@ ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = Dum
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
 ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 1 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -348,7 +351,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 2 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -381,7 +384,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 3 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -414,7 +417,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 4 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -447,7 +450,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 5 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -480,7 +483,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 6 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -513,7 +516,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 7 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -546,7 +549,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 8 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -579,7 +582,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 9 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -612,7 +615,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 10 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -809,7 +812,7 @@ ReadData             INFO EventInfo event: 0 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 11 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -837,7 +840,7 @@ ReadData             INFO EventInfo event: 1 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 12 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -865,7 +868,7 @@ ReadData             INFO EventInfo event: 2 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 13 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -893,7 +896,7 @@ ReadData             INFO EventInfo event: 3 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 14 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -921,7 +924,7 @@ ReadData             INFO EventInfo event: 4 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 15 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -949,7 +952,7 @@ ReadData             INFO EventInfo event: 5 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 16 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -977,7 +980,7 @@ ReadData             INFO EventInfo event: 6 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 17 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1005,7 +1008,7 @@ ReadData             INFO EventInfo event: 7 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 18 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1033,7 +1036,7 @@ ReadData             INFO EventInfo event: 8 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 19 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1061,7 +1064,7 @@ ReadData             INFO EventInfo event: 9 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 20 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1089,7 +1092,7 @@ ReadData             INFO EventInfo event: 10 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 21 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1117,7 +1120,7 @@ ReadData             INFO EventInfo event: 11 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 22 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1145,7 +1148,7 @@ ReadData             INFO EventInfo event: 12 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 23 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1173,7 +1176,7 @@ ReadData             INFO EventInfo event: 13 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 24 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1201,7 +1204,7 @@ ReadData             INFO EventInfo event: 14 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 25 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1229,7 +1232,7 @@ ReadData             INFO EventInfo event: 15 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 26 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1257,7 +1260,7 @@ ReadData             INFO EventInfo event: 16 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 27 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1285,7 +1288,7 @@ ReadData             INFO EventInfo event: 17 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 28 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1313,7 +1316,7 @@ ReadData             INFO EventInfo event: 18 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 29 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1341,7 +1344,7 @@ ReadData             INFO EventInfo event: 19 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 30 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1370,7 +1373,7 @@ ReadData             INFO EventInfo event: 20 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #20, run #2 31 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1398,7 +1401,7 @@ ReadData             INFO EventInfo event: 21 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #21, run #2 32 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1426,7 +1429,7 @@ ReadData             INFO EventInfo event: 22 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #22, run #2 33 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1454,7 +1457,7 @@ ReadData             INFO EventInfo event: 23 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #23, run #2 34 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1482,7 +1485,7 @@ ReadData             INFO EventInfo event: 24 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #24, run #2 35 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1510,7 +1513,7 @@ ReadData             INFO EventInfo event: 25 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #25, run #2 36 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1538,7 +1541,7 @@ ReadData             INFO EventInfo event: 26 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #26, run #2 37 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1566,7 +1569,7 @@ ReadData             INFO EventInfo event: 27 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #27, run #2 38 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1594,7 +1597,7 @@ ReadData             INFO EventInfo event: 28 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #28, run #2 39 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1622,7 +1625,7 @@ ReadData             INFO EventInfo event: 29 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #29, run #2 40 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1650,7 +1653,7 @@ ReadData             INFO EventInfo event: 30 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #30, run #2 41 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1678,7 +1681,7 @@ ReadData             INFO EventInfo event: 31 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #31, run #2 42 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1706,7 +1709,7 @@ ReadData             INFO EventInfo event: 32 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #32, run #2 43 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1734,7 +1737,7 @@ ReadData             INFO EventInfo event: 33 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #33, run #2 44 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1762,7 +1765,7 @@ ReadData             INFO EventInfo event: 34 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #34, run #2 45 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1790,7 +1793,7 @@ ReadData             INFO EventInfo event: 35 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #35, run #2 46 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1818,7 +1821,7 @@ ReadData             INFO EventInfo event: 36 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #36, run #2 47 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1846,7 +1849,7 @@ ReadData             INFO EventInfo event: 37 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #37, run #2 48 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1874,7 +1877,7 @@ ReadData             INFO EventInfo event: 38 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #38, run #2 49 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1902,7 +1905,7 @@ ReadData             INFO EventInfo event: 39 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #39, run #2 50 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -2136,7 +2139,7 @@ ReadData             INFO Hit x = 20.4945 y = 63.5816 z = 48.1358 detector = Dum
 ReadData             INFO Hit x = 23.7045 y = 57.9027 z = 46.3159 detector = DummyHitDetector
 ReadData             INFO Hit x = 26.9145 y = 52.2238 z = 44.9265 detector = DummyHitDetector
 ReadData             INFO Hit x = 30.1245 y = 46.5449 z = 43.831 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 51 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2183,7 +2186,7 @@ ReadData             INFO Hit x = 120.494 y = 63.5816 z = -51.8642 detector = Du
 ReadData             INFO Hit x = 123.704 y = 57.9027 z = -53.6841 detector = DummyHitDetector
 ReadData             INFO Hit x = 126.915 y = 52.2238 z = -55.0735 detector = DummyHitDetector
 ReadData             INFO Hit x = 130.125 y = 46.5449 z = -56.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 52 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2230,7 +2233,7 @@ ReadData             INFO Hit x = 220.494 y = 63.5816 z = -151.864 detector = Du
 ReadData             INFO Hit x = 223.704 y = 57.9027 z = -153.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 226.915 y = 52.2238 z = -155.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 230.125 y = 46.5449 z = -156.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 53 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2277,7 +2280,7 @@ ReadData             INFO Hit x = 320.495 y = 63.5816 z = -251.864 detector = Du
 ReadData             INFO Hit x = 323.705 y = 57.9027 z = -253.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 326.915 y = 52.2238 z = -255.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 330.125 y = 46.5449 z = -256.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 54 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2324,7 +2327,7 @@ ReadData             INFO Hit x = 420.495 y = 63.5816 z = -351.864 detector = Du
 ReadData             INFO Hit x = 423.705 y = 57.9027 z = -353.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 426.915 y = 52.2238 z = -355.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 430.125 y = 46.5449 z = -356.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 55 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2371,7 +2374,7 @@ ReadData             INFO Hit x = 520.495 y = 63.5816 z = -451.864 detector = Du
 ReadData             INFO Hit x = 523.705 y = 57.9027 z = -453.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 526.914 y = 52.2238 z = -455.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 530.125 y = 46.5449 z = -456.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 56 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2418,7 +2421,7 @@ ReadData             INFO Hit x = 620.495 y = 63.5816 z = -551.864 detector = Du
 ReadData             INFO Hit x = 623.705 y = 57.9027 z = -553.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 626.914 y = 52.2238 z = -555.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 630.125 y = 46.5449 z = -556.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 57 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2465,7 +2468,7 @@ ReadData             INFO Hit x = 720.495 y = 63.5816 z = -651.864 detector = Du
 ReadData             INFO Hit x = 723.705 y = 57.9027 z = -653.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 726.914 y = 52.2238 z = -655.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 730.125 y = 46.5449 z = -656.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 58 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2512,7 +2515,7 @@ ReadData             INFO Hit x = 820.495 y = 63.5816 z = -751.864 detector = Du
 ReadData             INFO Hit x = 823.705 y = 57.9027 z = -753.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 826.914 y = 52.2238 z = -755.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 830.125 y = 46.5449 z = -756.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 59 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2559,7 +2562,7 @@ ReadData             INFO Hit x = 920.495 y = 63.5816 z = -851.864 detector = Du
 ReadData             INFO Hit x = 923.705 y = 57.9027 z = -853.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 926.914 y = 52.2238 z = -855.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 930.125 y = 46.5449 z = -856.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 60 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2606,7 +2609,7 @@ ReadData             INFO Hit x = 1020.49 y = 63.5816 z = -951.864 detector = Du
 ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 61 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2653,7 +2656,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 62 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2700,7 +2703,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 63 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2747,7 +2750,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 64 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2794,7 +2797,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 65 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2841,7 +2844,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 66 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2888,7 +2891,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 67 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2935,7 +2938,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 68 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2982,7 +2985,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 69 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3029,7 +3032,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 70 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -3048,9 +3051,9 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-cObjR_ALL            INFO Time User   : Tot=   30 [ms] Ave/Min/Max= 0.11(+- 1.04)/    0/   10 [ms] #=272
-cObj_ALL             INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.226(+- 1.49)/    0/   10 [ms] #=221
-ChronoStatSvc        INFO Time User   : Tot= 0.92  [s]                                             #=  1
+cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #=272
+cObj_ALL             INFO Time User   : Tot=   40 [ms] Ave/Min/Max=0.181(+- 1.64)/    0/   20 [ms] #=221
+ChronoStatSvc        INFO Time User   : Tot= 0.89  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref
index efc5bdc1f9b0c69f28359d163036bdcb55b8f172..dfbb976caf96ccd90736e9424271b6554e1ecf7b 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:34:57 CEST 2018
+Wed Jul 18 20:11:19 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ReadAgainJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:35:04 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 20:11:27 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -35,7 +36,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -163,9 +164,11 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -320,7 +323,7 @@ EventSelector        INFO skipping event 9
 EventSelector        INFO skipping event 10
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 0
-ClassIDSvc           INFO  getRegistryEntries: read 2687 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1714 CLIDRegistry entries for module ALL
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG found AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A]
@@ -869,7 +872,7 @@ ReadData             INFO EventInfo event: 0 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 11 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -897,7 +900,7 @@ ReadData             INFO EventInfo event: 1 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 12 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -925,7 +928,7 @@ ReadData             INFO EventInfo event: 2 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 13 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -953,7 +956,7 @@ ReadData             INFO EventInfo event: 3 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 14 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -981,7 +984,7 @@ ReadData             INFO EventInfo event: 4 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 15 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1009,7 +1012,7 @@ ReadData             INFO EventInfo event: 5 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 16 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1037,7 +1040,7 @@ ReadData             INFO EventInfo event: 6 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 17 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1065,7 +1068,7 @@ ReadData             INFO EventInfo event: 7 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 18 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1093,7 +1096,7 @@ ReadData             INFO EventInfo event: 8 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 19 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1121,7 +1124,7 @@ ReadData             INFO EventInfo event: 9 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 20 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1149,7 +1152,7 @@ ReadData             INFO EventInfo event: 10 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 21 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1177,7 +1180,7 @@ ReadData             INFO EventInfo event: 11 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 22 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1205,7 +1208,7 @@ ReadData             INFO EventInfo event: 12 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 23 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1233,7 +1236,7 @@ ReadData             INFO EventInfo event: 13 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 24 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1261,7 +1264,7 @@ ReadData             INFO EventInfo event: 14 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 25 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1289,7 +1292,7 @@ ReadData             INFO EventInfo event: 15 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 26 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1317,7 +1320,7 @@ ReadData             INFO EventInfo event: 16 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 27 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1345,7 +1348,7 @@ ReadData             INFO EventInfo event: 17 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 28 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1373,7 +1376,7 @@ ReadData             INFO EventInfo event: 18 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 29 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1401,7 +1404,7 @@ ReadData             INFO EventInfo event: 19 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26615
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 30 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1430,7 +1433,7 @@ ReadData             INFO EventInfo event: 20 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #20, run #2 31 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1458,7 +1461,7 @@ ReadData             INFO EventInfo event: 21 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #21, run #2 32 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1486,7 +1489,7 @@ ReadData             INFO EventInfo event: 22 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #22, run #2 33 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1514,7 +1517,7 @@ ReadData             INFO EventInfo event: 23 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #23, run #2 34 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1542,7 +1545,7 @@ ReadData             INFO EventInfo event: 24 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #24, run #2 35 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1570,7 +1573,7 @@ ReadData             INFO EventInfo event: 25 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #25, run #2 36 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1598,7 +1601,7 @@ ReadData             INFO EventInfo event: 26 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #26, run #2 37 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1626,7 +1629,7 @@ ReadData             INFO EventInfo event: 27 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #27, run #2 38 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1654,7 +1657,7 @@ ReadData             INFO EventInfo event: 28 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #28, run #2 39 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1682,7 +1685,7 @@ ReadData             INFO EventInfo event: 29 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #29, run #2 40 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1710,7 +1713,7 @@ ReadData             INFO EventInfo event: 30 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #30, run #2 41 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1738,7 +1741,7 @@ ReadData             INFO EventInfo event: 31 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #31, run #2 42 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1766,7 +1769,7 @@ ReadData             INFO EventInfo event: 32 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #32, run #2 43 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1794,7 +1797,7 @@ ReadData             INFO EventInfo event: 33 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #33, run #2 44 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1822,7 +1825,7 @@ ReadData             INFO EventInfo event: 34 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #34, run #2 45 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1850,7 +1853,7 @@ ReadData             INFO EventInfo event: 35 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #35, run #2 46 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1878,7 +1881,7 @@ ReadData             INFO EventInfo event: 36 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #36, run #2 47 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1906,7 +1909,7 @@ ReadData             INFO EventInfo event: 37 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #37, run #2 48 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1934,7 +1937,7 @@ ReadData             INFO EventInfo event: 38 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #38, run #2 49 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1962,7 +1965,7 @@ ReadData             INFO EventInfo event: 39 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28228
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #39, run #2 50 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -2253,7 +2256,7 @@ ReadData             INFO Hit x = 20.4945 y = 63.5816 z = 48.1358 detector = Dum
 ReadData             INFO Hit x = 23.7045 y = 57.9027 z = 46.3159 detector = DummyHitDetector
 ReadData             INFO Hit x = 26.9145 y = 52.2238 z = 44.9265 detector = DummyHitDetector
 ReadData             INFO Hit x = 30.1245 y = 46.5449 z = 43.831 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 51 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2300,7 +2303,7 @@ ReadData             INFO Hit x = 120.494 y = 63.5816 z = -51.8642 detector = Du
 ReadData             INFO Hit x = 123.704 y = 57.9027 z = -53.6841 detector = DummyHitDetector
 ReadData             INFO Hit x = 126.915 y = 52.2238 z = -55.0735 detector = DummyHitDetector
 ReadData             INFO Hit x = 130.125 y = 46.5449 z = -56.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 52 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2347,7 +2350,7 @@ ReadData             INFO Hit x = 220.494 y = 63.5816 z = -151.864 detector = Du
 ReadData             INFO Hit x = 223.704 y = 57.9027 z = -153.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 226.915 y = 52.2238 z = -155.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 230.125 y = 46.5449 z = -156.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 53 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2394,7 +2397,7 @@ ReadData             INFO Hit x = 320.495 y = 63.5816 z = -251.864 detector = Du
 ReadData             INFO Hit x = 323.705 y = 57.9027 z = -253.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 326.915 y = 52.2238 z = -255.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 330.125 y = 46.5449 z = -256.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 54 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2441,7 +2444,7 @@ ReadData             INFO Hit x = 420.495 y = 63.5816 z = -351.864 detector = Du
 ReadData             INFO Hit x = 423.705 y = 57.9027 z = -353.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 426.915 y = 52.2238 z = -355.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 430.125 y = 46.5449 z = -356.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 55 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2488,7 +2491,7 @@ ReadData             INFO Hit x = 520.495 y = 63.5816 z = -451.864 detector = Du
 ReadData             INFO Hit x = 523.705 y = 57.9027 z = -453.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 526.914 y = 52.2238 z = -455.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 530.125 y = 46.5449 z = -456.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 56 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2535,7 +2538,7 @@ ReadData             INFO Hit x = 620.495 y = 63.5816 z = -551.864 detector = Du
 ReadData             INFO Hit x = 623.705 y = 57.9027 z = -553.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 626.914 y = 52.2238 z = -555.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 630.125 y = 46.5449 z = -556.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 57 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2582,7 +2585,7 @@ ReadData             INFO Hit x = 720.495 y = 63.5816 z = -651.864 detector = Du
 ReadData             INFO Hit x = 723.705 y = 57.9027 z = -653.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 726.914 y = 52.2238 z = -655.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 730.125 y = 46.5449 z = -656.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 58 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2629,7 +2632,7 @@ ReadData             INFO Hit x = 820.495 y = 63.5816 z = -751.864 detector = Du
 ReadData             INFO Hit x = 823.705 y = 57.9027 z = -753.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 826.914 y = 52.2238 z = -755.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 830.125 y = 46.5449 z = -756.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 59 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2676,7 +2679,7 @@ ReadData             INFO Hit x = 920.495 y = 63.5816 z = -851.864 detector = Du
 ReadData             INFO Hit x = 923.705 y = 57.9027 z = -853.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 926.914 y = 52.2238 z = -855.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 930.125 y = 46.5449 z = -856.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 60 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2723,7 +2726,7 @@ ReadData             INFO Hit x = 1020.49 y = 63.5816 z = -951.864 detector = Du
 ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 61 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2770,7 +2773,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 62 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2817,7 +2820,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 63 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2864,7 +2867,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 64 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2911,7 +2914,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 65 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2958,7 +2961,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 66 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3005,7 +3008,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 67 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3052,7 +3055,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 68 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3099,7 +3102,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 69 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3146,7 +3149,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27338
 PoolSvc              INFO Database (SimplePoolFile4.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 70 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -3166,9 +3169,9 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-cObjR_ALL            INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.0643(+-0.799)/    0/   10 [ms] #=311
-cObj_ALL             INFO Time User   : Tot=   60 [ms] Ave/Min/Max=0.249(+-  1.8)/    0/   20 [ms] #=241
-ChronoStatSvc        INFO Time User   : Tot= 0.89  [s]                                             #=  1
+cObjR_ALL            INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.0965(+-0.977)/    0/   10 [ms] #=311
+cObj_ALL             INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.207(+- 1.43)/    0/   10 [ms] #=241
+ChronoStatSvc        INFO Time User   : Tot= 0.86  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref
index 062284de4df56d80a2ec964d06c9a5a2a3a347f9..b85bbf3976735313bc6cb1bb10b372c3895a05db 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:08:47 CEST 2018
+Wed Jul 18 18:29:06 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ReadBNJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:08:55 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:29:15 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -35,7 +36,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -170,9 +171,11 @@ MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
 AthenaPoolAddre...   INFO BackNavigationScope for: ExampleHitContainer#MyHits :: Stream1
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -257,7 +260,7 @@ EventSelector        INFO skipping event 9
 EventSelector        INFO skipping event 10
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
-ClassIDSvc           INFO  getRegistryEntries: read 2690 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1717 CLIDRegistry entries for module ALL
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG found AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A]
@@ -316,7 +319,7 @@ ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = Dum
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
 ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 1 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -349,7 +352,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 2 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -382,7 +385,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 3 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -415,7 +418,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 4 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -448,7 +451,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 5 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -481,7 +484,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 6 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -514,7 +517,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 7 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -547,7 +550,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 8 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -580,7 +583,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 9 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -613,7 +616,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27932
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 10 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -810,7 +813,7 @@ ReadData             INFO EventInfo event: 0 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 11 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -838,7 +841,7 @@ ReadData             INFO EventInfo event: 1 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 12 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -866,7 +869,7 @@ ReadData             INFO EventInfo event: 2 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 13 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -894,7 +897,7 @@ ReadData             INFO EventInfo event: 3 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 14 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -922,7 +925,7 @@ ReadData             INFO EventInfo event: 4 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 15 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -950,7 +953,7 @@ ReadData             INFO EventInfo event: 5 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 16 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -978,7 +981,7 @@ ReadData             INFO EventInfo event: 6 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 17 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1006,7 +1009,7 @@ ReadData             INFO EventInfo event: 7 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 18 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1034,7 +1037,7 @@ ReadData             INFO EventInfo event: 8 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 19 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1062,7 +1065,7 @@ ReadData             INFO EventInfo event: 9 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 20 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1090,7 +1093,7 @@ ReadData             INFO EventInfo event: 10 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 21 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1118,7 +1121,7 @@ ReadData             INFO EventInfo event: 11 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 22 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1146,7 +1149,7 @@ ReadData             INFO EventInfo event: 12 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 23 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1174,7 +1177,7 @@ ReadData             INFO EventInfo event: 13 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 24 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1202,7 +1205,7 @@ ReadData             INFO EventInfo event: 14 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 25 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1230,7 +1233,7 @@ ReadData             INFO EventInfo event: 15 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 26 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1258,7 +1261,7 @@ ReadData             INFO EventInfo event: 16 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 27 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1286,7 +1289,7 @@ ReadData             INFO EventInfo event: 17 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 28 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1314,7 +1317,7 @@ ReadData             INFO EventInfo event: 18 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 29 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1342,7 +1345,7 @@ ReadData             INFO EventInfo event: 19 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26628
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 30 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1371,7 +1374,7 @@ ReadData             INFO EventInfo event: 20 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #20, run #2 31 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1399,7 +1402,7 @@ ReadData             INFO EventInfo event: 21 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #21, run #2 32 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1427,7 +1430,7 @@ ReadData             INFO EventInfo event: 22 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #22, run #2 33 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1455,7 +1458,7 @@ ReadData             INFO EventInfo event: 23 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #23, run #2 34 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1483,7 +1486,7 @@ ReadData             INFO EventInfo event: 24 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #24, run #2 35 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1511,7 +1514,7 @@ ReadData             INFO EventInfo event: 25 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #25, run #2 36 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1539,7 +1542,7 @@ ReadData             INFO EventInfo event: 26 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #26, run #2 37 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1567,7 +1570,7 @@ ReadData             INFO EventInfo event: 27 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #27, run #2 38 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1595,7 +1598,7 @@ ReadData             INFO EventInfo event: 28 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #28, run #2 39 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1623,7 +1626,7 @@ ReadData             INFO EventInfo event: 29 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #29, run #2 40 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1651,7 +1654,7 @@ ReadData             INFO EventInfo event: 30 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #30, run #2 41 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1679,7 +1682,7 @@ ReadData             INFO EventInfo event: 31 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #31, run #2 42 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1707,7 +1710,7 @@ ReadData             INFO EventInfo event: 32 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #32, run #2 43 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1735,7 +1738,7 @@ ReadData             INFO EventInfo event: 33 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #33, run #2 44 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1763,7 +1766,7 @@ ReadData             INFO EventInfo event: 34 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #34, run #2 45 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1791,7 +1794,7 @@ ReadData             INFO EventInfo event: 35 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #35, run #2 46 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1819,7 +1822,7 @@ ReadData             INFO EventInfo event: 36 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #36, run #2 47 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1847,7 +1850,7 @@ ReadData             INFO EventInfo event: 37 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #37, run #2 48 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1875,7 +1878,7 @@ ReadData             INFO EventInfo event: 38 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #38, run #2 49 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1903,7 +1906,7 @@ ReadData             INFO EventInfo event: 39 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28241
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #39, run #2 50 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -2137,7 +2140,7 @@ ReadData             INFO Hit x = 20.4945 y = 63.5816 z = 48.1358 detector = Dum
 ReadData             INFO Hit x = 23.7045 y = 57.9027 z = 46.3159 detector = DummyHitDetector
 ReadData             INFO Hit x = 26.9145 y = 52.2238 z = 44.9265 detector = DummyHitDetector
 ReadData             INFO Hit x = 30.1245 y = 46.5449 z = 43.831 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 51 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2184,7 +2187,7 @@ ReadData             INFO Hit x = 120.494 y = 63.5816 z = -51.8642 detector = Du
 ReadData             INFO Hit x = 123.704 y = 57.9027 z = -53.6841 detector = DummyHitDetector
 ReadData             INFO Hit x = 126.915 y = 52.2238 z = -55.0735 detector = DummyHitDetector
 ReadData             INFO Hit x = 130.125 y = 46.5449 z = -56.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 52 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2231,7 +2234,7 @@ ReadData             INFO Hit x = 220.494 y = 63.5816 z = -151.864 detector = Du
 ReadData             INFO Hit x = 223.704 y = 57.9027 z = -153.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 226.915 y = 52.2238 z = -155.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 230.125 y = 46.5449 z = -156.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 53 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2278,7 +2281,7 @@ ReadData             INFO Hit x = 320.495 y = 63.5816 z = -251.864 detector = Du
 ReadData             INFO Hit x = 323.705 y = 57.9027 z = -253.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 326.915 y = 52.2238 z = -255.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 330.125 y = 46.5449 z = -256.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 54 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2325,7 +2328,7 @@ ReadData             INFO Hit x = 420.495 y = 63.5816 z = -351.864 detector = Du
 ReadData             INFO Hit x = 423.705 y = 57.9027 z = -353.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 426.915 y = 52.2238 z = -355.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 430.125 y = 46.5449 z = -356.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 55 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2372,7 +2375,7 @@ ReadData             INFO Hit x = 520.495 y = 63.5816 z = -451.864 detector = Du
 ReadData             INFO Hit x = 523.705 y = 57.9027 z = -453.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 526.914 y = 52.2238 z = -455.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 530.125 y = 46.5449 z = -456.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 56 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2419,7 +2422,7 @@ ReadData             INFO Hit x = 620.495 y = 63.5816 z = -551.864 detector = Du
 ReadData             INFO Hit x = 623.705 y = 57.9027 z = -553.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 626.914 y = 52.2238 z = -555.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 630.125 y = 46.5449 z = -556.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 57 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2466,7 +2469,7 @@ ReadData             INFO Hit x = 720.495 y = 63.5816 z = -651.864 detector = Du
 ReadData             INFO Hit x = 723.705 y = 57.9027 z = -653.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 726.914 y = 52.2238 z = -655.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 730.125 y = 46.5449 z = -656.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 58 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2513,7 +2516,7 @@ ReadData             INFO Hit x = 820.495 y = 63.5816 z = -751.864 detector = Du
 ReadData             INFO Hit x = 823.705 y = 57.9027 z = -753.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 826.914 y = 52.2238 z = -755.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 830.125 y = 46.5449 z = -756.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 59 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2560,7 +2563,7 @@ ReadData             INFO Hit x = 920.495 y = 63.5816 z = -851.864 detector = Du
 ReadData             INFO Hit x = 923.705 y = 57.9027 z = -853.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 926.914 y = 52.2238 z = -855.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 930.125 y = 46.5449 z = -856.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 60 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2607,7 +2610,7 @@ ReadData             INFO Hit x = 1020.49 y = 63.5816 z = -951.864 detector = Du
 ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 61 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2654,7 +2657,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 62 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2701,7 +2704,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 63 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2748,7 +2751,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 64 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2795,7 +2798,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 65 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2842,7 +2845,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 66 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2889,7 +2892,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 67 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2936,7 +2939,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 68 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2983,7 +2986,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 69 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3030,7 +3033,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 70 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -3049,8 +3052,8 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #=272
-cObj_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.0905(+-0.947)/    0/   10 [ms] #=221
+cObjR_ALL            INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.0735(+-0.854)/    0/   10 [ms] #=272
+cObj_ALL             INFO Time User   : Tot=   40 [ms] Ave/Min/Max=0.181(+- 1.64)/    0/   20 [ms] #=221
 ChronoStatSvc        INFO Time User   : Tot= 0.87  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref
index a213f9e891992986194d7eb0f36c611d814e6698..6e9bead523b8d91cf5da68c2e3844bd8a537f0ca 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:35:17 CEST 2018
+Wed Jul 18 20:05:14 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ReadJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:35:25 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 20:05:22 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -35,7 +36,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -163,9 +164,11 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -320,7 +323,7 @@ EventSelector        INFO skipping event 9
 EventSelector        INFO skipping event 10
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 0
-ClassIDSvc           INFO  getRegistryEntries: read 2687 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1714 CLIDRegistry entries for module ALL
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG found AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A]
@@ -374,7 +377,7 @@ ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = Dum
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
 ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 1 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -407,7 +410,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 2 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -440,7 +443,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 3 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -473,7 +476,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 4 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -506,7 +509,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 5 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -539,7 +542,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 6 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -572,7 +575,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 7 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -605,7 +608,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 8 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -638,7 +641,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 9 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -671,7 +674,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27510
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 10 events processed so far  <<<===
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
@@ -869,7 +872,7 @@ ReadData             INFO EventInfo event: 0 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 11 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -897,7 +900,7 @@ ReadData             INFO EventInfo event: 1 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 12 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -925,7 +928,7 @@ ReadData             INFO EventInfo event: 2 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 13 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -953,7 +956,7 @@ ReadData             INFO EventInfo event: 3 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 14 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -981,7 +984,7 @@ ReadData             INFO EventInfo event: 4 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 15 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1009,7 +1012,7 @@ ReadData             INFO EventInfo event: 5 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 16 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1037,7 +1040,7 @@ ReadData             INFO EventInfo event: 6 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 17 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1065,7 +1068,7 @@ ReadData             INFO EventInfo event: 7 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 18 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1093,7 +1096,7 @@ ReadData             INFO EventInfo event: 8 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 19 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1121,7 +1124,7 @@ ReadData             INFO EventInfo event: 9 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 20 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1149,7 +1152,7 @@ ReadData             INFO EventInfo event: 10 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 21 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1177,7 +1180,7 @@ ReadData             INFO EventInfo event: 11 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 22 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1205,7 +1208,7 @@ ReadData             INFO EventInfo event: 12 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 23 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1233,7 +1236,7 @@ ReadData             INFO EventInfo event: 13 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 24 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1261,7 +1264,7 @@ ReadData             INFO EventInfo event: 14 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 25 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1289,7 +1292,7 @@ ReadData             INFO EventInfo event: 15 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 26 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1317,7 +1320,7 @@ ReadData             INFO EventInfo event: 16 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 27 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1345,7 +1348,7 @@ ReadData             INFO EventInfo event: 17 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 28 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1373,7 +1376,7 @@ ReadData             INFO EventInfo event: 18 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 29 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1401,7 +1404,7 @@ ReadData             INFO EventInfo event: 19 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26620
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 30 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1430,7 +1433,7 @@ ReadData             INFO EventInfo event: 20 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #20, run #2 31 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1458,7 +1461,7 @@ ReadData             INFO EventInfo event: 21 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #21, run #2 32 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1486,7 +1489,7 @@ ReadData             INFO EventInfo event: 22 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #22, run #2 33 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1514,7 +1517,7 @@ ReadData             INFO EventInfo event: 23 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #23, run #2 34 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1542,7 +1545,7 @@ ReadData             INFO EventInfo event: 24 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #24, run #2 35 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1570,7 +1573,7 @@ ReadData             INFO EventInfo event: 25 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #25, run #2 36 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1598,7 +1601,7 @@ ReadData             INFO EventInfo event: 26 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #26, run #2 37 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1626,7 +1629,7 @@ ReadData             INFO EventInfo event: 27 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #27, run #2 38 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1654,7 +1657,7 @@ ReadData             INFO EventInfo event: 28 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #28, run #2 39 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1682,7 +1685,7 @@ ReadData             INFO EventInfo event: 29 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #29, run #2 40 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1710,7 +1713,7 @@ ReadData             INFO EventInfo event: 30 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #30, run #2 41 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1738,7 +1741,7 @@ ReadData             INFO EventInfo event: 31 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #31, run #2 42 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1766,7 +1769,7 @@ ReadData             INFO EventInfo event: 32 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #32, run #2 43 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1794,7 +1797,7 @@ ReadData             INFO EventInfo event: 33 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #33, run #2 44 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1822,7 +1825,7 @@ ReadData             INFO EventInfo event: 34 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #34, run #2 45 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1850,7 +1853,7 @@ ReadData             INFO EventInfo event: 35 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #35, run #2 46 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1878,7 +1881,7 @@ ReadData             INFO EventInfo event: 36 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #36, run #2 47 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1906,7 +1909,7 @@ ReadData             INFO EventInfo event: 37 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #37, run #2 48 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1934,7 +1937,7 @@ ReadData             INFO EventInfo event: 38 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #38, run #2 49 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1962,7 +1965,7 @@ ReadData             INFO EventInfo event: 39 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28230
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #39, run #2 50 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -2172,7 +2175,7 @@ ReadData             INFO Hit x = 20.4945 y = 63.5816 z = 48.1358 detector = Dum
 ReadData             INFO Hit x = 23.7045 y = 57.9027 z = 46.3159 detector = DummyHitDetector
 ReadData             INFO Hit x = 26.9145 y = 52.2238 z = 44.9265 detector = DummyHitDetector
 ReadData             INFO Hit x = 30.1245 y = 46.5449 z = 43.831 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 51 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2219,7 +2222,7 @@ ReadData             INFO Hit x = 120.494 y = 63.5816 z = -51.8642 detector = Du
 ReadData             INFO Hit x = 123.704 y = 57.9027 z = -53.6841 detector = DummyHitDetector
 ReadData             INFO Hit x = 126.915 y = 52.2238 z = -55.0735 detector = DummyHitDetector
 ReadData             INFO Hit x = 130.125 y = 46.5449 z = -56.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 52 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2266,7 +2269,7 @@ ReadData             INFO Hit x = 220.494 y = 63.5816 z = -151.864 detector = Du
 ReadData             INFO Hit x = 223.704 y = 57.9027 z = -153.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 226.915 y = 52.2238 z = -155.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 230.125 y = 46.5449 z = -156.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 53 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2313,7 +2316,7 @@ ReadData             INFO Hit x = 320.495 y = 63.5816 z = -251.864 detector = Du
 ReadData             INFO Hit x = 323.705 y = 57.9027 z = -253.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 326.915 y = 52.2238 z = -255.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 330.125 y = 46.5449 z = -256.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 54 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2360,7 +2363,7 @@ ReadData             INFO Hit x = 420.495 y = 63.5816 z = -351.864 detector = Du
 ReadData             INFO Hit x = 423.705 y = 57.9027 z = -353.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 426.915 y = 52.2238 z = -355.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 430.125 y = 46.5449 z = -356.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 55 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2407,7 +2410,7 @@ ReadData             INFO Hit x = 520.495 y = 63.5816 z = -451.864 detector = Du
 ReadData             INFO Hit x = 523.705 y = 57.9027 z = -453.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 526.914 y = 52.2238 z = -455.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 530.125 y = 46.5449 z = -456.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 56 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2454,7 +2457,7 @@ ReadData             INFO Hit x = 620.495 y = 63.5816 z = -551.864 detector = Du
 ReadData             INFO Hit x = 623.705 y = 57.9027 z = -553.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 626.914 y = 52.2238 z = -555.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 630.125 y = 46.5449 z = -556.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 57 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2501,7 +2504,7 @@ ReadData             INFO Hit x = 720.495 y = 63.5816 z = -651.864 detector = Du
 ReadData             INFO Hit x = 723.705 y = 57.9027 z = -653.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 726.914 y = 52.2238 z = -655.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 730.125 y = 46.5449 z = -656.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 58 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2548,7 +2551,7 @@ ReadData             INFO Hit x = 820.495 y = 63.5816 z = -751.864 detector = Du
 ReadData             INFO Hit x = 823.705 y = 57.9027 z = -753.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 826.914 y = 52.2238 z = -755.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 830.125 y = 46.5449 z = -756.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 59 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2595,7 +2598,7 @@ ReadData             INFO Hit x = 920.495 y = 63.5816 z = -851.864 detector = Du
 ReadData             INFO Hit x = 923.705 y = 57.9027 z = -853.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 926.914 y = 52.2238 z = -855.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 930.125 y = 46.5449 z = -856.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 60 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2642,7 +2645,7 @@ ReadData             INFO Hit x = 1020.49 y = 63.5816 z = -951.864 detector = Du
 ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = DummyHitDetector
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 61 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2689,7 +2692,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 62 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2736,7 +2739,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 63 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2783,7 +2786,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 64 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2830,7 +2833,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 65 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2877,7 +2880,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 66 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2924,7 +2927,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 67 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2971,7 +2974,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 68 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3018,7 +3021,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 69 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -3065,7 +3068,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26892
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 70 events processed so far  <<<===
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
@@ -3085,8 +3088,8 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
 cObjR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.0368(+-0.605)/    0/   10 [ms] #=272
-cObj_ALL             INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.226(+- 1.77)/    0/   20 [ms] #=221
-ChronoStatSvc        INFO Time User   : Tot= 0.92  [s]                                             #=  1
+cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.136(+- 1.16)/    0/   10 [ms] #=221
+ChronoStatSvc        INFO Time User   : Tot= 0.85  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref
index 036405b1b96fe589da8176fbc52ae083a7c1ef8e..3e95edfc968b639ca611dd667728537cc1f488fd 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:19:44 CEST 2018
+Wed Jul 18 18:24:44 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_ReadNoBNJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:19:53 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:24:53 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
@@ -35,7 +36,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -169,9 +170,11 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -256,7 +259,7 @@ EventSelector        INFO skipping event 9
 EventSelector        INFO skipping event 10
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
-ClassIDSvc           INFO  getRegistryEntries: read 2690 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1717 CLIDRegistry entries for module ALL
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG record AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A].
 EventSelector       DEBUG found AthenaAttribute, name = eventRef = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-0000000A]
@@ -315,7 +318,7 @@ ReadData             INFO Hit x = 1023.7 y = 57.9027 z = -953.684 detector = Dum
 ReadData             INFO Hit x = 1026.91 y = 52.2238 z = -955.073 detector = DummyHitDetector
 ReadData             INFO Hit x = 1030.12 y = 46.5449 z = -956.169 detector = DummyHitDetector
 ClassIDSvc           INFO  getRegistryEntries: read 10 CLIDRegistry entries for module ALL
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 1 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -348,7 +351,7 @@ ReadData             INFO Hit x = 1120.49 y = 63.5816 z = -1051.86 detector = Du
 ReadData             INFO Hit x = 1123.7 y = 57.9027 z = -1053.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1126.91 y = 52.2238 z = -1055.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1130.12 y = 46.5449 z = -1056.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 2 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -381,7 +384,7 @@ ReadData             INFO Hit x = 1220.49 y = 63.5816 z = -1151.86 detector = Du
 ReadData             INFO Hit x = 1223.7 y = 57.9027 z = -1153.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1226.91 y = 52.2238 z = -1155.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1230.12 y = 46.5449 z = -1156.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 3 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -414,7 +417,7 @@ ReadData             INFO Hit x = 1320.49 y = 63.5816 z = -1251.86 detector = Du
 ReadData             INFO Hit x = 1323.7 y = 57.9027 z = -1253.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1326.91 y = 52.2238 z = -1255.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1330.12 y = 46.5449 z = -1256.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 4 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -447,7 +450,7 @@ ReadData             INFO Hit x = 1420.49 y = 63.5816 z = -1351.86 detector = Du
 ReadData             INFO Hit x = 1423.7 y = 57.9027 z = -1353.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1426.91 y = 52.2238 z = -1355.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1430.12 y = 46.5449 z = -1356.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 5 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -480,7 +483,7 @@ ReadData             INFO Hit x = 1520.49 y = 63.5816 z = -1451.86 detector = Du
 ReadData             INFO Hit x = 1523.7 y = 57.9027 z = -1453.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1526.91 y = 52.2238 z = -1455.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1530.12 y = 46.5449 z = -1456.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 6 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -513,7 +516,7 @@ ReadData             INFO Hit x = 1620.49 y = 63.5816 z = -1551.86 detector = Du
 ReadData             INFO Hit x = 1623.7 y = 57.9027 z = -1553.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1626.91 y = 52.2238 z = -1555.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1630.12 y = 46.5449 z = -1556.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 7 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -546,7 +549,7 @@ ReadData             INFO Hit x = 1720.49 y = 63.5816 z = -1651.86 detector = Du
 ReadData             INFO Hit x = 1723.7 y = 57.9027 z = -1653.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1726.91 y = 52.2238 z = -1655.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1730.12 y = 46.5449 z = -1656.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 8 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -579,7 +582,7 @@ ReadData             INFO Hit x = 1820.49 y = 63.5816 z = -1751.86 detector = Du
 ReadData             INFO Hit x = 1823.7 y = 57.9027 z = -1753.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1826.91 y = 52.2238 z = -1755.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1830.12 y = 46.5449 z = -1756.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 9 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -612,7 +615,7 @@ ReadData             INFO Hit x = 1920.49 y = 63.5816 z = -1851.86 detector = Du
 ReadData             INFO Hit x = 1923.7 y = 57.9027 z = -1853.68 detector = DummyHitDetector
 ReadData             INFO Hit x = 1926.91 y = 52.2238 z = -1855.07 detector = DummyHitDetector
 ReadData             INFO Hit x = 1930.12 y = 46.5449 z = -1856.17 detector = DummyHitDetector
-PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27936
 PoolSvc              INFO Database (SimplePoolFile1.root) attribute [READ_CALLS]: 24
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 10 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -809,7 +812,7 @@ ReadData             INFO EventInfo event: 0 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 11 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -837,7 +840,7 @@ ReadData             INFO EventInfo event: 1 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 12 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -865,7 +868,7 @@ ReadData             INFO EventInfo event: 2 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 13 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -893,7 +896,7 @@ ReadData             INFO EventInfo event: 3 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 14 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -921,7 +924,7 @@ ReadData             INFO EventInfo event: 4 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 15 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -949,7 +952,7 @@ ReadData             INFO EventInfo event: 5 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 16 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -977,7 +980,7 @@ ReadData             INFO EventInfo event: 6 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 17 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1005,7 +1008,7 @@ ReadData             INFO EventInfo event: 7 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 18 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1033,7 +1036,7 @@ ReadData             INFO EventInfo event: 8 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 19 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1061,7 +1064,7 @@ ReadData             INFO EventInfo event: 9 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 20 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1089,7 +1092,7 @@ ReadData             INFO EventInfo event: 10 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 21 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1117,7 +1120,7 @@ ReadData             INFO EventInfo event: 11 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 22 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1145,7 +1148,7 @@ ReadData             INFO EventInfo event: 12 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 23 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1173,7 +1176,7 @@ ReadData             INFO EventInfo event: 13 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 24 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1201,7 +1204,7 @@ ReadData             INFO EventInfo event: 14 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 25 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1229,7 +1232,7 @@ ReadData             INFO EventInfo event: 15 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 26 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1257,7 +1260,7 @@ ReadData             INFO EventInfo event: 16 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 27 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1285,7 +1288,7 @@ ReadData             INFO EventInfo event: 17 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 28 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1313,7 +1316,7 @@ ReadData             INFO EventInfo event: 18 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 29 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1341,7 +1344,7 @@ ReadData             INFO EventInfo event: 19 run: 1
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26630
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 27
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 30 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1370,7 +1373,7 @@ ReadData             INFO EventInfo event: 20 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #20, run #2 31 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1398,7 +1401,7 @@ ReadData             INFO EventInfo event: 21 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #21, run #2 32 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1426,7 +1429,7 @@ ReadData             INFO EventInfo event: 22 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #22, run #2 33 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1454,7 +1457,7 @@ ReadData             INFO EventInfo event: 23 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #23, run #2 34 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1482,7 +1485,7 @@ ReadData             INFO EventInfo event: 24 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #24, run #2 35 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1510,7 +1513,7 @@ ReadData             INFO EventInfo event: 25 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #25, run #2 36 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1538,7 +1541,7 @@ ReadData             INFO EventInfo event: 26 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #26, run #2 37 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1566,7 +1569,7 @@ ReadData             INFO EventInfo event: 27 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #27, run #2 38 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1594,7 +1597,7 @@ ReadData             INFO EventInfo event: 28 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #28, run #2 39 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1622,7 +1625,7 @@ ReadData             INFO EventInfo event: 29 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #29, run #2 40 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1650,7 +1653,7 @@ ReadData             INFO EventInfo event: 30 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #30, run #2 41 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1678,7 +1681,7 @@ ReadData             INFO EventInfo event: 31 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #31, run #2 42 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1706,7 +1709,7 @@ ReadData             INFO EventInfo event: 32 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #32, run #2 43 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1734,7 +1737,7 @@ ReadData             INFO EventInfo event: 33 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #33, run #2 44 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1762,7 +1765,7 @@ ReadData             INFO EventInfo event: 34 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #34, run #2 45 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1790,7 +1793,7 @@ ReadData             INFO EventInfo event: 35 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #35, run #2 46 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1818,7 +1821,7 @@ ReadData             INFO EventInfo event: 36 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #36, run #2 47 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1846,7 +1849,7 @@ ReadData             INFO EventInfo event: 37 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #37, run #2 48 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1874,7 +1877,7 @@ ReadData             INFO EventInfo event: 38 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #38, run #2 49 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -1902,7 +1905,7 @@ ReadData             INFO EventInfo event: 39 run: 2
 ReadData             INFO Get Smart data ptr 1
 ReadData             INFO Could not find ExampleTrackContainer/MyTracks
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28245
 PoolSvc              INFO Database (SimplePoolFile2.root) attribute [READ_CALLS]: 31
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #39, run #2 50 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -2041,7 +2044,7 @@ ReadData             INFO Track pt = 74.8928 eta = 3.1676 phi = 2.6161 detector
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #1 51 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2067,7 +2070,7 @@ ReadData             INFO Track pt = 137.584 eta = -39.525 phi = 17.2679 detecto
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #1 52 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2093,7 +2096,7 @@ ReadData             INFO Track pt = 228.154 eta = -6.2704 phi = 31.9197 detecto
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #1 53 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2119,7 +2122,7 @@ ReadData             INFO Track pt = 324.306 eta = -15.8941 phi = 46.5715 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #1 54 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2145,7 +2148,7 @@ ReadData             INFO Track pt = 422.255 eta = -13.279 phi = 61.2233 detecto
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #1 55 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2171,7 +2174,7 @@ ReadData             INFO Track pt = 520.987 eta = -12.3511 phi = 75.8751 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #1 56 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2197,7 +2200,7 @@ ReadData             INFO Track pt = 620.127 eta = -11.8468 phi = 90.5269 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #1 57 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2223,7 +2226,7 @@ ReadData             INFO Track pt = 719.507 eta = -11.5247 phi = 105.179 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #1 58 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2249,7 +2252,7 @@ ReadData             INFO Track pt = 819.038 eta = -11.2998 phi = 119.831 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #1 59 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2275,7 +2278,7 @@ ReadData             INFO Track pt = 918.671 eta = -11.1334 phi = 134.482 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #1 60 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2301,7 +2304,7 @@ ReadData             INFO Track pt = 1018.38 eta = -11.0052 phi = 149.134 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #1 61 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2327,7 +2330,7 @@ ReadData             INFO Track pt = 1118.13 eta = -10.9031 phi = 163.786 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #1 62 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2353,7 +2356,7 @@ ReadData             INFO Track pt = 1217.93 eta = -10.82 phi = 178.438 detector
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #1 63 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2379,7 +2382,7 @@ ReadData             INFO Track pt = 1317.76 eta = -10.751 phi = 193.09 detector
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #1 64 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2405,7 +2408,7 @@ ReadData             INFO Track pt = 1417.61 eta = -10.6927 phi = 207.741 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #1 65 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2431,7 +2434,7 @@ ReadData             INFO Track pt = 1517.49 eta = -10.6429 phi = 222.393 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #1 66 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2457,7 +2460,7 @@ ReadData             INFO Track pt = 1617.37 eta = -10.5997 phi = 237.045 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #1 67 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2483,7 +2486,7 @@ ReadData             INFO Track pt = 1717.27 eta = -10.562 phi = 251.697 detecto
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #1 68 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2509,7 +2512,7 @@ ReadData             INFO Track pt = 1817.19 eta = -10.5288 phi = 266.349 detect
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #1 69 events processed so far  <<<===
 EventSelector       DEBUG Get AttributeList from the collection
@@ -2535,7 +2538,7 @@ ReadData             INFO Track pt = 1917.11 eta = -10.4993 phi = 281 detector =
 DataProxy         WARNING accessData:  IOA pointer not set
 ReadData          WARNING Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits
 ReadData             INFO Could not find ExampleHitContainer/MyHits
-PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27294
 PoolSvc              INFO Database (SimplePoolFile3.root) attribute [READ_CALLS]: 23
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 70 events processed so far  <<<===
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
@@ -2553,8 +2556,8 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-cObjR_ALL            INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.104(+- 1.01)/    0/   10 [ms] #=193
-cObj_ALL             INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.276(+- 1.95)/    0/   20 [ms] #=181
+cObjR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max=0.0518(+-0.718)/    0/   10 [ms] #=193
+cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.166(+- 1.28)/    0/   10 [ms] #=181
 ChronoStatSvc        INFO Time User   : Tot= 0.88  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref
index 2320c5de709425a1c22cb5f804c0529826266467..682012b05f73369997fb0ab4f1fa07b2d0f6f2b1 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref
@@ -1,11 +1,11 @@
-Mon Jul 16 20:52:06 CEST 2018
+Wed Jul 18 20:11:52 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_WCondJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -13,7 +13,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus052.cern.ch on Mon Jul 16 20:52:15 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 20:12:02 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -24,6 +24,7 @@ AthDictLoaderSvc     INFO acquired Dso-registry
 ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 1249 CLIDRegistry entries for module ALL
 Stream1             DEBUG Property update for OutputLevel : new value = 2
 Stream1             DEBUG in initialize()
 ToolSvc.Stream1...   INFO Initializing ToolSvc.Stream1Tool - package version AthenaServices-00-00-00
@@ -33,7 +34,7 @@ PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-15T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
 DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
@@ -124,16 +125,19 @@ MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of ty
 MetaDataSvc         DEBUG Loaded input meta data store proxies
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolAddre...  DEBUG Service base class initialized successfully
-ReadData            DEBUG input handles: 0
+ReadData            DEBUG input handles: 2
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + INPUT   ( 'ExampleTrackContainer' , 'StoreGateSvc+MyTracks' ) 
 WriteCond           DEBUG Property update for OutputLevel : new value = 2
 WriteCond            INFO in initialize()
 AthenaPoolAddre...  DEBUG Cannot find DataHeader in DetectorStore.
-ClassIDSvc           INFO  getRegistryEntries: read 3015 CLIDRegistry entries for module ALL
-WriteCond           DEBUG input handles: 0
+ClassIDSvc           INFO  getRegistryEntries: read 1709 CLIDRegistry entries for module ALL
+WriteCond           DEBUG input handles: 1
 WriteCond           DEBUG output handles: 0
 WriteCond           DEBUG Data Deps for WriteCond
+  + INPUT   ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
 HistogramPersis...WARNING Histograms saving not required.
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -1174,11 +1178,11 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 commitOutput         INFO Time User   : Tot=    0 [us]                                             #=  1
 cRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #=  2
-fRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #=  2
-cRepR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #=  3
 cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 66
-cObj_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.317(+- 1.75)/    0/   10 [ms] #= 63
-ChronoStatSvc        INFO Time User   : Tot= 0.88  [s]                                             #=  1
+fRep_ALL             INFO Time User   : Tot=   10 [ms] Ave/Min/Max=    5(+-    5)/    0/   10 [ms] #=  2
+cRepR_ALL            INFO Time User   : Tot=   10 [ms] Ave/Min/Max= 3.33(+- 4.71)/    0/   10 [ms] #=  3
+cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.476(+- 2.13)/    0/   10 [ms] #= 63
+ChronoStatSvc        INFO Time User   : Tot= 0.79  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref
index 6223e1c57457d61d4de4e5be8494342aa287c98c..48d9453092d1da0039723e74f8acf8c47ee7fc63 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref
@@ -1,24 +1,19 @@
-Thu May 24 04:08:34 CEST 2018
+Wed Jul 18 20:12:16 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_WMetaJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 48 genConfDb files
-Py:ConfigurableDb WARNING Found 1 duplicates among the 48 genConfDb files :
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -<component name>: <module> - [ <duplicates> ]
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -TrackTools: DerivationFrameworkTileCal.DerivationFrameworkTileCalConf - ['TileD3PDMaker.TileD3PDMakerConf']
-Py:ConfigurableDb WARNING Fix your cmt/requirements file !!
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus028.cern.ch on Thu May 24 04:09:02 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 20:12:25 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -26,33 +21,36 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 StatusCodeSvc        INFO initialize
 AthDictLoaderSvc     INFO in initialize...
 AthDictLoaderSvc     INFO acquired Dso-registry
-ClassIDSvc           INFO  getRegistryEntries: read 2322 CLIDRegistry entries for module ALL
-ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 WriteData           DEBUG Property update for OutputLevel : new value = 2
 WriteData            INFO in initialize()
-WriteData           DEBUG input handles: 0
-WriteData           DEBUG output handles: 0
-WriteData           DEBUG Data Deps for WriteData
-WriteCond            INFO in initialize()
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
 AthenaPoolCnvSvc    DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolCnvSvc     INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
 PoolSvc             DEBUG Property update for OutputLevel : new value = 2
+PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:Catalog2.xml) [ok]
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-05-22T2101/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus028.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
 PoolSvc              INFO Setting up APR FileCatalog and Streams
 PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:Catalog2.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-ClassIDSvc           INFO  getRegistryEntries: read 2277 CLIDRegistry entries for module ALL
+WriteData           DEBUG input handles: 0
+WriteData           DEBUG output handles: 2
+WriteData           DEBUG Data Deps for WriteData
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+PetersHits' ) 
+WriteCond            INFO in initialize()
+ClassIDSvc           INFO  getRegistryEntries: read 1304 CLIDRegistry entries for module ALL
 Stream1             DEBUG Property update for OutputLevel : new value = 2
 Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
 Stream1             DEBUG In initialize 
@@ -719,6 +717,7 @@ Domain[ROOT_All]     INFO >   Deaccess DbDomain     UPDATE    [ROOT_All]
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
 WriteData            INFO in finalize()
+WriteData           DEBUG Calling destructor
 IncidentProcAlg2     INFO Finalize
 Stream1             DEBUG finalize: Optimize output
 Stream1             DEBUG finalize: end optimize output
@@ -731,11 +730,11 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
-commitOutput         INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.952(+- 2.94)/    0/   10 [ms] #= 21
-cRepR_ALL            INFO Time User   : Tot=  100 [ms] Ave/Min/Max= 1.19(+- 5.86)/    0/   50 [ms] #= 84
-fRep_ALL             INFO Time User   : Tot=  210 [ms] Ave/Min/Max= 3.33(+- 11.5)/    0/   60 [ms] #= 63
-cRep_ALL             INFO Time User   : Tot=  170 [ms] Ave/Min/Max=  2.7(+- 13.4)/    0/   80 [ms] #= 63
-ChronoStatSvc        INFO Time User   : Tot= 3.49  [s]                                             #=  1
+commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 21
+cRepR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 84
+fRep_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.317(+- 1.75)/    0/   10 [ms] #= 63
+cRep_ALL             INFO Time User   : Tot=   40 [ms] Ave/Min/Max=0.635(+- 3.51)/    0/   20 [ms] #= 63
+ChronoStatSvc        INFO Time User   : Tot= 0.74  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref
index e2d4cf4b98dbf7f4377fe2188158c6aad99ebd95..4e10cf9c7f5bf534ffe19170f89e495da7f86fbe 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref
@@ -1,24 +1,19 @@
-Wed May 23 21:36:57 CEST 2018
+Wed Jul 18 18:17:23 CEST 2018
 Preloading tcmalloc_minimal.so
 Athena               INFO including file "AthenaCommon/Preparation.py"
 Athena               INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Athena               INFO executing ROOT6Setup
 Athena               INFO including file "AthenaCommon/Execution.py"
 Athena               INFO including file "AthenaPoolExampleAlgorithms/AthenaPoolExample_WriteJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 47 genConfDb files
-Py:ConfigurableDb WARNING Found 1 duplicates among the 47 genConfDb files :
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -<component name>: <module> - [ <duplicates> ]
-Py:ConfigurableDb WARNING --------------------------------------------------
-Py:ConfigurableDb WARNING   -TrackTools: DerivationFrameworkTileCal.DerivationFrameworkTileCalConf - ['TileD3PDMaker.TileD3PDMakerConf']
-Py:ConfigurableDb WARNING Fix your cmt/requirements file !!
+Py:ConfigurableDb    INFO Read module info for 5511 configurables from 52 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Athena               INFO including file "AthenaCommon/runbatch.py"
 [?1034hApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus083.cern.ch on Wed May 23 21:37:25 2018
+                                          running on lxplus052.cern.ch on Wed Jul 18 18:17:32 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -26,41 +21,44 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 StatusCodeSvc        INFO initialize
 AthDictLoaderSvc     INFO in initialize...
 AthDictLoaderSvc     INFO acquired Dso-registry
-ClassIDSvc           INFO  getRegistryEntries: read 2322 CLIDRegistry entries for module ALL
-ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+ClassIDSvc           INFO  getRegistryEntries: read 2428 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 916 CLIDRegistry entries for module ALL
 WriteData           DEBUG Property update for OutputLevel : new value = 2
 WriteData            INFO in initialize()
-WriteData           DEBUG input handles: 0
-WriteData           DEBUG output handles: 0
-WriteData           DEBUG Data Deps for WriteData
-WriteTag             INFO in initialize()
-MagicWriteTag        INFO in initialize()
-Stream1             DEBUG Property update for OutputLevel : new value = 2
-Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
-ClassIDSvc           INFO  getRegistryEntries: read 1345 CLIDRegistry entries for module ALL
-Stream1             DEBUG In initialize 
-Stream1             DEBUG Found IDecisionSvc.
-DecisionSvc          INFO Inserting stream: Stream1 with no Algs
-Stream1             DEBUG End initialize 
-Stream1             DEBUG In initialize
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
 AthenaPoolCnvSvc    DEBUG Property update for OutputLevel : new value = 2
 AthenaPoolCnvSvc     INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
 PoolSvc             DEBUG Property update for OutputLevel : new value = 2
+PoolSvc             DEBUG Service base class initialized successfully
 PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:Catalog1.xml) [ok]
 PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
 PoolSvc              INFO Frontier compression level set to 5
 DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
-DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-05-22T2053/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus083.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2018-07-17T2058/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus052.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
 PoolSvc              INFO Successfully setup replica sorting algorithm
 PoolSvc             DEBUG OutputLevel is 
 PoolSvc              INFO Setting up APR FileCatalog and Streams
 PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
+WriteData           DEBUG input handles: 0
+WriteData           DEBUG output handles: 2
+WriteData           DEBUG Data Deps for WriteData
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+MyHits' ) 
+  + OUTPUT  ( 'ExampleHitContainer' , 'StoreGateSvc+PetersHits' ) 
+WriteTag             INFO in initialize()
+MagicWriteTag        INFO in initialize()
+Stream1             DEBUG Property update for OutputLevel : new value = 2
+Stream1.Stream1...  DEBUG Property update for OutputLevel : new value = 2
+ClassIDSvc           INFO  getRegistryEntries: read 1304 CLIDRegistry entries for module ALL
+Stream1             DEBUG In initialize 
+Stream1             DEBUG Found IDecisionSvc.
+DecisionSvc          INFO Inserting stream: Stream1 with no Algs
+Stream1             DEBUG End initialize 
+Stream1             DEBUG In initialize
 Stream1             DEBUG Found StoreGateSvc store.
 Stream1             DEBUG Found MetaDataStore store.
 OutputStreamSeq...   INFO Initializing OutputStreamSequencerSvc - package version AthenaServices-00-00-00
@@ -79,7 +77,7 @@ Stream1             DEBUG Registering all Tools in ToolHandleArray HelperTools
 Stream1             DEBUG Adding private ToolHandle tool Stream1.Stream1_MakeEventStreamInfo (MakeEventStreamInfo) from ToolHandleArray HelperTools
 Stream1             DEBUG Adding private ToolHandle tool Stream1.Stream1Tool (AthenaOutputStreamTool)
 Stream1             DEBUG Data Deps for Stream1
-ClassIDSvc           INFO  getRegistryEntries: read 1284 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 352 CLIDRegistry entries for module ALL
 Stream2             DEBUG Property update for OutputLevel : new value = 2
 Stream2.Stream2...  DEBUG Property update for OutputLevel : new value = 2
 Stream2             DEBUG In initialize 
@@ -1017,21 +1015,22 @@ Stream1             DEBUG finalize: Optimize output
 Stream1             DEBUG finalize: end optimize output
 Stream2             DEBUG finalize: Optimize output
 Stream2             DEBUG finalize: end optimize output
+WriteData           DEBUG Calling destructor
 IncidentProcAlg2     INFO Finalize
 EventSelector        INFO finalize
+DecisionSvc          INFO Finalized successfully.
 AthenaPoolCnvSvc    DEBUG releasing all workers
 XMLCatalog           INFO File 'Catalog1.xml' does not exist. New file created.
-DecisionSvc          INFO Finalized successfully.
 AthDictLoaderSvc     INFO in finalize...
 ToolSvc              INFO Removing all tools created by ToolSvc
 *****Chrono*****     INFO ****************************************************************************************************
 *****Chrono*****     INFO  The Final CPU consumption ( Chrono ) Table (ordered)
 *****Chrono*****     INFO ****************************************************************************************************
 commitOutput         INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 43
-cRepR_ALL            INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.162(+-  1.5)/    0/   20 [ms] #=309
-fRep_ALL             INFO Time User   : Tot=  110 [ms] Ave/Min/Max= 1.04(+- 4.33)/    0/   30 [ms] #=106
-cRep_ALL             INFO Time User   : Tot=  110 [ms] Ave/Min/Max= 1.04(+- 6.99)/    0/   60 [ms] #=106
-ChronoStatSvc        INFO Time User   : Tot= 2.01  [s]                                             #=  1
+cRepR_ALL            INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.0647(+-0.802)/    0/   10 [ms] #=309
+fRep_ALL             INFO Time User   : Tot=   40 [ms] Ave/Min/Max=0.377(+- 1.91)/    0/   10 [ms] #=106
+cRep_ALL             INFO Time User   : Tot=   50 [ms] Ave/Min/Max=0.472(+- 3.98)/    0/   40 [ms] #=106
+ChronoStatSvc        INFO Time User   : Tot= 0.84  [s]                                             #=  1
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WriteJobOptions.py b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WriteJobOptions.py
index 7bf93113c1318f16b882c6916aa79e64713b6da6..16b7d628a4809199c60635733efa3279bbb37744 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WriteJobOptions.py
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WriteJobOptions.py
@@ -97,6 +97,7 @@ WriteTag.Magic = 1
 topSequence += WriteTag
 MagicWriteTag = AthPoolEx__WriteTag( "MagicWriteTag" )
 MagicWriteTag.Key = "MagicTag"
+MagicWriteTag.TagKey = "MagicTag"
 MagicWriteTag.Magic = 24
 topSequence += MagicWriteTag
 
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.cxx
index 44fda468ed14622d7417a081b9c4a7c04bdb6778..ae56523011a9af227e5de4de6504a80dc3b0d37a 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.cxx
@@ -11,6 +11,7 @@
 #include "QueryTag.h"
 
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
+#include "StoreGate/ReadHandle.h"
 
 using namespace AthPoolEx;
 
@@ -36,6 +37,8 @@ StatusCode QueryTag::initialize() {
          }
       }
    }
+
+   ATH_CHECK( m_attrListKey.initialize() );
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
@@ -48,14 +51,8 @@ StatusCode QueryTag::preNext() const {
 }
 //__________________________________________________________________________
 StatusCode QueryTag::postNext() const {
-   if (!evtStore()->contains<AthenaAttributeList>(m_attrListKey)) {
-      ATH_MSG_DEBUG("Can't get attributeList for preselection");
-      return StatusCode::SUCCESS;
-   }
-
-   const DataHandle<AthenaAttributeList> attrList;
-   StatusCode status = evtStore()->retrieve(attrList, m_attrListKey);
-   if (status.isFailure()) {
+   SG::ReadHandle<AthenaAttributeList> attrList (m_attrListKey);
+   if (!attrList.isValid()) {
       ATH_MSG_ERROR("Could not retrieve AthenaAttributeList");
       return StatusCode::FAILURE;
    }
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.h b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.h
index 054f987ebbd49c106c858c5256fd7a834b446eab..45c27cef80510068fd3f0c6146b6a0255c684bc3 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.h
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/QueryTag.h
@@ -12,6 +12,8 @@
  **/
 
 #include "AthenaBaseComps/AthAlgTool.h"
+#include "AthenaPoolUtilities/AthenaAttributeList.h"
+#include "StoreGate/ReadHandleKey.h"
 #include "AthenaKernel/IAthenaSelectorTool.h"
 
 #include <string>
@@ -38,7 +40,7 @@ public:
    virtual StatusCode finalize();
 
 private:
-   std::string m_attrListKey;
+   SG::ReadHandleKey<AthenaAttributeList> m_attrListKey;
 };
 
 } // end AthPoolEx namespace
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.cxx
index f6c1f0aeb8f4506bd4dc0358bad7a613ac038ac0..cdd88c845a488efac3c90f95c0c695e4e6861db0 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.cxx
@@ -13,13 +13,17 @@
 // the user data-class defintions
 #include "AthenaPoolExampleData/ExampleHitContainer.h"
 #include "AthenaPoolExampleData/ExampleTrackContainer.h"
+#include "StoreGate/ReadHandle.h"
+#include "StoreGate/WriteHandle.h"
 
 #include <cmath>
 
 using namespace AthPoolEx;
 
 //___________________________________________________________________________
-ReWriteData::ReWriteData(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator) {
+ReWriteData::ReWriteData(const std::string& name, ISvcLocator* pSvcLocator)
+  : AthReentrantAlgorithm(name, pSvcLocator)
+{
 }
 //___________________________________________________________________________
 ReWriteData::~ReWriteData() {
@@ -27,70 +31,71 @@ ReWriteData::~ReWriteData() {
 //___________________________________________________________________________
 StatusCode ReWriteData::initialize() {
    ATH_MSG_INFO("in initialize()");
+   if (m_exampleHitKey.key().empty()) {
+     m_exampleTrackKey = "";
+   }
+   else {
+     ATH_CHECK( m_exampleHitKey.initialize() );
+     ATH_CHECK( m_exampleTrackKey.initialize() );
+   }
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
-StatusCode ReWriteData::execute() {
+StatusCode ReWriteData::execute_r (const EventContext& ctx) const {
    ATH_MSG_DEBUG("in execute()");
 
-   if (evtStore()->contains<ExampleHitContainer>("MyHits")) {
-      const DataHandle<ExampleHitContainer> hitCont;
-      if (evtStore()->retrieve(hitCont, "MyHits").isFailure()) {
-         ATH_MSG_ERROR("Could not find ExampleHitContainer/MyHits");
-         return StatusCode::FAILURE;
-      }
-      double pT = 0.0, eta = 0.0, phi = 0.0;
-      for (ExampleHitContainer::const_iterator hitObj = hitCont->begin(); hitObj != hitCont->end(); hitObj++) {
-         ATH_MSG_INFO("Hit x = " << (*hitObj)->getX() << " y = " << (*hitObj)->getY() << " z = " << (*hitObj)->getZ() << " detector = " << (*hitObj)->getDetector());
-         pT = pT + sqrt((*hitObj)->getX() * (*hitObj)->getX() + (*hitObj)->getY() * (*hitObj)->getY());
-         eta = eta + (*hitObj)->getX() / (*hitObj)->getZ();
-         phi = phi + (*hitObj)->getX() / (*hitObj)->getY();
-      }
-      ExampleTrack* trackObj = new ExampleTrack();
-      trackObj->setPT(pT / hitCont->size());
-      trackObj->setEta(eta);
-      trackObj->setPhi(phi);
-      trackObj->setDetector("Track made in: " + (*hitCont->begin())->getDetector());
-      trackObj->getElementLink1()->toContainedElement(*hitCont, *hitCont->begin());
-      ATH_MSG_INFO("ElementLink1 = " << trackObj->getElement1()->getX());
-      trackObj->getElementLink2()->toIndexedElement(*hitCont, hitCont->size() - 1);
-      ATH_MSG_INFO("ElementLink2 = " << trackObj->getElement2()->getX());
+   if (!m_exampleHitKey.key().empty()) {
+     SG::ReadHandle<ExampleHitContainer> hitCont (m_exampleHitKey, ctx);
+     double pT = 0.0, eta = 0.0, phi = 0.0;
+     for (const ExampleHit* hit : *hitCont) {
+       ATH_MSG_INFO("Hit x = " << hit->getX() << " y = " << hit->getY() << " z = " << hit->getZ() << " detector = " << hit->getDetector());
+       pT = pT + sqrt(hit->getX() * hit->getX() + hit->getY() * hit->getY());
+       eta = eta + hit->getX() / hit->getZ();
+       phi = phi + hit->getX() / hit->getY();
+     }
+     auto trackObj = std::make_unique<ExampleTrack>();
+     trackObj->setPT(pT / hitCont->size());
+     trackObj->setEta(eta);
+     trackObj->setPhi(phi);
+     trackObj->setDetector("Track made in: " + (*hitCont->begin())->getDetector());
+     trackObj->getElementLink1()->toContainedElement(*hitCont, *hitCont->begin());
+     ATH_MSG_INFO("ElementLink1 = " << trackObj->getElement1()->getX());
+     trackObj->getElementLink2()->toIndexedElement(*hitCont, hitCont->size() - 1);
+     ATH_MSG_INFO("ElementLink2 = " << trackObj->getElement2()->getX());
+     
+     ElementLink<ExampleHitContainer> eLink1, eLink2, eLink3;
+     eLink1.toContainedElement(*hitCont, *hitCont->begin());
+     trackObj->getElementLinkVector()->push_back(eLink1);
+     eLink2.toIndexedElement(*hitCont, 1);
+     trackObj->getElementLinkVector()->push_back(eLink2);
+     eLink3.toContainedElement(*hitCont, (*hitCont)[3]);
+     trackObj->getElementLinkVector()->push_back(eLink3);
+     ATH_MSG_INFO("Link ElementLinkVector = " << trackObj->getElementLinkVector()->size());
+     for (ElementLinkVector<ExampleHitContainer>::iterator iter = trackObj->getElementLinkVector()->begin(); iter != trackObj->getElementLinkVector()->end(); ++iter) {
+       ATH_MSG_INFO("Element = " << (**iter) << " : " << (**iter)->getX());
+     }
 
-      ElementLink<ExampleHitContainer> eLink1, eLink2, eLink3;
-      eLink1.toContainedElement(*hitCont, *hitCont->begin());
-      trackObj->getElementLinkVector()->push_back(eLink1);
-      eLink2.toIndexedElement(*hitCont, 1);
-      trackObj->getElementLinkVector()->push_back(eLink2);
-      eLink3.toContainedElement(*hitCont, (*hitCont)[3]);
-      trackObj->getElementLinkVector()->push_back(eLink3);
-      ATH_MSG_INFO("Link ElementLinkVector = " << trackObj->getElementLinkVector()->size());
-      for (ElementLinkVector<ExampleHitContainer>::iterator iter = trackObj->getElementLinkVector()->begin(); iter != trackObj->getElementLinkVector()->end(); ++iter) {
-         ATH_MSG_INFO("Element = " << (**iter) << " : " << (**iter)->getX());
-      }
+     trackObj->getNavigable()->putElement(hitCont.cptr(), *hitCont->begin());
+     trackObj->getNavigable()->putElement(hitCont.cptr(), (*hitCont)[5]);
+     ATH_MSG_INFO("Link Navigable = " << trackObj->getNavigable()->size());
+     for (Navigable<ExampleHitContainer>::object_iter iter = trackObj->getNavigable()->begin(); iter != trackObj->getNavigable()->end(); ++iter) {
+       ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
+     }
 
-      trackObj->getNavigable()->putElement(hitCont, *hitCont->begin());
-      trackObj->getNavigable()->putElement(hitCont, (*hitCont)[5]);
-      ATH_MSG_INFO("Link Navigable = " << trackObj->getNavigable()->size());
-      for (Navigable<ExampleHitContainer>::object_iter iter = trackObj->getNavigable()->begin(); iter != trackObj->getNavigable()->end(); ++iter) {
-         ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
-      }
+     trackObj->getWeightedNavigable()->putElement(hitCont.cptr(), *hitCont->begin(), 3.33);
+     trackObj->getWeightedNavigable()->putElement(hitCont.cptr(), (*hitCont)[5], 1.11);
+     trackObj->getWeightedNavigable()->putElement(hitCont.cptr(), (*hitCont)[3], 5.55);
+     ATH_MSG_INFO("Link Weighted Navigable = " << trackObj->getWeightedNavigable()->size());
+     for (Navigable<ExampleHitContainer, double>::object_iter iter = trackObj->getWeightedNavigable()->begin(); iter != trackObj->getWeightedNavigable()->end(); ++iter) {
+       ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
+     }
 
-      trackObj->getWeightedNavigable()->putElement(hitCont, *hitCont->begin(), 3.33);
-      trackObj->getWeightedNavigable()->putElement(hitCont, (*hitCont)[5], 1.11);
-      trackObj->getWeightedNavigable()->putElement(hitCont, (*hitCont)[3], 5.55);
-      ATH_MSG_INFO("Link Weighted Navigable = " << trackObj->getWeightedNavigable()->size());
-      for (Navigable<ExampleHitContainer, double>::object_iter iter = trackObj->getWeightedNavigable()->begin(); iter != trackObj->getWeightedNavigable()->end(); ++iter) {
-         ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
-      }
+     ATH_MSG_INFO("Track pt = " << trackObj->getPT() << " eta = " << trackObj->getEta() << " phi = " << trackObj->getPhi() << " detector = " << trackObj->getDetector());
 
-      ExampleTrackContainer* trackCont = new ExampleTrackContainer();
-      trackCont->push_back(trackObj);
-      if (evtStore()->record(trackCont, "MyTracks").isFailure()) {
-         ATH_MSG_ERROR("Could not register ExampleTrackContainer/MyTracks");
-         return StatusCode::FAILURE;
-      } else {
-         ATH_MSG_INFO("Track pt = " << trackObj->getPT() << " eta = " << trackObj->getEta() << " phi = " << trackObj->getPhi() << " detector = " << trackObj->getDetector());
-      }
+     auto trackCont = std::make_unique<ExampleTrackContainer>();
+     trackCont->push_back(std::move(trackObj));
+     SG::WriteHandle<ExampleTrackContainer> trackContH (m_exampleTrackKey, ctx);
+     ATH_CHECK( trackContH.record (std::move (trackCont)) );
    }
 
    ATH_MSG_INFO("registered all data");
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.h b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.h
index 3d663e9a10b9041a24f46541ca1aed06663ec82a..2d98b4f84f0216d2992955f56181ebca67db96ee 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.h
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReWriteData.h
@@ -11,14 +11,18 @@
  *  $Id: ReWriteData.h,v 1.1 2008-12-10 21:28:11 gemmeren Exp $
  **/
 
-#include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "AthenaPoolExampleData/ExampleHitContainer.h"
+#include "AthenaPoolExampleData/ExampleTrackContainer.h"
+#include "StoreGate/ReadHandleKey.h"
+#include "StoreGate/WriteHandleKey.h"
 
 namespace AthPoolEx {
 
 /** @class AthPoolEx::ReWriteData
  *  @brief This class provides an example for reading and writing data objects from/to Pool.
  **/
-class ReWriteData : public AthAlgorithm {
+class ReWriteData : public AthReentrantAlgorithm {
 public: // Constructor and Destructor
    /// Standard Service Constructor
    ReWriteData(const std::string& name, ISvcLocator* pSvcLocator);
@@ -27,9 +31,13 @@ public: // Constructor and Destructor
 
 public:
 /// Gaudi Service Interface method implementations:
-   StatusCode initialize();
-   StatusCode execute();
-   StatusCode finalize();
+   virtual StatusCode initialize() override;
+   virtual StatusCode execute_r (const EventContext& ctx) const override;
+   virtual StatusCode finalize() override;
+
+private:
+   SG::ReadHandleKey<ExampleHitContainer> m_exampleHitKey { this, "ExampleHitKey", "MyHits" };
+   SG::WriteHandleKey<ExampleTrackContainer> m_exampleTrackKey { this, "ExampleTrackKey", "MyTracks" };
 };
 
 } // end AthPoolEx namespace
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadBs.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadBs.cxx
deleted file mode 100755
index c46e2dbd2c291f6803477b2f5cceb85166376d32..0000000000000000000000000000000000000000
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadBs.cxx
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/** @file ReadBs.cxx
- *  @brief This file contains the implementation for the ReadBs class.
- *  @author Peter van Gemmeren <gemmeren@anl.gov>
- *  $Id: ReadBs.cxx,v 1.26 2009-03-14 22:05:57 gemmeren Exp $
- **/
-
-#include "ReadBs.h"
-
-// the user data-class defintions
-#include "AthenaPoolExampleData/ExampleHitContainer.h"
-#include "AthenaPoolExampleData/ExampleTrackContainer.h"
-
-#include "ByteStreamData/ByteStreamMetadataContainer.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
-#include <set>
-
-using namespace AthPoolEx;
-
-//___________________________________________________________________________
-ReadBs::ReadBs(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator), p_SGinMeta("StoreGateSvc/InputMetaDataStore", name), p_SGmeta("StoreGateSvc/MetaDataStore", name) {
-}
-//___________________________________________________________________________
-ReadBs::~ReadBs() {
-}
-//___________________________________________________________________________
-StatusCode ReadBs::initialize() {
-   ATH_MSG_INFO("in initialize()");
-
-   // Locate the StoreGateSvc and initialize our local ptr
-   if (!p_SGinMeta.retrieve().isSuccess()) {
-      ATH_MSG_ERROR("Could not find Input MetaData StoreGateSvc");
-      return StatusCode::FAILURE;
-   }
-   if (!p_SGmeta.retrieve().isSuccess()) {
-      ATH_MSG_ERROR("Could not find MetaData StoreGateSvc");
-      return StatusCode::FAILURE;
-   }
-   return StatusCode::SUCCESS;
-}
-//___________________________________________________________________________
-StatusCode ReadBs::execute() {
-   ATH_MSG_DEBUG("in execute()");
-   if (p_SGinMeta->contains<ByteStreamMetadata>("ByteStreamMetadata")) {
-      const DataHandle<ByteStreamMetadata> bsmd;
-      if (p_SGinMeta->retrieve(bsmd, "ByteStreamMetadata").isFailure()) {
-         ATH_MSG_FATAL("Could not find ByteStreamMetadata");
-         return StatusCode::FAILURE;
-      }
-      ATH_MSG_INFO("ByteStreamMetadata, run# = " << bsmd->getRunNumber() << ", #events = " << bsmd->getNumEvents());
-   }
-   if (p_SGmeta->contains<ByteStreamMetadataContainer>("ByteStreamMetadata")) {
-      const DataHandle<ByteStreamMetadataContainer> bsmdc;
-      if (p_SGmeta->retrieve(bsmdc, "ByteStreamMetadata").isFailure()) {
-         ATH_MSG_FATAL("Could not find ByteStreamMetadataContainer");
-         return StatusCode::FAILURE;
-      }
-      ATH_MSG_INFO("ByteStreamMetadataContainer, size =  " << bsmdc->size());
-   }
-   return StatusCode::SUCCESS;
-}
-//___________________________________________________________________________
-StatusCode ReadBs::finalize() {
-   ATH_MSG_INFO("in finalize()");
-   return StatusCode::SUCCESS;
-}
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadBs.h b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadBs.h
deleted file mode 100755
index 6176a0f10c22976776eac208e484af12473e4322..0000000000000000000000000000000000000000
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadBs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef ATHENAPOOLEXAMPLEALGORITHMS_READBS_H
-#define ATHENAPOOLEXAMPLEALGORITHMS_READBS_H
-
-/** @file ReadBs.h
- *  @brief This file contains the class definition for the ReadBs class.
- *  @author Peter van Gemmeren <gemmeren@anl.gov>
- *  $Id: ReadBs.h,v 1.2 2009-03-11 20:08:50 gemmeren Exp $
- **/
-
-#include "AthenaBaseComps/AthAlgorithm.h"
-
-class StoreGateSvc;
-
-namespace AthPoolEx {
-
-/** @class AthPoolEx::ReadBs
- *  @brief This class provides an example for reading event data objects from Pool.
- **/
-class ReadBs : public AthAlgorithm {
-public: // Constructor and Destructor
-   /// Standard Service Constructor
-   ReadBs(const std::string& name, ISvcLocator* pSvcLocator);
-   /// Destructor
-   virtual ~ReadBs();
-
-public:
-/// Gaudi Service Interface method implementations:
-   StatusCode initialize();
-   StatusCode execute();
-   StatusCode finalize();
-
-private:
-   ServiceHandle<StoreGateSvc> p_SGinMeta;
-   ServiceHandle<StoreGateSvc> p_SGmeta;
-};
-
-} // end namespace AthPoolEx
-
-#endif
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadCond.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadCond.cxx
index 61980b050b82070c2bd891fa30f3caf180afdd49..15a81ec527481d7b23ce8fe65e031c998c7c198b 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadCond.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadCond.cxx
@@ -31,7 +31,7 @@ StatusCode ReadCond::execute() {
    ATH_MSG_DEBUG("in execute()");
 
    if (detStore()->contains<ExampleHitContainer>("PedestalWriteData")) {
-      const DataHandle<ExampleHitContainer> ep;
+      const ExampleHitContainer* ep = nullptr;
       if (detStore()->retrieve(ep, "PedestalWriteData").isFailure()) {
          ATH_MSG_ERROR("Could not find DataObject: PedestalWriteData");
          return StatusCode::FAILURE;
@@ -41,7 +41,7 @@ StatusCode ReadCond::execute() {
       }
    }
    if (detStore()->contains<ExampleHitContainer>("PedestalAppendData")) {
-      const DataHandle<ExampleHitContainer> ep;
+      const ExampleHitContainer* ep = nullptr;
       if (detStore()->retrieve(ep, "PedestalAppendData").isFailure()) {
          ATH_MSG_ERROR("Could not find DataObject: PedestalAppendData");
          return StatusCode::FAILURE;
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.cxx
index aca479518d2cd685ad12a63500e8ff37d9ecdbae..446a26a5f3b3057c1ef8dceb1225844e6e2f96b4 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.cxx
@@ -24,7 +24,11 @@
 using namespace AthPoolEx;
 
 //___________________________________________________________________________
-ReadData::ReadData(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator), p_SGinMeta("StoreGateSvc/InputMetaDataStore", name), p_SGmeta("StoreGateSvc/MetaDataStore", name) {
+ReadData::ReadData(const std::string& name, ISvcLocator* pSvcLocator)
+  : AthReentrantAlgorithm(name, pSvcLocator),
+    p_SGinMeta("StoreGateSvc/InputMetaDataStore", name),
+    p_SGmeta("StoreGateSvc/MetaDataStore", name)
+{
 }
 //___________________________________________________________________________
 ReadData::~ReadData() {
@@ -42,13 +46,18 @@ StatusCode ReadData::initialize() {
       ATH_MSG_ERROR("Could not find Tag MetaData StoreGateSvc");
       return StatusCode::FAILURE;
    }
+
+   if (!m_exampleTrackKey.key().empty()) {
+     ATH_CHECK( m_exampleTrackKey.initialize() );
+   }
+   ATH_CHECK( m_exampleHitKey.initialize() );
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
-StatusCode ReadData::execute() {
+StatusCode ReadData::execute_r (const EventContext& ctx) const {
    ATH_MSG_DEBUG("in execute()");
 
-   const DataHandle<EventStreamInfo> esi1, esi2;
+   SG::ConstIterator<EventStreamInfo> esi1, esi2;
    if (p_SGinMeta->retrieve(esi1, esi2).isFailure() || esi1 == esi2) {
       ATH_MSG_WARNING("Could not find EventStreamInfo");
    } else {
@@ -68,7 +77,7 @@ StatusCode ReadData::execute() {
    }
    const std::string ebcKey = "EventSelector.Counter";
    if (p_SGmeta->contains<EventBookkeeperCollection>(ebcKey)) {
-      const DataHandle<EventBookkeeperCollection> ebc;
+      const EventBookkeeperCollection* ebc = nullptr;
       if (p_SGmeta->retrieve(ebc, ebcKey).isFailure()) {
          ATH_MSG_FATAL("Could not find EventBookkeeperCollection, key =");
          return StatusCode::FAILURE;
@@ -80,7 +89,7 @@ StatusCode ReadData::execute() {
    }
    const std::string ebcInKey = "EventBookkeepers";
    if (p_SGinMeta->contains<EventBookkeeperCollection>(ebcInKey)) {
-      const DataHandle<EventBookkeeperCollection> ebc;
+      const EventBookkeeperCollection* ebc = nullptr;
       if (p_SGinMeta->retrieve(ebc, ebcInKey).isFailure()) {
          ATH_MSG_FATAL("Could not find EventBookkeeperCollection, key =");
          return StatusCode::FAILURE;
@@ -91,61 +100,56 @@ StatusCode ReadData::execute() {
       }
    }
    // Get the event header, print out event and run number
-   const DataHandle<EventInfo> evt;
-   if (evtStore()->retrieve(evt).isFailure()) {
-      ATH_MSG_FATAL("Could not find EventInfo");
-      return StatusCode::FAILURE;
-   }
-   ATH_MSG_INFO("EventInfo event: " << evt->event_ID()->event_number() << " run: " << evt->event_ID()->run_number());
+   const EventIDBase& eid = ctx.eventID();
+   ATH_MSG_INFO("EventInfo event: " << eid.event_number() << " run: " << eid.run_number());
    // Get the DataObject, print out its contents
    ATH_MSG_INFO("Get Smart data ptr 1");
 
-   if (evtStore()->contains<ExampleTrackContainer>("MyTracks")) {
-      const DataHandle<ExampleTrackContainer> cont;
-      if (evtStore()->retrieve(cont, "MyTracks").isFailure()) {
-         ATH_MSG_ERROR("Could not find ExampleTrackContainer/MyTracks");
-         return StatusCode::FAILURE;
-      }
-      for (ExampleTrackContainer::const_iterator obj = cont->begin(); obj != cont->end(); obj++) {
-         ATH_MSG_INFO("Track pt = " << (*obj)->getPT() << " eta = " << (*obj)->getEta() << " phi = " << (*obj)->getPhi() << " detector = " << (*obj)->getDetector());
+   if (!m_exampleTrackKey.key().empty()) {
+     SG::ReadHandle<ExampleTrackContainer> tracks (m_exampleTrackKey, ctx);
+     if (tracks.isValid()) {
+       for (const ExampleTrack* track : *tracks) {
+         ATH_MSG_INFO("Track pt = " << track->getPT() << " eta = " << track->getEta() << " phi = " << track->getPhi() << " detector = " << track->getDetector());
          try {
-            double x = (*obj)->getElement1()->getX();
-            ATH_MSG_INFO("ElementLink1 = " << x);
-            ATH_MSG_INFO("ElementLink2 = " << (*obj)->getElement2()->getX());
-            ATH_MSG_INFO("Link ElementLinkVector = " << (*obj)->getElementLinkVector()->size());
-            for (ElementLinkVector<ExampleHitContainer>::const_iterator iter = (*obj)->getElementLinkVector()->begin(); iter != (*obj)->getElementLinkVector()->end(); ++iter) {
-               ATH_MSG_INFO("Element = " << (**iter) << " : " << (**iter)->getX());
-            }
-            ATH_MSG_INFO("Link Navigable = " << (*obj)->getNavigable()->size());
-            for (Navigable<ExampleHitContainer>::object_iter iter = (*obj)->getNavigable()->begin(); iter != (*obj)->getNavigable()->end(); iter++) {
-               ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
-            }
-            ATH_MSG_INFO("Link Weighted Navigable = " << (*obj)->getWeightedNavigable()->size());
-            for (Navigable<ExampleHitContainer, double>::object_iter iter = (*obj)->getWeightedNavigable()->begin(); iter != (*obj)->getWeightedNavigable()->end(); iter++) {
-               ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
-            }
+           double x = track->getElement1()->getX();
+           ATH_MSG_INFO("ElementLink1 = " << x);
+           ATH_MSG_INFO("ElementLink2 = " << track->getElement2()->getX());
+           ATH_MSG_INFO("Link ElementLinkVector = " << track->getElementLinkVector()->size());
+           for (ElementLinkVector<ExampleHitContainer>::const_iterator iter = track->getElementLinkVector()->begin(); iter != track->getElementLinkVector()->end(); ++iter) {
+             ATH_MSG_INFO("Element = " << (**iter) << " : " << (**iter)->getX());
+           }
+           ATH_MSG_INFO("Link Navigable = " << track->getNavigable()->size());
+           for (Navigable<ExampleHitContainer>::object_iter iter = track->getNavigable()->begin(); iter != track->getNavigable()->end(); iter++) {
+             ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
+           }
+           ATH_MSG_INFO("Link Weighted Navigable = " << track->getWeightedNavigable()->size());
+           for (Navigable<ExampleHitContainer, double>::object_iter iter = track->getWeightedNavigable()->begin(); iter != track->getWeightedNavigable()->end(); iter++) {
+             ATH_MSG_INFO("Element = " << (*iter) << " : " << (*iter)->getX());
+           }
          } catch (...) {
-            ATH_MSG_WARNING("Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits");
+           ATH_MSG_WARNING("Could not follow ExampleTrackContainer/MyTracks ElementLinks to ExampleHitContainer/MyHits");
          }
-      }
-   } else {
-      ATH_MSG_INFO("Could not find ExampleTrackContainer/MyTracks");
+       }
+     }
+     else {
+       ATH_MSG_INFO("Could not find ExampleTrackContainer/MyTracks");
+     }
    }
-   if (evtStore()->contains<ExampleHitContainer>("MyHits")) {
-      const DataHandle<ExampleHitContainer> cont;
-      if (evtStore()->retrieve(cont, "MyHits").isFailure()) {
-         ATH_MSG_ERROR("Could not find ExampleHitContainer/MyHits");
-         return StatusCode::FAILURE;
-      }
-      for (ExampleHitContainer::const_iterator obj = cont->begin(); obj != cont->end(); obj++) {
-         ATH_MSG_INFO("Hit x = " << (*obj)->getX() << " y = " << (*obj)->getY() << " z = " << (*obj)->getZ() << " detector = " << (*obj)->getDetector());
-      }
-      if (evtStore()->contains<ExampleHitContainer>("PetersHits")) {
-         ATH_MSG_INFO("Found ExampleHitContainer/PetersHits (alias)");
-      }
-   } else {
-      ATH_MSG_INFO("Could not find ExampleHitContainer/MyHits");
+
+   SG::ReadHandle<ExampleHitContainer> hits (m_exampleHitKey, ctx);
+   if (hits.isValid()) {
+     for (const ExampleHit* hit : *hits) {
+       ATH_MSG_INFO("Hit x = " << hit->getX() << " y = " << hit->getY() << " z = " << hit->getZ() << " detector = " << hit->getDetector());
+     }
+     
+     if (evtStore()->contains<ExampleHitContainer>("PetersHits")) {
+       ATH_MSG_INFO("Found ExampleHitContainer/PetersHits (alias)");
+     }
    }
+   else {
+     ATH_MSG_INFO("Could not find ExampleHitContainer/MyHits");
+   }
+
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.h b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.h
index 18fff9416225180ffecc820276dd69427e8937bb..62bad7121f9091488bdbb94f21ce37c1b5a440c1 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.h
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/ReadData.h
@@ -12,7 +12,10 @@
  **/
 
 #include "GaudiKernel/ServiceHandle.h"
-#include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "AthenaPoolExampleData/ExampleTrackContainer.h"
+#include "AthenaPoolExampleData/ExampleHitContainer.h"
+#include "StoreGate/ReadHandleKey.h"
 
 class StoreGateSvc;
 
@@ -21,7 +24,7 @@ namespace AthPoolEx {
 /** @class AthPoolEx::ReadData
  *  @brief This class provides an example for reading event data objects from Pool.
  **/
-class ReadData : public AthAlgorithm {
+class ReadData : public AthReentrantAlgorithm {
 public: // Constructor and Destructor
    /// Standard Service Constructor
    ReadData(const std::string& name, ISvcLocator* pSvcLocator);
@@ -30,13 +33,15 @@ public: // Constructor and Destructor
 
 public:
 /// Gaudi Service Interface method implementations:
-   StatusCode initialize();
-   StatusCode execute();
-   StatusCode finalize();
+   virtual StatusCode initialize() override;
+   virtual StatusCode execute_r (const EventContext& ctx) const override;
+   virtual StatusCode finalize() override;
 
 private:
    ServiceHandle<StoreGateSvc> p_SGinMeta;
    ServiceHandle<StoreGateSvc> p_SGmeta;
+   SG::ReadHandleKey<ExampleTrackContainer> m_exampleTrackKey { this, "ExampleTrackKey", "MyTracks" };
+   SG::ReadHandleKey<ExampleHitContainer> m_exampleHitKey { this, "ExampleHitKey", "MyHits" };
 };
 
 } // end namespace AthPoolEx
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.cxx
index 08a8a6b8179d69d6cfb0f22f4ccce0a43dd8d71d..85e08478ebc86dfaf6323947ad94b781744a264e 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.cxx
@@ -12,11 +12,14 @@
 
 // the user data-class defintions
 #include "AthenaPoolExampleData/ExampleHitContainer.h"
+#include "StoreGate/ReadHandle.h"
 
 using namespace AthPoolEx;
 
 //___________________________________________________________________________
-WriteCond::WriteCond(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator) { 
+WriteCond::WriteCond(const std::string& name, ISvcLocator* pSvcLocator)
+  : AthReentrantAlgorithm(name, pSvcLocator)
+{ 
    declareProperty("ConditionName", m_conditionName = "PedestalWriteData");
    declareProperty("Weight", m_weight = 0.0);
    declareProperty("Offset", m_offset = 0.0);
@@ -37,40 +40,36 @@ StatusCode WriteCond::initialize() {
       ATH_MSG_ERROR("could not register Pedestal Object");
       return StatusCode::FAILURE;
    }
+
+   ATH_CHECK( m_exampleHitKey.initialize() );
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
-StatusCode WriteCond::execute() {
+StatusCode WriteCond::execute_r (const EventContext& ctx) const {
    ATH_MSG_DEBUG("in execute()");
 
-   if (evtStore()->contains<ExampleHitContainer>("MyHits")) {
-      const DataHandle<ExampleHitContainer> cont;
-      if (!evtStore()->retrieve(cont, "MyHits").isSuccess()) {
-         ATH_MSG_ERROR("Could not find ExampleHitContainer/MyHits");
-         return StatusCode::FAILURE;
-      }
-      DataHandle<ExampleHitContainer> ep;
-      if (detStore()->retrieve(ep, m_conditionName).isFailure()) {
-         ATH_MSG_ERROR("Could not find ExampleHitContainer/" << m_conditionName);
-         return StatusCode::FAILURE;
-      }
-      ExampleHit* pEntry = *ep->begin();
-      for (ExampleHitContainer::const_iterator obj = cont->begin(); obj != cont->end(); obj++) {
-         ATH_MSG_INFO("Hit x = " << (*obj)->getX() << " y = " << (*obj)->getY() << " z = " << (*obj)->getZ() << " detector = " << (*obj)->getDetector());
-         pEntry->setX(pEntry->getX() + m_offset + (*obj)->getX() * (1.0 + m_weight));
-         pEntry->setY(pEntry->getY() + m_offset + (*obj)->getY() * (1.0 + m_weight));
-         pEntry->setZ(pEntry->getZ() + m_offset + (*obj)->getZ() * (1.0 + m_weight));
-         pEntry->setDetector(pEntry->getDetector() + ".");
-      }
-      pEntry->setDetector(pEntry->getDetector() + "o");
+   SG::ReadHandle<ExampleHitContainer> hits (m_exampleHitKey, ctx);
+   ExampleHitContainer* ep = nullptr;
+   if (detStore()->retrieve(ep, m_conditionName).isFailure()) {
+     ATH_MSG_ERROR("Could not find ExampleHitContainer/" << m_conditionName);
+     return StatusCode::FAILURE;
+   }
+   ExampleHit* pEntry = *ep->begin();
+   for (const ExampleHit* hit : *hits) {
+     ATH_MSG_INFO("Hit x = " << hit->getX() << " y = " << hit->getY() << " z = " << hit->getZ() << " detector = " << hit->getDetector());
+     pEntry->setX(pEntry->getX() + m_offset + hit->getX() * (1.0 + m_weight));
+     pEntry->setY(pEntry->getY() + m_offset + hit->getY() * (1.0 + m_weight));
+     pEntry->setZ(pEntry->getZ() + m_offset + hit->getZ() * (1.0 + m_weight));
+     pEntry->setDetector(pEntry->getDetector() + ".");
    }
+   pEntry->setDetector(pEntry->getDetector() + "o");
 
    ATH_MSG_INFO("registered all data");
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
 StatusCode WriteCond::stop() {
-   DataHandle<ExampleHitContainer> ep;
+   ExampleHitContainer* ep = nullptr;
    if (detStore()->retrieve(ep, m_conditionName).isFailure()) {
       ATH_MSG_ERROR("Could not find DataObject");
       return StatusCode::FAILURE;
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.h b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.h
index 8e1b3ac88eb15b7613c16cb19d6c716b80b2daeb..813489ff99dac9069ce4121175c4de80b337e3b2 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.h
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteCond.h
@@ -11,14 +11,16 @@
  *  $Id: WriteCond.h,v 1.1 2008-12-10 21:28:11 gemmeren Exp $
  **/
 
-#include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "AthenaPoolExampleData/ExampleHitContainer.h"
+#include "StoreGate/ReadHandleKey.h"
 
 namespace AthPoolEx {
 
 /** @class AthPoolEx::WriteCond
  *  @brief This class provides an example for writing conditions data objects to Pool.
  **/
-class WriteCond : public AthAlgorithm {
+class WriteCond : public AthReentrantAlgorithm {
 public: // Constructor and Destructor
    /// Standard Service Constructor
    WriteCond(const std::string& name, ISvcLocator* pSvcLocator);
@@ -27,14 +29,16 @@ public: // Constructor and Destructor
 
 public:
 /// Gaudi Service Interface method implementations:
-   StatusCode initialize();
-   StatusCode execute();
-   StatusCode stop();
+   virtual StatusCode initialize() override;
+   virtual StatusCode execute_r (const EventContext& ctx) const override;
+   virtual StatusCode stop() override;
 
 private:
    StringProperty m_conditionName;
    DoubleProperty m_weight;
    DoubleProperty m_offset;
+
+   SG::ReadHandleKey<ExampleHitContainer> m_exampleHitKey { this, "ExampleHitKey", "MyHits" };
 };
 
 } // end AthPoolEx namespace
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.cxx
index 3e7f9b252cf1262053552c5b2c03069c71a0c0e3..014e904dd27b8084afdffa592c0fa1974e57dcfc 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.cxx
@@ -12,14 +12,14 @@
 
 // the user data-class defintions
 #include "AthenaPoolExampleData/ExampleHitContainer.h"
-
-#include "EventInfo/EventInfo.h"
-#include "EventInfo/EventID.h"
+#include "StoreGate/WriteHandle.h"
 
 using namespace AthPoolEx;
 
 //___________________________________________________________________________
-WriteData::WriteData(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator) {
+WriteData::WriteData(const std::string& name, ISvcLocator* pSvcLocator)
+  : AthReentrantAlgorithm(name, pSvcLocator)
+{
 }
 //___________________________________________________________________________
 WriteData::~WriteData() {
@@ -27,40 +27,32 @@ WriteData::~WriteData() {
 //___________________________________________________________________________
 StatusCode WriteData::initialize() {
    ATH_MSG_INFO("in initialize()");
+   ATH_CHECK( m_exampleHitKey.initialize() );
+   ATH_CHECK( m_aliasKey.initialize() );
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
-StatusCode WriteData::execute() {
+StatusCode WriteData::execute_r (const EventContext& ctx) const {
    ATH_MSG_DEBUG("in execute()");
 
-   const DataHandle<EventInfo> evt;
-   if (evtStore()->retrieve(evt).isFailure()) {
-      ATH_MSG_FATAL("Could not find event");
-      return StatusCode::FAILURE;
-   }
-   int eventNumber = evt->event_ID()->event_number();
-   int runNumber = evt->event_ID()->run_number();
+   int eventNumber = ctx.eventID().event_number();
+   int runNumber = ctx.eventID().run_number();
    ATH_MSG_INFO("EventInfo event: " << eventNumber << "  run: " << runNumber);
 
-   ExampleHitContainer* hitCont = new ExampleHitContainer();
+   SG::WriteHandle<ExampleHitContainer> hits (m_exampleHitKey, ctx);
+   ATH_CHECK( hits.record( std::make_unique<ExampleHitContainer>() ) );
    for (int i = 0; i < 10; i++) {
-      ExampleHit* hitObj = new ExampleHit();
+      auto hitObj = std::make_unique<ExampleHit>();
       hitObj->setX(1.2345 + eventNumber * 100 + 3.21 * i);
       hitObj->setY(-2.345 + runNumber * 100 - 5.6789 * i);
       hitObj->setZ(34.567 - eventNumber * 100 + 87.6 / (i + 0.456));
       hitObj->setDetector("DummyHitDetector");
-      hitCont->push_back(hitObj);
-   }
-   if (evtStore()->record(hitCont, "MyHits").isFailure()) {
-      ATH_MSG_ERROR("Could not register ExampleHitContainer/MyHits");
-      return StatusCode::FAILURE;
+      hits->push_back(std::move (hitObj));
    }
+
    if (eventNumber == 14) {
       ATH_MSG_INFO("Now creating ExampleHit alias for event: " << eventNumber);
-      if (evtStore()->setAlias(hitCont, "PetersHits").isFailure()) {
-         ATH_MSG_ERROR("Could not register alias for ExampleHitContainer/MyHits");
-         return StatusCode::FAILURE;
-      }
+      ATH_CHECK( hits.alias (m_aliasKey) );
    }
    ATH_MSG_INFO("registered all data");
    return StatusCode::SUCCESS;
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.h b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.h
index 9bc22682803d4c4916415a3de8b3c0beffa4d33f..03ccdcd069173bfad313ef50a38513571547d90e 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.h
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteData.h
@@ -11,14 +11,16 @@
  *  $Id: WriteData.h,v 1.1 2008-12-10 21:28:11 gemmeren Exp $
  **/
 
-#include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "AthenaPoolExampleData/ExampleHitContainer.h"
+#include "StoreGate/WriteHandleKey.h"
 
 namespace AthPoolEx {
 
 /** @class AthPoolEx::WriteData
  *  @brief This class provides an example for writing event data objects to Pool.
  **/
-class WriteData : public AthAlgorithm {
+class WriteData : public AthReentrantAlgorithm {
 public: // Constructor and Destructor
    /// Standard Service Constructor
    WriteData(const std::string& name, ISvcLocator* pSvcLocator);
@@ -27,9 +29,12 @@ public: // Constructor and Destructor
 
 public:
 /// Gaudi Service Interface method implementations:
-   StatusCode initialize();
-   StatusCode execute();
-   StatusCode finalize();
+   virtual StatusCode initialize() override;
+   virtual StatusCode execute_r (const EventContext& ctx) const override;
+   virtual StatusCode finalize() override;
+
+   SG::WriteHandleKey<ExampleHitContainer> m_exampleHitKey { this, "ExampleHitKey", "MyHits" };
+   SG::WriteHandleKey<ExampleHitContainer> m_aliasKey { this, "AliasKey", "PetersHits" };
 };
 
 } // end AthPoolEx namespace
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.cxx
index 09eb81fdd4a2e8de1a60896c5180f707ed11181b..4d55425c6c6f33b7d491a96b0daa49ee1ca87083 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.cxx
@@ -13,15 +13,14 @@
 #include "AthenaPoolUtilities/TagAthenaAttributeList.h"
 #include "PersistentDataModel/AthenaAttributeList.h"
 #include "AthenaPoolUtilities/AthenaAttributeListSpecification.h"
-
-#include "EventInfo/EventInfo.h"
-#include "EventInfo/EventID.h"
+#include "StoreGate/WriteHandle.h"
 
 using namespace AthPoolEx;
 
 //___________________________________________________________________________
-WriteTag::WriteTag(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator), m_attribListSpec(0) {
-   declareProperty("Key",  m_key = "RunEventTag");
+WriteTag::WriteTag(const std::string& name, ISvcLocator* pSvcLocator)
+  : AthReentrantAlgorithm(name, pSvcLocator), m_attribListSpec(0)
+{
    declareProperty("Magic", m_magic = 0);
 }
 //___________________________________________________________________________
@@ -45,19 +44,17 @@ StatusCode WriteTag::initialize() {
    for (AthenaAttributeListSpecification::const_iterator first = m_attribListSpec->begin(), last = m_attribListSpec->end(); first != last; ++first) {
       ATH_MSG_DEBUG(" name " << (*first).name() << " type " << (*first).typeName());
    }
+
+   ATH_CHECK( m_key.initialize() );
+   ATH_CHECK( m_tagKey.initialize() );
    return StatusCode::SUCCESS;
 }
 //___________________________________________________________________________
-StatusCode WriteTag::execute() {
+StatusCode WriteTag::execute_r (const EventContext& ctx) const {
    ATH_MSG_DEBUG("in execute()");
 
-   const DataHandle<EventInfo> evt;
-   if (evtStore()->retrieve(evt).isFailure()) {
-      ATH_MSG_FATAL("Could not find event");
-      return StatusCode::FAILURE;
-   }
-   unsigned int eventNumber = evt->event_ID()->event_number();
-   unsigned int runNumber = evt->event_ID()->run_number();
+   unsigned int eventNumber = ctx.eventID().event_number();
+   unsigned int runNumber = ctx.eventID().run_number();
    ATH_MSG_INFO("EventInfo event: " << eventNumber << "  run: " << runNumber);
 
    auto tagAttribList = std::make_unique<TagAthenaAttributeList>(*m_attribListSpec);
@@ -76,8 +73,11 @@ StatusCode WriteTag::execute() {
    if (m_magic > 0) {
       (*attribList)["MagicNumber"].data<unsigned int>() = m_magic.value();
    }
-   ATH_CHECK( evtStore()->record (std::move(attribList), m_key.value()) );
-   ATH_CHECK( evtStore()->record (std::move(tagAttribList), m_key.value()) );
+
+   SG::WriteHandle<AthenaAttributeList> attribListH (m_key, ctx);
+   SG::WriteHandle<TagAthenaAttributeList> tagAttribListH (m_tagKey, ctx);
+   ATH_CHECK( attribListH.record (std::move(attribList)) );
+   ATH_CHECK( tagAttribListH.record (std::move(tagAttribList)) );
 
    ATH_MSG_INFO("registered all data");
    return StatusCode::SUCCESS;
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.h b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.h
index 961aba05ae81dec63d892f66d4ddd0fd53b9e2c8..7d7d1006a8f36aefc5b48678f3ea1932dc138c19 100755
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.h
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/WriteTag.h
@@ -11,7 +11,10 @@
  *  $Id: WriteTag.h,v 1.1 2008-12-10 21:28:11 gemmeren Exp $
  **/
 
-#include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "AthenaPoolUtilities/TagAthenaAttributeList.h"
+#include "PersistentDataModel/AthenaAttributeList.h"
+#include "StoreGate/WriteHandleKey.h"
 
 class AthenaAttributeListSpecification;
 
@@ -20,7 +23,7 @@ namespace AthPoolEx {
 /** @class AthPoolEx::WriteTag
  *  @brief This class provides an example for writing event data objects to Pool.
  **/
-class WriteTag : public AthAlgorithm {
+class WriteTag : public AthReentrantAlgorithm {
 public: // Constructor and Destructor
    /// Standard Service Constructor
    WriteTag(const std::string& name, ISvcLocator* pSvcLocator);
@@ -29,12 +32,13 @@ public: // Constructor and Destructor
 
 public:
 /// Gaudi Service Interface method implementations:
-   StatusCode initialize();
-   StatusCode execute();
-   StatusCode finalize();
+   virtual StatusCode initialize() override;
+   virtual StatusCode execute_r (const EventContext& ctx) const override;
+   virtual StatusCode finalize() override;
 
 private:
-   StringProperty m_key;
+   SG::WriteHandleKey<AthenaAttributeList> m_key { this, "Key", "RunEventTag" };
+   SG::WriteHandleKey<TagAthenaAttributeList> m_tagKey { this, "TagKey", "RunEventTag" };
    IntegerProperty m_magic;
    /// Specification of the event tag metadata schema
    AthenaAttributeListSpecification* m_attribListSpec;
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/components/AthenaPoolExampleAlgorithms_entries.cxx b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/components/AthenaPoolExampleAlgorithms_entries.cxx
index 9d130b4e487e5d04833a20d62e8515a2b68f8878..f05a10defcbb453f34b145e3e7aa2476e4db7b0d 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/components/AthenaPoolExampleAlgorithms_entries.cxx
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/src/components/AthenaPoolExampleAlgorithms_entries.cxx
@@ -1,7 +1,6 @@
 #include "../WriteData.h"
 #include "../ReWriteData.h"
 #include "../ReadData.h"
-#include "../ReadBs.h"
 #include "../WriteCond.h"
 #include "../ReadCond.h"
 #include "../ReadMeta.h"
@@ -12,7 +11,6 @@
 DECLARE_COMPONENT( AthPoolEx::WriteData )
 DECLARE_COMPONENT( AthPoolEx::ReWriteData )
 DECLARE_COMPONENT( AthPoolEx::ReadData )
-DECLARE_COMPONENT( AthPoolEx::ReadBs )
 DECLARE_COMPONENT( AthPoolEx::WriteCond )
 DECLARE_COMPONENT( AthPoolEx::ReadCond )
 DECLARE_COMPONENT( AthPoolEx::WriteTag )
diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx
index aaaf114b402842ea6d1a7be4556ecc44de95733d..2d292f467650b3089b32faf901d347a907d5d30b 100755
--- a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx
+++ b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx
@@ -176,6 +176,3 @@ StatusCode  EventInfoAttListTool::finalize() {
   ATH_MSG_DEBUG("in finalize()");
   return AthAlgTool::finalize();
 }
-
-/** destructor */
-EventInfoAttListTool::~EventInfoAttListTool() {}
diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.h b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.h
index 65cc1132bc4a362893aca2a0bd20ec2483ba9959..2957ce50059affc93ede1bb6868dc80955f6c8e7 100755
--- a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.h
+++ b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.h
@@ -45,9 +45,6 @@ public:
 
 protected:
 
-  /** Standard destructor */
-  virtual ~EventInfoAttListTool( );
-
   /** the various components to build their own fragments of tag */
   StatusCode eventTag       (AthenaAttributeList& eventTagCol, 
                              const xAOD::EventInfo& eventInfo);
diff --git a/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.cxx b/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.cxx
index af3f9b0a114476979091d5bb9602d2096f52740c..38765f39577da291b0f9e113621cc408b469d880 100755
--- a/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.cxx
+++ b/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.cxx
@@ -36,8 +36,6 @@ RootCnvSvc::RootCnvSvc(const std::string& name, ISvcLocator* pSvcLocator) :
 	m_treeName("CollectionTree") {
 }
 
-RootCnvSvc::~RootCnvSvc() {}
-
 StatusCode RootCnvSvc::initialize() {
   ATH_MSG_INFO("Initializing " << name() << " - package version " << PACKAGE_VERSION);
   if (!::AthCnvSvc::initialize().isSuccess()) {
diff --git a/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.h b/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.h
index 1881958ffe3cc28fb9030d8984d8aa96450e8eb0..156221e116c23dcdb23ca99bf7412de30c8d3d15 100755
--- a/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.h
+++ b/Database/AthenaRoot/AthenaRootComps/src/RootCnvSvc.h
@@ -22,10 +22,10 @@
 // fwk includes
 #include "GaudiKernel/ServiceHandle.h"
 #include "AthenaBaseComps/AthCnvSvc.h"
+#include "AthenaKernel/IDictLoaderSvc.h"
+#include "AthenaKernel/ITPCnvSvc.h"
 
 // fwd declares
-class IDictLoaderSvc;
-class ITPCnvSvc;
 class IRootSvc;
 
 namespace Athena {
@@ -74,9 +74,6 @@ public:
   StatusCode updateServiceState(IOpaqueAddress* pAddress);
 
 protected:
-  /// Destructor:
-  virtual ~RootCnvSvc();
-
   ///@{ RootType-based API
   /// Load the class (dictionary) from Root.
   RootType getType(const CLID& clid) const;
diff --git a/Database/AthenaRoot/AthenaRootComps/src/RootSvc.h b/Database/AthenaRoot/AthenaRootComps/src/RootSvc.h
index 014679acccd9b51e1ce237beeef7124df5829642..a807f60a274e419847ef927e1dc2f7469b12728c 100755
--- a/Database/AthenaRoot/AthenaRootComps/src/RootSvc.h
+++ b/Database/AthenaRoot/AthenaRootComps/src/RootSvc.h
@@ -86,7 +86,6 @@ public:
   /// @returns NULL if no such file is known to this service
   Athena::RootConnection* connection(const std::string& fname);
 
-protected:
   /// Destructor
   virtual ~RootSvc();
 
diff --git a/Database/RegistrationServices/src/RegistrationStreamLCGTool.h b/Database/RegistrationServices/src/RegistrationStreamLCGTool.h
index b0c28e126cde3bb300888c66203f1a0f180d1a1c..4c8440359fa293c862ff394fdb6e73b19556de83 100755
--- a/Database/RegistrationServices/src/RegistrationStreamLCGTool.h
+++ b/Database/RegistrationServices/src/RegistrationStreamLCGTool.h
@@ -26,6 +26,7 @@
 #include "GaudiKernel/ServiceHandle.h"
 
 #include "AthenaKernel/IRegistrationStreamTool.h"
+#include "PoolSvc/IPoolSvc.h"
 
 #include <map>
 
@@ -33,7 +34,6 @@
 
 class IAddressCreator;
 class StoreGateSvc;
-class IPoolSvc;
 namespace pool
 {
     class ICollection;
@@ -87,11 +87,11 @@ public:
    /// REQUIRED INTERFACE METHOD
    void setCollMetadataKeys(const std::vector<std::string>& keys);
 
-protected:
-
-   /// Standard Destructor
+  /// Standard Destructor
    virtual ~RegistrationStreamLCGTool();
 
+protected:
+
    /// Dump values from AttributeList for DEBUG
    virtual const CLID& attListID();
    virtual StatusCode fillAtt(std::vector< std::pair<std::string, std::string> >& refs,
diff --git a/Database/RegistrationServices/src/RegistrationStreamTagTool.h b/Database/RegistrationServices/src/RegistrationStreamTagTool.h
index be5d5be477dbf8ad8ab7d5624d165814c4d71c26..a62bde6767345b6a94dd6659963d199c88096e26 100755
--- a/Database/RegistrationServices/src/RegistrationStreamTagTool.h
+++ b/Database/RegistrationServices/src/RegistrationStreamTagTool.h
@@ -55,11 +55,11 @@ public:
 
    const CLID& attListID();
 
-protected:
-
-   /// Standard Destructor
+     /// Standard Destructor
    virtual ~RegistrationStreamTagTool();
 
+protected:
+
    /// Dump values from AttributeList for DEBUG
    void dumpTagList(const TagAthenaAttributeList* attributes) const;
 
diff --git a/Event/ByteStreamCnvSvc/src/ByteStreamAttListMetadataSvc.h b/Event/ByteStreamCnvSvc/src/ByteStreamAttListMetadataSvc.h
index 572066e0242d1d7b266c7c488b9c6bccec5c5f36..460e24472850c8e77e2447c1da5058183306f0dc 100644
--- a/Event/ByteStreamCnvSvc/src/ByteStreamAttListMetadataSvc.h
+++ b/Event/ByteStreamCnvSvc/src/ByteStreamAttListMetadataSvc.h
@@ -64,10 +64,6 @@ public:
   StatusCode toBSMetadata  (const std::vector<std::string>& keys);
   StatusCode fromBSMetadata(const std::vector<std::string>& keys);
 
-protected:
-
-  /// Standard Destructor
-  virtual ~ByteStreamAttListMetadataSvc() {}
 
 private:
   Gaudi::Property<std::string> m_inputStoreName;
diff --git a/Event/EventBookkeeperTools/EventBookkeeperTools/myCppFilterTest.h b/Event/EventBookkeeperTools/EventBookkeeperTools/myCppFilterTest.h
index cc4ac06870005a052e468eecb0fb35d28d544f98..ce394c6edf19225f8b6e36474378646f12bca61f 100644
--- a/Event/EventBookkeeperTools/EventBookkeeperTools/myCppFilterTest.h
+++ b/Event/EventBookkeeperTools/EventBookkeeperTools/myCppFilterTest.h
@@ -34,12 +34,6 @@ public:
   StatusCode execute();
   StatusCode finalize();
 
-
-protected:
-  virtual ~myCppFilterTest();
-
-
-
 private:
   CutIdentifier m_filterCutID;
   CutIdentifier m_cut1ID;
diff --git a/Event/EventBookkeeperTools/src/myCppFilterTest.cxx b/Event/EventBookkeeperTools/src/myCppFilterTest.cxx
index d2865df906cda093ef1e2c17ec2b0d3eae67269a..eba7365d86beabc4124ee06ad70ba781574e5b83 100644
--- a/Event/EventBookkeeperTools/src/myCppFilterTest.cxx
+++ b/Event/EventBookkeeperTools/src/myCppFilterTest.cxx
@@ -32,12 +32,6 @@ myCppFilterTest::myCppFilterTest(const std::string& name, ISvcLocator* pSvcLocat
   m_counter=0;
 }
 
-
-myCppFilterTest::~myCppFilterTest() {
-
-}
-
-
 StatusCode myCppFilterTest::initialize(){
   ATH_MSG_DEBUG("initialize()");
 
diff --git a/Event/EventContainers/EventContainers/IDC_Lock.h b/Event/EventContainers/EventContainers/IDC_WriteHandleBase.h
similarity index 63%
rename from Event/EventContainers/EventContainers/IDC_Lock.h
rename to Event/EventContainers/EventContainers/IDC_WriteHandleBase.h
index f9e79b831009e349cf4920aea5f74511362beead..943cb6cd9fe873dac0020fc2b85ed7fac643221d 100644
--- a/Event/EventContainers/EventContainers/IDC_Lock.h
+++ b/Event/EventContainers/EventContainers/IDC_WriteHandleBase.h
@@ -3,29 +3,35 @@
 */
 
 
-#ifndef IDC_LOCK_H
-#define IDC_LOCK_H
+#ifndef IDC_WRITEHANDLEBASE_H
+#define IDC_WRITEHANDLEBASE_H
 #include <atomic>
 #include <condition_variable>
 #include <mutex>
-#include <utility>
 
 namespace EventContainers {
 
 struct mutexPair{
    std::condition_variable condition;
    std::mutex mutex;
-   mutexPair() : condition(), mutex() {}
+#ifndef NDEBUG
+   std::atomic<int> counter;
+#endif
+   mutexPair() : condition(), mutex() {
+#ifndef NDEBUG
+      counter.store(0);
+#endif
+   }
 };
 
 
-class IDC_Lock{
-
+class IDC_WriteHandleBase{
+protected:
    std::atomic<const void*>*  m_atomic;
    mutexPair *m_mut;   
-
+   IDC_WriteHandleBase();
 public:
-   IDC_Lock() : m_atomic(nullptr) { }
+
    void LockOn(std::atomic<const void*>* in, mutexPair *pair){
       m_atomic = in;
       m_mut    = pair;
@@ -33,7 +39,7 @@ public:
    void DropLock();
    void ReleaseLock();
 
-   ~IDC_Lock() { ReleaseLock(); }
+   ~IDC_WriteHandleBase();
 };
 
 }
diff --git a/Event/EventContainers/EventContainers/IIdentifiableCont.h b/Event/EventContainers/EventContainers/IIdentifiableCont.h
index 66de8637bb953970aedf07d3797d13ee4beb694c..9b77bb11c7e1a3386245cf2829b8a8f401df3539 100644
--- a/Event/EventContainers/EventContainers/IIdentifiableCont.h
+++ b/Event/EventContainers/EventContainers/IIdentifiableCont.h
@@ -29,7 +29,7 @@ public:
 
     virtual StatusCode naughtyRetrieve(IdentifierHash hashId, T* &collToRetrieve)const =0;
 
-    virtual StatusCode addCollection(const T* coll, IdentifierHash hashId, bool ownsColl = true) =0;
+    virtual StatusCode addCollection(const T* coll, IdentifierHash hashId) =0;
 
     virtual void cleanup() = 0;
 };
diff --git a/Event/EventContainers/EventContainers/IdentifiableCache.h b/Event/EventContainers/EventContainers/IdentifiableCache.h
index 08899f4a226411a7a04cc91c1a02273688485c22..6e0ec231c6ef56a9716f1ee6560ecca4158918ca 100644
--- a/Event/EventContainers/EventContainers/IdentifiableCache.h
+++ b/Event/EventContainers/EventContainers/IdentifiableCache.h
@@ -45,18 +45,23 @@ public:
   {
   }
 
+  IdentifiableCache (IdentifierHash maxHash, const Maker* maker, size_t lockBucketSize)
+    : IdentifiableCacheBase (maxHash, maker)
+  {
+  }
+
   ~IdentifiableCache()
   {
     IdentifiableCacheBase::cleanUp (void_unique_ptr::Deleter<T>::deleter);
   }
 
   // Return payload if there, null if not there.
-  const T* find (IdentifierHash hash) const
+  const T* find (IdentifierHash hash)
   {
     return reinterpret_cast<const T*> (IdentifiableCacheBase::find (hash));
   }
 
-  const T* findWait (IdentifierHash hash) const
+  const T* findWait (IdentifierHash hash)
   {
     return reinterpret_cast<const T*> (IdentifiableCacheBase::findWait (hash));
   }
@@ -68,9 +73,9 @@ public:
 
   // ids
 
-  bool add (IdentifierHash hash, const T* p, bool TakeOwnerShip = false)
+  bool add (IdentifierHash hash, const T* p)
   {
-    return IdentifiableCacheBase::add (hash, p, TakeOwnerShip);
+    return IdentifiableCacheBase::add (hash, p);
   }
 
   bool add (IdentifierHash hash, std::unique_ptr<T> p)
diff --git a/Event/EventContainers/EventContainers/IdentifiableCacheBase.h b/Event/EventContainers/EventContainers/IdentifiableCacheBase.h
index 4bc2f0a1fc28b64b1634d8029b110127befb7d5b..862ae16ece2cc6c29dc562881680bb993d7d4e90 100644
--- a/Event/EventContainers/EventContainers/IdentifiableCacheBase.h
+++ b/Event/EventContainers/EventContainers/IdentifiableCacheBase.h
@@ -18,15 +18,12 @@
 
 
 #include "Identifier/IdentifierHash.h"
-#include <stdexcept>
 #include <mutex>
 #include <atomic>
-#include <condition_variable>
-#include "EventContainers/IDC_Lock.h"
-#include <map>
+#include "EventContainers/IDC_WriteHandleBase.h"
 //abarton
 //Enabling the ability to remove collections to help compatability with old code.
-//This may be removed to improved threadsafety.
+//This may be removed to improved thread-safety.
 #define IdentifiableCacheBaseRemove
 
 namespace EventContainers {
@@ -40,11 +37,10 @@ public:
 //here for access from other classes
 static constexpr uintptr_t INVALIDflag = UINTPTR_MAX;
 static constexpr uintptr_t ABORTEDflag = UINTPTR_MAX-1;
-static constexpr size_t s_lockBucketSize =6;
+static constexpr size_t s_defaultBucketSize =6;
 
 typedef std::true_type thread_safe;
 typedef std::set<IdentifierHash> idset_t;
-typedef std::map<IdentifierHash, mutexPair>::iterator waitlistPair;
 
 #if 0
   struct deleter
@@ -80,55 +76,77 @@ typedef std::map<IdentifierHash, mutexPair>::iterator waitlistPair;
   
   struct IMaker
   {
+    bool m_IsReEntrant = false;
     virtual ~IMaker() {}
     virtual void_unique_ptr typelessMake (IdentifierHash hash) const = 0;  // unique_ptr<T>??
   };
   
-  // Return payload if there, null if not there.
-  const void* find (IdentifierHash hash) const;
-  const void* findWait (IdentifierHash hash) const;
+  /// Return payload if there, null if not there.
+  const void* find (IdentifierHash hash);
+  /// Retrieve ptr, will wait if there is something in progress
+  const void* findWait (IdentifierHash hash);
 
-  // Try to make payload if not there.
+  /// Try to make payload if not there.
   const void* get (IdentifierHash hash);
 
-  std::vector<IdentifierHash> ids() const;
+  ///In a threaded situation this collection will be valid but will not container hashes later added
+  std::vector<IdentifierHash> ids();
   
-  bool add (IdentifierHash hash, const void* p, bool TakeOwnerShip);
+  bool add (IdentifierHash hash, const void* p);
   bool add (IdentifierHash hash, void_unique_ptr p);
 
-  int tryLock(IdentifierHash, IDC_Lock &, std::vector<waitlistPair>&);
-  int itemAborted(IdentifierHash) const;
-  int itemInProgress(IdentifierHash) const;
+  bool IMakerPresent() const { return m_maker!=nullptr; }
+
+  /// Checks if the item is completed if it is not started it extablishes lock (returns 0),
+  /// If it is started but not completed it adds to wait list (returns 1)
+  /// If the item is already completed it returns 2
+  /// If the item is aborted it does nothing and returns 3
+  int tryLock(IdentifierHash, IDC_WriteHandleBase &, std::vector<IdentifierHash>&);
+
+  ///Returns 1 is the item has been aborted otherwise 0
+  int itemAborted(IdentifierHash);
+
+  ///Returns 1 is the item is inprogress otherwise 0
+  int itemInProgress(IdentifierHash);
+
+  ///Halts the thread until the require hash is completed or aborted
+  const void* waitFor(IdentifierHash);
+
+  ///Create a set of hashes, updates an IDC mask as appropriate
+  void createSet (const std::vector<IdentifierHash>& hashes, std::vector<bool> &mask);
+
 #ifdef IdentifiableCacheBaseRemove
+  ///Use to remove a collection from the cache, this is for backwards compatability 
+  /// and should not be used in a concurrent environment
   bool remove (IdentifierHash hash);
 #endif
-  size_t fullSize() const { return m_owns.size(); }
-  size_t numberOfHashes() const;
+  size_t fullSize() const { return m_vec.size(); }
+  ///In a concurrent situation this number isn't necessarily perfectly synchronised with ids().size()
+  size_t numberOfHashes();
+#ifndef NDEBUG
+  void cancelWait(IdentifierHash hash);
+#endif
 protected:
+  IdentifiableCacheBase (IdentifierHash maxHash, const IMaker* maker, size_t lockBucketSize);
   IdentifiableCacheBase (IdentifierHash maxHash, const IMaker* maker);
   ~IdentifiableCacheBase();
   void clear (deleter_f* deleter);
   void cleanUp(deleter_f* deleter);//Call once before destruction
-  
+  void notifyHash(IdentifierHash hash);
 private:
   std::vector<std::atomic<const void*> > m_vec;
-  std::vector<bool> m_owns;
   
   const IMaker* m_maker;
-  // Set of currently populated hashes.
-  // If a hash has an entry in the set but not in the vector,
-  // a conversion is in progress.
-
-  idset_t m_ids;
 
   typedef std::mutex mutex_t;
   typedef std::lock_guard<mutex_t> lock_t;
-  mutable mutex_t m_mutex;
-
-  std::condition_variable m_cond;
-  mutable mutex_t m_mapMutexes[s_lockBucketSize];
-  mutable std::map<IdentifierHash, mutexPair> m_HoldingMutexes[s_lockBucketSize];
-
+  typedef std::unique_lock<mutex_t> uniqueLock;
+  mutex_t m_mutex;
+  ///Pool of mutexes used for waiting on completion if in a concurrent environment
+  std::unique_ptr<mutexPair[]> m_HoldingMutexes;
+  size_t m_NMutexes;
+  ///Holds the number of valid hashes in container, in concurrent use it is not guaranteed to be up to date.
+  std::atomic<size_t> m_currentHashes;
 };
 
 
diff --git a/Event/EventContainers/EventContainers/IdentifiableContTemp.h b/Event/EventContainers/EventContainers/IdentifiableContTemp.h
index 51b21f550baf74f621c95cff9e7c2852704433b7..c213a2dc00aa4c20c2516f0d1f4b58e1397e932f 100644
--- a/Event/EventContainers/EventContainers/IdentifiableContTemp.h
+++ b/Event/EventContainers/EventContainers/IdentifiableContTemp.h
@@ -28,8 +28,9 @@ public:
     IdentifiableContTemp(size_t size) : IdentifiableContTemp(size, nullptr) { } 
 
     IdentifiableContTemp(IdentifiableContainerMT< T > *extcache = nullptr) : IdentifiableContTemp(extcache->fullSize(), extcache)  {     }
-
+    IdentifiableContTemp() = delete;
     IdentifiableContTemp(const IdentifiableContTemp& that) = delete;
+    IdentifiableContTemp& operator= ( const IdentifiableContTemp& ) = delete;
 
     virtual ~IdentifiableContTemp(){
         for(auto &x : m_usedhashes){
@@ -49,8 +50,7 @@ public:
         return out;
     }
     
-    virtual StatusCode addCollection(const T* coll, IdentifierHash hashId, bool ownsColl = true) override{
-        if(ownsColl == false) return StatusCode::FAILURE; //not supported
+    virtual StatusCode addCollection(const T* coll, IdentifierHash hashId) override{
         if(hashId >=  m_randomcont.size()) return StatusCode::FAILURE;
         m_usedhashes.emplace_back(hashId, coll);
         m_randomcont[hashId] = coll;
@@ -61,7 +61,7 @@ public:
     virtual StatusCode addOrDelete(std::unique_ptr<T> ptr, IdentifierHash hashId) override{
         if(hashId >=  m_randomcont.size()) return StatusCode::FAILURE;
         if(m_randomcont[hashId] == nullptr){
-            return addCollection(ptr.release(), hashId, true);
+            return addCollection(ptr.release(), hashId);
         }
         ptr.reset();
         return StatusCode::SUCCESS;
diff --git a/Event/EventContainers/EventContainers/IdentifiableContainerBase.h b/Event/EventContainers/EventContainers/IdentifiableContainerBase.h
new file mode 100644
index 0000000000000000000000000000000000000000..6799b3bd50656fde5bda2b6721d7c10c37c8b6db
--- /dev/null
+++ b/Event/EventContainers/EventContainers/IdentifiableContainerBase.h
@@ -0,0 +1,38 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+
+#ifndef EVENTCONTAINERS_IDENTIFIABLECONTAINERBASE_H
+#define EVENTCONTAINERS_IDENTIFIABLECONTAINERBASE_H
+
+#include "EventContainers/IdentifiableCacheBase.h"
+
+class IdentifiableContainerBase{
+
+public:
+    typedef std::vector<IdentifierHash> Hash_Container;
+    IdentifiableContainerBase(EventContainers::IdentifiableCacheBase *cache, bool online);
+    static Hash_Container::const_iterator findHash(Hash_Container*, IdentifierHash);
+    ~IdentifiableContainerBase();
+protected:
+    EventContainers::IdentifiableCacheBase *m_cacheLink;
+    bool m_OnlineMode;
+    mutable std::atomic<bool> m_waitNeeded;
+    typedef EventContainers::IdentifiableCacheBase IdentifiableCacheBase;
+    mutable std::vector< IdentifierHash > m_waitlist;
+    mutable std::mutex m_waitMutex;
+    mutable std::vector<bool> m_mask;
+    std::vector<IdentifierHash> GetAllCurrentHashes() const;
+
+    void Wait() const;
+    bool tryFetch(IdentifierHash hashId, EventContainers::IDC_WriteHandleBase &lock);
+    bool tryFetch(IdentifierHash hashId);
+    void cleanup();
+    size_t numberOfCollections() const;
+    void ResetMask();
+    StatusCode fetchOrCreate(IdentifierHash hashId);
+    StatusCode fetchOrCreate(const std::vector<IdentifierHash> &hashIds);
+};
+
+#endif
diff --git a/Event/EventContainers/EventContainers/IdentifiableContainerMT.h b/Event/EventContainers/EventContainers/IdentifiableContainerMT.h
index 5c214e4690f819004acff57412ff9df7be2f280a..4417de46067ef14f0268a0656107bbe9fa45b935 100644
--- a/Event/EventContainers/EventContainers/IdentifiableContainerMT.h
+++ b/Event/EventContainers/EventContainers/IdentifiableContainerMT.h
@@ -19,10 +19,9 @@
 #include "EventContainers/IdentifiableCache.h"
 #include "EventContainers/IIdentifiableCont.h"
 #include <memory>
-#include <algorithm>
 #include "GaudiKernel/DataObject.h"
-
-
+#include "EventContainers/IdentifiableContainerBase.h"
+#include "EventContainers/IDC_WriteHandleBase.h"
 
 //const_iterator and indexFind are provided for backwards compatability. they are not optimal
 /*
@@ -35,12 +34,55 @@ IT is faster to iterate over the container with this method:
 */
 
 template < class T>
-class IdentifiableContainerMT : public DataObject, public EventContainers::IIdentifiableCont<T>
+class IdentifiableContainerMT : public DataObject, public IdentifiableContainerBase, public EventContainers::IIdentifiableCont<T>
 {
 
 
 public:
 
+    class IDC_WriteHandle : EventContainers::IDC_WriteHandleBase {
+        friend class IdentifiableContainerMT<T>;
+        IdentifiableContainerMT<T> *m_IDC_ptr;
+        IdentifierHash m_hashId;
+        bool m_alreadyPresent;
+        public:
+        IDC_WriteHandle() : IDC_WriteHandleBase(), m_IDC_ptr(0), m_hashId(0), m_alreadyPresent(false) { }
+        IDC_WriteHandle& operator=(const IDC_WriteHandle& other) = delete;
+        IDC_WriteHandle(const IDC_WriteHandle& other) = delete;
+        IDC_WriteHandle& operator=(IDC_WriteHandle&& other){
+           Swap(*this, other);
+           return *this;
+        }
+        void Swap(IDC_WriteHandle& a, IDC_WriteHandle& b){
+           if(&a == &b) return;
+           std::swap(a.m_IDC_ptr, b.m_IDC_ptr);
+           std::swap(a.m_hashId, b.m_hashId);
+           std::swap(a.m_alreadyPresent, b.m_alreadyPresent);
+           std::swap(a.m_atomic, b.m_atomic);
+           std::swap(a.m_mut, b.m_mut);
+        }
+        IDC_WriteHandle(IDC_WriteHandle&& other){
+           Swap(*this, other);
+        }
+        StatusCode addOrDelete(std::unique_ptr<T> ptr, bool &deleted){
+           if(m_IDC_ptr==nullptr) return StatusCode::FAILURE;
+           StatusCode sc = m_IDC_ptr->addOrDelete(std::move(ptr), m_hashId, deleted);
+           IDC_WriteHandleBase::ReleaseLock();
+           m_alreadyPresent = true;
+           return sc;
+        }
+        StatusCode addOrDelete(std::unique_ptr<T> ptr){
+           if(m_IDC_ptr==nullptr) return StatusCode::FAILURE;
+           StatusCode sc = m_IDC_ptr->addOrDelete(std::move(ptr), m_hashId);
+           IDC_WriteHandleBase::ReleaseLock();
+           m_alreadyPresent = true;
+           return sc;
+        }
+        bool alreadyPresent(){ return m_alreadyPresent; }
+    };
+
+
+
     typedef T        IDENTIFIABLE;
     typedef EventContainers::IdentifiableCache<T> ICACHE;
     typedef IdentifiableContainerMT<T> MyType;
@@ -51,37 +93,10 @@ public:
     typedef T**        pointer;
     typedef T* const * const_pointer;
     typedef T          base_value_type;
-    typedef std::vector<IdentifierHash> Hash_Container;
-    typedef EventContainers::IDC_Lock IDC_Lock;
-
-private:
-    ICACHE *m_cacheLink;
-    mutable std::vector<bool> m_mask;
-    bool m_OnlineMode;
-    typedef EventContainers::IdentifiableCacheBase IdentifiableCacheBase;
-    typedef IdentifiableCacheBase::waitlistPair waitlistPair;
-    mutable std::vector< waitlistPair> m_waitlist;
-    mutable std::mutex m_waitMutex;
 
-public:
 
-  void Wait() const{
-    //lockguard to protect m_waitlist from multiple wait calls
-    typedef std::lock_guard<decltype(m_waitMutex)> lockguard;
-    lockguard lock(m_waitMutex);
-    while(!m_waitlist.empty()){
-       waitlistPair &o = m_waitlist.back();
-       auto hash = o->first;
-       //unique lock is necessary for the condition variable to have access to unlock
-       typedef std::unique_lock<decltype(o->second.mutex)> uniquelock;
-       uniquelock lk(o->second.mutex);
-       while(m_cacheLink->itemInProgress(hash)){
-          o->second.condition.wait(lk);
-       }
-       if(m_cacheLink->itemAborted(hash)) m_mask[hash] = false;//reset flag
-       m_waitlist.pop_back();
-    }
-  }
+    ICACHE* castCache() { return static_cast<ICACHE*>(m_cacheLink); }
+    ICACHE* castCache() const { return static_cast<ICACHE*>(m_cacheLink); }
 
     class const_iterator
     {
@@ -93,6 +108,7 @@ public:
 
         /// assignment operator
         const_iterator& operator = ( const const_iterator & it ) {
+            if(this == &it) return *this;//Safeguard against self assignment
             m_hashItr     = it.m_hashItr;
             m_sptr        = it.m_sptr;
             m_current     = it.m_current;
@@ -109,7 +125,7 @@ public:
                 auto ids = m_idContainer->GetAllCurrentHashes();
                 m_sptr    = std::shared_ptr<Hash_Container> (new Hash_Container());
                 m_sptr->swap(ids);
-                m_hashItr = std::find(m_sptr->begin(), m_sptr->end(), m_hash);
+                m_hashItr = IdentifiableContainerBase::findHash(m_sptr.get(), m_hash);
                 if(m_hashItr==m_sptr->end()) {
                     m_end = true;
                     m_sptr.reset();
@@ -216,13 +232,13 @@ public:
 
 
 
-    // constructor initializes the collection the hashmax, OFFLINE usages pattern
+    /// constructor initializes the collection the hashmax, OFFLINE usages pattern
     IdentifiableContainerMT(IdentifierHash hashMax);
 
-    // constructor initializes with a link to a cache, ONLINE usage pattern
+    /// constructor initializes with a link to a cache, ONLINE usage pattern
     IdentifiableContainerMT(ICACHE *cache);
 
-    ~IdentifiableContainerMT() { if(!m_OnlineMode) delete m_cacheLink; }
+    ~IdentifiableContainerMT() { if(!m_OnlineMode) delete castCache(); }
 
     virtual bool hasExternalCache() const override final { return m_OnlineMode; }
 
@@ -239,7 +255,7 @@ public:
 
     /// insert collection into container with id hash
     /// if IDC should not take ownership of collection, set ownsColl to false
-    StatusCode addCollection(const T* coll, IdentifierHash hashId, bool ownsColl = true) override final;
+    StatusCode addCollection(const T* coll, IdentifierHash hashId) override final;
 
     /// Tries to add the item to the cache, if the item already exists then it is deleted
     /// This is a convenience method for online multithreaded scenarios
@@ -252,12 +268,12 @@ public:
     /// If it does exist it incorporates it into the IDC view but changing the mask.
     virtual bool tryFetch(IdentifierHash hashId) override final;
 
-    bool tryFetch(IdentifierHash hashId, IDC_Lock &);
-
     /// Tries will look for item in cache, if it doesn't exist will call the cache IMAKER
     /// If cache doesn't have an IMAKER then this fails.
     StatusCode fetchOrCreate(IdentifierHash hashId);
 
+    StatusCode fetchOrCreate(const std::vector<IdentifierHash> &hashId);
+
     //This is a method to support bad behaviour in old code. Remove ASAP
     virtual StatusCode naughtyRetrieve(IdentifierHash hashId, T* &collToRetrieve) const override final;
 
@@ -276,33 +292,23 @@ public:
         return m_mask.size();
     }
 
-    //Duplicate of fullSize for backwards compatability
+    ///Duplicate of fullSize for backwards compatability
     size_t size() const {
         return m_mask.size();
     }    
 
     /// return number of collections
     virtual size_t numberOfCollections() const override final{
-        if(!m_OnlineMode) return m_cacheLink->numberOfHashes();
-        Wait(); 
-        size_t count =0;
-        for(auto b : m_mask) count += b;
-        return count;
+        return IdentifiableContainerBase::numberOfCollections();
     }
 
     
-    //Returns a collection of all hashes availiable in this IDC.
-    //If this is an "offline" mode IDC then this is identical to the cache
-    //If this is an "online" mode IDC then this is the items that both exist in the cache 
-    //and have a postive mask element
+    ///Returns a collection of all hashes availiable in this IDC.
+    ///If this is an "offline" mode IDC then this is identical to the cache
+    ///If this is an "online" mode IDC then this is the items that both exist in the cache 
+    ///and have a postive mask element
     virtual std::vector<IdentifierHash> GetAllCurrentHashes() const override final {
-        if(not m_OnlineMode) return m_cacheLink->ids();
-        else{
-            Wait();
-	    std::vector<IdentifierHash> ids;
-            for(size_t i =0 ; i < m_mask.size(); ++i) if(m_mask[i]) ids.emplace_back(i);
-            return ids;
-        }
+        return IdentifiableContainerBase::GetAllCurrentHashes();
     }
 
     /// return const_iterator for first entry
@@ -316,6 +322,15 @@ public:
     const_iterator end() const {
         return const_iterator(nullptr, true);
     }
+
+    IDC_WriteHandle getWriteHandle(IdentifierHash hash)
+    {
+       IDC_WriteHandle lock;
+       lock.m_hashId = hash;
+       lock.m_IDC_ptr = this;
+       lock.m_alreadyPresent = IdentifiableContainerBase::tryFetch(hash, lock);
+       return lock;
+    }
 };
 
 #ifdef IdentifiableCacheBaseRemove
@@ -324,8 +339,8 @@ T*  //Please don't do this we want to get rid of this
 IdentifiableContainerMT<T>::removeCollection( IdentifierHash hashId )
 {
     using namespace EventContainers;
-    const T* ptr = reinterpret_cast<const T*> (m_cacheLink->find (hashId));
-    m_cacheLink->remove(hashId);
+    const T* ptr = reinterpret_cast<const T*> (castCache()->find (hashId));
+    castCache()->remove(hashId);
     m_mask[hashId] = false;
     return const_cast<T*>(ptr);
 }
@@ -335,38 +350,34 @@ IdentifiableContainerMT<T>::removeCollection( IdentifierHash hashId )
 
 // Constructor for OFFLINE style IDC
 template < class T>
-IdentifiableContainerMT<T>::IdentifiableContainerMT(IdentifierHash maxHash) : m_cacheLink(new ICACHE(maxHash, nullptr))
+IdentifiableContainerMT<T>::IdentifiableContainerMT(IdentifierHash maxHash) :  IdentifiableContainerBase(new ICACHE(maxHash, nullptr), false)
 {
-    m_mask.assign(maxHash, true);
-    m_OnlineMode = false;
 }
 
 // Constructor for ONLINE style IDC
 template < class T>
-IdentifiableContainerMT<T>::IdentifiableContainerMT(ICACHE *cache) : m_cacheLink(cache)
+IdentifiableContainerMT<T>::IdentifiableContainerMT(ICACHE *cache) : IdentifiableContainerBase(cache, true)
 {
-    m_mask.assign(cache->fullSize(), false);
-    m_OnlineMode = true;
 }
 
-// return valuetype on the found entry or null if out of
-//  range using hashed index - fast version, does not call cnv
-//  if object not there
+/// return valuetype on the found entry or null if out of
+///  range using hashed index - fast version, does not call cnv
+///  if object not there
 template < class T>
 const T*
 IdentifiableContainerMT<T>::indexFindPtr( IdentifierHash hashId ) const
 {
-    if(m_mask[hashId])  return m_cacheLink->findWait(hashId);
+    if(m_mask[hashId])  return castCache()->findWait(hashId);
     else                return nullptr;
 }
 
 // insert collection into container with id hash
 template < class T>
 StatusCode
-IdentifiableContainerMT<T>::addCollection(const T* coll, IdentifierHash hashId, bool ownsColl)
+IdentifiableContainerMT<T>::addCollection(const T* coll, IdentifierHash hashId)
 {
     // update m_hashids
-    if (! m_cacheLink->add(hashId, coll, ownsColl)) return StatusCode::FAILURE;
+    if (! castCache()->add(hashId, coll)) return StatusCode::FAILURE;
     m_mask[hashId] = true;
     return StatusCode::SUCCESS;
 
@@ -378,55 +389,39 @@ template < class T>
 void
 IdentifiableContainerMT<T>::cleanup()
 {
-    if(m_OnlineMode) { m_mask.assign(m_cacheLink->fullSize(), false);  }
-    else { m_cacheLink->clearCache(); }
+    if(m_OnlineMode) { IdentifiableContainerBase::ResetMask();  }
+    else { castCache()->clearCache(); }
 }
 
 template < class T>
 StatusCode
 IdentifiableContainerMT<T>::fetchOrCreate(IdentifierHash hashId)
 {
-    auto ptr = m_cacheLink->get(hashId);
-    if(ptr==nullptr){
-        return StatusCode::FAILURE; 
-    }
-    m_mask[hashId] = true;
-    return StatusCode::SUCCESS; 
+    return IdentifiableContainerBase::fetchOrCreate(hashId);
 }
 
 template < class T>
-bool
-IdentifiableContainerMT<T>::tryFetch(IdentifierHash hashId)
+StatusCode
+IdentifiableContainerMT<T>::fetchOrCreate(const std::vector<IdentifierHash> &hashIds)
 {
-    auto ptr = m_cacheLink->find(hashId);
-    if(ptr==nullptr){
-        return false; 
-    }
-    m_mask[hashId] = true;
-    return true; 
+    return IdentifiableContainerBase::fetchOrCreate(hashIds);
 }
 
+
 template < class T>
 bool
-IdentifiableContainerMT<T>::tryFetch(IdentifierHash hashId, IDC_Lock &lock)
+IdentifiableContainerMT<T>::tryFetch(IdentifierHash hashId)
 {
-    if(!m_OnlineMode){
-       return tryFetch(hashId);//No point calling expensive lock method
-    }
-    int flag = m_cacheLink->tryLock(hashId, lock, m_waitlist);
-
-    if(flag > 0) { m_mask[hashId] = flag!=3; return true;}
-    return false;
+    return IdentifiableContainerBase::tryFetch(hashId);
 }
 
-
 template < class T >
 StatusCode 
 IdentifiableContainerMT<T>::naughtyRetrieve(IdentifierHash hashId, T* &collToRetrieve) const
 {
    if(m_OnlineMode) return StatusCode::FAILURE;//NEVER ALLOW FOR EXTERNAL CACHE
    else {
-      collToRetrieve = const_cast< T* > (m_cacheLink->find(hashId));//collToRetrieve can be null on success
+      collToRetrieve = const_cast< T* > (castCache()->find(hashId));//collToRetrieve can be null on success
       return StatusCode::SUCCESS;
    }
 }
@@ -436,7 +431,7 @@ StatusCode
 IdentifiableContainerMT<T>::addOrDelete(std::unique_ptr<T> ptr, IdentifierHash hashId)
 {
     if(hashId >= m_mask.size()) return StatusCode::FAILURE;
-    bool added = m_cacheLink->add(hashId, std::move(ptr));
+    bool added = castCache()->add(hashId, std::move(ptr));
     m_mask[hashId] = true;
     if(added) {
        return StatusCode::SUCCESS;
@@ -450,7 +445,7 @@ StatusCode
 IdentifiableContainerMT<T>::addOrDelete(std::unique_ptr<T> ptr, IdentifierHash hashId, bool &deleted)
 {
     if(hashId >= m_mask.size()) return StatusCode::FAILURE;
-    bool added = m_cacheLink->add(hashId, std::move(ptr));
+    bool added = castCache()->add(hashId, std::move(ptr));
     m_mask[hashId] = true;
     deleted = !added;
     if(added) {
diff --git a/Event/EventContainers/src/IDC_Lock.cxx b/Event/EventContainers/src/IDC_WriteHandleBase.cxx
similarity index 68%
rename from Event/EventContainers/src/IDC_Lock.cxx
rename to Event/EventContainers/src/IDC_WriteHandleBase.cxx
index 84cb9fdf2b860dc3c63be932a06b6a160d8559b8..563b27d3212c14bca3137b0d78b2c99497b00c94 100644
--- a/Event/EventContainers/src/IDC_Lock.cxx
+++ b/Event/EventContainers/src/IDC_WriteHandleBase.cxx
@@ -2,30 +2,37 @@
   Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "EventContainers/IDC_Lock.h"
+#include "EventContainers/IDC_WriteHandleBase.h"
 #include "EventContainers/IdentifiableCacheBase.h"
 
 
 using namespace EventContainers;
 
+
+IDC_WriteHandleBase::IDC_WriteHandleBase() : m_atomic(nullptr), m_mut(nullptr) { }
+
+IDC_WriteHandleBase::~IDC_WriteHandleBase() { ReleaseLock(); }
+
 //If object has not been filled this will change state to aborted
 //If object has been filled this should do nothing
-void IDC_Lock::ReleaseLock(){
+void IDC_WriteHandleBase::ReleaseLock(){
    if(m_atomic==nullptr) return;
 //Convenience declarations
-   using namespace EventContainers; 
    typedef std::lock_guard<decltype(m_mut->mutex)> lockguard;
    const void* waitstate = reinterpret_cast<const void*>(IdentifiableCacheBase::INVALIDflag);
    const void* ABORTstate = reinterpret_cast<const void*>(IdentifiableCacheBase::ABORTEDflag);
 
 //Running code
+   assert(m_atomic->load() != ABORTstate);
+   assert(m_mut->counter >= 0);
    lockguard lk(m_mut->mutex);
    m_atomic->compare_exchange_strong(waitstate, ABORTstate);
    m_mut->condition.notify_all();
+   m_atomic = nullptr;
 }
 
 //Can't imagine why this would be used but this may be necessary
-void IDC_Lock::DropLock(){
+void IDC_WriteHandleBase::DropLock(){
    m_atomic = nullptr;
 }
 
diff --git a/Event/EventContainers/src/IdentifiableCacheBase.cxx b/Event/EventContainers/src/IdentifiableCacheBase.cxx
index 4f21e6b674cd64d3fc4485a6d9d643dff6940e04..ab4041146c468b096b492bbd37e4847e39e8a482 100644
--- a/Event/EventContainers/src/IdentifiableCacheBase.cxx
+++ b/Event/EventContainers/src/IdentifiableCacheBase.cxx
@@ -10,16 +10,14 @@
  * @brief 
  */
 
-// Not in ids, null --- default state.
-// In ids, INVALID -- conversion/add failed.
-// In ids, valid --- Have payload
-// In ids, null --- Conversion in progress.
-// Not in ids, INVALID --- intention to add soon
+// null --- default state.
+// ABORTED -- conversion failed or returned null
+// ptr > null && ptr < ABORTED --- Have payload
+// INVALID --- Conversion in progress or intention to add soon.
 
 #include "EventContainers/IdentifiableCacheBase.h"
 
 
-using namespace std;
 namespace EventContainers {
 
 static const void* INVALID = reinterpret_cast<const void*>(IdentifiableCacheBase::INVALIDflag);
@@ -27,40 +25,46 @@ static const void* ABORTED = reinterpret_cast<const void*>(IdentifiableCacheBase
 
 IdentifiableCacheBase::IdentifiableCacheBase (IdentifierHash maxHash,
                                               const IMaker* maker)
+  : IdentifiableCacheBase(maxHash, maker, s_defaultBucketSize)
+{
+}
+
+IdentifiableCacheBase::IdentifiableCacheBase (IdentifierHash maxHash,
+                                              const IMaker* maker, size_t lockBucketSize)
   : m_vec(maxHash),
-    m_owns(maxHash, false),
     m_maker (maker)
 {
+   m_NMutexes = lockBucketSize;
+   if(m_NMutexes>0) m_HoldingMutexes = std::make_unique<mutexPair[]>(m_NMutexes);
    for(auto &h : m_vec) h.store(nullptr, std::memory_order_relaxed); //Ensure initialized to null - I'm not sure if this is implicit
+   m_currentHashes.store(0, std::memory_order_relaxed);
 }
 
 
 IdentifiableCacheBase::~IdentifiableCacheBase()
 {
-  if (!m_ids.empty())
-    std::abort();
+
 }
 
-int IdentifiableCacheBase::tryLock(IdentifierHash hash, IDC_Lock &lock, std::vector<waitlistPair> &wait){
-   const void *ptr1 = m_vec[hash]; //atomic load
-   if(ptr1==nullptr){
-      size_t slot = hash % s_lockBucketSize;
-      lock_t lockhdl(m_mapMutexes[slot]);
-      if(m_vec[hash].compare_exchange_strong(ptr1, INVALID)){//atomic swap
-         //First call
-
-         auto &mutexpair = m_HoldingMutexes[slot][hash]; //make new pair in unmoving memory
-         
-         lock.LockOn(&m_vec[hash], &mutexpair);
-         return 0;
-      }
+int IdentifiableCacheBase::tryLock(IdentifierHash hash, IDC_WriteHandleBase &lock, std::vector<IdentifierHash> &wait){
+   assert(m_NMutexes > 0);
+   const void *ptr1 =nullptr;
+
+   if(m_vec[hash].compare_exchange_strong(ptr1, INVALID)){//atomic swap (replaces ptr1 with value)
+      //First call
+      size_t slot = hash % m_NMutexes;
+      auto &mutexpair = m_HoldingMutexes[slot];
+      lock.LockOn(&m_vec[hash], &mutexpair);
+      return 0;
    }
 
    if(ptr1 == INVALID){
-      size_t slot = hash % s_lockBucketSize;
-      lock_t lockhdl(m_mapMutexes[slot]);
       //Second call while not finished
-      wait.emplace_back(m_HoldingMutexes[slot].find(hash));
+#ifndef NDEBUG
+      size_t slot = hash % m_NMutexes;
+      m_HoldingMutexes[slot].counter++;
+#endif
+      wait.emplace_back(hash);
       return 1;
    }
    if(ptr1 == ABORTED) return 3;
@@ -70,40 +74,52 @@ int IdentifiableCacheBase::tryLock(IdentifierHash hash, IDC_Lock &lock, std::vec
 
 void IdentifiableCacheBase::clear (deleter_f* deleter)
 {
-  lock_t lock (m_mutex);
-  for (IdentifierHash hash : m_ids) {
-    if (m_owns[hash])
-      deleter (m_vec[hash]);
-    m_owns[hash] = false;
+  size_t s = m_vec.size();
+  for (size_t i=0; i<s ;i++) {
+    const void* ptr = m_vec[i].exchange(nullptr);
+    if (ptr && ptr < ABORTED){
+      deleter (ptr);
+    }
+  }
+  m_currentHashes.store(0, std::memory_order_relaxed);
+#ifndef NDEBUG
+  for(size_t i =0; i<m_NMutexes; i++){
+     if(m_HoldingMutexes[i].counter!=0) std::cout << " counter is " << m_HoldingMutexes[i].counter << std::endl;
+     assert(m_HoldingMutexes[i].counter==0);
   }
-  m_ids.clear();
-  for(auto& h : m_vec) h.store(nullptr, std::memory_order_relaxed); //This should not be being called in a thread contensious situation
+#endif
 }
 
 
 //Does not lock or clear atomics to allow faster destruction
 void IdentifiableCacheBase::cleanUp (deleter_f* deleter)
 {
-  for (IdentifierHash hash : m_ids) {
-    if (m_owns[hash])
-      deleter (m_vec[hash]);
+  size_t s = m_vec.size();
+  for (size_t i=0; i<s ;i++) {
+      const void* p = m_vec[i];
+      if(p && p < ABORTED) deleter (p);
+  }
+#ifndef NDEBUG
+  for(size_t i =0; i<m_NMutexes; i++){
+     if(m_HoldingMutexes[i].counter!=0) std::cout << " counter is " << m_HoldingMutexes[i].counter << std::endl;
+     assert(m_HoldingMutexes[i].counter==0);
   }
-  m_ids.clear();
+#endif
 }
 
-int IdentifiableCacheBase::itemAborted (IdentifierHash hash) const{
+int IdentifiableCacheBase::itemAborted (IdentifierHash hash){
    const void* p = m_vec[hash].load();
    return (p == ABORTED);
 }
 
 
-int IdentifiableCacheBase::itemInProgress (IdentifierHash hash) const{
+int IdentifiableCacheBase::itemInProgress (IdentifierHash hash){
    const void* p = m_vec[hash].load();
    return (p == INVALID);
 }
 
 
-const void* IdentifiableCacheBase::find (IdentifierHash hash) const
+const void* IdentifiableCacheBase::find (IdentifierHash hash)
 {
   if (hash >= m_vec.size()) return nullptr;
   const void* p = m_vec[hash].load();
@@ -112,158 +128,146 @@ const void* IdentifiableCacheBase::find (IdentifierHash hash) const
   return p;
 }
 
-
-
-const void* IdentifiableCacheBase::findWait (IdentifierHash hash) const
+const void* IdentifiableCacheBase::waitFor(IdentifierHash hash)
 {
-  if (hash >= m_vec.size()) return nullptr;
-  const void* p = m_vec[hash];
-  if(p<ABORTED) return p;
-  size_t slot = hash % s_lockBucketSize;
-  std::unique_lock<std::mutex> lockmap(m_mapMutexes[slot]);
-
-  mutexPair &mutpair = m_HoldingMutexes[slot][hash]; //make new pair in unmoving memory
-  lockmap.unlock();
-  while(m_vec[hash]==INVALID){
-     std::unique_lock<decltype(mutpair.mutex)> lk(mutpair.mutex);//mutex associated with condition
-     while(itemInProgress(hash)){
+   const void* item = m_vec[hash].load();
+   if(m_NMutexes ==0) return item;
+   size_t slot = hash % m_NMutexes;
+   if(item == INVALID){
+      mutexPair &mutpair = m_HoldingMutexes[slot];
+      uniqueLock lk(mutpair.mutex);
+      while( (item =m_vec[hash].load()) ==  INVALID){
         mutpair.condition.wait(lk);
-     }
-  }
-  p = m_vec[hash];
+      }
+   }
+   return item;
+}
+#ifndef NDEBUG
+void IdentifiableCacheBase::cancelWait(IdentifierHash hash){
+   assert(m_NMutexes > 0);
+   size_t slot = hash % m_NMutexes;
+   m_HoldingMutexes[slot].counter--;
+}
+#endif
+const void* IdentifiableCacheBase::findWait (IdentifierHash hash)
+{
+  if (hash >= m_vec.size()) return nullptr;
+  const void* p = waitFor(hash);
   if(p>=ABORTED) return nullptr;
   return p;
 }
 
+void IdentifiableCacheBase::notifyHash(IdentifierHash hash)
+{
+    size_t slot = hash % m_NMutexes;
+    mutexPair &mutpair = m_HoldingMutexes[slot];
+    lock_t lk(mutpair.mutex);
+    mutpair.condition.notify_all();
+}
+
 const void* IdentifiableCacheBase::get (IdentifierHash hash)
 {
   // If it's there already, return directly without locking.
-  if (hash >= m_vec.size()) return nullptr;
-  if (m_vec[hash]) return find (hash);
-
-  std::unique_lock<mutex_t> lock (m_mutex);
-  {
-    // Check again.
-    if (m_vec[hash]) return find (hash);
-    idset_t::iterator it = m_ids.find (hash);
-
-    if (it != m_ids.end()) {
-      // It's in the set.  Someone's running the conversion already.
-      // Wait for the condition, then check again.
-      while (!m_vec[hash])
-        m_cond.wait (lock);
-      return find (hash);
-    }
-
-    // We're going to try to do a conversion.
-    // Enter the id in the set.
-    m_ids.insert (hash);
-
-    // If there's no maker, mark it as invalid.
-    if (!m_maker) {
-      m_vec[hash] = INVALID;
-      return nullptr;
-    }
-
-    // Let go of the lock.
-  }
+  const void* ptr = nullptr;
+  if (hash >= m_vec.size()) return ptr;
+
+  if(m_vec[hash].compare_exchange_strong(ptr, INVALID) ) {//Exchanges ptr with current value!!
+     // Make the payload.
+     if(m_maker == nullptr){
+        m_vec[hash].store( ABORTED );
+        return nullptr;
+     }
+     uniqueLock lock(m_mutex, std::defer_lock);
+     if(!m_maker->m_IsReEntrant) lock.lock();//Allow reentrant or non reentrant makers
 
-  // Make the payload.
-  const void* p = nullptr;
-  try {
-    p = m_maker->typelessMake (hash).release();
+     try {
+       ptr = m_maker->typelessMake (hash).release();
+     }
+     catch (...) {
+       // FIXME: Can this be done with RAII?
+       if(m_NMutexes >0) notifyHash(hash);
+       throw;
+     }
+     assert(m_vec[hash] == INVALID);
+     if(ptr){
+        m_vec[hash].store( ptr );
+        m_currentHashes++;
+     }else{
+        m_vec[hash].store( ABORTED );
+     }
+     if(m_NMutexes >0) notifyHash(hash);
   }
-  catch (...) {
-    // FIXME: Can this be done with RAII?
-    m_vec[hash] = INVALID;
-    m_cond.notify_all();
-    throw;
+  else if(ptr == INVALID){
+     ptr= waitFor(hash);
   }
+  if(ptr == ABORTED) return nullptr;
+  assert(ptr < ABORTED);
+  return ptr;
+}
 
-  // Stick it in the vector; notify other threads.
-  if (p) {
-    m_vec[hash] = p;
-    m_owns[hash] = true;
-  }
-  else{
-    m_vec[hash] = INVALID;
-  }
-  m_cond.notify_all();
-  return p;
+void IdentifiableCacheBase::createSet (const std::vector<IdentifierHash>& hashes, std::vector<bool> &mask){
+   assert(mask.size() == fullSize());
+   for(IdentifierHash hash : hashes){
+      const void* ptr = get(hash);
+      if(ptr !=nullptr) mask[hash] = true;
+   }
 }
+
 #ifdef IdentifiableCacheBaseRemove
 bool IdentifiableCacheBase::remove (IdentifierHash hash)
 {
    if (hash >= m_vec.size()) return false;
-   lock_t lock (m_mutex);
-   idset_t::const_iterator it = m_ids.find (hash);
-   if(it != m_ids.end()){
+   if(m_vec[hash]){
       m_vec[hash] = nullptr;
-      m_owns[hash] = false;
-      m_ids.erase(it);
+      m_currentHashes--;
+      return true;
    }
-   return true;
+   return false;
 }
 #endif
-size_t IdentifiableCacheBase::numberOfHashes() const
+size_t IdentifiableCacheBase::numberOfHashes()
 {
-  lock_t lock (m_mutex);
-  return m_ids.size();
+  return m_currentHashes.load();
 }
 
-std::vector<IdentifierHash> IdentifiableCacheBase::ids() const
+std::vector<IdentifierHash> IdentifiableCacheBase::ids()
 {
   std::vector<IdentifierHash> ret;
-  ret.reserve (m_vec.size());
-  lock_t lock (m_mutex);
-  for (IdentifierHash hash : m_ids) {
-    const void* p = m_vec[hash].load();
+  ret.reserve (m_currentHashes);
+  size_t s = m_vec.size();
+  for (size_t i =0; i<s; i++) {
+    const void* p = m_vec[i].load();
     if (p && p < ABORTED)
-      ret.push_back (hash);
+      ret.push_back (i);
   }
   return ret;
 }
 
 
-bool IdentifiableCacheBase::add (IdentifierHash hash, const void* p, bool owns)
+bool IdentifiableCacheBase::add (IdentifierHash hash, const void* p)
 {
-  if (hash >= m_vec.size()) {
-//     cout << "Out of bounds " << hash << " / " << m_vec.size() << endl;
-     return false;
+  if (hash >= m_vec.size()) return false;
+  if(p==nullptr) return false;
+  const void* nul=nullptr;
+  if(m_vec[hash].compare_exchange_strong(nul, p)){
+     m_currentHashes++;
+     return true;
   }
-  lock_t lock (m_mutex);
-  idset_t::iterator it = m_ids.lower_bound (hash);
-  if (it != m_ids.end() && *it == hash)
-  {
-//     cout << "iterator wrong " << endl;
-     return false;
+  const void* invalid = INVALID;
+  if(m_vec[hash].compare_exchange_strong(invalid, p)){
+     m_currentHashes++;
+     return true;
   }
-  assert (m_vec[hash] == nullptr || m_vec[hash]==INVALID);//Can be invalid in the case of "tryfetch lock"
-  m_vec[hash] = p ? p : INVALID;
-  m_owns[hash] = p!=nullptr ? owns : false;
-  m_ids.insert (it, hash);
-  return true;
+  return false;
 }
 
 
 bool IdentifiableCacheBase::add (IdentifierHash hash,
                                  void_unique_ptr p)
 {
-  if (hash >= m_vec.size()) return false;
-  lock_t lock (m_mutex);
-  idset_t::iterator it = m_ids.lower_bound (hash);
-  if (it != m_ids.end() && *it == hash)
-    return false;
-  assert (m_vec[hash] == nullptr || m_vec[hash]==INVALID);//Can be invalid in the case of "tryfetch lock"
-  if (p) {
-    m_vec[hash] = p.release();
-    m_owns[hash] = true;
-  }
-  else {
-    m_vec[hash] = INVALID;
-  }
-  m_ids.insert (it, hash);
-  return true;
+  bool b = add(hash, p.get());
+  if(b) p.release();
+  return b;
 }
 
 
diff --git a/Event/EventContainers/src/IdentifiableContainerBase.cxx b/Event/EventContainers/src/IdentifiableContainerBase.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..ea259a7c6d7b297d2136d9272b5c5f09293ed6ed
--- /dev/null
+++ b/Event/EventContainers/src/IdentifiableContainerBase.cxx
@@ -0,0 +1,106 @@
+#include "EventContainers/IdentifiableContainerBase.h"
+#include <algorithm>
+#include "EventContainers/IDC_WriteHandleBase.h"
+
+  IdentifiableContainerBase::IdentifiableContainerBase(EventContainers::IdentifiableCacheBase *cache, bool online)
+  {
+    m_cacheLink = cache;
+    m_OnlineMode = online;
+    m_mask.assign(cache->fullSize(), !online);
+    m_waitNeeded.store(false, std::memory_order_relaxed);
+  }
+
+  IdentifiableContainerBase::Hash_Container::const_iterator IdentifiableContainerBase::findHash(IdentifiableContainerBase::Hash_Container* container, IdentifierHash hash){
+    return std::find(container->begin(), container->end(), hash);
+  }
+
+  IdentifiableContainerBase::~IdentifiableContainerBase(){
+#ifndef NDEBUG
+    //Deregister unused interest
+    while(!m_waitlist.empty()){
+       IdentifierHash hash = m_waitlist.back();
+       m_cacheLink->cancelWait(hash);
+       m_waitlist.pop_back();
+    }
+#endif
+  }
+
+  void IdentifiableContainerBase::Wait() const{
+    //lockguard to protect m_waitlist from multiple wait calls
+    typedef std::lock_guard<decltype(m_waitMutex)> lockguard;
+    lockguard lock(m_waitMutex);
+
+    const void* ABORTstate = reinterpret_cast<const void*>(IdentifiableCacheBase::ABORTEDflag);
+    while(!m_waitlist.empty()){
+       IdentifierHash hash = m_waitlist.back();
+       const void* ptr = m_cacheLink->waitFor(hash);
+#ifndef NDEBUG
+       m_cacheLink->cancelWait(hash);
+#endif
+       if(ptr == ABORTstate) m_mask[hash] = false;//reset flag
+       m_waitlist.pop_back();
+       
+    }
+    m_waitNeeded.store(false);
+  }
+
+  bool IdentifiableContainerBase::tryFetch(IdentifierHash hashId, EventContainers::IDC_WriteHandleBase &lock)
+  {
+    if(!m_OnlineMode){
+       return tryFetch(hashId);//No point calling expensive lock method
+    }
+    int flag = m_cacheLink->tryLock(hashId, lock, m_waitlist);
+    //Relaxed since this should not be running in threaded situation.
+    if(!m_waitlist.empty()) m_waitNeeded.store(true, std::memory_order_relaxed);
+    if(flag > 0) {
+      m_mask[hashId] = flag!=3;
+      return true;
+    }
+    return false;
+  }
+
+  bool IdentifiableContainerBase::tryFetch(IdentifierHash hashId)
+  {
+    auto ptr = m_cacheLink->find(hashId);
+    if(ptr==nullptr){
+        return false; 
+    }
+    m_mask[hashId] = true;
+    return true; 
+  }
+
+  std::vector<IdentifierHash> IdentifiableContainerBase::GetAllCurrentHashes() const {
+     if(not m_OnlineMode) return m_cacheLink->ids();
+     else{
+         if(m_waitNeeded) Wait();
+         std::vector<IdentifierHash> ids;
+         for(size_t i =0 ; i < m_mask.size(); ++i) if(m_mask[i]) ids.emplace_back(i);
+         return ids;
+     }
+  }
+
+  size_t IdentifiableContainerBase::numberOfCollections() const{
+     if(!m_OnlineMode) return m_cacheLink->numberOfHashes();
+     if(m_waitNeeded) Wait(); 
+     size_t count =std::accumulate(m_mask.begin(), m_mask.end(), 0);
+     return count;
+  }
+
+
+  void IdentifiableContainerBase::ResetMask(){
+     m_mask.assign(m_cacheLink->fullSize(), false);
+  }
+
+  StatusCode IdentifiableContainerBase::fetchOrCreate(IdentifierHash hashId){
+    if(!m_cacheLink->IMakerPresent()) return StatusCode::FAILURE;
+    auto ptr = m_cacheLink->get(hashId);
+    m_mask[hashId] = ptr !=nullptr;
+    return StatusCode::SUCCESS;
+  }
+
+  StatusCode IdentifiableContainerBase::fetchOrCreate(const std::vector<IdentifierHash> &hashIds){
+    if(!m_cacheLink->IMakerPresent()) return StatusCode::FAILURE;
+    m_cacheLink->createSet(hashIds, m_mask);
+    return StatusCode::SUCCESS;
+  }
+
diff --git a/Event/EventContainers/test/IDC_Realistic_Test.cxx b/Event/EventContainers/test/IDC_Realistic_Test.cxx
index f02173df531c697057faedf7c991d2f9ffb0d9c9..e6546afe0e92b784cddc474512727cd3aa98f059 100644
--- a/Event/EventContainers/test/IDC_Realistic_Test.cxx
+++ b/Event/EventContainers/test/IDC_Realistic_Test.cxx
@@ -256,9 +256,8 @@ public:
 
         for(size_t i =RoIStart ; i < RoIEnd; i++) {
             c.fills++;
-            MyCollectionContainer::IDC_Lock lock;
-            bool cacheh = container.tryFetch(i, lock);
-            if(cacheh) {
+            MyCollectionContainer::IDC_WriteHandle lock = container.getWriteHandle(i);
+            if(lock.alreadyPresent()) {
                 c.cachehit++;
                 continue;
             }
@@ -272,7 +271,7 @@ public:
                continue;
             }
             bool deleted = false;
-            StatusCode x = container.addOrDelete(std::move(dcoll), IdentifierHash(i), deleted);
+            StatusCode x = lock.addOrDelete(std::move(dcoll), deleted);
             if(x.isFailure()) {
                 std::cout << "failure in addOrDelete" << std::endl;
                 std::abort();
diff --git a/Event/EventContainers/test/IDMT_ContainerTest.cxx b/Event/EventContainers/test/IDMT_ContainerTest.cxx
index e0176c76672061144eed02e0e7b974ee5c68119f..d285956bad4af1a424f995fda25ec5d27182f6ca 100644
--- a/Event/EventContainers/test/IDMT_ContainerTest.cxx
+++ b/Event/EventContainers/test/IDMT_ContainerTest.cxx
@@ -5,7 +5,8 @@
 // This is a test cxx file for IdentifiableContainerMT. 
 //  
 #include "EventContainers/IdentifiableContainerMT.h" 
-#include "EventContainers/SelectAllObjectMT.h" 
+#include "EventContainers/SelectAllObjectMT.h"
+#include "EventContainers/IdentifiableContTemp.h"
 #include "ID_ContainerTest.h" 
 #include "GaudiKernel/System.h" 
 #include "CLIDSvc/CLASS_DEF.h"
@@ -142,9 +143,12 @@ int ID_ContainerTest::initialize()
     return 0;
 } 
 
-// ------ finalize() 
-int ID_ContainerTest::finalize()  
-{ return 0;} 
+// ------ finalize()
+int ID_ContainerTest::finalize()
+{
+delete m_container;
+m_container=nullptr;
+return 0;}
 
 //------ execute() 
 
@@ -597,11 +601,15 @@ int ID_ContainerTest::execute(){
        if(count !=20) std::abort();
     }
     {
-    MyCollectionContainer::IDC_Lock lock;
-    containerOnline->tryFetch(IdentifierHash(50), lock);
+    MyCollectionContainer::IDC_WriteHandle lock;
+    lock = std::move(containerOnline->getWriteHandle(IdentifierHash(50)));
+    lock = std::move(containerOnline->getWriteHandle(IdentifierHash(50)));//Try to break the locks
+    lock = std::move(containerOnline->getWriteHandle(IdentifierHash(60)));
+    lock = containerOnline->getWriteHandle(IdentifierHash(70));
     }
-    delete cache;
+
     delete containerOnline;
+    delete cache;
     std::cout << "MyDigits left undeleted " << MyDigit::s_total << std::endl;    
 }
     return 0;
@@ -616,6 +624,8 @@ int main (int /*argc*/, char** /*argv[]*/)
     test.initialize();
     for (unsigned int i = 0; i < 5; i++) test.execute();
     test.finalize();
+    EventContainers::IdentifiableContTemp<MyCollection> emptyContContainer(10); //Put here to test compilation of IdentifiableContTemp
+    emptyContContainer.cleanup();
     return 0;
 }
 
diff --git a/Event/EventContainers/test/ID_ContainerTest.cxx b/Event/EventContainers/test/ID_ContainerTest.cxx
index 7b319e51816747c93f12c5de71022d6f2d2dfcc2..a0c30e97d3ef47b3c3a6fd450c67b1579c18ae01 100644
--- a/Event/EventContainers/test/ID_ContainerTest.cxx
+++ b/Event/EventContainers/test/ID_ContainerTest.cxx
@@ -125,8 +125,11 @@ int ID_ContainerTest::initialize()
 } 
 
 // ------ finalize() 
-int ID_ContainerTest::finalize()  
-{ return 0;} 
+int ID_ContainerTest::finalize()
+{
+delete m_container;
+m_container=nullptr;
+return 0;}
 
 //------ execute() 
 
diff --git a/Event/EventContainers/test/ID_ContainerTest.h b/Event/EventContainers/test/ID_ContainerTest.h
old mode 100755
new mode 100644
diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh
index c4b59f53b32ce31712ca9214aa5aa00009b503c6..9ecb5877a7a89804e3c3ac06e7e3549eb3cb3663 100755
--- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh
+++ b/Event/EventOverlay/OverlayMonitoringRTT/test/test_DataOverlayMC16.sh
@@ -27,7 +27,8 @@ OverlayChain_tf.py \
 --preInclude 'sim:EventOverlayJobTransforms/custom.py,EventOverlayJobTransforms/magfield.py' 'overlayBS:EventOverlayJobTransforms/custom.py' \
 --preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' \
 --postInclude 'sim:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign.py,EventOverlayJobTransforms/g4runnumber.py' 'overlayBS:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' \
---ignorePatterns "L1TopoMenuLoader.+ERROR."
+--ignorePatterns "L1TopoMenuLoader.+ERROR." \
+--imf False
 echo "art-result: $? dataoverlay"
 
 Reco_tf.py \
@@ -38,7 +39,8 @@ Reco_tf.py \
 --postInclude 'r2e:EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py,EventOverlayJobTransforms/muAlign_reco.py' \
 --preExec 'from LArConditionsCommon.LArCondFlags import larCondFlags;larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase");rec.doTrigger=False;' \
 --ignorePatterns "L1TopoMenuLoader.+ERROR." \
---postExec 'r2e:from LArCellRec.LArCellRecConf import LArCellBuilderFromLArRawChannelTool;LArCellBuilderFromLArRawChannelTool.RawChannelsName="LArRawChannels_FromDigits"'
+--postExec 'r2e:from LArCellRec.LArCellRecConf import LArCellBuilderFromLArRawChannelTool;LArCellBuilderFromLArRawChannelTool.RawChannelsName="LArRawChannels_FromDigits"' \
+--imf False
 echo "art-result: $? reco"
 
 ArtPackage=$1
diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_singlemu.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_singlemu.sh
index 0cf6fa9c7413d148331af09594e7a06db40c2d1d..536db5cc079a41e99b8fba54cc9417f2a51ec5ed 100755
--- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_singlemu.sh
+++ b/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_singlemu.sh
@@ -21,7 +21,8 @@ OverlayPool_tf.py \
 --geometryVersion ATLAS-R2-2016-01-00-01 \
 --triggerConfig 'OverlayPool=NONE' \
 --postExec 'ServiceMgr.TGCcablingServerSvc.forcedUse=True' \
---preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);'
+--preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);' \
+--imf False
 echo "art-result: $? overlaypool"
 
 Reco_tf.py \
@@ -29,7 +30,8 @@ Reco_tf.py \
 --outputESDFile MC_plus_MC.ESD.pool.root \
 --outputAODFile MC_plus_MC.AOD.pool.root \
 --maxEvents -1 --skipEvents 0 --autoConfiguration everything \
---preExec 'rec.doTrigger=False;from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);' 'RAWtoESD:from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArCellEmMisCalib=False'
+--preExec 'rec.doTrigger=False;from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);' 'RAWtoESD:from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArCellEmMisCalib=False' \
+--imf False
 echo "art-result: $? reco"
 
 ArtPackage=$1
diff --git a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_ttbar.sh b/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_ttbar.sh
index 135fedd45c8e603aa31f112f00e417169d06ff8b..362042e0327aa942c5b415dac17d5e4612bbb69a 100755
--- a/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_ttbar.sh
+++ b/Event/EventOverlay/OverlayMonitoringRTT/test/test_MCOverlayMC16_ttbar.sh
@@ -21,7 +21,8 @@ OverlayPool_tf.py \
 --geometryVersion ATLAS-R2-2016-01-00-01 \
 --triggerConfig 'OverlayPool=NONE' \
 --postExec 'ServiceMgr.TGCcablingServerSvc.forcedUse=True' \
---preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);'
+--preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);' \
+--imf False
 echo "art-result: $? overlaypool"
 
 Reco_tf.py \
@@ -29,7 +30,8 @@ Reco_tf.py \
 --outputESDFile MC_plus_MC.ESD.pool.root \
 --outputAODFile MC_plus_MC.AOD.pool.root \
 --maxEvents -1 --skipEvents 0 --autoConfiguration everything \
---preExec 'rec.doTrigger=False;from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);' 'RAWtoESD:from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArCellEmMisCalib=False'
+--preExec 'rec.doTrigger=False;from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False);' 'RAWtoESD:from CaloRec.CaloCellFlags import jobproperties;jobproperties.CaloCellFlags.doLArCellEmMisCalib=False' \
+--imf False
 echo "art-result: $? reco"
 
 ArtPackage=$1
diff --git a/Event/xAOD/xAODCaloEventAthenaPool/src/xAODCaloClusterAuxContainerCnv.h b/Event/xAOD/xAODCaloEventAthenaPool/src/xAODCaloClusterAuxContainerCnv.h
index 3159591f5b8c6c4ce3371e392dc77578c4b4514f..c08085c5daff8c9ae4ca0cd35ac51a29abc6d265 100644
--- a/Event/xAOD/xAODCaloEventAthenaPool/src/xAODCaloClusterAuxContainerCnv.h
+++ b/Event/xAOD/xAODCaloEventAthenaPool/src/xAODCaloClusterAuxContainerCnv.h
@@ -14,9 +14,7 @@
 
 // EDM include(s):
 #include "xAODCaloEvent/CaloClusterAuxContainer.h"
-
-// Forward declaration(s):
-class IxAODClusterCompressor;
+#include "CaloInterface/IxAODClusterCompressor.h"
 
 /// Base class for the converter
 typedef T_AthenaPoolCustomCnv< xAOD::CaloClusterAuxContainer,
diff --git a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvAlg.cxx b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvAlg.cxx
index 2ff6a76f40b636477f4fa8e7e77f68894dd001cb..385aeb8b5627c0be907a6de8ee525a5066370276 100644
--- a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvAlg.cxx
+++ b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvAlg.cxx
@@ -102,23 +102,6 @@ namespace xAODMaker {
       // Sub-events for the main EventInfo object:
       std::vector< xAOD::EventInfo::SubEvent > subEvents;
 
-      // A map translating between the AOD and xAOD pileup event types:
-      static std::map< PileUpEventInfo::SubEvent::pileup_type,
-                       xAOD::EventInfo::PileUpType > pileupTypeMap;
-      if( ! pileupTypeMap.size() ) {
-#define DECLARE_SE_TYPE( TYPE )                                         \
-         pileupTypeMap[ PileUpTimeEventIndex::TYPE ] = xAOD::EventInfo::TYPE
-
-         DECLARE_SE_TYPE( Unknown );
-         DECLARE_SE_TYPE( Signal );
-         DECLARE_SE_TYPE( MinimumBias );
-         DECLARE_SE_TYPE( Cavern );
-         DECLARE_SE_TYPE( HaloGas );
-         DECLARE_SE_TYPE( ZeroBias );
-
-#undef DECLARE_SE_TYPE
-      }
-
       // A convenience type declaration:
       typedef ElementLink< xAOD::EventInfoContainer > EiLink;
 
@@ -132,12 +115,25 @@ namespace xAODMaker {
          // Fill it with information:
          CHECK( m_cnvTool->convert( pu_itr->pSubEvt, ei, true, false ) );
          // And now add a sub-event to the temporary list:
-         auto typeItr = pileupTypeMap.find( pu_itr->type() );
          xAOD::EventInfo::PileUpType type = xAOD::EventInfo::Unknown;
-         if( typeItr == pileupTypeMap.end() ) {
-            ATH_MSG_WARNING( "PileUpType not recognised: " << pu_itr->type() );
-         } else {
-            type = typeItr->second;
+         switch (pu_itr->type()) {
+         case PileUpTimeEventIndex::Signal:
+           type = xAOD::EventInfo::Signal;
+           break;
+         case PileUpTimeEventIndex::MinimumBias:
+           type = xAOD::EventInfo::MinimumBias;
+           break;
+         case PileUpTimeEventIndex::Cavern:
+           type = xAOD::EventInfo::Cavern;
+           break;
+         case PileUpTimeEventIndex::HaloGas:
+           type = xAOD::EventInfo::HaloGas;
+           break;
+         case PileUpTimeEventIndex::ZeroBias:
+           type = xAOD::EventInfo::ZeroBias;
+           break;
+         default:
+           break;
          }
          subEvents.push_back( xAOD::EventInfo::SubEvent( pu_itr->time(),
                                                          pu_itr->index(),
diff --git a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx
index 14bde8a260fbb198771324e5d17c090d04464363..9d9164e4952c894a963fbf38480fda36f0063321 100644
--- a/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx
+++ b/Event/xAOD/xAODEventInfoCnv/src/EventInfoCnvTool.cxx
@@ -263,40 +263,37 @@ namespace xAODMaker {
       const PileUpEventInfo* puei =
          dynamic_cast< const PileUpEventInfo* >( aod );
       if( puei && copyPileUpLinks ) {
-         // Construct the map for the SubEvent translation:
-         static std::map< PileUpEventInfo::SubEvent::pileup_type,
-                          xAOD::EventInfo::PileUpType > subTypeMap;
-         if( ! subTypeMap.size() ) {
-            subTypeMap[ PileUpTimeEventIndex::Unknown ] =
-               xAOD::EventInfo::Unknown;
-            subTypeMap[ PileUpTimeEventIndex::Signal ] =
-               xAOD::EventInfo::Signal;
-            subTypeMap[ PileUpTimeEventIndex::MinimumBias ] =
-               xAOD::EventInfo::MinimumBias;
-            subTypeMap[ PileUpTimeEventIndex::Cavern ] =
-               xAOD::EventInfo::Cavern;
-            subTypeMap[ PileUpTimeEventIndex::HaloGas ] =
-               xAOD::EventInfo::HaloGas;
-            subTypeMap[ PileUpTimeEventIndex::ZeroBias ] =
-               xAOD::EventInfo::ZeroBias;
-         }
-
          // Create the sub-event objects to fill into the output object:
          std::vector< xAOD::EventInfo::SubEvent > subEvents;
          PileUpEventInfo::SubEvent::const_iterator itr = puei->beginSubEvt();
          PileUpEventInfo::SubEvent::const_iterator end = puei->endSubEvt();
          for( ; itr != end; ++itr ) {
             // Look up the sub-event type:
-            std::map< PileUpEventInfo::SubEvent::pileup_type,
-               xAOD::EventInfo::PileUpType >::const_iterator type_itr =
-               subTypeMap.find( itr->type() );
-            if( type_itr == subTypeMap.end() ) {
-               ATH_MSG_WARNING( "Unknown sub-event type ("
-                                << itr->type() << ") encountered" );
+           
+            xAOD::EventInfo::PileUpType type = xAOD::EventInfo::Unknown;
+            switch (itr->type()) {
+            case PileUpTimeEventIndex::Signal:
+              type = xAOD::EventInfo::Signal;
+              break;
+            case PileUpTimeEventIndex::MinimumBias:
+              type = xAOD::EventInfo::MinimumBias;
+              break;
+            case PileUpTimeEventIndex::Cavern:
+              type = xAOD::EventInfo::Cavern;
+              break;
+            case PileUpTimeEventIndex::HaloGas:
+              type = xAOD::EventInfo::HaloGas;
+              break;
+            case PileUpTimeEventIndex::ZeroBias:
+              type = xAOD::EventInfo::ZeroBias;
+              break;
+            case PileUpTimeEventIndex::Unknown:
+              break;
+            default:
+              ATH_MSG_WARNING( "Unknown sub-event type ("
+                               << itr->type() << ") encountered" );
+              break;
             }
-            const xAOD::EventInfo::PileUpType type =
-               ( type_itr != subTypeMap.end() ? type_itr->second :
-                 xAOD::EventInfo::Unknown );
 
             // Construct the link to the pile-up EventInfo object:
             ElementLink< xAOD::EventInfoContainer > link;
diff --git a/ForwardDetectors/AFP/AFP_Digitization/AFP_Digitization/AFP_PileUpTool.h b/ForwardDetectors/AFP/AFP_Digitization/AFP_Digitization/AFP_PileUpTool.h
index 7abea2a004fe7590fc339a956c0f41e1e812bef5..e1054228ec2ceaa22b3dcb3f87c9c6889273bcfc 100644
--- a/ForwardDetectors/AFP/AFP_Digitization/AFP_Digitization/AFP_PileUpTool.h
+++ b/ForwardDetectors/AFP/AFP_Digitization/AFP_Digitization/AFP_PileUpTool.h
@@ -22,6 +22,7 @@
 #include "AFP_SimEv/AFP_SIDSimHit.h"
 #include "AFP_DigiEv/AFP_TDDigiCollection.h"
 #include "AFP_DigiEv/AFP_SiDigiCollection.h"
+#include "PileUpTools/PileUpMergeSvc.h"
 #include "TMath.h"
 #include "TH1.h"
 #include "TF1.h"
@@ -33,7 +34,7 @@
 #include <utility> /* pair */
 
 class IAtRndmGenSvc;
-class PileUpMergeSvc;
+// class PileUpMergeSvc;
 
 static const InterfaceID IID_IAFP_PileUpTool ("AFP_PileUpTool",1,0); //Temporary for back-compatibility with 17.3.X.Y
 
diff --git a/ForwardDetectors/ALFA/ALFA_Digitization/ALFA_Digitization/ALFA_PileUpTool.h b/ForwardDetectors/ALFA/ALFA_Digitization/ALFA_Digitization/ALFA_PileUpTool.h
index 2516a761ca6000f46bf681e8ca294967a2935eb7..5acad297996eab9187951436ae9b7d33c5be552a 100644
--- a/ForwardDetectors/ALFA/ALFA_Digitization/ALFA_Digitization/ALFA_PileUpTool.h
+++ b/ForwardDetectors/ALFA/ALFA_Digitization/ALFA_Digitization/ALFA_PileUpTool.h
@@ -21,6 +21,8 @@
 #include "ALFA_RawEv/ALFA_DigitCollection.h"
 #include "ALFA_RawEv/ALFA_ODDigitCollection.h"
 
+#include "PileUpTools/PileUpMergeSvc.h"
+
 #include <string>
 #include <iostream>
 #include <fstream> 
@@ -29,7 +31,6 @@
 #include <utility> /* pair */
 
 class IAtRndmGenSvc;
-class PileUpMergeSvc;
 
 class ALFA_PileUpTool: public PileUpToolBase {
 
diff --git a/ForwardDetectors/ForwardTransportSvc/src/ForwardTransportSvc.h b/ForwardDetectors/ForwardTransportSvc/src/ForwardTransportSvc.h
index 488f37fe53fa59d912c8405d610504832c6e6f98..37aab324afc730dae31ade5901a46b1e3ce475f2 100755
--- a/ForwardDetectors/ForwardTransportSvc/src/ForwardTransportSvc.h
+++ b/ForwardDetectors/ForwardTransportSvc/src/ForwardTransportSvc.h
@@ -8,8 +8,9 @@
 #include "AthenaBaseComps/AthService.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "ForwardTransportSvc/IForwardTransportSvc.h"
+#include "GaudiKernel/ITHistSvc.h"
 
-class ITHistSvc;
+// class ITHistSvc;
 class StoreGateSvc;
 class TTree;
 
diff --git a/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/LUCID_RawDataByteStreamCnv/LUCID_DigitByteStreamCnv.h b/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/LUCID_RawDataByteStreamCnv/LUCID_DigitByteStreamCnv.h
index e37dd02e1ef6fe4bc3e2d5c525f3fd3d13df75a6..d3cc49be2296eeaacf183a16d64e195b18c88e27 100644
--- a/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/LUCID_RawDataByteStreamCnv/LUCID_DigitByteStreamCnv.h
+++ b/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/LUCID_RawDataByteStreamCnv/LUCID_DigitByteStreamCnv.h
@@ -47,8 +47,6 @@ typedef std::map<uint32_t, LUCID_RodEncoder> LucidRodEncoder_map;
 
 class LUCID_DigitByteStreamCnv: public Converter {
 
-  ~LUCID_DigitByteStreamCnv();
-
  public:
 
   LUCID_DigitByteStreamCnv(ISvcLocator* svcloc);
diff --git a/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/src/LUCID_DigitByteStreamCnv.cxx b/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/src/LUCID_DigitByteStreamCnv.cxx
index cd7e92d39833b4bbfeb9ed91db452bab458d60e7..21d35a1d091c64af904e72ed581361a9c6a02a54 100644
--- a/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/src/LUCID_DigitByteStreamCnv.cxx
+++ b/ForwardDetectors/LUCID/LUCID_Cnv/LUCID_RawDataByteStreamCnv/src/LUCID_DigitByteStreamCnv.cxx
@@ -14,8 +14,6 @@ LUCID_DigitByteStreamCnv::LUCID_DigitByteStreamCnv(ISvcLocator* svcloc) :
   m_StoreGate             = 0;
 }
 
-LUCID_DigitByteStreamCnv::~LUCID_DigitByteStreamCnv() {}
-
 StatusCode LUCID_DigitByteStreamCnv::initialize() {
 
   StatusCode sc = Converter::initialize(); 
diff --git a/ForwardDetectors/LUCID/LUCID_Digitization/src/LUCID_PileUpTool.h b/ForwardDetectors/LUCID/LUCID_Digitization/src/LUCID_PileUpTool.h
index 8666e6c839fe375d4e28aeddb7dab6ca7be473e2..c012d728fcf189bf8ee08a705712e156812fc6e0 100644
--- a/ForwardDetectors/LUCID/LUCID_Digitization/src/LUCID_PileUpTool.h
+++ b/ForwardDetectors/LUCID/LUCID_Digitization/src/LUCID_PileUpTool.h
@@ -15,6 +15,8 @@
 #include "xAODEventInfo/EventInfo.h"   // SubEventIterator
 #include "xAODEventInfo/EventAuxInfo.h"// SubEventIterator
 
+#include "PileUpTools/PileUpMergeSvc.h"
+
 #include "GaudiKernel/Property.h"
 #include "GaudiKernel/ServiceHandle.h"
 
@@ -23,7 +25,7 @@
 
 class StoreGateSvc;
 class IAtRndmGenSvc;
-class PileUpMergeSvc;
+//class PileUpMergeSvc;
 class IHistSvc;
 
 class LUCID_PileUpTool: public PileUpToolBase, public LUCID_DigitizationToolBox {
diff --git a/ForwardDetectors/ZDC/ZDC_SimuDigitization/ZDC_SimuDigitization/ZDC_PileUpTool.h b/ForwardDetectors/ZDC/ZDC_SimuDigitization/ZDC_SimuDigitization/ZDC_PileUpTool.h
index 0addf20cbd375aeb0f6f222be67f34ad7d826dc7..325a1cfc25705cb10615850f2aadaff31a28dacc 100644
--- a/ForwardDetectors/ZDC/ZDC_SimuDigitization/ZDC_SimuDigitization/ZDC_PileUpTool.h
+++ b/ForwardDetectors/ZDC/ZDC_SimuDigitization/ZDC_SimuDigitization/ZDC_PileUpTool.h
@@ -17,6 +17,7 @@
 #include "ZDC_SimEvent/ZDC_SimStripHit.h"
 #include "ZDC_SimEvent/ZDC_SimPixelHit.h"
 #include "ZdcEvent/ZdcDigitsCollection.h"
+#include "PileUpTools/PileUpMergeSvc.h"
 #include <string>
 #include <fstream> 
 
@@ -24,7 +25,6 @@
 #include <utility> /* pair */
 
 class IAtRndmGenSvc;
-class PileUpMergeSvc;
 
 class ZDC_PileUpTool: public PileUpToolBase {
 
diff --git a/Generators/Rivet_i/Rivet_i/Rivet_i.h b/Generators/Rivet_i/Rivet_i/Rivet_i.h
index c3ce4f744f96d33cb03d92b0e2d9402378c46509..ef710f32331b69425aab906dfc1133a98c4eecc1 100644
--- a/Generators/Rivet_i/Rivet_i/Rivet_i.h
+++ b/Generators/Rivet_i/Rivet_i/Rivet_i.h
@@ -7,6 +7,7 @@
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ServiceHandle.h"
+#include "GaudiKernel/ITHistSvc.h"
 
 #include "Rivet/AnalysisHandler.hh"
 
diff --git a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/TrigExPartialEB/MTCalibPeb.h b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/TrigExPartialEB/MTCalibPeb.h
index 0cf500e717b08c8b63f65fa539e74442019ee5e9..b7d6906ec7ae5de997027c616d622999abd7cc6a 100755
--- a/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/TrigExPartialEB/MTCalibPeb.h
+++ b/HLT/Trigger/TrigControl/TrigExamples/TrigExPartialEB/TrigExPartialEB/MTCalibPeb.h
@@ -10,11 +10,11 @@
 #include "EventInfo/EventType.h"
 #include "eformat/eformat.h"
 #include "TrigROBDataProviderSvc/ITrigROBDataProviderSvc.h"
+#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h"
 #include <stdint.h>
 #include <set>
 
 /////////////////////////////////////////////////////////////////////////////
-class IROBDataProviderSvc;
 class StreamTag;
 
 class MTCalibPeb:public AthAlgorithm {
diff --git a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/TrigOnlineMonitor/TrigROBMonitor.h b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/TrigOnlineMonitor/TrigROBMonitor.h
index 9636f4ad734f11eb094a4181bf46d793ef7363a2..07dd3329f51215da7741d4a70a263e58677a2db1 100755
--- a/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/TrigOnlineMonitor/TrigROBMonitor.h
+++ b/HLT/Trigger/TrigMonitoring/TrigOnlineMonitor/TrigOnlineMonitor/TrigROBMonitor.h
@@ -6,14 +6,14 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/SmartIF.h"
 #include "ByteStreamData/RawEvent.h"
+#include "TrigROBDataProviderSvc/ITrigROBDataProviderSvc.h"
+#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h"
 #include "GaudiKernel/HistoProperty.h"
 #include "eformat/Status.h"
 #include <stdint.h>
 
 /////////////////////////////////////////////////////////////////////////////
 
-class IROBDataProviderSvc;
-class ITrigROBDataProviderSvc;
 class TH1F;    /// for monitoring purposes
 class TH2F;    /// for monitoring purposes
 class TProfile;/// for monitoring purposes
diff --git a/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignFillTrack.h b/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignFillTrack.h
index 72fa2a8cc995882a50b72e9e3603e4d99d9ae2e9..8b017105b8f5f8e3eed5a31ee25a188657c0642f 100644
--- a/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignFillTrack.h
+++ b/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignFillTrack.h
@@ -17,8 +17,6 @@
 
 #include <string>
 
-#include "HepPDT/ParticleDataTable.hh"
-
 #include "TrkTrack/TrackCollection.h"
 
 #include "AthenaBaseComps/AthAlgTool.h"
@@ -26,20 +24,20 @@
 #include "GaudiKernel/ToolHandle.h"
 
 #include "InDetAlignGenTools/IInDetAlignFillTrack.h"
-#include "TrkExInterfaces/IExtrapolator.h"
 
 
 namespace Trk {
   class Track;
   class ITruthToTrack; //!< Produces perigee track parameters from generated parameters
+  class IExtrapolator;
 }
 
-namespace HepMC {
+namespace HepPDT {
   class ParticleDataTable;
 }
 
 class INTupleSvc;
-class IExtrapolator;
+
 
 class InDetAlignFillTrack: virtual public IInDetAlignFillTrack, public AthAlgTool {
  public:
diff --git a/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignHitQualSelTool.h b/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignHitQualSelTool.h
index 94f02d7dae8d194d57cf8a6686d192973a190a51..5d305f2def3dc3111abf69adbde2cab36af34cd3 100644
--- a/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignHitQualSelTool.h
+++ b/InnerDetector/InDetAlignTools/InDetAlignGenTools/InDetAlignGenTools/InDetAlignHitQualSelTool.h
@@ -27,7 +27,6 @@ namespace Trk {
 }
 namespace InDetDD {
   class PixelDetectorManager ;
-  class SCT_DetectorManager ;
 }
 class AtlasDetectorID ;
 class Identifier ;
@@ -96,7 +95,6 @@ class InDetAlignHitQualSelTool : virtual public IInDetAlignHitQualSelTool, publi
  // "infrastructure" members
  
   const InDetDD::PixelDetectorManager*   m_PIXManager ; //!< to get pixel phi and eta identifiers
-  const InDetDD::SCT_DetectorManager*    m_SCTManager ; //!< to get strip numbers
   const PixelID*                         m_pixelid ;    //!< Pixel id helper
   const SCT_ID*                          m_sctID ;    //!< Pixel id helper
 } ;
diff --git a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx
index 1a4b377ff7572e0ff2702b244d8ddd67ddac4447..1cf0a0aa793f6be091023aa2207d46e85c6fdff4 100644
--- a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx
+++ b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx
@@ -35,14 +35,14 @@
 
 
 #include "TrkToolInterfaces/ITruthToTrack.h"
-
+#include "TrkExInterfaces/IExtrapolator.h"
 #include "TrkTrackSummary/TrackSummary.h"
 #include "TrkToolInterfaces/ITrackSummaryTool.h"
 #include "TrkEventPrimitives/FitQuality.h"
 #include "CLHEP/GenericFunctions/CumulativeChiSquare.hh"
 
 #include "InDetAlignGenTools/InDetAlignFillTrack.h"
-
+#include "HepPDT/ParticleDataTable.hh"
 #include "HepMC/GenParticle.h"
 #include "HepMC/GenVertex.h"
 
@@ -197,9 +197,9 @@ StatusCode InDetAlignFillTrack::FillTrack() {
   ATH_MSG_DEBUG(" event " << m_events);
   StatusCode sc;
 
-  const TrackCollection* tracks = new TrackCollection;
-  const TrackCollection* Uptracks = new TrackCollection;
-  const TrackCollection* Lowtracks = new TrackCollection;
+  const TrackCollection* tracks;// = new TrackCollection;
+  const TrackCollection* Uptracks;// = new TrackCollection;
+  const TrackCollection* Lowtracks;// = new TrackCollection;
 
   // retrieve all tracks from TDS
   ATH_CHECK(evtStore()->retrieve(tracks, m_inputCol));
@@ -542,9 +542,10 @@ StatusCode InDetAlignFillTrack::FillTrack() {
   }
 
   if (m_events < 0) m_events = 0;
-  delete tracks;
-  delete Uptracks;
-  delete Lowtracks;
+  // no deletion because StoreGate owns these pointers.
+  //delete tracks;
+  //delete Uptracks;
+  //delete Lowtracks;
   return StatusCode::SUCCESS;
 }
 
diff --git a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignHitQualSelTool.cxx b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignHitQualSelTool.cxx
index bd1a75d4400ccfc5e507e5e813ac8ea1d57b205e..97894fa7204c8112a738fde86249c24db14995d7 100644
--- a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignHitQualSelTool.cxx
+++ b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignHitQualSelTool.cxx
@@ -12,7 +12,7 @@
 #include "InDetReadoutGeometry/SiDetectorElement.h"
 #include "AtlasDetDescr/AtlasDetectorID.h"
 #include "InDetReadoutGeometry/PixelDetectorManager.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"
+#include "InDetIdentifier/SCT_ID.h"
 
 #include "InDetAlignGenTools/InDetAlignHitQualSelTool.h"
 
@@ -32,7 +32,6 @@ InDetAlignHitQualSelTool::InDetAlignHitQualSelTool( const std::string& t
   , m_acceptPixelHits( true )
   , m_acceptSCTHits( true )
   , m_PIXManager{}
-  , m_SCTManager{}
   , m_pixelid{}
   , m_sctID{} 
 {
@@ -60,8 +59,6 @@ StatusCode InDetAlignHitQualSelTool::initialize() {
   ATH_CHECK(detStore()->retrieve(m_pixelid, "PixelID"));
   // get pixel manager
   ATH_CHECK(detStore()->retrieve( m_PIXManager, "Pixel" )) ;
-  // get SCT manager
-  ATH_CHECK( detStore()->retrieve( m_SCTManager, "SCT" ) );
   return StatusCode::SUCCESS ;
 }
 
@@ -286,7 +283,7 @@ bool InDetAlignHitQualSelTool::isGoodClusterSize( const std::vector<Identifier>&
 
 bool InDetAlignHitQualSelTool::isEdgeChannel( const vector<Identifier>& idVec ) const {
   for( unsigned int i=0, i_max=idVec.size() ; i!=i_max ; ++i ) {
-    if( m_SCTManager->identifierBelongs(idVec[i]) ) {
+    if( m_sctID->is_sct(idVec[i]) ) {
       int stripId = m_sctID->strip(idVec[i]) ;
       if( stripId == 0 || stripId == 767 ) {
         ATH_MSG_DEBUG( " SCT strip " << i << " with id " << stripId << " is an edge channel " ) ;
diff --git a/InnerDetector/InDetCalibAlgs/InDetBeamSpotFinder/src/InDetBeamSpotFinder.h b/InnerDetector/InDetCalibAlgs/InDetBeamSpotFinder/src/InDetBeamSpotFinder.h
index bfe1702d4f99e18a8f8887c10916e0d3ee0de29d..24d24ed0f97d8642d9a5534c3625a44ef2ee5efe 100644
--- a/InnerDetector/InDetCalibAlgs/InDetBeamSpotFinder/src/InDetBeamSpotFinder.h
+++ b/InnerDetector/InDetCalibAlgs/InDetBeamSpotFinder/src/InDetBeamSpotFinder.h
@@ -21,6 +21,7 @@
 #include "xAODTracking/VertexContainer.h" //typedef, can't fwd declare
 #include "xAODTracking/TrackingPrimitives.h" //for xAOD::VxType
 // #include "xAODTracking/Vertex.h"
+#include "TrigAnalysisInterfaces/IBunchCrossingTool.h"
 #include "StoreGate/ReadHandleKey.h"
 #include "BeamSpotID.h"
 #include <string>
@@ -31,10 +32,6 @@ class ITHistSvc;
 class IToolSvc;
 class IInDetBeamSpotTool;
 class TTree;
-namespace Trig{
-  class IBunchCrossingTool;
-}
-
 
 namespace InDet {
   class InDetBeamSpotFinder : public AthAlgorithm {
diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/createDeadModuleList.C b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/createDeadModuleList.C
index 84f81e752efa1ae21022535bea200e3fe34c6f13..db50c21da20c9ba66fb0681f24a8104aece25739 100644
--- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/createDeadModuleList.C
+++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/createDeadModuleList.C
@@ -2,14 +2,14 @@
   Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
-#include<vector>
-#include<cmath>
-#include<map>
-#include<sstream>
-#include<string>
-#include<iostream>
-#include<fstream>
-#include<utility>
+#include <vector>
+#include <cmath>
+#include <map>
+#include <sstream>
+#include <string>
+#include <iostream>
+#include <fstream>
+#include <utility>
 
 #include "TFile.h"
 #include "TH1.h"
@@ -221,8 +221,9 @@ int main(int argc, char* argv[]){
       std::cout << "FATAL: Unable to retrieve environmental DATAPATH" << std::endl;
       exit(EXIT_FAILURE);
   }
-  tmppath=strdup(tmppath);
-  std::string cmtpath(tmppath);
+  std::stringstream tmpSstr{};
+  tmpSstr<<tmppath;
+  std::string cmtpath(tmpSstr.str());
   std::vector<std::string> paths = splitter(cmtpath, ':');
   std::ifstream ifs;
   std::ifstream ifs2;
diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateDeadMaps.C b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateDeadMaps.C
index 237b60d2d1859ca5554c89ffc7214982fd59cb1b..c91ca07b729f9bfc34c350b129527f2cbbdc8bbe 100644
--- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateDeadMaps.C
+++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateDeadMaps.C
@@ -405,14 +405,16 @@ int main(int argc, char* argv[]){
     }
   }
 
+
   char* tmppath = std::getenv("DATAPATH");
   const unsigned int maxPathStringLength{3000};
   if((not tmppath) or (strlen(tmppath) > maxPathStringLength) ){
       std::cout << "FATAL: Unable to retrieve environmental DATAPATH" << std::endl;
       exit(EXIT_FAILURE);
   }
-  tmppath=strdup(tmppath);
-  std::string cmtpath(tmppath);
+  std::stringstream tmpSstr{};
+  tmpSstr<<tmppath;
+  std::string cmtpath(tmpSstr.str());
   std::vector<std::string> paths = splitter(cmtpath, ':');
   std::ifstream ifs;
   for (const auto& x : paths){
diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateNoiseMaps.C b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateNoiseMaps.C
index e0e4a2d320c8312decec58564de084dc6d5eca98..a85f8801e746fb137070958c1258cdb0a4ad3195 100644
--- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateNoiseMaps.C
+++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/Application/updateNoiseMaps.C
@@ -514,14 +514,15 @@ int main(int argc, char* argv[]){
     std::cout << "Occupancy calculated per event" << std::endl << std::endl;
   }
 
-  char * tmppath = std::getenv("DATAPATH");
+  char* tmppath = std::getenv("DATAPATH");
   const unsigned int maxPathStringLength{3000};
   if((not tmppath) or (strlen(tmppath) > maxPathStringLength) ){
       std::cout << "FATAL: Unable to retrieve environmental DATAPATH" << std::endl;
       exit(EXIT_FAILURE);
   }
-  tmppath=strdup(tmppath);
-  std::string cmtpath(tmppath);
+  std::stringstream tmpSstr{};
+  tmpSstr<<tmppath;
+  std::string cmtpath(tmpSstr.str());
   std::vector<std::string> paths = splitter(cmtpath, ':');
   std::ifstream ifs;
   for (const auto& x : paths){
diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/NoiseMapBuilder.cxx b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/NoiseMapBuilder.cxx
index 1647c3ffce4a084e5967e28c8270d8c58598c592..8868e7b3f34826729fd1a09c3e2d2ca441a6acc9 100755
--- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/NoiseMapBuilder.cxx
+++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/NoiseMapBuilder.cxx
@@ -103,7 +103,7 @@ NoiseMapBuilder::~NoiseMapBuilder(){}
 std::string NoiseMapBuilder::getDCSIDFromPosition (int barrel_ec, int layer, int modPhi, int module_eta){
   for(unsigned int ii = 0; ii < m_pixelMapping.size(); ii++) {
     if (m_pixelMapping[ii].second.size() != 4) {
-      std::cout << "getDCSIDFromPosition: Vector size is not 4!" << std::endl;
+      ATH_MSG_WARNING( "getDCSIDFromPosition: Vector size is not 4!" );
       return std::string("Error!");
     }
     if (m_pixelMapping[ii].second[0] != barrel_ec) continue;
@@ -112,7 +112,7 @@ std::string NoiseMapBuilder::getDCSIDFromPosition (int barrel_ec, int layer, int
     if (m_pixelMapping[ii].second[3] != module_eta) continue;
     return m_pixelMapping[ii].first;
   }
-  std::cout << "Not found!" << std::endl;
+  ATH_MSG_WARNING( "Not found!" );
   return std::string("Error!");
 }
 
@@ -159,7 +159,7 @@ std::vector<std::string> NoiseMapBuilder::splitter(const std::string &str,
 //
 //=========================================================
 StatusCode NoiseMapBuilder::initialize(){
-  ATH_MSG_INFO("Initializing NoiseMapBuilder");
+  ATH_MSG_DEBUG("Initializing NoiseMapBuilder");
 
   // retrieve THistSvc
   StatusCode sc = m_tHistSvc.retrieve();
@@ -218,14 +218,16 @@ StatusCode NoiseMapBuilder::initialize(){
 
 StatusCode NoiseMapBuilder::registerHistograms(){
 
- const std::string mapFile = "PixelMapping_Run2.dat";
- char * tmppath= std::getenv("DATAPATH");
- const unsigned int maxPathStringLength{3000};
-  if((not tmppath) or (strlen(tmppath) > maxPathStringLength) ){
-      ATH_MSG_ERROR( "FATAL: Unable to retrieve environmental DATAPATH" );
+  const std::string mapFile = "PixelMapping_Run2.dat";
+  char* getenvPath = std::getenv("DATAPATH");
+  const unsigned int maxPathStringLength{3000};
+  if((not getenvPath) or (strlen(getenvPath) > maxPathStringLength) ){
+      ATH_MSG_FATAL( "Unable to retrieve environmental DATAPATH" );
       return StatusCode::FAILURE;
   }
-  tmppath=strdup(tmppath);
+  std::stringstream tmpSstr{};
+  tmpSstr<<getenvPath;
+  std::string tmppath(tmpSstr.str());
  
   std::vector<std::string> paths = splitter(tmppath, ':'); 
   bool found(false);  
diff --git a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/PixMapDBWriter.cxx b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/PixMapDBWriter.cxx
index c9079c90775b8ac4e66f8067ce4e2662841168ac..c0f7fab632f339b58ce57c3c8a8ebafb33e731be 100755
--- a/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/PixMapDBWriter.cxx
+++ b/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/src/PixMapDBWriter.cxx
@@ -64,7 +64,7 @@ PixMapDBWriter::~PixMapDBWriter(){}
 
 StatusCode PixMapDBWriter::initialize(){
 
-  ATH_MSG_INFO( "Initializing PixMapDBWriter" );
+  ATH_MSG_DEBUG( "Initializing PixMapDBWriter" );
 
   StatusCode sc = m_specialPixelMapSvc.retrieve();
   if( !sc.isSuccess() ){
@@ -242,14 +242,15 @@ StatusCode PixMapDBWriter::finalize(){
   ////////////////////////////////////////////////////////////////////////////////////////////
 
 
- char* tmppath = std::getenv("DATAPATH");
+  char* tmppath = std::getenv("DATAPATH");
   const unsigned int maxPathStringLength{3000};
   if((not tmppath) or (strlen(tmppath) > maxPathStringLength) ){
-      ATH_MSG_ERROR( "FATAL: Unable to retrieve environmental DATAPATH" );
+      ATH_MSG_FATAL( "Unable to retrieve environmental DATAPATH" );
       return StatusCode::FAILURE;
   }
-  tmppath=strdup(tmppath);
-  std::string cmtpath(tmppath); 
+  std::stringstream tmpSstr{};
+  tmpSstr<<tmppath;
+  std::string cmtpath(tmpSstr.str());
   std::vector<std::string> paths = splitter(cmtpath, ':');
   std::ifstream ifs;
   for (const auto& x : paths){
@@ -321,7 +322,7 @@ StatusCode PixMapDBWriter::finalize(){
    
     }
     if ( specialPixelHistograms.find(std::string(onlineID)) == specialPixelHistograms.end() ) {
-      std::cout << "DEBUG: onlineID " << onlineID << " is not found in the specialPixelHistograms" << std::endl;
+      ATH_MSG_DEBUG("onlineID " << onlineID << " is not found in the specialPixelHistograms" );
       continue;
     }
     TH2C* specialPixelHistogram = specialPixelHistograms[std::string(onlineID)];
@@ -453,10 +454,10 @@ StatusCode PixMapDBWriter::finalize(){
           if (pixelStatus1 != 0)
           {
 
-            std::cout << "barrel, layer, module_phi, module_eta, pixel_eta, pixel_phi, mchips, pixelID\n"
+            ATH_MSG_DEBUG( "barrel, layer, module_phi, module_eta, pixel_eta, pixel_phi, mchips, pixelID\n"
                       << " = " << barrel << ", " << layer << ", " << module_phi << ", " << module_eta
-                      << ", " << pixel_eta << ", " << pixel_phi << ", " << mchips << ", " << pixelID << std::endl;
-            std::cout << "pixelStatus1, pixelStatus2 = " << pixelStatus1 << ", " << pixelStatus2 << std::endl;
+                      << ", " << pixel_eta << ", " << pixel_phi << ", " << mchips << ", " << pixelID 
+                      << "\npixelStatus1, pixelStatus2 = " << pixelStatus1 << ", " << pixelStatus2 );
           }
 
           if( (pixelStatus1 & m_pixelStatus) == m_pixelStatus ){
@@ -676,7 +677,7 @@ StatusCode PixMapDBWriter::finalize(){
 std::string PixMapDBWriter::getDCSIDFromPosition (int barrel_ec, int layer, int module_phi, int module_eta){
   for(unsigned int ii = 0; ii < m_pixelMapping.size(); ii++) {
     if (m_pixelMapping[ii].second.size() != 4) {
-      std::cout << "getDCSIDFromPosition: Vector size is not 4!" << std::endl;
+      ATH_MSG_WARNING( "getDCSIDFromPosition: Vector size is not 4!" );
       return std::string("Error!");
     }
     if (m_pixelMapping[ii].second[0] != barrel_ec) continue;
@@ -685,7 +686,7 @@ std::string PixMapDBWriter::getDCSIDFromPosition (int barrel_ec, int layer, int
     if (m_pixelMapping[ii].second[3] != module_eta) continue;
     return m_pixelMapping[ii].first;
   }
-  std::cout << "Not found!" << std::endl;
+  ATH_MSG_WARNING( "Not found!" );
   return std::string("Error!");
 }
 
@@ -694,7 +695,7 @@ std::vector<int> PixMapDBWriter::getPositionFromDCSID (std::string DCSID){
     if (m_pixelMapping[ii].first == DCSID)
     return m_pixelMapping[ii].second;
   }
-  std::cout << "Not found!" << std::endl;
+  ATH_MSG_WARNING( "Not found!" );
   std::vector<int> void_vec;
   return void_vec;
 }
diff --git a/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibBsErrorSvc.h b/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibBsErrorSvc.h
index 251e106efae831a31316dfea9864fdec60945dea..7b9d8d77855937a1112922ceca637c899b809c64 100644
--- a/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibBsErrorSvc.h
+++ b/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibBsErrorSvc.h
@@ -29,9 +29,6 @@
 
 //fwd declarations
 template <class TYPE> class SvcFactory;
-namespace InDetDD{
-  class  SCT_DetectorManager;
-}
 class StatusCode;
 class ISvcLocator;
 
diff --git a/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibHvSvc.h b/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibHvSvc.h
index eb8c486c1d27f084237a498701d8be1732cbed13..7c2bb802fe494a79f5ed1a54c3c4a2a2de71e05e 100644
--- a/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibHvSvc.h
+++ b/InnerDetector/InDetCalibAlgs/SCT_CalibAlgs/src/SCT_CalibHvSvc.h
@@ -32,9 +32,6 @@
 
 //fwd declarations
 template <class TYPE> class SvcFactory;
-namespace InDetDD{
-  class  SCT_DetectorManager;
-}
 class StatusCode;
 class ISvcLocator;
 class IdentifierHash;
diff --git a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt
index bed492fbcbfd48d43af66acb245a52b28beca9b6..dee71b27797418209eadd2038666df48af6a0fc8 100644
--- a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt
+++ b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt
@@ -30,7 +30,8 @@ atlas_depends_on_subdirs( PUBLIC
                           Tracking/TrkEvent/TrkParameters
                           Tracking/TrkEvent/TrkTrack
                           Tracking/TrkEvent/VxVertex
-                          Tracking/TrkFitter/TrkFitterInterfaces )
+                          Tracking/TrkFitter/TrkFitterInterfaces
+                          Tracking/TrkExtrapolation/TrkExInterfaces )
 
 # External dependencies:
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Matrix Physics HistPainter Rint )
diff --git a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h
index ec7695ec343591d6a24a9b54ef7aac3643a54c07..e275dc23583a6a7e708f84b41dca59ea5dd6e240 100644
--- a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h
+++ b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/TRT_CalibAlgs/TRT_StrawStatus.h
@@ -21,6 +21,7 @@
 #include "TrkTrack/Track.h"
 #include "VxVertex/VxContainer.h"
 #include "StoreGate/ReadHandleKey.h"
+#include "TrkToolInterfaces/ITrackHoleSearchTool.h"
 
 #include <cstdlib>
 #include <string>
@@ -35,10 +36,6 @@ class ITRT_StrawStatusSummarySvc ;
 class ITRT_HWMappingSvc;
 class ITRT_DCS_ConditionsSvc;
 
-namespace Trk {
-  class ITrackHoleSearchTool;
-}
-
 
 namespace InDet 
 {
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsParameterTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsParameterTestAlg.h
index 03d0c117b04090b290311b16636bec35e36e6efc..420b6ac8839e94b3dff2acb6bed245c250d22942 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsParameterTestAlg.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConditionsParameterTestAlg.h
@@ -24,9 +24,6 @@
 // Include STL stuff
 #include <string>
 
-// Forward declarations
-namespace InDetDD{class SCT_DetectorManager;}
-
 /** This class acts as a test/sample client the ConditionsParameter class.
  */
 class SCT_ConditionsParameterTestAlg : public AthAlgorithm {
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h
index cfe9c638faa26743a1fa44fff703f5fd43c3ca3a..74e4678b03da6ffa5652979d0856a5ed7631c160 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_ConfigurationConditionsTestAlg.h
@@ -22,8 +22,6 @@
 // Forward declarations
 class SCT_ID;
 
-namespace InDetDD{class SCT_DetectorManager;}
-
 /** 
  * This class acts as a test/sample client for the SCT_ConfigurationSConditionsSvc class. 
  */
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h
index 120d26a7ad08a37f85e3169af8e62c04c7dc9ee8..8b46efb1acc25326a9e0b65e4ebfcf775ac0ee4f 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DCSConditionsTestAlg.h
@@ -19,9 +19,6 @@
 // Include STL stuff
 #include <string>
 
-// Forward declarations
-namespace InDetDD{class SCT_DetectorManager;}
-
   /** This class acts as a test/sample client the DCSConditions class. 
   */
   class SCT_DCSConditionsTestAlg : public AthAlgorithm {
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_ByteStreamErrors.h b/InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_ByteStreamErrors.h
index 467651a988b5a95d50bed250c0e728198b29ed78..1d55c0fa6f8d3785029bafa2cbaf0778348c1150 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_ByteStreamErrors.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsData/SCT_ConditionsData/SCT_ByteStreamErrors.h
@@ -60,12 +60,81 @@
 #endif // SCT_DO_DESCRIPTION
 
 namespace SCT_ByteStreamErrors {
+  // Define enumerators
   enum errorTypes {
     SCT_ERRORTYPELIST(SCT_DO_ENUM)
   };
+  // Define strings of enumerator
   static const std::string errorTypesDescription[]{
     SCT_ERRORTYPELIST(SCT_DO_DESCRIPTION)
   };
+
+  // Define bad errors to be used in reconstruction and monitoring
+  static const std::vector<errorTypes> BadErrors = {
+    TimeOutError,
+    BCIDError,
+    LVL1IDError,
+    HeaderTrailerLimitError,
+    MaskedLink,
+    TruncatedROD,
+    ROBFragmentError,
+    MissingLinkHeaderError,
+    MaskedROD
+  };
+  // Define bad errors in FE-link level to be used in monitoring
+  static const std::vector<errorTypes> LinkLevelBadErrors = {
+    TimeOutError,
+    BCIDError,
+    LVL1IDError,
+    HeaderTrailerLimitError,
+    MaskedLink
+  };
+  // Define bad errors in ROD level to be used in monitoring
+  static const std::vector<errorTypes> RodLevelBadErrors = {
+    TruncatedROD,
+    ROBFragmentError,
+    MissingLinkHeaderError, // We cannot know which FE-link does not have header. We assign this error to all the FE-links of the ROD.
+    MaskedROD
+  };
+  // Define errors in FE-link level to be used in monitoring (assigned by SCT_RodDecoder::addSingleError)
+  static const std::vector<errorTypes> LinkLevelErrors = {
+    ByteStreamParseError,
+    TimeOutError,
+    BCIDError,
+    LVL1IDError,
+    PreambleError,
+    FormatterError,
+    TrailerError,
+    TrailerOverflowError,
+    HeaderTrailerLimitError,
+    ABCDError,
+    RawError,
+    MaskedLink,
+    ABCDError_Chip0,
+    ABCDError_Chip1,
+    ABCDError_Chip2,
+    ABCDError_Chip3,
+    ABCDError_Chip4,
+    ABCDError_Chip5,
+    ABCDError_Error1,
+    ABCDError_Error2,
+    ABCDError_Error4,
+    TempMaskedChip0,
+    TempMaskedChip1,
+    TempMaskedChip2,
+    TempMaskedChip3,
+    TempMaskedChip4,
+    TempMaskedChip5,
+    ABCDError_Error7
+  };
+  // Define errors in ROD level to be used in monitoring (assigned by SCT_RodDecoder::addRODError)
+  static const std::vector<errorTypes> RodLevelErrors = {
+    RODClockError,
+    TruncatedROD,
+    ROBFragmentError,
+    MissingLinkHeaderError, // We cannot know which FE-link does not have header. We assign this error to all the FE-links of the ROD.
+    MaskedROD
+  };
 }
 
 #endif // SCT_ByteStreamErrors_h
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx
index c7c37e8cf89e2bdcab7edba2eb6b4ab8cbd5c752..2db0e0e89026f0d2e5691975f0ab30bd80bb3025 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_ByteStreamErrorsTool.cxx
@@ -115,23 +115,13 @@ bool
 SCT_ByteStreamErrorsTool::isGood(const IdentifierHash& elementIdHash) const {
   const EventContext& ctx{Gaudi::Hive::currentContext()};
   
-  if (isRODSimulatedData()) return false;
+  //  if (isRODSimulatedData()) return false;
   
   bool result{true};
 
-  const std::vector<SCT_ByteStreamErrors::errorTypes> errorsToBeChecked{
-      SCT_ByteStreamErrors::TimeOutError,
-      SCT_ByteStreamErrors::BCIDError,
-      SCT_ByteStreamErrors::LVL1IDError,
-      SCT_ByteStreamErrors::MaskedLink,
-      SCT_ByteStreamErrors::ROBFragmentError,
-      SCT_ByteStreamErrors::MissingLinkHeaderError,
-      SCT_ByteStreamErrors::HeaderTrailerLimitError,
-      SCT_ByteStreamErrors::MaskedROD,
-      SCT_ByteStreamErrors::TruncatedROD};
-  for (unsigned int i{0}; i<errorsToBeChecked.size(); i++) {
-    const std::set<IdentifierHash>& errorSet{getErrorSet(errorsToBeChecked[i], ctx)};
-    result = (std::find(errorSet.begin(), errorSet.end(), elementIdHash) == errorSet.end());
+  for (SCT_ByteStreamErrors::errorTypes badError: SCT_ByteStreamErrors::BadErrors) {
+    const std::set<IdentifierHash>& errorSet{getErrorSet(badError, ctx)};
+    result = (errorSet.count(elementIdHash)==0);
     if (not result) return result;
   }
   
@@ -160,7 +150,7 @@ bool
 SCT_ByteStreamErrorsTool::isGood(const Identifier& elementId, InDetConditions::Hierarchy h) const {
   if (not canReportAbout(h)) return true;
   
-  if (isRODSimulatedData()) return false;
+  //  if (isRODSimulatedData()) return false;
 
   if (h==InDetConditions::SCT_SIDE) {
     const IdentifierHash elementIdHash{m_sct_id->wafer_hash(elementId)};
diff --git a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_SiliconConditionsTool.h b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_SiliconConditionsTool.h
index 1b6111d55e5d0632dcf8f5ec516b436be4db885c..db3fc6b2a35d9c2f85a326feeaaf4b85f9929d6e 100644
--- a/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_SiliconConditionsTool.h
+++ b/InnerDetector/InDetConditions/SCT_ConditionsTools/src/SCT_SiliconConditionsTool.h
@@ -19,9 +19,9 @@
 
 #include "SCT_ConditionsData/SCT_DCSFloatCondData.h"
 #include "StoreGate/ReadCondHandleKey.h"
+#include "GeoModelInterfaces/IGeoModelSvc.h"
+#include "RDBAccessSvc/IRDBAccessSvc.h"
 
-class IGeoModelSvc;
-class IRDBAccessSvc;
 class SCT_ID;
 
 /**
diff --git a/InnerDetector/InDetCosmics/InDetCosmicsEventPhase/InDetCosmicsEventPhase/InDetCosmicsEventPhase.h b/InnerDetector/InDetCosmics/InDetCosmicsEventPhase/InDetCosmicsEventPhase/InDetCosmicsEventPhase.h
index 7100c6e073e0363060833870c132a4cb124f02a3..02516c65614d86ca39254fc40324c47672c651a5 100755
--- a/InnerDetector/InDetCosmics/InDetCosmicsEventPhase/InDetCosmicsEventPhase/InDetCosmicsEventPhase.h
+++ b/InnerDetector/InDetCosmics/InDetCosmicsEventPhase/InDetCosmicsEventPhase/InDetCosmicsEventPhase.h
@@ -10,16 +10,13 @@
 #include "StoreGate/ReadHandleKeyArray.h"
 #include "StoreGate/WriteHandleKey.h"
 #include "CommissionEvent/ComTime.h"
+#include "TrkToolInterfaces/ITrackSummaryTool.h"
 #include <string>
 
 /////////////////////////////////////////////////////////////////////////////
 //class TrackCollection;
 class ITRT_CalDbSvc ;
 
-namespace Trk
-{
-  class ITrackSummaryTool;
-}
 namespace InDet 
 {
   class IInDetCosmicsEventPhaseTool;
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx
index ee177c8e70332dd8275c3edef84932b0be2cba35..643824f4b3518b6f46ff8e342e9618b267822ca4 100755
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx
@@ -545,10 +545,12 @@ namespace InDetDD {
             if (!child) { // CID 113112
               // shouldn't be happening, if child is null then something is terribly wrong
               ATH_MSG_ERROR("Child can't be null if frame is 'other'");
+              return false;
+            } else {
+	            const HepGeom::Transform3D & xfChild = child->getDefAbsoluteTransform();
+	            const HepGeom::Transform3D & xfFrame = frameVol->getDefAbsoluteTransform();
+	            extXF->alignableTransform()->setDelta(xfChild.inverse() * xfFrame * Amg::EigenTransformToCLHEP(delta) * xfFrame.inverse() * xfChild);
             }
-            const HepGeom::Transform3D & xfChild = child->getDefAbsoluteTransform();
-            const HepGeom::Transform3D & xfFrame = frameVol->getDefAbsoluteTransform();
-            extXF->alignableTransform()->setDelta(xfChild.inverse() * xfFrame * Amg::EigenTransformToCLHEP(delta) * xfFrame.inverse() * xfChild);
         }
 
         return true;
diff --git a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h
index cabd5672a955c072f46214a0a1ad348fdd830d72..207f605456ffad7dca752a7d1b4acca3449c62c7 100644
--- a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h
+++ b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h
@@ -7,12 +7,10 @@
 
 #include "GaudiKernel/IAlgTool.h"
 
-#include "TrkEventPrimitives/LocalParameters.h"
 #include "GeoPrimitives/GeoPrimitives.h"
 #include "TrkParameters/TrackParameters.h"
 #include "Identifier/IdentifierHash.h"
 #include "AthenaKernel/IOVSvcDefs.h"
-#include "InDetReadoutGeometry/SiDetectorElement.h"
 
 namespace Trk { class LocalParameters; }
 namespace InDetDD { class SiDetectorElement; }
diff --git a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.cxx b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.cxx
index b144c6ee81527b3d32d5b6fc4dc3035f9f6a3542..ef471a0cd7787c66c92e092bf53ba05d4428af6a 100644
--- a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.cxx
+++ b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.cxx
@@ -5,15 +5,9 @@
 #include "SCT_DistortionsTool.h"
 
 #include "InDetIdentifier/SCT_ID.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"
-
-#include "CLHEP/Units/SystemOfUnits.h"
+#include "InDetReadoutGeometry/SiDetectorElement.h"
 #include "PathResolver/PathResolver.h"
-
-//#include "CLHEP/Geometry/Vector3D.h"
-//#include "CLHEP/Geometry/Point3D.h"
-#include "CLHEP/Random/RandGauss.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
+#include "TrkEventPrimitives/LocalParameters.h"
 
 #include <cmath>
 #include <string>
diff --git a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.h b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.h
index 787ef2b61cbf7ed8c5ab58bf005b86a43c6d39fa..4817b5b5959a4b2e12f86b9de955c4d3e78c0b3e 100644
--- a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.h
+++ b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_DistortionsTool.h
@@ -6,12 +6,10 @@
 #define SCT_DistortionsTool_H
 
 #include "SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h"
-//#include "CLHEP/Geometry/Vector3D.h"
-//#include "CLHEP/Geometry/Point3D.h"
+#include "AthenaBaseComps/AthAlgTool.h"
 
 #include <string>
 #include <map>
-#include "AthenaBaseComps/AthAlgTool.h"
 
 class SCT_ID;
 
diff --git a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.cxx b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.cxx
index 7c1dee3f42bf76b0fcb3ec9c22a505c0e3d15f02..43cda487df9d758af11869c65bb9d54bb06c1e37 100644
--- a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.cxx
+++ b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.cxx
@@ -4,29 +4,33 @@
 
 // Test SCT_DistortionsTool.cxx
 
-//Gaudi
+//Package
+#include "SCT_TestDistortionsTool.h"
 
 //Athena
 #include "InDetIdentifier/SCT_ID.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"
-
-//Package
-#include "SCT_TestDistortionsTool.h"
-#include "CLHEP/Units/SystemOfUnits.h"
+#include "AthenaKernel/IAtRndmGenSvc.h"
 #include "PathResolver/PathResolver.h"
 
+//Gaudi
+#include "GaudiKernel/ITHistSvc.h"
+
+//CLHEP
 #include "CLHEP/Geometry/Vector3D.h"
 #include "CLHEP/Geometry/Point3D.h"
 #include "CLHEP/Random/RandGauss.h"
-#include "AthenaKernel/IAtRndmGenSvc.h"
+#include "CLHEP/Units/SystemOfUnits.h"
 
+//ROOT
+#include "TH2F.h"
+#include "TH3F.h"
+
+//STL
 #include <cmath>
 #include <string>
 #include <fstream>
 #include <sstream>
 
-#include "TH2F.h"
-
 
 
 SCT_TestDistortionsTool::SCT_TestDistortionsTool(const std::string& name, ISvcLocator* pSvcLocator): 
diff --git a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.h b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.h
index 3d459d84d9c2081c295fd0da90e4c8ced7b67e93..7829fb7383966fe49ee1095dfbdccbe2804d5d5f 100644
--- a/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.h
+++ b/InnerDetector/InDetDetDescr/SCT_ModuleDistortions/src/SCT_TestDistortionsTool.h
@@ -5,31 +5,20 @@
 #ifndef SCT_TestDistortionsTool_h
 #define SCT_TestDistortionsTool_h
 
-#include <string>
-#include <memory>
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "TH2F.h"
-#include "TH3F.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/ITHistSvc.h"
-
 
+//package includes
+#include "SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h"
 
 //Gaudi
 #include "GaudiKernel/ToolHandle.h"
 
-//package includes
-#include "SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h"
+//STL
+#include <string>
+#include <memory>
 
-class ITHistSvc;
-class TH2I;
 class TH2F;
 class TH3F;
-namespace InDetDD
-{
-  class SiDetectorManager;
-}
 
 class SCT_TestDistortionsTool:public AthAlgorithm{
   public:
@@ -54,5 +43,3 @@ class SCT_TestDistortionsTool:public AthAlgorithm{
 
 };
 #endif
-
-
diff --git a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h
index 8a4cd0a4cf9d48fbce5fb53e229a11ac0bf4e192..009159db1cfb2d000914de8e0a1152932f9b017e 100644
--- a/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h
+++ b/InnerDetector/InDetDigitization/BCM_Digitization/src/BCM_DigitizationTool.h
@@ -6,6 +6,7 @@
 #define BCM_DIGITIZATION_BCM_DIGITIZATIONTOOL_H
 
 #include "PileUpTools/PileUpToolBase.h"
+#include "AthenaKernel/IAtRndmGenSvc.h"
 
 #include "GaudiKernel/ServiceHandle.h"
 
@@ -21,7 +22,6 @@
 
 // Data member classes
 class PileUpMergeSvc;
-class IAtRndmGenSvc;
 class InDetSimDataCollection;
 
 namespace CLHEP
diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h b/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h
index 0d1e95c0285735060c9e8a687d52000415088109..b0dcac194797ca4d5b3ed65672059c9ade1f0f0c 100644
--- a/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h
+++ b/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/PixelFastDigitizationTool.h
@@ -20,6 +20,9 @@
 #include "InDetSimEvent/SiHitCollection.h" // cannot fwd declare
 #include "InDetPrepRawData/PixelClusterContainer.h" //typedef, cannot fwd declare
 #include "InDetPrepRawData/PixelGangedClusterAmbiguities.h" //typedef, cannot fwd declare
+#include "SiClusterizationTool/ClusterMakerTool.h"
+#include "PileUpTools/PileUpMergeSvc.h"
+
 
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
@@ -42,7 +45,6 @@ namespace InDetDD{
 namespace CLHEP {class HepRandomEngine;}
 
 namespace InDet {
-  class ClusterMakerTool;
   class PixelCluster;
   class PixelGangedAmbiguitiesFinder;
 }
diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/SiSmearedDigitizationTool.h b/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/SiSmearedDigitizationTool.h
index 8dd8d90ff503a4e087f6d1cf1f93a31feb95db40..3630ef980b3384c0aa4b9af3987319f483dbb636 100644
--- a/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/SiSmearedDigitizationTool.h
+++ b/InnerDetector/InDetDigitization/FastSiDigitization/FastSiDigitization/SiSmearedDigitizationTool.h
@@ -39,6 +39,7 @@
 
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
 #include "ISF_FatrasDetDescrModel/IdHashDetElementCollection.h"
+#include "TrkDetDescrInterfaces/ITrackingGeometrySvc.h"
 
 #include "GaudiKernel/ITHistSvc.h"
 #include "EventPrimitives/EventPrimitives.h"
@@ -72,7 +73,6 @@ namespace InDetDD
 namespace Trk {
 
   class TrackingGeometry;
-  class ITrackingGeometrySvc;
 
 }
 
diff --git a/InnerDetector/InDetDigitization/FastTRT_Digitization/FastTRT_Digitization/TRTFastDigitizationTool.h b/InnerDetector/InDetDigitization/FastTRT_Digitization/FastTRT_Digitization/TRTFastDigitizationTool.h
index 769a26a4bccba8b8ccf7acafb3f2e9c0ca8f6da7..b6d0b866f2880ae6e8fd9449f499bc455fbbd7e2 100644
--- a/InnerDetector/InDetDigitization/FastTRT_Digitization/FastTRT_Digitization/TRTFastDigitizationTool.h
+++ b/InnerDetector/InDetDigitization/FastTRT_Digitization/FastTRT_Digitization/TRTFastDigitizationTool.h
@@ -40,13 +40,13 @@
 #include "HitManagement/TimedHitCollection.h"
 #include "InDetSimEvent/TRTUncompressedHitCollection.h"
 #include "StoreGate/WriteHandle.h"
+#include "PileUpTools/PileUpMergeSvc.h"
 
 #include <utility>
 #include <vector>
 #include <map>
 #include <cmath>
 
-class PileUpMergeSvc;
 class IAtRndmGenSvc;
 class TRT_ID;
 class TRTUncompressedHit;
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.h b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.h
index e9795361800c5524b4dcfe844272154cccaf0551..c70dfa7e2e625f146c11b7fba83cd446b75fbfa0 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.h
+++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.h
@@ -22,6 +22,7 @@
 
 #include "StoreGate/WriteHandle.h"
 #include "StoreGate/WriteHandleKey.h"
+#include "PileUpTools/PileUpMergeSvc.h"
 
 #include "InDetSimData/InDetSimDataCollection.h"
 #include "SensorSimTool.h"
diff --git a/InnerDetector/InDetDigitization/PixelRadDamDigitization/src/PixelDigitizationTool.h b/InnerDetector/InDetDigitization/PixelRadDamDigitization/src/PixelDigitizationTool.h
index b9d46c6b317c245cdf4217d7c267a3b32780a1ce..319de634581ce12c8a3ffccba2959cc82afa7380 100644
--- a/InnerDetector/InDetDigitization/PixelRadDamDigitization/src/PixelDigitizationTool.h
+++ b/InnerDetector/InDetDigitization/PixelRadDamDigitization/src/PixelDigitizationTool.h
@@ -20,6 +20,7 @@
 #include "GaudiKernel/ServiceHandle.h"
 
 #include "StoreGate/WriteHandle.h"
+#include "PileUpTools/PileUpMergeSvc.h"
 
 #include "InDetSimData/InDetSimDataCollection.h"
 #include "PixelProcessorTool.h"
diff --git a/InnerDetector/InDetDigitization/SCT_Digitization/SCT_Digitization/SCT_DigitizationTool.h b/InnerDetector/InDetDigitization/SCT_Digitization/SCT_Digitization/SCT_DigitizationTool.h
index 8bfd2e27344239e03fb66fffd4c326e439e2c1c1..9a20ee8cd62181ee0e493b765f519b601eed0989 100644
--- a/InnerDetector/InDetDigitization/SCT_Digitization/SCT_Digitization/SCT_DigitizationTool.h
+++ b/InnerDetector/InDetDigitization/SCT_Digitization/SCT_Digitization/SCT_DigitizationTool.h
@@ -25,6 +25,7 @@
 #include "InDetSimEvent/SiHitCollection.h"
 #include "xAODEventInfo/EventInfo.h"
 #include "xAODEventInfo/EventAuxInfo.h"
+#include "PileUpTools/PileUpMergeSvc.h"
 
 // Gaudi headers
 #include "GaudiKernel/ToolHandle.h"
diff --git a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawContByteStreamCnv.h b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawContByteStreamCnv.h
index 82026991048baa58800eff6e00eeb37383318caa..6d011a9bebaa53babddcde62a4ab9039347e9cff 100644
--- a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawContByteStreamCnv.h
+++ b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/BCM_RawDataByteStreamCnv/BCM_RawContByteStreamCnv.h
@@ -34,10 +34,10 @@ extern long ByteStream_StorageType;
 
 class BCM_RawContByteStreamCnv: public Converter {
 
-  ~BCM_RawContByteStreamCnv();
-
  public:
 
+  // ~BCM_RawContByteStreamCnv();
+
   BCM_RawContByteStreamCnv(ISvcLocator* svcloc);
 
   virtual StatusCode initialize();
diff --git a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawContByteStreamCnv.cxx b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawContByteStreamCnv.cxx
index 24e0a18941786ade5870adc79373aa4ea445fb5d..22ee960b07cb23b413c1051f23516c986d88045f 100644
--- a/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawContByteStreamCnv.cxx
+++ b/InnerDetector/InDetEventCnv/BCM_RawDataByteStreamCnv/src/BCM_RawContByteStreamCnv.cxx
@@ -34,11 +34,11 @@ BCM_RawContByteStreamCnv::BCM_RawContByteStreamCnv(ISvcLocator* svcloc):Converte
   //nop
 }
 
-////////////////////////
-// destructor
-////////////////////////
-BCM_RawContByteStreamCnv::~BCM_RawContByteStreamCnv() {
-}
+// ////////////////////////
+// // destructor
+// ////////////////////////
+// BCM_RawContByteStreamCnv::~BCM_RawContByteStreamCnv() {
+// }
 
 ////////////////////////
 // initialize()
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaCandidateCnv.h b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaCandidateCnv.h
index cdaef25db6d81e7a0e88844d8af214216b5037b9..8bc50e3723fa942ef3430d454d50f3dda59db3d6 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaCandidateCnv.h
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaCandidateCnv.h
@@ -24,8 +24,8 @@ class InDetLowBetaCandidateCnv  : public T_AthenaPoolCustomCnv<InDet::InDetLowBe
   
 public:
   InDetLowBetaCandidateCnv(ISvcLocator* svcloc);
-protected:
   ~InDetLowBetaCandidateCnv();
+protected:
 
   InDetLowBetaCandidate_PERS*  createPersistent(InDet::InDetLowBetaCandidate* transCont);
 
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaContainerCnv.h b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaContainerCnv.h
index 4e0dd7830139bca6d121e577951bfeaeae8ea113..479b7c9ff47629f539cce2622d8ff93f50ed577c 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaContainerCnv.h
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/InDetLowBetaContainerCnv.h
@@ -32,8 +32,8 @@ class InDetLowBetaContainerCnv : public InDetLowBetaContainerCnvBase {
    
 public:
   InDetLowBetaContainerCnv(ISvcLocator *svcloc);
-protected:
   ~InDetLowBetaContainerCnv();
+protected:
  
   virtual InDetLowBetaContainer_PERS *createPersistent(InDet::InDetLowBetaContainer *transObj);
   virtual InDet::InDetLowBetaContainer *createTransient();
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.cxx b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.cxx
index 2f36bd5feb3c31e24bad776f4c3e65c74362fd10..8504cdc5a64a1514e61584177d0b82e840b8a930 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.cxx
@@ -15,8 +15,6 @@
       m_converter_p0(),
       m_storeGate(nullptr)
   {}
-  PixelClusterContainerCnv::~PixelClusterContainerCnv() {}
-
 
 
 StatusCode PixelClusterContainerCnv::initialize() {
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.h b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.h
index a77e8209497d21d256b8a2d1685b7cbf94fab78a..30b2d13eabd8000e9d1aa3964efc1fec96c9dec1 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.h
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/PixelClusterContainerCnv.h
@@ -50,7 +50,6 @@ protected:
 public:
   PixelClusterContainerCnv (ISvcLocator* svcloc);
 protected:
-  ~PixelClusterContainerCnv();
   virtual PixelClusterContainer_PERS*   createPersistent (InDet::PixelClusterContainer* transCont);
   virtual InDet::PixelClusterContainer* createTransient ();
 
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.cxx b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.cxx
index 9176f31d1632cb9a80c49189e3d32a99de8c37d2..6fb9265e5848f7c469fa35f98106616e7c341c10 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.cxx
@@ -17,8 +17,6 @@
       m_converter_p0(),
       m_storeGate(nullptr)
   {}
-  SCT_ClusterContainerCnv::~SCT_ClusterContainerCnv() {}
-
 
 
 StatusCode SCT_ClusterContainerCnv::initialize() {
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.h b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.h
index 61f028c594a02685aaf166789831f7657c690b44..b93cd8a095c50e736552a560bd41d10e4628fe3e 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.h
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/SCT_ClusterContainerCnv.h
@@ -14,10 +14,6 @@
 class StoreGateSvc;
 class SCT_ID;
 
-namespace InDetDD {
-   class SCT_DetectorManager;
-}
-
 #include "SCT_ClusterContainerCnv_p0.h"
 #include "InDetEventTPCnv/SCT_ClusterContainerCnv_tlp1.h"
 #include "InDetEventTPCnv/SCT_ClusterContainerCnv_p3.h"
@@ -50,7 +46,6 @@ protected:
 public:
   SCT_ClusterContainerCnv (ISvcLocator* svcloc);
 protected:
-  ~SCT_ClusterContainerCnv();
   virtual SCT_ClusterContainer_PERS*   createPersistent (InDet::SCT_ClusterContainer* transCont);
   virtual InDet::SCT_ClusterContainer* createTransient ();
 
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.cxx b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.cxx
index 247294325de03cfe2f53d1cf72a63a8133392dbd..23d13c3cbc9d8a4ccf1d4db24ef09da79c1c5c27 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.cxx
@@ -14,8 +14,6 @@
       m_converter_p0(),
       m_storeGate(nullptr)
   {}
-  TRT_DriftCircleContainerCnv::~TRT_DriftCircleContainerCnv() {} 
-
 
 
 StatusCode TRT_DriftCircleContainerCnv::initialize() {
diff --git a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.h b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.h
index 9c160bc7d1dcc4394ae75e6c00c365968bad7daf..79288b6a459a5ee0daa09c31cad1d1de648612d6 100644
--- a/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.h
+++ b/InnerDetector/InDetEventCnv/InDetEventAthenaPool/src/TRT_DriftCircleContainerCnv.h
@@ -37,7 +37,6 @@ protected:
 public:
   TRT_DriftCircleContainerCnv (ISvcLocator* svcloc);
 protected:
-  ~TRT_DriftCircleContainerCnv();
   virtual TRT_DriftCircleContainer_PERS*   createPersistent (InDet::TRT_DriftCircleContainer* transCont);
   virtual InDet::TRT_DriftCircleContainer* createTransient ();
 
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/InDetPrepRawData/PixelGangedClusterAmbiguitiesCnv_p1.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/InDetPrepRawData/PixelGangedClusterAmbiguitiesCnv_p1.cxx
index 6f172b6ea1f2cfc88308c7cb7cb06a600d3cbce0..e88a6af7f1ea1f15db49cefbdd7904b64f74caab 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/InDetPrepRawData/PixelGangedClusterAmbiguitiesCnv_p1.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/InDetPrepRawData/PixelGangedClusterAmbiguitiesCnv_p1.cxx
@@ -156,7 +156,10 @@ void  PixelGangedClusterAmbiguitiesCnv_p1::persToTrans(const InDet::PixelGangedC
   } else
   {    
   const InDet::PixelClusterContainer* pCC(0);
-  StatusCode sc = m_storeGate->retrieve(pCC, persObj->m_pixelClusterContainerName);
+  if (m_storeGate->retrieve(pCC, persObj->m_pixelClusterContainerName).isFailure()) {
+    log << MSG::FATAL << "PixelGangedClusterAmbiguitiesCnv_p1: Cannot retrieve "
+        << persObj->m_pixelClusterContainerName << endmsg;
+  }
     
   std::vector< std::pair<uint32_t, std::vector<uint32_t> > >::const_iterator persItr  = persObj->m_ambiguityMap.begin();
   std::vector< std::pair<uint32_t, std::vector<uint32_t> > >::const_iterator persItrE = persObj->m_ambiguityMap.end();
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/TRT_DriftCircleContainerCnv_p2.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/TRT_DriftCircleContainerCnv_p2.cxx
index 6d634a651d8367badeb163e6779fa50e8c3100fa..80e4bd0e7c524fab6198de0af639af1b031c4ebf 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/TRT_DriftCircleContainerCnv_p2.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/src/TRT_DriftCircleContainerCnv_p2.cxx
@@ -194,6 +194,7 @@ InDet::TRT_DriftCircleContainer* TRT_DriftCircleContainerCnv_p2::createTransient
     if(!m_isInitialized) {
      if (this->initialize(log) != StatusCode::SUCCESS) {
       log << MSG::FATAL << "Could not initialize TRT_DriftCircleContainerCnv_p2 " << endmsg;
+      return nullptr; // if m_trtId not initialized return null pointer instead of dereferencing it later
      }
     }
     std::auto_ptr<InDet::TRT_DriftCircleContainer> trans(new InDet::TRT_DriftCircleContainer(m_trtId->straw_layer_hash_max()));
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p1_test.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p1_test.cxx
index 610c8ae642aa650f77aa6d1e4b1c882b646a24b3..fd452a20b4310893841059c3243f0e9387696575 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p1_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p1_test.cxx
@@ -161,7 +161,7 @@ makeclusts()
       cl->setHashAndIndex (hash, i);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p2_test.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p2_test.cxx
index 0156e2863c21ba27ffe0b5577cae61b2b7241134..76d71abae74cf47b6d3d8c173d9b038fc0a0c127 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p2_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p2_test.cxx
@@ -158,7 +158,7 @@ makeclusts()
       cl->setHashAndIndex (hash, i);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p3_test.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p3_test.cxx
index 67902fbb528269c805b7436194ffec700096fffd..3707556524bbd12a488fea8e50d00ef73985b840 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p3_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelClusterContainerCnv_p3_test.cxx
@@ -158,7 +158,7 @@ makeclusts()
       cl->setHashAndIndex (hash, i);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelGangedClusterAmbiguitiesCnv_p1_test.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelGangedClusterAmbiguitiesCnv_p1_test.cxx
index d8c7deaec4bc6efcb3e6179bf9454e68e86afc8e..393da7fffb025726a1ea4634137b12247a7eb240 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelGangedClusterAmbiguitiesCnv_p1_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/PixelGangedClusterAmbiguitiesCnv_p1_test.cxx
@@ -193,7 +193,7 @@ const InDet::PixelClusterContainer& makeclusts (StoreGateSvc* sg)
       cl->setHashAndIndex (hash, i);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   const InDet::PixelClusterContainer& ret = *cont;
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p2_test.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p2_test.cxx
index 35e1b83351a11875474be0f1d8ff42c404fe093d..a7f9210d956feb15f9da0980e9ea3b5fdf7d4850 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p2_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p2_test.cxx
@@ -134,7 +134,7 @@ makeclusts(const SCT_ID& sct_id)
       cl->setHashAndIndex (hash, i);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p3_test.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p3_test.cxx
index fa5b6fb9d1a0d1c31d11f69999d543afd883a56b..ee76f5d9388cdb062c57c85c579d83174eaeae40 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p3_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/SCT_ClusterContainerCnv_p3_test.cxx
@@ -134,7 +134,7 @@ makeclusts(const SCT_ID& sct_id)
       cl->setHashAndIndex (hash, i);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/TRT_DriftCircleContainerCnv_p2_test.cxx b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/TRT_DriftCircleContainerCnv_p2_test.cxx
index 308085b4d67e995aea586831d65958d6c7b8d29f..463791e9bf602e72354f19407a0fbdf53dca6e7f 100644
--- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/TRT_DriftCircleContainerCnv_p2_test.cxx
+++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/test/TRT_DriftCircleContainerCnv_p2_test.cxx
@@ -111,7 +111,7 @@ makeclusts (const TRT_ID& trt_id)
          54321);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/InnerDetector/InDetEventCnv/InDetJiveXML/InDetJiveXML/BeamSpotRetriever.h b/InnerDetector/InDetEventCnv/InDetJiveXML/InDetJiveXML/BeamSpotRetriever.h
index 98176dfea699d4deed24ae0a7274d1cb0302fcda..96bb9de9351c9433358611ac24fe2ef71e28ea5a 100755
--- a/InnerDetector/InDetEventCnv/InDetJiveXML/InDetJiveXML/BeamSpotRetriever.h
+++ b/InnerDetector/InDetEventCnv/InDetJiveXML/InDetJiveXML/BeamSpotRetriever.h
@@ -8,8 +8,7 @@
 #include "JiveXML/IDataRetriever.h"
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ServiceHandle.h" 
-
-class IBeamCondSvc;  
+#include "InDetBeamSpotService/IBeamCondSvc.h"
 
 namespace JiveXML {
   
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
index 88139ea54074f74e609390ec311e53776b756648..a416802d2a4d8b6ac4fd14b28a167e4ff9356ad7 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
@@ -19,7 +19,9 @@
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
 #include "xAODTracking/TrackMeasurementValidation.h"
 #include "xAODTracking/TrackMeasurementValidationContainer.h"
-
+#include "PixelConditionsServices/IPixelByteStreamErrorsSvc.h"
+#include "PixelConditionsServices/IPixelCalibSvc.h"
+#include "PixelConditionsServices/IPixelDCSSvc.h"
 
 #include <string>
 
@@ -28,9 +30,6 @@ class SiHit;
 class InDetSimDataCollection;
 
 class IdentifierHash;
-class IPixelCalibSvc;
-class IPixelDCSSvc;
-class IPixelByteStreamErrorsSvc;
 class ISiLorentzAngleSvc;
 
 namespace InDet
diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.cxx b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.cxx
index 525f02cb77e0a8a42049cebd3906fb838628ea82..fc638f5398bdd47b8602df90df8ed0b1114a5612 100644
--- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.cxx
+++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.cxx
@@ -39,12 +39,6 @@ PixelRawContByteStreamCnv::PixelRawContByteStreamCnv(ISvcLocator* svcloc) :
   m_log(msgSvc(), "PixelRawContByteStreamCnv")
 {}
 
-////////////////////////
-// destructor
-////////////////////////
-PixelRawContByteStreamCnv::~PixelRawContByteStreamCnv() {
-}
-
 ////////////////////////
 // initialize()
 ////////////////////////
diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.h b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.h
index 890f100d716d02d83f9c58502ba211cf5f6b21f6..b21373458e200ee84b444a61c6c31c9e8b02796c 100644
--- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.h
+++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/src/PixelRawContByteStreamCnv.h
@@ -42,8 +42,6 @@ class IChronoStatSvc;
 
 
 class PixelRawContByteStreamCnv: public Converter {
-  ~PixelRawContByteStreamCnv( );
-
  public:
 
   typedef InDetRawDataCollection<Pixel1RawData> COLLECTION; // define collection format here
diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawContByteStreamCnv.h b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawContByteStreamCnv.h
index 879162f9ab45525f9d6235eb869a9aef31e980ed..a762d1893eee7bb4a507ee86f907d02d88a67dae 100644
--- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawContByteStreamCnv.h
+++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/src/SCTRawContByteStreamCnv.h
@@ -15,9 +15,9 @@
 
 // Athena
 #include "InDetRawData/InDetRawDataCLASS_DEF.h"
+#include "ByteStreamCnvSvcBase/IByteStreamEventAccess.h"
 
 class DataObject;
-class IByteStreamEventAccess;
 class ISCTRawContByteStreamTool;
 
 /** Externals */ 
@@ -32,7 +32,6 @@ extern long ByteStream_StorageType;
  * to do the actual converting. */
 
 class SCTRawContByteStreamCnv: public Converter {
-  virtual ~SCTRawContByteStreamCnv() = default;
 
  public:
   SCTRawContByteStreamCnv(ISvcLocator* svcloc);
diff --git a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.cxx b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.cxx
index 9700c71a78020d6a2c92a5b724896bbf7ee0bebd..c10f80709c2dd476ede23e8990ed635107ae156f 100644
--- a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.cxx
+++ b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.cxx
@@ -19,12 +19,6 @@ TRTRawContByteStreamCnv::TRTRawContByteStreamCnv(ISvcLocator* svcloc) :
     m_byteStreamEventAccess("ByteStreamCnvSvc","TRTRawContByteStreamCnv") // init service handle
 {}
  
-// ------------------------------------------------------
-// destructor
-
-TRTRawContByteStreamCnv::~TRTRawContByteStreamCnv( )
-{}
-
 // ------------------------------------------------------
 // initialize
 
diff --git a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.h b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.h
index e23a1a6bec9adede411dc8077daeb3c70365ceef..46235c7c4f5201654e870f53b181babf83a739af 100644
--- a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.h
+++ b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/src/TRTRawContByteStreamCnv.h
@@ -9,12 +9,12 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "InDetRawData/InDetRawDataCLASS_DEF.h"
+#include "ByteStreamCnvSvcBase/IByteStreamEventAccess.h" 
 
 #include "TRT_RawDataByteStreamCnv/ITRTRawContByteStreamTool.h"
 
 class DataObject;
 class TRTRawContByteStreamTool ; 
-class IByteStreamEventAccess   ;
 
 #include <string>
 
@@ -27,8 +27,6 @@ extern long ByteStream_StorageType;
 // the converter for writing BS from TRT Raw Data
 
 class TRTRawContByteStreamCnv: public Converter {
-  ~TRTRawContByteStreamCnv( );
-  
  public:
   TRTRawContByteStreamCnv(ISvcLocator* svcloc);
 
diff --git a/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/PrintSiElements.h b/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/PrintSiElements.h
index 335d9cf63bac262de5b3ba75caeffe1ec11adce5..08cca7a7ca9631918bdac8755b912b5ba8e69745 100755
--- a/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/PrintSiElements.h
+++ b/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/PrintSiElements.h
@@ -9,11 +9,10 @@
 #include "GaudiKernel/ServiceHandle.h"
 //#include "CLHEP/Geometry/Transform3D.h"
 #include "GeoPrimitives/GeoPrimitives.h"
+#include "GeoModelInterfaces/IGeoModelSvc.h"
 
 #include <fstream>
 
-class IGeoModelSvc;
-
 /////////////////////////////////////////////////////////////////////////////
 
 class PrintSiElements : public AthAlgorithm {
diff --git a/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h b/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h
index 7a12623f19a1b3f5d5f9d859ba589e64007ef93d..3d35cf0b8b24d9d5848559144add3e25b781f4c8 100755
--- a/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h
+++ b/InnerDetector/InDetExample/InDetDetDescrExample/InDetDetDescrExample/ReadSiDetectorElements.h
@@ -16,6 +16,9 @@
 #include "StoreGate/ReadCondHandleKey.h"
 #include "InDetConditionsSummaryService/ISiliconConditionsTool.h"
 #include "InDetCondServices/ISiLorentzAngleTool.h"
+#include "InDetConditionsSummaryService/ISiliconConditionsSvc.h"
+#include "InDetCondServices/ISiLorentzAngleSvc.h"
+#include "SiPropertiesSvc/ISiPropertiesSvc.h"
 
 #include <vector>
 
@@ -26,9 +29,6 @@ namespace InDetDD{
   class SiDetectorElement;
 }
 
-class ISiliconConditionsSvc;
-class ISiPropertiesSvc;
-class ISiLorentzAngleSvc;
 class AtlasDetectorID;
 class PixelID;
 class SCT_ID;
diff --git a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py
new file mode 100644
index 0000000000000000000000000000000000000000..d9af6ad10621ffd46be32dcab6833a2d78fe555a
--- /dev/null
+++ b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py
@@ -0,0 +1,119 @@
+
+def createAndAddCondAlg(creator, the_name) :
+    from AthenaCommon.AlgSequence import AlgSequence
+    from AthenaCommon.AlgSequence import AthSequencer
+    cond_seq=AthSequencer("AthCondSeq")
+    for seq in [AlgSequence(),cond_seq] :
+        print 'DEBUG createAndAddCondAlg match ?  %s == %s ? %s ' % ( dir(seq),the_name,hasattr(seq,the_name) )
+        if hasattr(seq,the_name) :
+            if seq.getName() != "AthCondSeq" :
+                raise Exception('Algorithm already in a sequnece but not the conditions seqence')
+            return
+    cond_seq += creator()
+
+def setDefaults(kwargs, **def_kwargs) :
+    def_kwargs.update(kwargs)
+    return def_kwargs
+
+def getPixelRIO_OnTrackErrorScalingDbOverrideCondAlg( **kwargs) :
+    '''
+    usage:
+       createAndAddCondAlg( getPixelRIO_OnTrackErrorScalingDbOverrideCondAlg, 'PixelRIO_OnTrackErrorScalingDbOverrideCondAlg' )
+    '''
+    the_name=kwargs.pop("name",None)
+    from AtlasGeoModel.InDetGMJobProperties import InDetGeometryFlags as geoFlags
+    # kPixBarrelPhi
+    params   = [ 10. , 0.0044]
+    # kPixBarrelEta
+    params  += [ 10. , 0.0312]
+    # kPixEndcapPhi,
+    params  += [ 10. , 0.026]
+    # kPixEndcapEta,
+    params  += [ 10. , 0.0]
+    if geoFlags.isIBL() :
+        error_scaling_type='PixelRIO_OnTrackErrorScaling'
+        # kPixIBLPhi
+        params  += [ 10. , 0.0044]
+        # kPixIBLEta
+        params  += [ 10. , 0.0312]
+    else :
+        error_scaling_type='PixelRIO_OnTrackErrorScalingRun1'
+
+
+    from TrkRIO_OnTrackCreator.TrkRIO_OnTrackCreatorConf import RIO_OnTrackErrorScalingDbOverrideCondAlg
+    return RIO_OnTrackErrorScalingDbOverrideCondAlg( 'PixelRIO_OnTrackErrorScalingDbOverrideCondAlg',
+                                                     **setDefaults( kwargs,
+                                                                    ErrorScalingTypeName  = error_scaling_type,
+                                                                    WriteKey              = "/Indet/TrkErrorScalingPixel",
+                                                                    ErorScalingParameters = params,
+                                                                    OutputLevel = 1) ) # VERBOSE
+
+def getRIO_OnTrackErrorScalingCondAlg( **kwargs) :
+    the_name=kwargs.pop("name",None)
+    from AtlasGeoModel.InDetGMJobProperties import InDetGeometryFlags as geoFlags
+    if geoFlags.isIBL() :
+        error_scaling_type =   ["PixelRIO_OnTrackErrorScaling"]
+        error_scaling_outkey = ["/Indet/TrkErrorScalingPixel"]
+    else :
+        error_scaling_type =   ["PixelRIO_OnTrackErrorScalingRun1"]
+        error_scaling_outkey = ["/Indet/TrkErrorScalingPixel"]
+
+    error_scaling_type +=      ["SCTRIO_OnTrackErrorScaling"]
+    error_scaling_outkey +=    ["/Indet/TrkErrorScalingSCT"]
+
+    error_scaling_type +=      ["TRTRIO_OnTrackErrorScaling"]
+    error_scaling_outkey +=    ["/Indet/TrkErrorScalingTRT"]
+
+    from IOVDbSvc.CondDB import conddb
+    if not conddb.folderRequested( "/Indet/TrkErrorScaling" ):
+        print 'DEBUG request /Indet/TrkErrorScaling '
+        conddb.addFolderSplitOnline('INDET','/Indet/Onl/TrkErrorScaling','/Indet/TrkErrorScaling', className="CondAttrListCollection")
+    else :
+        print 'DEBUG folder /Indet/TrkErrorScaling already requested.'
+    for elm in conddb.iovdbsvc.Folders :
+        print 'DEBUG IOVDbSvc folder %s' % elm
+
+
+    from TrkRIO_OnTrackCreator.TrkRIO_OnTrackCreatorConf import RIO_OnTrackErrorScalingCondAlg
+    if the_name == None :
+        return RIO_OnTrackErrorScalingCondAlg( **setDefaults(kwargs,
+                                                             ReadKey             = "/Indet/TrkErrorScaling",
+                                                             ErrorScalingType    = error_scaling_type,
+                                                             OutKeys             = error_scaling_outkey) )
+    else :
+        return RIO_OnTrackErrorScalingCondAlg( the_name,
+                                               **setDefaults(kwargs,
+                                                             ReadKey             = "/Indet/TrkErrorScaling",
+                                                             ErrorScalingType    = error_scaling_type,
+                                                             OutKeys             = error_scaling_outkey) )
+
+
+
+def getEventInfoKey() :
+    from AthenaCommon.GlobalFlags  import globalflags
+    isData = (globalflags.DataSource == 'data')
+
+    eventInfoKey = "ByteStreamEventInfo"
+    if not isData:
+        eventInfoKey = "McEventInfo"
+    if globalflags.isOverlay() and isData :
+        if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.TRT_on():
+            from OverlayCommonAlgs.OverlayFlags import overlayFlags
+            eventInfoKey = (overlayFlags.dataStore() + '+' + eventInfoKey).replace("StoreGateSvc+","")
+        else :
+            eventInfoKey = "McEventInfo"
+    return eventInfoKey
+
+
+def getTRT_DriftCircleOnTrackTool() :
+    from AthenaCommon.AppMgr import ToolSvc
+    if not hasattr(ToolSvc,'TRT_DriftCircleOnTrackTool') :
+        createAndAddCondAlg(getRIO_OnTrackErrorScalingCondAlg,'RIO_OnTrackErrorScalingCondAlg')
+        from TRT_DriftCircleOnTrackTool.TRT_DriftCircleOnTrackToolConf import InDet__TRT_DriftCircleOnTrackTool
+        tool = InDet__TRT_DriftCircleOnTrackTool( EventInfoKey      = getEventInfoKey(),
+                                                  TRTErrorScalingKey = '/Indet/TrkErrorScalingTRT')
+        print 'DEBUG default name = %s' % (tool.getName())
+        ToolSvc += tool
+        return tool
+    else :
+        return ToolSvc.TRT_DriftCircleOnTrackTool
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py
index 7b4aab95c851f1451e835c46ea98534f09dac5d1..f5765e5bda0f2aedd838a1cf982b3a6ffc1f0f24 100755
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py
@@ -5,6 +5,9 @@
 #
 # ------------------------------------------------------------
 
+from InDetRecExample.TrackingCommon import createAndAddCondAlg
+from InDetRecExample.TrackingCommon import getRIO_OnTrackErrorScalingCondAlg,getEventInfoKey, getTRT_DriftCircleOnTrackTool
+
 use_broad_cluster_any = InDetFlags.useBroadClusterErrors() and (not InDetFlags.doDBMstandalone())
 use_broad_cluster_pix = InDetFlags.useBroadPixClusterErrors() and (not InDetFlags.doDBMstandalone())
 use_broad_cluster_sct = InDetFlags.useBroadSCTClusterErrors() and (not InDetFlags.doDBMstandalone())
@@ -315,10 +318,7 @@ if InDetFlags.loadRotCreator():
     #
     # --- load error scaling
     #
-    from IOVDbSvc.CondDB import conddb
-    if not conddb.folderRequested( "/Indet/TrkErrorScaling" ):
-        #conddb.addFolder("INDET","/Indet/TrkErrorScaling")
-        conddb.addFolderSplitOnline('INDET','/Indet/Onl/TrkErrorScaling','/Indet/TrkErrorScaling')
+    createAndAddCondAlg(getRIO_OnTrackErrorScalingCondAlg,'RIO_OnTrackErrorScalingCondAlg')
     #
     # --- smart ROT creator in case we do the TRT LR in the refit
     #
@@ -329,9 +329,10 @@ if InDetFlags.loadRotCreator():
         if DetFlags.haveRIO.TRT_on():
             from TRT_DriftCircleOnTrackTool.TRT_DriftCircleOnTrackToolConf import InDet__TRT_DriftCircleOnTrackUniversalTool
 
-            # --- this is the cut for making a TRT hit a tube hit (biases the distribution)  
+            # --- this is the cut for making a TRT hit a tube hit (biases the distribution)
 
             TRT_RefitRotCreator = InDet__TRT_DriftCircleOnTrackUniversalTool(name                = 'InDetTRT_RefitRotCreator',
+                                                                             RIOonTrackToolDrift = getTRT_DriftCircleOnTrackTool(),
                                                                              RIOonTrackToolTube  = BroadTRT_DriftCircleOnTrackTool,
                                                                              ScaleHitUncertainty = ScaleHitUncertainty) # fix from Thijs
             ToolSvc += TRT_RefitRotCreator
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py
index c836e7d344b312f40ca662ea6a86a85a557493f4..815a8b850baf0801b580481c55f7567ee9b32efd 100644
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py
@@ -333,20 +333,20 @@ if InDetFlags.doStandardPlots():
     from InDetPerformanceRTT.InDetPerformanceRTTConf import IDStandardPerformance as InDetStandardPerformance
 
     # all tracks
-    InDetStandardPerformanceAll = InDetStandardPerformance (name               = "InDetStandardPerformanceAll",
-                                                            tracksName         = InDetKeys.UnslimmedTracks(),
-                                                            tracksTruthName    = InDetKeys.UnslimmedTracksTruth(),
-                                                            SummaryTool        = InDetTrackSummaryToolSharedHits,
-                                                            HoleSearch         = InDetHoleSearchTool,
-                                                            useTrackSelection  = False,
-                                                            HistDirectoryName  = "AllTracks",
-                                                            TruthToTrackTool   = TruthToTrackTool,
-                                                            doUpgrade          = InDetFlags.doSLHC(),
-                                                            DoTruth            = InDetFlags.doTruth())
-
-    if InDetFlags.doDBMstandalone() or InDetFlags.doDBM(): 
-      InDetStandardPerformanceAll.tracksName = InDetKeys.DBMTracks() 
-      InDetStandardPerformanceAll.tracksTruthName = InDetKeys.DBMTracksTruth()
+#    InDetStandardPerformanceAll = InDetStandardPerformance (name               = "InDetStandardPerformanceAll",
+#                                                            tracksName         = InDetKeys.UnslimmedTracks(),
+#                                                            tracksTruthName    = InDetKeys.UnslimmedTracksTruth(),
+#                                                            SummaryTool        = InDetTrackSummaryToolSharedHits,
+#                                                            HoleSearch         = InDetHoleSearchTool,
+#                                                            useTrackSelection  = False,
+#                                                            HistDirectoryName  = "AllTracks",
+#                                                            TruthToTrackTool   = TruthToTrackTool,
+#                                                            doUpgrade          = InDetFlags.doSLHC(),
+#                                                            DoTruth            = InDetFlags.doTruth())#
+#
+#    if InDetFlags.doDBMstandalone() or InDetFlags.doDBM(): 
+#      InDetStandardPerformanceAll.tracksName = InDetKeys.DBMTracks() 
+#      InDetStandardPerformanceAll.tracksTruthName = InDetKeys.DBMTracksTruth()
 
 #    if InDetFlags.doDBM():
 #      InDetStandardPerformanceDBM = InDetStandardPerformance (name               = "InDetStandardPerformanceDBM",
@@ -362,13 +362,13 @@ if InDetFlags.doStandardPlots():
 #      ToolSvc += InDetStandardPerformanceDBM
 #      InDetTrackPerfMonManager.AthenaMonTools += [ InDetStandardPerformanceDBM ]
 
-    ToolSvc += InDetStandardPerformanceAll
-    if (InDetFlags.doPrintConfigurables()):
-      print    InDetStandardPerformanceAll
+#    ToolSvc += InDetStandardPerformanceAll
+#    if (InDetFlags.doPrintConfigurables()):
+#      print    InDetStandardPerformanceAll
 #      if InDetFlags.doDBM():
 #        print InDetStandardPerformanceDBM
         
-    InDetTrackPerfMonManager.AthenaMonTools += [ InDetStandardPerformanceAll ]
+ #   InDetTrackPerfMonManager.AthenaMonTools += [ InDetStandardPerformanceAll ]
         
   #monitoring truth-/pseudo-tracks in particular
     if InDetFlags.doPseudoTracking() :
diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigRecLoadTools.py b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigRecLoadTools.py
index 3255f08d1999a5d00853cbc88f26c0bfc0d88123..af5f60012c08a3aade44aa420094d9ba849f626c 100755
--- a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigRecLoadTools.py
+++ b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigRecLoadTools.py
@@ -144,20 +144,20 @@ if InDetTrigFlags.loadRotCreator():
 
 
   # load error scaling
-  from IOVDbSvc.CondDB import conddb
-  if not (conddb.folderRequested( "/Indet/TrkErrorScaling" ) or \
-            conddb.folderRequested( "/Indet/Onl/TrkErrorScaling" )):
-    conddb.addFolderSplitOnline("INDET", "/Indet/Onl/TrkErrorScaling", "/Indet/TrkErrorScaling" )
+  from InDetRecExample.TrackingCommon import createAndAddCondAlg, getRIO_OnTrackErrorScalingCondAlg
+  createAndAddCondAlg(getRIO_OnTrackErrorScalingCondAlg,'RIO_OnTrackErrorScalingCondAlg')
 
   #
   # smart ROT creator in case we do the TRT LR in the refit
   #
   if InDetTrigFlags.redoTRT_LR():
 
+    from InDetRecExample.TrackingCommon import getTRT_DriftCircleOnTrackTool
     from TRT_DriftCircleOnTrackTool.TRT_DriftCircleOnTrackToolConf import \
         InDet__TRT_DriftCircleOnTrackUniversalTool
     InDetTrigTRT_RefitRotCreator = \
         InDet__TRT_DriftCircleOnTrackUniversalTool(name  = 'InDetTrigTRT_RefitRotCreator',
+                                                   RIOonTrackToolDrift = getTRT_DriftCircleOnTrackTool(), # special settings for trigger needed ?
                                                    ScaleHitUncertainty = 2.5) # fix from Thijs
 #    if InDetTrigFlags.doCommissioning():    #introduced for cosmics do not use for collisions
 #      InDetTrigTRT_RefitRotCreator.ScaleHitUncertainty = 5.
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.cxx
index 559d1bf288a21f61cf79f921ef4042b3abc57dc6..bb6dbde236c3dbd36b1a37b7999483e6fcce082c 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.cxx
@@ -60,7 +60,6 @@ IDAlignMonNtuple::IDAlignMonNtuple( const std::string & type, const std::string
   :ManagedMonitorToolBase( type, name, parent ),
    m_doPulls(false),
    m_idHelper(0),
-   m_SCT_Mgr(0),
    m_pixelID(0),
    m_sctID(0),
    m_ntupleSvc(0),
@@ -831,7 +830,11 @@ const Trk::TrackParameters* IDAlignMonNtuple::getUnbiasedTrackParameters(const T
     if(msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE) << "Entering True Unbiased loop." << endmsg;
     // check if other module side was also hit and try to remove other hit as well
     const Trk::TrackStateOnSurface* OtherModuleSideHit(0);
-    const Identifier& OtherModuleSideID = m_SCT_Mgr->getDetectorElement(surfaceID)->otherSide()->identify();
+    const Identifier waferID = m_sctID->wafer_id(surfaceID);
+    const IdentifierHash waferHash = m_sctID->wafer_hash(waferID);
+    IdentifierHash otherSideHash;
+    m_sctID->get_other_side(waferHash, otherSideHash);
+    const Identifier OtherModuleSideID = m_sctID->wafer_id(otherSideHash);
       
     for (const Trk::TrackStateOnSurface* TempTsos : *trkPnt->trackStateOnSurfaces()) {
         
@@ -977,14 +980,6 @@ StatusCode IDAlignMonNtuple::setupTools()
   }
   if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Initialized SCTIDHelper" << endmsg;
 
-  // Get the SCT manager from the detector store
-  sc = detStore()->retrieve(m_SCT_Mgr, "SCT");
-  if (sc.isFailure()) {
-    msg(MSG::ERROR) << "Could not get SCT_Manager !" << endmsg;
-    return sc;
-  }
-  if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Initialized SCTManager" << endmsg;
-
   //ID Helper
   sc = detStore()->retrieve(m_idHelper, "AtlasID" );
   if (sc.isFailure()) {
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.h
index ec43697622c3b48e0a1f59ee21509e09c497882c..2bede7ee7a097c815af61184d5d98f68c0938826 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.h
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonNtuple.h
@@ -29,10 +29,6 @@ class AtlasDetectorID;
 class PixelID;
 class SCT_ID;
 
-namespace InDetDD{
-  class SCT_DetectorManager;
-}
-
 namespace Trk {
   class RIO_OnTrack;
   class Track;
@@ -79,7 +75,6 @@ protected:
 
 	//tools
 	const AtlasDetectorID*                m_idHelper;
-	const InDetDD::SCT_DetectorManager*   m_SCT_Mgr;
 	const PixelID*                        m_pixelID;
 	const SCT_ID*                         m_sctID; 
 	PublicToolHandle<Trk::IUpdator>             m_iUpdator
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx
index d61087d7d8323aa075cfa604ac8d123cc85ce929..fc66f289c159402f7e52e6dcb002696908032f03 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx
@@ -2836,7 +2836,11 @@ const Trk::TrackParameters* IDAlignMonResiduals::getUnbiasedTrackParameters(cons
     if(msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE) << "Entering True Unbiased loop." << endmsg;
     // check if other module side was also hit and try to remove other hit as well
     const Trk::TrackStateOnSurface* OtherModuleSideHit(0);
-    const Identifier& OtherModuleSideID = m_SCT_Mgr->getDetectorElement(surfaceID)->otherSide()->identify();
+    const Identifier waferID = m_sctID->wafer_id(surfaceID);
+    const IdentifierHash waferHash = m_sctID->wafer_hash(waferID);
+    IdentifierHash otherSideHash;
+    m_sctID->get_other_side(waferHash, otherSideHash);
+    const Identifier OtherModuleSideID = m_sctID->wafer_id(otherSideHash);
 
     for (const Trk::TrackStateOnSurface* TempTsos : *trkPnt->trackStateOnSurfaces()) {
 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.h
index 1153e772903aba474a2afeb050295ae4d1394c3e..6997b662e5c0781782daef48e1af18a8924ea503 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.h
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonSivsTRT.h
@@ -30,14 +30,12 @@ class TProfile;
 
 class AtlasDetectorID;
 class PixelID;
-class SCT_ID;
 
 namespace InDetAlignMon{
   class TrackSelectionTool;
 }
 
 namespace InDetDD{
-  class SCT_DetectorManager;
   class PixelDetectorManager; 
 }
 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.h
index cc6518175c03304b304651190014d98f61dc4b63..f57df21a5d6eb802a6dce0027ce89144b413b39e 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.h
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonTrackSegments.h
@@ -26,14 +26,12 @@ class TH2F_LW;
 
 class AtlasDetectorID;
 class PixelID;
-class SCT_ID;
 
 namespace InDetAlignMon{
   class TrackSelectionTool;
 }
 
 namespace InDetDD{
-  class SCT_DetectorManager;
   class PixelDetectorManager; 
 }
 
diff --git a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.h b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.h
index 3d89f16f018e783f45d7ddbe0ce228b9db3f3075..3e57d30ea6c8f9922c4cecc8b43094df3cff8d57 100755
--- a/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.h
+++ b/InnerDetector/InDetMonitoring/InDetGlobalMonitoring/src/InDetGlobalErrorMonTool.h
@@ -14,9 +14,8 @@
 #include "Identifier/IdentifierHash.h"
 #include "SCT_ConditionsTools/ISCT_ConfigurationConditionsTool.h"
 #include "SCT_ConditionsTools/ISCT_ByteStreamErrorsTool.h"
-
-class IInDetConditionsSvc;
-class IPixelByteStreamErrorsSvc;
+#include "InDetConditionsSummaryService/IInDetConditionsSvc.h"
+#include "PixelConditionsServices/IPixelByteStreamErrorsSvc.h"
 
 namespace InDetDD
 {
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/InDetOverlay.h b/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/InDetOverlay.h
index 69b4f0097bd118a3f6209da090e1b945ab453bf3..817c2ad7dbd0ae698e2bfed4e823910d1e2de823 100755
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/InDetOverlay.h
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/InDetOverlay/InDetOverlay.h
@@ -28,12 +28,12 @@
 typedef  InDetRawDataCollection<TRT_RDORawData> TRT_RDO_Collection;
 
 #include "InDetSimData/InDetSimDataCollection.h"
+#include "AthenaKernel/IAtRndmGenSvc.h"
 
 
 class StoreGateSvc;
 class SCT_ID;
 class TRT_ID;
-class IAtRndmGenSvc;
 
 namespace CLHEP {
   class HepRandomEngine;
diff --git a/InnerDetector/InDetRecAlgs/InDetExtensionProcessor/InDetExtensionProcessor/InDetExtensionProcessor.h b/InnerDetector/InDetRecAlgs/InDetExtensionProcessor/InDetExtensionProcessor/InDetExtensionProcessor.h
index d726ee95447085a1983ce15ede4596af2d5a41c8..3e525a67b8e51768a617a7b55d86e3822304cf23 100755
--- a/InnerDetector/InDetRecAlgs/InDetExtensionProcessor/InDetExtensionProcessor/InDetExtensionProcessor.h
+++ b/InnerDetector/InDetRecAlgs/InDetExtensionProcessor/InDetExtensionProcessor/InDetExtensionProcessor.h
@@ -16,15 +16,13 @@
 #include "TrkTrack/TrackExtensionMap.h"
 #include "TrkFitterUtils/FitterTypes.h"
 #include "TrkEventPrimitives/ParticleHypothesis.h"
+#include "TrkFitterInterfaces/ITrackFitter.h"
+#include "TrkToolInterfaces/ITrackScoringTool.h"
+
 #include <vector>
 #include <array>
 #include <mutex>
 
-namespace Trk{
-  class ITrackScoringTool;
-  class ITrackFitter;
-}
-
 namespace InDet {
 
  /** @brief Algorithm to process a TrackExtensionMap, refit the
diff --git a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/InDetLowBetaFinder/LowBetaAlg.h b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/InDetLowBetaFinder/LowBetaAlg.h
index 53c432f76c1129cb783918909694185de6776cc7..f41b1249db5fb79e1557d8baca88c42213b416c1 100644
--- a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/InDetLowBetaFinder/LowBetaAlg.h
+++ b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/InDetLowBetaFinder/LowBetaAlg.h
@@ -28,6 +28,7 @@ author Christopher.Marino <Christopher.Marino@cern.ch>
 #include "xAODTracking/TrackParticleContainer.h"
 #include "InDetLowBetaInfo/InDetLowBetaContainer.h"
 #include "TrkTrack/TrackCollection.h"
+#include "TRT_ToT_Tools/ITRT_ToT_dEdx.h"
 
 /////////////////////////////////////////////////////////////////////////////
 
@@ -35,8 +36,6 @@ class AtlasDetectorID;
 class Identifier;
 class TRT_ID;
 class TrtToolBetaLiklihood;
-class ITRT_ToT_dEdx;
-
 
 // Predeclare histogram classes that you use.
 
diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/PixelClusterization.h b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/PixelClusterization.h
index f43c32d403e1ddc926b683b26e66009ae79dcc65..f6b8f2968a8f51031b37e3949713910621638a80 100644
--- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/PixelClusterization.h
+++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/PixelClusterization.h
@@ -31,7 +31,7 @@
 #include "InDetRawData/PixelRDO_Container.h"
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 #include "IRegionSelector/IRegSelSvc.h"
-
+#include "SiClusterizationTool/IPixelClusteringTool.h"
 
 
 // Fwd declarations
@@ -44,7 +44,6 @@ namespace InDetDD{
   class SiDetectorManager;
 }
 namespace InDet {
-  class IPixelClusteringTool;
   class PixelGangedAmbiguitiesFinder;
 }
 
diff --git a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h
index d562e162e6d62c86f6c520a93998765145ca25f2..fecf2dd78f7368913b79db39d28f425bb2619723 100644
--- a/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h
+++ b/InnerDetector/InDetRecAlgs/InDetPrepRawDataFormation/InDetPrepRawDataFormation/SCT_Clusterization.h
@@ -36,6 +36,7 @@
 #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h"
 #include "IRegionSelector/IRegSelSvc.h"
 #include "InDetConditionsSummaryService/IInDetConditionsTool.h"
+#include "SiClusterizationTool/ISCT_ClusteringTool.h"
 
 class SCT_ID;
 class SCT_ChannelStatusAlg;
@@ -49,7 +50,6 @@ namespace InDetDD{
 
 
 namespace InDet {
-  class ISCT_ClusteringTool;
 /**
  *    @class SCT_Clusterization
  *    @brief Form clusters from SCT Raw Data Objects
diff --git a/InnerDetector/InDetRecAlgs/InDetV0Finder/src/InDetV0Finder.cxx b/InnerDetector/InDetRecAlgs/InDetV0Finder/src/InDetV0Finder.cxx
index 5f948f8c2bd813c241ce8bfec7d080b3e1150acb..f61330ca74068bab39a1d3f281895d327f61bae1 100755
--- a/InnerDetector/InDetRecAlgs/InDetV0Finder/src/InDetV0Finder.cxx
+++ b/InnerDetector/InDetRecAlgs/InDetV0Finder/src/InDetV0Finder.cxx
@@ -227,13 +227,6 @@ StatusCode InDetV0Finder::execute()
   xAOD::VertexAuxContainer* laAuxContainer(0);
   xAOD::VertexContainer*    lbContainer(0);
   xAOD::VertexAuxContainer* lbAuxContainer(0);
-
-// call InDetV0 finder
-  ATH_CHECK( m_v0FinderTool->performSearch(v0Container, v0AuxContainer,
-					   ksContainer, ksAuxContainer,
-					   laContainer, laAuxContainer,
-             lbContainer, lbAuxContainer,
-					   primaryVertex, importedVxContainer) );
 					   
 	auto cleanUpOnExit= [&](){
 	  delete v0Container;
@@ -245,9 +238,20 @@ StatusCode InDetV0Finder::execute()
 	  delete lbContainer;
 	  delete lbAuxContainer;
 	};
-
+	//
+	const auto statusOfSearch = m_v0FinderTool->performSearch(v0Container, v0AuxContainer,
+					   ksContainer, ksAuxContainer,
+					   laContainer, laAuxContainer,
+             lbContainer, lbAuxContainer,
+					   primaryVertex, importedVxContainer);
+	//
+	if (statusOfSearch != StatusCode::SUCCESS){
+	  ATH_MSG_ERROR("Vertex search of v0Container failed.");
+		cleanUpOnExit();
+		return StatusCode::FAILURE;
+	}
+  //
   //---- Recording section: write the results to StoreGate ---//
-
   SG::WriteHandle<xAOD::VertexContainer> h_V0( m_v0Key );
   if ( h_V0.record(std::unique_ptr<xAOD::VertexContainer>(v0Container), 
 			 std::unique_ptr<xAOD::VertexAuxContainer>(v0AuxContainer)) !=StatusCode::SUCCESS){
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/CMakeLists.txt b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/CMakeLists.txt
index cacbe06653c42b441a1d489dbcfa26060d0d7f89..f14486e6c059075931db0334b48dbfee53c34603 100644
--- a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/CMakeLists.txt
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/CMakeLists.txt
@@ -14,6 +14,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Tracking/TrkEvent/TrkEventPrimitives
                           Tracking/TrkEvent/TrkRIO_OnTrack
                           Event/EventContainers
+                          Event/EventPrimitives
                           PRIVATE
                           InnerDetector/InDetDetDescr/InDetReadoutGeometry
                           Tracking/TrkDetDescr/TrkSurfaces )
@@ -26,12 +27,12 @@ atlas_add_library( InDetRIO_OnTrack
                    src/*.cxx
                    PUBLIC_HEADERS InDetRIO_OnTrack
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES AthLinks Identifier GaudiKernel InDetPrepRawData TrkEventPrimitives TrkRIO_OnTrack EventContainers
+                   LINK_LIBRARIES AthLinks Identifier GaudiKernel InDetPrepRawData TrkEventPrimitives TrkRIO_OnTrack EventContainers EventPrimitives
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} InDetReadoutGeometry TrkSurfaces )
 
 atlas_add_dictionary( InDetRIO_OnTrackDict
                       InDetRIO_OnTrack/InDetRIO_OnTrackDict.h
                       InDetRIO_OnTrack/selection.xml
                       INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks Identifier GaudiKernel InDetPrepRawData TrkEventPrimitives TrkRIO_OnTrack InDetReadoutGeometry TrkSurfaces InDetRIO_OnTrack EventContainers )
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks Identifier GaudiKernel InDetPrepRawData TrkEventPrimitives TrkRIO_OnTrack InDetReadoutGeometry TrkSurfaces InDetRIO_OnTrack EventContainers EventPrimitives)
 
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h
new file mode 100644
index 0000000000000000000000000000000000000000..a34fbe5beea0b8be8a6dcc9e82425c0734513e02
--- /dev/null
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h
@@ -0,0 +1,41 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef _PixelRIO_OnTrackErrorScaling_H_
+#define _PixelRIO_OnTrackErrorScaling_H_
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+class PixelID;
+class Identifier;
+
+class PixelRIO_OnTrackErrorScaling : public RIO_OnTrackErrorScaling
+{
+public:
+  virtual CLID clid() const override;
+
+  virtual Amg::MatrixX getScaledCovariance(const Amg::MatrixX& cov_input,
+                                           const PixelID& pixel_id,
+                                           const Identifier& id) const;
+
+  enum EPixelErrorScalingRegions {
+    kPixBarrelPhi,
+    kPixBarrelEta,
+    kPixEndcapPhi,
+    kPixEndcapEta,
+    kPixIBLPhi,
+    kPixIBLEta,
+    kNParamTypes};
+
+  static const char **paramNames() { return s_names; }
+  virtual bool postProcess() override;
+ 
+protected:
+  static const char *s_names[kNParamTypes];
+};
+
+CLASS_DEF( PixelRIO_OnTrackErrorScaling ,           254709438 , 1 )
+
+#include "AthenaKernel/CondCont.h"
+CONDCONT_DEF(PixelRIO_OnTrackErrorScaling, 87055250, RIO_OnTrackErrorScaling);
+
+#endif
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/SCTRIO_OnTrackErrorScaling.h b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/SCTRIO_OnTrackErrorScaling.h
new file mode 100644
index 0000000000000000000000000000000000000000..c023558cda0a50c2593af8747b472857c3cffc28
--- /dev/null
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/SCTRIO_OnTrackErrorScaling.h
@@ -0,0 +1,34 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef _SCTRIO_OnTrackErrorScaling_H_
+#define _SCTRIO_OnTrackErrorScaling_H_
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+class SCTRIO_OnTrackErrorScaling : public RIO_OnTrackErrorScaling
+{
+public:
+  virtual CLID clid() const override;
+
+  virtual Amg::MatrixX getScaledCovariance(const Amg::MatrixX& cov_input,
+                                           bool is_endcap,
+                                           double sinLocalAngle) const;
+
+  enum ESCTErrorScalingRegions {
+    kBarrel,
+    kEndcap,
+    kNParamTypes};
+
+  static const char **paramNames() { return s_names; }
+  virtual bool postProcess() override;
+protected:
+  static const char *s_names[kNParamTypes];
+};
+
+
+CLASS_DEF( SCTRIO_OnTrackErrorScaling ,          14458362, 1 )
+
+#include "AthenaKernel/CondCont.h"
+CONDCONT_DEF(SCTRIO_OnTrackErrorScaling, 6837094, RIO_OnTrackErrorScaling);
+
+#endif
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/TRTRIO_OnTrackErrorScaling.h b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/TRTRIO_OnTrackErrorScaling.h
new file mode 100644
index 0000000000000000000000000000000000000000..134e29578eb7b344cb91b9df22aa81e99081cc0e
--- /dev/null
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/TRTRIO_OnTrackErrorScaling.h
@@ -0,0 +1,31 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef _TRTRIO_OnTrackErrorScaling_H_
+#define _TRTRIO_OnTrackErrorScaling_H_
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+class TRTRIO_OnTrackErrorScaling : public RIO_OnTrackErrorScaling
+{
+public:
+  virtual CLID clid() const override;
+
+ virtual Amg::MatrixX getScaledCovariance(const Amg::MatrixX& cov_input,
+                                           bool is_endcap,
+                                           double mu) const;
+
+  enum ETRTErrorScalingRegions {
+    kBarrel,
+    kEndcap,
+    kNParamTypes};
+
+  static const char **paramNames() { return s_names; }
+  virtual bool postProcess() override;
+protected:
+  static const char *s_names[kNParamTypes];
+};
+
+
+CLASS_DEF( TRTRIO_OnTrackErrorScaling ,          216884486, 1 )
+CONDCONT_DEF(TRTRIO_OnTrackErrorScaling, 112040354, RIO_OnTrackErrorScaling);
+#endif
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/PixelRIO_OnTrackErrorScaling.cxx b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/PixelRIO_OnTrackErrorScaling.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d69fe70b8076a65196169679552bccc48f145364
--- /dev/null
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/PixelRIO_OnTrackErrorScaling.cxx
@@ -0,0 +1,108 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#include "InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h"
+#include "InDetIdentifier/PixelID.h"
+
+const char *PixelRIO_OnTrackErrorScaling::s_names[PixelRIO_OnTrackErrorScaling::kNParamTypes]={
+    "PixPhi Barrel",
+    "PixEta Barrel",
+    "PixPhi Endcap",
+    "PixEta Endcap",
+    "PixPhi IBL",
+    "PixEta IBL"
+  };
+
+namespace {
+  inline double square(double a) { return a*a; }
+
+  void scale2by2( Amg::MatrixX& cov,
+                  const std::vector<double>& phiTrafo,
+                  const std::vector<double>& etaTrafo)
+  {
+    // careful not to change character of error
+    double corr = (std::abs(cov(0,1)) > 1.0e-20)
+      ? cov(0,1)/(cov(0,0)*cov(1,1))
+      : 0.0;
+    cov(0,0) *= square(phiTrafo[0]);
+    cov(0,0) += square(phiTrafo[1]);
+    cov(1,1) *= square(etaTrafo[0]);
+    cov(1,1) += square(etaTrafo[1]);
+    if (corr !=0.0) {
+      cov(0,1) = corr*cov(0,0)*cov(1,1);
+      cov(1,0) = cov(0,1);
+    }
+  }
+}
+
+CLID PixelRIO_OnTrackErrorScaling::clid() const {
+  return ClassID_traits<CondCont<PixelRIO_OnTrackErrorScaling> >::ID();
+}
+
+bool PixelRIO_OnTrackErrorScaling::postProcess() {
+  if (params().size() != kPixIBLPhi && params().size() != kNParamTypes ) {
+      std::stringstream message;
+      message << " PixelRIO_OnTrackErrorScaling: Expecting parameters for";
+      {
+        unsigned int idx=0;
+        for (; idx < kPixIBLPhi; ++idx) {
+          message << " " << s_names[idx];
+        }
+        message << "(" << kPixIBLPhi << ")" << " and ";
+        for (; idx < kNParamTypes; ++idx) {
+          message << " " << s_names[idx];
+        }
+        message << "(" << kNParamTypes << ") for run2.";
+      }
+      message << " But got " << params().size() << ".";
+      throw std::runtime_error( message.str() );
+  }
+  for (unsigned int idx=0; idx <params().size(); ++idx) {
+    if (params()[idx].size()!=2 ) {
+      assert( idx < kNParamTypes);
+      std::stringstream message;
+      message << " PixelRIO_OnTrackErrorScaling: Expected 2 parameters for "  << s_names[idx] << " but got " << params()[idx].size()
+              << ".";
+      throw std::runtime_error( message.str() );
+    }
+  }
+  return true;
+}
+
+Amg::MatrixX PixelRIO_OnTrackErrorScaling::getScaledCovariance(const Amg::MatrixX& cov_input,
+                                                               const PixelID &pixel_id,
+                                                               const Identifier& id) const
+{
+
+  Amg::MatrixX newCov(cov_input);
+  assert( &pixel_id );
+
+  // from SiDetectorElement::isEndcap
+  bool is_endcap = !(pixel_id.is_barrel(id) || pixel_id.is_dbm(id));
+  unsigned int idx=kNParamTypes;
+
+  if (is_endcap) {
+    idx=kPixEndcapPhi;
+  } else {
+
+    // from  PixelDigitizationTool::getReadoutTech
+    int barrel_ec = pixel_id.barrel_ec(id);
+    bool is_ibl = abs(barrel_ec)==4 || pixel_id.eta_module_max(id)>6;
+    if (is_ibl) {
+      idx = kPixIBLPhi;
+    }
+    else {
+      idx = kPixBarrelPhi;
+    }
+  }
+
+  // checked in postprocess
+  assert( params().size()>idx+1);
+  assert(   params()[idx].size()>1
+         && params()[idx+1].size()>1 );
+
+  scale2by2(newCov,params()[idx] /* phi */ ,params()[idx+1] /* eta */);
+  // std::cout << "DEBUG createScaledPixelCovariance region:" << s_names[idx] << " " << cov_input << " -> " << newCov << std::endl;
+  return newCov;
+}
+
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/SCTRIO_OnTrackErrorScaling.cxx b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/SCTRIO_OnTrackErrorScaling.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..1c69e3795334c4e770f5bd73246defdf64eb6a44
--- /dev/null
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/SCTRIO_OnTrackErrorScaling.cxx
@@ -0,0 +1,51 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#include "InDetRIO_OnTrack/SCTRIO_OnTrackErrorScaling.h"
+#include <iostream>
+
+const char *SCTRIO_OnTrackErrorScaling::s_names[SCTRIO_OnTrackErrorScaling::kNParamTypes]={
+    "SCT Barrel",
+    "SCT Endcap"
+  };
+
+namespace {
+  inline double square(double a) { return a*a; }
+}
+
+CLID SCTRIO_OnTrackErrorScaling::clid() const {
+  return ClassID_traits<CondCont<SCTRIO_OnTrackErrorScaling> >::ID();
+}
+
+bool SCTRIO_OnTrackErrorScaling::postProcess() {
+  checkParameters("SCTRIO_OnTrackErrorScaling", kNParamTypes, s_names, 2);
+  return true;
+}
+
+Amg::MatrixX SCTRIO_OnTrackErrorScaling::getScaledCovariance(const Amg::MatrixX& cov_input,
+                                                             bool is_endcap,
+                                                             double sinLocalAngle) const
+{
+  Amg::MatrixX newCov(cov_input);
+  if (is_endcap && newCov.rows() > 1) {
+    double Sn      = sinLocalAngle;
+    double Sn2     = square(Sn);
+    double Cs2     = (1.-Sn)*(1.+Sn);
+    double SC      = Sn*sqrt(Cs2);
+    double a       = params()[kEndcap][0];
+    double b       = params()[kEndcap][1];
+    double dV0     = (Cs2*newCov(0,0)+Sn2*newCov(1,1)
+                      +2.*SC*newCov(1,0))*(square(a)-1.) + square(b);
+    newCov(0,0)+= (Cs2*dV0);
+    newCov(1,0)+= (SC *dV0);
+    newCov(0,1) = newCov(1,0);
+    newCov(1,1)+= (Sn2*dV0);
+  } else {
+    double a = (is_endcap) ? params()[kEndcap][0] : params()[kBarrel][0];
+    double b = (is_endcap) ? params()[kEndcap][1] : params()[kBarrel][1];
+    newCov(0,0) *= square(a);
+    newCov(0,0) += square(b);
+  }
+  //std::cout << "DEBUG createScaledSctCovariance endcap:" << is_endcap << " angle=" << sinLocalAngle  << " " << cov_input << " -> " << newCov << std::endl;
+  return newCov;
+}
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/TRTRIO_OnTrackErrorScaling.cxx b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/TRTRIO_OnTrackErrorScaling.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..95362b0fca81e9795c52f4294489ca242a61343e
--- /dev/null
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/TRTRIO_OnTrackErrorScaling.cxx
@@ -0,0 +1,63 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#include "InDetRIO_OnTrack/TRTRIO_OnTrackErrorScaling.h"
+#include <iostream>
+
+const char *TRTRIO_OnTrackErrorScaling::s_names[TRTRIO_OnTrackErrorScaling::kNParamTypes]={
+    "TRT Barrel",
+    "TRT Endcap"
+  };
+
+namespace {
+  inline double square(double a) { return a*a; }
+}
+
+CLID TRTRIO_OnTrackErrorScaling::clid() const {
+  return ClassID_traits<CondCont<TRTRIO_OnTrackErrorScaling> >::ID();
+}
+
+bool TRTRIO_OnTrackErrorScaling::postProcess() {
+  if (params().size() != kNParamTypes ) {
+      std::stringstream message;
+      message << " TRTRIO_OnTrackErrorScaling: Expecting parameters for et least 2 parameters for";
+      for (unsigned int idx=0; idx < kNParamTypes; ++idx) {
+        message << " " << s_names[idx];
+      }
+      message << "(" << kNParamTypes << ") for run2.";
+      message << " But got " << params().size() << ".";
+      throw std::runtime_error( message.str() );
+  }
+  for (unsigned int idx=0; idx<params().size(); ++idx) {
+    if (params()[idx].size() != 3) {
+      if (params()[idx].size() == 2) {
+        params()[idx].push_back(0.);
+      }
+      else {
+        assert( idx < kNParamTypes );
+        std::stringstream message;
+        message << " TRTRIO_OnTrackErrorScaling: Expected 2 or 3 parameters for "  << s_names[idx] << " but got " << params()[idx].size()
+                << ".";
+        throw std::runtime_error( message.str() );
+      }
+    }
+  }
+  return true;
+}
+
+Amg::MatrixX TRTRIO_OnTrackErrorScaling::getScaledCovariance(const Amg::MatrixX& cov_input,
+                                                             bool is_endcap,
+                                                             double mu) const
+{
+  Amg::MatrixX newCov(cov_input);
+  double a = (is_endcap) ? params()[kEndcap][0] : params()[kBarrel][0];
+  double b = (is_endcap) ? params()[kEndcap][1] : params()[kBarrel][1];
+  double c = (is_endcap) ? params()[kEndcap][2] : params()[kBarrel][2];
+  newCov(0,0) *= square(a);
+  newCov(0,0) += square(b);
+  newCov(0,0) *= (1. + mu * c);
+  // std::cout << "DEBUG createScaledTrtCovariance endcap:" << is_endcap << " mu=" << mu  << " " << cov_input << " -> " << newCov << std::endl;
+  return newCov;
+}
+
+
diff --git a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/CMakeLists.txt b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/CMakeLists.txt
index 35cd641b82d084119c5cc2bcfad35486ea46b9dd..a6ec92073a6a955047ec4217a2b38516f1ca2ff5 100644
--- a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/CMakeLists.txt
+++ b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/CMakeLists.txt
@@ -7,7 +7,7 @@ atlas_subdir( SiClusterOnTrackTool )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
-                          Control/AthenaBaseComps
+                          Control/AthenaBaseComps
                           Database/AthenaPOOL/AthenaPoolUtilities
                           DetectorDescription/GeoPrimitives
                           GaudiKernel
@@ -16,10 +16,11 @@ atlas_depends_on_subdirs( PUBLIC
                           InnerDetector/InDetRecEvent/InDetPrepRawData
                           InnerDetector/InDetRecEvent/InDetRIO_OnTrack
                           Tracking/TrkEvent/TrkParameters
-                          Tracking/TrkTools/TrkToolInterfaces
+                          Tracking/TrkTools/TrkToolInterfaces
                           Tracking/TrkTools/TrkAmbiguityProcessor
-                          PRIVATE
+                          Tracking/TrkEvent/TrkRIO_OnTrack
                           Control/StoreGate
+                          PRIVATE
                           Event/EventPrimitives
                           InnerDetector/InDetConditions/PixelConditionsServices
                           InnerDetector/InDetConditions/PixelConditionsTools
@@ -37,7 +38,7 @@ atlas_add_component( SiClusterOnTrackTool
                      src/*.cxx
                      src/components/*.cxx
                      INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps AthenaPoolUtilities GeoPrimitives GaudiKernel InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkAmbiguityProcessorLib StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry SiClusterizationToolLib TrkSurfaces )
+                     LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps AthenaPoolUtilities GeoPrimitives GaudiKernel InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkAmbiguityProcessorLib  StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry SiClusterizationToolLib TrkSurfaces TrkRIO_OnTrack)
 
 # Install files from the package:
 atlas_install_headers( SiClusterOnTrackTool )
diff --git a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h
index 64fc07a87f0ad9834c1a90a9d145ece5f4d07e3c..b3e979eebc764f8ca078eaf912d4c5a921d787ee 100755
--- a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h
+++ b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h
@@ -18,6 +18,7 @@
 
 
 #include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
+#include "InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h"
 /** The following cannot be fwd declared for interesting reason; the return type of
  * 'correct' is InDet::PixelClusterOnTrack* here, but in the baseclass is 
  * Trk::RIO_OnTrack*. This works if the inheritance is known, but fwd declaration results
@@ -33,12 +34,12 @@
 #include "TrkParameters/TrackParameters.h"
 #include "GeoPrimitives/GeoPrimitives.h"
 #include "TrkAmbiguityProcessor/dRMap.h"
+
+#include "AthenaPoolUtilities/CondAttrListCollection.h"
+#include "StoreGate/ReadCondHandleKey.h"
 class PixelID;
 class IPixelOfflineCalibSvc;
 class IModuleDistortionsTool;
-namespace Trk{
-  class IRIO_OnTrackErrorScalingTool;
-}
 
 class StoreGateSvc;
 class IIBLParameterSvc;
@@ -102,22 +103,21 @@ public:
   virtual const InDet::PixelClusterOnTrack* correct(const Trk::PrepRawData&,
                                                     const Trk::TrackParameters&) const override;
 
-  virtual const InDet::PixelClusterOnTrack* correctDefault(const Trk::PrepRawData&, 
+  virtual const InDet::PixelClusterOnTrack* correctDefault(const Trk::PrepRawData&,
                                                            const Trk::TrackParameters&) const;
 
   virtual const InDet::PixelClusterOnTrack* correctNN(const Trk::PrepRawData&, const Trk::TrackParameters&) const;
-	
-  virtual bool getErrorsDefaultAmbi( const InDet::PixelCluster*, const Trk::TrackParameters&, 
+  virtual bool getErrorsDefaultAmbi( const InDet::PixelCluster*, const Trk::TrackParameters&,
+                           Amg::Vector2D&,  Amg::MatrixX&) const;
+
+  virtual bool getErrorsTIDE_Ambi( const InDet::PixelCluster*, const Trk::TrackParameters&,
                            Amg::Vector2D&,  Amg::MatrixX&) const;
-													 
-	virtual bool getErrorsTIDE_Ambi( const InDet::PixelCluster*, const Trk::TrackParameters&,  
-                        Amg::Vector2D&,  Amg::MatrixX&) const;
 
   virtual const InDet::PixelClusterOnTrack* correct
     (const Trk::PrepRawData&, const Trk::TrackParameters&, 
      const InDet::PixelClusterStrategy) const;
 
-     
+
   ///////////////////////////////////////////////////////////////////
   // Private methods:
   ///////////////////////////////////////////////////////////////////
@@ -138,9 +138,14 @@ public:
   ///////////////////////////////////////////////////////////////////
 
   ToolHandle<IModuleDistortionsTool>            m_pixDistoTool    ;
-  ToolHandle<Trk::IRIO_OnTrackErrorScalingTool> m_errorScalingTool;
   ServiceHandle<IPixelOfflineCalibSvc>          m_calibSvc        ;
   StoreGateSvc*                                 m_detStore        ;
+
+  //  SG::ReadCondHandleKey<PixelRIO_OnTrackErrorScaling> m_pixelErrorScalingKey
+  //    {this,"PixelErrorScalingKey", "/Indet/TrkErrorScalingPixel", "Key for pixel error scaling conditions data."};
+  SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_pixelErrorScalingKey
+    {this,"PixelErrorScalingKey", "/Indet/TrkErrorScalingPixel", "Key for pixel error scaling conditions data."};
+
   /* ME: Test histos have nothing to do with production code, use a flag
     IHistogram1D* m_h_Resx;
     IHistogram1D* m_h_Resy;
@@ -154,7 +159,6 @@ public:
 
   //! toolhandle for central error scaling
   //! flag storing if errors need scaling or should be kept nominal
-  bool                               m_scalePixelCov     ;
   bool                               m_disableDistortions;
   bool                               m_rel13like         ;
   int                                m_positionStrategy  ;
@@ -179,8 +183,8 @@ public:
   /** Enable NN based calibration (do only if NN calibration is applied) **/
   mutable bool                      m_applyNNcorrection;
   mutable bool                      m_applydRcorrection;
-  bool				    m_NNIBLcorrection;
-  bool				    m_IBLAbsent;
+  bool                              m_NNIBLcorrection;
+  bool                              m_IBLAbsent;
   
   /** NN clusterizationi factory for NN based positions and errors **/
   ToolHandle<NnClusterizationFactory>                   m_NnClusterizationFactory;
@@ -193,8 +197,7 @@ public:
   
   bool                                                  m_doNotRecalibrateNN;
   bool                                                  m_noNNandBroadErrors;
-	
-	/** Enable different treatment of  cluster errors based on NN information (do only if TIDE ambi is run) **/
+       /** Enable different treatment of  cluster errors based on NN information (do only if TIDE ambi is run) **/
   bool                      m_usingTIDE_Ambi;
   SG::ReadHandleKey<InDet::PixelGangedClusterAmbiguities>    m_splitClusterHandle; 
   mutable std::vector< std::vector<float> > m_fX, m_fY, m_fB, m_fC, m_fD;
diff --git a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/SCT_ClusterOnTrackTool.h b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/SCT_ClusterOnTrackTool.h
index 3ebadd3603f88819dc1fbb65e7b6ae19e67d94a6..b877b3b21f3dc28e99c502bc4693554e3ab8c16e 100755
--- a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/SCT_ClusterOnTrackTool.h
+++ b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/SCT_ClusterOnTrackTool.h
@@ -18,7 +18,7 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
+#include "InDetRIO_OnTrack/SCTRIO_OnTrackErrorScaling.h"
 #include "TrkParameters/TrackParameters.h"
 #include "InDetRIO_OnTrack/SCT_ClusterOnTrack.h"
 #include "SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h"
@@ -91,7 +91,11 @@ public:
   ///////////////////////////////////////////////////////////////////
 
    //! toolhandle for central error scaling
-   ToolHandle< Trk::IRIO_OnTrackErrorScalingTool > m_errorScalingTool;
+  //   SG::ReadCondHandleKey<SCTRIO_OnTrackErrorScaling> m_sctErrorScalingKey
+  //     {this,"SCTErrorScalingKey", "/Indet/TrkErrorScalingSCT", "Key for SCT error scaling conditions data."};
+   SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_sctErrorScalingKey
+     {this,"SCTErrorScalingKey", "/Indet/TrkErrorScalingSCT", "Key for SCT error scaling conditions data."};
+
    ToolHandle<ISCT_ModuleDistortionsTool> m_distortionsTool;
    ToolHandle<ISiLorentzAngleTool> m_lorentzAngleTool{this, "LorentzAngleTool", "SiLorentzAngleTool", "Tool to retreive Lorentz angle"};
    //! flag storing if errors need scaling or should be kept nominal
diff --git a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx
index 0f43976e48eb74119ec9f53d8bb348883a00edb5..9914b2dc842b3b5fb745ba1c43ddf0ccee459c86 100755
--- a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx
+++ b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx
@@ -13,7 +13,6 @@
 ///////////////////////////////////////////////////////////////////
 
 #include "SiClusterOnTrackTool/PixelClusterOnTrackTool.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
 #include "InDetReadoutGeometry/SiDetectorManager.h"
 #include "InDetReadoutGeometry/PixelModuleDesign.h"
 #include "InDetIdentifier/PixelID.h"
@@ -31,13 +30,16 @@
 #include "CoralBase/Attribute.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
+#include "StoreGate/ReadCondHandle.h"
 #include <cmath>
+#include "TrkRIO_OnTrack/check_cast.h"
 using CLHEP::mm;
 using CLHEP::micrometer;
 
 //clustermap is most likely to be removed at later date
 #define __clustermap
 
+
 ///////////////////////////////////////////////////////////////////
 // Constructor
 ///////////////////////////////////////////////////////////////////
@@ -70,15 +72,12 @@ namespace
   static double TOPHAT_SIGMA = 1. / std::sqrt(12.);
 }
 
-
 InDet::PixelClusterOnTrackTool::PixelClusterOnTrackTool
   (const std::string &t, const std::string &n, const IInterface *p) :
   ::AthAlgTool(t, n, p),
   m_pixDistoTool("PixelDistortionsTool", this),
-  m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool", this),
   m_calibSvc("PixelOfflineCalibSvc", n),
   m_detStore(nullptr),
-  m_scalePixelCov(false),
   m_disableDistortions(false),
   m_rel13like(false),
   m_pixelid(nullptr),
@@ -97,7 +96,6 @@ InDet::PixelClusterOnTrackTool::PixelClusterOnTrackTool
   m_splitClusterHandle("SplitClusterAmbiguityMap") {
   declareInterface<IRIO_OnTrackCreator>(this);
 
-  declareProperty("ErrorScalingTool", m_errorScalingTool, "The error scaling tool");
   declareProperty("PixelDistortionsTool", m_pixDistoTool, "Tool to retrieve pixel distortions");
   declareProperty("PositionStrategy", m_positionStrategy = 1, "Which calibration of cluster positions");
   declareProperty("ErrorStrategy", m_errorStrategy = 2, "Which calibration of cluster position errors");
@@ -144,13 +142,11 @@ InDet::PixelClusterOnTrackTool::initialize() {
   // get the offline calibration service
   ATH_CHECK( m_calibSvc.retrieve());
   ATH_MSG_DEBUG("Retrieved tool " << m_calibSvc.type());
-  
+
 
   // get the error scaling tool
-  ATH_CHECK(m_errorScalingTool.retrieve());
-  ATH_MSG_DEBUG("Retrieved tool " << m_errorScalingTool);
-  m_scalePixelCov = m_errorScalingTool->needToScalePixel();
-  if (m_scalePixelCov) {
+  if (!m_pixelErrorScalingKey.key().empty()) {
+    ATH_CHECK(m_pixelErrorScalingKey.initialize());
     ATH_MSG_DEBUG("Detected need for scaling Pixel errors.");
   }
 
@@ -326,6 +322,8 @@ InDet::PixelClusterOnTrackTool::correct
   }
 }
 
+
+
 /** The correct method produces a PixelClusterOnTrack using the
  *  measured PixelCluster and the track prediction.
  */
@@ -652,14 +650,10 @@ InDet::PixelClusterOnTrackTool::correctDefault
   ATH_MSG_VERBOSE(" errphi =  " << errphi << " erreta = " << erreta);
 
   // create new copy of error matrix
-  if (m_scalePixelCov) {
-    Amg::MatrixX *newCov = m_errorScalingTool->createScaledPixelCovariance(cov, element->identify());
-    if (!newCov) {
-      ATH_MSG_WARNING("Failed to create scaled error for Pixel");
-      return 0;
-    }
-    cov = *newCov;
-    delete newCov;
+  if (!m_pixelErrorScalingKey.key().empty()) {
+    //SG::ReadCondHandle<PixelRIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    cov = check_cast<PixelRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,  *m_pixelid, element->identify() );
   }
   bool isbroad = (m_errorStrategy == 0) ? true : false;
   return new InDet::PixelClusterOnTrack(pix, locpar, cov, iH, glob, pix->gangedPixel(), isbroad);
@@ -740,16 +734,12 @@ InDet::PixelClusterOnTrackTool::correctNN
     Amg::MatrixX cov = pixelPrepCluster->localCovariance();
 
     // create new copy of error matrix
-    if (m_scalePixelCov) {
-      Amg::MatrixX *newCov = m_errorScalingTool->createScaledPixelCovariance(cov, element->identify());
-      if (!newCov) {
-        ATH_MSG_WARNING("Failed to create scaled error for Pixel");
-        return 0;
-      }
-      cov = *newCov;
-
-      delete newCov;
-    }
+    // @TODO error scaling does not seem to be used
+    // if (!m_pixelErrorScalingKey.key().empty()) {
+    //   SG::ReadCondHandle<PixelRIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    //   SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    //   cov = check_cast<PixelRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,  *m_pixelid, element->identify() );
+    // }
 
     return new InDet::PixelClusterOnTrack(pixelPrepCluster, locpar, cov, iH, glob,
                                           pixelPrepCluster->gangedPixel(), false);
@@ -795,14 +785,10 @@ InDet::PixelClusterOnTrackTool::correctNN
 
   Amg::MatrixX cov = finalerrormatrix;
   // create new copy of error matrix
-  if (m_scalePixelCov) {
-    Amg::MatrixX *newCov = m_errorScalingTool->createScaledPixelCovariance(cov, element->identify());
-    if (!newCov) {
-      ATH_MSG_WARNING("Failed to create scaled error for Pixel");
-      return 0;
-    }
-    //    cov = *newCov;
-    delete newCov;
+  if (!m_pixelErrorScalingKey.key().empty()) {
+    //    SG::ReadCondHandle<PixelRIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    cov = check_cast<PixelRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,  *m_pixelid, element->identify() );
   }
 
   InDetDD::SiLocalPosition centroid = InDetDD::SiLocalPosition(finalposition[1],
diff --git a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/SCT_ClusterOnTrackTool.cxx b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/SCT_ClusterOnTrackTool.cxx
index 27c58bf40a5f9b1f061420b0c657045778a62c90..45d83a9cd5d6cc552354622036b895245ac08904 100755
--- a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/SCT_ClusterOnTrackTool.cxx
+++ b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/SCT_ClusterOnTrackTool.cxx
@@ -17,6 +17,7 @@
 #include "TrkSurfaces/RectangleBounds.h"
 #include "TrkSurfaces/TrapezoidBounds.h"
 #include <cmath>
+#include "TrkRIO_OnTrack/check_cast.h"
 
 using CLHEP::micrometer;
 using CLHEP::deg;
@@ -28,9 +29,7 @@ using CLHEP::deg;
 InDet::SCT_ClusterOnTrackTool::SCT_ClusterOnTrackTool
   (const std::string &t, const std::string &n, const IInterface *p) :
   AthAlgTool(t, n, p),
-  m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool", this),
   m_distortionsTool("SCT_DistortionsTool", this),
-  m_scaleSctCov(false),
   m_option_make2dimBarrelClusters(false),
   m_doDistortions(false),
   m_option_errorStrategy(-1),
@@ -38,8 +37,6 @@ InDet::SCT_ClusterOnTrackTool::SCT_ClusterOnTrackTool
   // declareInterface<SCT_ClusterOnTrackTool>(this);
   declareInterface<IRIO_OnTrackCreator>(this);
 
-  declareProperty("ErrorScalingTool", m_errorScalingTool,
-                  "The toolhandle for central error scaling");
   declareProperty("MakeTwoDimBarrelClusters", m_option_make2dimBarrelClusters,
                   "flag if strip length should be part of the measurement");
   declareProperty("ErrorStrategy", m_option_errorStrategy,
@@ -89,15 +86,10 @@ InDet::SCT_ClusterOnTrackTool::initialize() {
     msg(MSG::INFO) << "SCT cluster positions will be corrected" << endmsg;
   }
 
-  if (m_errorScalingTool.retrieve().isFailure()) {
-    msg(MSG::FATAL) << "Failed to retrieve tool " << m_errorScalingTool << endmsg;
-    return StatusCode::FAILURE;
-  } else {
-    msg(MSG::INFO) << "Retrieved tool " << m_errorScalingTool << endmsg;
-    m_scaleSctCov = m_errorScalingTool->needToScaleSct();
-    if (m_scaleSctCov) {
-      msg(MSG::DEBUG) << "Detected need for scaling SCT errors." << endmsg;
-    }
+  // get the error scaling tool
+  if (!m_sctErrorScalingKey.key().empty()) {
+    ATH_CHECK(m_sctErrorScalingKey.initialize());
+    ATH_MSG_DEBUG("Detected need for scaling sct errors.");
   }
 
   // Get ISCT_ModuleDistortionsTool
@@ -243,26 +235,18 @@ InDet::SCT_ClusterOnTrackTool::correct
       cov(0, 0) = oldcov(0, 0);
     }
 
-    if (m_scaleSctCov) {
-      Amg::MatrixX *newCov = m_errorScalingTool->createScaledSctCovariance(cov, false, 0.0);
-      if (!newCov) {
-        ATH_MSG_WARNING("Failed to create scaled error for SCT");
-        return 0;
-      }
-      cov = *newCov;
-      delete newCov;
+    if (!m_sctErrorScalingKey.key().empty()) {
+      //SG::ReadCondHandle<SCTRIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      cov = check_cast<SCTRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,  false, 0.0);
     }
   }else {                                           // endcap
     locpar = Trk::LocalParameters(SC->localPosition());
-    if (m_scaleSctCov) {
-      Amg::MatrixX *newCov = m_errorScalingTool->createScaledSctCovariance(cov, true,
-                                                                           EL->sinStereoLocal(SC->localPosition()));
-      if (!newCov) {
-        ATH_MSG_WARNING("Failed to create scaled error for SCT");
-        return 0;
-      }
-      cov = *newCov;
-      delete newCov;
+    if (!m_sctErrorScalingKey.key().empty()) {
+      //      SG::ReadCondHandle<SCTRIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      cov = check_cast<SCTRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,   true,
+                                                EL->sinStereoLocal(SC->localPosition()));
     }
     double Sn = EL->sinStereoLocal(SC->localPosition());
     double Sn2 = Sn * Sn;
diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx
index bbe18dc4567f91de7578bfef544f7676bb98c4d9..6ee30ecd056373cd8c9d4bd85b64bd5129acd133 100755
--- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx
+++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/src/TRT_DetElementsRoadMaker_xk.cxx
@@ -1046,7 +1046,7 @@ void InDet::TRT_DetElementsRoadMaker_xk::magneticFieldInit()
   //
   m_zfield = 0.;
 
-  if(pMF && m_fieldprop.magneticFieldMode()!=Trk::NoField) {
+  if(m_fieldprop.magneticFieldMode()!=Trk::NoField) {
     double f[3], p[3] ={10.,10.,0.}; m_fieldService->getFieldZR(p,f);
     m_zfield =  299.7925*f[2];
   }
diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/CMakeLists.txt b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/CMakeLists.txt
index 7579f5a89ecff374f6a0ce90d0d6450438bffbef..98f33bef063bfaf546dd5df670610be4d1805e2c 100644
--- a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/CMakeLists.txt
+++ b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/CMakeLists.txt
@@ -11,6 +11,8 @@ atlas_depends_on_subdirs( PUBLIC
                           GaudiKernel
                           InnerDetector/InDetRecEvent/InDetRIO_OnTrack
                           Tracking/TrkTools/TrkToolInterfaces
+                          Tracking/TrkEvent/TrkRIO_OnTrack
+                          Event/xAOD/xAODEventInfo
                           PRIVATE
                           InnerDetector/InDetDetDescr/InDetReadoutGeometry
                           InnerDetector/InDetRecTools/TRT_DriftFunctionTool
@@ -20,7 +22,7 @@ atlas_depends_on_subdirs( PUBLIC
 atlas_add_component( TRT_DriftCircleOnTrackTool
                      src/*.cxx
                      src/components/*.cxx
-                     LINK_LIBRARIES AthenaBaseComps GaudiKernel InDetRIO_OnTrack TrkToolInterfaces InDetReadoutGeometry TrkEventPrimitives )
+                     LINK_LIBRARIES AthenaBaseComps GaudiKernel InDetRIO_OnTrack TrkRIO_OnTrack TrkToolInterfaces InDetReadoutGeometry TrkEventPrimitives TrkRIO_OnTrack xAODEventInfo)
 
 # Install files from the package:
 atlas_install_headers( TRT_DriftCircleOnTrackTool )
diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackRecalibrateTool.h b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackRecalibrateTool.h
index f5d4055c0478aae9f01ad579ed143b908a99d367..210bf0892f948ae8ca01a3a8ef350fa5ebe0fbea 100755
--- a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackRecalibrateTool.h
+++ b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackRecalibrateTool.h
@@ -15,13 +15,11 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
+#include "InDetRIO_OnTrack/TRTRIO_OnTrackErrorScaling.h"
+#include "xAODEventInfo/EventInfo.h"
 
 class ITRT_DriftFunctionTool;
 
-namespace Trk {
-
-  class IRIO_OnTrackErrorScalingTool;
-}
 
 namespace InDet {
 
@@ -57,10 +55,16 @@ public:
   // Private data:
   ///////////////////////////////////////////////////////////////////
 
-  ToolHandle<Trk::IRIO_OnTrackCreator>          m_riontrackTube   ;  
+  ToolHandle<Trk::IRIO_OnTrackCreator>          m_riontrackTube   ;
   ToolHandle<ITRT_DriftFunctionTool>            m_drifttool       ;
-  ToolHandle<Trk::IRIO_OnTrackErrorScalingTool> m_errorScalingTool;
-  bool                                          m_scaleTrtCov{}     ;
+
+  SG::ReadHandleKey<xAOD::EventInfo>                m_eventInfoKey
+      {this,"EventInfoKey","EventInfo","Key for xAOD::EventInfo"};
+
+  //  SG::ReadCondHandleKey<TRTRIO_OnTrackErrorScaling> m_trtErrorScalingKey
+  SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_trtErrorScalingKey
+      {this,"TRTErrorScalingKey", "/Indet/TrkErrorScalingTRT", "Key for TRT error scaling conditions data."};
+
   bool                                          m_useToTCorrection{};  //!< Shall the Time over Threshold correction be used?
   double                                        m_scalefactor{}     ; //scale factor for hit uncertainty
 
diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool.h b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool.h
index 35020c32c59405216f2d01906fbd51109b22c9b3..06b3e5a904d006e5622197f03329230f2c013bcf 100755
--- a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool.h
+++ b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool.h
@@ -19,11 +19,8 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
 #include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h"
-
-namespace Trk {
-
-  class IRIO_OnTrackErrorScalingTool;
-}
+#include "InDetRIO_OnTrack/TRTRIO_OnTrackErrorScaling.h"
+#include "xAODEventInfo/EventInfo.h"
 
 namespace InDet {
 
@@ -58,9 +55,14 @@ public:
   ///////////////////////////////////////////////////////////////////
   // Private data:
   ///////////////////////////////////////////////////////////////////
+  SG::ReadHandleKey<xAOD::EventInfo>                m_eventInfoKey
+      {this,"EventInfoKey","EventInfo","Key for xAOD::EventInfo"};
+
+  //  SG::ReadCondHandleKey<TRTRIO_OnTrackErrorScaling> m_trtErrorScalingKey
+  SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_trtErrorScalingKey
+      {this,"TRTErrorScalingKey", "/Indet/TrkErrorScalingTRT", "Key for TRT error scaling conditions data."};
+
 
-  ToolHandle<Trk::IRIO_OnTrackErrorScalingTool> m_errorScalingTool  ;
-  bool                                          m_scaleTrtCov       ;
   bool                                          m_useErrorCorrection;
 };
 
diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackRecalibrateTool.cxx b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackRecalibrateTool.cxx
index d08d0ae677d8e7c82c73155b50fbeb839d109ebe..5d5e1db671d464c1bc31cff012aa7dd05778b149 100755
--- a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackRecalibrateTool.cxx
+++ b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackRecalibrateTool.cxx
@@ -13,10 +13,10 @@
 
 #include "TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackRecalibrateTool.h"
 #include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
 #include "TrkEventPrimitives/LocalParameters.h"
 #include "TRT_DriftFunctionTool/ITRT_DriftFunctionTool.h"
 #include "InDetReadoutGeometry/TRT_DetectorManager.h"
+#include "TrkRIO_OnTrack/check_cast.h"
 
 
 ///////////////////////////////////////////////////////////////////
@@ -28,17 +28,14 @@ InDet::TRT_DriftCircleOnTrackRecalibrateTool::TRT_DriftCircleOnTrackRecalibrateT
   : AthAlgTool(ty,na,pa),
     m_riontrackTube("InDet::TRT_DriftCircleOnTrackNoDriftTimeTool/TRT_DriftCircleOnTrackNoDriftTimeTool"),
     m_drifttool("TRT_DriftFunctionTool"),
-    m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool"),
     m_useToTCorrection(false),
     m_scalefactor(2.)
-    
 {
   declareInterface<IRIO_OnTrackCreator>(this);
   declareProperty("RIOonTrackToolTube",   m_riontrackTube  );
   declareProperty("DriftFunctionTool",    m_drifttool);
-  declareProperty("ErrorScalingTool",     m_errorScalingTool);
   declareProperty("ScaleHitUncertainty",  m_scalefactor    );
-  declareProperty("useDriftTimeToTCorrection",m_useToTCorrection);    
+  declareProperty("useDriftTimeToTCorrection",m_useToTCorrection);
 }
 
 ///////////////////////////////////////////////////////////////////
@@ -65,13 +62,12 @@ StatusCode InDet::TRT_DriftCircleOnTrackRecalibrateTool::initialize()
     return StatusCode::FAILURE;
   }
 
-  if ( m_errorScalingTool.retrieve().isFailure() ) {
-    msg(MSG::FATAL) << "Failed to retrieve tool " << m_errorScalingTool << endmsg;
-    return StatusCode::FAILURE;
-  } else {
-    msg(MSG::INFO) << "Retrieved tool " << m_errorScalingTool << endmsg;
-    m_scaleTrtCov   = m_errorScalingTool->needToScaleTrt();
-    if (m_scaleTrtCov) msg(MSG::DEBUG) << "Detected need for scaling TRT errors." << endmsg;
+  if (!m_trtErrorScalingKey.key().empty()) {
+    ATH_CHECK(m_trtErrorScalingKey.initialize());
+    ATH_MSG_DEBUG("Detected need for scaling trt errors.");
+  }
+  if (!m_eventInfoKey.key().empty()) {
+    ATH_CHECK(m_eventInfoKey.initialize());
   }
 
   return sc;
@@ -140,21 +136,27 @@ const Trk::RIO_OnTrack* InDet::TRT_DriftCircleOnTrackRecalibrateTool::correct
     double sl = pE->strawLength()*.5;  
     if     (predictedLocZ > sl) predictedLocZ = sl;
     else if(predictedLocZ <-sl) predictedLocZ =-sl;
-   
+
 
     double escale2=error*error/DC->localCovariance()(Trk::driftRadius,Trk::driftRadius);
-    Amg::MatrixX cov(DC->localCovariance()*escale2); 
+    Amg::MatrixX cov(DC->localCovariance()*escale2);
+
+    if (!m_trtErrorScalingKey.key().empty()) {
+
+      SG::ReadHandle< xAOD::EventInfo>  eventInfo (m_eventInfoKey);
+      double mu;
+      if (!eventInfo.isValid()) {
+        ATH_MSG_ERROR("Cant retrieve EventInfo"); 
+        mu = 0.;
+      } else {
+        mu = eventInfo->averageInteractionsPerCrossing();
+      }
 
-    if(m_scaleTrtCov) {
       bool endcap = false;
       if(dynamic_cast<const InDetDD::TRT_EndcapElement*>(pE)) endcap = true;
-      Amg::MatrixX* newCov = m_errorScalingTool->createScaledTrtCovariance(cov,endcap);
-      if( !newCov ) {
-	ATH_MSG_WARNING("Failed to create scaled error for SCT");
-	return 0;
-      }
-      cov = *newCov;
-      delete newCov;
+      // SG::ReadCondHandle<TRTRIO_OnTrackErrorScaling> error_scaling( m_trtErrorScalingKey );
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_trtErrorScalingKey );
+      cov = check_cast<TRTRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov, endcap, mu);
     }
 
     Trk::DefinedParameter  radius(sign*driftradius,Trk::locX);
diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackTool.cxx b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackTool.cxx
index 8a1682d423915a124a93e0f37b3efeb4e694f8a0..4f888f63829e91ddbfc9c24cf9a9e896c12246d0 100755
--- a/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackTool.cxx
+++ b/InnerDetector/InDetRecTools/TRT_DriftCircleOnTrackTool/src/TRT_DriftCircleOnTrackTool.cxx
@@ -14,8 +14,8 @@
 
 #include "TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool.h"
 #include "InDetReadoutGeometry/TRT_DetectorManager.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
 #include "TrkEventPrimitives/LocalParameters.h"
+#include "TrkRIO_OnTrack/check_cast.h"
 
 
 ///////////////////////////////////////////////////////////////////
@@ -25,12 +25,9 @@
 InDet::TRT_DriftCircleOnTrackTool::TRT_DriftCircleOnTrackTool
 (const std::string& ty,const std::string& na,const IInterface* pa)
   : AthAlgTool(ty,na,pa),
-    m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool"),
-    m_scaleTrtCov(false),
     m_useErrorCorrection(false)
 {
   declareInterface<IRIO_OnTrackCreator>(this);
-  declareProperty("ErrorScalingTool",m_errorScalingTool);
   declareProperty("UseErrorCorrection",m_useErrorCorrection);
 }
 
@@ -48,15 +45,13 @@ StatusCode InDet::TRT_DriftCircleOnTrackTool::initialize()
 {
   StatusCode sc = AlgTool::initialize(); 
 
-  // get error scaling tool
-  //
-  if ( m_errorScalingTool.retrieve().isFailure() ) {
-    msg(MSG::FATAL) << "Failed to retrieve tool " << m_errorScalingTool << endmsg;
-    return StatusCode::FAILURE;
-  } else {
-    msg(MSG::INFO) << "Retrieved tool " << m_errorScalingTool << endmsg;
-    m_scaleTrtCov   = m_errorScalingTool->needToScaleTrt();
-    if (m_scaleTrtCov) msg(MSG::DEBUG) << "Detected need for scaling TRT errors." << endmsg;
+  // get the error scaling tool
+  if (!m_trtErrorScalingKey.key().empty()) {
+    ATH_CHECK(m_trtErrorScalingKey.initialize());
+    ATH_MSG_DEBUG("Detected need for scaling trt errors.");
+  }
+  if (!m_eventInfoKey.key().empty()){
+    ATH_CHECK(m_eventInfoKey.initialize());
   }
 
   return sc;
@@ -112,22 +107,28 @@ const InDet::TRT_DriftCircleOnTrack* InDet::TRT_DriftCircleOnTrackTool::correct
 
   // TRT_DriftCircleOnTrack production
   //
-  Amg::MatrixX cov; 
-  if(!m_scaleTrtCov) {
+  Amg::MatrixX cov;
+  if (m_trtErrorScalingKey.key().empty()) {
     cov = DC->localCovariance();
   } else             {
+
+    SG::ReadHandle< xAOD::EventInfo>  eventInfo (m_eventInfoKey);
+    double mu;
+    if (!eventInfo.isValid()) {
+      ATH_MSG_ERROR("Cant retrieve EventInfo"); 
+      mu = 0.;
+    } else {
+      mu = eventInfo->averageInteractionsPerCrossing();
+    }
+
     bool endcap = false;
     if(dynamic_cast<const InDetDD::TRT_EndcapElement*>(pE)) endcap = true;
-    Amg::MatrixX* newCov = m_errorScalingTool->createScaledTrtCovariance
-      (DC->localCovariance(),endcap);
-    if( !newCov ) {
-      ATH_MSG_WARNING("Failed to create scaled error for SCT");
-      return 0;
-    }
-    cov = *newCov;
-    delete newCov;
+    //    SG::ReadCondHandle<TRTRIO_OnTrackErrorScaling> error_scaling( m_trtErrorScalingKey );
+    SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_trtErrorScalingKey );
+    cov = check_cast<TRTRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( DC->localCovariance(),endcap, mu );
   }
 
+
   if(!m_useErrorCorrection || DC->localPosition().x() > .30) {
 
     Trk::DefinedParameter  radius(sign*DC->localPosition().x(),Trk::locX);
diff --git a/InnerDetector/InDetRecTools/TRT_DriftFunctionTool/src/TRT_DriftFunctionTool.cxx b/InnerDetector/InDetRecTools/TRT_DriftFunctionTool/src/TRT_DriftFunctionTool.cxx
index 3f21e77615001dc630d8f489d8efd21337f2f059..939d0bb1b50dc2e8fde50e0f3bd92e5b9dcc99c2 100755
--- a/InnerDetector/InDetRecTools/TRT_DriftFunctionTool/src/TRT_DriftFunctionTool.cxx
+++ b/InnerDetector/InDetRecTools/TRT_DriftFunctionTool/src/TRT_DriftFunctionTool.cxx
@@ -403,11 +403,11 @@ double TRT_DriftFunctionTool::errorOfDriftRadius(double drifttime, Identifier id
     slope = m_TRTCalDbSvc2->driftSlope(drifttime,id,foundslope);
     ATH_MSG_DEBUG ("Overlay TRTCalDbSvc2 gives slope: "<<slope<<", found="<<foundslope);
   }
-  
+
   if(founderr && foundslope) {
     return error+mu*slope;
 //to add condition for old setup
-  } 
+  }
   else if ((founderr && !foundslope)  || (mu<0)) {
 		return error; }
   else {  //interpolate
@@ -425,7 +425,7 @@ double TRT_DriftFunctionTool::errorOfDriftRadius(double drifttime, Identifier id
 }
 
 //
-// returns the time over threshold correction in ns 
+// returns the time over threshold correction in ns
 double TRT_DriftFunctionTool::driftTimeToTCorrection(double tot, Identifier id)
 {
 
@@ -434,69 +434,75 @@ double TRT_DriftFunctionTool::driftTimeToTCorrection(double tot, Identifier id)
     const CondAttrListCollection* atrlistcol;
     SG::ReadCondHandle<CondAttrListCollection> rch(m_ToTkey);
     atrlistcol=*rch;
-    if(!atrlistcol) ATH_MSG_ERROR ("Problem reading condDB ToT correction constants.");
-    int channel;
-    std::ostringstream var_name;
-    for (CondAttrListCollection::const_iterator citr=atrlistcol->begin();
-          citr!=atrlistcol->end();++citr) {
+    if(!atrlistcol) {
+      ATH_MSG_ERROR ("Problem reading condDB ToT correction constants.");
+    } else {
+      int channel;
+      std::ostringstream var_name;
+      for (CondAttrListCollection::const_iterator citr=atrlistcol->begin();
+            citr!=atrlistcol->end();++citr) {
 
-       //get Barrel (1) or Endcap (2)
-       channel = citr->first;
+        //get Barrel (1) or Endcap (2)
+        channel = citr->first;
 
-       if ((channel == 1) || (channel == 2)) {
+        if ((channel == 1) || (channel == 2)) {
           const coral::AttributeList& atrlist = citr->second;
 
-	  for (int i = 0; i < 20; ++i ) {
-       	    var_name << "TRT_ToT_" << std::dec << i;
-	    m_tot_corrections[channel-1][i] = atrlist[var_name.str()].data<float>();
-	    var_name.str("");
-	  }	 
-       } 
+          for (int i = 0; i < 20; ++i ) {
+            var_name << "TRT_ToT_" << std::dec << i;
+            m_tot_corrections[channel-1][i] = atrlist[var_name.str()].data<float>();
+            var_name.str("");
+          }
+        }
+      }
     }
-    m_setupToT=false;	
+    m_setupToT=false;
   }
 
 
   int tot_index = tot/3.125;
   if (tot_index < 0) tot_index = 0;
   if (tot_index > 19) tot_index = 19;
-  
+
   int bec_index = abs(m_trtid->barrel_ec(id)) - 1;
-  
+
   return m_tot_corrections[bec_index][tot_index];
 }
 
-// Returns high threshold correction to the drift time (ns) 
+// Returns high threshold correction to the drift time (ns)
 double TRT_DriftFunctionTool::driftTimeHTCorrection(Identifier id)
 {
 
-  if(m_setupHT) {
+if(m_setupHT) {
     std::lock_guard<std::mutex> lock(m_cacheMutex);
     const CondAttrListCollection* atrlistcol;
     SG::ReadCondHandle<CondAttrListCollection> rch(m_HTkey);
     atrlistcol=*rch;
-    if(!atrlistcol) ATH_MSG_ERROR ("Problem reading condDB HT correction constants.");
-    int channel;
-    std::ostringstream var_name;
-    for (CondAttrListCollection::const_iterator citr=atrlistcol->begin();
-          citr!=atrlistcol->end();++citr) {
-
-	   channel = citr->first;
-	   if (channel == 1) {
-             const coral::AttributeList& atrlist = citr->second;
-
-	     for (int i = 0; i < 2; ++i ) {
-	       var_name << "TRT_HT_" << std::dec << i;
-       	       m_ht_corrections[i] = atrlist[var_name.str()].data<float>();
-	       var_name.str("");
-	     }	 
-	   } 
+    if (!atrlistcol) {
+      ATH_MSG_ERROR ("Problem reading condDB HT correction constants.");
+    } else {
+      int channel;
+      std::ostringstream var_name;
+      for (CondAttrListCollection::const_iterator citr=atrlistcol->begin();
+           citr!=atrlistcol->end();++citr) {
+
+        channel = citr->first;
+        if (channel == 1) {
+          const coral::AttributeList& atrlist = citr->second;
+
+          for (int i = 0; i < 2; ++i ) {
+            var_name << "TRT_HT_" << std::dec << i;
+            m_ht_corrections[i] = atrlist[var_name.str()].data<float>();
+            var_name.str("");
+          }
+        }
+      }
     }
-    m_setupHT=false;	
+    m_setupHT=false;
   }
 
   int bec_index = abs(m_trtid->barrel_ec(id)) - 1;
-  
+
   return m_ht_corrections[bec_index];
 }
 
diff --git a/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTStrawEfficiency.h b/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTStrawEfficiency.h
index c1e2806de4338755abc6d51d3291a78db50bbb1e..b9a89c616ac59fa94b80c854a0b1b4a6cadf6dbb 100644
--- a/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTStrawEfficiency.h
+++ b/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTStrawEfficiency.h
@@ -13,8 +13,10 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
+#include "GaudiKernel/ITHistSvc.h"
 #include "TrkToolInterfaces/IUpdator.h"
 #include "TrigDecisionInterface/ITrigDecisionTool.h"
+#include "TRT_ConditionsServices/ITRT_StrawNeighbourSvc.h"
 
 #include "TrkTrack/TrackCollection.h"
 #include "xAODEventInfo/EventInfo.h"
@@ -31,9 +33,7 @@ namespace Trk
 	class TrackStateOnSurface;
 }
 
-class ITHistSvc;
 class TRT_ID;
-class ITRT_StrawNeighbourSvc;
 
 class TTree;
 
diff --git a/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTTrackHoleSearchTool.h b/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTTrackHoleSearchTool.h
index 42df89eec4916b91a7b7c545ffbabef9108a6a98..5cf65501df1fe2d372ccb65d5dff929f9627f2aa 100644
--- a/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTTrackHoleSearchTool.h
+++ b/InnerDetector/InDetRecTools/TRT_TrackHoleSearch/TRT_TrackHoleSearch/TRTTrackHoleSearchTool.h
@@ -15,6 +15,8 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "TrkToolInterfaces/ITrackHoleSearchTool.h"
 #include "TrkParameters/TrackParameters.h"
+#include "TrkExInterfaces/IExtrapolator.h"
+#include "InDetConditionsSummaryService/IInDetConditionsSvc.h"
 
 #include <string>
 #include <vector>
@@ -22,14 +24,12 @@
 
 namespace Trk
 {
-	class IExtrapolator;
 	class CylinderSurface;
 	class Track;
 	class Surface;
 }
 
 class TRT_ID;
-class IInDetConditionsSvc;
 
 class TRTTrackHoleSearchTool : public Trk::ITrackHoleSearchTool, public AthAlgTool
 {
diff --git a/InnerDetector/InDetSimUtils/TRT_TR_Process/src/TRTPhysicsTool.cxx b/InnerDetector/InDetSimUtils/TRT_TR_Process/src/TRTPhysicsTool.cxx
index 3366632bd4f47f03eeda3ff0b6fc093de2702b4b..d684f5e840e388e2eb1866b7b15f52f577f1530f 100644
--- a/InnerDetector/InDetSimUtils/TRT_TR_Process/src/TRTPhysicsTool.cxx
+++ b/InnerDetector/InDetSimUtils/TRT_TR_Process/src/TRTPhysicsTool.cxx
@@ -20,7 +20,9 @@
 // 18-05-2015 Edoardo Farina
 //-----------------------------------------------------------------------------
 
-#if G4VERSION_NUMBER > 1009
+#if G4VERSION_NUMBER > 1029
+#define PARTICLEITERATOR (this->GetParticleIterator())
+#elif G4VERSION_NUMBER > 1009
 #define PARTICLEITERATOR aParticleIterator
 #else
 #define PARTICLEITERATOR theParticleIterator
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigExtensProcessor/InDetTrigExtensProcessor/InDetTrigExtensProcessor.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigExtensProcessor/InDetTrigExtensProcessor/InDetTrigExtensProcessor.h
index ab6b8e958e7ba41afc668350a94cb2f3d609b84a..d2e81df2530d977f2fc3396d94d0b281388c2606 100755
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigExtensProcessor/InDetTrigExtensProcessor/InDetTrigExtensProcessor.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigExtensProcessor/InDetTrigExtensProcessor/InDetTrigExtensProcessor.h
@@ -28,6 +28,8 @@
 
 #include "TrkTrack/TrackCollection.h"
 #include "TrkTrack/TrackExtensionMap.h"
+#include "TrkFitterInterfaces/ITrackFitter.h"
+#include "TrkToolInterfaces/ITrackScoringTool.h"
 
 // Trigger specific stuff
 #include "TrigInterfaces/FexAlgo.h"
@@ -35,10 +37,6 @@
 
 class StoreGateSvc;
 
-namespace Trk {
-  class ITrackScoringTool;
-  class ITrackFitter;
-}
 
 namespace InDet {
 
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/Pixel_TrgClusterization.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/Pixel_TrgClusterization.h
index edc513dc45becb1b0998f33965c2aae2beec3435..a3ccff268b97012b732499ee60c3601ec862e042 100755
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/Pixel_TrgClusterization.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/Pixel_TrgClusterization.h
@@ -34,6 +34,10 @@
 #include "InDetPrepRawData/PixelClusterContainer.h"
 #include "Identifier/IdentifierHash.h"
 
+#include "PixelConditionsServices/IPixelByteStreamErrorsSvc.h"
+#include "SiClusterizationTool/IPixelClusteringTool.h"
+#include "SiClusterizationTool/PixelGangedAmbiguitiesFinder.h"
+
 
 #include <string>
 
@@ -43,7 +47,6 @@
 
 class IRegSelSvc;
 class TrigTimer;
-class IPixelByteStreamErrorsSvc;
 class PixelID;
 class IROBDataProviderSvc;
 
@@ -53,8 +56,6 @@ namespace InDetDD {
 
 namespace InDet {
   
-  class PixelGangedAmbiguitiesFinder;  
-  class IPixelClusteringTool;
   class ITrigRawDataProviderTool;
   
   class Pixel_TrgClusterization : public HLT::FexAlgo {
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h
index f25caf668569d3817eda3a20e84a1b47f49f028f..306eb520c23d6ae5fbed8dc083f74b93052972a0 100755
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/InDetTrigPrepRawDataFormat/SCT_TrgClusterization.h
@@ -37,30 +37,28 @@
 #include "InDetConditionsSummaryService/IInDetConditionsTool.h"
 
 #include "Identifier/IdentifierHash.h"
+#include "IRegionSelector/IRegSelSvc.h"
+#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h"
+#include "SiClusterizationTool/ISCT_ClusteringTool.h"
+#include "InDetTrigToolInterfaces/ITrigRawDataProviderTool.h"
 
 //typedefs - cannot be declared forward
 #include "InDetPrepRawData/SCT_ClusterContainer.h"
 #include "InDetPrepRawData/SCT_ClusterCollection.h"
 #include "SCT_ConditionsData/SCT_FlaggedCondData.h"
 
-
-class IRegSelSvc;
 class TrigTimer;
 
 class SCT_ID;
 class SCT_ChannelStatusAlg;
 
-class IROBDataProviderSvc;
 
 namespace InDetDD {
   class SiDetectorManager;
 }
 
 namespace InDet {
-  
-  class ISCT_ClusteringTool;
-  class ITrigRawDataProviderTool;
-  
+    
   class SCT_TrgClusterization : public HLT::FexAlgo {
     
     ///////////////////////////////////////////////////////////////////
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h
index ba7c14465d50d1fdd24cd632f70893978f76b691..469455419d46655ca6f4457dcaee5542af169207 100644
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h
@@ -36,7 +36,6 @@ class StoreGateSvc;
 class SCT_NeighboursTable;
 
 namespace InDetDD{
-  class SCT_DetectorManager;
   class PixelDetectorManager;
 }
 
@@ -110,7 +109,6 @@ namespace InDet
     ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator;
     
     
-    const InDetDD::SCT_DetectorManager    *m_SCT_Manager{};
     const InDetDD::PixelDetectorManager   *m_Pixel_Manager{};
 
 
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/src/TrigTrackResidualMonitor.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/src/TrigTrackResidualMonitor.cxx
index ef74b8dd2da251fadfb9d74b65716269478aa575..0c36940b3267f3c2b0627d2820039b47d0ad9947 100644
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/src/TrigTrackResidualMonitor.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/src/TrigTrackResidualMonitor.cxx
@@ -39,7 +39,6 @@
 #include "TrkTrackSummaryTool/TrackSummaryTool.h"
 #include "TrkTrackSummary/TrackSummary.h"
 #include "TrkTrackSummary/MuonTrackSummary.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"
 #include "TrkToolInterfaces/IResidualPullCalculator.h"
 #include "InDetReadoutGeometry/SiDetectorElement.h"
 
@@ -259,15 +258,6 @@ namespace InDet
     m_idHelperSCT = IdHelperSCT;
     
 
-    ///SCT Manager
-    if(detStore->retrieve(m_SCT_Manager, "SCT").isFailure()){
-      msg() << MSG::FATAL   << "Could not get SCT_Manager !" << endmsg;
-    }
-    else{
-      msg() << MSG::DEBUG << "SCT manager found !" << endmsg;
-    }
-    
-    
     // Pixel Manager
     if(detStore->retrieve(m_Pixel_Manager, "Pixel").isFailure()){
       msg() << MSG::FATAL   << "Could not get Pixel_Manager !" << endmsg;
@@ -506,7 +496,10 @@ namespace InDet
                 const Identifier& idbECSCTUB = m_idHelperSCT->wafer_id(hitIdbec);
                 barrelECSCTUB = m_idHelperSCT->barrel_ec(idbECSCTUB);
                 const Trk::TrackStateOnSurface* OtherModuleSideHit(0);
-                const Identifier& OtherModuleSideID = m_SCT_Manager->getDetectorElement(id)->otherSide()->identify();
+                const IdentifierHash waferHash = m_idHelperSCT->wafer_hash(id);
+                IdentifierHash otherSideHash;
+                m_idHelperSCT->get_other_side(waferHash, otherSideHash);
+                const Identifier OtherModuleSideID = m_idHelperSCT->wafer_id(otherSideHash);
                 //const Trk::RIO_OnTrack* hit(0);
         
                 for (const Trk::TrackStateOnSurface* TempTsos : *(*itResTrk)->trackStateOnSurfaces()) {
diff --git a/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder.h b/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder.h
index 440db67b50d7f9b82da4ecb2f21d11ecf4563d31..62b25426d9dd28524166efb586e029181f13c436 100644
--- a/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder.h
+++ b/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder/TRT_TrigStandaloneTrackFinder.h
@@ -17,7 +17,6 @@
 #include "GaudiKernel/ToolHandle.h"
 
 ///Track events
-#include "TrkTrack/Track.h"
 #include "TrkSegment/TrackSegment.h"
 
 ///Track Collection to store the tracks
@@ -33,7 +32,7 @@ namespace InDet {
   /**
   @class TRT_TrigStandaloneTrackFinder
   
-  InDet::TRT_TrigStandaloneTrackFinde is an algorithm which produces tracks
+  InDet::TRT_TrigStandaloneTrackFinder is an algorithm which produces tracks
   from stand-alone TRT segments with no Si extension
   @author Thomas.Koffas@cern.ch     
   */
@@ -60,7 +59,7 @@ namespace InDet {
       HLT::ErrorCode hltFinalize();
 
       //parameters for monitoring
-      int m_nTRTTracks         ; //!< Number of TRT standalone tracks
+      int m_nTRTTracks{}         ; //!< Number of TRT standalone tracks
       //int m_nTrtSeg          ;  //!< Number of TRT segments to be investigated per event
 
       ///////////////////////////////////////////////////////////////////
@@ -76,37 +75,37 @@ namespace InDet {
       /* Private data                                                */
       ///////////////////////////////////////////////////////////////////
      
-      int                                m_outputlevel        ;  //!< Print level for debugging
-      int                                m_nprint             ;
+      int                                m_outputlevel{}        ;  //!< Print level for debugging
+      int                                m_nprint{}             ;
       //int                                m_ntracks            ;  //!< Number of tracks found
 
-      int                                m_minNumDriftCircles ;  //!< Minimum number of drift circles for TRT segment tracks
+      int                                m_minNumDriftCircles{} ;  //!< Minimum number of drift circles for TRT segment tracks
 
-      bool                               m_resetPRD           ;  /** Reset PRD association tool during the sub-detector pattern */
+      bool                               m_resetPRD{}           ;  /** Reset PRD association tool during the sub-detector pattern */
 
-      int                                m_matEffects         ;  //!< Particle hypothesis for track fitting
+      int                                m_matEffects{}         ;  //!< Particle hypothesis for track fitting
 
       //StoreGateSvc*                         m_store_gate    ;  //!< Pointer to store gate 
 
       ToolHandle< ITRT_SegmentToTrackTool > m_segToTrackTool; //!< Segment to track tool
       
-      const Trk::SegmentCollection      *m_Segments         ;  //!< TRT segments to use
+      const Trk::SegmentCollection      *m_Segments{}         ;  //!< TRT segments to use
 
       /**Tracks that will be passed out of AmbiProcessor. 
 	 Recreated anew each time process() is called*/ 
-      TrackCollection* m_finalTracks;
+      TrackCollection* m_finalTracks{};
 
       /** Global Counters for final algorithm statistics */
-      int m_nTrtSeg          ;  //!< Number of TRT segments to be investigated per event
-      int m_nTrtSegGood      ;  //!< Number of TRT segments that will be investigated per event
-      int m_nBckTrk          ;  //!< Total number of TRT segment back tracks found per event
-      int m_nUsedSeg         ;  //!< Total number of TRT segments assigned Si extensions per event
-
-      int m_nTrtSegTotal     ;  //!< Total number of TRT segments to be investigated
-      int m_nTrtSegGoodTotal ;  //!< Total number of TRT segments that will be investigated
-      int m_nBckTrkTotal     ;  //!< Total number of TRT segment back tracks found
-      int m_nUsedSegTotal    ;  //!< Total number of TRT segments assigned Si extensions
-      int m_ntimesInvoked    ;  //!< Keep track how many times the algo was invoked
+      int m_nTrtSeg{}          ;  //!< Number of TRT segments to be investigated per event
+      int m_nTrtSegGood {}     ;  //!< Number of TRT segments that will be investigated per event
+      int m_nBckTrk{}          ;  //!< Total number of TRT segment back tracks found per event
+      int m_nUsedSeg {}        ;  //!< Total number of TRT segments assigned Si extensions per event
+
+      int m_nTrtSegTotal{}     ;  //!< Total number of TRT segments to be investigated
+      int m_nTrtSegGoodTotal{} ;  //!< Total number of TRT segments that will be investigated
+      int m_nBckTrkTotal{}     ;  //!< Total number of TRT segment back tracks found
+      int m_nUsedSegTotal{}    ;  //!< Total number of TRT segments assigned Si extensions
+      int m_ntimesInvoked{}    ;  //!< Keep track how many times the algo was invoked
 
       ///////////////////////////////////////////////////////////////////
       /** Protected methods                                            */
diff --git a/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/src/TRT_TrigStandaloneTrackFinder.cxx b/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/src/TRT_TrigStandaloneTrackFinder.cxx
index 8ceb344c25af4634fd374d4582c13fd0312e529f..57977eead4d9764e5f8e46cc5e788b56a9414dcd 100644
--- a/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/src/TRT_TrigStandaloneTrackFinder.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/TRT_TrigStandaloneTrackFinder/src/TRT_TrigStandaloneTrackFinder.cxx
@@ -17,6 +17,7 @@
 #include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h"
 #include "TrkEventPrimitives/FitQuality.h"
 #include "InDetIdentifier/TRT_ID.h"
+#include "TrkTrack/Track.h"
 #include "TrkTrack/TrackInfo.h"
 
 //Eigen
diff --git a/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg.h b/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg.h
index de221a6b708c88132492bb6eb35ce8064a45154d..54c0be26057c16d00a6353549d36a644899661ea 100755
--- a/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg.h
+++ b/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg/TRT_TrigTrackExtensionAlg.h
@@ -24,9 +24,11 @@
 #ifndef TRT_TRIGTRACKEXTENSIONALG_H
 #define TRT_TRIGTRACKEXTENSIONALG_H
 
-#include <string>
+
 #include "GaudiKernel/ToolHandle.h"
 #include "TrigInterfaces/FexAlgo.h"
+#include <iosfwd>
+#include <string>
 
 class ITRT_TrackExtensionTool;
 class MsgStream;
@@ -69,12 +71,12 @@ namespace InDet {
     //!< Protected data 
     ///////////////////////////////////////////////////////////////////
     
-    int                      m_outputlevel           ;  //!< Print level for debug
-    int                      m_nprint                ;  //!< Kind of  print    
-    int                      m_nTracks               ;  //!< Number input  tracks
-    int                      m_nTracksExtended       ;  //!< Number output tracks
-    int                      m_nTracksTotal          ;  // Number input  tracks
-    int                      m_nTracksExtendedTotal  ;  // Number output tracks
+    int                      m_outputlevel{}           ;  //!< Print level for debug
+    int                      m_nprint{}                ;  //!< Kind of  print    
+    int                      m_nTracks{}               ;  //!< Number input  tracks
+    int                      m_nTracksExtended{}       ;  //!< Number output tracks
+    int                      m_nTracksTotal{}          ;  // Number input  tracks
+    int                      m_nTracksExtendedTotal{}  ;  // Number output tracks
     ToolHandle<ITRT_TrackExtensionTool> m_trtExtension ;  // TRT track extension tool
         
     ///////////////////////////////////////////////////////////////////
diff --git a/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder.h b/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder.h
index 0f21cb864c9cef121099545e2bb0623040580fc5..bc4989c817382f591221cf11c2c114fc00b12911 100755
--- a/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder.h
+++ b/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder.h
@@ -10,8 +10,8 @@
 #include "InDetRecToolInterfaces/ITRT_TrackSegmentsMaker.h"
 
 //!< Trigger specific stuff
-#include "TrigTimeAlgs/TrigTimerSvc.h"
 #include "TrigInterfaces/FexAlgo.h"
+#include <iosfwd>
 
 class IRegSelSvc;
 class TrigTimer;
@@ -59,10 +59,10 @@ namespace InDet {
       // Protected data 
       ///////////////////////////////////////////////////////////////////
      
-      int                         m_outputlevel     ; // Print level for debug
-      int                         m_nprint          ; // Kind of  print
-      int                         m_nsegments       ; // Number segments
-      int                         m_nsegmentsTotal   ; // Number segments
+      int                         m_outputlevel{}     ; // Print level for debug
+      int                         m_nprint {}         ; // Kind of  print
+      int                         m_nsegments{}       ; // Number segments
+      int                         m_nsegmentsTotal{}   ; // Number segments
       ToolHandle<ITRT_TrackSegmentsMaker> m_segmentsMakerTool; // TRT segments maker
 
 
@@ -75,15 +75,15 @@ namespace InDet {
 
       //!< Trigger part
       ServiceHandle<IRegSelSvc>     m_regionSelector;     //!< region selector service
-      double                  m_etaHalfWidth;   //!< ROI half-width in eta.
-      double                  m_phiHalfWidth;   //!< ROI half-width in phi.
-      bool m_doFullScan; 			//!< supports FullScan mode
+      double                  m_etaHalfWidth{};   //!< ROI half-width in eta.
+      double                  m_phiHalfWidth{};   //!< ROI half-width in phi.
+      bool m_doFullScan{}; 			//!< supports FullScan mode
 
       //!< Timing
-      TrigTimer     *m_timerRegSel;
-      TrigTimer     *m_timerFind;
-      TrigTimer     *m_timerSegMaker;
-      TrigTimer     *m_timerMainLoop;
+      TrigTimer     *m_timerRegSel{};
+      TrigTimer     *m_timerFind{};
+      TrigTimer     *m_timerSegMaker{};
+      TrigTimer     *m_timerMainLoop{};
     };
   MsgStream&    operator << (MsgStream&   ,const TRT_TrigTrackSegmentsFinder&);
   std::ostream& operator << (std::ostream&,const TRT_TrigTrackSegmentsFinder&); 
diff --git a/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/src/TRT_TrigTrackSegmentsFinder.cxx b/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/src/TRT_TrigTrackSegmentsFinder.cxx
index 7132b101c070ff2ea386ed446cef48e8acfb3e85..1784d7f2c2a9ed76e1f3d6c9374e9bdd24e7edbb 100755
--- a/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/src/TRT_TrigTrackSegmentsFinder.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/TRT_TrigTrackSegmentsFinder/src/TRT_TrigTrackSegmentsFinder.cxx
@@ -16,10 +16,12 @@
 
 #include "TRT_TrigTrackSegmentsFinder/TRT_TrigTrackSegmentsFinder.h"
 #include "TrkSegment/SegmentCollection.h"
+#include "TrigTimeAlgs/TrigTimerSvc.h"
 
 //Trigger stuff
 #include "TrigSteeringEvent/TrigRoiDescriptor.h"
 #include "IRegionSelector/IRegSelSvc.h"
+#include <ostream>
 
 
 ///////////////////////////////////////////////////////////////////
diff --git a/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectoryManipulatorID.h b/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectoryManipulatorID.h
index a3e1c3860115c02a0ebf05328fd86ead1e48eef6..118323396fe615800407c0ded66f4482bba17e70 100644
--- a/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectoryManipulatorID.h
+++ b/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectoryManipulatorID.h
@@ -42,7 +42,7 @@ namespace InDet {
 
     private:
         /**ID pixel helper*/
-        const AtlasDetectorID* m_atlasId;
+        const AtlasDetectorID* m_atlasId{};
     };
 }
 
diff --git a/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectorySelectorID.h b/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectorySelectorID.h
index 116f5b7fc825138d5fd050f250bc5e942cd37889..8f1ca4a530549cac75a723d77590f585c3d8969e 100644
--- a/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectorySelectorID.h
+++ b/InnerDetector/InDetTruth/InDetTruthTools/InDetTruthTools/PRD_TruthTrajectorySelectorID.h
@@ -11,12 +11,7 @@
 
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "TrkTruthTrackInterfaces/IPRD_TruthTrajectorySelector.h"
-
-//#include "EventPrimitives/EventPrimitives.h"
-//#include "TrkEventPrimitives/LocalPosition.h"
-//#include "TrkEventPrimitives/GlobalPosition.h"
 #include "TrkEventPrimitives/LocalParameters.h"
-//#include "CLHEP/Geometry/Transform3D.h"
 
 class ThreePointCircle {
     
@@ -32,6 +27,12 @@ class ThreePointCircle {
 		/** Translation */
         const Amg::Translation3D* frameTranslation() const;
         
+        //assignment is not safe unless a deep copy is made, so delete
+        ThreePointCircle & operator = (const ThreePointCircle &) = delete;
+        //copy is not safe unless a deep copy is made, so delete
+        ThreePointCircle(const ThreePointCircle &) = delete;
+      
+        
     	/* d0, z0, eta, phi, pt */
 		double d0() const;
 		double z0() const;
@@ -42,11 +43,11 @@ class ThreePointCircle {
 		
 	private :
 		void constructCircle(const Amg::Vector3D&, const Amg::Vector3D&, const Amg::Vector3D&);
-	    // the reference point
-        Amg::Translation3D*     m_translation;
-	    // the parameters
-		double 				m_d0, m_z0, m_phi0, m_eta, m_pt;
-		double              m_radius;
+	  // the reference point
+    Amg::Translation3D*     m_translation;
+	  // the parameters
+		double 	m_d0, m_z0, m_phi0, m_eta, m_pt;
+		double  m_radius{};
 		Amg::Vector2D 	m_center;
 	    
 };
@@ -92,7 +93,7 @@ namespace InDet {
     
     private:
         /**ID pixel helper*/
-        const AtlasDetectorID* m_atlasId;
+        const AtlasDetectorID* m_atlasId{};
     };
 }
 
diff --git a/InnerDetector/InDetTruth/InDetTruthTools/src/PRD_TruthTrajectorySelectorID.cxx b/InnerDetector/InDetTruth/InDetTruthTools/src/PRD_TruthTrajectorySelectorID.cxx
index 3a1f68fe5c99b4524a16865089be51c1705fd9cd..348417f7294e870d9e106295a9d81f53deedb521 100644
--- a/InnerDetector/InDetTruth/InDetTruthTools/src/PRD_TruthTrajectorySelectorID.cxx
+++ b/InnerDetector/InDetTruth/InDetTruthTools/src/PRD_TruthTrajectorySelectorID.cxx
@@ -14,8 +14,7 @@
 #include "AtlasDetDescr/AtlasDetectorID.h"
 // HepMC
 #include "HepMC/GenParticle.h"
-//for ThreePointCircle
-//#include "TrkEventPrimitives/GlobalDirection.h"
+
 
 InDet::PRD_TruthTrajectorySelectorID::PRD_TruthTrajectorySelectorID(const std::string& t, const std::string& n, const IInterface* p) :
 AthAlgTool(t,n,p)
@@ -141,11 +140,11 @@ bool InDet::PRD_TruthTrajectorySelectorID::pass( const Trk::PRD_TruthTrajectory
   for ( int i = 0; i  < 3 &&  prdIter != prdIterE; ++ prdIter ){
     if( m_atlasId->is_pixel((*prdIter)->identify()) ){
       const InDet::PixelCluster* pixclus=dynamic_cast<const InDet::PixelCluster*>(*prdIter);
-      pos.push_back (pixclus->globalPosition());
+      if (pixclus) pos.push_back (pixclus->globalPosition());
     }
     else if( m_atlasId->is_sct((*prdIter)->identify()) ){
             const InDet::SCT_Cluster* sctclus=dynamic_cast<const InDet::SCT_Cluster*>(*prdIter);
-            pos.push_back (sctclus->globalPosition());
+            if (sctclus) pos.push_back (sctclus->globalPosition());
     }
     else if( m_atlasId->is_trt((*prdIter)->identify()) ){
             continue;
diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_resITk.h b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_resITk.h
index 577bb8e59dfe54fcf11b988eebcb1c5acc9fc86f..ba1d1bb761b122ca802a9bcd9535d6f868d2b7ca 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_resITk.h
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_resITk.h
@@ -184,16 +184,16 @@ private:
   TH1* m_significance_d0_vs_eta;
   TH1* m_significance_z0_vs_eta;
 
-  TH1* m_fix_qoverpt_res[16];
+  TH1* m_fix_qoverpt_res[16]{};
 
-  TH1* m_fix_qoverptresolutionRMS_vs_eta;
+  TH1* m_fix_qoverptresolutionRMS_vs_eta{};
 
 
-  TH1* m_fix_d0_res[16];
-  TH1* m_fix_d0resolutionRMS_vs_eta;
+  TH1* m_fix_d0_res[16]{};
+  TH1* m_fix_d0resolutionRMS_vs_eta{};
 
-  TH1* m_fix_z0_res[16];
-  TH1* m_fix_z0resolutionRMS_vs_eta;
+  TH1* m_fix_z0_res[16]{};
+  TH1* m_fix_z0resolutionRMS_vs_eta{};
 };
 
 
diff --git a/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/InDetRecStatisticsAlg.h b/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/InDetRecStatisticsAlg.h
index a96af03176f27d91fb06978e4a095d8ef4bb39ce..b4092987bd6624d514014134cfb24b0cefb04d2e 100755
--- a/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/InDetRecStatisticsAlg.h
+++ b/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/InDetRecStatisticsAlg.h
@@ -17,6 +17,12 @@
 #include "HepPDT/ParticleDataTable.hh"
 #include "InDetRecStatistics/TrackStatHelper.h"
 #include "Identifier/Identifier.h"
+#include "TrkToolInterfaces/IPRD_AssociationTool.h"
+#include "TrkToolInterfaces/IResidualPullCalculator.h"
+#include "TrkToolInterfaces/ITrackSelectorTool.h"
+#include "TrkToolInterfaces/ITruthToTrack.h"
+#include "TrkToolInterfaces/IUpdator.h"
+
 #include <vector>
 
 // forward declarations
@@ -31,14 +37,8 @@ class McEventCollection;
 class GenParticle;
 
 namespace Trk {
-  class ITruthToTrack;
   class ITrackSummaryTool;
   class TrackSummary;
-  class IPRD_AssociationTool;
-  class IUpdator;
-  class IResidualPullCalculator;
-  class ITrackSelectorTool;
-   
 }
 
 namespace InDet {
diff --git a/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/TrackStatHelper.h b/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/TrackStatHelper.h
index 470e6f02f27a392b726cca027eb259f023d639a6..f3b300c6cb12a48ec28b820c49e2e69ffd0a570c 100755
--- a/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/TrackStatHelper.h
+++ b/InnerDetector/InDetValidation/InDetRecStatistics/InDetRecStatistics/TrackStatHelper.h
@@ -19,6 +19,9 @@
 #include "TrkTrack/TrackCollection.h"
 #include "HepMC/GenParticle.h"
 #include "GeneratorObjects/HepMcParticleLink.h"
+#include "TrkToolInterfaces/ITrackSummaryTool.h"
+#include "TrkTruthData/TrackTruthCollection.h"
+
 #include <vector>
 #include <string>
 #include <map>
@@ -28,13 +31,6 @@ class PixelID;
 class SCT_ID;
 class AtlasDetectorID;
 class Track;
-class TrackTruthCollection;
-
-namespace Trk
-{
- class ITrackSummaryTool;
-}
-
 
 
 namespace InDet {
diff --git a/InnerDetector/InDetValidation/InDetRecStatistics/src/InDetRecStatisticsAlg.cxx b/InnerDetector/InDetValidation/InDetRecStatistics/src/InDetRecStatisticsAlg.cxx
index 8c1315e00fd935c335989419609e2ab58e90af0e..13055eb31ed951667f3a231376727f2d0f7a7611 100755
--- a/InnerDetector/InDetValidation/InDetRecStatistics/src/InDetRecStatisticsAlg.cxx
+++ b/InnerDetector/InDetValidation/InDetRecStatistics/src/InDetRecStatisticsAlg.cxx
@@ -22,7 +22,7 @@
 #include "CLHEP/Units/SystemOfUnits.h"
 #include <cmath>
 #include <memory>
-#include <iostream>
+#include <ostream>
 
 // Private Helpers
 
@@ -45,7 +45,6 @@
 #include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h"
 #include "TrkTruthData/TrackTruth.h"
 #include "TrkTruthData/TrackTruthCollection.h"
-//#include "TrkTruthToTrack/TruthToTrack.h"
 #include "TrkEventPrimitives/JacobianThetaPToCotThetaPt.h"
 #include "TrkParameters/TrackParameters.h"       //vv
 #include "TrkToolInterfaces/ITrackSummaryTool.h"
@@ -691,6 +690,7 @@ void InDet :: InDetRecStatisticsAlg :: printStatistics() {
   ATH_MSG_INFO("(or for guaranteed latest version: http://atlas-sw.cern.ch/cgi-bin/viewcvs-atlas.cgi/offline/InnerDetector/InDetValidation/InDetRecStatistics/doc/mainpage.h?&view=markup )");
   ATH_MSG_INFO(" ********************************************************************");
   //  if(msgSvc.outputLevel() >= MSG::INFO){
+  const auto prec=std::cout.precision();
   StreamState restore_precision (std::cout);
   std::cout << MSG::INFO 
 	    << std::setiosflags(std::ios::fixed | std::ios::showpoint)  
@@ -835,7 +835,7 @@ void InDet :: InDetRecStatisticsAlg :: printStatistics() {
   }
   ATH_MSG_INFO(" ********** Ending InDetRecStatistics Statistics Table ***********");
   std::cout << s_linestr << std::endl; 
-  
+  std::cout.precision(prec);
 }
 
 
diff --git a/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/InDetTrackClusterAssValidation/TrackClusterAssValidation.h b/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/InDetTrackClusterAssValidation/TrackClusterAssValidation.h
index b35d3abdb4451e48fc27291d6a73942383569ac4..bbc1621cb255b1b4234c58dd87bfd8fab86c5653 100755
--- a/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/InDetTrackClusterAssValidation/TrackClusterAssValidation.h
+++ b/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/InDetTrackClusterAssValidation/TrackClusterAssValidation.h
@@ -6,20 +6,22 @@
 #ifndef TrackClusterAssValidation_H
 #define TrackClusterAssValidation_H
 
-#include <string>
-#include <map>
+
 
 #include "AthenaBaseComps/AthReentrantAlgorithm.h"
 #include "TrkSpacePoint/SpacePointContainer.h"
 #include "TrkSpacePoint/SpacePointOverlapCollection.h"
 #include "InDetPrepRawData/SiClusterContainer.h"
 #include "InDetPrepRawData/TRT_DriftCircleContainer.h"
-#include "HepMC/GenParticle.h"
-#include "HepPDT/ParticleDataTable.hh"
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
 #include "StoreGate/ReadHandleKey.h"
-
 #include "TrkTrack/TrackCollection.h"
+#include <string>
+#include <map>
+
+namespace HepPDT{
+  class ParticleDataTable;
+}
 
 namespace InDet {
 
@@ -33,18 +35,22 @@ namespace InDet {
       // Public methods:
       ///////////////////////////////////////////////////////////////////
     public:
-
+      ///default c'tor
       Barcode()  {};
-      Barcode(const Barcode&);
-      Barcode(int,int);
+      ///copy c'tor defaulted
+      Barcode(const Barcode&) = default;
+      ///c'tor 
+      Barcode(int charge,int rapidity);
+      ///destructor does nothing
       ~Barcode() {};
-      Barcode& operator = (const Barcode&);
+      ///assignment defaulted
+      Barcode& operator = (const Barcode&) = default;
+      ///getters
       int barcode () const {return abs(m_barcharge);}
-      int charge  () const {if(m_barcharge<0) return -1; if(m_barcharge>0) return 1; return 0;}
+      int charge  () const {return ((m_barcharge>0) - (m_barcharge<0));} //returns 1, -1 or 0 depending on sign
       int rapidity() const {return m_rapidity;}
 
     protected:
-
       int m_barcharge;
       int m_rapidity;
     };
@@ -53,19 +59,6 @@ namespace InDet {
   // Inline methods
   /////////////////////////////////////////////////////////////////////////////////
 
-  inline Barcode::Barcode(const Barcode& BC)
-    {
-      *this = BC;
-    }
-
-  inline Barcode& Barcode::operator = (const Barcode& BC)
-    {
-      if(&BC!=this) {
-	m_barcharge = BC.m_barcharge;
-	m_rapidity  = BC.m_rapidity ;
-      }
-      return(*this);
-    }
   inline Barcode::Barcode (int bc,int rap)
     {
       m_barcharge = bc ;
@@ -119,9 +112,9 @@ namespace InDet {
         int                                m_ntracksNEGDBM;
         int                                m_total        [50] ;
         int                                m_fake         [50] ;
-        int                                m_events                 ;
-        int                                m_eventsPOS              ;
-        int                                m_eventsNEG              ;
+        int                                m_events{}                 ;
+        int                                m_eventsPOS{}              ;
+        int                                m_eventsNEG{}              ;
         int                                m_eventsBTE[4]           ;
 
         TrackCollectionStat_t()
diff --git a/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/src/TrackClusterAssValidation.cxx b/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/src/TrackClusterAssValidation.cxx
index 6ba5fa86e1b11b19229b99536955cbd28886ecbc..3c46581c63934fc9de08cf04553c021a1523ae5e 100755
--- a/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/src/TrackClusterAssValidation.cxx
+++ b/InnerDetector/InDetValidation/InDetTrackClusterAssValidation/src/TrackClusterAssValidation.cxx
@@ -11,6 +11,8 @@
 #include "InDetPrepRawData/PixelClusterContainer.h"
 #include "InDetTrackClusterAssValidation/TrackClusterAssValidation.h"
 #include "StoreGate/ReadHandle.h"
+#include "HepPDT/ParticleDataTable.hh"
+#include "HepMC/GenParticle.h"
 
 ///////////////////////////////////////////////////////////////////
 // Constructor
@@ -1463,11 +1465,11 @@ int InDet::TrackClusterAssValidation::QualityTracksSelection(InDet::TrackCluster
   }
 
   for(c = event_data.m_kinecluster.begin(); c!= event_data.m_kinecluster.end(); ++c) {
-
     const Trk::PrepRawData*
-      d = (*c).second;
+    d = (*c).second;
     const InDetDD::SiDetectorElement*
-      de= dynamic_cast<const InDetDD::SiDetectorElement*>(d->detectorElement());
+    de= dynamic_cast<const InDetDD::SiDetectorElement*>(d->detectorElement());
+    if (not de) continue;
     int q  = charge(event_data,*c,rp);
 
     if     (q<0) {
diff --git a/InnerDetector/InDetValidation/InDetTrackSplitterTool/InDetTrackSplitterTool/InDetTrackSplitterTool.h b/InnerDetector/InDetValidation/InDetTrackSplitterTool/InDetTrackSplitterTool/InDetTrackSplitterTool.h
index a2669a492fb21899ef9e3ae71ef9ec5f28002580..76345f937e95d2f7071ac857e8b33619c66efe95 100755
--- a/InnerDetector/InDetValidation/InDetTrackSplitterTool/InDetTrackSplitterTool/InDetTrackSplitterTool.h
+++ b/InnerDetector/InDetValidation/InDetTrackSplitterTool/InDetTrackSplitterTool/InDetTrackSplitterTool.h
@@ -168,8 +168,8 @@ namespace InDet{
       
       /** Helper Functions */
       ToolHandle<Trk::ITrackFitter>  m_trkfitter;
-      TRT_ID const* m_trtid ;
-      SCT_ID const* m_sctid ;
+      TRT_ID const* m_trtid{} ;
+      SCT_ID const* m_sctid{} ;
       
       /** Do we use the material on the input track
        */
diff --git a/InnerDetector/InDetValidation/InDetTrackSplitterTool/src/InDetTrackSplitterTool.cxx b/InnerDetector/InDetValidation/InDetTrackSplitterTool/src/InDetTrackSplitterTool.cxx
index 3c01198fa95b07263f082d59c774a9fe93fcb270..a590d5a0578abddb49f53228edd1f04cddf46520 100644
--- a/InnerDetector/InDetValidation/InDetTrackSplitterTool/src/InDetTrackSplitterTool.cxx
+++ b/InnerDetector/InDetValidation/InDetTrackSplitterTool/src/InDetTrackSplitterTool.cxx
@@ -478,6 +478,10 @@ Trk::Track* InDet::InDetTrackSplitterTool::stripTRTFromTrack(Trk::Track const& i
     (I dont think this matters, but a surface needs to be specified)
       */
       Trk::StraightLineSurface const* trtSurf = dynamic_cast<Trk::StraightLineSurface const*>(&(rio->associatedSurface()));
+      if (not trtSurf){
+        ATH_MSG_DEBUG("Cast of rio associated surface to StraightLineSurface failed.");
+        continue;
+      }
       /** Create the psuesdoMeasurement with the constraints */
       Trk::PseudoMeasurementOnTrack const* constraint = makePConstraint(originalPerigee,trtSurf);
       
diff --git a/LArCalorimeter/LArAffectedRegion/LArAffectedRegion/LArAffectedRegionAlg.h b/LArCalorimeter/LArAffectedRegion/LArAffectedRegion/LArAffectedRegionAlg.h
index f8688caeea2e3985f1f90800dd8202f5c9bbb6aa..e5f531d4d708467d3a76551fac0a5a6eb1f9f05c 100644
--- a/LArCalorimeter/LArAffectedRegion/LArAffectedRegion/LArAffectedRegionAlg.h
+++ b/LArCalorimeter/LArAffectedRegion/LArAffectedRegion/LArAffectedRegionAlg.h
@@ -23,14 +23,15 @@
 //#include ToolHandle<ILArHVTool> m_hvtool;
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 
-class LArCablingService;
+#include "IOVDbMetaDataTools/IIOVDbMetaDataTool.h"
+#include "LArRecConditions/ILArBadChanTool.h"
+#include "LArElecCalib/ILArHVTool.h"
+#include "LArCabling/LArCablingService.h"
+#include "CaloDetDescr/CaloDetDescrManager.h"
+
 class LArOnlineID;
-class CaloDetDescrManager;
-class ILArBadChanTool;
 
 class CaloIdManager;
-class ILArHVTool;
-class IIOVDbMetaDataTool;
 
 class LArAffectedRegionAlg : public AthAlgorithm,virtual public IIncidentListener  {
   //---
diff --git a/LArCalorimeter/LArCabling/LArCabling/LArCablingService.h b/LArCalorimeter/LArCabling/LArCabling/LArCablingService.h
index 789024d87b06fecd0de2dfe38988d8e574b1df67..02c9bf9a372dbef942ce35f31a28c8f9e6e82b45 100755
--- a/LArCalorimeter/LArCabling/LArCabling/LArCablingService.h
+++ b/LArCalorimeter/LArCabling/LArCabling/LArCablingService.h
@@ -56,6 +56,13 @@ public:
    *   "iterator" on LArReadoutModuleIDs  <p>
    */
   const std::vector<HWIdentifier>& getLArRoModIDvec();
+
+
+  /**
+   * @brief Make sure the onOff map is initialized.
+   */
+  StatusCode checkOnOff();
+
   
 private:
   std::vector<std::vector<HWIdentifier> > m_onlHashToCalibLines;
diff --git a/LArCalorimeter/LArCabling/LArCabling/LArOnOffIdMapping.h b/LArCalorimeter/LArCabling/LArCabling/LArOnOffIdMapping.h
index f1a3e6664b7b8b660fe686b286b35428c48da060..482af07398e258cbce041391d78f0a7116eb7187 100644
--- a/LArCalorimeter/LArCabling/LArCabling/LArOnOffIdMapping.h
+++ b/LArCalorimeter/LArCabling/LArCabling/LArOnOffIdMapping.h
@@ -119,6 +119,6 @@ inline HWIdentifier LArOnOffIdMapping::createSignalChannelID(const Identifier &
 #include "CLIDSvc/CLASS_DEF.h"
 CLASS_DEF( LArOnOffIdMapping,148608605 , 1)
 #include "AthenaKernel/CondCont.h"
-CLASS_DEF( CondCont<LArOnOffIdMapping>, 155467877 , 0)
+CONDCONT_DEF(  LArOnOffIdMapping, 155467877 );
 
 #endif
diff --git a/LArCalorimeter/LArCabling/src/LArCablingService.cxx b/LArCalorimeter/LArCabling/src/LArCablingService.cxx
index af3586e171b83fef7c7447cfd5fd38e6d7d1681f..3505a68ca6e11fe2d0d1393c16f8f735fb785142 100755
--- a/LArCalorimeter/LArCabling/src/LArCablingService.cxx
+++ b/LArCalorimeter/LArCabling/src/LArCablingService.cxx
@@ -217,3 +217,19 @@ HWIdentifier LArCablingService::getReadoutModuleIDByHash(const IdentifierHash& f
   else
     return m_hwidEmpty;
 }
+
+
+/**
+ * @brief Make sure the onOff map is initialized.
+ */
+StatusCode LArCablingService::checkOnOff()
+{
+  if (!m_onOffValid) {
+    readOnlOffMap();
+  }
+  if (m_onOffValid) {
+    return StatusCode::SUCCESS;
+  }
+  return StatusCode::FAILURE;
+}
+
diff --git a/LArCalorimeter/LArCellRec/python/LArNoisyROSummaryGetter.py b/LArCalorimeter/LArCellRec/python/LArNoisyROSummaryGetter.py
index 3a59a5b2c3ced674344e1746f563583139d6f9d0..1b7e5bf2aa34807f453b6732fbd422177a8c5f7b 100755
--- a/LArCalorimeter/LArCellRec/python/LArNoisyROSummaryGetter.py
+++ b/LArCalorimeter/LArCellRec/python/LArNoisyROSummaryGetter.py
@@ -62,6 +62,7 @@ class LArNoisyROSummaryGetter ( Configured )  :
         # register output in objKeyStore
         from RecExConfig.ObjKeyStore import objKeyStore
         objKeyStore.addStreamESD(self.outputType(),self.outputKey())
+        objKeyStore.addTransient(self.outputType(),self.outputKey())
         
         # now add algorithm to topSequence
         # this should always come at the end
diff --git a/LArCalorimeter/LArCellRec/src/LArBadFebMaskingTool.h b/LArCalorimeter/LArCellRec/src/LArBadFebMaskingTool.h
index 5767bb6d131bff0352a7aa1dd08c5f17673b2630..9142b8fa6549c85d1725ffc098cd90d7ffd4d0b0 100755
--- a/LArCalorimeter/LArCellRec/src/LArBadFebMaskingTool.h
+++ b/LArCalorimeter/LArCellRec/src/LArBadFebMaskingTool.h
@@ -23,12 +23,12 @@
 #include "CaloInterface/ICaloCellMakerTool.h"
 #include "AthenaKernel/IOVSvcDefs.h"
 #include "StoreGate/ReadHandleKey.h"
+#include "LArRecConditions/ILArBadChanTool.h"
 
 class LArCablingService;
 class StoreGateSvc;
 class CaloCell_ID;
 class LArOnlineID;
-class ILArBadChanTool;
 class LArFebErrorSummary;
 
 class LArBadFebMaskingTool: public AthAlgTool,
diff --git a/LArCalorimeter/LArCellRec/src/LArCellBuilderFromLArRawChannelTool.h b/LArCalorimeter/LArCellRec/src/LArCellBuilderFromLArRawChannelTool.h
index e82d2bdc49dd02c6435101edceca1ea006769e20..6641b1c092f1e41231cfd3f8947c385c1adf2a4d 100755
--- a/LArCalorimeter/LArCellRec/src/LArCellBuilderFromLArRawChannelTool.h
+++ b/LArCalorimeter/LArCellRec/src/LArCellBuilderFromLArRawChannelTool.h
@@ -32,11 +32,10 @@
 //#include "LArRawEvent/LArRawChannelContainer.h"
 #include "LArRecConditions/LArBadChannelCont.h"
 #include "AthAllocators/DataPool.h"
-
+#include "LArCabling/LArOnOffIdMapping.h"
 
 
 class CaloCellContainer ;
-class LArOnOffIdMapping;
 class CaloDetDescrManager ;
 class CaloCell_ID;
 class CaloCellContainer ;
diff --git a/LArCalorimeter/LArCellRec/src/LArCellMaskingTool.h b/LArCalorimeter/LArCellRec/src/LArCellMaskingTool.h
index 2d60d284bbeb3b3bfc98b1babfc4c76c3ae79ff2..3954526073be03f8db8ada1feb03c9b50f2c60b8 100644
--- a/LArCalorimeter/LArCellRec/src/LArCellMaskingTool.h
+++ b/LArCalorimeter/LArCellRec/src/LArCellMaskingTool.h
@@ -12,9 +12,9 @@
 #include "CaloIdentifier/CaloCell_ID.h"
 #include "CaloInterface/ICaloCellMakerTool.h"
 #include <bitset>
+#include "LArCabling/LArCablingService.h"
 
 class StoreGateSvc; 
-class LArCablingService;
 class MsgStream;
 
 class LArCellMaskingTool: public AthAlgTool,
diff --git a/LArCalorimeter/LArCellRec/src/LArCellMerger.h b/LArCalorimeter/LArCellRec/src/LArCellMerger.h
index 6e5e2e41aec606f9e61b8a6fe16ff009dc155b20..7d588947c3de64cc8b560dac202a0287b0ca8f78 100644
--- a/LArCalorimeter/LArCellRec/src/LArCellMerger.h
+++ b/LArCalorimeter/LArCellRec/src/LArCellMerger.h
@@ -25,7 +25,8 @@
 #include "StoreGate/ReadHandleKey.h"
 #include "StoreGate/ReadCondHandleKey.h"
 
-class LArOnOffIdMapping;
+#include "LArCabling/LArOnOffIdMapping.h"
+
 class CaloCell_ID;
 class LArRawChannelContainer;
 
diff --git a/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.cxx b/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.cxx
index d74cce45d1c4f733d926f8b51f22d41e0100a947..0027e7fc6a69d1c37b7b5cc1e6d0b4ff7817896c 100644
--- a/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.cxx
+++ b/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.cxx
@@ -21,7 +21,7 @@
 using xAOD::EventInfo;
 
 LArNoisyROAlg::LArNoisyROAlg(const std::string &name,ISvcLocator *pSvcLocator):
-  AthAlgorithm (name, pSvcLocator), 
+  AthReentrantAlgorithm (name, pSvcLocator), 
   m_noisyROTool("LArNoisyROTool",this)
 {
   declareProperty( "CaloCellContainer", m_CaloCellContainerName = "AllCalo" );
@@ -36,9 +36,9 @@ StatusCode LArNoisyROAlg::initialize() {
   return StatusCode::SUCCESS;
 }
 
-StatusCode LArNoisyROAlg::execute() {
-
-  SG::ReadHandle<CaloCellContainer> cellContainer(m_CaloCellContainerName);
+StatusCode LArNoisyROAlg::execute_r (const EventContext& ctx) const
+{
+  SG::ReadHandle<CaloCellContainer> cellContainer(m_CaloCellContainerName, ctx);
   if (!cellContainer.isValid()) { 
     ATH_MSG_ERROR( " Can not retrieve CaloCellContainer: "
                    << m_CaloCellContainerName.key());
@@ -46,7 +46,7 @@ StatusCode LArNoisyROAlg::execute() {
   } 
   
 
-  SG::WriteHandle<LArNoisyROSummary> noisyRO(m_outputKey);
+  SG::WriteHandle<LArNoisyROSummary> noisyRO(m_outputKey, ctx);
   ATH_CHECK(noisyRO.record(m_noisyROTool->process(cellContainer.cptr())));
 
 
diff --git a/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.h b/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.h
index 446910f5a3a1f28d9b9c66ce62751eb53ce88bca..a31198d0370006f703e9f354eb31723b077b4daf 100644
--- a/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.h
+++ b/LArCalorimeter/LArCellRec/src/LArNoisyROAlg.h
@@ -18,7 +18,7 @@
 
 
 
-#include "AthenaBaseComps/AthAlgorithm.h"
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "CaloInterface/ILArNoisyROTool.h"
 #include "StoreGate/ReadHandleKey.h"
@@ -27,14 +27,14 @@
 class CaloCellContainer;
 class LArNoisyROSummary; 
 
-class LArNoisyROAlg : public AthAlgorithm
+class LArNoisyROAlg : public AthReentrantAlgorithm
 {
  public:
 
   LArNoisyROAlg(const std::string &name,ISvcLocator *pSvcLocator);
-  virtual StatusCode initialize();
-  virtual StatusCode execute();   
-  virtual StatusCode finalize();
+  virtual StatusCode initialize() override;
+  virtual StatusCode execute_r (const EventContext& ctx) const override;   
+  virtual StatusCode finalize() override;
 
  
  private: 
diff --git a/LArCalorimeter/LArG4/LArG4Barrel/src/LArBarrelCalculator.h b/LArCalorimeter/LArG4/LArG4Barrel/src/LArBarrelCalculator.h
index de1ebd7e8a156146e208ea9bbdb4e8897483b477..5c0e5db9a1739cb6ca08f41a5250f107a765f3c7 100644
--- a/LArCalorimeter/LArG4/LArG4Barrel/src/LArBarrelCalculator.h
+++ b/LArCalorimeter/LArG4/LArG4Barrel/src/LArBarrelCalculator.h
@@ -17,6 +17,7 @@
 #include "LArG4Code/LArG4Identifier.h"
 #include "LArG4Code/LArCalculatorSvcImp.h"
 #include "ILArBarrelGeometry.h"
+#include "MapEta.h"
 
 #include <stdexcept>
 #include <vector>
@@ -25,7 +26,7 @@
 
 class G4Step;
 class AccMap;
-class MapEta;
+
 class LArG4BirksLaw;
 
 class LArBarrelCalculator : public LArCalculatorSvcImp
diff --git a/LArCalorimeter/LArG4/LArG4EC/src/CryostatCalibrationCalculator.cc b/LArCalorimeter/LArG4/LArG4EC/src/CryostatCalibrationCalculator.cc
index 4915ba1bd395483e3a5c9166617d20f14c54c513..a4094e6c20db1d522080593e772aa0a21af469dd 100644
--- a/LArCalorimeter/LArG4/LArG4EC/src/CryostatCalibrationCalculator.cc
+++ b/LArCalorimeter/LArG4/LArG4EC/src/CryostatCalibrationCalculator.cc
@@ -181,6 +181,14 @@ namespace LArG4 {
             sizeof(region030)/sizeof(RegionInfo_t),
             region030 }
         },
+	// ------------- region: warm and cold walls behind HEC, FCAL ----
+	// copy number range (low, high)
+ 	{ 200, 201, // cold back wall of endcap cryostat
+	   // Det  Sub  Typ  Sam
+	   { 10,   4,   1,   3, 
+	     sizeof(region030)/sizeof(RegionInfo_t),
+	     region030 } 
+	},
       };
 
     static const CopyNumberInfo_t info6[] =
diff --git a/LArCalorimeter/LArL1Sim/LArL1Sim/LArSCL1Maker.h b/LArCalorimeter/LArL1Sim/LArL1Sim/LArSCL1Maker.h
index ae6fc4e1398a428fb2b0f2627f641694ffb65f68..207346355b3d8f6046a0f4824b761e355f994528 100755
--- a/LArCalorimeter/LArL1Sim/LArL1Sim/LArSCL1Maker.h
+++ b/LArCalorimeter/LArL1Sim/LArL1Sim/LArSCL1Maker.h
@@ -22,13 +22,13 @@
 #include "LArDigitization/LArHitEMap.h"
 #include "LArElecCalib/ILArAutoCorrNoiseTool.h"
 #include "LArElecCalib/ILArADC2MeVTool.h"
+#include "CaloDetDescr/ICaloSuperCellIDTool.h"
 
 
 class PileUpMergeSvc;
 class IAtRndmGenSvc;
 class ITriggerTime;
 class CaloCell_SuperCell_ID;
-class ICaloSuperCellIDTool;
 class LArEM_ID;
 class LArHEC_ID;
 class LArFCAL_ID;
diff --git a/LArCalorimeter/LArRecUtils/src/MakeLArCellFromRaw.cxx b/LArCalorimeter/LArRecUtils/src/MakeLArCellFromRaw.cxx
index 5f259df6bc3dcf667d628791c603422beea8808a..527143952226f1b6f41334d11c798ec8dc956e0d 100644
--- a/LArCalorimeter/LArRecUtils/src/MakeLArCellFromRaw.cxx
+++ b/LArCalorimeter/LArRecUtils/src/MakeLArCellFromRaw.cxx
@@ -147,6 +147,12 @@ void MakeLArCellFromRaw::initialize( const LArRoI_Map* roiMap ,
   info0.eCorr=1.; 
   info0.elem = 0 ; 
 
+  // Make sure that the OnOff map has been set up.
+  if (!m_cablingSvc->checkOnOff().isSuccess()) {
+    MsgStream log(m_msgSvc, "MakeLArCellFromRaw");
+    log << MSG::ERROR << "Accessing OnOff map" << endmsg;
+  }
+
 
   // EM
   std::vector<Identifier>::const_iterator it = emIds.begin();
diff --git a/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h b/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h
index 5c80801b797b1f6bf979a2f04d49ad19ddf55b54..da52d8ed242aecdbd904ce4be1ade22cb8a675ba 100755
--- a/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h
+++ b/MuonSpectrometer/Amdcsimrec/AmdcOracle/AmdcOracle/AmdcDumpOracle.h
@@ -8,11 +8,11 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h" 
+#include "AmdcDb/IRDBAccessSvcWithUpdate.h"
 
 /////////////////////////////////////////////////////////////////////////////
 #include "AmdcOracle/AmdcOracleMisc.h"
 
-class IRDBAccessSvcWithUpdate;
 class IRDBAccessSvc;
 
   /**
diff --git a/MuonSpectrometer/MuonCalib/MuonCalibDbOperations/MuonCalibDbOperations/CalibrationDbIOTool.h b/MuonSpectrometer/MuonCalib/MuonCalibDbOperations/MuonCalibDbOperations/CalibrationDbIOTool.h
index 2459169c421be1aee129cea9e61d0180184a5d92..4667dd437b37ea776f42f527e63ed3e5950284b2 100644
--- a/MuonSpectrometer/MuonCalib/MuonCalibDbOperations/MuonCalibDbOperations/CalibrationDbIOTool.h
+++ b/MuonSpectrometer/MuonCalib/MuonCalibDbOperations/MuonCalibDbOperations/CalibrationDbIOTool.h
@@ -12,6 +12,7 @@ namespace MuonGM {
 
 // MuonCalibStandAloneBase
 #include "MuonCalibStandAloneBase/CalibrationIOTool.h"
+#include "MuonCalibMath/SamplePoint.h"
 
 #include "MdtCalibUtils/RtDataFromFile.h"
 
@@ -23,7 +24,6 @@ namespace MuonCalib {
 
 class CalibDbConnection;
 class IRtRelation;
-class SamplePoint;
 class CalibHeadOperations;
 
 class CalibrationDbIOTool : public AthAlgTool, virtual public CalibrationIOTool {
diff --git a/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/ExtraTreeTrackFillerTool.h b/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/ExtraTreeTrackFillerTool.h
index 2507027b9cce3232ab5bc459032504ffbeeaa271..76148e3f4312408c254ecaa8307a591c12e43895 100644
--- a/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/ExtraTreeTrackFillerTool.h
+++ b/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/ExtraTreeTrackFillerTool.h
@@ -9,6 +9,7 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "TrkTrack/TrackCollection.h"
+#include "TrkToolInterfaces/IResidualPullCalculator.h"
 
 #include <vector>
 #include <set>
@@ -16,7 +17,6 @@
 class MdtIdHelper;
 namespace Trk {
   class ITrackHoleSearchTool;
-  class IResidualPullCalculator;
   class MeasurementBase;
   class CompetingRIOsOnTrack;
   class TrackStateOnSurface;
diff --git a/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg.h b/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg.h
index 3887b24a81fed765f9a0dbb3322b8c557b4fcb5d..1b7282d893ed163a567b4af35a99657935c98633 100644
--- a/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg.h
+++ b/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg.h
@@ -17,6 +17,8 @@
 #include "MuonCalibExtraTreeAlg/MuonCalibTrack_EBranch.h"
 #include "MuonCalibExtraTreeAlg/MuonCalibHit_EBranch.h"
 #include "MuonCalibExtraTreeAlg/MuonCalibTrackSegmentBranch.h"
+#include "MuonCalibITools/IIdToFixedIdTool.h"
+#include "TrkExInterfaces/IPropagator.h"
 
 class StoreGateSvc;
 class TFile;
@@ -31,7 +33,6 @@ namespace MuonGM {
 
 namespace MuonCalib {
 class IExtraTreeFillerTool;
-class IIdToFixedIdTool ;
 class  ISegmentOnTrackSelector;
   /**
      @class MuonCalibExtraTreeAlg
diff --git a/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/SegmentOnTrackSelector.h b/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/SegmentOnTrackSelector.h
index 4ece45668148c7744bac33a40fec479f5f5d63e9..83d6e34202023bfc41bf4820bacee9002a0bd283 100644
--- a/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/SegmentOnTrackSelector.h
+++ b/MuonSpectrometer/MuonCalib/MuonCalibExtraTree/MuonCalibExtraTreeAlg/MuonCalibExtraTreeAlg/SegmentOnTrackSelector.h
@@ -13,11 +13,8 @@
 #include <vector>
 #include "GaudiKernel/ToolHandle.h"
 #include "MuonCalibExtraTreeAlg/ISegmentOnTrackSelector.h"
-
-namespace Muon {
-  class MuonEDMHelperTool;
-  class MuonIdHelperTool;
-}
+#include "MuonRecHelperTools/MuonEDMHelperTool.h"
+#include "MuonIdHelpers/MuonIdHelperTool.h"
 
 namespace Trk {
   class Track;
diff --git a/MuonSpectrometer/MuonCalib/MuonCalibPatRec/MuonCalibPatRec/MuonSegmentToCalibSegment.h b/MuonSpectrometer/MuonCalib/MuonCalibPatRec/MuonCalibPatRec/MuonSegmentToCalibSegment.h
index 282b18ea700dae06fe0abdb147ea01bd031faf49..ea1e8f3237ce0c190b1e825f0e7495ca408613cb 100644
--- a/MuonSpectrometer/MuonCalib/MuonCalibPatRec/MuonCalibPatRec/MuonSegmentToCalibSegment.h
+++ b/MuonSpectrometer/MuonCalib/MuonCalibPatRec/MuonCalibPatRec/MuonSegmentToCalibSegment.h
@@ -14,17 +14,17 @@
 #include "MuonSegment/MuonSegmentCombinationCollection.h"
 #include "TrkSegment/SegmentCollection.h"
 #include "MuonSegment/MuonSegment.h"
+#include "MuonCalibITools/IIdToFixedIdTool.h"
+#include "MuonRecToolInterfaces/IMuonPatternSegmentAssociationTool.h"
+#include "MdtCalibSvc/MdtCalibrationSvc.h"
 
 class MdtIdHelper;
 class CscIdHelper;
 class RpcIdHelper;
 class TgcIdHelper;
-class MdtCalibrationSvc;
 
 namespace Muon{
   class MuonPatternCombination;
-  class IMuonPatternSegmentAssociationTool;
-
 }
 
 namespace MuonGM {
@@ -33,8 +33,6 @@ namespace MuonGM {
 
 namespace MuonCalib {
 
-   class IIdToFixedIdTool;
-
 /** @class MuonSegmentToCalibSegment
 Algorithm to retrieve MuonSegments or MuonSegmentCombinations from StoreGate and 
 output the muon calibration input.
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/CscRdoContByteStreamCnv.h b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/CscRdoContByteStreamCnv.h
index 943b1081f031b9222de4df0595bb1b8efc0f4953..e869b2ad0e2a091aa77ae59a338514f427950b7c 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/CscRdoContByteStreamCnv.h
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/CscRdoContByteStreamCnv.h
@@ -30,9 +30,6 @@ extern long ByteStream_StorageType;
 class CscRdoContByteStreamCnv: public Converter 
 {
 
-protected:
-  ~CscRdoContByteStreamCnv();
-
 public:
   CscRdoContByteStreamCnv(ISvcLocator* svcloc);
 
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/MdtCsmContByteStreamCnv.h b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/MdtCsmContByteStreamCnv.h
index 707e869b1aac1326537e6b8b1e1f762ab65f0690..041807a881ba5f1eb62c36b27c5102ecc0f84e67 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/MdtCsmContByteStreamCnv.h
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/MdtCsmContByteStreamCnv.h
@@ -12,19 +12,16 @@
 
 #include "ByteStreamData/RawEvent.h" 
 #include "ByteStreamCnvSvcBase/ByteStreamAddress.h" 
+#include "ByteStreamCnvSvcBase/IByteStreamEventAccess.h" 
 #include <string>
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
+#include "MuonMDT_CnvTools/IMDT_RDOtoByteStreamTool.h"
 
 //class DataObject;
 class IAddressCreator;
-class IByteStreamEventAccess;
 class StoreGateSvc; 
 
-namespace Muon {
-    class IMDT_RDOtoByteStreamTool;
-}
-
 // Abstract factory to create the converter
 template <class TYPE> class CnvFactory;
 
@@ -34,9 +31,6 @@ extern long ByteStream_StorageType;
 
 class MdtCsmContByteStreamCnv: public Converter {
 
- protected:
-  ~MdtCsmContByteStreamCnv();
-
  public:
   MdtCsmContByteStreamCnv(ISvcLocator* svcloc);
 
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/RpcPadContByteStreamCnv.h b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/RpcPadContByteStreamCnv.h
index 3422efca7c032b7692301a55e99a99a2466c9e37..9ef2f2440140419c0f2c6f9ed42dee69f82d898b 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/RpcPadContByteStreamCnv.h
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/RpcPadContByteStreamCnv.h
@@ -16,6 +16,7 @@
 
 //#include "MuonByteStream/RPC_Hid2RESrcID.h"
 //#include "MuonByteStream/RpcROD_Decoder.h"
+#include "MuonRPC_CnvTools/IRPC_RDOtoByteStreamTool.h"
 
 class DataObject;
 class StatusCode;
@@ -24,9 +25,9 @@ class IByteStreamEventAccess;
 class StoreGateSvc; 
 class MsgStream; 
 
-namespace Muon {
-class IRPC_RDOtoByteStreamTool; 
-}
+// namespace Muon {
+// class IRPC_RDOtoByteStreamTool; 
+// }
 #include <string>
 
 // Abstract factory to create the converter
@@ -37,9 +38,6 @@ extern long ByteStream_StorageType;
 
 class RpcPadContByteStreamCnv: public Converter {
 
- protected:
-  ~RpcPadContByteStreamCnv();
-
  public:
   RpcPadContByteStreamCnv(ISvcLocator* svcloc);
 
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/TgcRdoContByteStreamCnv.h b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/TgcRdoContByteStreamCnv.h
index 803c666d8040121972ef2503cd97e5e91bf8100e..d065adcfc4b52e1cf6bebee54986847cd4fef030 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/TgcRdoContByteStreamCnv.h
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/TgcRdoContByteStreamCnv.h
@@ -35,9 +35,6 @@ extern long ByteStream_StorageType;
 class TgcRdoContByteStreamCnv: public Converter
 {
 
-protected:
-  ~TgcRdoContByteStreamCnv();
-
 public:
   TgcRdoContByteStreamCnv(ISvcLocator* svcloc);
 
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/CscRdoContByteStreamCnv.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/CscRdoContByteStreamCnv.cxx
index 25395d0240f42c017794b1dd65ccde07701c55ec..11daf40a7c9ed7922b787ffb25117256358ddd58 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/CscRdoContByteStreamCnv.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/CscRdoContByteStreamCnv.cxx
@@ -36,11 +36,6 @@ CscRdoContByteStreamCnv::CscRdoContByteStreamCnv(ISvcLocator* svcloc)
 {}
 
 
-// destructor
-CscRdoContByteStreamCnv::~CscRdoContByteStreamCnv() 
-{}
-
-
 // class ID
 const CLID& CscRdoContByteStreamCnv::classID()
 {
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtCsmContByteStreamCnv.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtCsmContByteStreamCnv.cxx
index 6a387db251cb7fd06a5aa584ec5641d15afab0ca..dcfbfb9c63e20cf52e3bf99708d5ab65ecaa413b 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtCsmContByteStreamCnv.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/MdtCsmContByteStreamCnv.cxx
@@ -37,9 +37,6 @@ MdtCsmContByteStreamCnv::MdtCsmContByteStreamCnv(ISvcLocator* svcloc) :
 {
 }
 
-MdtCsmContByteStreamCnv::~MdtCsmContByteStreamCnv() {
-}
-
 const CLID& MdtCsmContByteStreamCnv::classID(){
 return ClassID_traits<MdtCsmContainer>::ID() ;
 }
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcPadContByteStreamCnv.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcPadContByteStreamCnv.cxx
index 3e72b75a966d76e71f142e2077e9e83388cd8028..16bab97188c979f61d9398d1e74ad4057f1da490 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcPadContByteStreamCnv.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/RpcPadContByteStreamCnv.cxx
@@ -40,9 +40,6 @@ RpcPadContByteStreamCnv::RpcPadContByteStreamCnv(ISvcLocator* svcloc) :
     m_storeGate("StoreGateSvc", "RpcPadContByteStreamCnv")
 {}
 
-RpcPadContByteStreamCnv::~RpcPadContByteStreamCnv() 
-{}
-
 const CLID& RpcPadContByteStreamCnv::classID(){
 return ClassID_traits<RpcPadContainer>::ID() ;
 }
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRdoContByteStreamCnv.cxx b/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRdoContByteStreamCnv.cxx
index d4d74916e72a7be3b4fa98f9e82fc4cad3425bc5..46aacb6ff046686bfa4063590a0c64f36f220208 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRdoContByteStreamCnv.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStream/src/TgcRdoContByteStreamCnv.cxx
@@ -34,11 +34,6 @@ TgcRdoContByteStreamCnv::TgcRdoContByteStreamCnv(ISvcLocator* svcloc)
 {}
 
 
-// destructor
-TgcRdoContByteStreamCnv::~TgcRdoContByteStreamCnv() 
-{}
-
-
 // class ID
 const CLID& TgcRdoContByteStreamCnv::classID()
 {
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/MdtDigitToMdtRDO.h b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/MdtDigitToMdtRDO.h
index a18aac5019ae77019f68078152bbab63a888af3d..d0374bdd2aa54fff90f7a981e6817adaa7c350b9 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/MdtDigitToMdtRDO.h
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/MdtDigitToMdtRDO.h
@@ -10,8 +10,8 @@
 
 #include "MuonDigitContainer/MdtDigitContainer.h"
 #include "MuonRDO/MdtCsmContainer.h"
+#include "MuonMDT_Cabling/MuonMDT_CablingSvc.h"
 
-class MuonMDT_CablingSvc;
 class MdtIdHelper;
 
 /////////////////////////////////////////////////////////////////////////////
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/TgcDigitToTgcRDO.h b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/TgcDigitToTgcRDO.h
index 511062cd28da141a9647b70e9e4abe0ecb698b50..55559feefd03749fade471d2f04cdb6fcd43faf2 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/TgcDigitToTgcRDO.h
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/MuonByteStreamCnvTest/TgcDigitToTgcRDO.h
@@ -12,9 +12,9 @@
 #include "MuonRDO/TgcRdoContainer.h"
 #include "MuonRDO/TgcRdo.h"
 #include "MuonDigitContainer/TgcDigitContainer.h"
+#include "TGCcablingInterface/ITGCcablingServerSvc.h"
 
 class TgcIdHelper;
-class ITGCcablingServerSvc;
 class ITGCcablingSvc;
 
 /////////////////////////////////////////////////////////////////////////////
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p1_test.cxx
index b304668260b53cb91d035d0f48443df82d97a66f..ae32081e7a21b78bc6779a90240fac7bd3357df0 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p1_test.cxx
@@ -129,7 +129,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          Muon::CscTimeEarly);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p2_test.cxx
index 0b22ac82b65a0758a63e4f4354b5693f96b14e12..7d97c56f1695012340d9242271a1fed8548b2775 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p2_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscPrepDataContainerCnv_p2_test.cxx
@@ -126,7 +126,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          Muon::CscTimeEarly);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscStripPrepDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscStripPrepDataContainerCnv_p1_test.cxx
index 05c89060d90cb257763e2c39eb17c5c7497352d7..78087000471ca5caff9f6e026f4ed4dc1594b6b6 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscStripPrepDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/CscStripPrepDataContainerCnv_p1_test.cxx
@@ -125,7 +125,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          3 + offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MMPrepDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MMPrepDataContainerCnv_p1_test.cxx
index 005a431e8e55618de30aab11e07edef41f34eaff..065b58dc1a9767f2722fd4d50fd5c84394a1114c 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MMPrepDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MMPrepDataContainerCnv_p1_test.cxx
@@ -117,7 +117,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          muo_dd.getMMReadoutElement (clusId));
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p1_test.cxx
index 9bacb40d6885ccbb480519293b967488b2492055..1579be087b039d6c303fd889752174e1f4b08593 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p1_test.cxx
@@ -106,7 +106,7 @@ void test1 (const MuonGM::MuonDetectorManager& muo_dd)
          );
       coll->push_back (std::move (dig));
     }
-    trans1.addCollection (coll.release(), hash, true);
+    trans1.addCollection (coll.release(), hash);
   }
 
   testit (trans1);
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p2_test.cxx
index 74858884ee10763a0fd2dbd998e833a979664601..7514474785d8e9e9cedac12c854ace8366bf3464 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p2_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MM_DigitContainerCnv_p2_test.cxx
@@ -104,7 +104,7 @@ void test1 (const MuonGM::MuonDetectorManager& muo_dd)
          );
       coll->push_back (std::move (dig));
     }
-    trans1.addCollection (coll.release(), hash, true);
+    trans1.addCollection (coll.release(), hash);
   }
 
   testit (trans1);
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p1_test.cxx
index 82e46c1d306d9a2df17da10e2d3c0b1a4e7bbcea..c49e2938bd20dea5299812ccd9054a612932ce07 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p1_test.cxx
@@ -125,7 +125,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          Muon::MdtStatusDriftTime);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p2_test.cxx
index 1eed7ba3fe0e8904f99b843805137cbf6e3c2aac..5dbdb88fa2e94e1633d3abfae85bfabc6ce6c6a3 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p2_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/MdtPrepDataContainerCnv_p2_test.cxx
@@ -122,7 +122,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          Muon::MdtStatusDriftTime);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcCoinDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcCoinDataContainerCnv_p1_test.cxx
index be86093434544efefb740995f84ab3d497644dd8..3d8a0ef6ccfc135b85621683cc980c3294ac3c4a 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcCoinDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcCoinDataContainerCnv_p1_test.cxx
@@ -154,7 +154,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
 
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p1_test.cxx
index bfca528db23e0d3efae69e16357f248a5d53415c..9c0d39fdbec03730d63324d1c0e542b9e53fab5e 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p1_test.cxx
@@ -125,7 +125,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          7+offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p2_test.cxx
index a148e24191482e0605d91c1df402a1e065b01f50..e15e617019210f0cd6f6f8aacff2e6a479ab2f7f 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p2_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p2_test.cxx
@@ -125,7 +125,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          7+offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p3_test.cxx
index 91972db9631096e278e70c421a31fdfb6852d5a3..f8e83b5a642739552d24c746e96f52303f322873 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p3_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/RpcPrepDataContainerCnv_p3_test.cxx
@@ -122,7 +122,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          7+offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_DigitContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_DigitContainerCnv_p1_test.cxx
index 7eeb9ceb08ec82ae0fba9f3c7122cd4faa67bd95..ca09bdbfeea73b8d7212f410ed11a990a9705630 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_DigitContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_DigitContainerCnv_p1_test.cxx
@@ -85,7 +85,7 @@ void test1 (const MuonGM::MuonDetectorManager& muo_dd)
          123+offs, 4.5+offs, 6.5+offs, false, false);
       coll->push_back (std::move (dig));
     }
-    trans1.addCollection (coll.release(), hash, true);
+    trans1.addCollection (coll.release(), hash);
   }
 
   testit (trans1);
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_RawDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_RawDataContainerCnv_p1_test.cxx
index c370a80c8b383484913a6766b4461e95289e7c2c..b976f4069415e932be2e020984f7095c01943095 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_RawDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/STGC_RawDataContainerCnv_p1_test.cxx
@@ -86,7 +86,7 @@ void test1 (const MuonGM::MuonDetectorManager& muo_dd)
         ( Identifier(0x712a0054) );
       coll->push_back (std::move (dig));
     }
-    trans1.addCollection (coll.release(), hash, true);
+    trans1.addCollection (coll.release(), hash);
   }
 
   testit (trans1, muo_dd);
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p1_test.cxx
index 12bc3e07bc01518869f8a5cbdcc31d6788f8ba0d..812ce339348f70dd8695caf812da5559e4d3cd08 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p1_test.cxx
@@ -150,7 +150,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
 
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p2_test.cxx
index 43f828efae3030bdc1922d37f470346cf029d93a..00eff1153982b8a76f74000ffe2b6283ca98952c 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p2_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p2_test.cxx
@@ -150,7 +150,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
 
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p3_test.cxx
index 5ab89f9760d59c9c3e108bda111a18031b7870c6..037210758796fe5fda19a6862e7ed23aa0ba4586 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p3_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcCoinDataContainerCnv_p3_test.cxx
@@ -150,7 +150,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
 
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p1_test.cxx
index 43428de3df58d14f61c4492bc355b3ee86595910..3789d4019e66fb54dacfee4aeb5f4f6faca121c5 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p1_test.cxx
@@ -121,7 +121,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          123+offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p2_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p2_test.cxx
index a87414f8661bfd781455962a203efeefd7bac18b..126e429136d5974eee3172215348f4c028084a2d 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p2_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p2_test.cxx
@@ -118,7 +118,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          123+offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p3_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p3_test.cxx
index 6b4553b121e930500fb98eb336e6da41150333a1..3eb7d69425f039b653c32ab5aa8506b62cb86e9c 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p3_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/TgcPrepDataContainerCnv_p3_test.cxx
@@ -118,7 +118,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          123+offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/sTgcPrepDataContainerCnv_p1_test.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/sTgcPrepDataContainerCnv_p1_test.cxx
index db9fa794bd148b8565f982b474ca303b9b887b80..e343e84ef43b697f2e97b000a4fc0a9523e90817 100644
--- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/sTgcPrepDataContainerCnv_p1_test.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/test/sTgcPrepDataContainerCnv_p1_test.cxx
@@ -118,7 +118,7 @@ makeclusts (const MuonGM::MuonDetectorManager& muo_dd)
          123+offs);
       coll->push_back (std::move (cl));
     }
-    cont->addCollection (coll.release(), hash, true);
+    cont->addCollection (coll.release(), hash);
   }
 
   // gcc4.9 doesn't allow returning cont directly here; fixed in 5.2.
diff --git a/MuonSpectrometer/MuonCnv/MuonJiveXML/MuonJiveXML/TrigRpcDataRetriever.h b/MuonSpectrometer/MuonCnv/MuonJiveXML/MuonJiveXML/TrigRpcDataRetriever.h
index 72608d2e6ba114b27b6a7ba94ce75498aeaadc4c..18947cfe9bf5b1913d2909ccbaff86d238961211 100644
--- a/MuonSpectrometer/MuonCnv/MuonJiveXML/MuonJiveXML/TrigRpcDataRetriever.h
+++ b/MuonSpectrometer/MuonCnv/MuonJiveXML/MuonJiveXML/TrigRpcDataRetriever.h
@@ -13,17 +13,12 @@
 
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
 #include "MuonReadoutGeometry/RpcReadoutElement.h"
+#include "MuonRPC_CnvTools/IRPC_RDO_Decoder.h"
 
 
 class RpcIdHelper;
 class IRPCcablingSvc;
 
-namespace Muon 
-{
-    class IRPC_RDO_Decoder;
-}
-
-
 namespace JiveXML {
 
   class TrigRpcDataRetriever : virtual public IDataRetriever, public AthAlgTool {
diff --git a/MuonSpectrometer/MuonCnv/MuonPrepRawDataToxAOD/src/RPC_PrepDataToxAOD.h b/MuonSpectrometer/MuonCnv/MuonPrepRawDataToxAOD/src/RPC_PrepDataToxAOD.h
index af6f19597de6cdde7dd80cb461a86a2b260dabe5..e8acccb568d38337233085fbdc9277ef21fffb7b 100644
--- a/MuonSpectrometer/MuonCnv/MuonPrepRawDataToxAOD/src/RPC_PrepDataToxAOD.h
+++ b/MuonSpectrometer/MuonCnv/MuonPrepRawDataToxAOD/src/RPC_PrepDataToxAOD.h
@@ -13,13 +13,8 @@
 #include "MuonPrepDataToxAOD.h"
 #include "MuonSimData/MuonSimDataCollection.h"
 #include "MuonPrepRawData/MuonPrepDataContainer.h"
-
-namespace Muon {
-  class IMuonClusterOnTrackCreator;
-}
-namespace Trk {
-  class IResidualPullCalculator;
-}
+#include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
+#include "TrkToolInterfaces/IResidualPullCalculator.h"
 
 class RPC_PrepDataToxAOD : public MuonPrepDataToxAOD<Muon::RpcPrepDataContainer,MuonSimDataCollection> {
 public:
diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h
index 30e621756d7eaaabf897d8c82a9144840f471fa6..22ee6c3bd7a8cf827c3f1c280a3a027acd8f7c71 100755
--- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h
+++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h
@@ -15,6 +15,7 @@
 
 #include "MuonPrepRawData/MuonPrepDataContainer.h"
 #include "MuonTrigCoinData/RpcCoinDataContainer.h"
+#include "MuonCondInterface/IRPCConditionsSvc.h"
 
 #include "MuonRDO/RpcCoinMatrix.h"
 #include "MuonRDO/RpcPadContainer.h"
@@ -38,7 +39,6 @@ class RpcPadIdHash;
 class IdentifierHash;
 class RpcPad;
 class RpcPadContainer;
-class IRPCConditionsSvc;
 
 
 namespace Muon {
diff --git a/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h b/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h
index 7f44202c87fbee30c32236eea853ff2417405d61..5aaba4fb204b8e6e21f17d335410d9a5e42e17e8 100644
--- a/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h
+++ b/MuonSpectrometer/MuonDetDescr/MuonAGDD/MuonAGDD/MuonAGDDTool.h
@@ -16,7 +16,7 @@ class IRDBAccessSvc;
 class IGeoModelSvc;
 class GeoFullPhysVol;
 #ifndef SIMULATIONBASE
-class AmdcsimrecAthenaSvc;
+#include "AmdcAth/AmdcsimrecAthenaSvc.h"
 #endif
 
 
diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h
index 951515ba13ceb8b2e71d51fbb7e9743ba5c2c543..81d83a253ce5fcc936fd12fb399fc9c546dbbcfa 100644
--- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h
+++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/RPC_Digitization/RpcDigitizationTool.h
@@ -46,6 +46,7 @@ the same strip before the dead time is ignored.
 #include "MuonSimEvent/RPCSimHitCollection.h"
 #include "HitManagement/TimedHitCollection.h"
 #include "MuonSimData/MuonSimDataCollection.h"
+#include "MuonCondInterface/IRPCConditionsSvc.h"
 
 #include "xAODEventInfo/EventInfo.h"             // NEW EDM
 #include "xAODEventInfo/EventAuxInfo.h"          // NEW EDM
@@ -64,8 +65,6 @@ class PileUpMergeSvc;
 class IAtRndmGenSvc;
 class ITagInfoMgr;
  
-class IRPCConditionsSvc;
-
 namespace MuonGM{
   class MuonDetectorManager;
 }
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
index f8a57876dad908cbe0df4e54076c7fa44c3d0ea8..e003af570404eaa9ff2c206f314e707f91365aa0 100644
--- a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
@@ -17,6 +17,7 @@
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "MuonOverlayBase/MuonOverlayBase.h"
+#include "MuonDigToolInterfaces/IMuonDigitizationTool.h"
 
 #include "MuonRDO/CscRawDataContainer.h"
 
@@ -30,7 +31,6 @@
 #include <map>
 
 class CscIdHelper;
-class IMuonDigitizationTool;
 
 namespace std { template<typename _Tp> class auto_ptr; }
 
diff --git a/MuonSpectrometer/MuonOverlay/MdtOverlay/MdtOverlay/MdtOverlay.h b/MuonSpectrometer/MuonOverlay/MdtOverlay/MdtOverlay/MdtOverlay.h
index fbfff996dc20e21ab77b296f01ccd8d8a3781fe2..55f6af61652e3b75c74a2c0394033974d1603319 100644
--- a/MuonSpectrometer/MuonOverlay/MdtOverlay/MdtOverlay/MdtOverlay.h
+++ b/MuonSpectrometer/MuonOverlay/MdtOverlay/MdtOverlay/MdtOverlay.h
@@ -23,9 +23,9 @@
 
 #include "MuonOverlayBase/MuonOverlayBase.h"
 #include "MuonDigitContainer/MdtDigitContainer.h"
+#include "MuonDigToolInterfaces/IMuonDigitizationTool.h"
 
 class MdtIdHelper;
-class IMuonDigitizationTool;
 
 
 class MdtOverlay : public MuonOverlayBase  {
diff --git a/MuonSpectrometer/MuonOverlay/RpcOverlay/RpcOverlay/RpcOverlay.h b/MuonSpectrometer/MuonOverlay/RpcOverlay/RpcOverlay/RpcOverlay.h
index dc6d77194aa52f4e2dc46815aa7865cdb2781a65..0cc849ca452e7e523b08aeb955f38837c864e3ca 100644
--- a/MuonSpectrometer/MuonOverlay/RpcOverlay/RpcOverlay/RpcOverlay.h
+++ b/MuonSpectrometer/MuonOverlay/RpcOverlay/RpcOverlay/RpcOverlay.h
@@ -23,9 +23,10 @@
 
 #include "MuonOverlayBase/IDC_MultiHitOverlayBase.h"
 #include "MuonDigitContainer/RpcDigitContainer.h"
+#include "MuonDigToolInterfaces/IMuonDigitizationTool.h"
 
 class RpcIdHelper;
-class IMuonDigitizationTool;
+// class IMuonDigitizationTool;
 
 class RpcOverlay : public IDC_MultiHitOverlayBase  {
 public:
diff --git a/MuonSpectrometer/MuonOverlay/TgcOverlay/TgcOverlay/TgcOverlay.h b/MuonSpectrometer/MuonOverlay/TgcOverlay/TgcOverlay/TgcOverlay.h
index 98e03ec16d9733b2642557166218ba8ccb97405f..7de66532ef7c92d2a982cdbe690cd102b2386eb8 100644
--- a/MuonSpectrometer/MuonOverlay/TgcOverlay/TgcOverlay/TgcOverlay.h
+++ b/MuonSpectrometer/MuonOverlay/TgcOverlay/TgcOverlay/TgcOverlay.h
@@ -23,9 +23,9 @@
 
 #include "MuonOverlayBase/IDC_MultiHitOverlayBase.h"
 #include "MuonDigitContainer/TgcDigitContainer.h"
+#include "MuonDigToolInterfaces/IMuonDigitizationTool.h"
 
 class TgcIdHelper;
-class IMuonDigitizationTool;
 
 class TgcOverlay : public IDC_MultiHitOverlayBase  {
 public:
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator.h b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator.h
index 31b10060b144370c38b42449c101f3c31da48ecb..a0eacada6ad131b35a814e09c4af392c0c3bd55f 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator.h
@@ -19,7 +19,6 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
 #include "MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h"
 #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h"
 #include "MuonRIO_OnTrack/MuonDriftCircleErrorStrategy.h"
@@ -71,7 +70,6 @@ namespace Muon {
        - doMDT: switch on/off ROT creation (default = true)
        - TimingMode: select timing mode (default = ATLTIME)
        - MuonTofTool: Tool to be used to calculate time of flight (default = "Muon::MuonCosmicTofTool/MuonCosmicTofTool")
-       - ErrorScalingTool: Tool to scale errors (default = "Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool")
        - DoWireSag: Flag to turn on application of geometrical wire sagging correstions (default = false)
        - CreateTubeHit: Flag to turn on the creation of tube hits (default = false)
     */
@@ -199,7 +197,6 @@ namespace Muon {
       ToolHandle<Muon::MuonIdHelperTool>   m_idHelper;
       ServiceHandle<MdtCalibrationSvc>     m_mdtCalibSvc;
       ServiceHandle<MdtCalibrationDbSvc>   m_mdtCalibDbSvc;
-      ToolHandle<Trk::IRIO_OnTrackErrorScalingTool>   m_errorScalingTool;
       ToolHandle<IMuonTofTool>             m_tofTool; //!<Time of flight tool (handle tof if not coming from IP)
 
       // Configuration variables
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/src/MdtDriftCircleOnTrackCreator.cxx b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/src/MdtDriftCircleOnTrackCreator.cxx
index d5d9a853b93b6d0f6182499b6fe424cffb6c23de..a14087748902c4b94441f370bc5bafeb412dc9f5 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/src/MdtDriftCircleOnTrackCreator.cxx
+++ b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MdtDriftCircleOnTrackCreator/src/MdtDriftCircleOnTrackCreator.cxx
@@ -48,7 +48,6 @@ Muon::MdtDriftCircleOnTrackCreator::MdtDriftCircleOnTrackCreator
   m_idHelper("Muon::MuonIdHelperTool/MuonIdHelperTool"),
   m_mdtCalibSvc("MdtCalibrationSvc", na),
   m_mdtCalibDbSvc("MdtCalibrationDbSvc", na),
-  m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool"),
   m_tofTool(""),
   m_invSpeed(1./299.792458),
   m_mdtCalibSvcSettings( 0 ),
@@ -66,7 +65,6 @@ Muon::MdtDriftCircleOnTrackCreator::MdtDriftCircleOnTrackCreator
   declareProperty("doMDT",  m_doMdt = true);
   declareProperty("TimingMode", m_timeCorrectionType = 0 );
   declareProperty("MuonTofTool", m_tofTool );
-  declareProperty("ErrorScalingTool", m_errorScalingTool );
   declareProperty("FixedError",m_fixedError = 1.);
   declareProperty("DiscardMaskedHits",m_discardMaskedHits = true);
   declareProperty("GlobalToLocalTolerance",m_globalToLocalTolerance = 1000., "Tolerance used for the Surface::globalToLocal" );
@@ -171,12 +169,6 @@ StatusCode Muon::MdtDriftCircleOnTrackCreator::initialize()
     ATH_MSG_WARNING( " tool is configured such that MDT_DCs are only copied!" );
   }
   
-  // get error scaling tool
-  if(m_errorScalingTool.retrieve().isFailure())   {
-    ATH_MSG_WARNING( "Can not get error scaling tool " << m_errorScalingTool << ", will trigger failure." );
-    return StatusCode::SUCCESS;
-  } 
-  
   if( m_timeCorrectionType == COSMICS_TOF ){
     if( m_tofTool.empty() ) {
       ATH_MSG_ERROR( "The time of flight tool is not configured. Please check your configuration" );
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/CMakeLists.txt b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/CMakeLists.txt
index e53a9ac441b34066f7e712950a204da8b2cd71c1..3cd7bfc0884ec2fe17dcb6e643f1207e639db0eb 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/CMakeLists.txt
+++ b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/CMakeLists.txt
@@ -18,15 +18,15 @@ atlas_depends_on_subdirs( PRIVATE
                           MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces
                           Tracking/TrkDetDescr/TrkSurfaces
                           Tracking/TrkEvent/TrkEventPrimitives
+                          Tracking/TrkEvent/TrkRIO_OnTrack
                           Tracking/TrkEvent/TrkParameters
-                          Tracking/TrkEvent/TrkPrepRawData
-                          Tracking/TrkTools/TrkToolInterfaces )
+                          Tracking/TrkEvent/TrkPrepRawData )
 
 # Component(s) in the package:
 atlas_add_component( MuonClusterOnTrackCreator
                      src/*.cxx
                      src/components/*.cxx
-                     LINK_LIBRARIES AthenaBaseComps EventPrimitives GaudiKernel MuonReadoutGeometry MuonIdHelpersLib CscClusterizationLib MuonPrepRawData MuonRIO_OnTrack MuonRecToolInterfaces TrkSurfaces TrkEventPrimitives TrkParameters TrkPrepRawData TrkToolInterfaces )
+                     LINK_LIBRARIES AthenaBaseComps EventPrimitives GaudiKernel MuonReadoutGeometry MuonIdHelpersLib CscClusterizationLib MuonPrepRawData MuonRIO_OnTrack MuonRecToolInterfaces TrkSurfaces TrkEventPrimitives TrkParameters TrkPrepRawData TrkRIO_OnTrack )
 
 # Install files from the package:
 atlas_install_joboptions( share/*.py )
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.cxx b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.cxx
index e37e15d49009afae5f0dd9fa8cb7145015605ff9..48852d3ec54123f67686f0743b33e4fe6bc09b11 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.cxx
+++ b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.cxx
@@ -36,6 +36,8 @@
 #include "CscClusterization/ICscClusterUtilTool.h"
 #include "EventPrimitives/EventPrimitivesHelpers.h"
 
+#include "TrkRIO_OnTrack/check_cast.h"
+
 using std::vector;
 using std::setw;
 using std::atan2;
@@ -55,7 +57,6 @@ namespace Muon {
       m_cscIdHelper(0),
       m_rpcIdHelper(0),
       m_tgcIdHelper(0),
-      m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool"),
       m_stripFitter("CalibCscStripFitter/CalibCscStripFitter"),
       m_clusterFitter("QratCscClusterFitter/QratCscClusterFitter"),
       m_clusterUtilTool("CscClusterUtilTool/CscClusterUtilTool"),
@@ -69,10 +70,6 @@ namespace Muon {
     declareProperty("doCSC",  m_doCsc = true);
     declareProperty("doRPC",  m_doRpc = true);
     declareProperty("doTGC",  m_doTgc = true);
-    declareProperty("DoRpcErrorScaling", m_scaleRpcCov = false );
-    declareProperty("DoTgcErrorScaling", m_scaleTgcCov = false );
-    declareProperty("DoCscErrorScaling", m_scaleCscCov = false );
-    declareProperty("ErrorScalingTool", m_errorScalingTool );
     declareProperty("CscStripFitter",   m_stripFitter );
     declareProperty("CscClusterFitter", m_clusterFitter );
     declareProperty("CscClusterUtilTool", m_clusterUtilTool );
@@ -119,15 +116,14 @@ namespace Muon {
 
     // get error scaling tool
     //
-    if ( m_errorScalingTool.retrieve().isFailure() )   {
-      ATH_MSG_WARNING ( "Can not get error scaling tool " << m_errorScalingTool
-                        << ", will trigger failure." );
-      return StatusCode::SUCCESS;
-    } else {
-      m_scaleCscCov = m_errorScalingTool->needToScaleCsc();
-      m_scaleRpcCov = m_errorScalingTool->needToScaleRpc();
-      m_scaleTgcCov = m_errorScalingTool->needToScaleTgc();
-      ATH_MSG_DEBUG ( "initialise() successful in " << name() );
+    if (!m_cscErrorScalingKey.key().empty() ) {
+      ATH_CHECK( m_cscErrorScalingKey.initialize() );
+    }
+    if (!m_tgcErrorScalingKey.key().empty() ) {
+      ATH_CHECK( m_tgcErrorScalingKey.initialize() );
+    }
+    if (!m_rpcErrorScalingKey.key().empty() ) {
+      ATH_CHECK( m_rpcErrorScalingKey.initialize() );
     }
 
     if ( m_stripFitter.retrieve().isFailure() ) {
@@ -210,32 +206,30 @@ namespace Muon {
 
     // Error matrix production - expect more intelligent code here.
     //
-    Amg::MatrixX* cov  = 0;
-    Amg::MatrixX  oldLocalCov = RIO.localCovariance();
-    
+    Amg::MatrixX  loce = RIO.localCovariance();
+
     if ( m_cscIdHelper
          && m_cscIdHelper->is_csc(RIO.identify())
-         && m_scaleCscCov ) {
-      cov = m_errorScalingTool->createScaledCscCovariance(oldLocalCov);
-      ATH_MSG_VERBOSE ( "CSC: new cov(0,0) is " << (*cov)(0,0) );
+         && !m_cscErrorScalingKey.key().empty()) {
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_cscErrorScalingKey );
+      loce = check_cast<MuonEtaPhiRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( loce, Trk::distPhi);
+      ATH_MSG_VERBOSE ( "CSC: new cov(0,0) is " << loce(0,0) );
     }
     if ( m_rpcIdHelper
 	 && m_rpcIdHelper->is_rpc(RIO.identify())
-	 && m_scaleRpcCov ) {
-      cov = m_errorScalingTool->createScaledRpcCovariance(oldLocalCov);
-      ATH_MSG_VERBOSE ( "RPC: new cov(0,0) is " << (*cov)(0,0) );
+	 && !m_rpcErrorScalingKey.key().empty()) {
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_rpcErrorScalingKey );
+      loce = check_cast<MuonEtaPhiRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( loce, Trk::distPhi);
+      ATH_MSG_VERBOSE ( "RPC: new cov(0,0) is " << loce(0,0) );
     }
     if ( m_tgcIdHelper
 	 && m_tgcIdHelper->is_tgc(RIO.identify())
-	 && m_scaleTgcCov ) {
-      cov = m_errorScalingTool->createScaledTgcCovariance(oldLocalCov);
-      ATH_MSG_VERBOSE ( "TGC: new cov(1,1) is " << (*cov)(0,0) );
+	 && !m_tgcErrorScalingKey.key().empty() ) {
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_tgcErrorScalingKey );
+      loce = check_cast<MuonEtaPhiRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( loce, Trk::distPhi);
+      ATH_MSG_VERBOSE ( "TGC: new cov(1,1) is " << loce(0,0) );
     }
 
-    Amg::MatrixX loce = (cov)                   ?
-      Amg::MatrixX(*cov)                       :
-      Amg::MatrixX(RIO.localCovariance()) ;
-
     if(  m_rpcIdHelper && m_rpcIdHelper->is_rpc(RIO.identify()) ){
       // cast to RpcPrepData
       const RpcPrepData* MClus   = dynamic_cast<const RpcPrepData*> (&RIO);
@@ -357,14 +351,14 @@ namespace Muon {
 
     // Error matrix production - expect more intelligent code here.
     //
-    Amg::MatrixX* cov  = 0;
-    Amg::MatrixX  oldLocalCov = RIO.localCovariance();
+    Amg::MatrixX  loce = RIO.localCovariance();
     
     if ( m_cscIdHelper 
 	 && m_cscIdHelper->is_csc(RIO.identify())
-	 && m_scaleCscCov ) {
-      cov = m_errorScalingTool->createScaledCscCovariance(oldLocalCov);
-      ATH_MSG_VERBOSE ( "CSC: new cov(0,0) is " << (*cov)(0,0) );
+         && !m_cscErrorScalingKey.key().empty()) {
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_cscErrorScalingKey );
+      loce = check_cast<MuonEtaPhiRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( loce, Trk::distPhi);
+      ATH_MSG_VERBOSE ( "CSC: new cov(0,0) is " << loce(0,0) );
     }
 
     // postion Error is re-estimate only for precision fit cluster (eta)
@@ -372,9 +366,6 @@ namespace Muon {
          && MClus->status() != Muon::CscStatusUnspoiled
          && MClus->status() != Muon::CscStatusSplitUnspoiled ) {
       // current not changing CscClusterStatus but passing status of RIO
-      Amg::MatrixX loce = (cov) ?  Amg::MatrixX(*cov)
-	:  Amg::MatrixX(RIO.localCovariance()) ;
-      delete cov;
       MClT = new CscClusterOnTrack(MClus,locpar,loce,positionAlongStrip,MClus->status(),MClus->timeStatus(),MClus->time());
       
     } else {
@@ -400,14 +391,10 @@ namespace Muon {
       if ( fitresult ) {
         ATH_MSG_VERBOSE ( "  Precision fit failed which was succeeded: return="
                           << "cluStatus: " << res.clusterStatus << "fitStatus: " << res.fitStatus );
-	Amg::MatrixX loce = (cov) ?  Amg::MatrixX(*cov)
-	  : Amg::MatrixX(RIO.localCovariance()) ;
-	delete cov;
 	return new CscClusterOnTrack(MClus,locpar,loce,positionAlongStrip,MClus->status(),MClus->timeStatus(),MClus->time());
       } else {
         ATH_MSG_VERBOSE ( "  Precision fit succeeded" );
       }
-      
 
       ATH_MSG_VERBOSE ( "  Angle from Segment:  " << " :: tanangle :  " << tantheta );
       
@@ -420,18 +407,18 @@ namespace Muon {
       double errorCorrected = sqrt( nominal_error*nominal_error*m_errorScaler*m_errorScaler + m_errorScalerBeta*m_errorScalerBeta);
       if( errorCorrected < m_minimumError ) errorCorrected = m_minimumError;
 
-      Amg::MatrixX* pcov = 0;
-      Amg::MatrixX mat = Amg::MatrixX(1,1);
-      mat.setIdentity();
+      Amg::MatrixX newloce( Amg::MatrixX(1,1) );
+      newloce.setIdentity();
       //        mat *= res.dposition*res.dposition;
-      mat *= errorCorrected*errorCorrected;
-      pcov = m_errorScalingTool->createScaledCscCovariance(mat);
+      newloce *= errorCorrected*errorCorrected;
+      if (!m_cscErrorScalingKey.key().empty()) {
+        SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_cscErrorScalingKey );
+        newloce = check_cast<MuonEtaPhiRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( newloce, Trk::distPhi);
+      }
+
       //        pcov = pcov_beforeScale;
       //        Trk::ErrorMatrix* newloce = new Trk::ErrorMatrix(pcov);
       
-      Amg::MatrixX newloce = (pcov)   ? Amg::MatrixX(*pcov)
-	:  Amg::MatrixX(RIO.localCovariance()) ;
-      delete pcov;
       ATH_MSG_VERBOSE ( "All: new err matrix is " << newloce );
       ATH_MSG_VERBOSE ( "  dpos changed ====> " << Amg::error(newloce,Trk::loc1) ); 
       
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.h b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.h
index 52d0a4cc97b23fa7f05b62e744f5c249ab90ac6a..7e9c0604cd1e99643fee929f3dbcd6f7c17819ad 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/CscClusterOnTrackCreator.h
@@ -19,12 +19,12 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
 #include "MuonRIO_OnTrack/MuonClusterOnTrack.h"
 
 #include "MuonReadoutGeometry/MuonDetectorManager.h"
 #include "TrkPrepRawData/PrepRawDataCLASS_DEF.h"
 #include "TrkParameters/TrackParameters.h"
+#include "MuonRIO_OnTrack/MuonEtaPhiRIO_OnTrackErrorScaling.h"
 
 #include "MuonPrepRawData/CscStripPrepDataContainer.h"
 
@@ -54,7 +54,7 @@ namespace Muon {
        - doCSC: switch on/off CSC ROT creation (default = true)
        - doRPC: switch on/off RPC ROT creation (default = true)
        - doTGC: switch on/off TGC ROT creation (default = true)
-       - ErrorScalingTool: Tool to scale errors (default = "Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool")
+       - [CSC,TGC,RPC]ErrorScalingKey: if not empty use error scaling conditions data to scale the corresponding muon covariances
        - CscClusterFitter: Tool to fit charge and width of CSC clusters
        - CscStripFitter: Tool to fit charge + time of a CSC strip
        - CscStripPrepDataLocation: Storegate key of the CscStripPrepData collection
@@ -101,14 +101,19 @@ namespace Muon {
     const CscIdHelper*                   m_cscIdHelper;
     const RpcIdHelper*                   m_rpcIdHelper;     
     const TgcIdHelper*                   m_tgcIdHelper;     
-    ToolHandle<Trk::IRIO_OnTrackErrorScalingTool>   m_errorScalingTool;
     ToolHandle<ICscStripFitter>                     m_stripFitter;
     ToolHandle<ICscClusterFitter>                   m_clusterFitter;
     ToolHandle<ICscClusterUtilTool>                 m_clusterUtilTool;
     bool m_have_csc_tools;
-    bool                                 m_scaleCscCov;
-    bool                                 m_scaleRpcCov;
-    bool                                 m_scaleTgcCov;
+
+  SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_cscErrorScalingKey
+   {this,"CSCErrorScalingKey", "" /*"/MUON/TrkErrorScalingCSC"*/, "Key for CSC error scaling conditions data. No error scaling if empty."};
+
+  SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_tgcErrorScalingKey
+   {this,"TGCErrorScalingKey", "" /*"/MUON/TrkErrorScalingTGC"*/, "Key for TGC error scaling conditions data. No error scaling if empty."};
+
+  SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_rpcErrorScalingKey
+   {this,"RPCErrorScalingKey", "" /*"/MUON/TrkErrorScalingRPC"*/, "Key for RPC error scaling conditions data. No error scaling if empty."};
 
     bool                                 m_doCsc;
     bool                                 m_doRpc;
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.cxx b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.cxx
index 51cd718907d4696ff9b6c51d8e22180110f7d063..589ddebdc46d310f4163b94d37ff7e3fd341a29c 100755
--- a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.cxx
+++ b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.cxx
@@ -42,7 +42,6 @@ namespace Muon {
   MuonClusterOnTrackCreator::MuonClusterOnTrackCreator
   (const std::string& ty,const std::string& na,const IInterface* pa)
     : AthAlgTool(ty,na,pa),
-      m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool"),
       m_idHelper("Muon::MuonIdHelperTool/MuonIdHelperTool")
   {
     // algtool interface - necessary!
@@ -53,10 +52,6 @@ namespace Muon {
     declareProperty("doCSC",  m_doCsc = true);
     declareProperty("doRPC",  m_doRpc = true);
     declareProperty("doTGC",  m_doTgc = true);
-    declareProperty("DoRpcErrorScaling", m_scaleRpcCov = false );
-    declareProperty("DoTgcErrorScaling", m_scaleTgcCov = false );
-    declareProperty("DoCscErrorScaling", m_scaleCscCov = false );
-    declareProperty("ErrorScalingTool", m_errorScalingTool );
     declareProperty("DoFixedErrorTgcEta", m_doFixedErrorTgcEta = false );
     declareProperty("DoFixedErrorRpcEta", m_doFixedErrorRpcEta = false );
     declareProperty("DoFixedErrorCscEta", m_doFixedErrorCscEta = false );
@@ -90,19 +85,6 @@ namespace Muon {
       return StatusCode::FAILURE;
     }
 
-    // get error scaling tool
-    //
-    if(m_errorScalingTool.retrieve().isFailure())   {
-      ATH_MSG_WARNING ( "Can not get error scaling tool " << m_errorScalingTool
-			<< ", will trigger failure." );
-      return StatusCode::SUCCESS;
-    } else {
-      m_scaleCscCov = m_errorScalingTool->needToScaleCsc();
-      m_scaleRpcCov = m_errorScalingTool->needToScaleRpc();
-      m_scaleTgcCov = m_errorScalingTool->needToScaleTgc();
-      ATH_MSG_INFO ( "initialise() successful in " << name() );
-    }
-
     return StatusCode::SUCCESS;
   }
 
@@ -164,26 +146,6 @@ namespace Muon {
     }
     positionAlongStrip = lp[Trk::locY];
      
-    // Error matrix production - expect more intelligent code here.
-    //
-    // Amg::MatrixX* cov  = 0;
-    // Amg::MatrixX  oldLocalCov = RIO.localCovariance();
-    // if ( m_idHelper->isCsc(RIO.identify()) && m_scaleCscCov ) {
-    //   cov = m_errorScalingTool->createScaledCscCovariance(oldLocalCov);
-    //   ATH_MSG_VERBOSE ( "CSC: new cov(0,0) is " << (*cov)(0,0) );
-    // }
-    // if ( m_idHelper->isRpc(RIO.identify()) && m_scaleRpcCov ) {
-    //   cov = m_errorScalingTool->createScaledRpcCovariance(oldLocalCov);
-    //   ATH_MSG_VERBOSE ( "RPC: new cov(0,0) is " << (*cov)(0,0)  );
-    // }
-    // if ( m_idHelper->isTgc(RIO.identify()) && m_scaleTgcCov ) {
-    //   cov = m_errorScalingTool->createScaledTgcCovariance(oldLocalCov);
-    //   ATH_MSG_VERBOSE ( "TGC: new cov(0,0) is " << (*cov)(0,0)  );
-    // }
-    // Amg::MatrixX loce = (cov)                   ?
-    //   Amg::MatrixX(*cov)                       :
-    //   Amg::MatrixX(RIO.localCovariance()) ;
-    // delete cov;
     Amg::MatrixX loce = RIO.localCovariance();
     ATH_MSG_DEBUG ( "All: new err matrix is " << loce );
   
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.h b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.h
index f047899d6144ecef76e30e90f28584b9df424e8e..266e992b291e3c9554257237c660d84c08e12f6a 100755
--- a/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonRIO_OnTrackCreators/MuonClusterOnTrackCreator/src/MuonClusterOnTrackCreator.h
@@ -19,7 +19,6 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
 #include "MuonRIO_OnTrack/MuonClusterOnTrack.h"
 #include "MuonIdHelpers/MuonIdHelperTool.h"
 
@@ -86,7 +85,6 @@ namespace Muon {
     // Private data:
     // /////////////////////////////////////////////////////////////////
 
-    ToolHandle<Trk::IRIO_OnTrackErrorScalingTool>   m_errorScalingTool;
     ToolHandle<Muon::MuonIdHelperTool>   m_idHelper;
     bool                                 m_scaleCscCov;
     bool                                 m_scaleRpcCov;
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/MuonRIO_OnTrack/MDTRIO_OnTrackErrorScaling.h b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/MuonRIO_OnTrack/MDTRIO_OnTrackErrorScaling.h
new file mode 100644
index 0000000000000000000000000000000000000000..2ce586665d74c21abd7812c09fc53e4d1875f27e
--- /dev/null
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/MuonRIO_OnTrack/MDTRIO_OnTrackErrorScaling.h
@@ -0,0 +1,31 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef _MDTRIO_OnTrackErrorScaling_H_
+#define _MDTRIO_OnTrackErrorScaling_H_
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+#include "TrkEventPrimitives/ParamDefs.h"
+
+class MDTRIO_OnTrackErrorScaling : public RIO_OnTrackErrorScaling
+{
+public:
+  virtual CLID clid() const override;
+
+  virtual Amg::MatrixX getScaledCovariance(const Amg::MatrixX& cov_input,
+                                           bool is_endcap) const;
+
+  enum EMDTErrorScalingRegions {
+    kBarrel,
+    kEndcap,
+    kNParamTypes};
+
+  static const char **paramNames() { return s_names; }
+  virtual bool postProcess() override;
+protected:
+  static const char *s_names[kNParamTypes];
+};
+
+CLASS_DEF( MDTRIO_OnTrackErrorScaling ,  100992927, 1 )
+CONDCONT_DEF(MDTRIO_OnTrackErrorScaling, 213408417, RIO_OnTrackErrorScaling);
+#endif
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/MuonRIO_OnTrack/MuonEtaPhiRIO_OnTrackErrorScaling.h b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/MuonRIO_OnTrack/MuonEtaPhiRIO_OnTrackErrorScaling.h
new file mode 100644
index 0000000000000000000000000000000000000000..8b3634e1307e7283f2fe16e5f84a263b4ae96262
--- /dev/null
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/MuonRIO_OnTrack/MuonEtaPhiRIO_OnTrackErrorScaling.h
@@ -0,0 +1,31 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef _MUONETAPHIRIO_OnTrackErrorScaling_H_
+#define _MUONETAPHIRIO_OnTrackErrorScaling_H_
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+#include "TrkEventPrimitives/ParamDefs.h"
+
+class MuonEtaPhiRIO_OnTrackErrorScaling : public RIO_OnTrackErrorScaling
+{
+public:
+  virtual CLID clid() const override;
+
+  virtual Amg::MatrixX getScaledCovariance(const Amg::MatrixX& cov_input,
+                                           const Trk::ParamDefs measuredCoord) const;
+
+  enum EMuonEtaPhiErrorScalingRegions {
+    kPhi,
+    kEta,
+    kNParamTypes};
+
+  static const char **paramNames() { return s_names; }
+  virtual bool postProcess() override;
+protected:
+  static const char *s_names[kNParamTypes];
+};
+
+CLASS_DEF( MuonEtaPhiRIO_OnTrackErrorScaling ,  92816455, 1 )
+CONDCONT_DEF(MuonEtaPhiRIO_OnTrackErrorScaling, 81544491, RIO_OnTrackErrorScaling);
+#endif
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/src/MDTRIO_OnTrackErrorScaling.cxx b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/src/MDTRIO_OnTrackErrorScaling.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..b2d59f77eb69e684d8aeb840a7385bb4cf460ac4
--- /dev/null
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/src/MDTRIO_OnTrackErrorScaling.cxx
@@ -0,0 +1,36 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#include "MuonRIO_OnTrack/MDTRIO_OnTrackErrorScaling.h"
+#include <iostream>
+
+const char *MDTRIO_OnTrackErrorScaling::s_names[MDTRIO_OnTrackErrorScaling::kNParamTypes]={
+    "MDT Barrel",
+    "MDT Endcap"
+  };
+
+namespace {
+  inline double square(double a) { return a*a; }
+}
+
+CLID MDTRIO_OnTrackErrorScaling::clid() const {
+  return ClassID_traits<CondCont<MDTRIO_OnTrackErrorScaling> >::ID();
+}
+
+bool MDTRIO_OnTrackErrorScaling::postProcess() {
+  checkParameters("MDTRIO_OnTrackErrorScaling", kNParamTypes, s_names, 2);
+  return true;
+}
+
+Amg::MatrixX MDTRIO_OnTrackErrorScaling::getScaledCovariance(const Amg::MatrixX& cov_input,
+                                                             bool is_endcap) const
+{
+  Amg::MatrixX newCov(cov_input);
+  double a = (is_endcap) ? params()[kEndcap][0] : params()[kBarrel][0];
+  double b = (is_endcap) ? params()[kEndcap][1] : params()[kBarrel][1];
+  newCov(0,0) *= square(a);
+  newCov(0,0) += square(b);
+  return newCov;
+}
+
+
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/src/MuonEtaPhiRIO_OnTrackErrorScaling.cxx b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/src/MuonEtaPhiRIO_OnTrackErrorScaling.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..64c2024ff693c83f0c2e93ada8fb48a1c38ad61e
--- /dev/null
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack/src/MuonEtaPhiRIO_OnTrackErrorScaling.cxx
@@ -0,0 +1,44 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#include "MuonRIO_OnTrack/MuonEtaPhiRIO_OnTrackErrorScaling.h"
+#include <iostream>
+
+const char *MuonEtaPhiRIO_OnTrackErrorScaling::s_names[MuonEtaPhiRIO_OnTrackErrorScaling::kNParamTypes]={
+    "Phi",
+    "Eta"
+  };
+
+namespace {
+  inline double square(double a) { return a*a; }
+}
+
+CLID MuonEtaPhiRIO_OnTrackErrorScaling::clid() const {
+  return ClassID_traits<CondCont<MuonEtaPhiRIO_OnTrackErrorScaling> >::ID();
+}
+
+bool MuonEtaPhiRIO_OnTrackErrorScaling::postProcess() {
+  checkParameters("MuonEtaPhiRIO_OnTrackErrorScaling", kNParamTypes, s_names, 2);
+  return true;
+}
+
+Amg::MatrixX MuonEtaPhiRIO_OnTrackErrorScaling::getScaledCovariance(const Amg::MatrixX& cov_input,
+                                                                    const Trk::ParamDefs measuredCoord) const
+{
+  Amg::MatrixX newCov(cov_input);
+  double a,b = 0.0;
+  if (measuredCoord == Trk::distPhi) {
+    a = params()[kPhi][0];
+    b = params()[kPhi][1];
+  } else if (measuredCoord == Trk::distEta) {
+    a = params()[kEta][0];
+    b = params()[kEta][1];
+  } else {
+    throw std::runtime_error("Invalid measured coordinate. Only Trk::distPhi and Trk::distEta are supported.");
+  }
+  newCov(0,0) *= square(a);
+  newCov(0,0) += square(b);
+  return newCov;
+}
+
+
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py
index 4a8efdd4a4162b4b3e36338da0ac9a494d853961..3326352a52b89c7cd9cc259469a38dca00170975 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecExample/python/MuonRecTools.py
@@ -45,11 +45,21 @@ def MuonClusterOnTrackCreator(name="MuonClusterOnTrackCreator",**kwargs):
 
     return CfgMgr.Muon__MuonClusterOnTrackCreator(name,**kwargs)
 
+def getMuonRIO_OnTrackErrorScalingCondAlg() :
+    error_scaling_def=["CSCRIO_OnTrackErrorScaling:/MUON/TrkErrorScalingCSC"]
+    return getRIO_OnTrackErrorScalingCondAlg( name                = "MuonRIO_OnTrackErrorScalingCondAlg",
+                                              ReadKey             = "/MUON/TrkErrorScaling",
+                                              CondDataAssociation = error_scaling_def)
 
 def CscClusterOnTrackCreator(name="CscClusterOnTrackCreator",**kwargs):
     kwargs.setdefault("CscStripFitter", getPublicTool("CalibCscStripFitter") )
     kwargs.setdefault("CscClusterFitter", getPublicTool("QratCscClusterFitter") )
     kwargs.setdefault("CscClusterUtilTool", getPublicTool("CscClusterUtilTool") )
+    if False  : # enable CscClusterOnTrack error scaling :
+        from InDetRecExample.TrackingCommon import getRIO_OnTrackErrorScalingCondAlg,createAndAddCondAlg
+        createAndAddCondAlg(getMuonRIO_OnTrackErrorScalingCondAlg,'RIO_OnTrackErrorScalingCondAlg')
+
+        kwargs.setdefault("CSCErrorScalingKey","/MUON/TrkErrorScalingCSC")
 
     if globalflags.DataSource() == 'data': # collisions real data or simulated first data
         # scale CSC and hit errors 
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/CMakeLists.txt b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/CMakeLists.txt
deleted file mode 100644
index b97586bec01b31b56fbd3c45f012ad71e1c4308d..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-################################################################################
-# Package: MuonErrorScalingTools
-################################################################################
-
-# Declare the package name:
-atlas_subdir( MuonErrorScalingTools )
-
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Control/AthenaBaseComps
-                          Control/AthenaKernel
-                          DetectorDescription/Identifier
-                          GaudiKernel
-                          MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces
-                          Tracking/TrkEvent/TrkEventPrimitives
-                          PRIVATE
-                          Database/AthenaPOOL/AthenaPoolUtilities
-                          MuonSpectrometer/MuonIdHelpers
-                          MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonCompetingRIOsOnTrack )
-
-# Component(s) in the package:
-atlas_add_component( MuonErrorScalingTools
-                     src/*.cxx
-                     src/components/*.cxx
-                     LINK_LIBRARIES AthenaBaseComps AthenaKernel Identifier GaudiKernel MuonRecToolInterfaces TrkEventPrimitives AthenaPoolUtilities MuonIdHelpersLib MuonCompetingRIOsOnTrack )
-
-# Install files from the package:
-atlas_install_headers( MuonErrorScalingTools )
-atlas_install_joboptions( share/*.py )
-
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/MuonErrorScalingTools/MuonErrorScaleDbTool.h b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/MuonErrorScalingTools/MuonErrorScaleDbTool.h
deleted file mode 100644
index e9b6d0403983abeed768ea59d955a58c57237de0..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/MuonErrorScalingTools/MuonErrorScaleDbTool.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUONERRORSCALINGTOOLS_MUONERRORSCALEDBTOOL_H
-#define MUONERRORSCALINGTOOLS_MUONERRORSCALEDBTOOL_H
-
-#include "AthenaBaseComps/AthAlgTool.h"
-
-#include "MuonRecToolInterfaces/IMuonErrorScaleDbTool.h"
-
-#include "GaudiKernel/ToolHandle.h"
-#include "AthenaKernel/IIOVSvc.h"
-
-/**
-   @file MuonErrorScaleDbTool.h
-   @class MuonErrorScaleDbTool
-   
-   @brief Tool for retrieving values from conditions database
-   to be used for error scaling of muon hits in track fitting.
-
-   @date 20 May 2010   
-*/
-
-namespace Muon {
-
-  class MuonIdHelperTool;
-
-  class MuonErrorScaleDbTool : virtual public IMuonErrorScaleDbTool, public AthAlgTool {
-
-  public:
-    MuonErrorScaleDbTool(const std::string& type, const std::string& name,
-			 const IInterface* parent);
-    virtual ~MuonErrorScaleDbTool();
-
-    virtual StatusCode initialize();
-    virtual StatusCode finalize();
-
-    bool doMdt() const { return m_do_mdt; }
-    bool doTgc() const { return m_do_tgc; }
-    bool doRpc() const { return m_do_rpc; }
-    bool doCsc() const { return m_do_csc; }
-
-    std::vector<double> errScale(const Identifier id) const;
-
-    virtual MsgStream& dump(MsgStream&) const;
-
- private:
-    
-    void registerParameters(bool&, std::vector<double>*, const std::string&);
-
-    //! conditions data handling: call-back entry to re-set scaling parameters when an IOV is new or changed.
-    StatusCode callback( IOVSVC_CALLBACK_ARGS );
-
-    //! internal code structuring: formatted output for scaling parameters
-    const std::string makeInfoString(const std::string&,const bool,
-                                     const std::vector<double>&) const;
-    
-    ///////////////////////////////////////////////////////////////////
-    // Private data members:
-    ///////////////////////////////////////////////////////////////////
-
-    ToolHandle<MuonIdHelperTool> m_muonIdHelperTool; //!< Muon ID helper tool
-
-    //! conditions data handling: COOL folder name for Muon scaling paremeters
-    const std::string m_muonFolder;
-
-    //! map holding the scaling parameters for each detector region
-    typedef std::map<std::string,std::vector<double>*> ParamMap;
-
-    /** @brief map holding the scaling parameters for each detector region
-	
-        The parammap is used at call-back/initialisation to avoid map
-        search at every scaling call. It maps directly to the
-        references of the local vector variables!
-    */
-    ParamMap m_parammap;
-    
-    bool                  m_do_mdt;
-    bool                  m_do_tgc;
-    bool                  m_do_rpc;
-    bool                  m_do_csc;
-
-    std::vector<double>   m_scaling_mdt_barrel;
-    std::vector<double>   m_scaling_mdt_endcap;
-    std::vector<double>   m_scaling_tgcPhi;
-    std::vector<double>   m_scaling_tgcEta;
-    std::vector<double>   m_scaling_rpcPhi;
-    std::vector<double>   m_scaling_rpcEta;
-    std::vector<double>   m_scaling_cscPhi;
-    std::vector<double>   m_scaling_cscEta;
-    
-  };
-
-  MsgStream& operator << (MsgStream&, const MuonErrorScaleDbTool&);
-  
-  inline MsgStream& operator <<
-    (MsgStream& sl, const MuonErrorScaleDbTool& se)
-  {
-    return se.dump(sl);
-  }
-}
-
-#endif // MUONERRORSCALINGTOOLS_MUONERRORSCALEDBTOOL_H
-
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/MuonErrorScalingTools/MuonRIO_OnTrackErrorScalingTool.h b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/MuonErrorScalingTools/MuonRIO_OnTrackErrorScalingTool.h
deleted file mode 100644
index 25343c3c85bb15d363b75f374daed973ec9b0204..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/MuonErrorScalingTools/MuonRIO_OnTrackErrorScalingTool.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-///////////////////////////////////////////////////////////////////
-// MuonRIO_OnTrackErrorScalingTool.h, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
-#ifndef MUON_MUONRIO_ONTRACKERRORSCALINGTOOL_H
-#define MUON_MUONRIO_ONTRACKERRORSCALINGTOOL_H
-
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/ToolHandle.h"
-#include "Identifier/Identifier.h"
-
-#include "MuonRecToolInterfaces/IMuonRIO_OnTrackErrorScalingTool.h"
-#include "TrkEventPrimitives/ParamDefs.h"
-
-
-namespace Muon
-{
-  class IMuonErrorScaleDbTool;
-
-  class MuonRIO_OnTrackErrorScalingTool :  public AthAlgTool, 
-    virtual public Muon::IMuonRIO_OnTrackErrorScalingTool {
-    
-  public:
-    MuonRIO_OnTrackErrorScalingTool(const std::string&, const std::string&, 
-				    const IInterface*);
-
-    /** default destructor */
-    virtual ~MuonRIO_OnTrackErrorScalingTool();
-    
-    /** standard Athena-Algorithm method */
-    virtual StatusCode initialize();
-
-    /** standard Athena-Algorithm method */
-    virtual StatusCode finalize();
-
-    virtual bool needToScaleMdt() const;
-    virtual bool needToScaleTgc() const;
-    virtual bool needToScaleRpc() const;
-    virtual bool needToScaleCsc() const;
-
-    virtual Amg::MatrixX*
-     createScaledMdtCovariance(const Amg::MatrixX&,
-				bool is_endcap) const;
-    
-    virtual Amg::MatrixX*
-      createScaledTgcCovariance(const Amg::MatrixX&,
-				const Trk::ParamDefs=Trk::distPhi) const;
-
-    virtual Amg::MatrixX*
-      createScaledRpcCovariance(const Amg::MatrixX&,
-				const Trk::ParamDefs=Trk::distPhi) const;
-    
-    virtual Amg::MatrixX*
-      createScaledCscCovariance(const Amg::MatrixX&,
-				const Trk::ParamDefs=Trk::distPhi) const;
-
-    // 
-    virtual Amg::MatrixX*
-      createScaledMdtCovariance(const Amg::MatrixX&,
-				Identifier id) const;
-
-    // dumps the current scaling parameters (via error scaling DB tool)
-    MsgStream& dump(MsgStream&) const;
-    
-  private:
-
-    ToolHandle<IMuonErrorScaleDbTool> m_errorScaleDbTool;
-
-    //! internal code structuring: error scaling for 2-dim measurements
-    void scale2by2(Amg::MatrixX&, 
-                   const std::vector<double>&,
-                   const std::vector<double>&) const;
-    
-    /** class member version of retrieving MsgStream */
-    mutable MsgStream m_log;
-
-    bool                  m_do_mdt;
-    bool                  m_do_tgc;
-    bool                  m_do_rpc;
-    bool                  m_do_csc;
-    
-    std::vector<double>   m_scaling_mdt_barrel;
-    std::vector<double>   m_scaling_mdt_endcap;
-    std::vector<double>   m_scaling_tgcPhi;
-    std::vector<double>   m_scaling_tgcEta;
-    std::vector<double>   m_scaling_rpcPhi;
-    std::vector<double>   m_scaling_rpcEta;
-    std::vector<double>   m_scaling_cscPhi;
-    std::vector<double>   m_scaling_cscEta;   
-  };
-
-  //________________________________________________________________________
-  inline bool MuonRIO_OnTrackErrorScalingTool::needToScaleMdt() const
-  {
-    return m_do_mdt;
-  }
-  inline  bool MuonRIO_OnTrackErrorScalingTool::needToScaleTgc() const
-  {
-    return m_do_tgc;
-  }
-  inline bool MuonRIO_OnTrackErrorScalingTool::needToScaleRpc() const
-  {
-    return m_do_rpc;
-  }
-  inline bool MuonRIO_OnTrackErrorScalingTool::needToScaleCsc() const
-  {
-    return m_do_csc;
-  }
-
-} // end of namespace
-
-#endif // MUON_MUONRIO_ONTRACKERRORSCALINGTOOL_H
-
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/doc/packagedoc.h b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/doc/packagedoc.h
deleted file mode 100644
index 760878c8ae6125d4b41b7a529212d27d5d634333..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/doc/packagedoc.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-/**
-
-@page MuonErrorScalingTools_page MuonErrorScalingTools Package
-
-@author roberth@bu.edu 
-
-@section MuonErrorScalingTools_DescriptionMuonErrorScalingTools General description
-
-MuonErrorScalingTools is a package providing tools used to scale errors for muon hits used in muon track reconstruction.  Tools provided are:
-- Muon::MuonErrorScaleDbTool, used to retrieve error scaling constants from conditions database
-- Muon::MuonRIO_OnTrackErrorScalingTool, used to scale errors for muon hits
-
-*/
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/share/ConfigureMuonErrorScaling.py b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/share/ConfigureMuonErrorScaling.py
deleted file mode 100644
index 40e01ebcf52a94f7485898e2fbcb5808a4ae445d..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/share/ConfigureMuonErrorScaling.py
+++ /dev/null
@@ -1,36 +0,0 @@
-
-# specify database and folders
-from AthenaCommon.AppMgr import ServiceMgr as svcMgr
-svcMgr.IOVDbSvc.dbConnection="sqlite://X_muon;schema=mycool.db;dbname=OFLP200"
-    
-from IOVDbSvc.CondDB import conddb
-conddb.addFolder("","<dbConnection>sqlite://X_muon;schema=mycool.db;dbname=OFLP200</dbConnection> /MUON/TrkErrorScaling" + "<tag>MuonTrkErrorScaling_nominal</tag>", force=True)
-conddb.addFolderWithTag('mycool.db','/MUON/TrkErrorScaling','MuonTrkErrorScaling_nominal')
-
-
-# configure muon hit creator tools to use error scaling
-from MuonRecExample import MuonRecTools
-
-from MuonErrorScalingTools.MuonErrorScalingToolsConf import Muon__MuonErrorScaleDbTool,Muon__MuonRIO_OnTrackErrorScalingTool
-muonErrorScaleDbTool = Muon__MuonErrorScaleDbTool("MuonErrorScaleDbTool")
-ToolSvc += muonErrorScaleDbTool
-
-muonRIO_OnTrackErrorScalingTool = \
-    Muon__MuonRIO_OnTrackErrorScalingTool("MuonRIO_OnTrackErrorScalingTool",
-                                          ErrorScaleDbTool=muonErrorScaleDbTool)
-                                                                        
-ToolSvc += muonRIO_OnTrackErrorScalingTool
-
-muonClusterOnTrackCreator = MuonRecTools.getPublicTool( "MuonClusterOnTrackCreator" )
-muonClusterOnTrackCreator.OutputLevel = 1
-
-muonClusterOnTrackCreator.ErrorScalingTool = ToolSvc.MuonRIO_OnTrackErrorScalingTool
-muonClusterOnTrackCreator.ErrorScalingTool.OutputLevel = 1
-    
-mdtDriftCircleOnTrackCreator = MuonRecTools.getPublicTool( "MdtDriftCircleOnTrackCreator" )
-mdtDriftCircleOnTrackCreator.DoFixedError = False
-mdtDriftCircleOnTrackCreator.DoErrorScaling = True
-mdtDriftCircleOnTrackCreator.OutputLevel = 1
-
-mdtDriftCircleOnTrackCreator.ErrorScalingTool = ToolSvc.MuonRIO_OnTrackErrorScalingTool
-mdtDriftCircleOnTrackCreator.ErrorScalingTool.OutputLevel = 1
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/share/make_MuonTrkError.py b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/share/make_MuonTrkError.py
deleted file mode 100755
index 178c8b695377c01cd9070c0787a4d18af0dc79b3..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/share/make_MuonTrkError.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/env python
-#
-# script to turn scaling parameters into a local SQlite DB.
-# does not publish directly to COOL.
-# updated for COOL 2 (RJH 7/6/07)
-#
-import sys,traceback
-from PyCool import cool,coral
-
-# database and folder name
-connect="sqlite://X;schema=mycool.db;dbname=OFLP200"
-foldername="/MUON/TrkErrorScaling"
-tag="MuonTrkErrorScaling_nominal"
-dataset=[ ("MDT Barrel",1.0,0.0),
-          ("MDT Endcap",1.0,0.0),
-          ("TGC Phi",1.0,0.0),
-          ("TGC Eta",1.0,0.0),
-          ("RPC Phi",1.0,0.0),
-          ("RPC Eta",1.0,0.0),
-          ("CSC Phi",1.0,0.0),
-          ("CSC Eta",1.0,0.0)
-          ]
-# first value is factor on error, second uncorrelated noise term
-# to error given in mm
-
-dbSvc = cool.DatabaseSvcFactory.databaseService()
-try:
-    db = dbSvc.openDatabase(connect,False)
-except Exception, e:
-    print e
-    print "Could not connect to the database"
-    # try to create it
-    try:
-        db=dbSvc.createDatabase(connect)
-    except Exception, e:
-        print e
-        print "Could not create the database either"
-        sys.exit(2)
-
-# setup folder specification
-spec = cool.RecordSpecification()
-spec.extend("Name",cool.StorageType.String4k)
-spec.extend("Len",cool.StorageType.Int32)
-# assume we will not have more than 5 parameters
-maxpar=5
-spec.extend("par1",cool.StorageType.Double)
-spec.extend("par2",cool.StorageType.Double)
-spec.extend("par3",cool.StorageType.Double)
-spec.extend("par4",cool.StorageType.Double)
-spec.extend("par5",cool.StorageType.Double)
-
-# check if folder exists
-if (not db.existsFolder(foldername)):
-    print "Attempt to create",foldername
-    desc='<timeStamp>run-event</timeStamp><addrHeader><address_header service_type=\"71\" clid=\"1238547719\" /></addrHeader><typeName>CondAttrListCollection</typeName>'
-    db.createFolder(foldername,spec,desc,cool.FolderVersioning.MULTI_VERSION,True)
-    print 'Folder',foldername,'created OK'
-
-# now write data
-folder=db.getFolder(foldername)
-chan=0
-print "Writing data to",folder,"with tag",tag
-for idata in dataset:
-    name=idata[0]
-    nvals=len(idata)-1
-    if (nvals>maxpar):
-        print "Maximum of",maxpar,"parameters allowed - additional ones ignored!"
-        nvals=maxpar
-    print "Write data for name",name,"number of values",nvals,"at channel",chan
-    payload=cool.Record(spec)
-    payload['Name']=name
-    payload['Len']=nvals
-    for i in range(0,nvals):
-        payload['par'+str(1+i)]=idata[1+i]
-    folder.storeObject(cool.ValidityKeyMin,cool.ValidityKeyMax,payload,chan,tag)
-    chan+=1
-print "All done"
-db.closeDatabase()
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/MuonErrorScaleDbTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/MuonErrorScaleDbTool.cxx
deleted file mode 100644
index 84fb11cd760e97825161cb680982f491a0feef5e..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/MuonErrorScaleDbTool.cxx
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/ListItem.h"
-#include "AthenaPoolUtilities/CondAttrListCollection.h"
-
-#include "MuonIdHelpers/MuonIdHelperTool.h"
-
-#include "MuonErrorScalingTools/MuonErrorScaleDbTool.h"
-
-//________________________________________________________________________
-Muon::MuonErrorScaleDbTool::MuonErrorScaleDbTool(const std::string& type,
-						 const std::string& name, 
-						 const IInterface* parent)
-  : AthAlgTool(type,name,parent)
-  , m_muonIdHelperTool("Muon::MuonIdHelperTool/MuonIdHelperTool")
-  , m_muonFolder("/MUON/TrkErrorScaling")
-  , m_do_mdt(false)
-  , m_do_tgc(false)
-  , m_do_rpc(false)
-  , m_do_csc(false)
-  , m_scaling_mdt_barrel(std::vector<double>(0))
-  , m_scaling_mdt_endcap(std::vector<double>(0))
-  , m_scaling_tgcPhi(std::vector<double>(0))
-  , m_scaling_tgcEta(std::vector<double>(0))
-  , m_scaling_rpcPhi(std::vector<double>(0))
-  , m_scaling_rpcEta(std::vector<double>(0))
-  , m_scaling_cscPhi(std::vector<double>(0))
-  , m_scaling_cscEta(std::vector<double>(0))
-{
-
-  declareInterface<Muon::IMuonErrorScaleDbTool>(this);
-  
-  declareProperty("MuonIdHelperTool", m_muonIdHelperTool);  
-
-
-}
-
-//________________________________________________________________________
-Muon::MuonErrorScaleDbTool::~MuonErrorScaleDbTool()
-{
-
-}
-
-//________________________________________________________________________
-StatusCode Muon::MuonErrorScaleDbTool::initialize()
-{
-
-  // --- check scaling factors
-  registerParameters(m_do_mdt,
-		     &m_scaling_mdt_barrel,"MDT Barrel");
-  registerParameters(m_do_mdt,
-		     &m_scaling_mdt_endcap,"MDT Endcap");
-  
-  registerParameters(m_do_tgc,
-		     &m_scaling_tgcPhi,"TGC Phi");
-  registerParameters(m_do_tgc,
-		     &m_scaling_tgcEta,"TGC Eta");
-  
-  registerParameters(m_do_rpc,
-		     &m_scaling_rpcPhi,"RPC Phi");
-  registerParameters(m_do_rpc,
-		     &m_scaling_rpcEta,"RPC Eta");
-  
-  registerParameters(m_do_csc,
-		     &m_scaling_cscPhi,"CSC Phi");
-  registerParameters(m_do_csc,
-		     &m_scaling_cscEta,"CSC Eta");
-   
-  // find and register callback function for Muons
-  const DataHandle<CondAttrListCollection> colptr;
-  if (detStore()->contains<CondAttrListCollection>(m_muonFolder)) {
-    if (StatusCode::SUCCESS!=detStore()->
-	regFcn(&Muon::MuonErrorScaleDbTool::callback,
-	       this,colptr,m_muonFolder)) {
-      msg(MSG::ERROR) << "Found the folder, but could not register a callback"
-		      << " on " << m_muonFolder << endmsg;
-      return StatusCode::FAILURE;
-    } 
-    else
-      msg(MSG::INFO) << "Registered callback on COOL folder " 
-		     << m_muonFolder << endmsg;
-  } 
-  else {
-    msg(MSG::INFO) << "Folder " << m_muonFolder << " is not loaded, "
-		   << "intrinsic meas't errors will be used for Muon RIOs_OnTrack." << endmsg;
-    
-    m_do_mdt = false;
-    m_do_tgc = false;
-    m_do_rpc = false;
-    m_do_csc = false;
-  }
-
-  // set up MuonIdHelperTool
-  if (m_muonIdHelperTool.retrieve().isSuccess()) 
-    ATH_MSG_INFO("Retrieved  "<<m_muonIdHelperTool);
-  else {
-    ATH_MSG_FATAL("Could not get MuonIdHelperTool!");
-    return StatusCode::FAILURE;
-  }    
-  
-  return StatusCode::SUCCESS;
-}
-
-//________________________________________________________________________
-StatusCode Muon::MuonErrorScaleDbTool::finalize()
-{
-  return StatusCode::SUCCESS;
-}
-
-//________________________________________________________________________
-void Muon::MuonErrorScaleDbTool::registerParameters(bool& do_detSystem,
-						    std::vector<double>* errscaler,
-						    const std::string& sdet) 
-{
-  // add this set of parameters to list, always set the parameters to be
-  // 'used' for now
-  do_detSystem=true;
-  m_parammap.insert(ParamMap::value_type(sdet,errscaler));
-
-  // set default parameters in case no info is read from condDB for this set
-  errscaler->clear();
-  errscaler->push_back(1.0);
-  errscaler->push_back(0.0);
-}
-
-//________________________________________________________________________
-MsgStream& Muon::MuonErrorScaleDbTool::dump( MsgStream& out ) const
-{
-  //--- need an sprintf here.
-  out << std::endl << name() << " has found the following factors and constants to scale errors:"  <<std::endl;
-  out << "| Detector System                factor   constant            |"           <<std::endl;
-  out << "+-------------------------------------------------------------+"           <<std::endl;
-
-  out << makeInfoString("MDT barrel    ",m_do_mdt,m_scaling_mdt_barrel) <<std::endl;
-  out << makeInfoString("MDT endcap    ",m_do_mdt,m_scaling_mdt_endcap) <<std::endl;
-  out << makeInfoString("RPC Phi barrel",m_do_rpc,m_scaling_rpcPhi)     <<std::endl;
-  out << makeInfoString("RPC Eta barrel",m_do_rpc,m_scaling_rpcEta)     <<std::endl;
-  out << makeInfoString("TGC Phi endcap",m_do_tgc,m_scaling_tgcPhi)     <<std::endl;
-  out << makeInfoString("TGC Eta endcap",m_do_tgc,m_scaling_tgcEta)     <<std::endl;
-  out << makeInfoString("CSC Phi endcap",m_do_csc,m_scaling_cscPhi)     <<std::endl;
-  out << makeInfoString("CSC Eta endcap",m_do_csc,m_scaling_cscEta)     <<std::endl;
-  out << "+-------------------------------------------------------------+"           <<std::endl;
-  return out;
-}
-
-
-//________________________________________________________________________
-const std::string 
-Muon::MuonErrorScaleDbTool::makeInfoString(const std::string& sdet, 
-					   const bool do_detSystem,
-					   const std::vector<double>& errscaler) const 
-{
-  
-  const int nformat=62;
-  std::string s1("| ");
-  s1.append(sdet);
-  if (do_detSystem) {
-    s1.append(" - scaled by ");
-  } 
-  else {
-    s1.append(" - unscaled. ");
-  }
-  char s2[7];
-  sprintf(s2,"%6.3g ",errscaler[0]);s1.append(s2);
-  s1.append("* err (+) ");
-  sprintf(s2,"%6.3g ",errscaler[1]);s1.append(s2);
-  int n = nformat-s1.size();
-  for(int i=0; i<n; ++i) s1.append(" "); 
-  s1.append("|");
-  return s1;
-}
-
-//________________________________________________________________________
-StatusCode 
-Muon::MuonErrorScaleDbTool::callback(IOVSVC_CALLBACK_ARGS_P(I,keys) ) 
-{
-  (void) I;
-  
-  // callback function when the conditions data object changes
-  // loop over all the keys, action for the one we are interested in
-  for (std::list<std::string>::const_iterator itr=keys.begin();itr!=keys.end();
-       ++itr) {
-    if (*itr==m_muonFolder) {
-      ATH_MSG_DEBUG ("Callback function invoked! (Folder: " << *itr << ")");
-      const CondAttrListCollection* atrlistcol=0;
-      if (StatusCode::SUCCESS==detStore()->retrieve(atrlistcol,*itr)) {
-	// loop through elements of the attribute list collection
-	for (CondAttrListCollection::const_iterator citr=atrlistcol->begin();
-	     citr!=atrlistcol->end();++citr) {
-	  // attribute list format is name(string), n(int) followed by n double
-	  const coral::AttributeList& alist=citr->second;
-	  try {
-	    const std::string& name=alist[0].data<std::string>();
-	    const int nvals=alist[1].data<int>();
-	    // locate pointer to parameters vector, based on name
-	    // note that names unknown to the service are ignored
-	    ParamMap::const_iterator loc=m_parammap.find(name);
-	    if (loc!=m_parammap.end()) {
-	      std::vector<double>* params=loc->second;
-	      ATH_MSG_DEBUG ("Setting " << nvals << " parameters for " << name << " at location " << params);
-	      params->clear();
-	      for (int i=0;i<nvals;++i)
-		params->push_back(alist[2+i].data<double>());
-	    } else {
-	      ATH_MSG_DEBUG ("Ignored unexpected parameter" << name);
-	    }
-	  }
-	  // catch problems with the attributelist accesses
-	  catch (coral::Exception& e) {
-	    msg(MSG::ERROR) << "Problem with AttributeList decoding: " << e.what() << endmsg;
-	    return StatusCode::FAILURE;
-	  }
-	}
-      } else {
-	msg(MSG::ERROR) << "Problem reading conditions object " << *itr << endmsg;
-	return StatusCode::FAILURE;
-      }
-    }
-  }
-  // printout new constants if in debug print mode
-  ATH_MSG_DEBUG ( (*this) );
-  return StatusCode::SUCCESS;
-}
-
-//________________________________________________________________________
-std::vector<double> 
-Muon::MuonErrorScaleDbTool::errScale(const Identifier id) const
-{
-  std::vector<double> val;
-
-  if (!m_muonIdHelperTool->isMuon(id)) {
-    ATH_MSG_WARNING("using MuonErrorScaleDbTool with non-muon Identifier!");
-    return val;
-  }
-  
-  if (m_muonIdHelperTool->isMdt(id)) {
-    bool isEndcap=m_muonIdHelperTool->isEndcap(id);  
-    return isEndcap ? m_scaling_mdt_endcap : m_scaling_mdt_barrel;
-  }
-  else if (m_muonIdHelperTool->isTgc(id)) {
-    bool measPhi = m_muonIdHelperTool->measuresPhi(id);
-    return measPhi ? m_scaling_tgcPhi : m_scaling_tgcEta;        
-  }
-  else if (m_muonIdHelperTool->isRpc(id)) {
-    bool measPhi = m_muonIdHelperTool->measuresPhi(id);
-    return measPhi ? m_scaling_rpcPhi : m_scaling_rpcEta;        
-  }
-  else if (m_muonIdHelperTool->isCsc(id)) {
-    bool measPhi = m_muonIdHelperTool->measuresPhi(id);
-    return measPhi ? m_scaling_cscPhi : m_scaling_cscEta;        
-  }
-
-  ATH_MSG_ERROR("didn't find muon type!");
-  return val;
-
-}
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/MuonRIO_OnTrackErrorScalingTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/MuonRIO_OnTrackErrorScalingTool.cxx
deleted file mode 100644
index 502b3fc1539e152b80c5bbde6daf69c74e75d94e..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/MuonRIO_OnTrackErrorScalingTool.cxx
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "MuonErrorScalingTools/MuonRIO_OnTrackErrorScalingTool.h"  
-#include "MuonRecToolInterfaces/IMuonErrorScaleDbTool.h"  
-
-#include "MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h"
-
-#include <cmath>
-
-//________________________________________________________________________
-Muon::MuonRIO_OnTrackErrorScalingTool::MuonRIO_OnTrackErrorScalingTool(const std::string& t, 
-								       const std::string& n, const IInterface* p)
-  : AthAlgTool(t,n,p)
-  , m_errorScaleDbTool("Muon::MuonErrorScaleDbTool/MuonErrorScaleDbTool")  
-  , m_log(msgSvc(),n)    
-  , m_do_mdt(false)
-  , m_do_tgc(false)
-  , m_do_rpc(false)
-  , m_do_csc(false)
-{
-  
-  declareInterface<Trk::IRIO_OnTrackErrorScalingTool>(this);
-
-  declareProperty("ErrorScaleDbTool", m_errorScaleDbTool);
-
-}
-
-//________________________________________________________________________
-Muon::MuonRIO_OnTrackErrorScalingTool::~MuonRIO_OnTrackErrorScalingTool()
-{
-
-}
-
-//________________________________________________________________________
-StatusCode Muon::MuonRIO_OnTrackErrorScalingTool::initialize()
-{
-  
-  //m_log.setLevel(outputLevel());
-  
-  if (m_errorScaleDbTool.retrieve().isSuccess()) 
-    ATH_MSG_INFO("Retrieved "<<m_errorScaleDbTool);
-  else {
-    ATH_MSG_FATAL("Could not get "<<m_errorScaleDbTool);
-    return StatusCode::FAILURE;
-  }
-
-  // --- check scaling factors
-  m_do_mdt = m_errorScaleDbTool->doMdt();
-  m_do_tgc = m_errorScaleDbTool->doTgc();
-  m_do_rpc = m_errorScaleDbTool->doRpc();
-  m_do_csc = m_errorScaleDbTool->doCsc();
-  
-  m_log << MSG::INFO << "initialize() successful in " << name() << endmsg;
-  return StatusCode::SUCCESS;  
-}
-
-//________________________________________________________________________
-MsgStream& Muon::MuonRIO_OnTrackErrorScalingTool::dump( MsgStream& out ) const
-{
-  out << m_errorScaleDbTool;
-
-  return out;
-}
-
-//________________________________________________________________________
-StatusCode Muon::MuonRIO_OnTrackErrorScalingTool::finalize()
-{
-  msg(MSG::INFO)  << "finalize() successful in " << name() << endmsg;
-  return StatusCode::SUCCESS;
-}
-
-//________________________________________________________________________
-void Muon::MuonRIO_OnTrackErrorScalingTool::scale2by2(Amg::MatrixX& cov,
-						      const std::vector<double>& phiTrafo,
-						      const std::vector<double>& etaTrafo) const 
-{
-  // careful not to change character of error
-  double corr = (fabs(cov(0,1)) > 1.0e-20)             ?
-    cov(0,1)/(cov(0,0)*cov(1,1)) :
-    0.0;
-  cov(0,0) *= phiTrafo[0]*phiTrafo[0];
-  cov(0,0) += phiTrafo[1]*phiTrafo[1];
-  cov(1,1) *= etaTrafo[0]*etaTrafo[0];
-  cov(1,1) += etaTrafo[1]*etaTrafo[1];
-  if (corr !=0.0) cov(0,1) = corr*cov(0,0)*cov(1,1);
-}
-
-//________________________________________________________________________
-Amg::MatrixX*
-Muon::MuonRIO_OnTrackErrorScalingTool::createScaledMdtCovariance(const Amg::MatrixX& inputCov, 
-								 bool is_endcap) const
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a = (is_endcap) ? m_scaling_mdt_endcap[0] : m_scaling_mdt_barrel[0];
-  double b = (is_endcap) ? m_scaling_mdt_endcap[1] : m_scaling_mdt_barrel[1];
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-//________________________________________________________________________
-Amg::MatrixX*
-Muon::MuonRIO_OnTrackErrorScalingTool::createScaledTgcCovariance(const Amg::MatrixX& inputCov,
-								 const Trk::ParamDefs measuredCoord) const // exists only as end-cap thing
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a,b = 0.0;
-  if (measuredCoord == Trk::distPhi) {
-    a = m_scaling_tgcPhi[0];
-    b = m_scaling_tgcPhi[1];
-  } else if (measuredCoord == Trk::distEta) {
-    a = m_scaling_tgcEta[0];
-    b = m_scaling_tgcEta[1];
-  } else {
-    delete newCov;
-    msg(MSG::WARNING) << "Wrong TGC measurement coordinate definition given to RIO_OnTrackErrorScalingTool." << endmsg;
-    msg(MSG::WARNING) << "Error scaling cancelled, cov=NULL." << endmsg;
-    msg(MSG::INFO) << "Allowed definitions: Trk::distPhi, Trk::distEta." << endmsg;
-    return 0;
-  }
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-//________________________________________________________________________
-Amg::MatrixX*
-Muon::MuonRIO_OnTrackErrorScalingTool::createScaledRpcCovariance(const Amg::MatrixX& inputCov,
-								 const Trk::ParamDefs measuredCoord ) const // exists only as barrel thing
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a,b = 0.0;
-  if (measuredCoord == Trk::distPhi) {
-    a = m_scaling_rpcPhi[0];
-    b = m_scaling_rpcPhi[1];
-  } else if (measuredCoord == Trk::distEta) {
-    a = m_scaling_rpcEta[0];
-    b = m_scaling_rpcEta[1];
-  } else {
-    delete newCov;
-    msg(MSG::WARNING) << "Wrong RPC measurement coordinate definition given to RIO_OnTrackErrorScalingTool." << endmsg;
-    msg(MSG::WARNING) << "Error scaling cancelled, cov=NULL." << endmsg;
-    msg(MSG::INFO) << "Allowed definitions: Trk::distPhi, Trk::distEta." << endmsg;
-    return 0;
-  }
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-//________________________________________________________________________
-Amg::MatrixX*
-Muon::MuonRIO_OnTrackErrorScalingTool::createScaledCscCovariance(const Amg::MatrixX& inputCov,
-								 const Trk::ParamDefs measuredCoord) const // is a far-fwd technology
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a,b = 0.0;
-  if (measuredCoord == Trk::distPhi) {
-    a = m_scaling_cscPhi[0];
-    b = m_scaling_cscPhi[1];
-  } else if (measuredCoord == Trk::distEta) {
-    a = m_scaling_cscEta[0];
-    b = m_scaling_cscEta[1];
-  } else {
-    delete newCov;
-    msg(MSG::WARNING) << "Wrong CSC measurement coordinate definition given to RIO_OnTrackErrorScalingTool." << endmsg;
-    msg(MSG::WARNING) << "Error scaling cancelled, cov=NULL." << endmsg;
-    msg(MSG::INFO) << "Allowed definitions: Trk::distPhi, Trk::distEta." << endmsg;
-    return 0;
-  }
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-//________________________________________________________________________
-Amg::MatrixX*
-Muon::MuonRIO_OnTrackErrorScalingTool::createScaledMdtCovariance(const Amg::MatrixX& inputCov, 
-								 Identifier ) const
-{
-
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a = 1.;
-  double b = 0.;
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/components/MuonErrorScalingTools_entries.cxx b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/components/MuonErrorScalingTools_entries.cxx
deleted file mode 100644
index fe31dd3711715d1d2c5ac7581fe30fcfa957cb6d..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonErrorScalingTools/src/components/MuonErrorScalingTools_entries.cxx
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "MuonErrorScalingTools/MuonRIO_OnTrackErrorScalingTool.h"
-#include "MuonErrorScalingTools/MuonErrorScaleDbTool.h"
-
-using namespace Muon;
-
-DECLARE_COMPONENT( MuonRIO_OnTrackErrorScalingTool )
-DECLARE_COMPONENT( MuonErrorScaleDbTool )
-
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces/MuonRecToolInterfaces/IMuonErrorScaleDbTool.h b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces/MuonRecToolInterfaces/IMuonErrorScaleDbTool.h
deleted file mode 100755
index d2ca8f989e3509078f6c64589413a61be90af029..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces/MuonRecToolInterfaces/IMuonErrorScaleDbTool.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUON_IMUONERRORSCALEDBTOOL_H
-#define MUON_IMUONERRORSCALEDBTOOL_H
-
-#include "Identifier/Identifier.h"
-
-static const InterfaceID IID_IMuonErrorScaleDbTool
-    ("Muon::IMuonErrorScaleDbTool",1,0);
-
-
-namespace Muon {
-
-  /** 
-      @file IMuonErrorScaleDbTool.h
-      @class IMuonErrorScaleDbTool
-
-      @brief Interface for tools used to retrieve constants from conditions database used for error scaling of muon hits.
-
-      @author Robert Harrington <roberth@bu.edu>
-      @date 20 May 2010
-   */
-
-  class IMuonErrorScaleDbTool : virtual public IAlgTool {
-    
-  public:
-    
-    static const InterfaceID& interfaceID();
-
-    virtual StatusCode initialize() = 0;
-    virtual StatusCode finalize() = 0;
-
-    /** methods to indicate whether constants are available for error scaling of subsystems. */
-    virtual bool doMdt() const = 0;
-    virtual bool doTgc() const = 0;
-    virtual bool doRpc() const = 0;
-    virtual bool doCsc() const = 0;
-
-    virtual std::vector<double> errScale(const Identifier id) const = 0;
-
-    /** dump the scaling parameters to MsgStream output. */
-    virtual MsgStream& dump( MsgStream& ) const = 0;
-  };
-  
-  inline const InterfaceID& IMuonErrorScaleDbTool::interfaceID()
-  {
-    return IID_IMuonErrorScaleDbTool;
-  }
-
-  MsgStream& operator << (MsgStream&, const IMuonErrorScaleDbTool&);
-
-  inline MsgStream& operator << (MsgStream& sl, const IMuonErrorScaleDbTool& se)
-  {
-    return se.dump(sl);
-  }
-
-} // end of name space
-
-
-#endif // MUON_IMUONERRORSCALEDBTOOL_H
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces/MuonRecToolInterfaces/IMuonRIO_OnTrackErrorScalingTool.h b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces/MuonRecToolInterfaces/IMuonRIO_OnTrackErrorScalingTool.h
deleted file mode 100755
index c0c79122e8d06e2abd573232fa5e44fcd324f55c..0000000000000000000000000000000000000000
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonRecToolInterfaces/MuonRecToolInterfaces/IMuonRIO_OnTrackErrorScalingTool.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef MUON_IMUONRIO_ONTRACKERRORSCALINGTOOL_H
-#define MUON_IMUONRIO_ONTRACKERRORSCALINGTOOL_H
-
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
-#include "TrkEventPrimitives/ParamDefs.h"
-
-static const InterfaceID IID_IMuonRIO_OnTrackErrorScalingTool
-    ("Muon::IMuonRIO_OnTrackErrorScalingTool",1,0);
-
-
-namespace Muon {
-
-  /** @brief Interface for tools determining error scaling for muon detectors, inherits from RIO_OnTrackErrorScalingTool.
-   */
-  class IMuonRIO_OnTrackErrorScalingTool : virtual public Trk::IRIO_OnTrackErrorScalingTool
-  {      
-    public:
-    
-    static const InterfaceID& interfaceID();
-
-    virtual StatusCode initialize() = 0;
-    virtual StatusCode finalize() = 0;
-
-    virtual bool needToScalePixel() const { return 0; }
-    virtual bool needToScaleSct()   const { return 0; }
-    virtual bool needToScaleTrt()   const { return 0; }
-    virtual bool needToScaleMdt()   const = 0;
-    virtual bool needToScaleTgc()   const = 0;
-    virtual bool needToScaleRpc()   const = 0;
-    virtual bool needToScaleCsc()   const = 0;
-
-    virtual Amg::MatrixX*
-      createScaledPixelCovariance(const Amg::MatrixX&,
-				  const Identifier&) const { return 0; }
-
-    virtual Amg::MatrixX*
-      createScaledSctCovariance(const Amg::MatrixX&,
-				bool,
-				double) const { return 0; }
-    
-    virtual Amg::MatrixX*
-      createScaledTrtCovariance(const Amg::MatrixX&,
-				bool) const { return 0; }
-    
-    virtual Amg::MatrixX*
-      createScaledMdtCovariance(const Amg::MatrixX&,
-				bool is_endcap) const = 0;
-    
-    virtual Amg::MatrixX*
-      createScaledTgcCovariance(const Amg::MatrixX&,
-				const Trk::ParamDefs=Trk::distPhi) const = 0;
-
-    virtual Amg::MatrixX*
-      createScaledRpcCovariance(const Amg::MatrixX&,
-				const Trk::ParamDefs=Trk::distPhi) const = 0;
-    
-    virtual Amg::MatrixX*
-      createScaledCscCovariance(const Amg::MatrixX&,
-				const Trk::ParamDefs=Trk::distPhi) const = 0;
-   
-  };
-  
-  inline const InterfaceID& IMuonRIO_OnTrackErrorScalingTool::interfaceID()
-  {
-    return IID_IMuonRIO_OnTrackErrorScalingTool;
-  }
-} // end of name space
-
-#endif // MUON_IMUONRIO_ONTRACKERRORSCALINGTOOL_H
-
diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonTruthTools/src/MuonTruthTrackBuilder.h b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonTruthTools/src/MuonTruthTrackBuilder.h
index 4a2b589d73c9ba32640282f8b9d12d2660b34b0e..02b7e846686224335b5f38f5e31597a526f13037 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonTruthTools/src/MuonTruthTrackBuilder.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonTruthTools/src/MuonTruthTrackBuilder.h
@@ -24,12 +24,18 @@
 #include "TrkParameters/TrackParameters.h"
 #include <vector>
 #include "GeoPrimitives/GeoPrimitives.h"
+#include "TrkExInterfaces/IExtrapolator.h"
+#include "MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h"
+#include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h"
+#include "MuonRecToolInterfaces/IMuonCompetingClustersOnTrackCreator.h"
+#include "MuonRecToolInterfaces/IMuonTrackCleaner.h"
+#include "MuonRecToolInterfaces/IMuonTrackExtrapolationTool.h"
+#include "MuonRecToolInterfaces/IMuonTrackToSegmentTool.h"
+#include "TrkFitterInterfaces/ITrackFitter.h"
 
 namespace Trk {
  
   class Track;
-  class ITrackFitter;
-  class IExtrapolator;
   class IRIO_OnTrackCreator;
   class RIO_OnTrack;
   class MeasurementBase;
@@ -41,12 +47,6 @@ namespace Muon {
   class MuonIdHelperTool;
   class MuonEDMPrinterTool;
   class MuonEDMHelperTool;
-  class IMdtDriftCircleOnTrackCreator;
-  class IMuonClusterOnTrackCreator;
-  class IMuonCompetingClustersOnTrackCreator;
-  class IMuonTrackToSegmentTool;
-  class IMuonTrackExtrapolationTool;
-  class IMuonTrackCleaner;
   class MuonSegment;
   class MuonClusterOnTrack;
   /**
diff --git a/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool.h b/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool.h
index 41d43154280751654a5f4d1624a8f3d6ad16af95..5a46ae4bac25ebc03aeaddb57596d1885eca5810 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerTools/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool/TGC_LinearSegmentMakerTool.h
@@ -9,6 +9,7 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 //#include "CLHEP/Vector/TwoVector.h"
+#include "TrkExInterfaces/IIntersector.h"
 
 class TgcIdHelper;
 
@@ -16,10 +17,6 @@ namespace MuonGM
 {
     class MuonDetectorManager;
 }
-namespace Trk
-{
-    class IIntersector;
-}
 
 class TGC_LinearSegmentMakerTool : virtual public Muon::IMuonSegmentMaker, public AthAlgTool
 {
diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h
index fdefd356fe085e81b0a36786398dfa0ff52e27ca..1b341adf9efe466586eeb4c1d91f5feb670c2418 100755
--- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h
+++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h
@@ -30,12 +30,12 @@
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
 #include "xAODMuon/MuonSegmentContainer.h"
 #include "GeneratorObjects/xAODTruthParticleLink.h"
+#include "MCTruthClassifier/IMCTruthClassifier.h"
 
 #include "StoreGate/ReadHandleKey.h"
 #include "StoreGate/WriteHandleKey.h"
 #include "StoreGate/WriteHandleKeyArray.h"
 
-class IMCTruthClassifier;
 class MuonSimDataCollection;
 class CscSimDataCollection;
 
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAthCalculatorTool.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAthCalculatorTool.h
index fb9f362dde0dcf74fd2110531331e00ceb095455..f6661f46fc81d85e17e28cf5d9b3958a75aa238f 100644
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAthCalculatorTool.h
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/IAthCalculatorTool.h
@@ -28,10 +28,7 @@ class INavigable4Momentum;
 static const InterfaceID IID_IAthCalculatorTool("IAthCalculatorTool", 1, 0);
 
 
-// this ought to be deprecated, but we have so many clients, that we
-// are not doing it yet.
-//class [[deprecated("do not use for multi-threaded code")]] IAthCalculatorTool
-class IAthCalculatorTool
+class [[deprecated("do not use for multi-threaded code")]] IAthCalculatorTool
   : virtual public ::IAlgTool
 { 
 
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TCalculatorToolBase.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TCalculatorToolBase.h
index 6b7679ddc109ea6768485c9a93c680a6ad5bfd35..7c2c4289b7adf27c1c6422d26fa73a16a08c1541 100644
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TCalculatorToolBase.h
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TCalculatorToolBase.h
@@ -23,10 +23,7 @@
 
 
 namespace Root {
-  // this ought to be deprecated, but we have so many clients, that we
-  // are not doing it yet.
-  //class [[deprecated("do not use for multi-threaded code")]] TCalculatorToolBase
-  class TCalculatorToolBase
+  class [[deprecated("do not use for multi-threaded code")]] TCalculatorToolBase
   {
 
   public: 
diff --git a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TResult.h b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TResult.h
index 64e16c4e6554550755518ea09c0819a2f752ea0a..996a4cea3e1a74f25f5cef0f250bb61df2d55b32 100644
--- a/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TResult.h
+++ b/PhysicsAnalysis/AnalysisCommon/PATCore/PATCore/TResult.h
@@ -24,10 +24,7 @@
 
 
 namespace Root {
-  // this ought to be deprecated, but we have so many clients, that we
-  // are not doing it yet.
-  //class [[deprecated("do not use for multi-threaded code")]] TResult
-  class TResult
+  class [[deprecated("do not use for multi-threaded code, use xAOD decorations instead")]] TResult
   {
 
   public: 
diff --git a/PhysicsAnalysis/AnalysisCommon/PileupReweighting/Root/PileupReweightingTool.cxx b/PhysicsAnalysis/AnalysisCommon/PileupReweighting/Root/PileupReweightingTool.cxx
index 9b5985e8cb3c7768d02d25c526b042b79129081b..13fac3aee9953c850f0850a7446dcffee4d5626f 100644
--- a/PhysicsAnalysis/AnalysisCommon/PileupReweighting/Root/PileupReweightingTool.cxx
+++ b/PhysicsAnalysis/AnalysisCommon/PileupReweighting/Root/PileupReweightingTool.cxx
@@ -77,7 +77,7 @@ PileupReweightingTool::PileupReweightingTool( const std::string& name ) :CP::TPi
 
 #ifndef XAOD_STANDALONE
 //rootcore can't do this yet!
-void PileupReweightingTool::updateHandler(Property& p) {
+void PileupReweightingTool::updateHandler(Property& /*p*/) {
    //call the original update handler 
    EnableDebugging(this->msgLvl(MSG::DEBUG));
 }
diff --git a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapCheckingTool.h b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapCheckingTool.h
index fecb8488faaeb9277311db08c304e2208575833b..487477ea76407bd53b624e286b9a33a66eb6d3af 100644
--- a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapCheckingTool.h
+++ b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapCheckingTool.h
@@ -67,11 +67,6 @@ public:
   template<class Object1, class Object2>
   bool overlap(const Object1* object1, const Object2* object2, double& deltaR) const ;
 
-protected:
-
-   /** Standard destructor */
-   virtual ~UserAnalysisOverlapCheckingTool();
-
 private:
 
 
diff --git a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapRemovalTool.h b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapRemovalTool.h
index 7c7d2a6ccbcf5a79b88abb79bd8d9e4811b82067..2288cf2ecc670a858f915035604d695fb616bb7d 100644
--- a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapRemovalTool.h
+++ b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisOverlapRemovalTool.h
@@ -95,11 +95,6 @@ public:
   /** check if execute() is already called for this tool in this job for this event */
   bool isExecuted();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~UserAnalysisOverlapRemovalTool();
-
 private:
   struct Vectors {
     ConstDataVector<INavigable4MomentumCollection>* m_outputParticles;
diff --git a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisPreparationTool.h b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisPreparationTool.h
index ccbf0e65570b2541365505e4a9cbbb8e5e04d86a..e3102555ec7e4eba17ffd1b825180cef568cefb7 100644
--- a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisPreparationTool.h
+++ b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/UserAnalysisUtils/UserAnalysisPreparationTool.h
@@ -82,11 +82,6 @@ public:
   const std::pair<unsigned int, unsigned int>& trackParticleSummary() const;
   const std::pair<unsigned int, unsigned int>& caloClusterSummary() const;
 
-protected:
-
-   /** Standard destructor */
-   virtual ~UserAnalysisPreparationTool();
-
 private:
 
   /** container preparation */
diff --git a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapCheckingTool.cxx b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapCheckingTool.cxx
index 976217f23347bdc7401dc6375ff18920b3aaeda4..c613002b4f0cdefe5633a6bcc85190ef0ea18a1e 100644
--- a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapCheckingTool.cxx
+++ b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapCheckingTool.cxx
@@ -64,9 +64,6 @@ StatusCode UserAnalysisOverlapCheckingTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-//------------------------------------------------------------------------------
-UserAnalysisOverlapCheckingTool::~UserAnalysisOverlapCheckingTool()
-{}
 
 
 
diff --git a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapRemovalTool.cxx b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapRemovalTool.cxx
index 21c7dc9c8cf92acc07d9f3f939665e6c8e79cdd5..5aeb8042427d0151351ffb8903f6b27eb18bcd50 100644
--- a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapRemovalTool.cxx
+++ b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisOverlapRemovalTool.cxx
@@ -105,10 +105,6 @@ StatusCode UserAnalysisOverlapRemovalTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-//------------------------------------------------------------------------------
-UserAnalysisOverlapRemovalTool::~UserAnalysisOverlapRemovalTool()
-{}
-
 //-------------------------------------------------------------------------------
 StatusCode UserAnalysisOverlapRemovalTool::execute() {
   ATH_MSG_DEBUG("in execute()" );
diff --git a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisPreparationTool.cxx b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisPreparationTool.cxx
index d25dad9d989daf20ef191951049172bd8bea3fc6..24bf9bce90a7df170487aeb5aca0eed6c8c3459a 100644
--- a/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisPreparationTool.cxx
+++ b/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils/src/UserAnalysisPreparationTool.cxx
@@ -77,10 +77,6 @@ StatusCode UserAnalysisPreparationTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-//------------------------------------------------------------------------------
-UserAnalysisPreparationTool::~UserAnalysisPreparationTool()
-{}
-
 //-------------------------------------------------------------------------------
 StatusCode UserAnalysisPreparationTool::execute() {
   ATH_MSG_DEBUG("in execute()");
diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToAOD.h b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToAOD.h
index ee85e2ae954e643f01575f809b68fc2d9e1aef8b..533ec60671bde2542177ece60c7cb1029cbeaabf 100644
--- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToAOD.h
+++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToAOD.h
@@ -13,18 +13,14 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "StoreGate/DataHandle.h"
+#include "TrigT1Interfaces/RecMuonRoiSvc.h"
+#include "TrigT1CaloToolInterfaces/IL1JetTools.h"
+#include "TrigT1CaloToolInterfaces/IL1EmTauTools.h"
+#include "TrigConfInterfaces/ILVL1ConfigSvc.h"
 
 // Forward declaration(s):
 class StoreGateSvc;
 class LVL1_ROI;
-namespace TrigConf {
-  class ILVL1ConfigSvc;
-}
-namespace LVL1 {
-  class RecMuonRoiSvc;
-  class IL1EmTauTools;
-  class IL1JetTools;
-}
 namespace ROIB {
   class RoIBResult;
 }
diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.h b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.h
index 77d16793bdb666365cae02e8d62d41f139ee5679..02f1a810a1a2bccb24179f1b26a674b6d425ccb2 100644
--- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.h
+++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.h
@@ -17,17 +17,16 @@
 // xAOD include(s):
 #include "xAODTriggerCnv/IMuonRoICnvTool.h"
 
+#include "TrigT1CaloToolInterfaces/IL1JEMJetTools.h"
+#include "TrigT1Interfaces/RecMuonRoiSvc.h"
+#include "TrigT1CaloToolInterfaces/IL1CPMTools.h"
+
 // Forward declaration(s):
 class StoreGateSvc;
 class LVL1_ROI;
 namespace TrigConf {
   class ILVL1ConfigSvc;
 }
-namespace LVL1 {
-  class RecMuonRoiSvc;
-  class IL1CPMTools;
-  class IL1JEMJetTools;
-}
 namespace ROIB {
   class RoIBResult;
 }
diff --git a/PhysicsAnalysis/AthenaROOTAccess/src/tpcnvLoad.cxx b/PhysicsAnalysis/AthenaROOTAccess/src/tpcnvLoad.cxx
index 5b23a47826b28fcc2dc4b1ffd0a1151d2a0d7279..56d6fd121b69fe50122820068ec76d7857e1b354 100644
--- a/PhysicsAnalysis/AthenaROOTAccess/src/tpcnvLoad.cxx
+++ b/PhysicsAnalysis/AthenaROOTAccess/src/tpcnvLoad.cxx
@@ -48,7 +48,7 @@ Registry::instance()
 ITPCnvBase* 
 Registry::load_tpcnv(const std::string& cls)
 {
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create (cls);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create (cls).release();
   if (cnv == 0) {
     ::Warning("tpcnvLoad", 
               "could not load class [%s] via Reflex::PluginService",
@@ -65,9 +65,9 @@ Registry::load_tpcnv(const std::string& cls)
 ITPCnvBase*
 Registry::p2t_cnv(const std::string& persClassName)
 {
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create ("_ARA_PERS_" + persClassName);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create ("_ARA_PERS_" + persClassName).release();
   if (!cnv)
-    cnv = ITPCnvBase::Factory::create ("_PERS_" + persClassName);
+    cnv = ITPCnvBase::Factory::create ("_PERS_" + persClassName).release();
   if (cnv == 0) {
     ::Warning("tpcnvLoad", 
               "could not load converter for persistent class [%s]",
@@ -84,9 +84,9 @@ Registry::p2t_cnv(const std::string& persClassName)
 ITPCnvBase*
 Registry::t2p_cnv(const std::string& transClassName)
 {
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create ("_ARA_TRANS_" + transClassName);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create ("_ARA_TRANS_" + transClassName).release();
   if (!cnv)
-    cnv = ITPCnvBase::Factory::create ("_TRANS_" + transClassName);
+    cnv = ITPCnvBase::Factory::create ("_TRANS_" + transClassName).release();
   if (cnv == 0) {
     ::Warning("tpcnvLoad", 
               "could not load converter for transient class [%s]",
@@ -104,9 +104,9 @@ Registry::t2p_cnv(const std::string& transClassName)
 std::string Registry::p2t_name(const std::string& persClassName)
 {
   std::string out;
-  ITPCnvBase* cnv = ITPCnvBase::Factory::create ("_ARA_PERS_" + persClassName);
+  ITPCnvBase* cnv = ITPCnvBase::Factory::create ("_ARA_PERS_" + persClassName).release();
   if (!cnv)
-    cnv = ITPCnvBase::Factory::create ("_PERS_" + persClassName);
+    cnv = ITPCnvBase::Factory::create ("_PERS_" + persClassName).release();
   if (cnv != 0) {
     out = SG::normalizedTypeinfoName (cnv->transientTInfo());
     delete cnv;
diff --git a/PhysicsAnalysis/BPhys/BPhysTagTools/BPhysTagTools/BPhysTagTool.h b/PhysicsAnalysis/BPhys/BPhysTagTools/BPhysTagTools/BPhysTagTool.h
index 216fc27fe2e8c1de127af8749f0c4d3720197fd7..975c8e132c599d08426eb692096762abc41bd180 100755
--- a/PhysicsAnalysis/BPhys/BPhysTagTools/BPhysTagTools/BPhysTagTool.h
+++ b/PhysicsAnalysis/BPhys/BPhysTagTools/BPhysTagTools/BPhysTagTool.h
@@ -39,10 +39,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection&, const int);
   virtual StatusCode finalize();
 
-protected:
-
-  // Standard destructor
-  virtual ~BPhysTagTool();
 
 };
 
diff --git a/PhysicsAnalysis/BPhys/BPhysTagTools/src/BPhysTagTool.cxx b/PhysicsAnalysis/BPhys/BPhysTagTools/src/BPhysTagTool.cxx
index d056d02f9a8e7f391a3bdb8430e0ec84e97e3784..9e81608c2729d6adfce02c88e29a36c3ca2125b3 100755
--- a/PhysicsAnalysis/BPhys/BPhysTagTools/src/BPhysTagTool.cxx
+++ b/PhysicsAnalysis/BPhys/BPhysTagTools/src/BPhysTagTool.cxx
@@ -22,7 +22,6 @@ BPhysTagTool::BPhysTagTool(const std::string& type, const std::string& name, con
 
 ///////////////////////////////////////////////////////////////////////////////
 
-BPhysTagTool::~BPhysTagTool() {}
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/LucidPMTHitFillerTool.h b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/LucidPMTHitFillerTool.h
index eff3cdbe95bcc836992d784018d351d4f13a5220..cf54de127bdeca2078793a1e42c83701932b75a1 100644
--- a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/LucidPMTHitFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/LucidPMTHitFillerTool.h
@@ -17,8 +17,7 @@
 
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
-class LUCID_RawDataContainer;
-
+#include "LUCID_RawEvent/LUCID_RawDataContainer.h"
 
 namespace D3PD {
   
diff --git a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/RawTagInDetSPFillerTool.h b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/RawTagInDetSPFillerTool.h
index 504b2831a757190f2e0a38d62936f6c9cc8e4a16..279629d728ad928c78b1984aa4999b3f022d0499 100644
--- a/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/RawTagInDetSPFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/BackgroundD3PDMaker/src/RawTagInDetSPFillerTool.h
@@ -17,7 +17,7 @@
 
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
-class RawInfoSummaryForTag;
+#include "TagEvent/RawInfoSummaryForTag.h"
 
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/CaloCellDetailsFillerTool.h b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/CaloCellDetailsFillerTool.h
index afb4350a6be140aba13ac26d2e013fcdd10f4c15..d10d7d5dde54ed13395e00a85c952bdd0a8f4760 100755
--- a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/CaloCellDetailsFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/CaloCellDetailsFillerTool.h
@@ -14,13 +14,13 @@
 #include "D3PDMakerUtils/BlockFillerTool.h"
 #include "CaloEvent/CaloCellContainer.h"
 #include "GaudiKernel/ToolHandle.h" 
+#include "CaloConditions/ICaloBadChanTool.h"
+#include "CaloInterface/ICaloNoiseTool.h"
 
 class LArEM_ID;
 class LArFCAL_ID;
 class LArHEC_ID;
 class TileID;
-class ICaloBadChanTool;
-class ICaloNoiseTool;
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArCollisionTimeFillerTool.h b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArCollisionTimeFillerTool.h
index 4dda1883ff67b234eb140e9e380d18006f49ad16..f7ee44399f69ccfad3b63691b5a6a40a5b193912 100644
--- a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArCollisionTimeFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArCollisionTimeFillerTool.h
@@ -18,7 +18,7 @@
 
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
-class LArCollisionTime;
+#include "LArRecEvent/LArCollisionTime.h"
 
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArDigitFillerTool.h b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArDigitFillerTool.h
index bed01ac320cf90c1d40825abbbcbd57a7fc3e0f2..ee1858003d14026c6ef6c352beda27e599172fd0 100755
--- a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArDigitFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArDigitFillerTool.h
@@ -14,12 +14,12 @@
 #include "D3PDMakerUtils/BlockFillerTool.h"
 #include "LArRawEvent/LArDigitContainer.h"
 #include "GaudiKernel/ToolHandle.h" 
+#include "LArCabling/LArCablingService.h"
 
 class LArEM_ID;
 class LArFCAL_ID;
 class LArHEC_ID;
 class LArOnlineID;
-class LArCablingService;
 
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.cxx
index 9160f78f44e047227851f3a7e43cf550ff378075..502a4e25fdac0bf78afdb94bdd4286fc01f992c0 100644
--- a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.cxx
+++ b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.cxx
@@ -45,6 +45,7 @@ LArSCHitFillerTool::LArSCHitFillerTool
      const IInterface* parent)
       : BlockFillerTool<LArHitContainer> (type, name, parent), 
         m_larCablingSvc("LArCablingService"),
+        m_dd_fSampl (nullptr),
 	m_caloEtaSelection( false ),
 	m_caloPhiSelection( false ),
 	m_caloLayerSelection( false ),
diff --git a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.h b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.h
index cbe28b62fe50c23776a40e8d3af427b4356f1e35..6163e46789441580e8f57caf92e45f04ef3f5749 100644
--- a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/LArSCHitFillerTool.h
@@ -16,12 +16,12 @@
 #define CALOD3PDMAKER_LARSCHITFILLERTOOL_H
 
 // Gaudi/Athena include(s):
-#include "StoreGate/DataHandle.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "D3PDMakerUtils/BlockFillerTool.h"
 #include "D3PDMakerUtils/SGCollectionGetterTool.h"
 #include "LArSimEvent/LArHitContainer.h"
 #include "LArElecCalib/ILArfSampl.h"
+#include "CaloDetDescr/ICaloSuperCellIDTool.h"
 #include <vector>
 #include <list>
 #include <map>
@@ -38,7 +38,6 @@ class CaloDetDescrManager ;
 class Identifier;
 
 class CaloSuperCellDetDescrManager;
-class ICaloSuperCellIDTool;
 
 class CaloCell_SuperCell_ID; 
 
@@ -79,7 +78,7 @@ private:
   const TileID     *m_tileid;    
   const LArOnlineID* m_onlineHelper;
   ToolHandle<LArCablingService> m_larCablingSvc;
-  const DataHandle<ILArfSampl>    m_dd_fSampl;
+  const ILArfSampl*   m_dd_fSampl;
 
   /// parameters
   int *m_nSC;
diff --git a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/MBTSTimeFillerTool.h b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/MBTSTimeFillerTool.h
index 3fe5be9d0a6fc532c803bd0e29a8333179d8d0f9..75594bf30f9b5f1ea65c42b00a7dd837f1ed3be5 100644
--- a/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/MBTSTimeFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/CaloD3PDMaker/src/MBTSTimeFillerTool.h
@@ -19,8 +19,7 @@
 
 #include "D3PDMakerUtils/VoidBlockFillerTool.h"
 #include "GaudiKernel/ToolHandle.h"
-class MBTSTimeFilterTool;
-
+#include "PrimaryDPDMaker/MBTSTimeFilterTool.h"
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/CollectionGetterRegistryTool.h b/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/CollectionGetterRegistryTool.h
index 73df0269c0c305f46d290b65ca3653666a1848c6..95d5f3495da769e10040ceedc32a12342241171e 100644
--- a/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/CollectionGetterRegistryTool.h
+++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/CollectionGetterRegistryTool.h
@@ -21,10 +21,11 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
+#include "GaudiKernel/IJobOptionsSvc.h"
+
 #include <unordered_map>
 
 
-class IJobOptionsSvc;
 class IToolSvc;
 
 
diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerRoot/src/RootD3PDSvc.h b/PhysicsAnalysis/D3PDMaker/D3PDMakerRoot/src/RootD3PDSvc.h
index 42bab27871d0c3d3b8b85f096d752ade78097bde..c24a3c06d191689100d2de4ce91d3f9605adc5af 100644
--- a/PhysicsAnalysis/D3PDMaker/D3PDMakerRoot/src/RootD3PDSvc.h
+++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerRoot/src/RootD3PDSvc.h
@@ -23,11 +23,12 @@
 #include <vector>
 #include <string>
 
+#include "RootD3PD.h"
 
 namespace D3PD {
 
 
-class RootD3PD;
+  // class RootD3PD;
 
 
 /**
diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/IN4MHLVAssociationTool.h b/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/IN4MHLVAssociationTool.h
index 78085241e47bb1fb32d09d7886356f5eaf9e284e..a27a6bf4a3fbc309349e778b151b2c71438713b0 100644
--- a/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/IN4MHLVAssociationTool.h
+++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/IN4MHLVAssociationTool.h
@@ -19,7 +19,8 @@
 
 #include "D3PDMakerUtils/SingleAssociationTool.h"
 #include "CLHEP/Vector/LorentzVector.h"
-class INavigable4Momentum;
+#include "EventKernel/INavigable4Momentum.h"
+
 
 
 namespace D3PDTest {
diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/Obj5FillerTool.h b/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/Obj5FillerTool.h
index ed46703589d14e886d17e15914341b2d31aad0c1..a7d85cb22ba83a2a2ef767e6628a1f7bc7524cde 100644
--- a/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/Obj5FillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerTest/src/Obj5FillerTool.h
@@ -17,13 +17,11 @@
 
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
-
+#include "D3PDMakerTest/Obj5.h"
 
 namespace D3PDTest {
 
 
-class Obj5;
-
 
 /**
  * @brief D3PD maker regression tests.
diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/IndexMap.h b/PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/IndexMap.h
index 6feebeb25e2cbce6a9197cd9766755889b6b4789..b142e8ec86de2983c2354eebdf2223105b66ce0d 100644
--- a/PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/IndexMap.h
+++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/IndexMap.h
@@ -25,6 +25,7 @@
 
 
 #include "D3PDMakerUtils/TypeConverter.h"
+#include "D3PDMakerInterfaces/ICollectionGetterRegistryTool.h"
 #include "GaudiKernel/IIncidentListener.h"
 #include "GaudiKernel/ToolHandle.h"
 #include <string>
@@ -35,7 +36,6 @@
 namespace D3PD {
 
 
-class ICollectionGetterRegistryTool;
 class ICollectionGetterTool;
 
 
diff --git a/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/LBMetadataTool.h b/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/LBMetadataTool.h
index c32b051b80b5822a7df42a7cbdb95f19b46e2001..daeccb39f4ecb7e3468d7268c6158d2b40c2a718 100644
--- a/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/LBMetadataTool.h
+++ b/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/LBMetadataTool.h
@@ -19,9 +19,7 @@
 #include "D3PDMakerInterfaces/IMetadataTool.h"
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
-
-
-class ILumiBlockMetaDataTool;
+#include "LumiBlockComps/ILumiBlockMetaDataTool.h"
 
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/SkimDecisionFillerTool.h b/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/SkimDecisionFillerTool.h
index 5c2371bd3e8832983679b92d9ad7bd98517d0846..e74b1594a7f30c00d3b08a3307bc70d569d65cba 100644
--- a/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/SkimDecisionFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/EventCommonD3PDMaker/src/SkimDecisionFillerTool.h
@@ -19,13 +19,11 @@
 
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
+#include "EventBookkeeperMetaData/SkimDecisionCollection.h"
 #include <string>
 #include <vector>
 
 
-class SkimDecisionCollection;
-
-
 namespace D3PD {
 
 
diff --git a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagMSVVtxInfoFillerTool.h b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagMSVVtxInfoFillerTool.h
index feca0a23ff364f1a2d909c466a9a2bfc4a519056..f08b6c48254a1ad9faecf0ab39a46573aab6cf9b 100644
--- a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagMSVVtxInfoFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagMSVVtxInfoFillerTool.h
@@ -13,9 +13,7 @@
 #define JetTagD3PDMaker_JetTagMSVVtxInfoFillerTool_H
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
-namespace Analysis{
-class MSVVtxInfo;
-}
+#include "JetTagInfo/MSVVtxInfo.h"
 
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagPixelModCondFillerTool.h b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagPixelModCondFillerTool.h
index 546753840aa008d208049db54d2b5f74b2a7e4f9..2b0d45ec21528fc4d975e72ba3856d91e34cdcae 100644
--- a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagPixelModCondFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagPixelModCondFillerTool.h
@@ -13,6 +13,7 @@
 #define JetTagD3PDMaker_JetTagPixelModCondFillerTool_H
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
+#include "InDetConditionsSummaryService/IInDetConditionsSvc.h"
 
 #include <vector>
 
@@ -23,7 +24,6 @@ namespace InDetDD{
 
 
 class PixelID;
-class IInDetConditionsSvc;
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/src/MuonSpShowerFillerTool.h b/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/src/MuonSpShowerFillerTool.h
index f356c063c64a23c4165cbc5bc0b733a518def915..4bfc71681935a425ccbeecf41809f3c264cb794e 100644
--- a/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/src/MuonSpShowerFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/src/MuonSpShowerFillerTool.h
@@ -17,10 +17,7 @@
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
 #include "StoreGate/StoreGateSvc.h"
-
-namespace Rec{
-class MuonSpShower;
-}
+#include "muonEvent/MuonSpShower.h"
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/QcdD3PDMaker/QcdD3PDMaker/fillers/MuonSpShowerFillerTool.h b/PhysicsAnalysis/D3PDMaker/QcdD3PDMaker/QcdD3PDMaker/fillers/MuonSpShowerFillerTool.h
index adf67662416aa01c27f1b80907e7b8b7a79aee9a..8536b08df5567f0f711d2393c6a909c653d3fbd7 100644
--- a/PhysicsAnalysis/D3PDMaker/QcdD3PDMaker/QcdD3PDMaker/fillers/MuonSpShowerFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/QcdD3PDMaker/QcdD3PDMaker/fillers/MuonSpShowerFillerTool.h
@@ -17,10 +17,7 @@
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
 #include "StoreGate/StoreGateSvc.h"
-
-namespace Rec{
-class MuonSpShower;
-}
+#include "muonEvent/MuonSpShower.h"
 
 namespace QcdD3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PerigeeBLPredictionFillerTool.h b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PerigeeBLPredictionFillerTool.h
index 0770fdf9eea19714b6272e9e8e882e30a7de7f84..a398dba3b03d1be75cf53b39b77b8d9dcb7be8f8 100644
--- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PerigeeBLPredictionFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/PerigeeBLPredictionFillerTool.h
@@ -18,14 +18,10 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "Identifier/Identifier.h"
 #include "TrkParameters/TrackParameters.h"
+#include "InDetRecToolInterfaces/IInDetTestBLayerTool.h"
 
 class PixelID;
 
-namespace InDet {
-  class IInDetTestBLayerTool;
-}
-
-
 namespace D3PD {
 
 /**
diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.h b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.h
index 7a2730050ce168c7801885be31e78bd115bf907d..340290b4284b913a175de034559cc7d659818e55 100644
--- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.h
@@ -14,11 +14,7 @@
  
 
 #include "D3PDMakerUtils/SingleAssociationTool.h"
-
-
-namespace Analysis {
-  class Muon;
-}
+#include "muonEvent/Muon.h"
 
 namespace Rec {
   class TrackParticle;
diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackIsolationFillerTool.h b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackIsolationFillerTool.h
index eac870921a2b8cebd6454940fb965464c9cb4bc7..458d3f8c0eef34a57e38531a9e8733bf1fe3f6d0 100644
--- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackIsolationFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackIsolationFillerTool.h
@@ -21,12 +21,12 @@
 #include "xAODPrimitives/IsolationType.h"
 #include "xAODPrimitives/IsolationFlavour.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "RecoToolInterfaces/ICaloCellIsolationTool.h"
+#include "RecoToolInterfaces/ITrackIsolationTool.h"
 #include <string>
 
 namespace xAOD {
 class IParticle;
-class ITrackIsolationTool;
-class ICaloCellIsolationTool;
 }
 
 
diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackStateOnSurfaceFillerTool.h b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackStateOnSurfaceFillerTool.h
index a2c0eeec2c04e385c109eb4e932a6364c705e00d..86fedab7d88b6cf36a5f49ca80b1a69bfa9c139d 100644
--- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackStateOnSurfaceFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/TrackStateOnSurfaceFillerTool.h
@@ -11,6 +11,9 @@
 #include "Identifier/Identifier.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "TrkToolInterfaces/IResidualPullCalculator.h"
+#include "TRT_ConditionsServices/ITRT_CalDbSvc.h"
+#include "TRT_DriftFunctionTool/ITRT_DriftFunctionTool.h"
 
 class AtlasDetectorID;
 class PixelID;
@@ -20,14 +23,11 @@ class MdtIdHelper;
 class CscIdHelper;
 class RpcIdHelper;
 class TgcIdHelper;
-class ITRT_CalDbSvc;
 
 namespace Trk {
   class TrackStateOnSurface;
-  class IResidualPullCalculator;
 }
 
-class ITRT_DriftFunctionTool;
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/VertexPurityFillerTool.h b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/VertexPurityFillerTool.h
index b649fe591dca3ead1cc1021a8247f44220129648..4d18fc24b44b84ff2aba8f615294920c03e1d4b8 100644
--- a/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/VertexPurityFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TrackD3PDMaker/src/VertexPurityFillerTool.h
@@ -7,10 +7,10 @@
 
 #include "D3PDMakerUtils/BlockFillerTool.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "TrkVertexFitterValidationUtils/TrkPriVxPurityTool.h"
 
 namespace Trk{
 class VxCandidate;
-class TrkPriVxPurityTool;
 }
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/TriggerD3PDMaker/src/TriggerBitFillerTool.h b/PhysicsAnalysis/D3PDMaker/TriggerD3PDMaker/src/TriggerBitFillerTool.h
index 0cc3e2b1d508e04627bc5d4991c5144a792b011c..f929b27ed0f100c92e11b6fde212156bd2f5c3f6 100644
--- a/PhysicsAnalysis/D3PDMaker/TriggerD3PDMaker/src/TriggerBitFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TriggerD3PDMaker/src/TriggerBitFillerTool.h
@@ -20,13 +20,12 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/IIncidentListener.h"
+#include "TrigDecisionTool/TrigDecisionTool.h"
+
 #include <vector>
 #include <string>
 #include <set>
 #include <map>
-namespace Trig {
-  class TrigDecisionTool;
-}
 class IIncidentSvc;
 
 
diff --git a/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/GenParticlePerigeeFillerTool.h b/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/GenParticlePerigeeFillerTool.h
index ebd6f233abb2823eddc1516cd698a7df79f75cf6..052563d260b218a6c565cd4e99e88a70f2a69f24 100644
--- a/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/GenParticlePerigeeFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/GenParticlePerigeeFillerTool.h
@@ -8,10 +8,7 @@
 #include "D3PDMakerUtils/BlockFillerTool.h"
 #include "HepMC/GenParticle.h"
 #include "GaudiKernel/ToolHandle.h"
-
-namespace Trk {
-class ITruthToTrack;
-}
+#include "TrkToolInterfaces/ITruthToTrack.h"
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/TruthParticleFillerTool.h b/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/TruthParticleFillerTool.h
index 53761d0bd2bc349b202196a052d95140562fcf20..5b060aed5584ce7fd9a32a5eacb4d022cc7f2f4e 100644
--- a/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/TruthParticleFillerTool.h
+++ b/PhysicsAnalysis/D3PDMaker/TruthD3PDMaker/src/TruthParticleFillerTool.h
@@ -19,8 +19,7 @@
 #include "McParticleEvent/TruthParticle.h"
 #include "xAODTruth/TruthParticle.h"
 #include "GaudiKernel/ServiceHandle.h"
-class IPartPropSvc;
-
+#include "GaudiKernel/IPartPropSvc.h"
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaMaxECellAlg.h b/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaMaxECellAlg.h
index 6cd1dba089635c31915504aaa0882368ec597b7e..65ea195b7391fb025a3c2ba30f33ffc8cd80ecdd 100644
--- a/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaMaxECellAlg.h
+++ b/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaMaxECellAlg.h
@@ -19,11 +19,11 @@
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "LArCabling/LArCablingService.h"
+
 #include <vector>
 #include <string>
 
-class LArCablingService;
-
 
 namespace D3PD {
 
diff --git a/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaTruthAlg.h b/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaTruthAlg.h
index 3c994bb8ecd1b4d6d75f0399c95712e45ff044a7..805f385207cd6d3f807406db0b9495e2287b6334 100644
--- a/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaTruthAlg.h
+++ b/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/egammaTruthAlg.h
@@ -20,12 +20,11 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "xAODTruth/TruthParticle.h"
 #include "xAODTruth/TruthParticleContainer.h"
+#include "RecoToolInterfaces/IParticleCaloExtensionTool.h"
+
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include <string>
-namespace Trk {
-class IParticleCaloExtensionTool;
-}
 
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronJetDRAssociator.h b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronJetDRAssociator.h
index 1a2d14561fc709a7df4c44bfe6922c5054fcfc57..eb8c11f7a88533049f7afc583d012584ecfc2cbe 100644
--- a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronJetDRAssociator.h
+++ b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronJetDRAssociator.h
@@ -21,13 +21,14 @@
 #include "D3PDMakerUtils/MultiAssociationTool.h"
 #include "xAODEgamma/Electron.h"
 #include "xAODJet/Jet.h"
+#include "TrkVertexFitterInterfaces/ITrackToVertexIPEstimator.h"
 #include "GaudiKernel/ToolHandle.h"
 #include <string>
 #include <vector>
 
 
 
-namespace Trk  { class VxCandidate; class ITrackToVertexIPEstimator; }
+namespace Trk  { class VxCandidate; }
 
 
 namespace D3PD {
diff --git a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronL2TriggerObjectAssociationTool.h b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronL2TriggerObjectAssociationTool.h
index 1e55050c1eadb4eea1e0e370789fb1e379513931..707b336eb28469d4db02cc8d80f73d13fe05e074 100644
--- a/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronL2TriggerObjectAssociationTool.h
+++ b/PhysicsAnalysis/D3PDMaker/egammaD3PDMaker/src/ElectronL2TriggerObjectAssociationTool.h
@@ -21,8 +21,9 @@
 // when the TriggerObjectAssociationTool code is instantiated.
 class TrigElectron;
 class I4Momentum;
+class IAlgTool;
 namespace D3PD {
-bool lessForTriggerAssociation (void* tool,
+bool lessForTriggerAssociation (IAlgTool* tool,
                                 const I4Momentum* p0,
                                 const TrigElectron* p1,
                                 const TrigElectron* p2);
@@ -33,7 +34,6 @@ bool lessForTriggerAssociation (void* tool,
 #include "TrigObjectMatching/DistanceFunctor.h"
 #include "D3PDMakerUtils/IndexMap.h"
 #include "egammaEvent/egamma.h"
-#include "TrigParticle/TrigElectron.h"
 #include "TrigParticle/TrigElectronContainer.h"
 #include "GaudiKernel/ToolHandle.h"
 
diff --git a/PhysicsAnalysis/DPDUtils/DPDUtils/DPDTagTool.h b/PhysicsAnalysis/DPDUtils/DPDUtils/DPDTagTool.h
index e3bdfb555a5ebecd3ca25bd01c38916d917db3b5..fe4177b729a9d3d90cb1d4ef0be791f9f5425511 100644
--- a/PhysicsAnalysis/DPDUtils/DPDUtils/DPDTagTool.h
+++ b/PhysicsAnalysis/DPDUtils/DPDUtils/DPDTagTool.h
@@ -44,10 +44,6 @@ class DPDTagTool : public AthAlgTool {
   virtual StatusCode stop();
   virtual StatusCode finalize();
 
- protected:
-  // Standard destructor
-  virtual ~DPDTagTool();
-
  private:
   ServiceHandle<StoreGateSvc> m_pMetaDataStore;
 
diff --git a/PhysicsAnalysis/DPDUtils/src/DPDTagTool.cxx b/PhysicsAnalysis/DPDUtils/src/DPDTagTool.cxx
index 14ba5fdd6392543a160c76f5a931da9412041f16..4e906c951b022f829eb5a365984cfb5d265f04ab 100644
--- a/PhysicsAnalysis/DPDUtils/src/DPDTagTool.cxx
+++ b/PhysicsAnalysis/DPDUtils/src/DPDTagTool.cxx
@@ -25,9 +25,6 @@ DPDTagTool::DPDTagTool(const std::string& type, const std::string& name, const I
 
 }
 
-DPDTagTool::~DPDTagTool() {}
-
-
 StatusCode DPDTagTool::initialize() {
 
   ATH_MSG_DEBUG("in initialize()");
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/DerivationFrameworkEGamma/BkgElectronClassification.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/DerivationFrameworkEGamma/BkgElectronClassification.h
index 4924d9ffb15ec4aa0b4f0acf277c56b69c5c7fe1..1bb3901b5ecb8d6eef66a9c2929112c4d8e7592c 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/DerivationFrameworkEGamma/BkgElectronClassification.h
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/DerivationFrameworkEGamma/BkgElectronClassification.h
@@ -7,6 +7,7 @@
 
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "DerivationFrameworkInterfaces/IAugmentationTool.h"
+#include "MCTruthClassifier/IMCTruthClassifier.h"
 #include "GaudiKernel/ToolHandle.h"
 
 class IMCTruthClassifier;
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h
index 052b221e41685fdbf6c189a3d27249f8ea9ccf0a..bc5cecd77c197da448a0085cb701147c546ec587 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h
@@ -18,23 +18,22 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "AthLinks/ElementLink.h"
 #include "xAODTracking/TrackMeasurementValidationContainer.h"
-
+#include "TrkExInterfaces/IExtrapolator.h"
+#include "TrkToolInterfaces/IPRD_AssociationTool.h"
+#include "TrkToolInterfaces/IResidualPullCalculator.h"
+#include "TrkToolInterfaces/ITrackHoleSearchTool.h"
+#include "TRT_ConditionsServices/ITRT_CalDbSvc.h"
+#include "TRT_ToT_Tools/ITRT_ToT_dEdx.h"
+#include "TrkToolInterfaces/IUpdator.h"
 
 class AtlasDetectorID;
 class PixelID;
 class SCT_ID;
 class TRT_ID;
-class ITRT_CalDbSvc;
-class ITRT_ToT_dEdx;
-
 
 namespace Trk {
   class IUpdator;
-  class IResidualPullCalculator;
-  class ITrackHoleSearchTool;
   class PrepRawData;
-  class IExtrapolator;
-  class IPRD_AssociationTool;
 }
 
 namespace DerivationFramework {
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackToVertexWrapper.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackToVertexWrapper.h
index 78fdd6287eb7eeff864c7c8479ccbb93c63113de..e22bdea8202693bd04fe7999bbb05f536f6636d9 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackToVertexWrapper.h
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackToVertexWrapper.h
@@ -15,11 +15,7 @@
 #include "DerivationFrameworkInterfaces/IAugmentationTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "xAODTracking/VertexContainer.h"
-
-namespace Trk
-{
-  class ITrackToVertexIPEstimator;
-}
+#include "TrkVertexFitterInterfaces/ITrackToVertexIPEstimator.h"
 
 namespace DerivationFramework {
 
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauOverlappingElectronLLHDecoratorWrapper.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauOverlappingElectronLLHDecoratorWrapper.h
index 298c81e7b5b631bdd8c7c826a1ce2770af147efa..09c6ede98691033f4f3e49640ab3d4298f444b12 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauOverlappingElectronLLHDecoratorWrapper.h
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauOverlappingElectronLLHDecoratorWrapper.h
@@ -16,16 +16,11 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "DerivationFrameworkInterfaces/IAugmentationTool.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "TauAnalysisTools/ITauOverlappingElectronLLHDecorator.h"
 
-//#include "TauAnalysisTools/ITauOverlappingElectronLLHDecorator.h"
 //#include "xAODTau/TauJetContainer.h"
 //#include "xAODEgamma/ElectronContainer.h"
 
-/**
- * @short Forward declarations
- */
-namespace TauAnalysisTools { class ITauOverlappingElectronLLHDecorator; }
-
 /**
  * @class TauOverlappingElectronLLHDecoratorWrapper
  * @brief wrapper tool for decorating reconstructed taus with a likelihood score of matched reconstructed electrons
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVRefitTool.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVRefitTool.h
index 1c3edd1f8f656d00a1544ff6a2fce63f2639631e..ba4646e62f1d7efec77b89d8b41e670c81fcd747 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVRefitTool.h
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVRefitTool.h
@@ -17,6 +17,7 @@
 #include "xAODTracking/VertexContainer.h"
 #include "xAODTracking/VertexAuxContainer.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "JpsiUpsilonTools/PrimaryVertexRefitter.h"
 
 /**
  * refit any primary vertex in the PV collection that contains any
@@ -25,8 +26,6 @@
  * links to the refitted PV container
 */
 
-namespace Analysis { class PrimaryVertexRefitter; }
-
 namespace DerivationFramework {
 
   class TauPVRefitTool : public AthAlgTool, public IAugmentationTool {
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVTrkSelectionTool.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVTrkSelectionTool.h
index a048a3fd28738e5f531462bbe3f922a931c5745c..985cecab50eb4f9a2500f6bd81ccb1806c0a8f56 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVTrkSelectionTool.h
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauPVTrkSelectionTool.h
@@ -17,6 +17,7 @@
 #include "xAODTracking/TrackParticleContainer.h"
 #include "xAODTracking/TrackParticle.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "TauAnalysisTools/ITauTruthTrackMatchingTool.h"
 
 /**
  * tool for selecting tracks associated to tau candidates (xAOD::TauJetContainer)
@@ -24,8 +25,6 @@
  * if UseTrueTracks = true, use truth matched tracks only
 */
 
-namespace TauAnalysisTools { class ITauTruthTrackMatchingTool; }
-
 namespace DerivationFramework {
 
   class TauPVTrkSelectionTool : public AthAlgTool, public IAugmentationTool {
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauTruthMatchingWrapper.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauTruthMatchingWrapper.h
index 2a6cac45c551f4b9a5763a23d8800277ce9244d1..1f32df1c13c5288367797238d51022d28f5a93d9 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauTruthMatchingWrapper.h
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/DerivationFrameworkTau/TauTruthMatchingWrapper.h
@@ -15,13 +15,12 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "DerivationFrameworkInterfaces/IAugmentationTool.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "TauAnalysisTools/ITauTruthMatchingTool.h"
 
 /**
  * wrapper tool for tau truth matching 
 */
 
-namespace TauAnalysisTools { class ITauTruthMatchingTool; }
-
 namespace DerivationFramework {
 
   class TauTruthMatchingWrapper : public AthAlgTool, public IAugmentationTool {
diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/EgammaTagTool.h b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/EgammaTagTool.h
index 5d972d87bee3814841a8ed580f3d8efcad76f0bf..bb34fa968b583f34c4465560fff1f35d6cae151f 100755
--- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/EgammaTagTool.h
+++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/EgammaTagTool.h
@@ -59,11 +59,6 @@ private:
                         const DataHandle<EventInfo>& eventInfo);
 
 
-protected:
-
-   /** Standard destructor */
-   virtual ~EgammaTagTool( );
-
 private:
   /** Properties */
   std::string m_electronContainer;
diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/ElectronTagTool.h b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/ElectronTagTool.h
index e6c42d3b53006dc2ce1339d35665c118c7dc9f1b..16b5f86ca5e63b48381964345e95be356173716f 100755
--- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/ElectronTagTool.h
+++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/ElectronTagTool.h
@@ -49,11 +49,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& electronTagCol, const int& max);
   virtual StatusCode finalize();
 
-protected:
-
-  /** Standard destructor */
-  virtual ~ElectronTagTool( );
-
 private:
 
   /** private function to get impact parameter */
diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/PhotonTagTool.h b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/PhotonTagTool.h
index 469032865ec3d19b3c67e6863b0651078fa8abbc..0f9dd788152732df47ca2bdad23cf75c45cfb073 100755
--- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/PhotonTagTool.h
+++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/ElectronPhotonTagTools/PhotonTagTool.h
@@ -48,11 +48,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& photonTagCol, const int& max); 
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~PhotonTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx
index 8f69bc6d7be5e56e12801af6d3332d692e84dad3..15dc4f127705854d03512d0f6658d8c8871a46a8 100755
--- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx
+++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx
@@ -118,9 +118,6 @@ StatusCode  EgammaTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-EgammaTagTool::~EgammaTagTool() {}
-
 
 bool EgammaTagTool::ZeeSelection (const xAOD::ElectronContainer* eleColl,
                                   const DataHandle<EventInfo>& eventInfo)
diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/ElectronTagTool.cxx b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/ElectronTagTool.cxx
index 6dd3a124adee829bfb4a2a6901bd8b52eee5a388..dd52faf91ddf989ac8e6d1e25b5747037b3c8a8b 100755
--- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/ElectronTagTool.cxx
+++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/ElectronTagTool.cxx
@@ -515,9 +515,6 @@ StatusCode  ElectronTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-ElectronTagTool::~ElectronTagTool() {}
-
 /** private function to get impact parameter */
 void ElectronTagTool::getElectronImpactParameter (const xAOD::Electron* elec, double& d0_significance, double& z0_sintheta) {
 
diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/PhotonTagTool.cxx b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/PhotonTagTool.cxx
index f5c3057945ecc98bcce4546d411862f1b5aad12d..cc82e2b228d7c96c6923a5c68f1720d8bcb1b322 100755
--- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/PhotonTagTool.cxx
+++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/PhotonTagTool.cxx
@@ -486,7 +486,4 @@ StatusCode PhotonTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-PhotonTagTool::~PhotonTagTool() {}
-
 
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/EventInfoTagTool.h b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/EventInfoTagTool.h
index 4a87861b8dc83d2c9ed4777b4da381bfcad69d9f..994062e28230d7a5bdf47b83d48d8f74f5384689 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/EventInfoTagTool.h
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/EventInfoTagTool.h
@@ -22,13 +22,13 @@ Purpose : Tool to buid the Global Event Tags
 #include "TagEvent/TagFragmentCollection.h"
 #include "AthenaPoolUtilities/AthenaAttributeSpecification.h"
 #include "xAODEventInfo/EventInfo.h"
+#include "LumiBlockComps/ILumiBlockMuTool.h"
 
 #include <map>
 #include <vector>
 #include <string>
 
 // forward declarations
-class ILumiBlockMuTool;
 
 /** Interface ID for EventInfoTagTool */  
 static const InterfaceID IID_EventInfoTagTool("EventInfoTagTool", 1, 0);
@@ -56,9 +56,6 @@ parent);
 
 protected:
 
-   /** Standard destructor */
-   virtual ~EventInfoTagTool( );
-
    /** the various components to build their own fragments of tag */
    StatusCode eventTag       (TagFragmentCollection& eventTagCol, const DataHandle<xAOD::EventInfo> eventInfo);
    StatusCode eventTagFlags  (TagFragmentCollection& eventTagCol, const DataHandle<xAOD::EventInfo> eventInfo);
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalEventTagTool.h b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalEventTagTool.h
index 1aef8b5f6a149c1b7dc883ad5b3b27ba1e7686eb..ea831bbead042518cffafecbeb71ef3ecc7ed01d 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalEventTagTool.h
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalEventTagTool.h
@@ -49,11 +49,6 @@ parent);
   virtual StatusCode execute(TagFragmentCollection& eventTagCol);  
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~GlobalEventTagTool( );
-
 private:
 
    /** the various components to build their own fragments of tag */
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalTriggerTagTool.h b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalTriggerTagTool.h
index 0d79992e9981e447e09b43c5b1281e0e53fb395e..022408b8c7f04edba1131771ec74f6552f996729 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalTriggerTagTool.h
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/GlobalTriggerTagTool.h
@@ -56,11 +56,6 @@ parent);
   virtual StatusCode execute(TagFragmentCollection& eventTagCol, const std::vector<int>& max); 
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~GlobalTriggerTagTool( );
-
 private:
 
   inline bool isPassed(std::string, unsigned int);
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RawInfoSummaryForTagTool.h b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RawInfoSummaryForTagTool.h
index 99e9213d728386d616891360ab3b4410241ffc74..7c5fbb7a81f5345c621e5eb91e5bd2e9e4a8a57f 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RawInfoSummaryForTagTool.h
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RawInfoSummaryForTagTool.h
@@ -41,11 +41,6 @@ parent);
   virtual StatusCode execute(TagFragmentCollection& dataQualityTagCol);  
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~RawInfoSummaryForTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RegistrationStreamTrig.h b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RegistrationStreamTrig.h
index abe7f6c8772eec53b212e91549149ca9504a1143..7f1bf53b31387080bd190916b381fc1f0359de01 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RegistrationStreamTrig.h
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/EventTagUtils/RegistrationStreamTrig.h
@@ -53,9 +53,6 @@ public:
 
 protected:
 
-  /// Standard Destructor
-  virtual ~RegistrationStreamTrig();
-
   ServiceHandle<StoreGateSvc> m_pOutputStore;
   ServiceHandle<StoreGateSvc> m_pInputStore;
   StringProperty  m_LBColl_name;
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/src/EventInfoTagTool.cxx b/PhysicsAnalysis/EventTag/EventTagUtils/src/EventInfoTagTool.cxx
index 2522c26771fdf4fa55bf02417e4a81fe956965ae..012e94e184f9d69683dcf9c59556d5c2a48ce900 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/src/EventInfoTagTool.cxx
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/src/EventInfoTagTool.cxx
@@ -305,6 +305,3 @@ StatusCode  EventInfoTagTool::stop() {
   
   return AthAlgTool::stop();
 }
-
-/** destructor */
-EventInfoTagTool::~EventInfoTagTool() {}
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalEventTagTool.cxx b/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalEventTagTool.cxx
index bde8cedbc35ceab9e70231ee0bea27e2f01ac300..ab3b71c0287f2460a57fd458f6ac2c7eb58d972e 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalEventTagTool.cxx
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalEventTagTool.cxx
@@ -365,6 +365,3 @@ StatusCode  GlobalEventTagTool::finalize() {
   ATH_MSG_DEBUG("in finalize()");
   return EventInfoTagTool::finalize();
 }
-
-/** destructor */
-GlobalEventTagTool::~GlobalEventTagTool() {}
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalTriggerTagTool.cxx b/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalTriggerTagTool.cxx
index 42d164ec00055a133b06f529ddb65f826739a9c0..e736511426a3a54ddb262969be6b32374951d1c6 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalTriggerTagTool.cxx
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/src/GlobalTriggerTagTool.cxx
@@ -369,9 +369,6 @@ StatusCode  GlobalTriggerTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-GlobalTriggerTagTool::~GlobalTriggerTagTool() {}
-
 inline bool GlobalTriggerTagTool::isPassed(std::string name, unsigned int condition) {
   return m_trigDec->isPassed(name, condition);
 }
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/src/RawInfoSummaryForTagTool.cxx b/PhysicsAnalysis/EventTag/EventTagUtils/src/RawInfoSummaryForTagTool.cxx
index a57f828f76a66fde167a0223f54ec4dbfc4cb975..ed866fb59383f73f53edab4745285981982e91ce 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/src/RawInfoSummaryForTagTool.cxx
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/src/RawInfoSummaryForTagTool.cxx
@@ -137,9 +137,3 @@ StatusCode  RawInfoSummaryForTagTool::finalize() {
 
   return StatusCode::SUCCESS;
 }
-
-/** destructor */
-RawInfoSummaryForTagTool::~RawInfoSummaryForTagTool() {}
-
-
-
diff --git a/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx b/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx
index 77239879d11cbd4d089c742195444899ceccd30d..f009ba23d8c9c0064dddf7ae1693bda6b99e2661 100755
--- a/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx
+++ b/PhysicsAnalysis/EventTag/EventTagUtils/src/RegistrationStreamTrig.cxx
@@ -53,10 +53,6 @@ RegistrationStreamTrig::RegistrationStreamTrig(const std::string& name,
     declareProperty("GetTriggerConf", m_gettriggerconf=true);
 }
 
-// Standard Destructor
-RegistrationStreamTrig::~RegistrationStreamTrig()   {
-}
-
 // initialize data writer
 StatusCode 
 RegistrationStreamTrig::initialize() 
diff --git a/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/ExoticPhysTagTools/ExoticPhysTagTool.h b/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/ExoticPhysTagTools/ExoticPhysTagTool.h
index ede9249670db4fe501abab125227728fefdc399b..220131b209906272f885993df4b129d772969aea 100755
--- a/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/ExoticPhysTagTools/ExoticPhysTagTool.h
+++ b/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/ExoticPhysTagTools/ExoticPhysTagTool.h
@@ -41,11 +41,6 @@ parent);
   virtual StatusCode execute(TagFragmentCollection& exoticTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~ExoticPhysTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/src/ExoticPhysTagTool.cxx b/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/src/ExoticPhysTagTool.cxx
index 6299c3536cf67bb18d3e3e41fcaaabdf2c338c94..fb7cbe57da362282564f8b03cd67053b9284a256 100755
--- a/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/src/ExoticPhysTagTool.cxx
+++ b/PhysicsAnalysis/ExoticPhys/ExoticPhysTagTools/src/ExoticPhysTagTool.cxx
@@ -77,7 +77,4 @@ StatusCode  ExoticPhysTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-ExoticPhysTagTool::~ExoticPhysTagTool() {}
-
 
diff --git a/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/HeavyIonPhysTagTools/HeavyIonPhysTagTool.h b/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/HeavyIonPhysTagTools/HeavyIonPhysTagTool.h
index f5085d22e40c5acd044853b0645f124bd41abb1c..850f274266daf25c6837d4d2dd7044088a63b584 100755
--- a/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/HeavyIonPhysTagTools/HeavyIonPhysTagTool.h
+++ b/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/HeavyIonPhysTagTools/HeavyIonPhysTagTool.h
@@ -40,11 +40,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& heavyIonTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~HeavyIonPhysTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/src/HeavyIonPhysTagTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/src/HeavyIonPhysTagTool.cxx
index a2977124f14a28fbaec76abab879edec9c15d3fa..e6f98b4671aade535b0f6e0bfa9ac23cc5c905d4 100755
--- a/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/src/HeavyIonPhysTagTool.cxx
+++ b/PhysicsAnalysis/HeavyIonPhys/HeavyIonPhysTagTools/src/HeavyIonPhysTagTool.cxx
@@ -76,7 +76,5 @@ StatusCode HeavyIonPhysTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-HeavyIonPhysTagTool::~HeavyIonPhysTagTool() {}
 
 
diff --git a/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/HiggsPhysTagTools/HiggsPhysTagTool.h b/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/HiggsPhysTagTools/HiggsPhysTagTool.h
index 5aef86d2da61eee529fb7bb5c1cd5087223ae2cf..7f19809e5ab43d19d2aa15c605c518af6694206c 100755
--- a/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/HiggsPhysTagTools/HiggsPhysTagTool.h
+++ b/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/HiggsPhysTagTools/HiggsPhysTagTool.h
@@ -40,11 +40,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& higgsTagCol, const int max);  
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~HiggsPhysTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/src/HiggsPhysTagTool.cxx b/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/src/HiggsPhysTagTool.cxx
index 70a334bf82e05551cc9997a72dd27c77b69c362e..b0f0fba19576c2d9647b88ee1ff23dcc3c42cecc 100755
--- a/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/src/HiggsPhysTagTool.cxx
+++ b/PhysicsAnalysis/HiggsPhys/HiggsPhysTagTools/src/HiggsPhysTagTool.cxx
@@ -76,7 +76,3 @@ StatusCode HiggsPhysTagTool::finalize() {
   ATH_MSG_DEBUG( "in finalize()" );
   return StatusCode::SUCCESS;
 }
-
-/** destructor */
-HiggsPhysTagTool::~HiggsPhysTagTool() {}
-
diff --git a/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/JetMissingEtTagTools/JetMissingEtIdentificationTagTool.h b/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/JetMissingEtTagTools/JetMissingEtIdentificationTagTool.h
index bb6d9ec00d143e8d43049241759fc6180a168034..c1fdb9a24febc75414c25094ba43e33cf3244ffa 100755
--- a/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/JetMissingEtTagTools/JetMissingEtIdentificationTagTool.h
+++ b/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/JetMissingEtTagTools/JetMissingEtIdentificationTagTool.h
@@ -40,11 +40,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& jetMissingEtTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~JetMissingEtIdentificationTagTool( );
-
 private:
    
    /** Properties */
diff --git a/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/src/JetMissingEtIdentificationTagTool.cxx b/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/src/JetMissingEtIdentificationTagTool.cxx
index 187a4b392b83b0d2d428adf8815e15286861ec7c..68c218c937f8d62e332fedcea141d1aed9e4ed00 100755
--- a/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/src/JetMissingEtIdentificationTagTool.cxx
+++ b/PhysicsAnalysis/JetMissingEtID/JetMissingEtTagTools/src/JetMissingEtIdentificationTagTool.cxx
@@ -125,6 +125,3 @@ StatusCode JetMissingEtIdentificationTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-JetMissingEtIdentificationTagTool::~JetMissingEtIdentificationTagTool() {}
-
diff --git a/PhysicsAnalysis/JetTagging/JetTaggingTagTools/JetTaggingTagTools/JetTaggingTagTool.h b/PhysicsAnalysis/JetTagging/JetTaggingTagTools/JetTaggingTagTools/JetTaggingTagTool.h
index cca572dc76c1b06bf490401ba4f5de392db48dd3..ae18e901f3ad2b3fe4276bf88598f81aadcad440 100755
--- a/PhysicsAnalysis/JetTagging/JetTaggingTagTools/JetTaggingTagTools/JetTaggingTagTool.h
+++ b/PhysicsAnalysis/JetTagging/JetTaggingTagTools/JetTaggingTagTools/JetTaggingTagTool.h
@@ -42,11 +42,6 @@ parent);
   virtual StatusCode execute(TagFragmentCollection& tauIdTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~JetTaggingTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/JetTagging/JetTaggingTagTools/src/JetTaggingTagTool.cxx b/PhysicsAnalysis/JetTagging/JetTaggingTagTools/src/JetTaggingTagTool.cxx
index 5de8d83349613b146561b895b3aa3e1c9fd2373e..8d4fa1e309ea3e9fe3a484e374709a3f51241972 100755
--- a/PhysicsAnalysis/JetTagging/JetTaggingTagTools/src/JetTaggingTagTool.cxx
+++ b/PhysicsAnalysis/JetTagging/JetTaggingTagTools/src/JetTaggingTagTool.cxx
@@ -87,8 +87,5 @@ StatusCode JetTaggingTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-JetTaggingTagTool::~JetTaggingTagTool() {}
-
 
 
diff --git a/PhysicsAnalysis/MuonID/MuonTagTools/MuonTagTools/MuonTagTool.h b/PhysicsAnalysis/MuonID/MuonTagTools/MuonTagTools/MuonTagTool.h
index 75719e11fa6e92a0b36877ee3554af5a022149ed..1817a047eac3f4ac77e8253831fcb5e057c4f7e3 100644
--- a/PhysicsAnalysis/MuonID/MuonTagTools/MuonTagTools/MuonTagTool.h
+++ b/PhysicsAnalysis/MuonID/MuonTagTools/MuonTagTools/MuonTagTool.h
@@ -47,12 +47,7 @@ class MuonTagTool : public AthAlgTool {
   virtual StatusCode attributeSpecification(std::map<std::string,AthenaAttributeType>& attrMap, const int max);
   virtual StatusCode execute(TagFragmentCollection& muonTagCol, const int max);
   virtual StatusCode finalize();
-  
- protected:
-  
-  /** Standard destructor */
-  virtual ~MuonTagTool( );
-  
+    
  private:
   
   inline int bit2int(int b) const { return 1<<b; };
diff --git a/PhysicsAnalysis/MuonID/MuonTagTools/src/MuonTagTool.cxx b/PhysicsAnalysis/MuonID/MuonTagTools/src/MuonTagTool.cxx
index d1c86d62595e076fc05f3d7151d95b4bbb3717aa..fd9ca1c60a044b35e97bf25630c2cbb014363cef 100644
--- a/PhysicsAnalysis/MuonID/MuonTagTools/src/MuonTagTool.cxx
+++ b/PhysicsAnalysis/MuonID/MuonTagTools/src/MuonTagTool.cxx
@@ -768,11 +768,6 @@ StatusCode MuonTagTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-/** destructor */
-MuonTagTool::~MuonTagTool() { 
-}
- 
-
 /** private function to get impact parameter */
 void MuonTagTool::getMuonImpactParameter (const xAOD::Muon* muon, double& d0, double& z0, double& d0_significance) {
    
diff --git a/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/SUSYPhysTagTools/SUSYPhysTagTool.h b/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/SUSYPhysTagTools/SUSYPhysTagTool.h
index 51a7930a7c75b1bfe139ac1ff00483c49803c220..d7cf7ece5196ea986486254b1ff684967045a4b8 100755
--- a/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/SUSYPhysTagTools/SUSYPhysTagTool.h
+++ b/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/SUSYPhysTagTools/SUSYPhysTagTool.h
@@ -41,11 +41,6 @@ parent);
   virtual StatusCode execute(TagFragmentCollection& susyTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~SUSYPhysTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/src/SUSYPhysTagTool.cxx b/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/src/SUSYPhysTagTool.cxx
index f975f04a7a5b7dac51dbc50f8ac28a9e34344771..e1245b209794718e6f5ffc1b52c9b5ce3733e08b 100755
--- a/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/src/SUSYPhysTagTool.cxx
+++ b/PhysicsAnalysis/SUSYPhys/SUSYPhysTagTools/src/SUSYPhysTagTool.cxx
@@ -79,9 +79,3 @@ StatusCode  SUSYPhysTagTool::finalize() {
   ATH_MSG_DEBUG( "in finalize()" );
   return StatusCode::SUCCESS;
 }
-
-/** destructor */
-SUSYPhysTagTool::~SUSYPhysTagTool() {}
-
-
-
diff --git a/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/StandardModelPhysTagTools/StandardModelPhysTagTool.h b/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/StandardModelPhysTagTools/StandardModelPhysTagTool.h
index b918aa585db3f496fb5b968ace50508ec3f82701..fcdbb1b80758c4f3a53c01868df0e1c19909338d 100755
--- a/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/StandardModelPhysTagTools/StandardModelPhysTagTool.h
+++ b/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/StandardModelPhysTagTools/StandardModelPhysTagTool.h
@@ -40,11 +40,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& smTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~StandardModelPhysTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/src/StandardModelTagTool.cxx b/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/src/StandardModelTagTool.cxx
index 72caf2533016e4155b1ece16b4fbc4ea29fa08ba..2a6eba2f1764467d236535dd3cc08994e76fd504 100755
--- a/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/src/StandardModelTagTool.cxx
+++ b/PhysicsAnalysis/StandardModelPhys/StandardModelPhysTagTools/src/StandardModelTagTool.cxx
@@ -79,9 +79,3 @@ StatusCode StandardModelPhysTagTool::finalize() {
   ATH_MSG_DEBUG( "in finalize()" );
   return StatusCode::SUCCESS;
 }
-
-/** destructor */
-StandardModelPhysTagTool::~StandardModelPhysTagTool() {}
-
-
-
diff --git a/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauIdentificationTagTool.h b/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauIdentificationTagTool.h
index b09e514d59777e8da6b888199764dfe7d9bd0c5d..f914f591c64dad77b3ed67b3cd1bb90ccbb05df3 100755
--- a/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauIdentificationTagTool.h
+++ b/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauIdentificationTagTool.h
@@ -40,11 +40,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& tauIdTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~TauIdentificationTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauJetTagTool.h b/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauJetTagTool.h
index dd41a35f86362f97510ec39c561c93e337db0758..c47efe345ef44fd47473f8a77b6e74038153e198 100755
--- a/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauJetTagTool.h
+++ b/PhysicsAnalysis/TauID/TauTagTools/TauTagTools/TauJetTagTool.h
@@ -18,16 +18,13 @@ Purpose : build the TauJet Tag objects - TauJetTagCollection.h.
 
 #include "TagEvent/TagFragmentCollection.h"
 #include "AthenaPoolUtilities/AthenaAttributeSpecification.h"
+#include "TauAnalysisTools/ITauSelectionTool.h"
 
 #include <map>
 
 /** Interface ID for TauJetTagTool*/  
 static const InterfaceID IID_TauJetTagTool("TauJetTagTool", 1, 0);
 
-namespace TauAnalysisTools {
-  class ITauSelectionTool;
-}
-
 class TauJetTagTool : public AthAlgTool {
 
 public:
@@ -44,11 +41,6 @@ public:
   virtual StatusCode execute(TagFragmentCollection& tauJetTagCol, const int max);
   virtual StatusCode finalize();
 
-protected:
-
-   /** Standard destructor */
-   virtual ~TauJetTagTool( );
-
 private:
 
   /** Properties */
diff --git a/PhysicsAnalysis/TauID/TauTagTools/src/TauIdentificationTagTool.cxx b/PhysicsAnalysis/TauID/TauTagTools/src/TauIdentificationTagTool.cxx
index cd41735628f80bdaecaf9d6555f8c4feb75f7539..6ce885975458796ec043baf0c2f2c36fb4da8ddc 100755
--- a/PhysicsAnalysis/TauID/TauTagTools/src/TauIdentificationTagTool.cxx
+++ b/PhysicsAnalysis/TauID/TauTagTools/src/TauIdentificationTagTool.cxx
@@ -76,7 +76,3 @@ StatusCode TauIdentificationTagTool::finalize() {
   ATH_MSG_DEBUG( "in finalize()" );
   return StatusCode::SUCCESS;
 }
-
-/** destructor */
-TauIdentificationTagTool::~TauIdentificationTagTool() {}
-
diff --git a/PhysicsAnalysis/TauID/TauTagTools/src/TauJetTagTool.cxx b/PhysicsAnalysis/TauID/TauTagTools/src/TauJetTagTool.cxx
index 1ca7e004db45849c649f3ac121c8403850d47fbf..0a85c9400e87cfca34fd52e020470183a3b9fd25 100755
--- a/PhysicsAnalysis/TauID/TauTagTools/src/TauJetTagTool.cxx
+++ b/PhysicsAnalysis/TauID/TauTagTools/src/TauJetTagTool.cxx
@@ -211,8 +211,3 @@ StatusCode TauJetTagTool::execute(TagFragmentCollection& tauJetTagColl, const in
 
   return StatusCode::SUCCESS;
 }
-
-/** destructor */
-TauJetTagTool::~TauJetTagTool() {}
-
-
diff --git a/Projects/AnalysisBase/externals.txt b/Projects/AnalysisBase/externals.txt
index faa3415a1a44254efa31a3d6354aeaed83e2c2cb..714dec59cd88c58de8afefe1117b7000c6641420 100644
--- a/Projects/AnalysisBase/externals.txt
+++ b/Projects/AnalysisBase/externals.txt
@@ -6,4 +6,4 @@
 # forbidden.
 
 # The version of atlas/atlasexternals to use:
-AnalysisBaseExternalsVersion = 2.0.8
+AnalysisBaseExternalsVersion = 2.0.10
diff --git a/Projects/AnalysisTop/externals.txt b/Projects/AnalysisTop/externals.txt
index 338270671d48f18a675051971e0ef0619cf15374..f1e3b89a4689df7fe38fe1bce28350666178819f 100644
--- a/Projects/AnalysisTop/externals.txt
+++ b/Projects/AnalysisTop/externals.txt
@@ -1,4 +1,4 @@
 # Versions of the various externals to build before starting the build of
 # this project, when doing a full stack nightly build.
 
-AnalysisBaseExternalsVersion = 2.0.8
+AnalysisBaseExternalsVersion = 2.0.10
diff --git a/Projects/AthDataQuality/externals.txt b/Projects/AthDataQuality/externals.txt
index 45153f25f9918604195b150670c1afe638a0e43a..b970f5dc1bb5d0de6ac058daa2a0f945146e6866 100644
--- a/Projects/AthDataQuality/externals.txt
+++ b/Projects/AthDataQuality/externals.txt
@@ -5,4 +5,4 @@
 # an "origin/" prefix before it. For tags however this is explicitly
 # forbidden.
 
-AtlasExternalsVersion = 2.0.8
+AtlasExternalsVersion = 2.0.10
diff --git a/Projects/AthSimulation/externals.txt b/Projects/AthSimulation/externals.txt
index 9db1e9bfab3254a3c91d7e5ec061833a52582293..705f4101d4a4994ffc5a22f52a92736fa4a5e4bf 100644
--- a/Projects/AthSimulation/externals.txt
+++ b/Projects/AthSimulation/externals.txt
@@ -6,7 +6,7 @@
 # forbidden.
 
 # The version of atlas/atlasexternals to use:
-AthSimulationExternalsVersion = 2.0.8
+AthSimulationExternalsVersion = 2.0.10
 
 # The version of atlas/Gaudi to use:
-GaudiVersion = v30r2.004
+GaudiVersion = v30r2.005
diff --git a/Projects/Athena/externals.txt b/Projects/Athena/externals.txt
index 8fba97e62f84df3fb3418d2beda271f2fbac00cd..aa5a84d208b6134b8e26f5fba3f18da5bacb1846 100644
--- a/Projects/Athena/externals.txt
+++ b/Projects/Athena/externals.txt
@@ -6,7 +6,7 @@
 # forbidden.
 
 # The version of atlas/atlasexternals to use:
-AthenaExternalsVersion = 2.0.8
+AthenaExternalsVersion = 2.0.10
 
 # The version of atlas/Gaudi to use: 
-GaudiVersion = v30r2.004
+GaudiVersion = v30r2.005
diff --git a/Projects/Athena/externals/Pythia8.cmake b/Projects/Athena/externals/Pythia8.cmake
index f40af1563d13273c4a31572264d227c33d71f9d2..c4482eec04f8c3fed0c030c2e88ae49b98795b52 100644
--- a/Projects/Athena/externals/Pythia8.cmake
+++ b/Projects/Athena/externals/Pythia8.cmake
@@ -2,7 +2,7 @@
 # File specifying the location of Pythia 8 to use.
 #
 
-set( PYTHIA8_VERSION 219 )
+set( PYTHIA8_VERSION 219.pdf6plugin )
 
 set( PYTHIA8_ROOT
    ${LCG_RELEASE_DIR}/MCGenerators/pythia8/${PYTHIA8_VERSION}/${LCG_PLATFORM} )
diff --git a/Reconstruction/MET/METReconstruction/METReconstruction/METAssociationTool.h b/Reconstruction/MET/METReconstruction/METReconstruction/METAssociationTool.h
index 8759371c38560a2bfe6144d642bdb1aeb6e4ac35..ff0dd3b492a86547ed89488ad5126689b1399e76 100644
--- a/Reconstruction/MET/METReconstruction/METReconstruction/METAssociationTool.h
+++ b/Reconstruction/MET/METReconstruction/METReconstruction/METAssociationTool.h
@@ -91,7 +91,6 @@ namespace met{
 
     /// Default constructor: 
     METAssociationTool();
-    virtual ~METAssociationTool();
 
     // Run the MET tools here
     StatusCode buildMET(xAOD::MissingETContainer* metCont, xAOD::MissingETAssociationMap* metMap) const;
diff --git a/Reconstruction/MET/METReconstruction/METReconstruction/METRecoTool.h b/Reconstruction/MET/METReconstruction/METReconstruction/METRecoTool.h
index 07d09216e0824b9e8138130d45c31ede69781338..b9eeaf76677b81bb1a86cb3679b84416f630b554 100644
--- a/Reconstruction/MET/METReconstruction/METReconstruction/METRecoTool.h
+++ b/Reconstruction/MET/METReconstruction/METReconstruction/METRecoTool.h
@@ -89,7 +89,6 @@ namespace met{
 
     /// Default constructor: 
     METRecoTool();
-    virtual ~METRecoTool();
 
     // Run the MET tools here
     StatusCode buildMET(xAOD::MissingETContainer* metCont, xAOD::MissingETComponentMap* metMap) const;
diff --git a/Reconstruction/MET/METReconstruction/Root/METAssociationTool.cxx b/Reconstruction/MET/METReconstruction/Root/METAssociationTool.cxx
index fdbcc13a1e7a7043438e26ad271ffc9c47bc58ae..b97055ad6684d4370859d9a544ba6cd687bd621f 100644
--- a/Reconstruction/MET/METReconstruction/Root/METAssociationTool.cxx
+++ b/Reconstruction/MET/METReconstruction/Root/METAssociationTool.cxx
@@ -52,11 +52,6 @@ namespace met {
     declareProperty( "TimingDetail",       m_timedetail = 0      );
   }
 
-  // Destructor
-  ///////////////
-  METAssociationTool::~METAssociationTool()
-  {}
-
   // Athena algtool's Hooks
   ////////////////////////////
   StatusCode METAssociationTool::initialize()
diff --git a/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx b/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx
index 402c1c137b6360a60a982d54f552e9ddb3a76d12..5c89104840314160d52dd38956d5661e98eed7f0 100644
--- a/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx
+++ b/Reconstruction/MET/METReconstruction/Root/METRecoTool.cxx
@@ -59,10 +59,6 @@ namespace met {
     declareProperty( "TimingDetail",       m_timedetail = 0      );
   }
 
-  // Destructor
-  ///////////////
-  METRecoTool::~METRecoTool()
-  {}
 
   // Athena algtool's Hooks
   ////////////////////////////
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/BasicPlotsTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/BasicPlotsTool.h
index df02019b0decabe45f9a05a9278b9cc2b3e1e1e1..f414d545582485e3356b871254db1fc8ccf3b4ba 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/BasicPlotsTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/BasicPlotsTool.h
@@ -45,11 +45,6 @@ public:
 
    inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~BasicPlotsTool( );
-
  private:
   struct MissingETHists {
     TH1D* METphi;
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/ContainerComparatorTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/ContainerComparatorTool.h
index fbc003c6428e6db594199b2fab7221bc4acdb800..85f8964cf94b31d28ebd3d631007fe85bfd373d2 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/ContainerComparatorTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/ContainerComparatorTool.h
@@ -45,11 +45,6 @@ public:
   virtual StatusCode finalize();
   virtual StatusCode execute(MissingETData *data);
 
-protected:
-
-   /** Standard destructor */
-   virtual ~ContainerComparatorTool( );
-
  private:
   StatusCode comparatorPlots(MissingETData *data);
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/EtaRingsTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/EtaRingsTool.h
index 11b466b770a0b60910beeff9e20985f280174d6a..12d9bf079eb9b89c218365035cddaf743fbe7c04 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/EtaRingsTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/EtaRingsTool.h
@@ -43,11 +43,6 @@ public:
 
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~EtaRingsTool( );
-
  private:
   std::string m_folderName;
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/FakeMissingETTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/FakeMissingETTool.h
index e9960710f7cc8d3cfecefe34ac62a98d316816bf..961b5ecf72512551dd4d54bd977db66f41ace7be 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/FakeMissingETTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/FakeMissingETTool.h
@@ -45,11 +45,6 @@ public:
 
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~FakeMissingETTool( );
-
  private:
   std::string m_folderName;
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/LinearityTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/LinearityTool.h
index 2615633e68856386dfa9e05cb12372a24feb2ec8..240225dd02155fb724100240c9100c63d25050d6 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/LinearityTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/LinearityTool.h
@@ -46,11 +46,6 @@ public:
 
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~LinearityTool( );
-
  private:
   StatusCode linearity(MissingETData *data);
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETCompositionTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETCompositionTool.h
index 45ec1ca448d2281981f571de5b22d910c584f083..6fbe009fc74071bf81bffd37184e15452ba8bec4 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETCompositionTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETCompositionTool.h
@@ -46,11 +46,6 @@ public:
 
    inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~MissingETCompositionTool( );
-
  private:
   StatusCode CBNT_initialize_jets();
   StatusCode CBNT_initialize_taus();
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETScaleTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETScaleTool.h
index 33d9fef83daf138f354cada30dabc54ac34536b1..38954ee7af6a84fa74c366091e075342750c2ecc 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETScaleTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/MissingETScaleTool.h
@@ -50,11 +50,6 @@ public:
     virtual StatusCode finalize();
     virtual StatusCode execute(MissingETData *data);
 
-   protected:
-
-   /** Standard destructor */
-   virtual ~MissingETScaleTool( );
-
  private:
 
   StatusCode MissingETScale(MissingETData *data);
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/MuonTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/MuonTool.h
index 1c3ff8f241869832ee989ff989d63852fecff1d9..1756a1ff913c9d3baf08704c3ef89cc7b68d19f5 100644
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/MuonTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/MuonTool.h
@@ -46,11 +46,6 @@ public:
 
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~MuonTool( );
-
  private:
   std::string m_folderName;
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/PileUpTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/PileUpTool.h
index 3903bf1f435957f76135732c9b2a7886afa89823..6162b7ccba7e4947509f232c63a59acbe37900c8 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/PileUpTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/PileUpTool.h
@@ -41,11 +41,6 @@ class PileUpTool : public AthAlgTool
     
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-  protected:
-    
-    // Standard destructor
-    virtual ~PileUpTool( );
-    
   private:
     
     StatusCode pileUp(MissingETData *data);
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/ResolutionTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/ResolutionTool.h
index afa48cb1e5b01957176c15470aa7a90fb489ae21..9a5a75fc962b5379ad54a045608575405cc183ff 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/ResolutionTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/ResolutionTool.h
@@ -46,11 +46,6 @@ public:
 
    inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~ResolutionTool( );
-
  private:
   StatusCode resolution(MissingETData *data);
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/TrigMissingETTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/TrigMissingETTool.h
index efdce13433bee5878899470b85c4a9b5227277a9..3761a4964b7e00edcea9b88b1c9f6cd3e2027446 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/TrigMissingETTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/TrigMissingETTool.h
@@ -46,10 +46,6 @@ public:
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
 protected:
-
-   /** Standard destructor */
-   virtual ~TrigMissingETTool( );
-
   /** a handle on Store Gate for access to the Event Store */
   StoreGateSvc* m_storeGate;
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/TrigVsOfflineMissingETTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/TrigVsOfflineMissingETTool.h
index 793b84a86d416baa0ca8350665e6a20634f48f13..5025c4dd4a579b3dc14f3643f2a8a8f1c0975480 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/TrigVsOfflineMissingETTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/TrigVsOfflineMissingETTool.h
@@ -43,11 +43,6 @@ class TrigVsOfflineMissingETTool: public AthAlgTool {
 
    inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-  protected:
-
-    /** Standard destructor */
-    virtual ~TrigVsOfflineMissingETTool( );
-
   private:
     ITHistSvc * m_thistSvc;
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/ZMuMuTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/ZMuMuTool.h
index e3bdf61beafe0174e014a9e6ee81afb2b71d71cd..16be9bbe9329ca3d4bfb4ba502144a9d2f509751 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/ZMuMuTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/ZMuMuTool.h
@@ -46,11 +46,6 @@ public:
 
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~ZMuMuTool( );
-
  private:
   std::string m_folderName;
 
diff --git a/Reconstruction/MissingETPerformance/MissingETPerformance/ZeeTool.h b/Reconstruction/MissingETPerformance/MissingETPerformance/ZeeTool.h
index 1518204ab23a2c64b386ac6f67d8487e9abeacaa..2756b3e634c4e9d463d49019db20bb4cd88849ca 100755
--- a/Reconstruction/MissingETPerformance/MissingETPerformance/ZeeTool.h
+++ b/Reconstruction/MissingETPerformance/MissingETPerformance/ZeeTool.h
@@ -45,11 +45,6 @@ public:
 
   inline void SetFolderName(const std::string& folderName) { m_folderName=folderName; }
 
-protected:
-
-   /** Standard destructor */
-   virtual ~ZeeTool( );
-
  private:
   std::string m_folderName;
 
diff --git a/Reconstruction/MissingETPerformance/src/BasicPlotsTool.cxx b/Reconstruction/MissingETPerformance/src/BasicPlotsTool.cxx
index 5a5817e8e8de146876f160a75f904ac08a5b0622..901a4b1ddcb3f0f383be7016d9fbd87887c81a9a 100755
--- a/Reconstruction/MissingETPerformance/src/BasicPlotsTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/BasicPlotsTool.cxx
@@ -598,6 +598,3 @@ StatusCode BasicPlotsTool::basicPlots(MissingETData *data) {
 StatusCode BasicPlotsTool::finalize() {
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-BasicPlotsTool::~BasicPlotsTool() {}
diff --git a/Reconstruction/MissingETPerformance/src/ContainerComparatorTool.cxx b/Reconstruction/MissingETPerformance/src/ContainerComparatorTool.cxx
index e3914cc625d9140524b0e5432df8f679c3115732..6c18ac2cb4e234124004aa860bc3f13c27e2b2af 100755
--- a/Reconstruction/MissingETPerformance/src/ContainerComparatorTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/ContainerComparatorTool.cxx
@@ -177,9 +177,6 @@ StatusCode ContainerComparatorTool::finalize() {
   return StatusCode::SUCCESS;
 }
 
-//------------------------------------------------------------------------------
-ContainerComparatorTool::~ContainerComparatorTool() {}
-
 ContainerComparatorTool::DiffContainers::DiffContainers(const std::string &s, const std::string &s2,ITHistSvc * thistSvc) 
 {
   StatusCode sc = StatusCode::SUCCESS;
diff --git a/Reconstruction/MissingETPerformance/src/EtaRingsTool.cxx b/Reconstruction/MissingETPerformance/src/EtaRingsTool.cxx
index 08f938109446fde0216d35ab4f46379ec7437785..f2e746e87045a2f94e65442c38c7d2ce945360d7 100755
--- a/Reconstruction/MissingETPerformance/src/EtaRingsTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/EtaRingsTool.cxx
@@ -635,6 +635,3 @@ StatusCode EtaRingsTool::finalize() {
 
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-EtaRingsTool::~EtaRingsTool() {}
diff --git a/Reconstruction/MissingETPerformance/src/FakeMissingETTool.cxx b/Reconstruction/MissingETPerformance/src/FakeMissingETTool.cxx
index 729b05809719fd6a35b6073487336709c69d3502..e5e67680f7af504161c6b4580fc9ac72f1e6d81b 100755
--- a/Reconstruction/MissingETPerformance/src/FakeMissingETTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/FakeMissingETTool.cxx
@@ -864,6 +864,3 @@ StatusCode FakeMissingETTool::finalize() {
 
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-FakeMissingETTool::~FakeMissingETTool() {}
diff --git a/Reconstruction/MissingETPerformance/src/LinearityTool.cxx b/Reconstruction/MissingETPerformance/src/LinearityTool.cxx
index 958605f398ceb8afff1d4cb07308ffcae4252ca0..f76fecc13b3b7c80f66325c0a9009e321e2bb585 100755
--- a/Reconstruction/MissingETPerformance/src/LinearityTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/LinearityTool.cxx
@@ -450,8 +450,3 @@ StatusCode LinearityTool::linearity(MissingETData *data) {
 StatusCode LinearityTool::finalize() {
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-LinearityTool::~LinearityTool() {}
-
-
diff --git a/Reconstruction/MissingETPerformance/src/MissingETCompositionTool.cxx b/Reconstruction/MissingETPerformance/src/MissingETCompositionTool.cxx
index 00dca0b206b994a46d24df30a2d54c296d88227a..373a41192f288f520e04c20cd50a3a218469fc5c 100755
--- a/Reconstruction/MissingETPerformance/src/MissingETCompositionTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/MissingETCompositionTool.cxx
@@ -2046,8 +2046,6 @@ StatusCode MissingETCompositionTool::finalize() {
 }
 
 //------------------------------------------------------------------------------
-MissingETCompositionTool::~MissingETCompositionTool() {}
-
 evt_display::evt_display(int run, int event, ITHistSvc *thistSvc, const std::string &folderName, MsgStream* mLog) {
   
   //msg() << MSG::WARNING << "in evt_display" << endmsg;
diff --git a/Reconstruction/MissingETPerformance/src/MissingETScaleTool.cxx b/Reconstruction/MissingETPerformance/src/MissingETScaleTool.cxx
index f094e87356405845136f6508f05632316c791043..46e1c3676227bc7b910253af3746b09e05e650d6 100755
--- a/Reconstruction/MissingETPerformance/src/MissingETScaleTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/MissingETScaleTool.cxx
@@ -258,5 +258,3 @@ double MissingETScaleTool::invTTmass(double pxMiss, double pyMiss,
 
   return myTTmassd;
 }
-//------------------------------------------------------------------------------
-MissingETScaleTool::~MissingETScaleTool() {}
diff --git a/Reconstruction/MissingETPerformance/src/MuonTool.cxx b/Reconstruction/MissingETPerformance/src/MuonTool.cxx
index 1c4a7af0c38b6d72a6b7bf6f9b03185c21a271ee..2b92c46bc8efff28aa1389ac00a6568569cf4451 100644
--- a/Reconstruction/MissingETPerformance/src/MuonTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/MuonTool.cxx
@@ -578,6 +578,3 @@ StatusCode MuonTool::muonSetup(MissingETMuonData *muondata) {
 StatusCode MuonTool::finalize() {
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-MuonTool::~MuonTool() {}
diff --git a/Reconstruction/MissingETPerformance/src/PileUpTool.cxx b/Reconstruction/MissingETPerformance/src/PileUpTool.cxx
index c3116e3347529b0f6e5b661fdbfa8dded9e4a401..4d48ba877e2f567cda71df65dca553fcbb5cc5f8 100755
--- a/Reconstruction/MissingETPerformance/src/PileUpTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/PileUpTool.cxx
@@ -394,8 +394,3 @@ StatusCode PileUpTool::finalize()
   
   return StatusCode::SUCCESS;
 }
-
-
-PileUpTool::~PileUpTool()
-{
-}
diff --git a/Reconstruction/MissingETPerformance/src/ResolutionTool.cxx b/Reconstruction/MissingETPerformance/src/ResolutionTool.cxx
index a5d0cf2863fc59a3c84e5e68218163db8878ab35..323bcd3e4ff3beb9eca0d3c11c709c0c8e0623be 100755
--- a/Reconstruction/MissingETPerformance/src/ResolutionTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/ResolutionTool.cxx
@@ -662,8 +662,3 @@ StatusCode ResolutionTool::finalize() {
 
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-ResolutionTool::~ResolutionTool() {}
-
-
diff --git a/Reconstruction/MissingETPerformance/src/TrigMissingETTool.cxx b/Reconstruction/MissingETPerformance/src/TrigMissingETTool.cxx
index 0b79f23436491d011b2817303771bc6ba9393a7d..b6203c921cbfe46df063c25319580dc2e8283393 100755
--- a/Reconstruction/MissingETPerformance/src/TrigMissingETTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/TrigMissingETTool.cxx
@@ -499,6 +499,3 @@ StatusCode TrigMissingETTool::finalize() {
 
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-TrigMissingETTool::~TrigMissingETTool() {}
diff --git a/Reconstruction/MissingETPerformance/src/TrigVsOfflineMissingETTool.cxx b/Reconstruction/MissingETPerformance/src/TrigVsOfflineMissingETTool.cxx
index d725f96a7db75e8af2e5422e75542dd55917a684..a38775169f65f44dfa874d0b66cbf24bd5c80a3d 100755
--- a/Reconstruction/MissingETPerformance/src/TrigVsOfflineMissingETTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/TrigVsOfflineMissingETTool.cxx
@@ -200,13 +200,6 @@ TrigVsOfflineMissingETTool::TrigVsOfflineMissingETTool(const std::string & type,
 }
 
 
-/*-----------------------------------------------------*/
-TrigVsOfflineMissingETTool::~TrigVsOfflineMissingETTool()
-  /*-----------------------------------------------------*/
-{
-}
-
-
 /*-----------------------------------------------------*/
 StatusCode TrigVsOfflineMissingETTool::CBNT_initialize()
   /*-----------------------------------------------------*/
diff --git a/Reconstruction/MissingETPerformance/src/ZMuMuTool.cxx b/Reconstruction/MissingETPerformance/src/ZMuMuTool.cxx
index aa5c9b17468a09411007a5b1bc63eb1890f6de88..cc8b08e035274f4bd9ee506a7f5e1337f40498f5 100755
--- a/Reconstruction/MissingETPerformance/src/ZMuMuTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/ZMuMuTool.cxx
@@ -565,6 +565,3 @@ StatusCode ZMuMuTool::finalize() {
 
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-ZMuMuTool::~ZMuMuTool() {}
diff --git a/Reconstruction/MissingETPerformance/src/ZeeTool.cxx b/Reconstruction/MissingETPerformance/src/ZeeTool.cxx
index 6b2212cfb2093d1e7e6d3dfc2db4679a308be802..3202e7f8aa35e38fb677011c27b92e745bea6c5a 100755
--- a/Reconstruction/MissingETPerformance/src/ZeeTool.cxx
+++ b/Reconstruction/MissingETPerformance/src/ZeeTool.cxx
@@ -221,6 +221,3 @@ StatusCode ZeeTool::finalize() {
 
   return StatusCode::SUCCESS;
 }
-
-//------------------------------------------------------------------------------
-ZeeTool::~ZeeTool() {}
diff --git a/Reconstruction/MuonIdentification/CombinedMuonRefit/src/ExtrapolateMuonToIP.h b/Reconstruction/MuonIdentification/CombinedMuonRefit/src/ExtrapolateMuonToIP.h
index f858a3055f24fb1dc2a3b18ddf0ff4f2e9f2aca7..0b736382baf43f1c0e1d9287d79d7aba71752bc8 100644
--- a/Reconstruction/MuonIdentification/CombinedMuonRefit/src/ExtrapolateMuonToIP.h
+++ b/Reconstruction/MuonIdentification/CombinedMuonRefit/src/ExtrapolateMuonToIP.h
@@ -12,9 +12,9 @@
 // Base class
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "MuonRecHelperTools/MuonEDMPrinterTool.h"
 
 namespace Muon{
-  class MuonEDMPrinterTool;
   class IMuonTrackExtrapolationTool;
 }
 
diff --git a/Reconstruction/RecAthenaPool/src/MissingETCompositionCnv.h b/Reconstruction/RecAthenaPool/src/MissingETCompositionCnv.h
index 93dc752d58165cd205a48fccc7dd9c9c2b8b7d12..19e8a9f520738fa4b054e93c4bf7bb58c99f2ef5 100644
--- a/Reconstruction/RecAthenaPool/src/MissingETCompositionCnv.h
+++ b/Reconstruction/RecAthenaPool/src/MissingETCompositionCnv.h
@@ -27,9 +27,9 @@ class MissingETCompositionCnv : public MissingETCompositionCnvBase
     , m_TPconverter_p2(0)
     { };
 
- protected:
   virtual ~MissingETCompositionCnv() { delete m_TPconverter_p2; };
 
+ protected:
   virtual MissingETComposition_PERS*   createPersistent (MissingETComposition* transObj);
   virtual MissingETComposition*        createTransient ();
   
diff --git a/Reconstruction/RecEventAthenaPool/src/RecoTimingObjCnv.h b/Reconstruction/RecEventAthenaPool/src/RecoTimingObjCnv.h
index f545ed632ce8a56ae638a3414b9c9c168e36eaf3..e9176e846113a48139f4afd2b73417a30c783751 100644
--- a/Reconstruction/RecEventAthenaPool/src/RecoTimingObjCnv.h
+++ b/Reconstruction/RecEventAthenaPool/src/RecoTimingObjCnv.h
@@ -21,9 +21,6 @@ class RecoTimingObjCnv: public T_AthenaPoolCustomCnv< RecoTimingObj, RecoTimingO
   // make the factory for this converter our friend
   friend class CnvFactory<RecoTimingObjCnv>;
   
-  // destructor
-  virtual ~RecoTimingObjCnv() { delete m_msg; }; 
-    
   /////////////////////////////////////////////////////////////////// 
   // Protected methods: 
   /////////////////////////////////////////////////////////////////// 
@@ -33,6 +30,10 @@ class RecoTimingObjCnv: public T_AthenaPoolCustomCnv< RecoTimingObj, RecoTimingO
    */
 public:
   RecoTimingObjCnv(ISvcLocator* svcloc);
+
+  // destructor
+  virtual ~RecoTimingObjCnv() { delete m_msg; }; 
+    
 protected:
 
   /** Build the persistent representation from the transient one.
diff --git a/Reconstruction/RecoAlgs/CaloRingerAlgs/src/xAODRingSetConfWriter.h b/Reconstruction/RecoAlgs/CaloRingerAlgs/src/xAODRingSetConfWriter.h
index ebf8b4d63a551bfd5efbb10f8a881f6d045b4b35..cb0d38bfe1ac39401a5db2546cfc83bd75da40e7 100644
--- a/Reconstruction/RecoAlgs/CaloRingerAlgs/src/xAODRingSetConfWriter.h
+++ b/Reconstruction/RecoAlgs/CaloRingerAlgs/src/xAODRingSetConfWriter.h
@@ -19,14 +19,13 @@ extern "C" {
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "StoreGate/StoreGateSvc.h"
+#include "CaloRingerTools/ICaloRingsBuilder.h"
 
 // EDM include(s):
 #include "xAODCaloRings/RingSetConfContainer.h"
 
 namespace Ringer {
 
-class ICaloRingsBuilder;
-
 /**
 *  @short Algorithm used to write the RingSets configuration
 *
diff --git a/Reconstruction/RecoTools/TrackToCalo/src/TrackParticleCaloExtensionAlg.h b/Reconstruction/RecoTools/TrackToCalo/src/TrackParticleCaloExtensionAlg.h
index 8b8ee08b2779816338edf77bf6d320f9f793f102..714c79bccf64571d7c951c69d78464e7c41316c7 100644
--- a/Reconstruction/RecoTools/TrackToCalo/src/TrackParticleCaloExtensionAlg.h
+++ b/Reconstruction/RecoTools/TrackToCalo/src/TrackParticleCaloExtensionAlg.h
@@ -18,10 +18,8 @@
 #include "GaudiKernel/ToolHandle.h"
 
 #include "TrackCaloClusterRecInterfaces/IParticleExtrapolationTool.h"
+#include "TrkToolInterfaces/ITrackSelectorTool.h"
 
-namespace Trk {
-  class ITrackSelectorTool;
-}
 namespace Rec {
   class IParticleCaloCellAssociationTool;
 }
diff --git a/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.cxx b/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.cxx
index bdffb4d6be04ae6138f0e704a73d71c059168785..42967a314b5cc5771887438ff2ce1a3deeee2a91 100644
--- a/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.cxx
+++ b/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.cxx
@@ -21,12 +21,6 @@ TrackParticleContainerCnv::TrackParticleContainerCnv( ISvcLocator *svcloc ):
                            m_log( m_msgSvc, "TrackParticleContainerCnv" )
  {}
  
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-TrackParticleContainerCnv::~TrackParticleContainerCnv()
-{}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.h b/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.h
index 50abb13ae6bcbb8d59003f1d61689bbd43303347..3bd3be87d65ec7a75da3c5942c68a08f75b4efea 100644
--- a/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.h
+++ b/Reconstruction/TrackParticleAthenaPool/src/TrackParticleContainerCnv.h
@@ -46,7 +46,6 @@ class TrackParticleContainerCnv : public TrackParticleContainerCnvBase
 public:
   TrackParticleContainerCnv( ISvcLocator *svcloc );
 protected:
-  ~TrackParticleContainerCnv();
   virtual StatusCode initialize();
   
   virtual TrackParticleContainer_PERS *createPersistent( Rec::TrackParticleContainer *transCont);
diff --git a/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.cxx b/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.cxx
index 8f7bea4870eb568d33aca3228991d23cdc002145..e89ac9b14e1ce7bc63e29e68cb9770709243dbe2 100644
--- a/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.cxx
+++ b/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.cxx
@@ -7,6 +7,7 @@
 #include "TrackParticleTruthTPCnv/TrackParticleTruthCollectionContainerCnv_tlp2.h"
 #include "TrackParticleTruthTPCnv/TrackParticleTruthCollection_p1.h"
 #include "TrackParticleTruthTPCnv/TrackParticleTruthCollection_p2.h"
+#include "ParticleTruth/TrackParticleTruthVector.h"
 
 #include "GaudiKernel/StatusCode.h"
 #include "GaudiKernel/MsgStream.h"
diff --git a/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.h b/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.h
index 5bf8fc304bb7e49f7955777bb69326bd9fb56f9a..0100c6b18eecfe0fbd47f8cc4b690a9f8f124e3a 100644
--- a/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.h
+++ b/Reconstruction/TrackParticleTruthAthenaPool/src/TrackParticleTruthCollectionContainerCnv.h
@@ -13,6 +13,7 @@
 
 #include "AthenaPoolCnvSvc/T_AthenaPoolCustomCnv.h"
 #include "ParticleTruth/TrackParticleTruthCollectionContainer.h"
+#include "ParticleTruth/TrackParticleTruthVector.h"
 
 class TrackParticleTruthCollectionContainer_tlp1;
 
@@ -30,8 +31,8 @@ class TrackParticleTruthCollectionContainerCnv : public TrackParticleTruthCollec
 protected:
 public:
    TrackParticleTruthCollectionContainerCnv(ISvcLocator* svcloc);
-protected:
    ~TrackParticleTruthCollectionContainerCnv();
+protected:
   virtual TrackParticleTruthCollectionContainer* createTransient();
   virtual TrackParticleTruthCollectionContainerPERS* createPersistent(TrackParticleTruthCollectionContainer*);
 private:
diff --git a/Reconstruction/eflowRec/eflowRec/PFLeptonSelector.h b/Reconstruction/eflowRec/eflowRec/PFLeptonSelector.h
index 76d8b82425ec9fe586b05d3faaf404ccf4ae4651..2955b75b179f1ba741aa171f5bd529e0c702cfac 100644
--- a/Reconstruction/eflowRec/eflowRec/PFLeptonSelector.h
+++ b/Reconstruction/eflowRec/eflowRec/PFLeptonSelector.h
@@ -28,13 +28,13 @@ public:
 private:
 
   /** Select electrons to use */
-  StatusCode selectElectrons(SG::WriteHandle<xAOD::ElectronContainer>& selectedElectronsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle);
+  StatusCode selectElectrons(SG::WriteHandle<ConstDataVector<xAOD::ElectronContainer >>& selectedElectronsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle);
 
   /** store the cells of the electrons */
   void storeElectronCells(const xAOD::Egamma& electron, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle);
 
   /** select  muons to use */
-  StatusCode selectMuons(SG::WriteHandle<xAOD::MuonContainer>& selectedMuonsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle);
+  StatusCode selectMuons(SG::WriteHandle<ConstDataVector<xAOD::MuonContainer> >& selectedMuonsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle);
 
   /** store the cells of the muons */
   void storeMuonCells(const xAOD::Muon& muon, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle);
@@ -43,7 +43,7 @@ private:
   void storeLeptonCells(const xAOD::CaloCluster& theCluster, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle);
 
   /** Put lepton containers and list of lepton cells into Storegate */
-  StatusCode recordLeptonContainers(SG::WriteHandle<xAOD::ElectronContainer>& selectedElectronsWriteHandle, SG::WriteHandle<xAOD::MuonContainer>& selectedMuonsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle );
+  StatusCode recordLeptonContainers(SG::WriteHandle<ConstDataVector<xAOD::ElectronContainer >>& selectedElectronsWriteHandle, SG::WriteHandle<ConstDataVector<xAOD::MuonContainer> >& selectedMuonsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle );
   
   /** ReadHandle for the ElectronContainer to be used as input */
   SG::ReadHandleKey<xAOD::ElectronContainer> m_electronsReadHandleKey{this,"inputElectronsName","Electrons","ReadHandle for the ElectronContainer to be used as input"};
@@ -52,11 +52,11 @@ private:
   SG::ReadHandleKey<xAOD::MuonContainer> m_muonsReadHandleKey{this,"inputMuonsName","Muons","ReadHandle for the MuonContainer to be used as input"};
 
   /** WriteHandle for the ElectronContainer, that will be filled with electrons passing the electron ID in PFLeptonSelector::selectElectrons */
-  SG::WriteHandleKey<xAOD::ElectronContainer> m_selectedElectronsWriteHandleKey{this,"outputElectronsName","eflowRec_selectedElectrons","WriteHandle for the ElectronContainer, that will be filled with electrons passing the electron ID in PFLeptonSelector::selectElectrons"};
+  SG::WriteHandleKey<ConstDataVector<xAOD::ElectronContainer >> m_selectedElectronsWriteHandleKey{this,"outputElectronsName","eflowRec_selectedElectrons","WriteHandle for the ElectronContainer, that will be filled with electrons passing the electron ID in PFLeptonSelector::selectElectrons"};
 
   /** WriteHandle for the MuonContainer, that will be filled with muons passing the muon ID in PFLeptonSelector::selectMuons */
-  SG::WriteHandleKey<xAOD::MuonContainer> m_selectedMuonsWriteHandleKey{this,"outputMuonsName","eflowRec_selectedMuons","WriteHandle for the MuonContainer, that will be filled with muons passing the muon ID in PFLeptonSelector::selectMuons"};
-
+  SG::WriteHandleKey<ConstDataVector<xAOD::MuonContainer> > m_selectedMuonsWriteHandleKey{this,"outputMuonsName","eflowRec_selectedMuons","WriteHandle for the MuonContainer, that will be filled with muons passing the muon ID in PFLeptonSelector::selectMuons"};
+  
   /** WriteHandle for the CaloCellContainer, that will store calorimeter cells associated to leptons */
   SG::WriteHandleKey<ConstDataVector<CaloCellContainer> > m_leptonCaloCellsWriteHandleKey{this,"outputLeptonCellsName","eflowRec_leptonCellContainer","WriteHandle for the CaloCellContainer, that will store calorimeter cells associated to leptons"};
 
diff --git a/Reconstruction/eflowRec/src/PFLeptonSelector.cxx b/Reconstruction/eflowRec/src/PFLeptonSelector.cxx
index 9e215a6342119d9293faad852f1e464f3d7b6086..be8135287e4386b856e0050844ee22408df14053 100644
--- a/Reconstruction/eflowRec/src/PFLeptonSelector.cxx
+++ b/Reconstruction/eflowRec/src/PFLeptonSelector.cxx
@@ -19,8 +19,8 @@ StatusCode PFLeptonSelector::initialize(){
 
 StatusCode PFLeptonSelector::execute(){
 
-  SG::WriteHandle<xAOD::ElectronContainer> selectedElectronsWriteHandle(m_selectedElectronsWriteHandleKey);
-  SG::WriteHandle<xAOD::MuonContainer> selectedMuonsWriteHandle(m_selectedMuonsWriteHandleKey);
+  SG::WriteHandle<ConstDataVector<xAOD::ElectronContainer >> selectedElectronsWriteHandle(m_selectedElectronsWriteHandleKey);
+  SG::WriteHandle<ConstDataVector<xAOD::MuonContainer> > selectedMuonsWriteHandle(m_selectedMuonsWriteHandleKey);
   SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle(m_leptonCaloCellsWriteHandleKey);
   
   if (recordLeptonContainers(selectedElectronsWriteHandle,selectedMuonsWriteHandle,leptonCaloCellsWriteHandle).isFailure()) {
@@ -42,7 +42,7 @@ StatusCode PFLeptonSelector::execute(){
 
 StatusCode PFLeptonSelector::finalize(){ return StatusCode::SUCCESS; }
 
-StatusCode PFLeptonSelector::selectElectrons(SG::WriteHandle<xAOD::ElectronContainer>& selectedElectronsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle ){
+StatusCode PFLeptonSelector::selectElectrons(SG::WriteHandle<ConstDataVector<xAOD::ElectronContainer >>& selectedElectronsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle ){
 
   SG::ReadHandle<xAOD::ElectronContainer>  electronsReadHandle(m_electronsReadHandleKey);
   
@@ -62,7 +62,7 @@ StatusCode PFLeptonSelector::selectElectrons(SG::WriteHandle<xAOD::ElectronConta
 	  continue;
 	}
 	if (true == val_med){
-	  if (selectedElectronsWriteHandle.isValid()) selectedElectronsWriteHandle->push_back(const_cast<xAOD::Electron*>(theElectron));
+	  if (selectedElectronsWriteHandle.isValid()) selectedElectronsWriteHandle->push_back(theElectron);
 	  else ATH_MSG_WARNING("Do not have valid WriteHandle for ElectronContainer with name: " << selectedElectronsWriteHandle.key());
 	  if (true == m_storeLeptonCells) this->storeElectronCells(*theElectron,leptonCaloCellsWriteHandle);
 	}//mediumPP
@@ -85,7 +85,7 @@ void PFLeptonSelector::storeElectronCells(const xAOD::Egamma& electron, SG::Writ
 
 }
 
-StatusCode PFLeptonSelector::selectMuons(SG::WriteHandle<xAOD::MuonContainer>& selectedMuonsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle) {
+StatusCode PFLeptonSelector::selectMuons(SG::WriteHandle<ConstDataVector<xAOD::MuonContainer> >& selectedMuonsWriteHandle, SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle) {
 
   SG::ReadHandle<xAOD::MuonContainer> muonsReadHandle(m_muonsReadHandleKey);
   
@@ -102,8 +102,7 @@ StatusCode PFLeptonSelector::selectMuons(SG::WriteHandle<xAOD::MuonContainer>& s
     
     xAOD::Muon::Quality muonQuality = theMuon->quality();
     if( muonQuality <= xAOD::Muon::Medium) {   
-      
-      if (selectedMuonsWriteHandle.isValid()) selectedMuonsWriteHandle->push_back(const_cast<xAOD::Muon*>(theMuon));
+      if (selectedMuonsWriteHandle.isValid()) selectedMuonsWriteHandle->push_back(theMuon);
       else ATH_MSG_WARNING("Do not have valid WriteHandle for MuonContainer with name: " << selectedMuonsWriteHandle.key());
       if (true == m_storeLeptonCells) this->storeMuonCells(*theMuon,leptonCaloCellsWriteHandle);
     }//Medium muons
@@ -139,16 +138,16 @@ void PFLeptonSelector::storeLeptonCells(const xAOD::CaloCluster& theCluster, SG:
   else ATH_MSG_WARNING("This cluster has an invalid pointer to its cells, in storeLeptonCells");
 }
 
-StatusCode PFLeptonSelector::recordLeptonContainers(SG::WriteHandle<xAOD::ElectronContainer>& selectedElectronsWriteHandle, SG::WriteHandle<xAOD::MuonContainer>& selectedMuonsWriteHandle,SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle){
+StatusCode PFLeptonSelector::recordLeptonContainers(SG::WriteHandle<ConstDataVector<xAOD::ElectronContainer >>& selectedElectronsWriteHandle, SG::WriteHandle<ConstDataVector<xAOD::MuonContainer> >& selectedMuonsWriteHandle,SG::WriteHandle<ConstDataVector<CaloCellContainer> > leptonCaloCellsWriteHandle){
 
-  StatusCode sc = selectedElectronsWriteHandle.record(std::make_unique<xAOD::ElectronContainer>(SG::VIEW_ELEMENTS));
+  StatusCode sc = selectedElectronsWriteHandle.record(std::make_unique<ConstDataVector<xAOD::ElectronContainer >>(SG::VIEW_ELEMENTS));
   
   if (sc.isFailure()) {
     ATH_MSG_WARNING("Could not record electron WriteHandle with key: " << selectedElectronsWriteHandle.key());
     return sc;
   }
     
-  sc = selectedMuonsWriteHandle.record(std::make_unique<xAOD::MuonContainer>(SG::VIEW_ELEMENTS));
+  sc = selectedMuonsWriteHandle.record(std::make_unique<ConstDataVector<xAOD::MuonContainer> >(SG::VIEW_ELEMENTS));
   
   if (sc.isFailure()) {
     ATH_MSG_WARNING("Could not record muon WriteHandle with key: " << selectedMuonsWriteHandle.key());
diff --git a/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py b/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py
index d396548846052dba600963e3ffa245447f4b5f9c..5d71a861b21e73554605e9b9f3485690c4157e5e 100644
--- a/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py
+++ b/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py
@@ -96,9 +96,9 @@ def CreateEgammaRotCreator():
                                          Mode             = 'indet')
   ToolSvc += egRotCreator
   # load error scaling
-  from IOVDbSvc.CondDB import conddb
-  if not conddb.folderRequested('Indet/TrkErrorScaling'):
-    conddb.addFolderSplitOnline('INDET','/Indet/Onl/TrkErrorScaling','/Indet/TrkErrorScaling') 
+  # load error scaling
+  from InDetRecExample.TrackingCommon import createAndAddCondAlg, getRIO_OnTrackErrorScalingCondAlg
+  createAndAddCondAlg(getRIO_OnTrackErrorScalingCondAlg,'RIO_OnTrackErrorScalingCondAlg')
 
   return egRotCreator
 
diff --git a/Reconstruction/iPat/iPatGeometry/src/MaterialAllocator.cxx b/Reconstruction/iPat/iPatGeometry/src/MaterialAllocator.cxx
index db2c5b192e05f196bf165f06442cb1d300a14a27..5132818875cdf4a26cb4596ba32363d491bc545f 100755
--- a/Reconstruction/iPat/iPatGeometry/src/MaterialAllocator.cxx
+++ b/Reconstruction/iPat/iPatGeometry/src/MaterialAllocator.cxx
@@ -26,7 +26,7 @@ MaterialAllocator::MaterialAllocator (std::string versionName)
 	&& m_versionName != "DC3")
     {
 	// TODO: should flag problem
-	m_versionName == "DC3";
+	m_versionName = "DC3";
     }
 }
 
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx
index 124880d4930bde924877b528316616f0bb4fdeef..663e8115577200bce727440e4796f6fa3fbcc391 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx
@@ -14,6 +14,7 @@
 #include "G4AtlasRunManager.h"
 
 // Geant4 includes
+#include "G4StateManager.hh"
 #include "G4TransportationManager.hh"
 #include "G4RunManagerKernel.hh"
 #include "G4EventManager.hh"
@@ -199,8 +200,10 @@ void G4AtlasAlg::initializeOnce()
   }
 
   // Send UI commands
+  ATH_MSG_DEBUG("G4 Command: Trying at the end of initializeOnce()");
   for (auto g4command : m_g4commands) {
-    ui->ApplyCommand( g4command );
+    int returnCode = ui->ApplyCommand( g4command );
+    commandLog(returnCode, g4command);
   }
 
   // G4 init moved to PyG4AtlasAlg / G4AtlasEngine
@@ -395,3 +398,22 @@ void G4AtlasAlg::releaseGeoModel()
   m_releaseGeoModel=false; // Don't do that again...
   return;
 }
+
+void G4AtlasAlg::commandLog(int returnCode, const std::string& commandString) const
+{
+  switch(returnCode) {
+  case 0: { ATH_MSG_DEBUG("G4 Command: " << commandString << " - Command Succeeded"); } break;
+  case 100: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Command Not Found!"); } break;
+  case 200: {
+    auto* stateManager = G4StateManager::GetStateManager();
+    ATH_MSG_DEBUG("G4 Command: " << commandString << " - Illegal Application State (" <<
+                    stateManager->GetStateString(stateManager->GetCurrentState()) << ")!");
+  } break;
+  case 300: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Range!"); } break;
+  case 400: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Unreadable!"); } break;
+  case 500: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Candidates!"); } break;
+  case 600: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Alias Not Found!"); } break;
+  default: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Unknown Status!"); } break;
+  }
+
+}
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h
index 18c21e58fdbda3f185ef697a7fe9d66848e1ea16..b577c1a30cdc1d7c7f29d895d1c8792849ed1315 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h
@@ -85,6 +85,9 @@ public:
 
 private:
 
+  /// This command prints a message about a G4Command depending on its returnCode
+  void commandLog(int returnCode, const std::string& commandString) const;
+
   /// Releases the GeoModel geometry from memory once it has been used
   /// to build the G4 geometry and is no-longer required
   void releaseGeoModel();
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.cxx b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.cxx
index 41b3bcc981e71209905904d711076d8ef3ac5281..3ea10e510b184322874bce883abd6a04e1e0d644 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.cxx
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 // Hide multi-threading classes from builds without G4MT
@@ -8,72 +8,6 @@
 #include "G4AtlasUserWorkerThreadInitialization.h"
 #include "G4AtlasWorkerRunManager.h"
 
-// Geant4 includes. They might not be stictly necessary.
-#include "globals.hh" // gives the G4Exception
-#include "G4AutoLock.hh"
-
-// Mersenne twister engine used in ATLAS
-#include "CLHEP/Random/MTwistEngine.h"
-
-// Using Geant4's mutex, but could easily use another.
-namespace {
-  G4Mutex rngCreateMutex = G4MUTEX_INITIALIZER;
-}
-
-void G4AtlasUserWorkerThreadInitialization::
-SetupRNGEngine(const CLHEP::HepRandomEngine* aNewRNG) const
-{
-  // Current behavior in G4 base class is to use a lock.
-  G4AutoLock l(&rngCreateMutex);
-
-  // A Call to this just forces the creation to defaults.
-  // Not sure how this fits into the ATLAS model...
-  G4Random::getTheEngine();
-  
-  // Try casting to determine RNG engine type
-  CLHEP::HepRandomEngine* retRNG = 0;
-  if ( dynamic_cast<const CLHEP::MTwistEngine*>(aNewRNG) ) {
-     retRNG = new CLHEP::MTwistEngine;
-  }
-  else if ( dynamic_cast<const CLHEP::HepJamesRandom*>(aNewRNG) ) {
-     retRNG = new CLHEP::HepJamesRandom;
-  }
-  else if ( dynamic_cast<const CLHEP::RanecuEngine*>(aNewRNG) ) {
-     retRNG = new CLHEP::RanecuEngine;
-  }
-  else if ( dynamic_cast<const CLHEP::Ranlux64Engine*>(aNewRNG) ) {
-     retRNG = new CLHEP::Ranlux64Engine;
-  }
-  else if ( dynamic_cast<const CLHEP::MTwistEngine*>(aNewRNG) ) {
-     retRNG = new CLHEP::MTwistEngine;
-  }
-  else if ( dynamic_cast<const CLHEP::DualRand*>(aNewRNG) ) {
-     retRNG = new CLHEP::DualRand;
-  }
-  else if ( dynamic_cast<const CLHEP::RanluxEngine*>(aNewRNG) ) {
-     retRNG = new CLHEP::RanluxEngine;
-  }
-  else if ( dynamic_cast<const CLHEP::RanshiEngine*>(aNewRNG) ) {
-     retRNG = new CLHEP::RanshiEngine;
-  }
-  else {
-     // TODO: think about using proper ATLAS messaging and error handling..?
-     G4ExceptionDescription msg;
-     msg << " Unknown type of RNG Engine - " << G4endl
-         << " Can cope only with MTwistEngine, HepJamesRandom, Ranecu, Ranlux64,"
-         << " MTwistEngine, DualRand, Ranlux or Ranshi."
-         << G4endl
-         << " Cannot clone this type of RNG engine, as required for this thread"
-         << G4endl
-         << " Aborting " << G4endl;
-     G4Exception("G4UserWorkerInitializition::SetupRNGEngine()",
-                 "Run10099", FatalException, msg);
-  }
-
-  // Set the new engine. I suspect ATLAS seed information is lost :(
-  G4Random::setTheEngine( retRNG );
-}
-
 G4WorkerRunManager* G4AtlasUserWorkerThreadInitialization::
 CreateWorkerRunManager() const
 {
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.h b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.h
index 265b1185de1d39b46b460ee5f26fb911b82e4292..bf20f3570c36b37f421b49944a716b7aee4d408c 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.h
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasUserWorkerThreadInitialization.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef G4ATLASALG_G4ATLASUSERWORKERTHREADINITIALIZATION_H
@@ -26,11 +26,6 @@ class G4AtlasUserWorkerThreadInitialization : public G4UserWorkerThreadInitializ
 
 public:
 
-  /// @brief Override thread-local setup of RNG engine.
-  /// This currently just clones the master's engine.
-  /// Assumes we're just using a MTwistEngine for now.
-  void SetupRNGEngine(const CLHEP::HepRandomEngine* aRNGEngine) const;
-
   /// @brief Create ATLAS worker run manager
   G4WorkerRunManager* CreateWorkerRunManager() const;
 
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.cxx b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.cxx
index 420cf9b2563efda87417aae39ad54cf02a599092..0d9753216e2d6f254e6308d698b3596f5b208d87 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.cxx
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.cxx
@@ -82,11 +82,13 @@ void G4AtlasWorkerRunManager::Initialize()
   ** If ATLAS ever decides to run multiple G4 runs in the same job, all the MT initialization
   ** will have to be thoroughly reviewed.
   */
+  ATH_MSG_DEBUG("G4 Command: Trying at the end of Initialize()");
   G4MTRunManager* masterRM = G4MTRunManager::GetMasterRunManager();
   std::vector<G4String> cmds = masterRM->GetCommandStack();
   G4UImanager* uimgr = G4UImanager::GetUIpointer();
   for(const auto& it : cmds) {
     int retVal = uimgr->ApplyCommand(it);
+    CommandLog(retVal, it);
     if(retVal!=fCommandSucceeded) {
        std::string errMsg{"Failed to apply command <"};
        errMsg += (it + ">. Return value " + std::to_string(retVal));
@@ -205,4 +207,23 @@ void G4AtlasWorkerRunManager::RunTermination()
   G4WorkerRunManager::RunTermination();
 }
 
+void G4AtlasWorkerRunManager::CommandLog(int returnCode, const std::string& commandString) const
+{
+  switch(returnCode) {
+  case 0: { ATH_MSG_DEBUG("G4 Command: " << commandString << " - Command Succeeded"); } break;
+  case 100: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Command Not Found!"); } break;
+  case 200: {
+    auto* stateManager = G4StateManager::GetStateManager();
+    ATH_MSG_DEBUG("G4 Command: " << commandString << " - Illegal Application State (" <<
+                    stateManager->GetStateString(stateManager->GetCurrentState()) << ")!");
+  } break;
+  case 300: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Range!"); } break;
+  case 400: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Unreadable!"); } break;
+  case 500: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Candidates!"); } break;
+  case 600: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Alias Not Found!"); } break;
+  default: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Unknown Status!"); } break;
+  }
+
+}
+
 #endif // G4MULTITHREADED
diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.h b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.h
index 7068a7e75cc13375cb45acc847ba0d0be44e63ee..974c11c36a0e73dab6f7fd436fb335b402ab81fe 100644
--- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.h
+++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasWorkerRunManager.h
@@ -51,6 +51,9 @@ private:
   /// Pure singleton private constructor
   G4AtlasWorkerRunManager();
 
+  /// This command prints a message about a G4Command depending on its returnCode
+  void CommandLog(int returnCode, const std::string& commandString) const;
+
   /// Log a message using the Athena controlled logging system
   MsgStream& msg( MSG::Level lvl ) const { return m_msg << lvl; }
   /// Check whether the logging system is active at the provided verbosity level
diff --git a/Simulation/G4Atlas/G4AtlasTools/G4AtlasTools/PhysicsListToolBase.h b/Simulation/G4Atlas/G4AtlasTools/G4AtlasTools/PhysicsListToolBase.h
index 34a9c727b15abb8f05a8567cbd9b933310c1189d..b917fe53d488fab773f7ca6d41aa8e88e5bc4ce0 100644
--- a/Simulation/G4Atlas/G4AtlasTools/G4AtlasTools/PhysicsListToolBase.h
+++ b/Simulation/G4Atlas/G4AtlasTools/G4AtlasTools/PhysicsListToolBase.h
@@ -36,6 +36,10 @@ public:
   virtual void SetPhysicsOptions() override;
 
 private:
+
+  /// This command prints a message about a G4Command depending on its returnCode
+  void CommandLog(int returnCode, const std::string& commandString) const;
+
   ToolHandleArray<IPhysicsOptionTool> m_phys_option;
   ToolHandleArray<IPhysicsOptionTool> m_phys_decay;
   G4VModularPhysicsList* m_physicsList; ///!< Handle on the physics list
diff --git a/Simulation/G4Atlas/G4AtlasTools/src/AddPhysicsDecayTool.cxx b/Simulation/G4Atlas/G4AtlasTools/src/AddPhysicsDecayTool.cxx
index 02cfc3d5cd7f7f53545ba650f7655b5b0e631b48..0eb33e92413f73f0eb6e416445b8087c07c52460 100644
--- a/Simulation/G4Atlas/G4AtlasTools/src/AddPhysicsDecayTool.cxx
+++ b/Simulation/G4Atlas/G4AtlasTools/src/AddPhysicsDecayTool.cxx
@@ -23,7 +23,9 @@
 // 15-05-2015 : Edoardo Farina
 //-----------------------------------------------------------------------------
 #include "G4Version.hh"
-#if G4VERSION_NUMBER > 1009
+#if G4VERSION_NUMBER > 1029
+#define PARTICLEITERATOR (this->GetParticleIterator())
+#elif G4VERSION_NUMBER > 1009
 #define PARTICLEITERATOR aParticleIterator
 #else
 #define PARTICLEITERATOR theParticleIterator
diff --git a/Simulation/G4Atlas/G4AtlasTools/src/DetectorFieldManagerTool.cxx b/Simulation/G4Atlas/G4AtlasTools/src/DetectorFieldManagerTool.cxx
index 0ec6ef6cf9a4bccb63618e2664cc70947c65102c..45ad616efa7d2c24ee3a58c7328de2c512799fb1 100644
--- a/Simulation/G4Atlas/G4AtlasTools/src/DetectorFieldManagerTool.cxx
+++ b/Simulation/G4Atlas/G4AtlasTools/src/DetectorFieldManagerTool.cxx
@@ -14,6 +14,8 @@
 #include "G4ChordFinder.hh"
 #include "G4LogicalVolume.hh"
 #include "G4LogicalVolumeStore.hh"
+#include "G4Version.hh"
+#include "G4MagIntegratorDriver.hh"
 
 //-----------------------------------------------------------------------------
 // Tool constructor
@@ -67,7 +69,16 @@ StatusCode DetectorFieldManagerTool::initializeField()
 
     // Construct the stepper
     auto stepper = getStepper(m_integratorStepper, field);
-    fieldMgr->GetChordFinder()->GetIntegrationDriver()->RenewStepperAndAdjust(stepper);
+
+    G4MagInt_Driver* magDriver = nullptr;
+
+#if G4VERSION_NUMBER < 1040
+    magDriver = fieldMgr->GetChordFinder()->GetIntegrationDriver();
+#else
+    magDriver = static_cast<G4MagInt_Driver*>(fieldMgr->GetChordFinder()->GetIntegrationDriver());
+#endif
+
+    magDriver->RenewStepperAndAdjust(stepper);
 
     // Assign the field manager to volumes
     auto logVolStore = G4LogicalVolumeStore::GetInstance();
diff --git a/Simulation/G4Atlas/G4AtlasTools/src/GlobalFieldManagerTool.cxx b/Simulation/G4Atlas/G4AtlasTools/src/GlobalFieldManagerTool.cxx
index b8ba6f02cae704625c3745a22fedcd07220be916..27c3463e1a62860f180ab969648aec87760c0c14 100644
--- a/Simulation/G4Atlas/G4AtlasTools/src/GlobalFieldManagerTool.cxx
+++ b/Simulation/G4Atlas/G4AtlasTools/src/GlobalFieldManagerTool.cxx
@@ -16,7 +16,8 @@
 #include "G4ChordFinder.hh"
 #include "G4PropagatorInField.hh"
 #include "G4MagIntegratorStepper.hh"
-
+#include "G4Version.hh"
+#include "G4MagIntegratorDriver.hh"
 
 //-----------------------------------------------------------------------------
 // Tool constructor
@@ -71,12 +72,21 @@ StatusCode GlobalFieldManagerTool::initializeField()
     fieldMgr->SetDetectorField(field);
     ATH_CHECK( setFieldParameters(fieldMgr) );
 
-    // Construct the stepper
-    auto stepper = getStepper(m_integratorStepper, field);
-
     // Create and configure the ChordFinder
     fieldMgr->CreateChordFinder(field);
-    fieldMgr->GetChordFinder()->GetIntegrationDriver()->RenewStepperAndAdjust(stepper);
+
+    // Construct the stepper
+    auto stepper = getStepper(m_integratorStepper, field);
+    
+    G4MagInt_Driver* magDriver = nullptr;
+    
+#if G4VERSION_NUMBER < 1040
+    magDriver = fieldMgr->GetChordFinder()->GetIntegrationDriver();
+#else
+    magDriver = static_cast<G4MagInt_Driver*>(fieldMgr->GetChordFinder()->GetIntegrationDriver());
+#endif
+    
+    magDriver->RenewStepperAndAdjust(stepper);
 
     // Configure the propagator
     G4PropagatorInField* propagator = transpManager->GetPropagatorInField();
diff --git a/Simulation/G4Atlas/G4AtlasTools/src/PhysicsListToolBase.cxx b/Simulation/G4Atlas/G4AtlasTools/src/PhysicsListToolBase.cxx
index 410a197ca305863c7f9675bde9b60ad709cd0e4f..83f9da280374a0d25f8e1c028cef777817319826 100644
--- a/Simulation/G4Atlas/G4AtlasTools/src/PhysicsListToolBase.cxx
+++ b/Simulation/G4Atlas/G4AtlasTools/src/PhysicsListToolBase.cxx
@@ -5,6 +5,7 @@
 #include "G4AtlasTools/PhysicsListToolBase.h"
 
 #include "G4VUserPhysicsList.hh"
+#include "G4StateManager.hh"
 #include "G4RunManager.hh"
 #include "G4EmProcessOptions.hh"
 #include "G4UImanager.hh"
@@ -122,22 +123,32 @@ void PhysicsListToolBase::SetPhysicsOptions()
     {
       m_physicsList->SetDefaultCutValue(m_generalCut);
     }
+
+  std::vector<std::string> g4commands;
   if (m_neutronTimeCut > 0. && std::fabs(m_neutronTimeCut)>std::numeric_limits<double>::epsilon())
     {
       std::ostringstream oss;
       oss<<"/physics_engine/neutron/timeLimit "<<m_neutronTimeCut<<" ns";
-      G4UImanager* UImanager = G4UImanager::GetUIpointer();
-      UImanager->ApplyCommand(oss.str());
+      g4commands.push_back(oss.str());
     }
 
   if (m_neutronEnergyCut > 0. && std::fabs(m_neutronEnergyCut)>std::numeric_limits<double>::epsilon())
     {
       std::ostringstream oss;
       oss<<"/physics_engine/neutron/energyLimit "<<m_neutronEnergyCut<<" MeV";
-      G4UImanager* UImanager = G4UImanager::GetUIpointer();
-      UImanager->ApplyCommand(oss.str());
+      g4commands.push_back(oss.str());
     }
 
+  if(!g4commands.empty()) {
+    // Send UI commands
+    ATH_MSG_DEBUG("G4 Command: Trying in SetPhysicsOptions()");
+    G4UImanager* ui = G4UImanager::GetUIpointer();
+    for (auto g4command : g4commands) {
+      int returnCode = ui->ApplyCommand( g4command );
+      CommandLog(returnCode, g4command);
+    }
+  }
+
   G4EmProcessOptions emo;
   if (m_emMaxEnergy>=0) emo.SetMaxEnergy(m_emMaxEnergy);
   if (m_emDEDXBinning>=0) emo.SetDEDXBinning(m_emDEDXBinning);
@@ -149,3 +160,22 @@ void PhysicsListToolBase::SetPhysicsOptions()
     }
   return;
 }
+
+void PhysicsListToolBase::CommandLog(int returnCode, const std::string& commandString) const
+{
+  switch(returnCode) {
+  case 0: { ATH_MSG_DEBUG("G4 Command: " << commandString << " - Command Succeeded"); } break;
+  case 100: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Command Not Found!"); } break;
+  case 200: {
+    auto* stateManager = G4StateManager::GetStateManager();
+    ATH_MSG_DEBUG("G4 Command: " << commandString << " - Illegal Application State (" <<
+                    stateManager->GetStateString(stateManager->GetCurrentState()) << ")!");
+  } break;
+  case 300: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Range!"); } break;
+  case 400: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Unreadable!"); } break;
+  case 500: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Candidates!"); } break;
+  case 600: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Alias Not Found!"); } break;
+  default: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Unknown Status!"); } break;
+  }
+
+}
diff --git a/Simulation/G4Utilities/G4PhysicsLists/src/MuBias/G4EmStandardPhysics_MuBias.cc b/Simulation/G4Utilities/G4PhysicsLists/src/MuBias/G4EmStandardPhysics_MuBias.cc
index 4e04a7e762961422c0dad58fbf7e17df769a83fb..997e08a13e117f1932b60a6a839d00dc2c412b0d 100644
--- a/Simulation/G4Utilities/G4PhysicsLists/src/MuBias/G4EmStandardPhysics_MuBias.cc
+++ b/Simulation/G4Utilities/G4PhysicsLists/src/MuBias/G4EmStandardPhysics_MuBias.cc
@@ -59,13 +59,20 @@
 #include "G4eCoulombScatteringModel.hh"
 #include "G4WentzelVIModel.hh"
 #include "G4Version.hh"
-#if G4VERSION_NUMBER>=1000
-#include "G4UrbanMscModel.hh"
+
+#if G4VERSION_NUMBER > 1029
+#define PARTICLEITERATOR (this->GetParticleIterator())
+#elif G4VERSION_NUMBER > 1009
 #define PARTICLEITERATOR aParticleIterator
 #else
-#  include "G4UrbanMscModel96.hh"
 #define PARTICLEITERATOR theParticleIterator
-    using G4UrbanMscModel=G4UrbanMscModel96;
+#endif
+
+#if G4VERSION_NUMBER>=1000
+#include "G4UrbanMscModel.hh"
+#else
+#include "G4UrbanMscModel96.hh"
+using G4UrbanMscModel=G4UrbanMscModel96;
 #endif
 
 #include "G4MuBremsstrahlungModel.hh"
diff --git a/Simulation/G4Utilities/G4PhysicsLists/src/hadronicVariations/G4FTFModel2.cc b/Simulation/G4Utilities/G4PhysicsLists/src/hadronicVariations/G4FTFModel2.cc
index 7cf36cdbb46d5d0bfc4d6c465f3cf00b46b1002a..80f5b3e96811bfe562710e63440ece7b2ecba337 100644
--- a/Simulation/G4Utilities/G4PhysicsLists/src/hadronicVariations/G4FTFModel2.cc
+++ b/Simulation/G4Utilities/G4PhysicsLists/src/hadronicVariations/G4FTFModel2.cc
@@ -55,6 +55,8 @@
 #include "G4IonTable.hh"
 #include "G4KineticTrack.hh"                                     // Uzhi Oct 2014
 
+#include "G4Version.hh" // For changes to interface pre,post 10.4
+
 //============================================================================
 
 //#define debugFTFmodel
@@ -239,10 +241,18 @@ void G4FTFModel2::Init( const G4Nucleus& aNucleus, const G4DynamicParticle& aPro
   // Init target nucleus
   theParticipants.Init( aNucleus.GetA_asInt(), aNucleus.GetZ_asInt() );
 
+  //BM-Apr-2018 - update interface following G4FTFModel in 10.4
+#if G4VERSION_NUMBER < 1040
   if ( theParameters != 0 ) delete theParameters;
   theParameters = new G4FTFParameters( theProjectile.GetDefinition(), aNucleus.GetA_asInt(),
                                        aNucleus.GetZ_asInt(), PlabPerParticle );
-
+#else
+  // reset/recalculate everything for the new interaction
+  //
+  theParameters->InitForInteraction( theProjectile.GetDefinition(), aNucleus.GetA_asInt(),
+                                     aNucleus.GetZ_asInt(), PlabPerParticle );
+#endif
+  
   //AR-Oct2017 : to switch off projectile and target diffraction.
   if ( isDiffractionSwitchedOff ) {
     //G4cout << " G4FTFModel2::Init(...) : projectile=" << theProjectile.GetDefinition()->GetParticleName() 
diff --git a/Simulation/G4Utilities/G4ProfilingTools/src/TestActionTimerTool.h b/Simulation/G4Utilities/G4ProfilingTools/src/TestActionTimerTool.h
index de5a8564a1c84c2ffbbdf6c168f7c279a94002f6..06f64ff283863745ccc1cf08250867b47c21f2a8 100644
--- a/Simulation/G4Utilities/G4ProfilingTools/src/TestActionTimerTool.h
+++ b/Simulation/G4Utilities/G4ProfilingTools/src/TestActionTimerTool.h
@@ -7,8 +7,8 @@
 
 #include "G4AtlasTools/UserActionToolBase.h"
 #include "TestActionTimer.h"
+#include "GaudiKernel/ITHistSvc.h"
 
-class ITHistSvc;
 
 namespace G4UA
 {
diff --git a/Simulation/G4Utilities/G4StepLimitation/src/G4StepLimitationTool.cxx b/Simulation/G4Utilities/G4StepLimitation/src/G4StepLimitationTool.cxx
index 8d25ae173835d0d492a95d1adb1ce1189fc1f1b9..d1c7a457b8994882bbeb1bd9f08ed7268cbada06 100644
--- a/Simulation/G4Utilities/G4StepLimitation/src/G4StepLimitationTool.cxx
+++ b/Simulation/G4Utilities/G4StepLimitation/src/G4StepLimitationTool.cxx
@@ -17,7 +17,9 @@
 // 03-08-2015 : Edoardo Farina
 //-----------------------------------------------------------------------------
 
-#if G4VERSION_NUMBER > 1009
+#if G4VERSION_NUMBER > 1029
+#define PARTICLEITERATOR (this->GetParticleIterator())
+#elif G4VERSION_NUMBER > 1009
 #define PARTICLEITERATOR aParticleIterator
 #else
 #define PARTICLEITERATOR theParticleIterator
diff --git a/Simulation/G4Utilities/G4UserActions/src/RadiationMapsMaker.cxx b/Simulation/G4Utilities/G4UserActions/src/RadiationMapsMaker.cxx
index 05d69b4d29eeafacd85217f2c671633decdd27f7..701557681083877277b30c1bab7b3db1c23e7792 100644
--- a/Simulation/G4Utilities/G4UserActions/src/RadiationMapsMaker.cxx
+++ b/Simulation/G4Utilities/G4UserActions/src/RadiationMapsMaker.cxx
@@ -396,16 +396,34 @@ namespace G4UA{
 	  }
 	  
 	  if ( goodMaterial && vBinZoom >=0 ) {
-	    m_maps.m_rz_tid [vBinZoom] += dE_ION/rho;
-	    m_maps.m_rz_eion[vBinZoom] += dE_ION;
+	    if ( pdgid == 999 ) {
+	      m_maps.m_rz_tid [vBinZoom] += 1;
+	      m_maps.m_rz_eion[vBinZoom] += rho;
+	    }
+	    else {
+	      m_maps.m_rz_tid [vBinZoom] += dE_ION/rho;
+	      m_maps.m_rz_eion[vBinZoom] += dE_ION;
+	    }
 	  }
 	  if ( goodMaterial && vBinFull >=0 ) {
-	    m_maps.m_full_rz_tid [vBinFull] += dE_ION/rho;
-	    m_maps.m_full_rz_eion[vBinFull] += dE_ION;
+	    if ( pdgid == 999 ) {
+	      m_maps.m_full_rz_tid [vBinFull] += 1;
+	      m_maps.m_full_rz_eion[vBinFull] += rho;
+	    }
+	    else {
+	      m_maps.m_full_rz_tid [vBinFull] += dE_ION/rho;
+	      m_maps.m_full_rz_eion[vBinFull] += dE_ION;
+	    }
 	  }
 	  if ( goodMaterial && vBin3d >=0 ) {
-	    m_maps.m_3d_tid [vBin3d] += dE_ION/rho;
-	    m_maps.m_3d_eion[vBin3d] += dE_ION;
+	    if ( pdgid == 999 ) {
+	      m_maps.m_3d_tid [vBin3d] += 1;
+	      m_maps.m_3d_eion[vBin3d] += rho;
+	    }
+	    else {
+	      m_maps.m_3d_tid [vBin3d] += dE_ION/rho;
+	      m_maps.m_3d_eion[vBin3d] += dE_ION;
+	    }
 	  }
 	    
 	  if ( goodMaterial && (pdgid == 1 || pdgid == 2 || pdgid == 4 || pdgid == 5 || pdgid == 6 || pdgid == 7 || pdgid == 8 || pdgid == 9 )) {
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx
index 55f73b931aefb5b0f9f943076aa12e1c58375ccc..39430814e52bd68f2a688e819d13d1953d6eab48 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx
@@ -83,9 +83,9 @@ StatusCode MergeCalibHitsTool::processBunchXing(int bunchXing,
       ATH_MSG_VERBOSE ( " Bunch Crossing: " <<bunchXing << ". Process CalibrationHit container " << m_CalibrationHitContainer[iHitContainer] );
       const CaloCalibrationHitContainer* hitCont;
       if (!m_pMergeSvc->retrieveSingleSubEvtData(m_CalibrationHitContainer[iHitContainer], hitCont,
-						 bunchXing, iEvt).isSuccess()){
-	ATH_MSG_ERROR("CaloCalibrationHitContainer not found for event key " << m_CalibrationHitContainer[iHitContainer]);
-	return StatusCode::FAILURE;
+                                                 bunchXing, iEvt).isSuccess()){
+        ATH_MSG_VERBOSE("CaloCalibrationHitContainer not found for event key " << m_CalibrationHitContainer[iHitContainer]);
+        continue;
       }
 
       //if this is the first SubEvent for this Event then create the hitContainers;
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx
index e8ea7f7d5ab46849f2a8c4d4c9098f8e076ce63c..b0e5a9264afd15ab32f4d7f21e5f51b331fd1561 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx
@@ -55,7 +55,7 @@ StatusCode MergeGenericMuonSimHitCollTool::processBunchXing(int bunchXing,
     // loop over containers
     for (unsigned int iHitContainer=0;iHitContainer<m_SimHitContainerNames.size();++iHitContainer) {
       ATH_MSG_VERBOSE ( " Bunch Crossing: " <<bunchXing << ". Process GenericMuonSimHitCollection " << m_SimHitContainerNames[iHitContainer] );
-      const GenericMuonSimHitCollection* hitCont;
+      const GenericMuonSimHitCollection* hitCont = nullptr;
       if (!m_pMergeSvc->retrieveSingleSubEvtData(m_SimHitContainerNames[iHitContainer], hitCont,
 						 bunchXing, iEvt).isSuccess()){
 	ATH_MSG_ERROR("GenericMuonSimHitCollection not found for event key " << m_SimHitContainerNames[iHitContainer]);
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollection.h b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollection.h
index 30354b8b826a36f85a7959af2ffab2e5d0f71621..1930fe2138f64ad454be99e605a2d2901cf85928 100755
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollection.h
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollection.h
@@ -7,8 +7,8 @@
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "PileUpTools/PileUpMergeSvc.h"
 
-class IPileUpTool;
 
 /** @class MergeMcEventCollection
  *  @brief an algorithm to merge MC truth collection in the overlay store
diff --git a/Simulation/ISF/ISF_Core/ISF_Tools/src/ParticleHelper.h b/Simulation/ISF/ISF_Core/ISF_Tools/src/ParticleHelper.h
index 6b0a43c3e3915bc1afc40eb96408d3a4260ed38f..de3625bd38fa69e96ad2595e69ed738861f7ac81 100644
--- a/Simulation/ISF/ISF_Core/ISF_Tools/src/ParticleHelper.h
+++ b/Simulation/ISF/ISF_Core/ISF_Tools/src/ParticleHelper.h
@@ -20,11 +20,12 @@
 #include "ISF_Interfaces/IParticleHelper.h"
 // Barcode includes
 #include "BarcodeEvent/Barcode.h"
+#include "BarcodeInterfaces/IBarcodeSvc.h"
 
-// forward declarations
-namespace Barcode {
-  class IBarcodeSvc;
-}
+// // forward declarations
+// namespace Barcode {
+//   class IBarcodeSvc;
+// }
 
 namespace ISF {
 
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h
index e00740d417b7b494ee6a67ce43a0485adb8a39a0..37b9c882fc7c2ef22713a938ce8efc20ddbd2599 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimSD/src/FCS_StepInfoSD.h
@@ -14,6 +14,8 @@
 #include "CLHEP/Units/SystemOfUnits.h"
 
 #include "ISF_FastCaloSimEvent/FCS_StepInfoCollection.h"
+#include "LArG4Code/ILArCalculatorSvc.h"
+#include "TileG4Interfaces/ITileCalculator.h"
 
 #include <map>
 #include <vector>
@@ -29,8 +31,6 @@ class LArMiniFCAL_ID;
 class TileID;
 class CaloDetDescrManager;
 
-class ILArCalculatorSvc;
-class ITileCalculator;
 class LArHitContainer;
 
 class StoreGateSvc;
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.cxx
index 4d5866f65d306e9bd6f5584bdd9ea20090894212..cff8f0f01948a5b084a3aa5a5b671bf6c15a3ae6 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.cxx
@@ -13,8 +13,6 @@ PlanarClusterContainerCnv::PlanarClusterContainerCnv (ISvcLocator* svcloc) :
   PlanarClusterContainerCnvBase(svcloc)
  {}
 
-PlanarClusterContainerCnv::~PlanarClusterContainerCnv() {}
-
 
 iFatras::PlanarClusterContainer* PlanarClusterContainerCnv::createTransient() {
   
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.h
index a932339244517bcf42b5bf7c6b9c6f0ed5c97bb6..a4745db196b6211e12f5bb58ec937bad603b9923 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.h
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventAthenaPool/src/PlanarClusterContainerCnv.h
@@ -33,7 +33,6 @@ protected:
 public:
   PlanarClusterContainerCnv (ISvcLocator* svcloc);
 protected:
-  virtual ~PlanarClusterContainerCnv() override;
   virtual PlanarClusterContainer_PERS*   createPersistent (iFatras::PlanarClusterContainer* transCont)  override;
   virtual iFatras::PlanarClusterContainer* createTransient () override;
 
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p1_test.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p1_test.cxx
index 8a0d245771163f9e4a0ffed8574a0af877ebb80c..e8d4a9b7652dd37da36a8e5cba6d814d961f1f6d 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p1_test.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p1_test.cxx
@@ -148,7 +148,7 @@ void test1 (const IDHelpers& helpers)
 
       coll->push_back (std::move (clus));
     }
-    trans1.addCollection (coll.release(), wafer_hash, true);
+    trans1.addCollection (coll.release(), wafer_hash);
   }
 
 #if 0  
@@ -182,7 +182,7 @@ void test1 (const IDHelpers& helpers)
 
       coll->push_back (std::move (clus));
     }
-    trans1.addCollection (coll.release(), wafer_hash, true);
+    trans1.addCollection (coll.release(), wafer_hash);
   }
 #endif
     
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p2_test.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p2_test.cxx
index 9780503d774ac9da912dcb9d8014402b08edbd03..e2af36fdeb6285d142758f6e60c3767a046afcb9 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p2_test.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/test/PlanarClusterContainerCnv_p2_test.cxx
@@ -148,7 +148,7 @@ void test1 (const IDHelpers& helpers)
 
       coll->push_back (std::move (clus));
     }
-    trans1.addCollection (coll.release(), wafer_hash, true);
+    trans1.addCollection (coll.release(), wafer_hash);
   }
 
   {
@@ -181,7 +181,7 @@ void test1 (const IDHelpers& helpers)
 
       coll->push_back (std::move (clus));
     }
-    trans1.addCollection (coll.release(), wafer_hash, true);
+    trans1.addCollection (coll.release(), wafer_hash);
   }
 
   // Run once outside leak checking to get services initialized.
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool.h
index 14752757d7151efa56c0447b64fe288d292840df..9f623065e86b6d49bd8b7a87cc147260ba78ff33 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool.h
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool.h
@@ -13,21 +13,6 @@
 #include "TrkSpacePoint/SpacePointOverlapCollection.h"
 #include "GeoPrimitives/GeoPrimitives.h"
 
-namespace Trk
-{
-  class SpacePoint;
-}
-
-namespace InDetDD
-{
-  class SCT_DetectorManager;
-  class SiDetectorElement;
-}
-
-namespace InDet{
-  class SiCluster;
-}
-
 namespace iFatras{
   class ISF_SiSpacePointMakerTool : public AthAlgTool {
     
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h
index 4de9feae50efe7b3028ff16f265a862a918891a0..3d87ffcf6aa5b1854bc751bddbdf2fbbd473588d 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h
@@ -13,21 +13,6 @@
 #include "TrkSpacePoint/SpacePointOverlapCollection.h"
 #include "GeoPrimitives/GeoPrimitives.h"
 
-namespace Trk
-{
-  class SpacePoint;
-}
-
-namespace InDetDD
-{
-  class SCT_DetectorManager;
-  class SiDetectorElement;
-}
-
-namespace InDet{
-  class SiCluster;
-}
-
 namespace iFatras{
   class PlanarSiSpacePointMakerTool : public AthAlgTool {
     
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/ISF_SiSpacePointMakerTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/ISF_SiSpacePointMakerTool.cxx
index 99b1b294efc0f130edaa9cb4326a0e25d5da77f8..af50b133ef252c7419f0da3239574e86a1dac53b 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/ISF_SiSpacePointMakerTool.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/ISF_SiSpacePointMakerTool.cxx
@@ -9,7 +9,6 @@
 #include "ISF_FatrasRecoTools/ISF_SiSpacePointMakerTool.h"
 
 // Space points
-#include "SiSpacePoint/SCT_SpacePoint.h"
 #include "SiSpacePoint/PixelSpacePoint.h"
 
 namespace iFatras{
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarSiSpacePointMakerTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarSiSpacePointMakerTool.cxx
index 2da5a5021729ee2250108496cbd3e0cc1bc73767..9ea1f3ee350e2f6f3bf3e2151a95911e2754b255 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarSiSpacePointMakerTool.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasRecoTools/src/PlanarSiSpacePointMakerTool.cxx
@@ -9,7 +9,6 @@
 #include "ISF_FatrasRecoTools/PlanarSiSpacePointMakerTool.h"
 
 // Space points
-#include "SiSpacePoint/SCT_SpacePoint.h"
 #include "SiSpacePoint/PixelSpacePoint.h"
 
 namespace iFatras{
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx
index 820d227f7b52fcf2b3efed00b38c7288e5f8212a..8eae8bde348adf887cbdd5b2b6472e3e608290b3 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.cxx
@@ -26,7 +26,6 @@
 #include "HepMC/GenParticle.h"
 
 // Geant4 classes
-#include "G4UImanager.hh"
 #include "G4LorentzVector.hh"
 #include "G4PrimaryVertex.hh"
 #include "G4PrimaryParticle.hh"
@@ -34,6 +33,7 @@
 #include "G4Geantino.hh"
 #include "G4ChargedGeantino.hh"
 #include "G4ParticleTable.hh"
+#include "G4StateManager.hh"
 #include "G4TransportationManager.hh"
 #include "G4UImanager.hh"
 #include "G4ScoringManager.hh"
@@ -185,9 +185,10 @@ void iGeant4::G4TransportTool::initializeOnce()
   }
 
   // Send UI commands
-  for (auto g4command : m_g4commands){
-    int the_return = ui->ApplyCommand(g4command);
-    ATH_MSG_INFO("Returned " << the_return << " from G4 Command: " << g4command);
+  ATH_MSG_DEBUG("G4 Command: Trying at the end of initializeOnce()");
+  for (auto g4command : m_g4commands) {
+    int returnCode = ui->ApplyCommand( g4command );
+    commandLog(returnCode, g4command);
   }
 
   return;
@@ -290,3 +291,23 @@ HepMC::GenEvent* iGeant4::G4TransportTool::genEvent() const
 
 }
 
+//________________________________________________________________________
+void iGeant4::G4TransportTool::commandLog(int returnCode, const std::string& commandString) const
+{
+  switch(returnCode) {
+  case 0: { ATH_MSG_DEBUG("G4 Command: " << commandString << " - Command Succeeded"); } break;
+  case 100: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Command Not Found!"); } break;
+  case 200: {
+    auto* stateManager = G4StateManager::GetStateManager();
+    ATH_MSG_DEBUG("G4 Command: " << commandString << " - Illegal Application State (" <<
+                    stateManager->GetStateString(stateManager->GetCurrentState()) << ")!");
+  } break;
+  case 300: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Range!"); } break;
+  case 400: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Unreadable!"); } break;
+  case 500: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Parameter Out of Candidates!"); } break;
+  case 600: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Alias Not Found!"); } break;
+  default: { ATH_MSG_ERROR("G4 Command: " << commandString << " - Unknown Status!"); } break;
+  }
+
+}
+
diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h
index 7113f685636821882ecb4ca3d930260a8aca7283..748436659a4659683035020d67115eebc1fc59c7 100644
--- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h
+++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/TransportTool.h
@@ -88,6 +88,9 @@ namespace iGeant4
 
   private:
 
+    /// This command prints a message about a G4Command depending on its returnCode
+    void commandLog(int returnCode, const std::string& commandString) const;
+
     HepMC::GenEvent* genEvent() const;
 
     /// @name Configurable Properties
diff --git a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSDTool.h b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSDTool.h
index 33e156e239896e4fce3669095ac20353be8aef95..627114419cf7f065a8ee89d041e95383439c9bbd 100644
--- a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSDTool.h
+++ b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4CalibSDTool.h
@@ -18,10 +18,10 @@
 #include <string>
 
 #include "TileGeoG4SD/TileSDOptions.h"
+#include "TileG4Interfaces/ITileCalculator.h"
 
 // Members
 class G4VSensitiveDetector;
-class ITileCalculator;
 
 class TileGeoG4CalibSDTool: public SensitiveDetectorBase {
 public:
diff --git a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitVecToCntTool.h b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitVecToCntTool.h
index a642a013bc9e6bcbd278d99426c1db151658496a..81a5c8dae37dd314b2cfbdc8f49b9fbff1815a8d 100644
--- a/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitVecToCntTool.h
+++ b/TileCalorimeter/TileSimAlgs/TileSimAlgs/TileHitVecToCntTool.h
@@ -32,10 +32,13 @@
 #include "TileIdentifier/TileFragHash.h"
 #include "TileSimEvent/TileHitVector.h"
 #include "TileEvent/TileHitContainer.h"
+#include "TileConditions/TileCablingSvc.h"
 
 // Athena includes
 #include "PileUpTools/PileUpToolBase.h"
 #include "StoreGate/WriteHandleKey.h"
+#include "AthenaKernel/IAtRndmGenSvc.h"
+#include "AthenaKernel/ITriggerTime.h"
 
 // Gaudi includes
 #include "GaudiKernel/ServiceHandle.h"
@@ -50,10 +53,7 @@ class TileInfo;
 class TileHitNonConstContainer;
 class TileDetDescrManager;
 class PileUpMergeSvc;
-class ITriggerTime;
-class IAtRndmGenSvc;
 class Identifier;
-class TileCablingSvc;
 class TileCablingService;
 class TileHitCollection;
 
diff --git a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h
index c6ca4f49d6adbcead0b2934401255591791f5efb..e07be714ecfc280041625d693b314bdf6b1e0afd 100644
--- a/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h
+++ b/TileCalorimeter/TileSvc/TileByteStream/TileByteStream/TileRawChannelContByteStreamCnv.h
@@ -13,6 +13,8 @@
 
 // Athena includes
 #include "AthenaBaseComps/AthMessaging.h"
+#include "ByteStreamCnvSvcBase/IByteStreamEventAccess.h"
+#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h"
 
 #include <vector>
 
diff --git a/Tracking/TrkAlgorithms/TrkTruthAlgs/TrkTruthAlgs/TrackTruthSimilaritySelector.h b/Tracking/TrkAlgorithms/TrkTruthAlgs/TrkTruthAlgs/TrackTruthSimilaritySelector.h
index 2dba50d928b08f0c6dbd4d2f331a5e16ed26e8a8..957e20d582489c0d65290b1c43050a082648caaf 100644
--- a/Tracking/TrkAlgorithms/TrkTruthAlgs/TrkTruthAlgs/TrackTruthSimilaritySelector.h
+++ b/Tracking/TrkAlgorithms/TrkTruthAlgs/TrkTruthAlgs/TrackTruthSimilaritySelector.h
@@ -12,8 +12,7 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "TrkTruthData/DetailedTrackTruthCollection.h"
 #include "TrkTruthData/TrackTruthCollection.h"
-
-namespace Trk { class IDetailedTrackTruthSimilarity; }
+#include "TrkToolInterfaces/IDetailedTrackTruthSimilarity.h"
 
 class TrackTruthSimilaritySelector: public AthAlgorithm {
 public:
diff --git a/Tracking/TrkAlgorithms/TrkTruthAlgs/src/TrackParticleTruthAlg.h b/Tracking/TrkAlgorithms/TrkTruthAlgs/src/TrackParticleTruthAlg.h
index c9747ebdc729ed2292fa264d07346c15cc62b044..d52cb3ccef2f3ad43b71118bec6de4df4d27221b 100644
--- a/Tracking/TrkAlgorithms/TrkTruthAlgs/src/TrackParticleTruthAlg.h
+++ b/Tracking/TrkAlgorithms/TrkTruthAlgs/src/TrackParticleTruthAlg.h
@@ -13,9 +13,7 @@
 #include "GeneratorObjects/xAODTruthParticleLink.h"
 #include "StoreGate/ReadHandleKey.h"
 #include "StoreGate/WriteDecorHandleKey.h"
-
-
-class IMCTruthClassifier;
+#include "MCTruthClassifier/IMCTruthClassifier.h"
 
 class TrackParticleTruthAlg: public AthAlgorithm {
 public:
diff --git a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.cxx b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.cxx
index b195dca2a908c6cd6457a4cb8e17c4a34965bf3f..c311bc8632461f18927ca3694d971ee3dc917d9d 100644
--- a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.cxx
+++ b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.cxx
@@ -20,12 +20,6 @@ ElementTableCnv::ElementTableCnv( ISvcLocator *svcloc ) :
  m_log( m_msgSvc, "ElementTableCnv" )
  {}
  
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-ElementTableCnv::~ElementTableCnv()
-{}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.h b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.h
index 2a04196573bceff72f942db5d82bb2de54ba2ccc..4a9e901e4cf30c10db83b0f588ed84c5646cc21a 100644
--- a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.h
+++ b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/ElementTableCnv.h
@@ -36,8 +36,6 @@ class ElementTableCnv : public ElementTableCnvBase {
 public:
   ElementTableCnv( ISvcLocator *svcloc );
 protected:
-  ~ElementTableCnv();
-  
   virtual StatusCode initialize();
  
   virtual ElementTable_PERS* createPersistent( Trk::ElementTable *transCont);
diff --git a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.cxx b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.cxx
index ca1361788232ca29cd332e0ed1bf6d29e497b75c..a8c5aec757959c619037fc223d9e98e1be4ff670 100644
--- a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.cxx
+++ b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.cxx
@@ -19,11 +19,6 @@ LayerMaterialMapCnv::LayerMaterialMapCnv(ISvcLocator* svcloc):
 {
 }
 
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-LayerMaterialMapCnv::~LayerMaterialMapCnv() {}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.h b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.h
index f6dcbac32f392f25a9217b281123082b38c9d9b3..ef1f66ba4b3a1ad9eb93f253a556d039c896432a 100644
--- a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.h
+++ b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/LayerMaterialMapCnv.h
@@ -37,7 +37,6 @@ protected:
 public:
   LayerMaterialMapCnv( ISvcLocator *svcloc );
 protected:
-  ~LayerMaterialMapCnv();
   virtual StatusCode initialize();
 
   virtual LayerMaterialMap_PERS *createPersistent( Trk::LayerMaterialMap *transCont);
diff --git a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.cxx b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.cxx
index b3651ebae54f5a882c937036c93a65613df088e3..1ce16847583499784a83f4c3ac6e13f2df30dfa1 100644
--- a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.cxx
+++ b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.cxx
@@ -20,12 +20,6 @@ MaterialStepCollectionCnv::MaterialStepCollectionCnv( ISvcLocator *svcloc ) :
  m_log( m_msgSvc, "MaterialStepCollectionCnv" )
  {}
  
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-MaterialStepCollectionCnv::~MaterialStepCollectionCnv()
-{}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.h b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.h
index 5d4f88e11bec223a5012457c74056e37833252da..4c613123932a18185d1c755be9a4602574083bfa 100644
--- a/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.h
+++ b/Tracking/TrkDetDescr/TrkDetDescrAthenaPool/src/MaterialStepCollectionCnv.h
@@ -36,8 +36,6 @@ class MaterialStepCollectionCnv : public MaterialStepCollectionCnvBase {
 public:
   MaterialStepCollectionCnv( ISvcLocator *svcloc );
 protected:
-  ~MaterialStepCollectionCnv();
-  
   virtual StatusCode initialize();
  
   virtual MaterialStepCollection_PERS* createPersistent( Trk::MaterialStepCollection *transCont);
diff --git a/Tracking/TrkDetDescr/TrkDetDescrUnitTests/TrkDetDescrUnitTests/TrackingGeometryTest.h b/Tracking/TrkDetDescr/TrkDetDescrUnitTests/TrkDetDescrUnitTests/TrackingGeometryTest.h
index ddde3e38481c112592962cdd2732ea198712b905..6b99d709ff0fff2aafaf8ea600cd3033d29a4725 100644
--- a/Tracking/TrkDetDescr/TrkDetDescrUnitTests/TrkDetDescrUnitTests/TrackingGeometryTest.h
+++ b/Tracking/TrkDetDescr/TrkDetDescrUnitTests/TrkDetDescrUnitTests/TrackingGeometryTest.h
@@ -15,6 +15,7 @@
 // Trk includes
 #include "TrkDetDescrUnitTests/TrkDetDescrUnitTestBase.h"
 #include "TrkDetDescrInterfaces/ITrackingGeometrySvc.h"
+#include "TrkDetDescrInterfaces/IGeometryProcessor.h"
 
 #ifdef TRKDETDESCR_MEMUSAGE
 #include "TrkDetDescrUtils/MemoryLogger.h"
@@ -22,7 +23,6 @@
 
 namespace Trk {
      
-    class IGeometryProcessor;
     class TrackingGeometry;
     class TrackingVolume;
         
diff --git a/Tracking/TrkEvent/TrkRIO_OnTrack/TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h b/Tracking/TrkEvent/TrkRIO_OnTrack/TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h
new file mode 100644
index 0000000000000000000000000000000000000000..a4fb6c5347c45fffdd4f8319c7f28f00a57752f3
--- /dev/null
+++ b/Tracking/TrkEvent/TrkRIO_OnTrack/TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h
@@ -0,0 +1,41 @@
+/* Dear emacs, this is -*-c++-*- */
+#ifndef _RIO_OnTrackErrorScaling_H_
+#define _RIO_OnTrackErrorScaling_H_
+
+#include <vector>
+#include "EventPrimitives/EventPrimitives.h"
+
+#include "AthenaKernel/CLASS_DEF.h"
+
+class RIO_OnTrackErrorScaling
+{
+public:
+  RIO_OnTrackErrorScaling();
+  virtual ~RIO_OnTrackErrorScaling();
+
+  // CLID of the actual implementation
+  virtual CLID clid() const;
+
+  std::vector<std::vector<double> >       &params()       { return m_params; }
+  const std::vector<std::vector<double> > &params() const { return m_params; }
+
+  virtual bool postProcess()  {return true; }
+
+protected :
+  /// Convenience function to check whether the number of parameters is correct.
+  /// @param label a label for the error scaling class in case an error is issued.
+  /// @param n_paramter_sets the number of parameter sets
+  /// @param param_names the names of the parameter sets
+  /// @param n_paramters the number of parameters per set.
+  void checkParameters(const char *label, unsigned int n_paramter_sets, const char **param_names, unsigned int n_paramters) const;
+private:
+  std::vector<std::vector<double> > m_params;
+};
+
+CLASS_DEF( RIO_OnTrackErrorScaling, 167367682 , 1 )
+
+#include "AthenaKernel/CondCont.h"
+CONDCONT_DEF( RIO_OnTrackErrorScaling, 1528464940 );
+
+
+#endif
diff --git a/Tracking/TrkEvent/TrkRIO_OnTrack/TrkRIO_OnTrack/check_cast.h b/Tracking/TrkEvent/TrkRIO_OnTrack/TrkRIO_OnTrack/check_cast.h
new file mode 100644
index 0000000000000000000000000000000000000000..405c1799e3a58c5686feb28b1311b0581713e156
--- /dev/null
+++ b/Tracking/TrkEvent/TrkRIO_OnTrack/TrkRIO_OnTrack/check_cast.h
@@ -0,0 +1,19 @@
+#ifndef _CHECK_CAST_H_
+#define _CHECK_CAST_H_
+
+#include <sstream>
+#include <stdexcept>
+#include <typeinfo>
+
+template<class T_dest, class T_src>
+const T_dest *check_cast(const T_src *src) {
+  const T_dest *dest=dynamic_cast<const T_dest *>(src);
+  if (!dest) {
+    std::stringstream message;
+    message << "failed to cast "  << typeid(src).name() << " to " << typeid(dest).name();
+    throw std::runtime_error(message.str());
+  }
+  return dest;
+}
+
+#endif
diff --git a/Tracking/TrkEvent/TrkRIO_OnTrack/src/RIO_OnTrackErrorScaling.cxx b/Tracking/TrkEvent/TrkRIO_OnTrack/src/RIO_OnTrackErrorScaling.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..f5574b6d931da67954ad385a3ea97ef87137d0e4
--- /dev/null
+++ b/Tracking/TrkEvent/TrkRIO_OnTrack/src/RIO_OnTrackErrorScaling.cxx
@@ -0,0 +1,35 @@
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+
+RIO_OnTrackErrorScaling::RIO_OnTrackErrorScaling() {}
+
+RIO_OnTrackErrorScaling::~RIO_OnTrackErrorScaling() {}
+
+CLID RIO_OnTrackErrorScaling::clid() const {
+  return ClassID_traits<RIO_OnTrackErrorScaling>::ID();
+}
+
+void RIO_OnTrackErrorScaling::checkParameters(const char *label,
+                                              unsigned int n_paramter_sets,
+                                              const char **param_names,
+                                              unsigned int n_paramters) const
+{
+  if (params().size() != n_paramter_sets ) {
+      std::stringstream message;
+      message << label << ": Expecting parameters for 2 parameters for";
+      for (unsigned int idx=0; idx < n_paramter_sets; ++idx) {
+        message << " " << param_names[idx];
+      }
+      message << " But got " << params().size() << ".";
+      throw std::runtime_error( message.str() );
+  }
+  for (unsigned int idx=0; idx<params().size(); ++idx) {
+    if (params()[idx].size() != n_paramters) {
+      assert( idx < n_paramter_sets );
+      std::stringstream message;
+      message << label << ": Expected 2 parameters for "  << param_names[idx] << " but got " << params()[idx].size()
+              << ".";
+      throw std::runtime_error( message.str() );
+    }
+  }
+}
+
diff --git a/Tracking/TrkEvent/TrkRoad/CMakeLists.txt b/Tracking/TrkEvent/TrkRoad/CMakeLists.txt
index ee95b0b424d8a8146f4e2dc9bc610aba5d60d824..bd360cc3cf87ff0b2ccc1f92fb46e575a7b74e64 100644
--- a/Tracking/TrkEvent/TrkRoad/CMakeLists.txt
+++ b/Tracking/TrkEvent/TrkRoad/CMakeLists.txt
@@ -7,9 +7,8 @@ atlas_subdir( TrkRoad )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
-                          Control/CLIDSvc
-                          Control/DataModel
-                          Control/SGTools
+                          Control/AthenaKernel
+                          Control/AthContainers
                           DetectorDescription/GeoPrimitives
                           Event/EventPrimitives
                           PRIVATE
@@ -25,6 +24,6 @@ atlas_add_library( TrkRoad
                    PUBLIC_HEADERS TrkRoad
                    INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS}
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${EIGEN_LIBRARIES} DataModel SGTools GeoPrimitives EventPrimitives
+                   LINK_LIBRARIES ${EIGEN_LIBRARIES} AthContainers GeoPrimitives EventPrimitives
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} GaudiKernel )
 
diff --git a/Tracking/TrkEvent/TrkRoad/TrkRoad/TrackRoadCollection.h b/Tracking/TrkEvent/TrkRoad/TrkRoad/TrackRoadCollection.h
index 4683e3a3c4f801007df1f421df459d53b2857206..2717f302cd85af3d47b2511e0c666e803369f6e8 100755
--- a/Tracking/TrkEvent/TrkRoad/TrkRoad/TrackRoadCollection.h
+++ b/Tracking/TrkEvent/TrkRoad/TrkRoad/TrackRoadCollection.h
@@ -5,8 +5,8 @@
 #ifndef TRKROAD_TRKROADCOLLECTION_H
 #define TRKROAD_TRKROADCOLLECTION_H
 
-#include "DataModel/DataVector.h"
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthContainers/DataVector.h"
+#include "AthenaKernel/CLASS_DEF.h"
 #include "TrkRoad/TrackRoad.h"
 
 namespace Trk
diff --git a/Tracking/TrkEvent/TrkSegment/CMakeLists.txt b/Tracking/TrkEvent/TrkSegment/CMakeLists.txt
index ce4f2f2c60400d75762ff756efab4115e9c24672..19a4ee5d3ec97751d9345dbf9238b6f3cc41ae2a 100644
--- a/Tracking/TrkEvent/TrkSegment/CMakeLists.txt
+++ b/Tracking/TrkEvent/TrkSegment/CMakeLists.txt
@@ -7,9 +7,8 @@ atlas_subdir( TrkSegment )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
-                          Control/CLIDSvc
-                          Control/DataModel
-                          Control/SGTools
+                          Control/AthenaKernel
+                          Control/AthContainers
                           DetectorDescription/Identifier
                           Tracking/TrkEvent/TrkMeasurementBase
                           PRIVATE
@@ -26,12 +25,12 @@ atlas_add_library( TrkSegment
                    src/*.cxx
                    PUBLIC_HEADERS TrkSegment
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES DataModel SGTools Identifier TrkMeasurementBase
+                   LINK_LIBRARIES AthContainers Identifier TrkMeasurementBase
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks GaudiKernel TrkSurfaces TrkEventPrimitives )
 
 atlas_add_dictionary( TrkSegmentDict
                       TrkSegment/TrkSegmentDict.h
                       TrkSegment/selection.xml
                       INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} DataModel SGTools Identifier TrkMeasurementBase AthLinks GaudiKernel TrkSurfaces TrkEventPrimitives TrkSegment )
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers Identifier TrkMeasurementBase AthLinks GaudiKernel TrkSurfaces TrkEventPrimitives TrkSegment )
 
diff --git a/Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h b/Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h
index 883f409c5455d7401898fe98003e6dd9fe5111ca..cffb255fbb18b24b10d87c25eb3007cb1d36a0c5 100755
--- a/Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h
+++ b/Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h
@@ -17,7 +17,7 @@
 #include <ostream>
 #include <vector>
 
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 #include "TrkMeasurementBase/MeasurementBase.h"
 
 class MsgStream;
diff --git a/Tracking/TrkEvent/TrkSegment/TrkSegment/SegmentCollection.h b/Tracking/TrkEvent/TrkSegment/TrkSegment/SegmentCollection.h
index f49adb9bac3e202debf38806e8e918f1636f1eae..5a5800c6ad5b6fc76ac1ec5c990b92143974b7c4 100755
--- a/Tracking/TrkEvent/TrkSegment/TrkSegment/SegmentCollection.h
+++ b/Tracking/TrkEvent/TrkSegment/TrkSegment/SegmentCollection.h
@@ -5,8 +5,8 @@
 #ifndef TRKSEGMENT_SEGMENTCOLLECTION_H
 #define TRKSEGMENT_SEGMENTCOLLECTION_H
 
-#include "DataModel/DataVector.h"
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthContainers/DataVector.h"
+#include "AthenaKernel/CLASS_DEF.h"
 #include "TrkSegment/Segment.h"
 
 namespace Trk {
diff --git a/Tracking/TrkEvent/TrkSegment/TrkSegment/TrackSegment.h b/Tracking/TrkEvent/TrkSegment/TrkSegment/TrackSegment.h
index 488a7ea03cca8712469cfe14c27db1d24980e559..5171c1e3c120b114505e007370ca88241fa21f58 100755
--- a/Tracking/TrkEvent/TrkSegment/TrkSegment/TrackSegment.h
+++ b/Tracking/TrkEvent/TrkSegment/TrkSegment/TrackSegment.h
@@ -18,7 +18,7 @@
 #include <ostream>
 #include <vector>
 
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 class MsgStream;
 class TrackSegmentCnv_p1;
 
diff --git a/Tracking/TrkEvent/TrkSegment/src/TrackSegment.cxx b/Tracking/TrkEvent/TrkSegment/src/TrackSegment.cxx
index f03f8328ec500040d12f2b586ac24b6d4a1d190f..5f3bb15502098eab9be84349cad470534db8b655 100755
--- a/Tracking/TrkEvent/TrkSegment/src/TrackSegment.cxx
+++ b/Tracking/TrkEvent/TrkSegment/src/TrackSegment.cxx
@@ -10,7 +10,7 @@
 #include "TrkSegment/TrackSegment.h"
 #include "TrkSurfaces/Surface.h"
 #include "GaudiKernel/MsgStream.h"
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 
 
 // default constructor
diff --git a/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt b/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt
index 291f61a5aec224c4f782675cd3f7584b2b003118..8c7fe3299cfb8f9de3f1baf8685b01c344453ce9 100644
--- a/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt
+++ b/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt
@@ -7,9 +7,8 @@ atlas_subdir( TrkSpacePoint )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
-                          Control/CLIDSvc
-                          Control/DataModel
-                          Control/SGTools
+                          Control/AthenaKernel
+                          Control/AthContainers
                           DetectorDescription/Identifier
                           Event/EventContainers
                           GaudiKernel
@@ -24,6 +23,6 @@ atlas_depends_on_subdirs( PUBLIC
 atlas_add_library( TrkSpacePoint
                    src/*.cxx
                    PUBLIC_HEADERS TrkSpacePoint
-                   LINK_LIBRARIES DataModel SGTools Identifier GaudiKernel TrkMeasurementBase EventContainers 
+                   LINK_LIBRARIES AthContainers Identifier GaudiKernel TrkMeasurementBase EventContainers 
                    PRIVATE_LINK_LIBRARIES TrkDetElementBase TrkSurfaces TrkEventPrimitives TrkPrepRawData )
 
diff --git a/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointCollection.h b/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointCollection.h
index 4248f77d8426d0ad5f5a648707579909aec41276..32cd0a70d3be7fec3b5ce2fc830fe3a67f601be2 100755
--- a/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointCollection.h
+++ b/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointCollection.h
@@ -25,7 +25,7 @@
 #include "Identifier/Identifier.h"
 #include "Identifier/Identifiable.h"
 #include "Identifier/IdentifierHash.h"
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 #include "GaudiKernel/DataObject.h"
 //class SpacePoint;
 #include "TrkSpacePoint/SpacePoint.h"
@@ -90,7 +90,7 @@ std::ostream& operator << ( std::ostream& sl, const SpacePointCollection& coll);
 // Inline methods:
 ///////////////////////////////////////////////////////////////////
 
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthenaKernel/CLASS_DEF.h"
 CLASS_DEF(SpacePointCollection,1156991496,1)
 
 #endif // TRKSPACEPOINT_SPACEPOINTCOLLECTION_H
diff --git a/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointContainer.h b/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointContainer.h
index 3d3adb90a1bc6c9c5c398e82065f0fa65099b5a6..199314e5cd6496186fc720d701d8e37811792c45 100755
--- a/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointContainer.h
+++ b/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointContainer.h
@@ -86,7 +86,7 @@ private:
 // Inline methods:
 ///////////////////////////////////////////////////////////////////
 
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthenaKernel/CLASS_DEF.h"
 CLASS_DEF(SpacePointContainer,1273119430,1)
 
 
diff --git a/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointOverlapCollection.h b/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointOverlapCollection.h
index 23b4accadd00aa4fdedd2542bb961ecee2790800..41578f1abc4c08fec9398c0d309b5cd89c75f860 100755
--- a/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointOverlapCollection.h
+++ b/Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePointOverlapCollection.h
@@ -18,7 +18,7 @@
 #define TRKSPACEPOINT_SPACEPOINTOVERLAPCOLLECTION_H
 
 // Base classes
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 #include "GaudiKernel/DataObject.h"
 //class SpacePoint;
 #include "TrkSpacePoint/SpacePoint.h"
@@ -63,7 +63,7 @@ private:
 // Inline methods:
 ///////////////////////////////////////////////////////////////////
 
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthenaKernel/CLASS_DEF.h"
 CLASS_DEF(SpacePointOverlapCollection,1164030866, 1)
 
 
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.cxx b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.cxx
index 46690482d244bb9b405b1164c03d2410fec1438a..558f2ff4a220a76f0d79a7a521f463f7fee424aa 100755
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.cxx
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.cxx
@@ -23,12 +23,6 @@ MVFVxContainerCnv::MVFVxContainerCnv( ISvcLocator *svcloc ):
 
  }
 
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-MVFVxContainerCnv::~MVFVxContainerCnv()
-{}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.h b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.h
index 6d72d3dcaab57cb3b30dbd05d221ced08f65ed1d..c9f23dc862d71a879a25436181ef9ddbec4db5d1 100644
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.h
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/MVFVxContainerCnv.h
@@ -45,8 +45,6 @@ public:
   MVFVxContainerCnv( ISvcLocator *svcloc );
 protected:
 
-  ~MVFVxContainerCnv();
-  
   virtual StatusCode initialize();
   
   virtual MVFVxContainer_PERS *createPersistent( MVFVxContainer *transCont);
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.cxx b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.cxx
index 1eae12a3e2bc047681025939fe5bf0070924925c..3b1170a2bceba03a1f02c399ac80643f9165e182 100755
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.cxx
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.cxx
@@ -24,11 +24,6 @@ SegmentCollectionCnv::SegmentCollectionCnv(ISvcLocator* svcloc):
 {
 }
 
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-SegmentCollectionCnv::~SegmentCollectionCnv() {}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.h b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.h
index 0e52e92571210a187693a827312db2da1edc22bd..56d8c0f7e24426c223c1fcf5aac769d63cb3febd 100755
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.h
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/SegmentCollectionCnv.h
@@ -48,8 +48,6 @@ public:
   SegmentCollectionCnv( ISvcLocator *svcloc );
 
 protected:
-  ~SegmentCollectionCnv();
-
   virtual SegmentCollection_PERS *createPersistent( Trk::SegmentCollection *transCont);
   virtual Trk::SegmentCollection *createTransient();
 
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.cxx b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.cxx
index 8a1b859e51c63e294c6593011f54feef5255192e..e4f174b7b9f599afddfed8c1c1dd1d51ea6ca410 100755
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.cxx
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.cxx
@@ -29,13 +29,6 @@ TrackCollectionCnv::TrackCollectionCnv(ISvcLocator* svcloc):
 {
 }
 
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-TrackCollectionCnv::~TrackCollectionCnv()
-{
-}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.h b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.h
index e6889db5f2db95cc9ea6266aa733d8f5f2b19add..a9a31cca4142fcf3a4aa3b70e3f97fc64ab12366 100755
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.h
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/TrackCollectionCnv.h
@@ -53,7 +53,6 @@ public:
   TrackCollectionCnv( ISvcLocator *svcloc );
 
 protected:
-  ~TrackCollectionCnv();
   virtual StatusCode initialize();
 
   virtual TrackCollection_PERS *createPersistent( TrackCollection *transCont);
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.cxx b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.cxx
index 9ba29c2ffec6d0e5e911d602b4549ac93dd6abfc..3c7111ae82f27d5cc59bd23fe79f4d4b936d0a27 100755
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.cxx
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.cxx
@@ -21,12 +21,6 @@ V0ContainerCnv::V0ContainerCnv( ISvcLocator *svcloc ):
                            m_msgSvc( msgSvc() ),
                            m_log( m_msgSvc, "V0ContainerCnv" )
  {}
- 
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-V0ContainerCnv::~V0ContainerCnv()
-{}
 
 //-----------------------------------------------------------------------------
 // Initializer
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.h b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.h
index 452562dc774e00f08840fd40b1eaaa31fa9b5855..18602d6fde963374f8429e5fcc3d70c075006deb 100644
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.h
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/V0ContainerCnv.h
@@ -49,7 +49,6 @@ class V0ContainerCnv : public V0ContainerCnvBase
 public:
   V0ContainerCnv( ISvcLocator *svcloc );
 protected:
-  ~V0ContainerCnv();
   virtual StatusCode initialize();
   
   virtual V0Container_PERS *createPersistent( V0Container *transCont);
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.cxx b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.cxx
index c501aa0ac3c0f80a551609d2f83d9bf3e6c56f95..172b7cd8de30b115f217b37a6933cfb0ed2ca9a5 100755
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.cxx
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.cxx
@@ -25,12 +25,6 @@ VxContainerCnv::VxContainerCnv( ISvcLocator *svcloc ):
                            m_log( m_msgSvc, "VxContainerCnv" )
  {}
  
-//-----------------------------------------------------------------------------
-// Destructor
-//-----------------------------------------------------------------------------
-VxContainerCnv::~VxContainerCnv()
-{}
-
 //-----------------------------------------------------------------------------
 // Initializer
 //-----------------------------------------------------------------------------
diff --git a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.h b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.h
index e4995daf51d1ef8b527232a48c00318163f745f4..6dbb50787204fccb80ceada9b93f3e6e9ad0da81 100644
--- a/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.h
+++ b/Tracking/TrkEventCnv/TrkEventAthenaPool/src/VxContainerCnv.h
@@ -43,7 +43,6 @@ class VxContainerCnv : public VxContainerCnvBase, public AthenaPoolCnvTPExtensio
 public:
   VxContainerCnv( ISvcLocator *svcloc );
 protected:
-  ~VxContainerCnv();
   virtual StatusCode initialize();
   
   virtual VxContainer_PERS *createPersistent( VxContainer *transCont);
diff --git a/Tracking/TrkEventCnv/TrkJiveXML/TrkJiveXML/TrackRetriever.h b/Tracking/TrkEventCnv/TrkJiveXML/TrkJiveXML/TrackRetriever.h
index de4ef6fe5f406a7f568d1a539cf0f4f554d4b108..f4653a4d8680a250f0f9a7f2c41657122aff295a 100644
--- a/Tracking/TrkEventCnv/TrkJiveXML/TrkJiveXML/TrackRetriever.h
+++ b/Tracking/TrkEventCnv/TrkJiveXML/TrkJiveXML/TrackRetriever.h
@@ -8,12 +8,10 @@
 #include "JiveXML/IDataRetriever.h"
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
+#include "TrkToolInterfaces/ITrackSummaryTool.h"
+#include "TrkToolInterfaces/IResidualPullCalculator.h"
 
 //Forward declarations
-namespace Trk { 
-  class IResidualPullCalculator; 
-  class ITrackSummaryTool;
-}
 class AtlasDetectorID;
 
 namespace JiveXML{
diff --git a/Tracking/TrkEventCnv/TrkTruthAthenaPool/src/DetailedTrackTruthCollectionCnv.h b/Tracking/TrkEventCnv/TrkTruthAthenaPool/src/DetailedTrackTruthCollectionCnv.h
index c8da50fd698f1f633a295783ce0b7abdddc9bb6a..39b0e21d3192a32cd8566e642677d5e82134bdd6 100644
--- a/Tracking/TrkEventCnv/TrkTruthAthenaPool/src/DetailedTrackTruthCollectionCnv.h
+++ b/Tracking/TrkEventCnv/TrkTruthAthenaPool/src/DetailedTrackTruthCollectionCnv.h
@@ -12,8 +12,9 @@
 #include "TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p1.h"
 #include "TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p2.h"
 #include "TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p3.h"
+#include "TrkTruthTPCnv/DetailedTrackTruthCollection_p2.h"
 
-namespace Trk { class DetailedTrackTruthCollection_p2; }
+// namespace Trk { class DetailedTrackTruthCollection_p2; }
 
 typedef Trk::DetailedTrackTruthCollection_p2 DetailedTrackTruthCollectionPERS;
 
diff --git a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p1.h b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p1.h
index 24b975dfd008f698c348baff4afc9cecd4550945..2444e548fefc22da5cfde7e552bacc27c6d9586e 100644
--- a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p1.h
+++ b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p1.h
@@ -11,11 +11,12 @@
 #define DETAILEDTRACKTRUTHCOLLECTIONCNV_P1_H 
 
 #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+#include "TrkTruthTPCnv/DetailedTrackTruthCollection_p1.h"
 
 class StoreGateSvc;
 class MsgStream;
 class DetailedTrackTruthCollection;
-namespace Trk { class DetailedTrackTruthCollection_p1; }
+//namespace Trk { class DetailedTrackTruthCollection_p1; }
 
 
 class DetailedTrackTruthCollectionCnv_p1 
diff --git a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p3.h b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p3.h
index 4ddbddfd14b437eb388083a8fd1148724ea13852..2cb1d22e6b7498380b7b0e04bfbb5bdbe7e5ca68 100644
--- a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p3.h
+++ b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/DetailedTrackTruthCollectionCnv_p3.h
@@ -12,11 +12,12 @@
 #define DETAILEDTRACKTRUTHCOLLECTIONCNV_P3_H 
 
 #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+#include "TrkTruthTPCnv/DetailedTrackTruthCollection_p3.h"
 
 class StoreGateSvc;
 class MsgStream;
 class DetailedTrackTruthCollection;
-namespace Trk { class DetailedTrackTruthCollection_p3; }
+// namespace Trk { class DetailedTrackTruthCollection_p3; }
 
 
 class DetailedTrackTruthCollectionCnv_p3 
diff --git a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p2.h b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p2.h
index 895b0b127610005b3964eaa93cf7145ceadf366e..fc4ff21820fd9447792ff1876fe99dcadcd6bd80 100755
--- a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p2.h
+++ b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p2.h
@@ -11,10 +11,11 @@
 #define PRD_MULTITRUTHCOLLECTIONCNV_P2_H 
 
 #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+#include "TrkTruthTPCnv/PRD_MultiTruthCollection_p2.h"
 
 class MsgStream;
 class PRD_MultiTruthCollection;
-namespace Trk { class PRD_MultiTruthCollection_p2; }
+// namespace Trk { class PRD_MultiTruthCollection_p2; }
 
 
 class PRD_MultiTruthCollectionCnv_p2 
diff --git a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p3.h b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p3.h
index ac382d08e3a7c1422bd027155049a47d33612845..4aad4bde641f6f22593b923370ba767f2e1270bd 100755
--- a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p3.h
+++ b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/PRD_MultiTruthCollectionCnv_p3.h
@@ -11,10 +11,11 @@
 #define PRD_MULTITRUTHCOLLECTIONCNV_P3_H 
 
 #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+#include "TrkTruthTPCnv/PRD_MultiTruthCollection_p3.h"
 
 class MsgStream;
 class PRD_MultiTruthCollection;
-namespace Trk { class PRD_MultiTruthCollection_p3; }
+// namespace Trk { class PRD_MultiTruthCollection_p3; }
 
 
 class PRD_MultiTruthCollectionCnv_p3 
diff --git a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/TrackTruthCollectionCnv_p0.h b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/TrackTruthCollectionCnv_p0.h
index 29bf0846b52c0278314c755e6e650b07afd6a900..726361b4f6e45b7814436e81f03966dc876477f7 100755
--- a/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/TrackTruthCollectionCnv_p0.h
+++ b/Tracking/TrkEventCnv/TrkTruthTPCnv/TrkTruthTPCnv/TrackTruthCollectionCnv_p0.h
@@ -11,11 +11,12 @@
 #define TRACKTRUTHCOLLECTIONCNV_P0_H 
 
 #include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+#include "TrkTruthTPCnv/TrackTruthCollection_p0.h"
 
 class StoreGateSvc;
 class MsgStream;
 class TrackTruthCollection;
-class TrackTruthVector;
+// class TrackTruthVector;
 
 namespace Trk {
   typedef TrackTruthVector  TrackTruthCollection_p0;
diff --git a/Tracking/TrkExtrapolation/TrkExAlgs/CMakeLists.txt b/Tracking/TrkExtrapolation/TrkExAlgs/CMakeLists.txt
index 4c67c4ee134447b331733add317d72420b5298ac..7b2e37026a48651565105d5234225a783e7482aa 100644
--- a/Tracking/TrkExtrapolation/TrkExAlgs/CMakeLists.txt
+++ b/Tracking/TrkExtrapolation/TrkExAlgs/CMakeLists.txt
@@ -8,7 +8,7 @@ atlas_subdir( TrkExAlgs )
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
                           Control/AthenaBaseComps
-                          Control/DataModel
+                          Control/AthContainers
                           DetectorDescription/GeoPrimitives
                           Event/EventPrimitives
                           GaudiKernel
@@ -33,7 +33,7 @@ atlas_add_component( TrkExAlgs
                      src/*.cxx
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps DataModel GeoPrimitives EventPrimitives GaudiKernel MagFieldInterfaces TrkSurfaces TrkParameters StoreGateLib SGtests TrkGeometry TrkVolumes TrkEventPrimitives TrkTrack TrkExInterfaces TrkExUtils )
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthContainers GeoPrimitives EventPrimitives GaudiKernel MagFieldInterfaces TrkSurfaces TrkParameters StoreGateLib SGtests TrkGeometry TrkVolumes TrkEventPrimitives TrkTrack TrkExInterfaces TrkExUtils )
 
 # Install files from the package:
 atlas_install_headers( TrkExAlgs )
diff --git a/Tracking/TrkExtrapolation/TrkExAlgs/TrkExAlgs/EnergyLossExtrapolationValidation.h b/Tracking/TrkExtrapolation/TrkExAlgs/TrkExAlgs/EnergyLossExtrapolationValidation.h
index 6ed2e9a0db37392e72e46960bf98646e9ce0ead5..bb2fd1fce31f5f1693d2ecf2d33f9ee1b2b0d538 100644
--- a/Tracking/TrkExtrapolation/TrkExAlgs/TrkExAlgs/EnergyLossExtrapolationValidation.h
+++ b/Tracking/TrkExtrapolation/TrkExAlgs/TrkExAlgs/EnergyLossExtrapolationValidation.h
@@ -16,8 +16,7 @@
 #include "GaudiKernel/IRndmGenSvc.h"
 #include "GaudiKernel/RndmGenerators.h"
 #include <string>
-// DataVector from DataModel
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 // CylinderSurfaces
 #include "TrkSurfaces/CylinderSurface.h"
 #include "TrkSurfaces/DiscSurface.h"
diff --git a/Tracking/TrkExtrapolation/TrkExAlgs/src/EnergyLossExtrapolationValidation.cxx b/Tracking/TrkExtrapolation/TrkExAlgs/src/EnergyLossExtrapolationValidation.cxx
index 5889843d09fb2d09c52553f24ce2ac31127aeab1..9d9ccb7c8058780aeaa98491d9d9f962ac33ba16 100644
--- a/Tracking/TrkExtrapolation/TrkExAlgs/src/EnergyLossExtrapolationValidation.cxx
+++ b/Tracking/TrkExtrapolation/TrkExAlgs/src/EnergyLossExtrapolationValidation.cxx
@@ -25,8 +25,7 @@
 #include "GaudiKernel/SystemOfUnits.h"
 // Framework
 #include "StoreGate/StoreGateSvc.h"
-// DataVector from DataModel
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 
 
 //================ Constructor =================================================
diff --git a/Tracking/TrkFitter/TrkFitterInterfaces/CMakeLists.txt b/Tracking/TrkFitter/TrkFitterInterfaces/CMakeLists.txt
index 814f038a2b4748938cbb4e87e6835a35ca212f08..a51e02ba0ce5e7b3e840d421c21e800b933f4f9d 100644
--- a/Tracking/TrkFitter/TrkFitterInterfaces/CMakeLists.txt
+++ b/Tracking/TrkFitter/TrkFitterInterfaces/CMakeLists.txt
@@ -7,7 +7,7 @@ atlas_subdir( TrkFitterInterfaces )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
-                          Control/DataModel
+                          Control/AthContainers
                           Event/EventPrimitives
                           GaudiKernel
                           Tracking/TrkEvent/TrkEventPrimitives
@@ -17,5 +17,5 @@ atlas_depends_on_subdirs( PUBLIC
 # Component(s) in the package:
 atlas_add_library( TrkFitterInterfaces
                    PUBLIC_HEADERS TrkFitterInterfaces
-                   LINK_LIBRARIES DataModel EventPrimitives GaudiKernel TrkEventPrimitives TrkParameters TrkFitterUtils )
+                   LINK_LIBRARIES AthContainers EventPrimitives GaudiKernel TrkEventPrimitives TrkParameters TrkFitterUtils )
 
diff --git a/Tracking/TrkFitter/TrkFitterInterfaces/TrkFitterInterfaces/IMultiTrackFitter.h b/Tracking/TrkFitter/TrkFitterInterfaces/TrkFitterInterfaces/IMultiTrackFitter.h
index a04c68f8fb27df6644e97026838872e793ba3935..4c307d075136e4d277a8c7d0fb66891ced9d9438 100644
--- a/Tracking/TrkFitter/TrkFitterInterfaces/TrkFitterInterfaces/IMultiTrackFitter.h
+++ b/Tracking/TrkFitter/TrkFitterInterfaces/TrkFitterInterfaces/IMultiTrackFitter.h
@@ -17,7 +17,7 @@
 #include "TrkFitterUtils/FitterStatusCode.h"
 #include "TrkEventPrimitives/ParticleHypothesis.h"
 #include "TrkParameters/TrackParameters.h"
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 namespace Trk {
 
 class Track;                 //!> ATLAS standard track class
diff --git a/Tracking/TrkFitter/TrkFitterUtils/CMakeLists.txt b/Tracking/TrkFitter/TrkFitterUtils/CMakeLists.txt
index ea24f171e44f5257db782a54e36e666a9d9e3279..a0cadba46d621f7855f526b67f538b82cf6ae443 100644
--- a/Tracking/TrkFitter/TrkFitterUtils/CMakeLists.txt
+++ b/Tracking/TrkFitter/TrkFitterUtils/CMakeLists.txt
@@ -7,7 +7,7 @@ atlas_subdir( TrkFitterUtils )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
-                          Control/DataModel
+                          Control/AthContainers
                           DetectorDescription/GeoPrimitives
                           DetectorDescription/Identifier
                           GaudiKernel
@@ -38,6 +38,6 @@ atlas_add_library( TrkFitterUtils
                    PUBLIC_HEADERS TrkFitterUtils
                    INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
                    DEFINITIONS ${CLHEP_DEFINITIONS}
-                   LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} DataModel GeoPrimitives Identifier GaudiKernel TrkSurfaces TrkEventPrimitives TrkEventUtils TrkMeasurementBase TrkParameters TrkExUtils
+                   LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthContainers GeoPrimitives Identifier GaudiKernel TrkSurfaces TrkEventPrimitives TrkEventUtils TrkMeasurementBase TrkParameters TrkExUtils
                    PRIVATE_LINK_LIBRARIES AtlasDetDescr TrkMaterialOnTrack TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkSegment TrkTrack TrkVertexOnTrack TrkExInterfaces TrkToolInterfaces )
 
diff --git a/Tracking/TrkFitter/TrkFitterUtils/TrkFitterUtils/FitterTypes.h b/Tracking/TrkFitter/TrkFitterUtils/TrkFitterUtils/FitterTypes.h
index b8aa256f05700bdb4c86d3e3191a727b58b02c13..3e6dae9db28b1b5df5ca9444b662760293a91832 100755
--- a/Tracking/TrkFitter/TrkFitterUtils/TrkFitterUtils/FitterTypes.h
+++ b/Tracking/TrkFitter/TrkFitterUtils/TrkFitterUtils/FitterTypes.h
@@ -15,7 +15,7 @@
 #define TRK_FITTERTYPES_H
 
 #include <vector>
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 
 namespace Trk {
 
diff --git a/Tracking/TrkFitter/TrkRefitAlg/TrkRefitAlg/ReFitTrack.h b/Tracking/TrkFitter/TrkRefitAlg/TrkRefitAlg/ReFitTrack.h
index 6db40dc054ca7f4cdc3f40ac166c6ed6d58f7e38..bead3025482a99170ec5e68a3d69643958dd8004 100755
--- a/Tracking/TrkFitter/TrkRefitAlg/TrkRefitAlg/ReFitTrack.h
+++ b/Tracking/TrkFitter/TrkRefitAlg/TrkRefitAlg/ReFitTrack.h
@@ -21,18 +21,17 @@
 #include "TrkEventUtils/TrkParametersComparisonFunction.h"
 #include "StoreGate/ReadHandleKey.h"
 #include "StoreGate/WriteHandleKey.h"
+#include "TrkExInterfaces/IExtrapolator.h"
+#include "InDetBeamSpotService/IBeamCondSvc.h"
+#include "TrkToolInterfaces/ITrackSelectorTool.h"
+#include "TrkToolInterfaces/IPRD_AssociationTool.h"
+#include "TrkToolInterfaces/ITrackSummaryTool.h"
+#include "TrkFitterInterfaces/ITrackFitter.h"
 
-class IBeamCondSvc;
 class VxContainer;
 
 namespace Trk{
 
-class ITrackFitter;
-class IExtrapolator;
-class ITrackSummaryTool;
-class ITrackSelectorTool;
-class IPRD_AssociationTool;
-
  /** @brief Algorithm using an instance of a ITrackFitter
      to refit the tracks of a given track collection.
      
diff --git a/Tracking/TrkFitter/TrkiPatFitterUtils/CMakeLists.txt b/Tracking/TrkFitter/TrkiPatFitterUtils/CMakeLists.txt
index aeabfde24f5dde754217f5fc8c2b64693de00153..8faf0958b3a84c08839c28ee2337e1fe17dfbf58 100644
--- a/Tracking/TrkFitter/TrkiPatFitterUtils/CMakeLists.txt
+++ b/Tracking/TrkFitter/TrkiPatFitterUtils/CMakeLists.txt
@@ -8,7 +8,7 @@ atlas_subdir( TrkiPatFitterUtils )
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
                           Control/AthenaBaseComps
-                          Control/DataModel
+                          Control/AthContainers
                           DetectorDescription/GeoPrimitives
                           Event/EventPrimitives
                           GaudiKernel
@@ -43,5 +43,5 @@ atlas_add_library( TrkiPatFitterUtils
                    INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS}
                    PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS}
                    PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS}
-                   LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps DataModel GeoPrimitives EventPrimitives GaudiKernel TrkEventPrimitives TrkParameters
+                   LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps AthContainers GeoPrimitives EventPrimitives GaudiKernel TrkEventPrimitives TrkParameters
                    PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} TrkGeometry TrkSurfaces TrkMaterialOnTrack TrkMeasurementBase TrkTrack TrkExInterfaces TrkExUtils )
diff --git a/Tracking/TrkFitter/TrkiPatFitterUtils/TrkiPatFitterUtils/FitProcedure.h b/Tracking/TrkFitter/TrkiPatFitterUtils/TrkiPatFitterUtils/FitProcedure.h
index 60c80d4bf5a996a4e3f24ba9732ef4152a33e6eb..600c8b7af19c970ce97793d8ab763ba1d6f19201 100755
--- a/Tracking/TrkFitter/TrkiPatFitterUtils/TrkiPatFitterUtils/FitProcedure.h
+++ b/Tracking/TrkFitter/TrkiPatFitterUtils/TrkiPatFitterUtils/FitProcedure.h
@@ -22,7 +22,7 @@
 //<<<<<< INCLUDES                                                       >>>>>>
 
 #include <vector>
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "TrkEventPrimitives/ParticleHypothesis.h"
 
diff --git a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/MaterialStepRecorder.h b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/MaterialStepRecorder.h
index a20112b3447e371ff027e2814edac0a7e62b9685..a30b1f8c6f5fe7ddf2bd8f9c6510d929e159c2ce 100644
--- a/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/MaterialStepRecorder.h
+++ b/Tracking/TrkG4Components/TrkG4UserActions/TrkG4UserActions/MaterialStepRecorder.h
@@ -29,10 +29,8 @@
 #include "TrkGeometry/MaterialStepCollection.h"
 #include "TrkGeometry/ElementTable.h"
 #include "TrkGeometry/Material.h"
+#include "TrkValInterfaces/IPositionMomentumWriter.h"
 
-namespace Trk {
-  class IPositionMomentumWriter;
-}
 
 namespace G4UA
 {
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/CMakeLists.txt b/Tracking/TrkTools/TrkRIO_OnTrackCreator/CMakeLists.txt
index 6404cf1a38bbd502241a872a50d75c8b98e06e37..cf63d308f452f71acd2878e6aafd76d41673386d 100644
--- a/Tracking/TrkTools/TrkRIO_OnTrackCreator/CMakeLists.txt
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/CMakeLists.txt
@@ -19,6 +19,8 @@ atlas_depends_on_subdirs( PUBLIC
                           DetectorDescription/Identifier
                           Event/xAOD/xAODEventInfo
                           InnerDetector/InDetDetDescr/InDetIdentifier
+                          InnerDetector/InDetRecEvent/InDetRIO_OnTrack
+                          MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonRIO_OnTrack
                           Tracking/TrkEvent/TrkPrepRawData
                           Tracking/TrkEvent/TrkRIO_OnTrack )
 
@@ -26,7 +28,7 @@ atlas_depends_on_subdirs( PUBLIC
 atlas_add_component( TrkRIO_OnTrackCreator
                      src/*.cxx
                      src/components/*.cxx
-                     LINK_LIBRARIES AthenaBaseComps AthenaKernel EventPrimitives GaudiKernel TrkParameters TrkToolInterfaces AthenaPoolUtilities AtlasDetDescr Identifier xAODEventInfo InDetIdentifier TrkPrepRawData TrkRIO_OnTrack )
+                     LINK_LIBRARIES AthenaBaseComps AthenaKernel EventPrimitives GaudiKernel TrkParameters TrkToolInterfaces AthenaPoolUtilities AtlasDetDescr Identifier xAODEventInfo InDetIdentifier InDetRIO_OnTrack MuonRIO_OnTrack TrkPrepRawData TrkRIO_OnTrack )
 
 # Install files from the package:
 atlas_install_headers( TrkRIO_OnTrackCreator )
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/TrkRIO_OnTrackCreator/RIO_OnTrackErrorScalingTool.h b/Tracking/TrkTools/TrkRIO_OnTrackCreator/TrkRIO_OnTrackCreator/RIO_OnTrackErrorScalingTool.h
deleted file mode 100755
index 81c75565e82b20db2df65e48f027e28566c09a92..0000000000000000000000000000000000000000
--- a/Tracking/TrkTools/TrkRIO_OnTrackCreator/TrkRIO_OnTrackCreator/RIO_OnTrackErrorScalingTool.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// RIO_OnTrackErrorScalingTool.h
-//   Header file for class RIO_OnTrackErrorScalingTool
-///////////////////////////////////////////////////////////////////
-// (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-// Wolfgang.Liebig@cern.ch
-///////////////////////////////////////////////////////////////////
-
-#ifndef TRKTOOLS_RIO_ONTRACKERRORSCALINGTOOL_H
-#define TRKTOOLS_RIO_ONTRACKERRORSCALINGTOOL_H
-
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/IIncidentListener.h"
-#include "AthenaKernel/IIOVSvc.h"
-
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
-#include "EventPrimitives/EventPrimitives.h"
-
-#include "StoreGate/ReadHandleKey.h"
-#include "xAODEventInfo/EventInfo.h"
-
-class PixelID;
-
-namespace Trk {
-
-  /** @class RIO_OnTrackErrorScalingTool
-      @brief adapts measurement errors to better reflect insufficiently
-             calibrated/aligned data, using parameters from COOL.
-
-      The RIO_OnTrackErrorScalingTool applies a linear function,
-
-      @f$ \mathrm{error}' = a^2\cdot\mathrm{error}^2 + c^2 @f$
-
-      to inflate measurement errors for track fitting in the reconstruction.
-      It provides a handle for call-back by COOL after detector conditions
-      are known. The parameters @f$a,c@f$ are retrieved from two folders
-      in COOL: /Indet/TrkErrorScaling and /MUON/TrkErrorScaling.
-
-      For performance reasons (i.e. avoid repeated re-creation of
-      Trk::Covariance objects in memory) the chosen design is a
-      covariance matrix factory and therefore expects
-      "good cooperation" from the detector-specific Trk::IRIO_OnTrackCreator
-      implementations: they need to call the associated scaling method
-      from this tool at the point when covariance matrix objects
-      are made.
-
-      Note that this tool can not replace a final, precise detector
-      calibration. The parameters are therefore sub-divided into
-      barrel and end-cap technologies, and according to the number
-      of local coordinate measurements provided by each detector,
-      but currently do not allow a more finely granulated scaling.
-
-      @author Wolfgang Liebig <http://consult.cern.ch/xwho/people/54608>
-  */
-  class RIO_OnTrackErrorScalingTool : public AthAlgTool,
-        virtual public IRIO_OnTrackErrorScalingTool,
-        virtual public IIncidentListener {
-
-  public:
-  ///////////////////////////////////////////////////////////////////
-  // Public methods:
-  ///////////////////////////////////////////////////////////////////
-    //! standard AlgTool constructor
-    RIO_OnTrackErrorScalingTool(const std::string&,const std::string&,
-		       const IInterface*);
-    virtual ~RIO_OnTrackErrorScalingTool();
-    //! standard AlgTool initialisation
-    virtual StatusCode initialize();
-    //! standard AlgTool termination
-    virtual StatusCode finalize();
-    //! methods indicating if the client (concrete sub-det tools) should call the scaling tool at each meas't.
-    virtual bool needToScalePixel() const;
-    virtual bool needToScaleSct() const; 
-    virtual bool needToScaleTrt() const; 
-    virtual bool needToScaleMdt() const; 
-    virtual bool needToScaleTgc() const; 
-    virtual bool needToScaleRpc() const; 
-    virtual bool needToScaleCsc() const; 
-    //! cov matrix creation from cov input and Pixel error scaling parameters
-    virtual Amg::MatrixX* createScaledPixelCovariance
-      (const Amg::MatrixX&, const Identifier& id) const;
-    //! cov matrix creation from cov input and SCT error scaling parameters 
-    virtual Amg::MatrixX* createScaledSctCovariance
-      (const Amg::MatrixX&, bool, double ) const;
-    //! cov matrix creation from cov input and TRT error scaling parameters 
-    virtual Amg::MatrixX* createScaledTrtCovariance
-      (const Amg::MatrixX&, bool) const;
-    //! cov matrix creation from cov input and MDT error scaling parameters 
-    virtual Amg::MatrixX* createScaledMdtCovariance
-      (const Amg::MatrixX&, bool) const;
-    //! cov matrix creation from cov input and TGC error scaling parameters 
-    virtual Amg::MatrixX* createScaledTgcCovariance
-      (const Amg::MatrixX&, const ParamDefs) const;
-    //! cov matrix creation from cov input and RPC error scaling parameters 
-    virtual Amg::MatrixX* createScaledRpcCovariance
-      (const Amg::MatrixX&, const ParamDefs) const;
-    //! cov matrix creation from cov input and CSC error scaling parameters 
-    virtual Amg::MatrixX* createScaledCscCovariance
-      (const Amg::MatrixX&, const ParamDefs) const;
-
-    //! dumps the current scaling parameters to MsgStream output
-    virtual MsgStream& dump( MsgStream& ) const;
-
-    //! handle BeginRun incidents 
-    void handle(const Incident& inc);
-
-  private:
-  ///////////////////////////////////////////////////////////////////
-  // Private data members:
-  ///////////////////////////////////////////////////////////////////
-    const PixelID*        m_pixelID;
-
-    bool                  m_do_pix;
-    bool                  m_do_sct;
-    bool                  m_do_trt;
-    bool                  m_do_mdt;
-    bool                  m_do_tgc;
-    bool                  m_do_rpc;
-    bool                  m_do_csc;
-    enum PixParamType {kPixBarrelPhi,kPixBarrelEta,
-                       kPixIBLPhi,   kPixIBLEta,
-                       kPixEndcapPhi,kPixEndcapEta,
-                       kNPixParamTypes};
-    std::vector< std::vector<double> >   m_scaling_pix;
-    static const int   s_pix_idx[kNPixParamTypes];
-    static const char *s_pix_names[kNPixParamTypes];
-
-    std::vector<double>   m_scaling_pixPhi_barrel;
-    std::vector<double>   m_scaling_pixPhi_endcap;
-    std::vector<double>   m_scaling_pixEta_barrel;
-    std::vector<double>   m_scaling_pixEta_endcap;
-    std::vector<double>   m_scaling_sct_barrel;
-    std::vector<double>   m_scaling_sct_endcap;
-    std::vector<double>   m_scaling_trt_barrel;
-    std::vector<double>   m_scaling_trt_endcap;
-    std::vector<double>   m_scaling_mdt_barrel;
-    std::vector<double>   m_scaling_mdt_endcap;
-    std::vector<double>   m_scaling_tgcPhi;
-    std::vector<double>   m_scaling_tgcEta;
-    std::vector<double>   m_scaling_rpcPhi;
-    std::vector<double>   m_scaling_rpcEta;
-    std::vector<double>   m_scaling_cscPhi;
-    std::vector<double>   m_scaling_cscEta;
-    bool                  m_override_database_id_errors;
-    bool                  m_doTRTScaling;
-    double                m_override_scale_inflation_pix_bar_x; // pixel barrel local x
-    double                m_override_scale_inflation_pix_bar_y; // pixel barrel local y
-    double                m_override_scale_inflation_pix_ecs_x; // pixel endcaps local x
-    double                m_override_scale_inflation_pix_ecs_y; // pixel endcaps local y
-    double                m_override_scale_inflation_sct_bar;  // for barrel
-    double                m_override_scale_inflation_sct_ecs;  // for the end caps
-    double                m_override_scale_inflation_trt_bar;  // barrel
-    double                m_override_scale_inflation_trt_ecs;  // ecs
-    double                m_override_constant_term_pix_bar_x;
-    double                m_override_constant_term_pix_bar_y;
-    double                m_override_constant_term_pix_ecs_x;
-    double                m_override_constant_term_pix_ecs_y;
-    double                m_override_constant_term_sct_bar;
-    double                m_override_constant_term_sct_ecs;
-    double                m_override_constant_term_trt_bar;
-    double                m_override_constant_term_trt_ecs;
-    double                m_override_mu_term_trt_bar;
-    double                m_override_mu_term_trt_ecs;
-
-		
-    mutable double  m_mu; //!< Pileup in event to correct errors
-    mutable bool    m_hasBeenCalledThisEvent; //! < Is this the first time the tool has been called this event? 
-
-
-    //! Service to report incidents (begin run, begin event)
-    ServiceHandle< IIncidentSvc > m_IncidentSvc;
-
-
-    //! conditions data handling: COOL folder name for InDet scaling paremeters
-    const std::string m_idFolder;
-    //! conditions data handling: COOL folder name for Muon scaling paremeters
-    const std::string m_muonFolder;
-    //! map holding the scaling parameters for each detector region
-    typedef std::map<std::string,std::vector<double>*> ParamMap;
-    /** @brief map holding the scaling parameters for each detector region
-
-        The parammap is used at call-back/initialisation to avoid map
-        search at every scaling call. It maps directly to the
-        references of the local vector variables!
-     */
-    ParamMap m_parammap;
-    //! internal code structuring: formatted output for scaling parameters
-    const std::string makeInfoString(const std::string&,const bool,
-                                     const std::vector<double>&) const;
-    //! conditions data handling: find associated parameters for a given detector
-    void registerParameters(bool&,
-                            std::vector<double>*,
-                            const std::string&);
-
-    //! internal code structuring: error scaling for 2-dim measurements
-    void scale2by2(Amg::MatrixX&, 
-                   const std::vector<double>&,
-                   const std::vector<double>&) const;
-
-    //! conditions data handling: call-back entry to re-set scaling parameters when an IOV is new or changed.
-    StatusCode callback( IOVSVC_CALLBACK_ARGS );
-
-    SG::ReadHandleKey<xAOD::EventInfo> m_readKey;
-
-  };
-
-  ///////////////////////////////////////////////////////////////////
-  // Inline methods:
-  ///////////////////////////////////////////////////////////////////
-  inline bool RIO_OnTrackErrorScalingTool::needToScalePixel() const
-  {
-    return m_do_pix;
-  }
-  inline bool RIO_OnTrackErrorScalingTool::needToScaleSct() const
-  {
-    return m_do_sct;
-  }
-  inline bool RIO_OnTrackErrorScalingTool::needToScaleTrt() const
-  {
-    return m_do_trt;
-  }
-  inline bool RIO_OnTrackErrorScalingTool::needToScaleMdt() const
-  {
-    return m_do_mdt;
-  }
-  inline  bool RIO_OnTrackErrorScalingTool::needToScaleTgc() const
-  {
-    return m_do_tgc;
-  }
-  inline bool RIO_OnTrackErrorScalingTool::needToScaleRpc() const
-  {
-    return m_do_rpc;
-  }
-  inline bool RIO_OnTrackErrorScalingTool::needToScaleCsc() const
-  {
-    return m_do_csc;
-  }
-
-  MsgStream& operator << (MsgStream&, const RIO_OnTrackErrorScalingTool&);
-  ///////////////////////////////////////////////////////////////////
-  // Overload of << operator MsgStream
-  ///////////////////////////////////////////////////////////////////
-  inline MsgStream& operator    << 
-    (MsgStream& sl,const RIO_OnTrackErrorScalingTool& se)
-    { 
-      return se.dump(sl); 
-    }
-
-} // end of namespace
-
-#endif
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/KitManager.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/KitManager.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..fbaac89f13ce2e79b7462993dadc726d5abe1eed
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/KitManager.cxx
@@ -0,0 +1,29 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+#include "KitManager.h"
+#include <sstream>
+#include <stdexcept>
+
+KitManagerBase::KitManagerBase() {}
+KitManagerBase::~KitManagerBase() {}
+
+const void *KitManagerBase::kitPtr(const std::string &name) const {
+  return m_registry.at(name);
+}
+
+bool KitManagerBase::registerKit(std::string name, const void *a_kit) {
+  std::pair<std::string, const void *> elm = std::make_pair(name, a_kit);
+  if (!m_registry.insert(elm).second) {
+    std::stringstream message;
+    message << "Failed to register kit " << elm.first;
+    throw std::runtime_error(message.str());
+  }
+  return true;
+}
+
+void KitManagerBase::dumpKits(std::ostream &out) const {
+  for(const std::pair<const std::string, const void *> &elm: m_registry) {
+    out << " " << elm.first;
+  }
+}
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/KitManager.h b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/KitManager.h
new file mode 100644
index 0000000000000000000000000000000000000000..521fccfc534d27aade1435636c0a89f4e5e3c19f
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/KitManager.h
@@ -0,0 +1,57 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef _KitManager_H_
+#define _KitManager_H_
+
+#include <ostream>
+#include <map>
+#include <memory>
+
+class KitManagerBase
+{
+protected:
+  KitManagerBase();
+  virtual ~KitManagerBase();
+
+  const void *kitPtr(const std::string &name) const;
+
+  bool registerKit(std::string name, const void *a_kit);
+
+  std::map<std::string, const void * > m_registry;
+public:
+  void dumpKits(std::ostream &out) const;
+
+};
+
+template <class T_KitInterface>
+class KitManager : public KitManagerBase {
+public:
+  ~KitManager() {
+    for( std::pair<const std::string, const void *> &elm : m_registry ) {
+      const T_KitInterface *ptr=reinterpret_cast<const T_KitInterface *>(elm.second);
+      delete ptr;
+      elm.second = nullptr;
+    }
+  }
+
+  bool registerKit(std::string name, const T_KitInterface *a_kit) {
+    return KitManagerBase::registerKit(name, static_cast< const void *>(a_kit));
+  }
+
+  const T_KitInterface &kit(const std::string &name) const {
+    return *(reinterpret_cast< const T_KitInterface *>(KitManagerBase::kitPtr(name)));
+  }
+
+  static
+  KitManager<T_KitInterface> &instance() {
+    if (!s_instance) {
+      s_instance=std::make_unique<KitManager<T_KitInterface > >();
+    }
+    return *s_instance;
+  }
+private:
+  static std::unique_ptr< KitManager<T_KitInterface> > s_instance;
+};
+
+#endif
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingCondAlg.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingCondAlg.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a1171408323ce8ff70024d87dd44e08620e1d38b
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingCondAlg.cxx
@@ -0,0 +1,220 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+#include "InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h"
+#include "RIO_OnTrackErrorScalingCondAlg.h"
+#include "RIO_OnTrackErrorScalingKit.h"
+
+#include <limits>
+
+#include <iostream>
+namespace {
+  template <typename T>
+  std::ostream &operator<<(std::ostream &out, const std::vector<T> &a) {
+    for (const T &elm : a) {
+      out << " " << elm;
+    }
+    return out;
+  }
+}
+
+
+RIO_OnTrackErrorScalingCondAlg::RIO_OnTrackErrorScalingCondAlg(const std::string& name, ISvcLocator* pSvcLocator)
+  : ::AthAlgorithm(name, pSvcLocator)
+  , m_condSvc{"CondSvc", name}
+{
+}
+
+StatusCode RIO_OnTrackErrorScalingCondAlg::initialize() {
+  ATH_CHECK(m_condSvc.retrieve());
+  ATH_CHECK(m_readKey.initialize());
+
+  if (m_errorScalingType.size() != m_writeKey.size()) {
+    ATH_MSG_FATAL("Number of error scaling types and out keys do not match: " << m_errorScalingType.size() << " != " << m_writeKey.size() 
+                  << " There should be exactly one out key for each error scaling type.");
+    return StatusCode::FAILURE;
+  }
+  ATH_CHECK( m_writeKey.initialize() );
+
+  m_kits.clear();
+  m_kits.reserve(m_errorScalingType.size());
+  unsigned int idx=0;
+  for (const std::string &type_name : m_errorScalingType ) {
+    if (addErrorScaling(type_name).isFailure()) return StatusCode::FAILURE;
+    if (m_condSvc->regHandle(this, m_writeKey[idx]).isFailure()) {
+      ATH_MSG_FATAL("unable to register WriteCondHandle " << m_writeKey[idx].key() << " with CondSvc");
+      return StatusCode::FAILURE;
+    }
+    ++idx;
+  }
+  for (const std::string &attribut_name : m_attributIgnoreList ) {
+    registerAttribute(attribut_name, std::numeric_limits<unsigned int>::max(),0);
+  }
+
+  std::cout << "DEBUG " << name() << " all done." << std::endl;
+  for (  const SG::WriteCondHandleKey<RIO_OnTrackErrorScaling>  &output : m_writeKey ) {
+    std::cout << " new write key " << output.key() << "[" <<  static_cast<const void *>(&output) << std::endl;
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+
+void RIO_OnTrackErrorScalingCondAlg::registerAttribute(std::string name, unsigned int type_idx, unsigned int param_idx) {
+  if (!m_attributeMap.insert( std::make_pair(name, std::make_pair(type_idx,param_idx)) ).second) {
+    std::stringstream message;
+    message << "Failed to add RIO_OnTrackErrorScaling paramter : " << name << ".";
+    throw std::runtime_error(message.str());
+  }
+}
+
+StatusCode RIO_OnTrackErrorScalingCondAlg::addErrorScaling(const std::string &type_name) {
+  std::cout << "DEBUG " << name() << " addErrorScaling " << type_name << std::endl;
+  const RIO_OnTrackErrorScalingKit *the_kit(nullptr);
+  try {
+    the_kit = &(RIO_OnTrackErrorScalingKitManager::instance().kit( type_name ));
+  }
+  catch (std::runtime_error &err) {
+    std::stringstream types;
+    RIO_OnTrackErrorScalingKitManager::instance().dumpKits(types);
+    ATH_MSG_FATAL( "Invalide ErrorScalking type name : " << type_name << ". Registered types:" << types.str() );
+    return StatusCode::FAILURE;
+  }
+  catch (std::exception &err) {
+    std::stringstream types;
+    RIO_OnTrackErrorScalingKitManager::instance().dumpKits(types);
+    ATH_MSG_FATAL( "Caught exception: " << err.what() << " Invalide ErrorScalking type name : " << type_name << ". Registered types:" << types.str() );
+    return StatusCode::FAILURE;
+  }
+  std::cout << "DEBUG " << name() << "register kit " << type_name << " n-params=" << the_kit->nParametres()<< std::endl;
+  m_kits.push_back(the_kit);
+  const char **parameters=the_kit->paramNames();
+  for (unsigned int param_i=0; param_i<the_kit->nParametres(); ++param_i) {
+    std::cout << "DEBUG " << name() << "register attribute " << parameters[param_i]  << " -> "
+              << m_kits.size() << ". " << param_i << std::endl;
+    registerAttribute( std::string(parameters[param_i]), m_kits.size()-1, param_i);
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+template <typename T>
+class CSAccessCondReadHandleKey : public SG::ReadCondHandleKey<T> {
+public:
+  std::string dump() const {
+    return this->getCS()->dump();
+  }
+
+  template <typename T_Obj>
+  std::string dumpKeys() const {
+    std::stringstream out;
+    std::vector<std::string> keys_out;
+    const_cast<StoreGateSvc *>(this->getCS())->keys<T_Obj>(keys_out,true,false);
+    for(const std::string &a_key : keys_out) {
+      out << " " << a_key;
+    }
+    return out.str();
+  }
+};
+
+
+StatusCode RIO_OnTrackErrorScalingCondAlg::execute() {
+  SG::ReadCondHandle<CondAttrListCollection> readHandle(m_readKey);
+  if (!readHandle.isValid()) {
+    std::cout << "DEBUG cond store content : " << static_cast<const CSAccessCondReadHandleKey<CondAttrListCollection> &>(m_readKey).dump() << std::endl;
+    return StatusCode::FAILURE;
+  }
+  assert( *readHandle );
+  EventIDRange range;
+  if (!readHandle.range(range)) {
+    ATH_MSG_FATAL("Failed to retrieve validity range for " << readHandle.key());
+    return StatusCode::FAILURE;
+  }
+
+  std::vector<SG::WriteCondHandle<RIO_OnTrackErrorScaling> > write_handles(m_writeKey.makeHandles());
+  assert( write_handles.size() == m_kits.size() );
+  std::vector< std::unique_ptr<RIO_OnTrackErrorScaling> > error_scaling;
+  error_scaling.reserve( m_kits.size());
+
+  unsigned int total_params=0;
+  for (const RIO_OnTrackErrorScalingKit *a_kit: m_kits) {
+    assert( a_kit );
+    error_scaling.push_back( a_kit->create() );
+    total_params += a_kit->nParametres();
+  }
+  assert( write_handles.size() == error_scaling.size());
+
+  try {
+    // now populate output conditions data objects from attribut lists.
+    for (const std::pair<unsigned int, coral::AttributeList>& channel : **readHandle ) {
+      const coral::AttributeList &alist = channel.second;
+      unsigned int att_i=0;
+      const std::string& attr_name=alist[att_i++].data<std::string>();
+      try {
+        std::pair<unsigned int, unsigned int> idx = m_attributeMap.at(attr_name);
+        if (idx.first != std::numeric_limits<unsigned int>::max()) {
+          assert( idx.first < error_scaling.size());
+          assert( idx.second < error_scaling[idx.first]->params().size());
+
+          const int nvals=alist[att_i++].data<int>();
+          std::vector<double> &params = error_scaling[idx.first]->params()[idx.second];
+          params.clear();
+          params.reserve(nvals);
+          assert( att_i == 2);
+          for (int i=0;i<nvals;++i, ++att_i){
+            assert( att_i < alist.size() );
+            // ATH_MSG_VERBOSE("Parameter " << i << " = " << alist[att_i].data<double>() );
+            params.push_back(alist[att_i].data<double>());
+          }
+          std::cout << "DEBUG " << this->name() << " cond data " << range
+                    << " " << attr_name << " -> " << idx.first << ","  << idx.second << "[" << write_handles[idx.first].key() << "] : " << params
+                    << std::endl;
+        }
+        else {
+          std::cout << "DEBUG " << this->name() << " cond data " << range
+                    << " skip " << attr_name << std::endl;
+        }
+        --total_params;
+      }
+      catch (std::out_of_range &err) {
+        ATH_MSG_FATAL("Unhandled attribute: " << attr_name);
+        return StatusCode::FAILURE;
+      }
+      catch (std::exception &err) {
+        ATH_MSG_FATAL("Unhandled attribute: " << attr_name << " what:" << err.what());
+        return StatusCode::FAILURE;
+      }
+    }
+    if (total_params!=0) {
+      ATH_MSG_ERROR("Not all parameters of the output conditions data are filled from attribute list. " << total_params << " parameters are not filled.");
+    }
+
+    for (unsigned int key_i=0; key_i<write_handles.size(); ++key_i) {
+      // assert( key_i < m_writeKey.size());
+      assert( key_i < error_scaling.size());
+      if (!error_scaling[key_i]->postProcess()) {
+        ATH_MSG_ERROR("Conditions data for " << write_handles[key_i].key() << " not valid.");
+        return StatusCode::FAILURE;
+      }
+      // CLID impl_clid=error_scaling[key_i]->clid();
+      if (write_handles[key_i].record(range, std::move(error_scaling[key_i])).isFailure()) {
+        ATH_MSG_FATAL("Could not record RIO_OnTrackErrorScaling " << write_handles[key_i].key()
+                      << " with EventRange " << range
+                      << " into Conditions Store");
+        return StatusCode::FAILURE;
+      }
+    }
+  }
+  catch (coral::Exception& e) {
+    ATH_MSG_ERROR("Problem with AttributeList decoding: " << e.what());
+    return StatusCode::FAILURE;
+  }
+  return StatusCode::SUCCESS;
+}
+
+
+StatusCode RIO_OnTrackErrorScalingCondAlg::finalize() {
+  return StatusCode::SUCCESS;
+}
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingCondAlg.h b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingCondAlg.h
new file mode 100644
index 0000000000000000000000000000000000000000..97ec2361e46450f58e2b72ef31b939fe69402ecb
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingCondAlg.h
@@ -0,0 +1,60 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/ 
+
+#ifndef _RIO_OnTrackErrorScalingCondAlg_H_
+#define _RIO_OnTrackErrorScalingCondAlg_H_
+
+#include "AthenaBaseComps/AthAlgorithm.h"
+
+#include "AthenaPoolUtilities/CondAttrListCollection.h"
+//#include "StoreGate/ReadCondHandleKey.h"
+#//include "StoreGate/WriteCondHandleKey.h"
+#include "StoreGate/CondHandleKeyArray.h"
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+#include "GaudiKernel/ICondSvc.h"
+#include "GaudiKernel/Property.h"
+#include <iostream>
+
+class RIO_OnTrackErrorScalingKit;
+
+class RIO_OnTrackErrorScalingCondAlg : public AthAlgorithm 
+{  
+ public:
+  RIO_OnTrackErrorScalingCondAlg(const std::string& name, ISvcLocator* pSvcLocator);
+  virtual ~RIO_OnTrackErrorScalingCondAlg() = default;
+  StatusCode initialize() override;
+  StatusCode execute() override;
+  StatusCode finalize() override;
+
+ private:
+
+  StatusCode addErrorScaling(const std::string &type_name);
+  void registerAttribute(std::string name, unsigned int type_idx, unsigned int param_idx);
+
+  SG::ReadCondHandleKey<CondAttrListCollection> m_readKey
+     {this, "ReadKey", "/Indet/TrkErrorScaling", "Conditions folder namer for innder detector error scaling parameters."};
+
+  Gaudi::Property< std::vector<std::string> > m_errorScalingType
+    { this,
+      "ErrorScalingType",
+      {"PixelRIO_OnTrackErrorScalingRun1","SCTRIO_OnTrackErrorScaling","TRTRIO_OnTrackErrorScaling"},
+      "Error scaling type. (git grep  \"RIO_OnTrackErrorScalingKitManager.*registerKit\")"
+     };
+
+  Gaudi::Property< std::vector<std::string> > m_attributIgnoreList
+    { this,"IgnoreAttributes", {}, "List of attributes that should be ignored."};
+
+  SG::WriteCondHandleKeyArray<RIO_OnTrackErrorScaling> m_writeKey
+    { this,
+      "OutKeys",
+      {"/Indet/TrkErrorScalingPixel","/Indet/TrkErrorScalingSCT","/Indet/TrkErrorScalingTRT"},
+      "Output conditions key names, for the specified error scaling types"};
+
+  std::vector<const RIO_OnTrackErrorScalingKit *>               m_kits {};
+  std::map<std::string, std::pair<unsigned int, unsigned int> > m_attributeMap;
+
+  ServiceHandle<ICondSvc> m_condSvc;
+};
+
+#endif // SCT_CONDITIONSPARAMETERCONDALG
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingDbOverrideCondAlg.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingDbOverrideCondAlg.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..6fe8e44bd54282a0d89372bc874e5f51002e07eb
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingDbOverrideCondAlg.cxx
@@ -0,0 +1,140 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+#include "RIO_OnTrackErrorScalingDbOverrideCondAlg.h"
+#include "RIO_OnTrackErrorScalingKit.h"
+
+RIO_OnTrackErrorScalingDbOverrideCondAlg::RIO_OnTrackErrorScalingDbOverrideCondAlg(const std::string& name, ISvcLocator* pSvcLocator)
+  : ::AthAlgorithm(name, pSvcLocator)
+  , m_condSvc{"CondSvc", name}
+{
+}
+
+StatusCode RIO_OnTrackErrorScalingDbOverrideCondAlg::initialize() {
+  ATH_CHECK(m_condSvc.retrieve());
+  if (m_writeKey.key().empty()) {
+    ATH_MSG_FATAL("No conditions data write key specified.");
+  }
+  ATH_CHECK(m_writeKey.initialize());
+  m_errorScalingDataKit = &(RIO_OnTrackErrorScalingKitManager::instance().kit( m_errorScalingTypeName ));
+  unsigned int n_parameters_total=0;
+  unsigned int n_parameter_sets = m_errorScalingDataKit->nParametres();
+  if (n_parameter_sets>0) {
+    if (!m_nParameterPerSet.empty()) {
+      if (m_nParameterPerSet.size() != n_parameter_sets) {
+        ATH_MSG_FATAL("PrametersPerSet must either be empty or match the number of parameters of the error scaling class " << m_errorScalingTypeName);
+        return StatusCode::FAILURE;
+      }
+      else {
+        for (unsigned int n_parameters : m_nParameterPerSet) {
+          n_parameters_total += n_parameters;
+        }
+      }
+      m_useNParametersPerSet = m_nParameterPerSet;
+    }
+    else {
+      unsigned int n_parameters_per_set=m_errorScalingParameters.size()/n_parameter_sets;
+      n_parameters_total = n_parameter_sets * n_parameters_per_set;
+      m_useNParametersPerSet.clear();
+      m_useNParametersPerSet.reserve(n_parameter_sets);
+      for (unsigned int param_set_i=0; param_set_i<n_parameter_sets; ++param_set_i ) {
+        m_useNParametersPerSet.push_back( n_parameters_per_set);
+      }
+      ATH_MSG_VERBOSE("init n_parameters_total=" <<  n_parameters_total << " =?= " << m_errorScalingParameters.size()
+                      << " n_parameters_per_set=" << n_parameters_per_set );
+    }
+    if (n_parameters_total != m_errorScalingParameters.size()) {
+      ATH_MSG_FATAL("Number of parameters in ErorScalingParameters does not match expectation. Estimated " << n_parameters_total 
+                    << " parameters in total for the " << n_parameter_sets << " parameter sets of " << m_errorScalingTypeName
+                    << " but got " << m_errorScalingParameters.size());
+      return StatusCode::FAILURE;
+    }
+  }
+  if(msgLvl(MSG::VERBOSE)) {
+    for(unsigned int param_i=0; param_i<m_errorScalingDataKit->nParametres(); ++param_i) {
+      ATH_MSG_VERBOSE("No error scaling parameters for " << m_writeKey.key() << " " << m_errorScalingDataKit->paramNames()[param_i] 
+                      << " n-params="
+                      << m_useNParametersPerSet[param_i]);
+    }
+  }
+  if (n_parameters_total==0 && !m_errorScalingParameters.empty()) {
+    ATH_MSG_FATAL("ErorScalingParameters expected to be empty for " << m_errorScalingTypeName) ;
+    return StatusCode::FAILURE;
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+namespace {
+  EventIDBase timestamp (int t)
+  {
+    return EventIDBase (EventIDBase::UNDEFNUM,  // run
+                        EventIDBase::UNDEFEVT,  // event
+                        t);
+  }
+
+  EventIDBase infiniteIOVEend() {
+    return timestamp(std::numeric_limits<int>::max() - 1);
+  }
+
+  template <typename T>
+  std::ostream &operator<<(std::ostream &out, const std::vector<T> &a) {
+    for (const T &elm : a) {
+      out << " " << elm;
+    }
+    return out;
+  }
+}
+
+
+StatusCode RIO_OnTrackErrorScalingDbOverrideCondAlg::execute() {
+  SG::WriteCondHandle<RIO_OnTrackErrorScaling> write_handle(m_writeKey);
+  if (!write_handle.isValid()) {
+    EventIDRange range(timestamp(0),infiniteIOVEend());
+    std::unique_ptr<RIO_OnTrackErrorScaling> error_scaling( m_errorScalingDataKit->create() );
+    std::vector<float>::const_iterator  param_iter = m_errorScalingParameters.begin();
+    unsigned int set_i=0;
+    for (unsigned int n_params : m_useNParametersPerSet ) {
+      assert( set_i < error_scaling->params().size() );
+      error_scaling->params()[set_i].clear();
+      error_scaling->params()[set_i].reserve(n_params);
+      for(unsigned int param_i=0; param_i<n_params; ++param_i, ++param_iter) {
+        assert( param_iter != m_errorScalingParameters.end() );
+        error_scaling->params()[set_i].push_back( *param_iter );
+      }
+      ++set_i;
+    }
+
+    // dump error scaling parameters
+    if(msgLvl(MSG::VERBOSE)) {
+      for(unsigned int param_i=0; param_i<m_errorScalingDataKit->nParametres(); ++param_i) {
+        if (param_i>= error_scaling->params().size()) {
+          ATH_MSG_FATAL("No error scaling parameters for " << write_handle.key() << " " << m_errorScalingDataKit->paramNames()[param_i] << ".");
+          return StatusCode::FAILURE;
+        }
+        else {
+          ATH_MSG_VERBOSE("Parameters for " << write_handle.key() << " " << m_errorScalingDataKit->paramNames()[param_i] << error_scaling->params()[param_i] );
+        }
+      }
+    }
+
+    if (!error_scaling->postProcess()) {
+      ATH_MSG_ERROR("Conditions data for " << write_handle.key() << " not valid.");
+      return StatusCode::FAILURE;
+    }
+    if (write_handle.record(range, std::move(error_scaling)).isFailure()) {
+      ATH_MSG_FATAL("Could not record RIO_OnTrackErrorScaling " << write_handle.key()
+                    << " with EventRange " << range
+                    << " into Conditions Store");
+      return StatusCode::FAILURE;
+    }
+  }
+  return StatusCode::SUCCESS;
+}
+
+
+StatusCode RIO_OnTrackErrorScalingDbOverrideCondAlg::finalize() {
+  return StatusCode::SUCCESS;
+}
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingDbOverrideCondAlg.h b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingDbOverrideCondAlg.h
new file mode 100644
index 0000000000000000000000000000000000000000..1bf64c0d7fffa3c695fc3d18bf93d2cfc6bf3bd2
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingDbOverrideCondAlg.h
@@ -0,0 +1,48 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/ 
+
+#ifndef _RIO_OnTrackErrorScalingDbOverrideCondAlg_H_
+#define _RIO_OnTrackErrorScalingDbOverrideCondAlg_H_
+
+#include "AthenaBaseComps/AthAlgorithm.h"
+
+#include "StoreGate/ReadCondHandleKey.h"
+#include "AthenaPoolUtilities/CondAttrListCollection.h"
+#include "StoreGate/WriteCondHandleKey.h"
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+#include "GaudiKernel/ICondSvc.h"
+#include "GaudiKernel/Property.h"
+#include <iostream>
+
+class RIO_OnTrackErrorScalingKit;
+
+class RIO_OnTrackErrorScalingDbOverrideCondAlg : public AthAlgorithm 
+{  
+ public:
+  RIO_OnTrackErrorScalingDbOverrideCondAlg(const std::string& name, ISvcLocator* pSvcLocator);
+  virtual ~RIO_OnTrackErrorScalingDbOverrideCondAlg() = default;
+  StatusCode initialize() override;
+  StatusCode execute() override;
+  StatusCode finalize() override;
+
+ private:
+
+  Gaudi::Property< std::vector<unsigned int> > m_nParameterPerSet
+    {this,"PrametersPerSet",{},"The number of parameters per set. If a single number is supplied this will be applied to all sets."};
+
+  Gaudi::Property< std::vector<float> > m_errorScalingParameters
+    {this,"ErorScalingParameters",{},"The error scaling parameters for all sets lumbed together."};
+
+  Gaudi::Property< std::string > m_errorScalingTypeName
+    {this,"ErrorScalingTypeName","","The specific type name of the error scaling conditions data that should be produced."};
+
+  SG::WriteCondHandleKey<RIO_OnTrackErrorScaling>  m_writeKey
+    {this, "WriteKey","","The key for the produced error scaling conditions data."};
+
+  ServiceHandle<ICondSvc>           m_condSvc;
+  const RIO_OnTrackErrorScalingKit *m_errorScalingDataKit;
+  std::vector<unsigned int>         m_useNParametersPerSet;
+};
+
+#endif // SCT_CONDITIONSPARAMETERCONDALG
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingIDKits.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingIDKits.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..c1586ace88a7adb02ff87e708e0acefde240b6b2
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingIDKits.cxx
@@ -0,0 +1,65 @@
+#include "RIO_OnTrackErrorScalingKit.h"
+#include "InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h"
+#include "InDetRIO_OnTrack/SCTRIO_OnTrackErrorScaling.h"
+#include "InDetRIO_OnTrack/TRTRIO_OnTrackErrorScaling.h"
+
+class PixelRIO_OnTrackErrorScalingKit
+  : public RIO_OnTrackErrorScalingSpecialisedKit<PixelRIO_OnTrackErrorScaling>
+{
+public:
+  virtual unsigned int nParametres() const override {
+    return PixelRIO_OnTrackErrorScaling::kNParamTypes;
+  }
+  virtual const char **paramNames()  const override {
+    return PixelRIO_OnTrackErrorScaling::paramNames();
+  }
+
+};
+
+// the run1 kit only removes the 2 last two parameters which are for IBL
+class PixelRIO_OnTrackErrorScalingRun1Kit
+  : public PixelRIO_OnTrackErrorScalingKit
+{
+public:
+  virtual unsigned int nParametres() const override {
+    return PixelRIO_OnTrackErrorScaling::kPixIBLPhi;
+  }
+
+};
+
+class SCTRIO_OnTrackErrorScalingKit
+  : public RIO_OnTrackErrorScalingSpecialisedKit<SCTRIO_OnTrackErrorScaling>
+{
+public:
+  virtual unsigned int nParametres() const override {
+    return SCTRIO_OnTrackErrorScaling::kNParamTypes;
+  }
+  virtual const char **paramNames()  const override {
+    return SCTRIO_OnTrackErrorScaling::paramNames();
+  }
+
+};
+
+class TRTRIO_OnTrackErrorScalingKit
+  : public RIO_OnTrackErrorScalingSpecialisedKit<TRTRIO_OnTrackErrorScaling>
+{
+public:
+  virtual unsigned int nParametres() const override {
+    return TRTRIO_OnTrackErrorScaling::kNParamTypes;
+  }
+  virtual const char **paramNames()  const override {
+    return TRTRIO_OnTrackErrorScaling::paramNames();
+  }
+
+};
+
+namespace {
+  // register all kits with the help of a dumm function which sets a global anonymous bool
+  bool registered = ( []() -> bool {
+    return
+         RIO_OnTrackErrorScalingKitManager::instance().registerKit("PixelRIO_OnTrackErrorScaling",    new PixelRIO_OnTrackErrorScalingKit)
+      && RIO_OnTrackErrorScalingKitManager::instance().registerKit("PixelRIO_OnTrackErrorScalingRun1",new PixelRIO_OnTrackErrorScalingRun1Kit)
+      && RIO_OnTrackErrorScalingKitManager::instance().registerKit("SCTRIO_OnTrackErrorScaling",      new SCTRIO_OnTrackErrorScalingKit)
+      && RIO_OnTrackErrorScalingKitManager::instance().registerKit("TRTRIO_OnTrackErrorScaling",      new TRTRIO_OnTrackErrorScalingKit) ;
+    } ) ();
+}
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingKit.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingKit.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a4ebe1cb324c649ddf9e9e5558c267f82e192f41
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingKit.cxx
@@ -0,0 +1,18 @@
+#include "RIO_OnTrackErrorScalingKit.h"
+
+// need toinstantiate static instance pointer
+template <>
+std::unique_ptr< KitManager<RIO_OnTrackErrorScalingKit> >
+KitManager<RIO_OnTrackErrorScalingKit>::s_instance {};
+
+size_t RIO_OnTrackErrorScalingKit::getParamIndex(const std::string &name) const {
+  const char **param_names = paramNames();
+  for(size_t idx=0; idx<nParametres(); ++idx) {
+    if (strcmp(param_names[idx],name.c_str())==0) return idx;
+  }
+  std::stringstream message;
+  message << "RIO_OnTrackErrorScaling parameter " << name << " not found.";
+  throw std::runtime_error(message.str());
+  return nParametres();
+}
+
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingKit.h b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingKit.h
new file mode 100644
index 0000000000000000000000000000000000000000..cd5e9328d6aa37ac9269b4ab949ef82064a2d5cc
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingKit.h
@@ -0,0 +1,36 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef _RIO_OnTrackErrorScalingKit_H_
+#define _RIO_OnTrackErrorScalingKit_H_
+
+#include "TrkRIO_OnTrack/RIO_OnTrackErrorScaling.h"
+#include "KitManager.h"
+
+class RIO_OnTrackErrorScalingKit
+{
+public:
+  virtual ~RIO_OnTrackErrorScalingKit() {}
+
+  virtual unsigned int nParametres()                        const = 0;
+  virtual const char **paramNames()                         const = 0;
+  virtual size_t getParamIndex(const std::string &name)     const;
+
+  virtual std::unique_ptr<RIO_OnTrackErrorScaling> create() const = 0;
+};
+
+template <class T>
+class RIO_OnTrackErrorScalingSpecialisedKit : public RIO_OnTrackErrorScalingKit
+{
+ public:
+  virtual std::unique_ptr<RIO_OnTrackErrorScaling> create() const override {
+    std::unique_ptr<RIO_OnTrackErrorScaling> error_scaling( new T);
+    error_scaling->params().resize(this->nParametres());
+    return error_scaling;
+  }
+};
+
+typedef KitManager<RIO_OnTrackErrorScalingKit> RIO_OnTrackErrorScalingKitManager;
+
+#endif
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingMuonKits.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingMuonKits.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..7096d21d4796aade9c3ed028213268db6494a72d
--- /dev/null
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingMuonKits.cxx
@@ -0,0 +1,62 @@
+#include "RIO_OnTrackErrorScalingKit.h"
+#include "MuonRIO_OnTrack/MuonEtaPhiRIO_OnTrackErrorScaling.h"
+
+typedef char * CharPtr_t;
+class MuonEtaPhiRIO_OnTrackErrorScalingKit
+  : public RIO_OnTrackErrorScalingSpecialisedKit<MuonEtaPhiRIO_OnTrackErrorScaling>
+{
+public:
+  MuonEtaPhiRIO_OnTrackErrorScalingKit(const std::string &prefix) {
+    // use C-style array of strings to satisfy the interface
+    m_names=new CharPtr_t[MuonEtaPhiRIO_OnTrackErrorScaling::kNParamTypes];
+    for (unsigned int idx=0; idx< MuonEtaPhiRIO_OnTrackErrorScaling::kNParamTypes; ++idx ) {
+      std::string tmp( prefix + " " + MuonEtaPhiRIO_OnTrackErrorScaling::paramNames()[idx] );
+      tmp.shrink_to_fit();
+      m_names[idx]=new char[ tmp.capacity() ];
+      strncpy( m_names[idx], tmp.c_str(), tmp.capacity() );
+    }
+  }
+  ~MuonEtaPhiRIO_OnTrackErrorScalingKit() {
+    for (unsigned idx=0; idx<MuonEtaPhiRIO_OnTrackErrorScaling::kNParamTypes; ++idx) {
+      delete [] m_names[idx];
+    }
+    delete [] m_names;
+  }
+  virtual unsigned int nParametres() const override {
+    return MuonEtaPhiRIO_OnTrackErrorScaling::kNParamTypes;
+  }
+  virtual const char **paramNames()  const override {
+    return const_cast<const char **>(m_names);
+  }
+private:
+  char **m_names;
+};
+
+#include "MuonRIO_OnTrack/MDTRIO_OnTrackErrorScaling.h"
+class MDTRIO_OnTrackErrorScalingKit
+  : public RIO_OnTrackErrorScalingSpecialisedKit<MDTRIO_OnTrackErrorScaling>
+{
+public:
+  MDTRIO_OnTrackErrorScalingKit() {}
+
+  ~MDTRIO_OnTrackErrorScalingKit() {}
+
+  virtual unsigned int nParametres() const override {
+    return MDTRIO_OnTrackErrorScaling::kNParamTypes;
+  }
+  virtual const char **paramNames()  const override {
+    return MDTRIO_OnTrackErrorScaling::paramNames();
+  }
+};
+
+
+namespace {
+  // register all kits with the help of a dummy function which sets a global anonymous bool
+  bool registered = ( []() -> bool {
+    return
+         RIO_OnTrackErrorScalingKitManager::instance().registerKit("RPCRIO_OnTrackErrorScaling",    new MuonEtaPhiRIO_OnTrackErrorScalingKit("RPC"))
+      && RIO_OnTrackErrorScalingKitManager::instance().registerKit("TGCRIO_OnTrackErrorScaling",    new MuonEtaPhiRIO_OnTrackErrorScalingKit("TGC"))
+      && RIO_OnTrackErrorScalingKitManager::instance().registerKit("CSCRIO_OnTrackErrorScaling",    new MuonEtaPhiRIO_OnTrackErrorScalingKit("CSC"))
+      && RIO_OnTrackErrorScalingKitManager::instance().registerKit("MDTRIO_OnTrackErrorScaling",    new MDTRIO_OnTrackErrorScalingKit);
+    } ) ();
+}
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingTool.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingTool.cxx
deleted file mode 100755
index 4e1f2525a9fe1ef61ec8ad448a98501847a239df..0000000000000000000000000000000000000000
--- a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/RIO_OnTrackErrorScalingTool.cxx
+++ /dev/null
@@ -1,673 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-///////////////////////////////////////////////////////////////////
-// RIO_OnTrackErrorScalingTool.cxx
-//   AlgTool for modifying (inflating) the measurement errors of
-//   RIO_onTrack objects directly in the detector-specific creators.
-///////////////////////////////////////////////////////////////////
-// (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-// Wolfgang.Liebig@cern.ch
-///////////////////////////////////////////////////////////////////
-
-#include "TrkRIO_OnTrackCreator/RIO_OnTrackErrorScalingTool.h"
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/ListItem.h"
-#include "AthenaPoolUtilities/CondAttrListCollection.h"
-#include "AthenaKernel/errorcheck.h"
-#include "InDetIdentifier/PixelID.h"
-
-#include <cmath>
-#include <stdexcept>
-#include <sstream>
-
-const char *Trk::RIO_OnTrackErrorScalingTool::s_pix_names[Trk::RIO_OnTrackErrorScalingTool::kNPixParamTypes]={
-    "PixPhi Barrel",
-    "PixEta Barrel",
-    "PixPhi IBL",
-    "PixEta IBL",
-    "PixPhi Endcap",
-    "PixEta Endcap",
-  };
-
-const int Trk::RIO_OnTrackErrorScalingTool::s_pix_idx[Trk::RIO_OnTrackErrorScalingTool::kNPixParamTypes]={
-    kPixBarrelPhi,
-    kPixBarrelEta,
-    kPixIBLPhi,
-    kPixIBLEta,
-    kPixEndcapPhi,
-    kPixEndcapEta};
-
-
-// constructor
-Trk::RIO_OnTrackErrorScalingTool::RIO_OnTrackErrorScalingTool(const std::string& t,
-            const std::string& n,
-            const IInterface* p)
-  :  AthAlgTool(t,n,p),
-     m_pixelID(nullptr),
-     m_do_pix(false),
-     m_do_sct(false),
-     m_do_trt(false),
-     m_do_mdt(false),
-     m_do_tgc(false),
-     m_do_rpc(false),
-     m_do_csc(false),
-     m_scaling_sct_barrel(std::vector<double>(0)),
-     m_scaling_sct_endcap(std::vector<double>(0)),
-     m_scaling_trt_barrel(std::vector<double>(0)),
-     m_scaling_trt_endcap(std::vector<double>(0)),
-     m_scaling_mdt_barrel(std::vector<double>(0)),
-     m_scaling_mdt_endcap(std::vector<double>(0)),
-     m_scaling_tgcPhi(std::vector<double>(0)),
-     m_scaling_tgcEta(std::vector<double>(0)),
-     m_scaling_rpcPhi(std::vector<double>(0)),
-     m_scaling_rpcEta(std::vector<double>(0)),
-     m_scaling_cscPhi(std::vector<double>(0)),
-     m_scaling_cscEta(std::vector<double>(0)),
-     m_override_database_id_errors(false),
-     m_doTRTScaling(true),
-     m_override_scale_inflation_pix_bar_x(10.),
-     m_override_scale_inflation_pix_bar_y(10.),
-     m_override_scale_inflation_pix_ecs_x(10.),
-     m_override_scale_inflation_pix_ecs_y(10.),
-     m_override_scale_inflation_sct_bar(10.),
-     m_override_scale_inflation_sct_ecs(10.),
-     m_override_scale_inflation_trt_bar(10.),
-     m_override_scale_inflation_trt_ecs(10.),
-     m_override_constant_term_pix_bar_x(0.0044),
-     m_override_constant_term_pix_bar_y(0.0312),
-     m_override_constant_term_pix_ecs_x(0.026),
-     m_override_constant_term_pix_ecs_y(0.0),
-     m_override_constant_term_sct_bar(0.0065),
-     m_override_constant_term_sct_ecs(0.0071),
-     m_override_constant_term_trt_bar(0.0),
-     m_override_constant_term_trt_ecs(0.0),
-     m_override_mu_term_trt_bar(0.0),
-     m_override_mu_term_trt_ecs(0.0),
-     m_IncidentSvc("IncidentSvc",n),
-     m_idFolder("/Indet/TrkErrorScaling"),
-     m_muonFolder("/MUON/TrkErrorScaling"),
-     m_readKey("EventInfo")
- {
-   declareInterface<IRIO_OnTrackErrorScalingTool>(this);
-   declareProperty("overrideDatabaseID",m_override_database_id_errors,"inflate ID errors by multiplicative scale factor, overriding any database values");
-   declareProperty("doTRTErrorScaling",m_doTRTScaling,"Turn off or on the TRT Error scaling");
-   declareProperty("overrideScalePix",m_override_scale_inflation_pix_bar_x,"factor to inflate pixel errors (barrel local x)");
-   declareProperty("overrideScalePixBarX",m_override_scale_inflation_pix_bar_x,"factor to inflate pixel errors (barrel local x)");
-   declareProperty("overrideScalePixBarY",m_override_scale_inflation_pix_bar_y,"factor to inflate pixel errors (barrel local y)");
-   declareProperty("overrideScalePixECsX",m_override_scale_inflation_pix_ecs_x,"factor to inflate pixel errors (endcaps local x)");
-   declareProperty("overrideScalePixECsY",m_override_scale_inflation_pix_ecs_y,"factor to inflate pixel errors (endcaps local y)");
-   declareProperty("overrideScaleSCT",m_override_scale_inflation_sct_bar,"factor to inflate SCT errors in the barrel");
-   declareProperty("overrideScaleSCTBar",m_override_scale_inflation_sct_bar,"factor to inflate SCT errors in the barrel");
-   declareProperty("overrideScaleSCTECs",m_override_scale_inflation_sct_ecs,"factor to inflate SCT errors in the end caps");
-   declareProperty("overrideScaleTRT",m_override_scale_inflation_trt_bar,"factor to inflate TRT errors");
-   declareProperty("overrideScaleTRTBar",m_override_scale_inflation_trt_bar,"factor to inflate TRT errors (barrel)");
-   declareProperty("overrideScaleTRTECs",m_override_scale_inflation_trt_ecs,"factor to inflate TRT errors (end caps)");
-   declareProperty("overrideConstantPixBarX",m_override_constant_term_pix_bar_x,"factor to change the constant term of pixel errors (barrel local x)");
-   declareProperty("overrideConstantPixBarY",m_override_constant_term_pix_bar_y,"factor to change the constant term of pixel errors (barrel local y)");
-   declareProperty("overrideConstantPixECsX",m_override_constant_term_pix_ecs_x,"factor to change the constant term of pixel errors (endcaps local x)");
-   declareProperty("overrideConstantPixECsY",m_override_constant_term_pix_ecs_y,"factor to change the constant term of pixel errors (endcaps local y)");
-   declareProperty("overrideConstantSCTBar",m_override_constant_term_sct_bar,"factor to change the constant term of SCT errors (barrel)");
-   declareProperty("overrideConstantSCTECs",m_override_constant_term_sct_ecs,"factor to change the constant term of SCT errors (end caops)");
-   declareProperty("overrideConstantTRTBar",m_override_constant_term_trt_bar,"factor to change the constant term of TRT errors (barrel)");
-   declareProperty("overrideConstantTRTECs",m_override_constant_term_trt_ecs,"factor to change the constant term of TRT errors (endcaps)");
-   declareProperty("overrideMuTRTBar",m_override_mu_term_trt_bar,"factor to change the mu dependent term of TRT errors (barrel)");
-   declareProperty("overrideMuTRTECs",m_override_mu_term_trt_ecs,"factor to change the mu dependent term of TRT errors (endcaps)");
-   declareProperty("IncidentService",m_IncidentSvc);
-   declareProperty("EventInfoKey",m_readKey);
-   m_scaling_pix.resize(kNPixParamTypes);
-
-   m_mu = 0;
-   m_hasBeenCalledThisEvent = false;
-}
-
-// destructor
-Trk::RIO_OnTrackErrorScalingTool::~RIO_OnTrackErrorScalingTool()
-{ }
-
-// initialise
-StatusCode Trk::RIO_OnTrackErrorScalingTool::initialize()
-{
-  if (StatusCode::SUCCESS!=AlgTool::initialize())
-    return StatusCode::FAILURE;
- 
-  CHECK(  detStore()->retrieve(m_pixelID, "PixelID") );
-
-  //Incident service (to check for MC/data and setup accordingly)
-  if ( m_IncidentSvc.retrieve().isFailure() ) {
-    ATH_MSG_FATAL( "Failed to retrieve service " << m_IncidentSvc );
-    return StatusCode::FAILURE;
-  } else 
-    ATH_MSG_DEBUG( "Retrieved service " << m_IncidentSvc);
-  
-  m_IncidentSvc->addListener( this, std::string("BeginEvent"));
-
-
-    
-  /* set up scaling factors for error matrices (use their **2 for cov)
-   */
-
-  assert( m_scaling_pix.size() == kNPixParamTypes );
-  // --- check scaling factors
-  
-  assert( kNPixParamTypes%2 == 0);
-  for (int i=0; i <kNPixParamTypes; ++i) {
-    registerParameters(m_do_pix, &(m_scaling_pix[ s_pix_idx[i] ]), s_pix_names[i] );
-  }
-                   
- 
-  ATH_MSG_INFO( "Apply TRT error scaling? " << m_doTRTScaling );
-
-  registerParameters(m_do_sct,
-                    &m_scaling_sct_barrel,"SCT Barrel");
-  registerParameters(m_do_sct,
-                    &m_scaling_sct_endcap,"SCT Endcap");
-
-  registerParameters(m_do_trt,
-                    &m_scaling_trt_barrel,"TRT Barrel");
-  registerParameters(m_do_trt,
-                    &m_scaling_trt_endcap,"TRT Endcap");
-
-  registerParameters(m_do_mdt,
-                    &m_scaling_mdt_barrel,"MDT Barrel");
-  registerParameters(m_do_mdt,
-                    &m_scaling_mdt_endcap,"MDT Endcap");
-
-  registerParameters(m_do_tgc,
-                    &m_scaling_tgcPhi,"TGC Phi");
-  registerParameters(m_do_tgc,
-                    &m_scaling_tgcEta,"TGC Eta");
-
-  registerParameters(m_do_rpc,
-                    &m_scaling_rpcPhi,"RPC Phi");
-  registerParameters(m_do_rpc,
-                    &m_scaling_rpcEta,"RPC Eta");
-
-  registerParameters(m_do_csc,
-                    &m_scaling_cscPhi,"CSC Phi");
-  registerParameters(m_do_csc,
-                    &m_scaling_cscEta,"CSC Eta");
-
-  // find and register callback function for ID
-  const DataHandle<CondAttrListCollection> colptr;
-  if (detStore()->contains<CondAttrListCollection>(m_idFolder)) {
-    if (StatusCode::SUCCESS!=detStore()->
-        regFcn(&Trk::RIO_OnTrackErrorScalingTool::callback,
-               this,colptr,m_idFolder)) {
-      msg(MSG::ERROR) << "Found the folder, but could not register a callback"
-          << " on " << m_idFolder << endmsg;
-      return StatusCode::FAILURE;
-    } else
-      msg(MSG::INFO) << "Registered callback on COOL folder " << m_idFolder << endmsg;
-  } else {
-    msg(MSG::INFO) << "Folder " << m_idFolder << " is not loaded, "
-          << "intrinsic meas't errors will be used for ID tracks." << endmsg;
-    m_do_pix = false;
-    m_do_sct = false;
-    m_do_trt = false;
-  }
-  if (m_override_database_id_errors) {
-    msg(MSG::INFO) << " ignoring COOL; forcing scaling of intrinsic measurment errors in ID." << endmsg;
-    m_do_pix = true;
-    m_do_sct = true;
-    m_do_trt = true;
-  }
-
-  // find and register callback function for Muons
-  if (detStore()->contains<CondAttrListCollection>(m_muonFolder)) {
-    if (StatusCode::SUCCESS!=detStore()->
-        regFcn(&Trk::RIO_OnTrackErrorScalingTool::callback,
-               this,colptr,m_muonFolder)) {
-      msg(MSG::ERROR) << "Found the folder, but could not register a callback"
-          << " on " << m_muonFolder << endmsg;
-      return StatusCode::FAILURE;
-    } else
-      msg(MSG::INFO) << "Registered callback on COOL folder " 
-         << m_muonFolder << endmsg;
-  } else {
-    msg(MSG::INFO) << "Folder " << m_muonFolder << " is not loaded, "
-       << "intrinsic meas't errors will be used for Muon RIOs_OnTrack." << endmsg;
-    m_do_mdt = false;
-    m_do_tgc = false;
-    m_do_rpc = false;
-    m_do_csc = false;
-  }
-  
-  ATH_CHECK( m_readKey.initialize() );
-
-  msg(MSG::INFO) << "initialize successful in " << name() << endmsg;
-  return StatusCode::SUCCESS;
-}
-
-MsgStream& Trk::RIO_OnTrackErrorScalingTool::dump( MsgStream& out ) const
-{
-  //--- need an sprintf here.
-  out << std::endl << name() << " has found the following factors and constants to scale errors:"  <<std::endl;
-  out << "| Detector System                factor   constant            |"           <<std::endl;
-  out << "+-------------------------------------------------------------+"           <<std::endl;
-
-  for (int i=0; i<kNPixParamTypes; ++i) {
-    out << makeInfoString(s_pix_names[i],m_do_pix,m_scaling_pix[ s_pix_idx[i] ]) <<std::endl;
-  }
-  out << makeInfoString("SCT barrel    ",m_do_sct,m_scaling_sct_barrel) <<std::endl;
-  out << makeInfoString("SCT barrel    ",m_do_sct,m_scaling_sct_barrel) <<std::endl;
-  out << makeInfoString("TRT barrel    ",m_do_trt,m_scaling_trt_barrel) <<std::endl;
-  out << makeInfoString("TRT endcap    ",m_do_trt,m_scaling_trt_endcap) <<std::endl;
-  out << makeInfoString("MDT barrel    ",m_do_mdt,m_scaling_mdt_barrel) <<std::endl;
-  out << makeInfoString("MDT endcap    ",m_do_mdt,m_scaling_mdt_endcap) <<std::endl;
-  out << makeInfoString("RPC Phi barrel",m_do_rpc,m_scaling_rpcPhi)     <<std::endl;
-  out << makeInfoString("RPC Eta barrel",m_do_rpc,m_scaling_rpcEta)     <<std::endl;
-  out << makeInfoString("TGC Phi endcap",m_do_tgc,m_scaling_tgcPhi)     <<std::endl;
-  out << makeInfoString("TGC Eta endcap",m_do_tgc,m_scaling_tgcEta)     <<std::endl;
-  out << makeInfoString("CSC Phi endcap",m_do_csc,m_scaling_cscPhi)     <<std::endl;
-  out << makeInfoString("CSC Eta endcap",m_do_csc,m_scaling_cscEta)     <<std::endl;
-  out << "+-------------------------------------------------------------+"           <<std::endl;
-  return out;
-}
-
-// handle BeginRun incidents------------------------------------------------
-void Trk::RIO_OnTrackErrorScalingTool::handle(const Incident& inc)
-{
-  if (inc.type() == "BeginEvent") {
-    m_hasBeenCalledThisEvent =  false;
-    m_mu=0;
-  }
-}
-
-
-const std::string Trk::RIO_OnTrackErrorScalingTool::makeInfoString 
-(const std::string& sdet, const bool do_detSystem,
- const std::vector<double>& errscaler) const {
-  
-  const int nformat=62;
-  std::string s1("| ");
-  s1.append(sdet);
-  if (do_detSystem && (errscaler.size()>0) ) {
-      s1.append(" - scaled by ");
-  } else {
-      s1.append(" - unscaled. ");
-  }
-  if (errscaler.size() < 2 && do_detSystem)
-    s1.append("WARNING, scaling active but empty vector of a,c values!");
-  if (errscaler.size() > 1) {
-    char s2[12];
-    snprintf(s2,sizeof(s2),"%6.3g ",errscaler[0]);s1.append(s2);
-    s1.append("* err (+) ");
-    snprintf(s2,sizeof(s2),"%6.3g ",errscaler[1]);s1.append(s2);
-  }
-
-  if (errscaler.size() > 2){
-    s1.append(" * (1 + mu *");
-    char s2[13];
-    snprintf(s2,sizeof(s2),"%6.3g ",errscaler[2]);s1.append(s2);
-    s1.append(")");
-  }
-
-  int n = nformat-s1.size();
-  for(int i=0; i<n; ++i) s1.append(" ");
-  s1.append("|");
-  return s1;
-}
-
-void Trk::RIO_OnTrackErrorScalingTool::registerParameters
-           (bool&         do_detSystem,
-            std::vector<double>* errscaler,
-            const std::string& sdet) {
-  // add this set of parameters to list, always set the parameters to be
-  // 'used' for now
-  do_detSystem=true;
-  m_parammap.insert(ParamMap::value_type(sdet,errscaler));
-  // set default parameters in case no info is read from condDB for this set
-  errscaler->clear();
-  errscaler->push_back(1.0);
-  errscaler->push_back(0.0);
-  errscaler->push_back(0.0);
-  //    do_detSystem = false;
-  //    if (errscaler[0] != 1.0) do_detSystem = true;
-  //    if (errscaler[1] != 0.0) do_detSystem = true;
-}
-
-
-//finalise
-StatusCode Trk::RIO_OnTrackErrorScalingTool::finalize()
-{
-  msg(MSG::INFO)  << "finalize() successful in " << name() << endmsg;
-  return StatusCode::SUCCESS;
-}
-
-void Trk::RIO_OnTrackErrorScalingTool::scale2by2
-(              Amg::MatrixX& cov, 
-               const std::vector<double>& phiTrafo,
-               const std::vector<double>& etaTrafo) const {
-  // careful not to change character of error
-  double corr = (fabs(cov(0,1)) > 1.0e-20)             ?
-    cov(0,1)/(cov(0,0)*cov(1,1)) :
-                0.0;
-  cov(0,0) *= phiTrafo[0]*phiTrafo[0];
-  cov(0,0) += phiTrafo[1]*phiTrafo[1];
-  cov(1,1) *= etaTrafo[0]*etaTrafo[0];
-  cov(1,1) += etaTrafo[1]*etaTrafo[1];
-  if (corr !=0.0) {
-    cov(0,1) = corr*cov(0,0)*cov(1,1);
-    cov(1,0) = cov(0,1);
-  }
-}
-
-Amg::MatrixX* 
-Trk::RIO_OnTrackErrorScalingTool::createScaledPixelCovariance
-  (const Amg::MatrixX& inputCov, const Identifier& id) const
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  assert( m_pixelID );
-
-  // from SiDetectorElement::isEndcap
-  bool is_endcap = !(m_pixelID->is_barrel(id) || m_pixelID->is_dbm(id));
-  unsigned int idx=kNPixParamTypes;
-  
-  if (is_endcap) {
-    idx=kPixEndcapPhi;
-  } else {
-
-    // from  PixelDigitizationTool::getReadoutTech
-    int barrel_ec = m_pixelID->barrel_ec(id);
-    bool is_ibl = abs(barrel_ec)==4 || m_pixelID->eta_module_max(id)>6;
-    if (is_ibl) {
-      idx = kPixIBLPhi;
-    }
-    else {
-      idx = kPixBarrelPhi;
-    }
-  }
-
-  assert( m_scaling_pix.size()>idx+1);
-  if (m_scaling_pix[idx].size()<2 ) {
-    assert( idx < kNPixParamTypes);
-
-    std::stringstream message;
-    message << "ERROR " << name() << " createScaledPixelCovariance : No error scaling factors for  "  << s_pix_names[idx] 
-            << " or " << s_pix_names[idx+1]
-            << ".";
-    delete newCov;
-    throw std::runtime_error( message.str() );
-  }
-
-  assert(   m_scaling_pix[idx].size()>1
-         && m_scaling_pix[idx+1].size()>1 );
-
-  scale2by2(*newCov,m_scaling_pix[idx] /* phi */ ,m_scaling_pix[idx+1] /* eta */);
-  if (msgLvl(MSG::VERBOSE)) {
-    msg(MSG::VERBOSE) << "changing original Pix-" << (idx==kPixEndcapPhi ? "EC " : (idx==kPixIBLPhi ? "IBL" : "BR " )) << " cov " << endmsg;
-    msg(MSG::VERBOSE) << inputCov << " to "<< *newCov
-                      <<" by:" << m_scaling_pix[idx][0]
-                      <<", " << m_scaling_pix[idx][1]
-                      <<" / "<< m_scaling_pix[idx+1][0]
-                      <<", " << m_scaling_pix[idx+1][1] << endmsg;
-  }
-
-  return newCov;
-}
-
-Amg::MatrixX* 
-Trk::RIO_OnTrackErrorScalingTool::createScaledSctCovariance
-(const Amg::MatrixX& inputCov, bool is_endcap,
-double sinLocalAngle) const
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  if (is_endcap && newCov->rows() > 1) {
-    double Sn      = sinLocalAngle; 
-    double Sn2     = Sn*Sn;
-    double Cs2     = (1.-Sn)*(1.+Sn);
-    double SC      = Sn*sqrt(Cs2);
-    double a       = m_scaling_sct_endcap[0];
-    double b       = m_scaling_sct_endcap[1];
-    double dV0     = (Cs2*(*newCov)(0,0)+Sn2*(*newCov)(1,1)
-                      +2.*SC*(*newCov)(1,0))*(a*a-1.) + b*b;
-    (*newCov)(0,0)+= (Cs2*dV0);
-    (*newCov)(1,0)+= (SC *dV0);
-    (*newCov)(0,1) = (*newCov)(1,0);
-    (*newCov)(1,1)+= (Sn2*dV0);
-  } else {
-    double a = (is_endcap) ? m_scaling_sct_endcap[0] : m_scaling_sct_barrel[0];
-    double b = (is_endcap) ? m_scaling_sct_endcap[1] : m_scaling_sct_barrel[1];
-    (*newCov)(0,0) *= a*a;
-    (*newCov)(0,0) += b*b;
-  }
-  return newCov;
-}
-
-Amg::MatrixX* 
-Trk::RIO_OnTrackErrorScalingTool::createScaledTrtCovariance
-  (const Amg::MatrixX& inputCov, bool is_endcap) const
-{
-  if(!m_hasBeenCalledThisEvent){
-    SG::ReadHandle< xAOD::EventInfo>  eventInfo (m_readKey);
-    if (!eventInfo.isValid()) {
-      ATH_MSG_ERROR("Cant retrieve EventInfo"); m_mu = 0;
-    } else {
-      m_mu = eventInfo->averageInteractionsPerCrossing();
-    }
-    m_hasBeenCalledThisEvent = true;
-  }
-
-
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  if (!m_doTRTScaling) 	return newCov;
-  double a = (is_endcap) ? m_scaling_trt_endcap[0] : m_scaling_trt_barrel[0];
-  double b = (is_endcap) ? m_scaling_trt_endcap[1] : m_scaling_trt_barrel[1];
-  double c = (is_endcap) ? m_scaling_trt_endcap[2] : m_scaling_trt_barrel[2];
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  (*newCov)(0,0) *= (1. + m_mu * c); 
-  return newCov;
-}
-
-Amg::MatrixX* 
-Trk::RIO_OnTrackErrorScalingTool::createScaledMdtCovariance
-  (const Amg::MatrixX& inputCov, bool is_endcap) const
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a = (is_endcap) ? m_scaling_mdt_endcap[0] : m_scaling_mdt_barrel[0];
-  double b = (is_endcap) ? m_scaling_mdt_endcap[1] : m_scaling_mdt_barrel[1];
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-Amg::MatrixX* 
-Trk::RIO_OnTrackErrorScalingTool::createScaledTgcCovariance
-(const Amg::MatrixX& inputCov,
- const Trk::ParamDefs measuredCoord) const // exists only as end-cap thing
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a,b = 0.0;
-  if (measuredCoord == Trk::distPhi) {
-    a = m_scaling_tgcPhi[0];
-    b = m_scaling_tgcPhi[1];
-  } else if (measuredCoord == Trk::distEta) {
-    a = m_scaling_tgcEta[0];
-    b = m_scaling_tgcEta[1];
-  } else {
-    delete newCov;
-    msg(MSG::WARNING) << "Wrong TGC measurement coordinate definition given to RIO_OnTrackErrorScalingTool." << endmsg;
-    msg(MSG::WARNING) << "Error scaling cancelled, cov=NULL." << endmsg;
-    msg(MSG::INFO) << "Allowed definitions: Trk::distPhi, Trk::distEta." << endmsg;
-    return 0;
-  }
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-Amg::MatrixX* 
-Trk::RIO_OnTrackErrorScalingTool::createScaledRpcCovariance
-(const Amg::MatrixX& inputCov,
- const Trk::ParamDefs measuredCoord ) const // exists only as barrel thing
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a,b = 0.0;
-  if (measuredCoord == Trk::distPhi) {
-    a = m_scaling_rpcPhi[0];
-    b = m_scaling_rpcPhi[1];
-  } else if (measuredCoord == Trk::distEta) {
-    a = m_scaling_rpcEta[0];
-    b = m_scaling_rpcEta[1];
-  } else {
-    delete newCov;
-    msg(MSG::WARNING) << "Wrong RPC measurement coordinate definition given to RIO_OnTrackErrorScalingTool." << endmsg;
-    msg(MSG::WARNING) << "Error scaling cancelled, cov=NULL." << endmsg;
-    msg(MSG::INFO) << "Allowed definitions: Trk::distPhi, Trk::distEta." << endmsg;
-    return 0;
-  }
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-Amg::MatrixX* 
-Trk::RIO_OnTrackErrorScalingTool::createScaledCscCovariance
-(const Amg::MatrixX& inputCov,
- const Trk::ParamDefs measuredCoord) const // is a far-fwd technology
-{
-  Amg::MatrixX* newCov = new Amg::MatrixX(inputCov);
-  double a,b = 0.0;
-  if (measuredCoord == Trk::distPhi) {
-    a = m_scaling_cscPhi[0];
-    b = m_scaling_cscPhi[1];
-  } else if (measuredCoord == Trk::distEta) {
-    a = m_scaling_cscEta[0];
-    b = m_scaling_cscEta[1];
-  } else {
-    delete newCov;
-    msg(MSG::WARNING) << "Wrong CSC measurement coordinate definition given to RIO_OnTrackErrorScalingTool." << endmsg;
-    msg(MSG::WARNING) << "Error scaling cancelled, cov=NULL." << endmsg;
-    msg(MSG::INFO) << "Allowed definitions: Trk::distPhi, Trk::distEta." << endmsg;
-    return 0;
-  }
-  (*newCov)(0,0) *= a*a;
-  (*newCov)(0,0) += b*b;
-  return newCov;
-}
-
-
-StatusCode Trk::RIO_OnTrackErrorScalingTool::callback( 
-            IOVSVC_CALLBACK_ARGS_P(I,keys) ) {
-  (void) I;
-
-  // callback function when the conditions data object changes
-  // loop over all the keys, action for the one we are interested in
-  for (std::list<std::string>::const_iterator itr=keys.begin();itr!=keys.end();
-       ++itr) {
-    if (*itr==m_idFolder || *itr==m_muonFolder) {
-      ATH_MSG_DEBUG ("Callback function invoked! (Folder: " << *itr << ")");
-      const CondAttrListCollection* atrlistcol=0;
-      if (StatusCode::SUCCESS==detStore()->retrieve(atrlistcol,*itr)) {
-        // loop through elements of the attribute list collection
-        for (CondAttrListCollection::const_iterator citr=atrlistcol->begin();
-             citr!=atrlistcol->end();++citr) {
-          // attribute list format is name(string), n(int) followed by n double
-          const coral::AttributeList& alist=citr->second;
-          try {
-            const std::string& name=alist[0].data<std::string>();
-            const int nvals=alist[1].data<int>();
-            // locate pointer to parameters vector, based on name
-            // note that names unknown to the service are ignored
-            ParamMap::const_iterator loc=m_parammap.find(name);
-            if (loc!=m_parammap.end()) {
-              std::vector<double>* params=loc->second;
-              ATH_MSG_DEBUG ("Setting " << nvals << " parameters for " << name << " at location " << params);
-              params->clear();
-              for (int i=0;i<nvals;++i){
-                ATH_MSG_VERBOSE("Parameter " << i << " = " << alist[2+i].data<double>() );
-                params->push_back(alist[2+i].data<double>());
-              }
-            } else {
-              ATH_MSG_DEBUG ("Ignored unexpected parameter" << name);
-            }
-          }
-          // catch problems with the attributelist accesses
-          catch (coral::Exception& e) {
-            msg(MSG::ERROR) << "Problem with AttributeList decoding: " << e.what() << endmsg;
-            return StatusCode::FAILURE;
-          }
-        }
-      } else {
-        msg(MSG::ERROR) << "Problem reading conditions object " << *itr << endmsg;
-        return StatusCode::FAILURE;
-      }
-    }
-  }
-
-  for (int i=0; i < kNPixParamTypes-1; i+=2 ) {
-    bool has_eta_scaling=(m_scaling_pix[i+1].size()>0);
-    bool has_phi_scaling=(m_scaling_pix[i].size()>0);
-    if (has_eta_scaling != has_phi_scaling) {
-      ATH_MSG_ERROR( "Missing pixel scaling factors for " 
-                     << s_pix_names[i] << "[" << m_scaling_pix[i].size() << " params]"
-                     << " or " << s_pix_names[i+1]  << "[" << m_scaling_pix[i+1].size() << " params]"
-                     << ".");
-      return StatusCode::FAILURE;
-    }
-  }
-
-  // if requested, scale up the ID errors by the values in job options
-  if (m_override_database_id_errors) {
-    msg(MSG::WARNING) << "WARNING overriding database error scaling parameters with values specified by job options; see "
-                      << __FILE__ << " at line " << __LINE__ << endmsg;
-    m_do_pix = true;
-    m_do_sct = true;
-    m_do_trt = true;
-    std::vector<double> scale(3,0);
-
-    // pixel barrel 
-    // local x (phi -> old convetion)
-    scale[0] = m_override_scale_inflation_pix_bar_x;
-    scale[1] = m_override_constant_term_pix_bar_x; // 0.0044;
-    m_scaling_pix[kPixBarrelPhi] = scale;
-    m_scaling_pix[kPixIBLPhi] = scale;
-
-    // local y (eta -> old convention)
-    scale[0] = m_override_scale_inflation_pix_bar_y;
-    scale[1] = m_override_constant_term_pix_bar_y; // 0.0312;
-    m_scaling_pix[kPixBarrelEta] = scale;
-    m_scaling_pix[kPixIBLEta] = scale;
-
-    // pixel end caps
-    // local x (phi -> old convetion)
-    scale[0] = m_override_scale_inflation_pix_bar_x;
-    scale[1] = m_override_constant_term_pix_ecs_x; // 0.0026;
-    m_scaling_pix[kPixEndcapPhi] = scale;
-
-    // local y (eta -> old convention)
-    scale[0] = m_override_scale_inflation_pix_bar_y;
-    scale[1] = m_override_constant_term_pix_ecs_y; // 0.;
-    m_scaling_pix[kPixEndcapEta] = scale;
-
-    // sct barrel
-    scale[0] = m_override_scale_inflation_sct_bar;
-    scale[1] = m_override_constant_term_sct_bar; // 0.0065
-    m_scaling_sct_barrel = scale;
-
-    // sct end caps
-    scale[0] = m_override_scale_inflation_sct_ecs;
-    scale[1] = m_override_constant_term_sct_ecs; // 0.0071;
-    m_scaling_sct_endcap = scale;
-
-    // trt barrel
-    scale[0] = m_override_scale_inflation_trt_bar;
-    scale[1] = m_override_constant_term_trt_bar; // 0.;
-    scale[2] = m_override_mu_term_trt_bar;
-    m_scaling_trt_barrel = scale;
-
-    // trt end caps
-    scale[0] = m_override_scale_inflation_trt_ecs;
-    scale[1] = m_override_constant_term_trt_ecs; // 0.;
-    scale[2] = m_override_mu_term_trt_ecs;
-    m_scaling_trt_endcap = scale;
-  }
-
-  // printout new constants if in debug print mode
-  ATH_MSG_DEBUG ( (*this) );
-  return StatusCode::SUCCESS;
-}
diff --git a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/components/TrkRIO_OnTrackCreator_entries.cxx b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/components/TrkRIO_OnTrackCreator_entries.cxx
index 13489d4ded190c6756112aec00aa8d543bb8bd9b..4872454b349412f177d7993c42eb51e9183c3f05 100644
--- a/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/components/TrkRIO_OnTrackCreator_entries.cxx
+++ b/Tracking/TrkTools/TrkRIO_OnTrackCreator/src/components/TrkRIO_OnTrackCreator_entries.cxx
@@ -1,6 +1,8 @@
 #include "TrkRIO_OnTrackCreator/RIO_OnTrackCreator.h"
-#include "TrkRIO_OnTrackCreator/RIO_OnTrackErrorScalingTool.h"
+#include "../RIO_OnTrackErrorScalingCondAlg.h"
+#include "../RIO_OnTrackErrorScalingDbOverrideCondAlg.h"
 
 DECLARE_COMPONENT( Trk::RIO_OnTrackCreator )
-DECLARE_COMPONENT( Trk::RIO_OnTrackErrorScalingTool )
+DECLARE_COMPONENT( RIO_OnTrackErrorScalingCondAlg )
+DECLARE_COMPONENT( RIO_OnTrackErrorScalingDbOverrideCondAlg )
 
diff --git a/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h b/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h
deleted file mode 100755
index 9ce055c01bbea3a35115864b2f258469e572b3e8..0000000000000000000000000000000000000000
--- a/Tracking/TrkTools/TrkToolInterfaces/TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// IRIO_OnTrackErrorScalingTool.h
-//   Header file for interface class IRIO_OnTrackErrorScalingTool
-///////////////////////////////////////////////////////////////////
-// (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-// Wolfgang.Liebig@cern.ch
-///////////////////////////////////////////////////////////////////
-
-#ifndef TRKTOOLIFS_IRIO_ONTRACKERRORSCALINGTOOL_H
-#define TRKTOOLIFS_IRIO_ONTRACKERRORSCALINGTOOL_H
-
-#include "GaudiKernel/IAlgTool.h"
-#include "TrkEventPrimitives/ParamDefs.h"
-#include "EventPrimitives/EventPrimitives.h"
-class Identifier;
-
-namespace Trk {
-  class CovarianceMatrix;
-  static const InterfaceID IID_IRIO_OnTrackErrorScalingTool
-    ("IRIO_OnTrackErrorScalingTool",1,0);
-
-  /** @class IRIO_OnTrackErrorScalingTool
-      @brief Interface for the ErrorScalingTool, which applies a linear tuning
-      function to measurement errors.
-
-      This tuning is applied centrally within the creation
-      of RIO_OnTrack from PrepRawData. Execution of this central
-      infrastructure, however, depends on the sub-detector specific ROT
-      creators making an explicit call to the scaling tool.
-
-      @author Wolfgang Liebig <http://consult.cern.ch/xwho/people/54608>
-  */
-  class IRIO_OnTrackErrorScalingTool : virtual public IAlgTool {
-
-  public:
-    virtual ~IRIO_OnTrackErrorScalingTool() {}
-    static const InterfaceID& interfaceID() //!< AlgTool standard interface
-    { return IID_IRIO_OnTrackErrorScalingTool; }
-    /* The AtlasDetectorID helper does not have an is_endcap method.
-       therefore follow a different approach than this one:
-      virtual const void
-          scaleError(Amg::MatrixX&, const Identifier&) =0;
-    */
-    /** The following needToScaleXY methods detect from the job options
-     *  if an error scaling will be needed or not.
-     */
-    virtual bool needToScalePixel() const=0;
-    virtual bool needToScaleSct()   const=0;
-    virtual bool needToScaleTrt()   const=0;
-    virtual bool needToScaleMdt()   const=0;
-    virtual bool needToScaleTgc()   const=0;
-    virtual bool needToScaleRpc()   const=0;
-    virtual bool needToScaleCsc()   const=0;
-
-    /** Scale Pixel Amg::MatrixX by returning a new Amg::MatrixX
-        object with scaled values. Measurement errors in local x and y
-        are scaled with independent parameters.
-     */
-    virtual Amg::MatrixX* 
-      createScaledPixelCovariance(const Amg::MatrixX&,
-                                  const Identifier& id) const=0;
-    /** Scale SCT Amg::MatrixX by returning a new Amg::MatrixX
-        object with scaled values. Measurement errors in the
-        strip-transverse plane are scaled, involving a rotation by
-        the local stereo angle for the endcap modules.
-    */
-    virtual Amg::MatrixX*
-      createScaledSctCovariance(const Amg::MatrixX&,
-                                bool is_endcap,
-                                double sinLocalAngle) const=0;
-    /** Scale TRT Amg::MatrixX by returning a new Amg::MatrixX
-        object with scaled error. */
-    virtual Amg::MatrixX*
-      createScaledTrtCovariance(const Amg::MatrixX&,
-                                bool is_endcap) const=0;
-    /** Scale MDT Amg::MatrixX by returning a new Amg::MatrixX
-        object with scaled error. barrel and endcap MDTs are distinguished.
-    */
-    virtual Amg::MatrixX*
-      createScaledMdtCovariance(const Amg::MatrixX&,
-                                bool is_endcap) const=0;
-    /** Scale TGC Amg::MatrixX by returning a new Amg::MatrixX
-        object with scaled error. Since TGC phi and eta hits are
-        described by different 1D measurements and possibly need
-        different scaling, the information if it is a Trk::distPhi
-        or Trk::distEta measurement is passed as parameter.
-    */
-    virtual Amg::MatrixX*
-      createScaledTgcCovariance(const Amg::MatrixX&,
-                                const ParamDefs=Trk::distPhi) const=0;
-    /** Scale RPC Amg::MatrixX by returning a new Amg::MatrixX
-        object with scaled error. Since RPC phi and eta hits are
-        described by different 1D measurements and possibly need
-        different scaling, the information if it is a Trk::distPhi
-        or Trk::distEta measurement is passed as parameter.
-    */
-    virtual Amg::MatrixX*
-      createScaledRpcCovariance(const Amg::MatrixX&,
-                                const ParamDefs=Trk::distPhi) const=0;
-    /** Scale CSC Amg::MatrixX by returning a new Amg::MatrixX
-        object with scaled error. Since CSC phi and eta hits are
-        described by different 1D measurements and possibly need
-        different scaling, the information if it is a Trk::distPhi
-        or Trk::distEta measurement is passed as parameter.
-    */
-    virtual Amg::MatrixX*
-      createScaledCscCovariance(const Amg::MatrixX&,
-                                const ParamDefs=Trk::distPhi) const=0;
-  };
-}
-#endif
diff --git a/Tracking/TrkTools/TrkTruthToTrack/TrkTruthToTrack/TruthToTrack.h b/Tracking/TrkTools/TrkTruthToTrack/TrkTruthToTrack/TruthToTrack.h
index abaa4a3f6998a0a4da20371a56f4c50622ffe4ca..8c6e2c779598c2672f740ebc61b501aebdad4fa7 100755
--- a/Tracking/TrkTools/TrkTruthToTrack/TrkTruthToTrack/TruthToTrack.h
+++ b/Tracking/TrkTools/TrkTruthToTrack/TrkTruthToTrack/TruthToTrack.h
@@ -23,9 +23,9 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "TrkToolInterfaces/ITruthToTrack.h"
 #include "AthenaBaseComps/AthAlgTool.h"
+#include "TrkExInterfaces/IExtrapolator.h"
 
 namespace HepPDT { class ParticleDataTable; }
-namespace Trk { class IExtrapolator; }
 
 namespace Trk {
   
diff --git a/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/PRD_TruthTrajectoryBuilder.h b/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/PRD_TruthTrajectoryBuilder.h
index 49ddf7258310960870181bc4f634a0ba12838cf7..f5e5e2bbb001b5df3248f16a0974fcbc36aabfd5 100644
--- a/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/PRD_TruthTrajectoryBuilder.h
+++ b/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/PRD_TruthTrajectoryBuilder.h
@@ -16,6 +16,8 @@
 #include "TrkTruthTrackInterfaces/IPRD_TruthTrajectoryBuilder.h"
 #include "TrkTruthTrackInterfaces/PRD_TruthTrajectory.h"
 #include "TrkTruthData/PRD_MultiTruthCollection.h"
+#include "TrkTruthTrackInterfaces/IPRD_TruthTrajectoryManipulator.h"
+#include "TrkToolInterfaces/IPRD_Provider.h"
 
 class AtlasDetectorID;
 
@@ -25,8 +27,6 @@ namespace HepMC {
   
 namespace Trk {
     
-  class IPRD_Provider;
-  class IPRD_TruthTrajectoryManipulator;
   class PrepRawData;
     
   /**
diff --git a/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.h b/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.h
index ca8233b237b3fa0a131f7ae9b14e83a85291daeb..360e02614016fab2237ebe95e0316e342f550bd5 100644
--- a/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.h
+++ b/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.h
@@ -13,10 +13,13 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/IIncidentListener.h"
+#include "GaudiKernel/IPartPropSvc.h"
 // Trk includes
 #include "TrkTruthTrackInterfaces/ITruthTrackBuilder.h"
+#include "TrkFitterInterfaces/ITrackFitter.h"
+#include "TrkExInterfaces/IExtrapolator.h"
+#include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
 
-class IPartPropSvc;
 class AtlasDetectorID;
 
 namespace HepPDT{
@@ -26,9 +29,6 @@ namespace HepPDT{
 namespace Trk {
  
   class Track;
-  class ITrackFitter;
-  class IExtrapolator;
-  class IRIO_OnTrackCreator;
    
   /**
    @class ITruthTrackBuilder
diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h
index e5ef3b006600af50b05767aa640d1a735931bb91..a884a8bc72350c278555323a9d2b141c9637c928 100644
--- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h
+++ b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.h
@@ -26,8 +26,8 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ITHistSvc.h"
 #include "IRegionSelector/RegSelEnums.h"
+#include "IRegionSelector/IRegSelSvc.h"
 
-class IRegSelSvc;
 class MsgStream;
 class PartialEventBuildingInfo;
 class TH1I;
diff --git a/Trigger/TrigAlgorithms/TrigL2MissingET/TrigL2MissingET/T2CaloMissingET.h b/Trigger/TrigAlgorithms/TrigL2MissingET/TrigL2MissingET/T2CaloMissingET.h
index 15aba05303710694ce1dfcb56f2895a4ab379f29..2eda10f02fa253a023dfd0ca8114337340eb7019 100755
--- a/Trigger/TrigAlgorithms/TrigL2MissingET/TrigL2MissingET/T2CaloMissingET.h
+++ b/Trigger/TrigAlgorithms/TrigL2MissingET/TrigL2MissingET/T2CaloMissingET.h
@@ -29,12 +29,13 @@
 #include "LArIdentifier/LArOnlineID.h"
 #include "LArIdentifier/LArReadoutModuleService.h"
 #include "CaloIdentifier/CaloCell_ID.h"
+#include "TrigT2CaloCommon/ITrigDataAccess.h"
+#include "TrigTimeAlgs/ITrigTimerSvc.h"
 
 #include "xAODTrigMissingET/TrigMissingET.h"
 
 #include <vector>
 
-class ITrigDataAccess;
 class MsgStream;
 class TrigTimerSvc;
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/AlignmentBarrelLUTSvc.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/AlignmentBarrelLUTSvc.h
index 1c5d7e2c978dfe5b4481dffef2b3da165c694d23..1ccb00de4d4080e439337854a770f325fa97b933 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/AlignmentBarrelLUTSvc.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/AlignmentBarrelLUTSvc.h
@@ -35,7 +35,8 @@ namespace TrigL2MuonSA {
     virtual StatusCode finalize(void);
 
   private:
-    StringProperty m_lut_fileName;
+    Gaudi::Property< std::string > m_lut_fileName {
+	this, "LUTfile", "dZ_barrel.lut", ""};
 
     ToolHandle<AlignmentBarrelLUT>   m_alignmentBarrelLUT;
     
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscDataPreparator.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscDataPreparator.h
index 54d383eb0bf01e29550d02a6fce94139f0b57481..809bdd4662e3541708f27a7d3cb39ffe91fd3d3e 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscDataPreparator.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscDataPreparator.h
@@ -86,18 +86,22 @@ namespace TrigL2MuonSA {
     ServiceHandle<StoreGateSvc>    m_storeGateSvc;
     
     // Cache the ActiveStoreSvc ptr
-    ActiveStoreSvc* p_ActiveStore;
+    ServiceHandle<ActiveStoreSvc> m_activeStore;
 
     // Geometry Services
     const MuonGM::MuonDetectorManager* m_muonMgr;
     const CscIdHelper* m_cscIdHelper;
 
     // Region Selector
-    IRegSelSvc*          m_regionSelector;
+    ServiceHandle<IRegSelSvc>  m_regionSelector;
     
     // CSC PrepDataProvider
     ToolHandle<Muon::IMuonRdoToPrepDataTool> m_cscPrepDataProvider;
-    ToolHandle<ICscClusterBuilder>           m_cscClusterProvider;
+    //ToolHandle<Muon::IMuonRdoToPrepDataTool> m_cscPrepDataProvider {
+    //  	this, "CscPrepDataProvider", "Muon::CscRdoToCscPrepDataTool/CscPrepDataProviderTool", ""};
+    ToolHandle<ICscClusterBuilder> m_cscClusterProvider;
+    //ToolHandle<ICscClusterBuilder> m_cscClusterProvider {
+    //  	this, "CscClusterProvider", "CscThresholdClusterBuilderTool", ""};
 
     SG::ReadHandleKey<Muon::CscPrepDataContainer> m_cscPrepContainerKey{
 	this, "CSCPrepDataContainer", "CSC_Clusters", "Name of the CSCContainer to read in"};
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscRegUtils.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscRegUtils.h
index f1e9d40dce78eef3eef28b17009708a1ee4a203b..5181c723a4259958fbcef6b38722350cb86750d2 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscRegUtils.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscRegUtils.h
@@ -67,7 +67,7 @@ class CscRegDict: public AthAlgTool{
   int stationPhi(int hash);
   
  private:
-  BooleanProperty  m_isMC;
+  Gaudi::Property< bool >  m_isMC { this, "MCFlag", true, "" };
   CscRegion m_reg_dict[32];//dictionary of CSC regions
   int m_module_hashes[2][2][8];//dictionary of hashIds
   
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscSegmentMaker.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscSegmentMaker.h
index 07ea4e739a1ae4b7da5a02c199374574f7b93303..311acf923393aea42945a0c455e8e246c9bfeada 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscSegmentMaker.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscSegmentMaker.h
@@ -103,20 +103,28 @@ class CscSegment;
  private:
   IntegerProperty m_msglevel;
   UtilTools *m_util;
-  ToolHandle<CscRegDict> m_cscregdict;
+  ToolHandle<CscRegDict> m_cscregdict {
+	this, "CscRegDict", "TrigL2MuonSA::CscRegDict", ""};
 #ifndef XAOD_ANALYSIS
   const MuonGM::MuonDetectorManager *m_muonMgr;
 #endif
   
   
   //properties                                                                                                                                                             
-  BooleanProperty m_use_geometry;
-  DoubleProperty m_max_chisquare;
-  DoubleProperty m_max_residual_eta;
-  DoubleProperty m_max_residual_phi;
-  DoubleProperty m_err_eta;
-  DoubleProperty m_err_phi;
-  DoubleProperty m_err_ip;
+  Gaudi::Property< bool > m_use_geometry {
+	this, "UseGeometry", false, ""};
+  Gaudi::Property< double > m_max_chisquare {
+	this, "max_chisquare", 25., ""};
+  Gaudi::Property< double > m_max_residual_eta {
+	this, "max_residual_eta", 100., ""};
+  Gaudi::Property< double > m_max_residual_phi {
+	this, "max_residual_phi", 250., ""};
+  Gaudi::Property< double > m_err_eta {
+	this, "err_eta", 3., ""};
+  Gaudi::Property< double > m_err_phi {
+	this, "err_phi", 6., ""};
+  Gaudi::Property< double > m_err_ip {
+	this, "err_ip", 250., ""};
   
   
 };
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MdtDataPreparator.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MdtDataPreparator.h
index 46e34ffb35da66c93cefc247fdb49cfcbc877c2d..82aebda0bb4f24f0112a5a21316d9f2a57ed53f9 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MdtDataPreparator.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MdtDataPreparator.h
@@ -10,7 +10,8 @@
 
 #include "MuonCnvToolInterfaces/IMuonRdoToPrepDataTool.h"
 #include "MuonCnvToolInterfaces/IMuonRawDataProviderTool.h"
-#include "ByteStreamCnvSvcBase/ROBDataProviderSvc.h"
+//#include "ByteStreamCnvSvcBase/ROBDataProviderSvc.h"
+#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h" //added
 #include "TrigT1Interfaces/RecMuonRoI.h"
 #include "RegionSelector/IRegSelSvc.h"
 #include "Identifier/IdentifierHash.h"
@@ -123,13 +124,15 @@ namespace TrigL2MuonSA {
 
     // Reference to StoreGateSvc;
     ServiceHandle<StoreGateSvc>    m_storeGateSvc;
-    ActiveStoreSvc* m_activeStore;
+    ServiceHandle<ActiveStoreSvc> m_activeStore;
     
     // Tools for the Raw data conversion
     ToolHandle<Muon::IMuonRawDataProviderTool>  m_mdtRawDataProvider;
+    //ToolHandle<Muon::IMuonRawDataProviderTool>  m_mdtRawDataProvider {
+    // 	this, "MDT_RawDataProvider", "Muon::MDT_RawDataProviderTool", "MDTRawDataProviderTool"};
     
     // Cabling
-    MuonMDT_CablingSvc* m_mdtCabling;
+    ServiceHandle<MuonMDT_CablingSvc> m_mdtCabling;
     
     // Geometry Services
     const MuonGM::MuonDetectorManager* m_muonMgr;
@@ -139,10 +142,10 @@ namespace TrigL2MuonSA {
     IdentifierHash m_hash_id;
     
     // Region Selector
-    IRegSelSvc*          m_regionSelector;
+    ServiceHandle<IRegSelSvc> m_regionSelector;
     
     // ROB DataProvider
-    ROBDataProviderSvc*  m_robDataProvider;
+    ServiceHandle<IROBDataProviderSvc>  m_robDataProvider;
     
     // Utils
     TrigL2MuonSA::RecMuonRoIUtils m_recMuonRoIUtils;
@@ -152,6 +155,8 @@ namespace TrigL2MuonSA {
 
     // handles to data access
     ToolHandle<Muon::IMuonRdoToPrepDataTool> m_mdtPrepDataProvider;
+    //ToolHandle<Muon::IMuonRdoToPrepDataTool> m_mdtPrepDataProvider {
+    // 	this, "MdtPrepDataProvider", "Muon::MdtRdoToPrepDataTool/MdtPrepDataProviderTool", "MdtPrepDataProviderTool"};
 
     SG::ReadHandleKey<MdtCsmContainer> m_mdtCsmContainerKey{
 	this, "MDTCSMContainer", "MDTCSM", "Name of the MDTRDO to read in"};
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuCalStreamerTool.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuCalStreamerTool.h
index 3219c96231bc20724d1df2bc54b6336e313a078c..3e8f5a831936560e8f366887927c5b88d34e6945 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuCalStreamerTool.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuCalStreamerTool.h
@@ -104,7 +104,8 @@ namespace TrigL2MuonSA {
 
   private:
 
-    BooleanProperty m_writeToFile;
+    Gaudi::Property< bool > m_writeToFile {
+	this, "WriteToFile", false, ""};
 
     // name of the calibration buffer or of the 
     // output file
@@ -118,7 +119,7 @@ namespace TrigL2MuonSA {
     ServiceHandle<StoreGateSvc>    m_storeGate;
 
     // the region selector
-    IRegSelSvc*  m_regionSelector;
+    ServiceHandle<IRegSelSvc>  m_regionSelector;
       
     // RPC cabling service
     const IRPCcablingSvc* m_rpcCabling;
@@ -129,7 +130,7 @@ namespace TrigL2MuonSA {
     //    const TGCCablingBase* m_tgcCablingSvc;
 
     // ROB DataProvider
-    ROBDataProviderSvc* m_robDataProvider;
+    ServiceHandle<IROBDataProviderSvc> m_robDataProvider;
 
     // id of the circular buffer
     int m_cid;
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastDataPreparator.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastDataPreparator.h
index 4393399ab767bf50ee52dfbe5219bff409c39021..f98708ac17d615295c3639bd291122caa813dc85 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastDataPreparator.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastDataPreparator.h
@@ -100,19 +100,20 @@ class MuFastDataPreparator: public AthAlgTool
  protected:
   
   // Services
-  ServiceHandle<LVL1RPC::RPCRecRoiSvc> m_recRPCRoiSvc;
+  //ServiceHandle<LVL1RPC::RPCRecRoiSvc> m_recRPCRoiSvc;
+  ServiceHandle<LVL1RPC::RPCRecRoiSvc> m_recRPCRoiSvc {
+  	this, "RPCRecRoiSvc", "LVL1RPC::RPCRecRoiSvc", "Reconstruction of RPC RoI"};
 
  private:
   
   TrigL2MuonSA::MuFastDataPreparatorOptions m_options;
 
-  IRegSelSvc*        m_regionSelector;
+  ServiceHandle<IRegSelSvc> m_regionSelector;
   const MdtIdHelper* m_mdtIdHelper;
   
  private:
   
-  const TrigL2MuonSA::PtEndcapLUTSvc*    m_ptEndcapLUTSvc;
-  //ServiceHandle<PtEndcapLUTSvc>    m_ptEndcapLUTSvc;
+  //const TrigL2MuonSA::PtEndcapLUTSvc*    m_ptEndcapLUTSvc;
 
   // Tools
   ToolHandle<RpcDataPreparator>  m_rpcDataPreparator;
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastPatternFinder.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastPatternFinder.h
index 8f0bb002cb1f5f35c7504b6468e2bd85f951f2e1..4d8276b59eb62129b94d2258c385afdfd6817130 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastPatternFinder.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastPatternFinder.h
@@ -68,7 +68,7 @@ class MuFastPatternFinder: public AthAlgTool
 
    private:
       // MDT calibration service
-      MdtCalibrationSvc*     m_mdtCalibrationSvc;
+      ServiceHandle<MdtCalibrationSvc> m_mdtCalibrationSvc;
 
       // Id helper
       const MdtIdHelper* m_mdtIdHelper;
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastStationFitter.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastStationFitter.h
index b2935a6de971b46c4682773e8f1cf05fb83e9c75..3f26145db793a27aa9b6c8c1dfdf333ccec34974 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastStationFitter.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastStationFitter.h
@@ -64,27 +64,43 @@ class MuFastStationFitter: public AthAlgTool
 
       BooleanProperty m_use_mcLUT;
 		
-      DoubleProperty m_endcapinn_mdt_chi2_limit;    
-      DoubleProperty m_endcapmid_mdt_chi2_limit;   
-      DoubleProperty m_endcapout_mdt_chi2_limit;   
-      DoubleProperty m_endcapee_mdt_chi2_limit;    
-
-      DoubleProperty m_rwidth_Endcapinn_first;  
-      DoubleProperty m_rwidth_Endcapinn_second;  
-      DoubleProperty m_rwidth_Endcapmid_first; 
-      DoubleProperty m_rwidth_Endcapmid_second; 
-      DoubleProperty m_rwidth_Endcapout_first ; 
-      DoubleProperty m_rwidth_Endcapout_second; 
-      DoubleProperty m_rwidth_Endcapee_first;   
-      DoubleProperty m_rwidth_Endcapee_second;  
-
-      DoubleProperty m_mdt_driftspace_uplimit;
-      DoubleProperty m_mdt_driftspace_downlimit;
-      DoubleProperty m_mdt_drifttime_limit;
-
-      ToolHandle<ITrigMuonBackExtrapolator> m_backExtrapolator;
-
- private:
+      Gaudi::Property< double > m_endcapinn_mdt_chi2_limit {
+	this, "ENDCAPINN_MDT_CHI2_LIMIT", 20., ""};    
+      Gaudi::Property< double > m_endcapmid_mdt_chi2_limit {
+	this, "ENDCAPMID_MDT_CHI2_LIMIT", 20., ""};   
+      Gaudi::Property< double > m_endcapout_mdt_chi2_limit {
+	this, "ENDCAPOUT_MDT_CHI2_LIMIT", 20., ""};   
+      Gaudi::Property< double > m_endcapee_mdt_chi2_limit {
+	this, "ENDCAPEE_MDT_CHI2_LIMIT",  20., ""};    
+
+      Gaudi::Property< double > m_rwidth_Endcapinn_first {
+	this, "RWIDTH_EndcapINN_FIRST",  150., ""};  
+      Gaudi::Property< double > m_rwidth_Endcapinn_second {
+	this, "RWIDTH_EndcapINN_SECOND", 80., ""};  
+      Gaudi::Property< double > m_rwidth_Endcapmid_first {
+	this, "RWIDTH_EndcapMID_FIRST", 150., ""}; 
+      Gaudi::Property< double > m_rwidth_Endcapmid_second {
+	this, "RWIDTH_EndcapMID_SECOND", 100., ""}; 
+      Gaudi::Property< double > m_rwidth_Endcapout_first {
+	this, "RWIDTH_EndcapOUT_FIRST", 120., ""}; 
+      Gaudi::Property< double > m_rwidth_Endcapout_second {
+	this, "RWIDTH_EndcapOUT_SECOND", 60., ""}; 
+      Gaudi::Property< double > m_rwidth_Endcapee_first {
+	this, "RWIDTH_EndcapEE_FIRST", 150., ""};   
+      Gaudi::Property< double > m_rwidth_Endcapee_second {
+	this, "RWIDTH_EndcapEE_SECOND", 100., ""};  
+
+      Gaudi::Property< double > m_mdt_driftspace_uplimit {
+	this, "MDT_DRFITSPACE_UPLIMIT", 14.8, ""};
+      Gaudi::Property< double > m_mdt_driftspace_downlimit {
+	this, "MDT_DRFITSPACE_DOWNLIMIT", 0.1, ""};
+      Gaudi::Property< double > m_mdt_drifttime_limit {
+	this, "MDT_DRFITTIME_LIMIT", 1700., ""};
+
+      ToolHandle<ITrigMuonBackExtrapolator> m_backExtrapolator {
+	this, "BackExtrapolator", "TrigMuonBackExtrapolator", "public tool for back extrapolating the muon tracks to the IV"};
+
+   private:
       float SetDriftSpace(float tdr, float rad, float zeta, float phim, float phiDir);
       void  Xline(float *, float *, float *, int *, int ,
                   float *, float *, float *, float *, float *, float *);
@@ -96,8 +112,9 @@ class MuFastStationFitter: public AthAlgTool
 
       StringProperty                         m_lut_fileName;
       ToolHandle<AlphaBetaEstimate>          m_alphaBetaEstimate;
-      ToolHandle<PtFromAlphaBeta>            m_ptFromAlphaBeta;
-      const TrigL2MuonSA::PtEndcapLUTSvc*    m_ptEndcapLUTSvc;
+      ToolHandle<PtFromAlphaBeta>            m_ptFromAlphaBeta {
+	this, "PtFromAlphaBeta", "TrigL2MuonSA::PtFromAlphaBeta", ""};
+      //const TrigL2MuonSA::PtEndcapLUTSvc*    m_ptEndcapLUTSvc;
 
       void findLayerCombination(std::vector<unsigned int> &a, int n, int r,std::vector<std::vector<unsigned int> > &c, int &nr);
       void findSubLayerCombination(std::vector<unsigned int> &a, int n,int r, std::vector<unsigned int> &b, int index ,int num,
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastTrackFitter.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastTrackFitter.h
index f1a8c006fdb295c4b9820e8919a668914e9b0b9e..9fffdc343a2581dd276a2081ca203bace4be5246 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastTrackFitter.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastTrackFitter.h
@@ -65,10 +65,10 @@ namespace TrigL2MuonSA {
     
     BooleanProperty  m_use_mcLUT;
 
-    const PtEndcapLUTSvc*                  m_ptEndcapLUTSvc;
-    const PtBarrelLUTSvc*                  m_ptBarrelLUTSvc;
+    //const PtEndcapLUTSvc*                  m_ptEndcapLUTSvc;
+    //const PtBarrelLUTSvc*                  m_ptBarrelLUTSvc;
     
-    const AlignmentBarrelLUTSvc*           m_alignmentBarrelLUTSvc;
+    //const AlignmentBarrelLUTSvc*           m_alignmentBarrelLUTSvc;
     
     BooleanProperty  m_use_endcapInnerFromBarrel;
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtBarrelLUTSvc.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtBarrelLUTSvc.h
index caad368550b694c7b09f765f5c1df6bc4256988c..8326b7a660c200266eaecdc141a5642422440a30 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtBarrelLUTSvc.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtBarrelLUTSvc.h
@@ -36,8 +36,10 @@ namespace TrigL2MuonSA {
     virtual StatusCode finalize(void);
 
   private:
-    StringProperty m_lut_fileName;
-    StringProperty m_lutSP_fileName;
+    Gaudi::Property< std::string > m_lut_fileName {
+	this, "LUTfile", "pt_barrel.lut", ""};
+    Gaudi::Property< std::string > m_lutSP_fileName {
+	this, "SP_LUTfile", "pt_barrelSP_new.lut", ""};
 
     ToolHandle<PtBarrelLUT>  m_ptBarrelLUT;
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtEndcapLUTSvc.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtEndcapLUTSvc.h
index 8b90c00fe52a748cf23ebae9404574e65325ac28..a914fa8ef52489ec36ab26e3afdbc72a2de58b45 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtEndcapLUTSvc.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtEndcapLUTSvc.h
@@ -38,7 +38,8 @@ class PtEndcapLUTSvc : public AthService, virtual public IInterface
     virtual StatusCode finalize();
 
   private:
-    StringProperty    m_lut_fileName;
+    Gaudi::Property< std::string >    m_lut_fileName {
+	this, "FileNameRun2", "pt_endcap_run2.lut", ""};
     StringProperty    m_lut_mean;
     StringProperty    m_lut_sigma;
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtFromAlphaBeta.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtFromAlphaBeta.h
index fe5eab501e87b31dfe1e2c63021defaf3e289e84..6d3037e4cae5b0aad03222661fb9d8646649e9c1 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtFromAlphaBeta.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/PtFromAlphaBeta.h
@@ -49,8 +49,10 @@ class PtFromAlphaBeta: public AthAlgTool
     float fp(float x, float c33, float c22, float c1) const;
     
     BooleanProperty  m_use_mcLUT;
-    BooleanProperty m_use_cscpt;
-    BooleanProperty m_avoid_misaligned_cscs;
+    Gaudi::Property< bool > m_use_cscpt {
+	this, "useCscPt", false, ""};
+    Gaudi::Property< bool > m_avoid_misaligned_cscs {
+	this, "AvoidMisalignedCSCs", true, "avoid using the 2 new chambers, whose alignment is not completed"};
 
     const ToolHandle<PtEndcapLUT>*    m_ptEndcapLUT;
       
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h
index c15eb8e1f785ac1bc9a13c7cd3a244e4624d5dce..66b475d5c508689b235a62203d15f636d86f6e0f 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcDataPreparator.h
@@ -82,11 +82,11 @@ class RpcDataPreparator: public AthAlgTool
  private:
 		       
       // Reference to StoreGateSvc;
-      ServiceHandle<StoreGateSvc>    m_storeGateSvc;
-      ActiveStoreSvc* m_activeStore;
+      ServiceHandle<StoreGateSvc>   m_storeGateSvc;
+      ServiceHandle<ActiveStoreSvc> m_activeStore;
       
       // Region Selector
-      IRegSelSvc*          m_regionSelector;
+      ServiceHandle<IRegSelSvc> m_regionSelector;
 
       // RPC cabling service
       const IRPCcablingSvc* m_rpcCabling;
@@ -98,6 +98,8 @@ class RpcDataPreparator: public AthAlgTool
 
       // handles to the RoI driven data access
       ToolHandle<Muon::IMuonRdoToPrepDataTool> m_rpcPrepDataProvider;
+      //ToolHandle<Muon::IMuonRdoToPrepDataTool> m_rpcPrepDataProvider {
+      // 	this, "RpcPrepDataProvider", "Muon::RpcRdoToPrepDataTool/RpcPrepDataProviderTool", ""};
       
       ToolHandle <Muon::MuonIdHelperTool>  m_idHelperTool;  //!< Pointer to concrete tool
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcRoadDefiner.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcRoadDefiner.h
index b278616fcebd7a8aef760bee1802f2c725e5b5e6..3cf1d98f84b61e6788536c5decafaee8881ae5cf 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcRoadDefiner.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/RpcRoadDefiner.h
@@ -57,7 +57,8 @@ class RpcRoadDefiner: public AthAlgTool
 			double                       roiEtaMinHigh,
 			double                       roiEtaMaxHigh);
 
-  void setMdtGeometry(IRegSelSvc* regionSelector, const MdtIdHelper* mdtIdHelper);
+  void setMdtGeometry( const ServiceHandle<IRegSelSvc>& regionSelector, 
+                       const MdtIdHelper* mdtIdHelper);
   void setRoadWidthForFailure(double rWidth_RPC_Failed);
   void setRpcGeometry(bool use_rpc);
 
@@ -71,7 +72,7 @@ class RpcRoadDefiner: public AthAlgTool
   double m_rWidth_RPC_Failed;
   bool m_use_rpc;
 
-  IRegSelSvc* m_regionSelector;
+  ServiceHandle<IRegSelSvc> m_regionSelector;
   const MdtIdHelper* m_mdtIdHelper;
 };
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcDataPreparator.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcDataPreparator.h
index 928f01687f1a0264dc69bdb29920b76265e128b2..c622b5b48c08f0f1bb8c863b2a37f3cf13e6562f 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcDataPreparator.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcDataPreparator.h
@@ -9,7 +9,8 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/ToolHandle.h"
 
-#include "ByteStreamCnvSvcBase/ROBDataProviderSvc.h"
+//#include "ByteStreamCnvSvcBase/ROBDataProviderSvc.h"
+#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h"
 #include "TrigT1Interfaces/RecMuonRoI.h"
 #include "MuonRDO/TgcRdoContainer.h"
 
@@ -90,28 +91,28 @@ class TgcDataPreparator: public AthAlgTool
       const MuonGM::MuonDetectorManager* m_muonMgr;
       const MuonGM::TgcReadoutElement* m_tgcReadout;
       const TgcIdHelper* m_tgcIdHelper;
-      ActiveStoreSvc* m_activeStore;
 
-      // vector of the TGC hash ID list
-      std::vector<IdentifierHash> m_tgcHashList;         
+      //ActiveStoreSvc* m_activeStore;
+      ServiceHandle<ActiveStoreSvc> m_activeStore;
 
-      // Tool for Rdo to Prep Data conversion
-      ToolHandle<Muon::IMuonRdoToPrepDataTool> m_tgcPrepDataProvider;
-	
       // Cabling (new)
       MuonTGC_CablingSvc* m_tgcCabling;	
 
-      // Tools for the Raw data conversion
+      // Tool for Rdo to Prep Data conversion
+      ToolHandle<Muon::IMuonRdoToPrepDataTool> m_tgcPrepDataProvider;
+      //ToolHandle<Muon::IMuonRdoToPrepDataTool> m_tgcPrepDataProvider {
+      // 	this, "TgcPrepDataProvider", "Muon::TgcRdoToPrepDataTool/TgcPrepDataProviderTool", ""};
+      //  
+      //// Tools for the Raw data conversion
       ToolHandle<Muon::IMuonRawDataProviderTool>  m_tgcRawDataProvider;
-
-      // TGC raw data
-      std::vector<tgcRawData> m_tgcRawData;
+      //ToolHandle<Muon::IMuonRawDataProviderTool>  m_tgcRawDataProvider {
+      // 	this, "TGC_RawDataProvider", "Muon::TGC_RawDataProviderTool", ""};
 
       // Region Selector
-      IRegSelSvc*          m_regionSelector;
+      ServiceHandle<IRegSelSvc> m_regionSelector;
 
       // ROB DataProvider
-      ROBDataProviderSvc*  m_robDataProvider;
+      ServiceHandle<IROBDataProviderSvc> m_robDataProvider;
 
       // option
       TrigL2MuonSA::TgcDataPreparatorOptions m_options;
@@ -123,6 +124,13 @@ class TgcDataPreparator: public AthAlgTool
 	this, "TGCPrepDataContainer", "TGC_Measurements", "Name of the TGCContainer to read in"};
 
       bool m_use_RoIBasedDataAccess;
+
+      // vector of the TGC hash ID list
+      std::vector<IdentifierHash> m_tgcHashList;         
+
+      // TGC raw data
+      std::vector<tgcRawData> m_tgcRawData;
+
 };
 
 } // namespace TrigL2MuonSA
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcRoadDefiner.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcRoadDefiner.h
index b2b642b2907c23845b3830ad56a704d3d09254bf..a468c63f9ca2a8bea3d18e80f932e11ecf3ee088 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcRoadDefiner.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/TgcRoadDefiner.h
@@ -51,7 +51,8 @@ class TgcRoadDefiner: public AthAlgTool
                         TrigL2MuonSA::MuonRoad&      muonRoad,
                         TrigL2MuonSA::TgcFitResult&  tgcFitResult);
 
-  void setMdtGeometry(IRegSelSvc* regionSelector, const MdtIdHelper* mdtIdHelper);
+  void setMdtGeometry(const ServiceHandle<IRegSelSvc>& regionSelector, 
+                      const MdtIdHelper* mdtIdHelper);
   void setPtLUT(const TrigL2MuonSA::PtEndcapLUTSvc* ptEndcapLUTSvc);
   void setRoadWidthForFailure(double rWidth_TGC_Failed);
   void setExtrapolatorTool(ToolHandle<ITrigMuonBackExtrapolator>* backExtrapolator);
@@ -70,8 +71,8 @@ class TgcRoadDefiner: public AthAlgTool
   TrigL2MuonSA::TgcFit::PointArray m_tgcWireInnPoints;   // List of TGC wire inner station points.
 
   double m_rWidth_TGC_Failed;
-
-  IRegSelSvc* m_regionSelector;
+  
+  ServiceHandle<IRegSelSvc> m_regionSelector;
   const MdtIdHelper* m_mdtIdHelper;
 
 };
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlignmentBarrelLUTSvc.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlignmentBarrelLUTSvc.cxx
index 2e457aecc861f67f7fbd0d3ff494ddcb83950a7f..5dfd13bacecb5ac3f7ee486d880d8fc347b53202 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlignmentBarrelLUTSvc.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlignmentBarrelLUTSvc.cxx
@@ -15,7 +15,6 @@ TrigL2MuonSA::AlignmentBarrelLUTSvc::AlignmentBarrelLUTSvc(const std::string& na
   AthService(name,sl),
   m_alignmentBarrelLUT("TrigL2MuonSA::AlignmentBarrelLUT")
 {
-  declareProperty( "LUTfile", m_lut_fileName="dZ_barrel.lut" );
 }
 
 // --------------------------------------------------------------------------------
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx
index 9006a3db14d6e19e2af3808dc730f21d35a6a225..2810e6d65928b4896a74d552dba577f641e24812 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx
@@ -36,8 +36,8 @@ TrigL2MuonSA::CscDataPreparator::CscDataPreparator(const std::string& type,
 						   const IInterface*  parent): 
    AthAlgTool(type,name,parent),
    m_storeGateSvc( "StoreGateSvc", name ),
-   p_ActiveStore(0),
-   m_regionSelector(0),
+   m_activeStore( "ActiveStoreSvc", name ),
+   m_regionSelector( "RegSelSvc", name ),
    m_cscPrepDataProvider("Muon::CscRdoToCscPrepDataTool/CscPrepDataProviderTool"),
    m_cscClusterProvider("CscThresholdClusterBuilderTool")
 {
@@ -73,11 +73,7 @@ StatusCode TrigL2MuonSA::CscDataPreparator::initialize()
    ATH_CHECK( m_storeGateSvc.retrieve() );
 
    // Retrieve ActiveStore
-   sc = serviceLocator()->service("ActiveStoreSvc", p_ActiveStore);
-   if( !sc.isSuccess() || 0 == p_ActiveStore ){
-     ATH_MSG_ERROR(" Could not find ActiveStoreSvc ");
-     return sc;
-   }
+   ATH_CHECK( m_activeStore.retrieve() ); 
 
    ATH_CHECK( m_cscPrepDataProvider.retrieve() );
    ATH_MSG_INFO("Retrieved " << m_cscPrepDataProvider);
@@ -86,34 +82,18 @@ StatusCode TrigL2MuonSA::CscDataPreparator::initialize()
    ATH_MSG_INFO("Retrieved " << m_cscClusterProvider);
 
    // Detector Store
-   StoreGateSvc* detStore;
-   sc = serviceLocator()->service("DetectorStore", detStore);
-   if( sc.isFailure() ){
-     ATH_MSG_ERROR("Could not retrieve  DetectorStore.");
-     return sc;
-   }
+   ServiceHandle<StoreGateSvc> detStore("DetectorStore", name());
+   ATH_CHECK( detStore.retrieve() );
    ATH_MSG_DEBUG("Retrieved DetectorStore.");
-
    // CSC ID helper
-   sc = detStore->retrieve( m_muonMgr, "Muon" );
-   if( sc.isFailure() ){
-     ATH_MSG_ERROR(" Cannot retrieve MuonGeoModel ");
-     return sc;
-   }
+   ATH_CHECK( detStore->retrieve(m_muonMgr, "Muon") );
    ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore.");
    m_cscIdHelper = m_muonMgr->cscIdHelper();
 
-   //
-   std::string serviceName;
-
    // Locate RegionSelector
-   serviceName = "RegionSelector";
-   sc = service("RegSelSvc", m_regionSelector);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve " << serviceName);
-      return sc;
-   }
-   ATH_MSG_DEBUG("Retrieved service " << serviceName);
+   ATH_CHECK( m_regionSelector.retrieve() );
+   ATH_MSG_DEBUG("Retrieved service " << m_regionSelector.name());
+   
 
    ATH_CHECK(m_cscPrepContainerKey.initialize());
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscRegUtils.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscRegUtils.cxx
index 9503c85aed32de0ff0eb26d77f6a15168187f6b3..a43c060c54a76b798ef4f5b1a927d8043d1eecf4 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscRegUtils.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscRegUtils.cxx
@@ -18,10 +18,11 @@ namespace TrigL2MuonSA{
 const InterfaceID& CscRegDict :: interfaceID(){ return IID_CscRegDict; }
 
 
-  CscRegDict :: CscRegDict(const std::string &type, const std::string &name, const IInterface *parent): AthAlgTool(type,name,parent),m_util(0){
+CscRegDict :: CscRegDict(const std::string &type, const std::string &name, const IInterface *parent)
+  : AthAlgTool(type,name,parent),
+    m_util(0)
+{
   declareInterface<TrigL2MuonSA::CscRegDict>(this);
-  declareProperty("MCFlag", m_isMC=true);
-
 }
 
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscSegmentMaker.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscSegmentMaker.cxx
index 5450e9a210a8bb60967a4fd61f4109154a9065c2..f775db37489ac80673d75a38bc39a081b538eb5a 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscSegmentMaker.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscSegmentMaker.cxx
@@ -27,20 +27,13 @@ const InterfaceID& CscSegmentMaker::interfaceID() { return IID_CscSegmentMaker;
 
 
 CscSegmentMaker::CscSegmentMaker(const std::string& type, const std::string& name, const IInterface*  parent)
-  : AthAlgTool(type, name, parent), m_util(0), m_cscregdict("TrigL2MuonSA::CscRegDict")
+  : AthAlgTool(type, name, parent), 
+  m_util(0) 
 #ifndef XAOD_ANALYSIS
   ,m_muonMgr(0)
 #endif
 {
   declareInterface<TrigL2MuonSA::CscSegmentMaker>(this);
-  declareProperty("CscRegDict", m_cscregdict);
-  declareProperty("UseGeometry", m_use_geometry=false);
-  declareProperty("max_chisquare", m_max_chisquare=25.);
-  declareProperty("max_residual_eta", m_max_residual_eta=100.);
-  declareProperty("max_residual_phi", m_max_residual_phi=250.);
-  declareProperty("err_eta", m_err_eta=3.);
-  declareProperty("err_phi", m_err_phi=6.);
-  declareProperty("err_ip", m_err_ip=250.);
 }
 
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtDataPreparator.cxx
index 8c8e7991e627697b1312ecc369a469bf6a41b8b4..156b6935da1633590e747862d978b31a5ece7705 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtDataPreparator.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MdtDataPreparator.cxx
@@ -55,10 +55,14 @@ TrigL2MuonSA::MdtDataPreparator::MdtDataPreparator(const std::string& type,
 						   const IInterface*  parent): 
    AthAlgTool(type,name,parent),
    m_storeGateSvc( "StoreGateSvc", name ),
-   m_mdtRawDataProvider("Muon::MDT_RawDataProviderTool"),
-   m_regionSelector(0), m_robDataProvider(0), m_recMuonRoIUtils(),
+   m_activeStore( "ActiveStoreSvc", name ), 
+   m_mdtRawDataProvider("Muon::MDT_RawDataProviderTool"), 
+   m_mdtCabling("MuonMDT_CablingSvc", name), 
+   m_regionSelector("RegSelSvc", name ), 
+   m_robDataProvider("ROBDataProviderSvc", name), 
+   m_recMuonRoIUtils(),
    m_mdtRegionDefiner("TrigL2MuonSA::MdtRegionDefiner"),
-   m_mdtPrepDataProvider("Muon::MdtRdoToPrepDataTool/MdtPrepDataProviderTool"),
+   m_mdtPrepDataProvider("Muon::MdtRdoToPrepDataTool/MdtPrepDataProviderTool"),   
    m_use_mdtcsm(true),
    m_BMGpresent(false),
    m_BMGid(-1)
@@ -100,51 +104,26 @@ StatusCode TrigL2MuonSA::MdtDataPreparator::initialize()
    std::string serviceName;
 
    // Locate RegionSelector
-   serviceName = "RegionSelector";
-   sc = service("RegSelSvc", m_regionSelector);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve " << serviceName);
-      return sc;
-   }
-   ATH_MSG_DEBUG("Retrieved service " << serviceName);
+   ATH_CHECK( m_regionSelector.retrieve());
+   ATH_MSG_DEBUG("Retrieved service " << m_regionSelector.name());
 
    // Locate ROBDataProvider
-   serviceName = "ROBDataProvider";
-   IService* svc = 0;
-   sc = service("ROBDataProviderSvc", svc);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve " << serviceName);
-      return sc;
-   }
-   m_robDataProvider = dynamic_cast<ROBDataProviderSvc*> (svc);
-   if( m_robDataProvider == 0 ) {
-     ATH_MSG_ERROR("Could not cast to ROBDataProviderSvc ");
-      return StatusCode::FAILURE;
-   }
-   ATH_MSG_DEBUG("Retrieved service " << serviceName);
+   ATH_CHECK( m_robDataProvider.retrieve() );
+   ATH_MSG_DEBUG("Retrieved service " << m_robDataProvider.name());
+   
 
    ATH_CHECK( m_mdtRegionDefiner.retrieve() );
    ATH_MSG_DEBUG("Retrieved service " << m_mdtRegionDefiner);
 
    // initialize the NEW cabling service
-   sc = service("MuonMDT_CablingSvc",m_mdtCabling);
-   if (sc != StatusCode::SUCCESS) {
-     ATH_MSG_ERROR("Could not find the MuonMDT_CablingSvc");
-     return sc;
-   }
+   ATH_CHECK( m_mdtCabling.retrieve());
    ATH_MSG_DEBUG("Retrieved the new cabling service ");
    
    // retrieve the mdtidhelper
-   StoreGateSvc* detStore(0);
-   sc = serviceLocator()->service("DetectorStore", detStore);
-   if (sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve DetectorStore.");
-     return sc;
-   }
+   ServiceHandle<StoreGateSvc> detStore("DetectorStore", name());
+   ATH_CHECK( detStore.retrieve() );
    ATH_MSG_DEBUG("Retrieved DetectorStore.");
-   
-   sc = detStore->retrieve( m_muonMgr,"Muon" );
-   if (sc.isFailure()) return sc;
+   ATH_CHECK( detStore->retrieve(m_muonMgr,"Muon") );
    ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore.");
    m_mdtIdHelper = m_muonMgr->mdtIdHelper();
    
@@ -152,11 +131,7 @@ StatusCode TrigL2MuonSA::MdtDataPreparator::initialize()
    ATH_MSG_DEBUG("Retrieved " << m_mdtPrepDataProvider);
 
    // Retrieve ActiveStore
-   sc = serviceLocator()->service("ActiveStoreSvc", m_activeStore);
-   if (sc.isFailure() || m_activeStore == 0) {
-     ATH_MSG_ERROR(" Cannot get ActiveStoreSvc.");
-     return sc ;
-   }
+   ATH_CHECK( m_activeStore.retrieve() ); 
    ATH_MSG_DEBUG("Retrieved ActiveStoreSvc."); 
 
    m_BMGpresent = m_mdtIdHelper->stationNameIndex("BMG") != -1;
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuCalStreamerTool.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuCalStreamerTool.cxx
index 7e7fa73bfda23b16d5fe3c3205272bc42c41608a..fa25ae5f740e6a6ccc031d3ddc447dfecb107d9e 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuCalStreamerTool.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuCalStreamerTool.cxx
@@ -39,16 +39,14 @@ TrigL2MuonSA::MuCalStreamerTool::MuCalStreamerTool(const std::string& type,
 						   const IInterface*  parent): 
    AthAlgTool(type,name,parent),
    m_storeGate( "StoreGateSvc", name ),
+   m_regionSelector( "RegSelSvc", name ),
+   m_robDataProvider( "ROBDataProviderSvc", name ),
    m_cid(-1),
    m_calibEvent(0),
    m_roi(NULL),
    m_tgcDataPreparator("TrigL2MuonSA::TgcDataPreparator")  
-
-
 {
    declareInterface<TrigL2MuonSA::MuCalStreamerTool>(this);
-
-   declareProperty("WriteToFile", m_writeToFile=false);
 }
 
 // --------------------------------------------------------------------------------
@@ -72,16 +70,8 @@ StatusCode TrigL2MuonSA::MuCalStreamerTool::initialize()
 
    // Retrieve the RPC cabling service
    ServiceHandle<IRPCcablingServerSvc> RpcCabGet ("RPCcablingServerSvc", name());
-   sc = RpcCabGet.retrieve();
-   if ( sc != StatusCode::SUCCESS ) {
-     ATH_MSG_ERROR("Could not retrieve the RPCcablingServerSvc");
-     return sc;
-   }
-   sc = RpcCabGet->giveCabling(m_rpcCabling);
-   if ( sc != StatusCode::SUCCESS ) {
-     ATH_MSG_ERROR("Could not retrieve the RPC Cabling Server");
-     return sc;
-   }
+   ATH_CHECK( RpcCabGet.retrieve() );
+   ATH_CHECK( RpcCabGet->giveCabling(m_rpcCabling) );
    m_rpcCablingSvc = m_rpcCabling->getRPCCabling();
    if ( !m_rpcCablingSvc ) {
      ATH_MSG_ERROR("Could not retrieve the RPC cabling svc");
@@ -106,35 +96,16 @@ StatusCode TrigL2MuonSA::MuCalStreamerTool::initialize()
    //  return StatusCode::FAILURE;
    //} 
 
-   sc = m_tgcDataPreparator.retrieve();
-   if ( sc.isFailure() ) { 
-     ATH_MSG_ERROR("Could not retrieve " << m_tgcDataPreparator);
-     return sc;             
-   } 
+   ATH_CHECK( m_tgcDataPreparator.retrieve() );
    ATH_MSG_DEBUG("Retrieved service " << m_tgcDataPreparator); 
 
    // locate the region selector
-   sc = service("RegSelSvc",m_regionSelector);
-   if ( sc.isFailure() ) {
-     ATH_MSG_ERROR("Could not retrieve the region selector");
-     return sc;
-   } 
+   ATH_CHECK( m_regionSelector.retrieve() );
    ATH_MSG_DEBUG("Retrieved the region selector");
 
    // Locate ROBDataProvider
-   std::string serviceName = "ROBDataProvider";
-   IService* svc = 0;
-   sc = service("ROBDataProviderSvc", svc);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve " << serviceName);
-     return sc;
-   }
-   m_robDataProvider = dynamic_cast<ROBDataProviderSvc*> (svc);
-   if( m_robDataProvider == 0 ) {
-     ATH_MSG_ERROR("Could not cast to ROBDataProviderSvc ");
-     return StatusCode::FAILURE;
-   }
-   ATH_MSG_DEBUG("Retrieved service " << serviceName); 
+   ATH_CHECK( m_robDataProvider.retrieve() );
+   ATH_MSG_DEBUG("Retrieved service " << m_robDataProvider.name()); 
 
    // initialize the local vector buffer
    m_localBuffer = new std::vector<int>();
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx
index bb0b18423ad52ad168a5736f207b71dccd38a9f6..961f5c7af22ff007199afa03118c9c75a88980b1 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastDataPreparator.cxx
@@ -30,8 +30,8 @@ TrigL2MuonSA::MuFastDataPreparator::MuFastDataPreparator(const std::string& type
                                                          const std::string& name,
                                                          const IInterface*  parent): 
   AthAlgTool(type,name,parent),
-  m_recRPCRoiSvc("LVL1RPC::RPCRecRoiSvc",""),
   m_options(),
+  m_regionSelector("RegSelSvc", name ),
   m_rpcDataPreparator("TrigL2MuonSA::RpcDataPreparator"),
   m_tgcDataPreparator("TrigL2MuonSA::TgcDataPreparator"),
   m_mdtDataPreparator("TrigL2MuonSA::MdtDataPreparator"),
@@ -41,7 +41,6 @@ TrigL2MuonSA::MuFastDataPreparator::MuFastDataPreparator(const std::string& type
   m_rpcPatFinder("TrigL2MuonSA::RpcPatFinder")
 {
    declareInterface<TrigL2MuonSA::MuFastDataPreparator>(this);
-   declareProperty("RPCRecRoiSvc",      m_recRPCRoiSvc,      "Reconstruction of RPC RoI");
 }
 
 // --------------------------------------------------------------------------------
@@ -70,26 +69,16 @@ StatusCode TrigL2MuonSA::MuFastDataPreparator::initialize()
    ATH_MSG_INFO("Retrieved Service " << m_recRPCRoiSvc);
    
    // retrieve the ID helper and the region selector
-   StoreGateSvc* detStore(0);
-   const MuonGM::MuonDetectorManager* muonMgr;
-   sc = serviceLocator()->service("DetectorStore", detStore);
-   if (sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve DetectorStore.");
-     return sc;
-   }
+   ServiceHandle<StoreGateSvc> detStore("DetectorStore", name());
+   ATH_CHECK(detStore.retrieve());
    ATH_MSG_DEBUG("Retrieved DetectorStore.");
-   
-   sc = detStore->retrieve( muonMgr,"Muon" );
-   if (sc.isFailure()) return sc;
+
+   const MuonGM::MuonDetectorManager* muonMgr;
+   ATH_CHECK( detStore->retrieve( muonMgr,"Muon" ) );
    ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore.");
    m_mdtIdHelper = muonMgr->mdtIdHelper();
-   
-   // Locate RegionSelector
-   sc = service("RegSelSvc", m_regionSelector);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve the regionselector service");
-     return sc;
-   }
+  
+   ATH_CHECK( m_regionSelector.retrieve() );
    ATH_MSG_DEBUG("Retrieved the RegionSelector service ");
 
    if (m_use_rpc) {
@@ -140,21 +129,22 @@ StatusCode TrigL2MuonSA::MuFastDataPreparator::setMCFlag(BooleanProperty use_mcL
 {
   m_use_mcLUT = use_mcLUT;
 
-  StatusCode sc = StatusCode::SUCCESS;
-
   if (m_use_mcLUT) {
-    sc = serviceLocator()->service("PtEndcapLUTSvc_MC", m_ptEndcapLUTSvc);
-    //ATH_CHECK( serviceLocator()->service("PtEndcapLUTSvc_MC", m_ptEndcapLUTSvc) );
+    const ServiceHandle<TrigL2MuonSA::PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc_MC", name()); 
+    if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
+      ATH_MSG_DEBUG("Could not retrieve PtEndcapLUTSvc_MC");
+      return StatusCode::FAILURE;
+    }
+    m_tgcRoadDefiner->setPtLUT(&*ptEndcapLUTSvc);
   } else {
-    sc = serviceLocator()->service("PtEndcapLUTSvc",    m_ptEndcapLUTSvc);
-  }
-  if (!sc.isSuccess()) {
-    ATH_MSG_ERROR("Could not find PtEndcapLUTSvc");
-    return sc;
+    const ServiceHandle<TrigL2MuonSA::PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc", name()); 
+    if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
+      ATH_MSG_DEBUG("Could not retrieve PtEndcapLUTSvc");
+      return StatusCode::FAILURE;
+    }
+    m_tgcRoadDefiner->setPtLUT(&*ptEndcapLUTSvc);
   }
 
-  m_tgcRoadDefiner->setPtLUT(m_ptEndcapLUTSvc);
-
   return StatusCode::SUCCESS;
 }
 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastPatternFinder.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastPatternFinder.cxx
index 81699bbe0b699cd4a52acca02a839a0ac6983d1d..1365e561f79c6c31ca0eb34f3eae5f4b256351cf 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastPatternFinder.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastPatternFinder.cxx
@@ -31,7 +31,7 @@ TrigL2MuonSA::MuFastPatternFinder::MuFastPatternFinder(const std::string& type,
 						     const std::string& name,
 						     const IInterface*  parent): 
    AthAlgTool(type,name,parent),
-   m_mdtCalibrationSvc(0)
+   m_mdtCalibrationSvc( "MdtCalibrationSvc", name )
 {
    declareInterface<TrigL2MuonSA::MuFastPatternFinder>(this);
 }
@@ -56,24 +56,16 @@ StatusCode TrigL2MuonSA::MuFastPatternFinder::initialize()
    }
    
    // retrieve the mdtidhelper  
-   StoreGateSvc* detStore(0);                                                                                                                     sc = serviceLocator()->service("DetectorStore", detStore); 
-   if (sc.isFailure()) { 
-     ATH_MSG_ERROR("Could not retrieve DetectorStore."); 
-     return sc;
-   } 
+   ServiceHandle<StoreGateSvc> detStore("DetectorStore", name());
+   ATH_CHECK( detStore.retrieve() );
    ATH_MSG_DEBUG("Retrieved DetectorStore.");
    const MuonGM::MuonDetectorManager* muonMgr;                                                                 
-   sc = detStore->retrieve( muonMgr,"Muon" ); 
-   if (sc.isFailure()) return sc; 
+   ATH_CHECK( detStore->retrieve( muonMgr,"Muon" ) ); 
    ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore."); 
-   m_mdtIdHelper = muonMgr->mdtIdHelper();                                                                                                    
+   m_mdtIdHelper = muonMgr->mdtIdHelper();                                                   
 
    // Locate MDT calibration service
-   sc = serviceLocator()->service("MdtCalibrationSvc", m_mdtCalibrationSvc );
-   if(sc.isFailure()) {
-     ATH_MSG_WARNING("Unable to retrieve the MDT calibration Service");
-     ATH_MSG_WARNING("Proceed using dummy calibration for MDT");
-   }
+   ATH_CHECK( m_mdtCalibrationSvc.retrieve() );
    
    // 
    return StatusCode::SUCCESS; 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastStationFitter.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastStationFitter.cxx
index 825c01072bd7cffe6dcbc636a928709aff07b450..c1552c0459b2660fb40179057c0f2a5f649ce623 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastStationFitter.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastStationFitter.cxx
@@ -34,32 +34,9 @@ TrigL2MuonSA::MuFastStationFitter::MuFastStationFitter(const std::string& type,
                                                        const std::string& name,
                                                        const IInterface*  parent): 
   AthAlgTool(type,name,parent),
-  m_backExtrapolator("TrigMuonBackExtrapolator"),
-  m_alphaBetaEstimate("TrigL2MuonSA::AlphaBetaEstimate"),
-  m_ptFromAlphaBeta("TrigL2MuonSA::PtFromAlphaBeta")
+  m_alphaBetaEstimate("TrigL2MuonSA::AlphaBetaEstimate")
 {
    declareInterface<TrigL2MuonSA::MuFastStationFitter>(this);
-
-   declareProperty("BackExtrapolator", m_backExtrapolator, "public tool for back extrapolating the muon tracks to the IV");
-   declareProperty("PtFromAlphaBeta", m_ptFromAlphaBeta);
-
-   declareProperty("ENDCAPINN_MDT_CHI2_LIMIT", m_endcapinn_mdt_chi2_limit = 20);
-   declareProperty("ENDCAPMID_MDT_CHI2_LIMIT", m_endcapmid_mdt_chi2_limit = 20);
-   declareProperty("ENDCAPOUT_MDT_CHI2_LIMIT", m_endcapout_mdt_chi2_limit = 20);
-   declareProperty("ENDCAPEE_MDT_CHI2_LIMIT",  m_endcapee_mdt_chi2_limit  = 20);
-
-   declareProperty("RWIDTH_EndcapINN_FIRST",  m_rwidth_Endcapinn_first    = 150.);
-   declareProperty("RWIDTH_EndcapINN_SECOND", m_rwidth_Endcapinn_second   = 80. );
-   declareProperty("RWIDTH_EndcapMID_FIRST",  m_rwidth_Endcapmid_first    = 150.);
-   declareProperty("RWIDTH_EndcapMID_SECOND", m_rwidth_Endcapmid_second   = 100.);
-   declareProperty("RWIDTH_EndcapOUT_FIRST",  m_rwidth_Endcapout_first    = 120.);
-   declareProperty("RWIDTH_EndcapOUT_SECOND", m_rwidth_Endcapout_second   = 60. );
-   declareProperty("RWIDTH_EndcapEE_FIRST",   m_rwidth_Endcapee_first     = 150.);
-   declareProperty("RWIDTH_EndcapEE_SECOND",  m_rwidth_Endcapee_second    = 100.);
-
-   declareProperty("MDT_DRFITSPACE_UPLIMIT",   m_mdt_driftspace_uplimit   = 14.8);
-   declareProperty("MDT_DRFITSPACE_DOWNLIMIT", m_mdt_driftspace_downlimit = 0.1);
-   declareProperty("MDT_DRFITTIME_LIMIT",      m_mdt_drifttime_limit      = 1700.);
 }
 
 // --------------------------------------------------------------------------------
@@ -81,25 +58,13 @@ StatusCode TrigL2MuonSA::MuFastStationFitter::initialize()
       return sc;
    }
    
-  // BackExtrapolator services
-   sc = m_backExtrapolator.retrieve();
-   if ( !sc.isSuccess() ) {
-     ATH_MSG_ERROR("Could not retrieve " << m_backExtrapolator);
-    return sc;
-   } 
-
-   sc = m_alphaBetaEstimate.retrieve();
-   if ( sc.isFailure() ) {
-     ATH_MSG_ERROR("Could not retrieve " << m_alphaBetaEstimate);
-     return sc;
-   }
+   // BackExtrapolator services
+   ATH_CHECK( m_backExtrapolator.retrieve() );
+
+   ATH_CHECK( m_alphaBetaEstimate.retrieve() );
    ATH_MSG_DEBUG("Retrieved service " << m_alphaBetaEstimate);
 
-   sc = m_ptFromAlphaBeta.retrieve();
-   if ( sc.isFailure() ) {
-     ATH_MSG_ERROR("Could not retrieve " << m_ptFromAlphaBeta);
-     return sc;
-   }
+   ATH_CHECK( m_ptFromAlphaBeta.retrieve() );
    ATH_MSG_DEBUG("Retrieved service " << m_ptFromAlphaBeta);
 
    return StatusCode::SUCCESS; 
@@ -110,23 +75,30 @@ StatusCode TrigL2MuonSA::MuFastStationFitter::initialize()
 StatusCode TrigL2MuonSA::MuFastStationFitter::setMCFlag(BooleanProperty use_mcLUT)
 {
   m_use_mcLUT = use_mcLUT;
-  StatusCode sc = StatusCode::SUCCESS;
 
   if (m_use_mcLUT) {
-     sc = serviceLocator()->service("PtEndcapLUTSvc_MC", m_ptEndcapLUTSvc);
+     const ServiceHandle<TrigL2MuonSA::PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc_MC", name());
+     if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
+        ATH_MSG_ERROR("Could not find PtEndcaplLUTSvc");
+        return StatusCode::FAILURE;
+     }
+     // Calculation of alpha and beta
+     m_alphaBetaEstimate->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
+     // conversion: alpha, beta -> pT
+     m_ptFromAlphaBeta->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
   } else {
-     sc = serviceLocator()->service("PtEndcapLUTSvc",    m_ptEndcapLUTSvc);
-  }
-  if (!sc.isSuccess()) {
-    ATH_MSG_ERROR("Could not find PtEndcapLUTSvc");
-     return sc;
+     const ServiceHandle<TrigL2MuonSA::PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc", name());
+     if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
+        ATH_MSG_ERROR("Could not find PtEndcaplLUTSvc");
+        return StatusCode::FAILURE;
+     }
+     // Calculation of alpha and beta
+     m_alphaBetaEstimate->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
+     // conversion: alpha, beta -> pT
+     m_ptFromAlphaBeta->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
   }
 
-  // Calculation of alpha and beta
-  m_alphaBetaEstimate->setMCFlag(m_use_mcLUT, m_ptEndcapLUTSvc);
-
-  // conversion: alpha, beta -> pT
-  m_ptFromAlphaBeta->setMCFlag(m_use_mcLUT, m_ptEndcapLUTSvc);
+  ATH_MSG_DEBUG( "Completed tp set " << (m_use_mcLUT?"MC":"not MC") << " flag" );    
 
   return StatusCode::SUCCESS;
 }
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx
index 090b790e820d44018ce40d9ec0dd84e5c5c45e54..ee833e58e3d8e025c3b2aa287417761e0bdd601a 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx
@@ -31,16 +31,16 @@ using namespace SG;
 
 MuFastSteering::MuFastSteering(const std::string& name, ISvcLocator* svc) 
   : HLT::FexAlgo(name, svc), 
-    m_storeGate("StoreGateSvc", this->name()), 
+    m_storeGate("StoreGateSvc", name), 
     m_timerSvc("TrigTimerSvc", name),
-    m_regionSelector("RegSelSvc", this->name()),
+    m_regionSelector("RegSelSvc", name),
     m_recMuonRoIUtils(),
     m_rpcHits(), m_tgcHits(),
     m_mdtRegion(), m_muonRoad(),
     m_rpcFitResult(), m_tgcFitResult(),
     m_mdtHits_normal(), m_mdtHits_overlap(),
     m_cscHits(),
-    m_jobOptionsSvc("JobOptionsSvc", this->name()) 
+    m_jobOptionsSvc("JobOptionsSvc", name) 
 {
 }
 // --------------------------------------------------------------------------------
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastTrackFitter.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastTrackFitter.cxx
index c2e9e040189a9c06922308c92038861b69558157..f7820a4d78047d278d8585c6c5c75d9a1c496c5c 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastTrackFitter.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastTrackFitter.cxx
@@ -26,7 +26,6 @@ TrigL2MuonSA::MuFastTrackFitter::MuFastTrackFitter(const std::string& type,
   AthAlgTool(type,name,parent),
   m_storeGateSvc( "StoreGateSvc", name ),
   m_use_mcLUT(true),
-  m_alignmentBarrelLUTSvc(0),
   m_use_endcapInnerFromBarrel(false),
   m_sagittaRadiusEstimate("TrigL2MuonSA::SagittaRadiusEstimate"),
   m_alphaBetaEstimate("TrigL2MuonSA::AlphaBetaEstimate"),
@@ -56,11 +55,7 @@ StatusCode TrigL2MuonSA::MuFastTrackFitter::initialize()
    }
    
    // Locate the StoreGateSvc
-   sc =  m_storeGateSvc.retrieve();
-   if (!sc.isSuccess()) {
-     ATH_MSG_ERROR("Could not find StoreGateSvc");
-      return sc;
-   }
+   ATH_CHECK( m_storeGateSvc.retrieve() );
 
    ATH_CHECK( m_sagittaRadiusEstimate.retrieve() );
    ATH_CHECK( m_alphaBetaEstimate.retrieve() );
@@ -78,32 +73,54 @@ StatusCode TrigL2MuonSA::MuFastTrackFitter::setMCFlag(BooleanProperty use_mcLUT)
 {
   m_use_mcLUT = use_mcLUT;
 
-  StatusCode sc = StatusCode::SUCCESS;
+//  StatusCode sc = StatusCode::SUCCESS;
 
   if (m_use_mcLUT) {
-    sc = serviceLocator()->service("PtBarrelLUTSvc_MC", m_ptBarrelLUTSvc);
-  } else{ 
-    sc = serviceLocator()->service("PtBarrelLUTSvc",    m_ptBarrelLUTSvc);
-  }
-  if (!sc.isSuccess()) {
-    ATH_MSG_ERROR("Could not find PtBarrelLUTSvc");
-    return sc;
-  }
-  
-  if (m_use_mcLUT) {
-    sc = serviceLocator()->service("PtEndcapLUTSvc_MC", m_ptEndcapLUTSvc);
-  } else {
-    sc = serviceLocator()->service("PtEndcapLUTSvc",    m_ptEndcapLUTSvc);
-  }
-  if (!sc.isSuccess()) {
-    ATH_MSG_ERROR("Could not find PtEndcapLUTSvc");
-    return sc;
+    // Barrel 
+    const ServiceHandle<PtBarrelLUTSvc> ptBarrelLUTSvc("PtBarrelLUTSvc_MC", name());
+    if ( ptBarrelLUTSvc.retrieve().isFailure() ) {
+       ATH_MSG_ERROR("Could not find PtBarrelLUTSvc");
+       return StatusCode::FAILURE;
+    }
+    // Endcap
+    const ServiceHandle<PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc_MC", name());
+    if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
+       ATH_MSG_ERROR("Could not find PtEndcaplLUTSvc");
+       return StatusCode::FAILURE;
+    }
+
+    m_alphaBetaEstimate->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
+
+    m_ptFromRadius->setMCFlag(m_use_mcLUT, &*ptBarrelLUTSvc);
+
+    m_ptFromAlphaBeta->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
+
+  } else { 
+    // Barrel
+    const ServiceHandle<PtBarrelLUTSvc> ptBarrelLUTSvc("PtBarrelLUTSvc", name());
+    if ( ptBarrelLUTSvc.retrieve().isFailure() ) {
+       ATH_MSG_ERROR("Could not find PtBarrelLUTSvc");
+       return StatusCode::FAILURE;
+    }
+    // Endcap
+    const ServiceHandle<PtEndcapLUTSvc> ptEndcapLUTSvc("PtEndcapLUTSvc", name());
+    if ( ptEndcapLUTSvc.retrieve().isFailure() ) {
+       ATH_MSG_ERROR("Could not find PtEndcaplLUTSvc");
+       return StatusCode::FAILURE;
+    }
+
+    m_alphaBetaEstimate->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
+
+    m_ptFromRadius->setMCFlag(m_use_mcLUT, &*ptBarrelLUTSvc);
+
+    m_ptFromAlphaBeta->setMCFlag(m_use_mcLUT, &*ptEndcapLUTSvc);
+
   }
 
-  sc = serviceLocator()->service("AlignmentBarrelLUTSvc", m_alignmentBarrelLUTSvc);
-  if (!sc.isSuccess()) {
-    ATH_MSG_ERROR("Could not find PtBarrelLUTSvc");
-    return sc;
+  const ServiceHandle<AlignmentBarrelLUTSvc> alignmentBarrelLUTSvc("AlignmentBarrelLUTSvc", name());
+  if ( alignmentBarrelLUTSvc.retrieve().isFailure() ) {
+     ATH_MSG_ERROR("Could not find AlignmentBarrelLUTSvc");
+     return StatusCode::FAILURE;
   }
 
   // Calculation of sagitta and radius
@@ -114,7 +131,7 @@ StatusCode TrigL2MuonSA::MuFastTrackFitter::setMCFlag(BooleanProperty use_mcLUT)
   // }
   // ATH_MSG_DEBUG("Retrieved service " << m_sagittaRadiusEstimate);
 
-  m_sagittaRadiusEstimate->setMCFlag(m_use_mcLUT, m_alignmentBarrelLUTSvc);
+  m_sagittaRadiusEstimate->setMCFlag(m_use_mcLUT, &*alignmentBarrelLUTSvc);
 
   // Calculation of alpha and beta
   // sc = m_alphaBetaEstimate.retrieve();
@@ -124,7 +141,6 @@ StatusCode TrigL2MuonSA::MuFastTrackFitter::setMCFlag(BooleanProperty use_mcLUT)
   // }
   // ATH_MSG_DEBUG("Retrieved service " << m_alphaBetaEstimate);
 
-  m_alphaBetaEstimate->setMCFlag(m_use_mcLUT, m_ptEndcapLUTSvc);
 
   // conversion: radius -> pT
   // sc = m_ptFromRadius.retrieve();
@@ -134,7 +150,6 @@ StatusCode TrigL2MuonSA::MuFastTrackFitter::setMCFlag(BooleanProperty use_mcLUT)
   // }
   // ATH_MSG_DEBUG("Retrieved service " << m_ptFromRadius);
 
-  m_ptFromRadius->setMCFlag(m_use_mcLUT, m_ptBarrelLUTSvc);
 
   // conversion: alpha, beta -> pT
   // sc = m_ptFromAlphaBeta.retrieve();
@@ -144,7 +159,7 @@ StatusCode TrigL2MuonSA::MuFastTrackFitter::setMCFlag(BooleanProperty use_mcLUT)
   // }
   // ATH_MSG_DEBUG("Retrieved service " << m_ptFromAlphaBeta);
 
-  m_ptFromAlphaBeta->setMCFlag(m_use_mcLUT, m_ptEndcapLUTSvc);
+  ATH_MSG_DEBUG( "Completed tp set " << (m_use_mcLUT?"MC":"not MC") << " flag" );    
 
   return StatusCode::SUCCESS;
 }
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtBarrelLUTSvc.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtBarrelLUTSvc.cxx
index b9dae7c44cb2fc3e17b0de72d2eea1143e5714d4..bbec461efacf57084f9836ddfd39c3e6706f071b 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtBarrelLUTSvc.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtBarrelLUTSvc.cxx
@@ -15,8 +15,6 @@ TrigL2MuonSA::PtBarrelLUTSvc::PtBarrelLUTSvc(const std::string& name,ISvcLocator
   AthService(name,sl),
   m_ptBarrelLUT("TrigL2MuonSA::PtBarrelLUT")
 {
-  declareProperty( "LUTfile", m_lut_fileName="pt_barrel.lut" );
-  declareProperty( "SP_LUTfile", m_lutSP_fileName="pt_barrelSP_new.lut" );
 }
 
 // --------------------------------------------------------------------------------
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtEndcapLUTSvc.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtEndcapLUTSvc.cxx
index 9b57ed06606bc93b431a612b70554c61c09dcc55..5791a40a9c4f63f21be01dd23b45c1a01d686eff 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtEndcapLUTSvc.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtEndcapLUTSvc.cxx
@@ -16,7 +16,6 @@ TrigL2MuonSA::PtEndcapLUTSvc::PtEndcapLUTSvc(const std::string& name, ISvcLocato
   AthService(name,sl),
   m_ptEndcapLUT("TrigL2MuonSA::PtEndcapLUT")
 {
-  declareProperty("FileNameRun2", m_lut_fileName="pt_endcap_run2.lut");
 }
 
 // --------------------------------------------------------------------------------
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromAlphaBeta.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromAlphaBeta.cxx
index 48b6b8b0c2ed7bdd044edd7bbd14411022652023..f7d4e7aae199a74e126302c0e322f0553cbe604f 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromAlphaBeta.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromAlphaBeta.cxx
@@ -26,8 +26,6 @@ TrigL2MuonSA::PtFromAlphaBeta::PtFromAlphaBeta(const std::string& type,
   m_ptEndcapLUT(0)
 {
   declareInterface<TrigL2MuonSA::PtFromAlphaBeta>(this);
-  declareProperty("useCscPt", m_use_cscpt=false);
-  declareProperty("AvoidMisalignedCSCs", m_avoid_misaligned_cscs=true,"avoid using the 2 new chambers, whose alignment is not completed");
 }
 
 // --------------------------------------------------------------------------------
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx
index cd3c9d2cf4d8678e669aeeb23104173ce9ad53e3..11eafca3b8b5a8241a592ca55ba156a51a5b098b 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcDataPreparator.cxx
@@ -42,8 +42,8 @@ TrigL2MuonSA::RpcDataPreparator::RpcDataPreparator(const std::string& type,
                                                    const IInterface*  parent): 
    AthAlgTool(type,name,parent),
    m_storeGateSvc( "StoreGateSvc", name ),
-   m_activeStore(0),
-   m_regionSelector(0),
+   m_activeStore( "ActiveStoreSvc", name ),
+   m_regionSelector( "RegSelSvc", name ),
    m_rpcPrepDataProvider("Muon::RpcRdoToPrepDataTool/RpcPrepDataProviderTool"),
    m_idHelperTool("Muon::MuonIdHelperTool/MuonIdHelperTool")
 {
@@ -76,26 +76,16 @@ StatusCode TrigL2MuonSA::RpcDataPreparator::initialize()
    ATH_CHECK( m_storeGateSvc.retrieve() ); 
 
    // Locate RegionSelector
-   sc = service("RegSelSvc", m_regionSelector);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve RegionSelector");
-      return sc;
-   }
+   ATH_CHECK( m_regionSelector.retrieve() );
    ATH_MSG_DEBUG("Retrieved service RegionSelector");
 
-   StoreGateSvc* detStore;
-   sc = serviceLocator()->service("DetectorStore", detStore);
-   if (sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve DetectorStore.");
-     return sc;
-   }
+   ServiceHandle<StoreGateSvc> detStore("DetectorStore", name()); 
+   ATH_CHECK( detStore.retrieve() );
    ATH_MSG_DEBUG("Retrieved DetectorStore.");
- 
-   sc = detStore->retrieve( m_muonMgr );
-   if (sc.isFailure()) return sc;
+   ATH_CHECK( detStore->retrieve( m_muonMgr ) );
    ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore.");
    m_rpcIdHelper = m_muonMgr->rpcIdHelper();
-
+  
    ATH_CHECK( m_rpcPrepDataProvider.retrieve() );
    ATH_MSG_DEBUG("Retrieved " << m_rpcPrepDataProvider);
 
@@ -103,25 +93,14 @@ StatusCode TrigL2MuonSA::RpcDataPreparator::initialize()
    ATH_MSG_DEBUG("Retrieved " << m_idHelperTool);
 
    // Retrieve ActiveStore
-   sc = serviceLocator()->service("ActiveStoreSvc", m_activeStore);
-   if (sc.isFailure() || m_activeStore == 0) {
-     ATH_MSG_ERROR(" Cannot get ActiveStoreSvc.");
-     return sc ;
-   }
+   ATH_CHECK( m_activeStore.retrieve() );
    ATH_MSG_DEBUG("Retrieved ActiveStoreSvc."); 
 
    // Retrieve the RPC cabling service
    ServiceHandle<IRPCcablingServerSvc> RpcCabGet ("RPCcablingServerSvc", name());
-   sc = RpcCabGet.retrieve();
-   if ( sc != StatusCode::SUCCESS ) {
-     ATH_MSG_ERROR("Could not retrieve the RPCcablingServerSvc");
-     return sc;
-   }
-   sc = RpcCabGet->giveCabling(m_rpcCabling);
-   if ( sc != StatusCode::SUCCESS ) {
-     ATH_MSG_ERROR("Could not retrieve the RPC Cabling Server");
-     return sc;
-   }
+   ATH_CHECK( RpcCabGet.retrieve() ); 
+   ATH_CHECK( RpcCabGet->giveCabling(m_rpcCabling) );
+
    m_rpcCablingSvc = m_rpcCabling->getRPCCabling();
    if ( !m_rpcCablingSvc ) {
      ATH_MSG_ERROR("Could not retrieve the RPC cabling svc");
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx
index db8e8bafe3ce0ea48aa8570a2aff7c1bcace1b91..360393a67548557318d62aeef93086ceb17a6ed3 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/RpcRoadDefiner.cxx
@@ -24,7 +24,8 @@ TrigL2MuonSA::RpcRoadDefiner::RpcRoadDefiner(const std::string& type,
   AthAlgTool(type, name, parent),
   m_roadData(0),
   m_rWidth_RPC_Failed(0), m_use_rpc(true),
-  m_regionSelector(0), m_mdtIdHelper(0)
+  m_regionSelector( "RegSelSvc", name ), 
+  m_mdtIdHelper(0)
 {
   declareInterface<TrigL2MuonSA::RpcRoadDefiner>(this);
 }
@@ -76,7 +77,8 @@ void TrigL2MuonSA::RpcRoadDefiner::setRpcGeometry(bool use_rpc)
 // --------------------------------------------------------------------------------
 // --------------------------------------------------------------------------------
 
-void TrigL2MuonSA::RpcRoadDefiner::setMdtGeometry(IRegSelSvc* regionSelector, const MdtIdHelper* mdtIdHelper)
+void TrigL2MuonSA::RpcRoadDefiner::setMdtGeometry( const ServiceHandle<IRegSelSvc>& regionSelector, 
+                                                   const MdtIdHelper* mdtIdHelper)
 {
   m_regionSelector = regionSelector;
   m_mdtIdHelper = mdtIdHelper;
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcDataPreparator.cxx
index d21992b019dcdfc92d024270d2afe41fb439b848..15748d4a4c147f3f25474248cc986a67b40cc084 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcDataPreparator.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcDataPreparator.cxx
@@ -42,9 +42,11 @@ TrigL2MuonSA::TgcDataPreparator::TgcDataPreparator(const std::string& type,
 						   const IInterface*  parent): 
   AthAlgTool(type,name,parent),
    m_storeGateSvc( "StoreGateSvc", name ),
+   m_activeStore( "ActiveStoreSvc", name ), 
    m_tgcPrepDataProvider("Muon::TgcRdoToPrepDataTool/TgcPrepDataProviderTool"),
    m_tgcRawDataProvider("Muon::TGC_RawDataProviderTool"),
-   m_regionSelector(0), m_robDataProvider(0),
+   m_regionSelector( "RegSelSvc", name ), 
+   m_robDataProvider( "ROBDataProviderSvc", name ),
    m_options(), m_recMuonRoIUtils()
 {
    declareInterface<TrigL2MuonSA::TgcDataPreparator>(this);
@@ -81,50 +83,25 @@ StatusCode TrigL2MuonSA::TgcDataPreparator::initialize()
    ATH_MSG_DEBUG("Retrieved tool " << m_tgcRawDataProvider);
 
    // Locate RegionSelector
-   sc = service("RegSelSvc", m_regionSelector);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve RegionSelector");
-      return sc;
-   }
+   ATH_CHECK( m_regionSelector.retrieve() );
    ATH_MSG_DEBUG("Retrieved service RegionSelector");
 
-   // Locate ROBDataProvider
-   std::string serviceName = "ROBDataProvider";
-   IService* svc = 0;
-   sc = service("ROBDataProviderSvc", svc);
-   if(sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve " << serviceName);
-      return sc;
-   }
-   m_robDataProvider = dynamic_cast<ROBDataProviderSvc*> (svc);
-   if( m_robDataProvider == 0 ) {
-     ATH_MSG_ERROR("Could not cast to ROBDataProviderSvc ");
-      return StatusCode::FAILURE;
-   }
-   ATH_MSG_DEBUG("Retrieved service " << serviceName);
-
-   StoreGateSvc* detStore(0);
-   sc = serviceLocator()->service("DetectorStore", detStore);
-   if (sc.isFailure()) {
-     ATH_MSG_ERROR("Could not retrieve DetectorStore.");
-     return sc;
-   }
+   ServiceHandle<StoreGateSvc> detStore( "DetectorStore", name() );
+   ATH_CHECK( detStore.retrieve() );
    ATH_MSG_DEBUG("Retrieved DetectorStore.");
- 
-   sc = detStore->retrieve( m_muonMgr,"Muon" );
-   if (sc.isFailure()) return sc;
+   ATH_CHECK( detStore->retrieve( m_muonMgr,"Muon" ) );
    ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore.");
    m_tgcIdHelper = m_muonMgr->tgcIdHelper();
 
+   ATH_CHECK( m_activeStore.retrieve() ); 
+   ATH_MSG_DEBUG("Retrieved ActiveStoreSvc." );
+
    ATH_CHECK( m_tgcPrepDataProvider.retrieve() );
-   ATH_MSG_DEBUG("Retrieved m_tgcPrepDataProvider");
+   ATH_MSG_DEBUG("Retrieved tool " << m_tgcPrepDataProvider );
 
-   sc = serviceLocator()->service("ActiveStoreSvc", m_activeStore);
-   if (sc.isFailure()) {
-     ATH_MSG_ERROR(" Cannot get ActiveStoreSvc.");
-     return sc ;
-   }
-   ATH_MSG_DEBUG("Retrieved ActiveStoreSvc." );
+   // Locate ROBDataProvider
+   ATH_CHECK( m_robDataProvider.retrieve() );
+   ATH_MSG_DEBUG("Retrieved service " << m_robDataProvider.name() );
 
    ATH_CHECK(m_tgcContainerKey.initialize());
       
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcRoadDefiner.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcRoadDefiner.cxx
index 62d697544a06582fa091a92ccf81f8006fe0ac99..291a94f7d4c27027177e26756c6dd0567caa0a3a 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcRoadDefiner.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TgcRoadDefiner.cxx
@@ -32,7 +32,7 @@ TrigL2MuonSA::TgcRoadDefiner::TgcRoadDefiner(const std::string& type,
      m_ptEndcapLUT(0),
      m_tgcFit("TrigL2MuonSA::TgcFit"),
      m_rWidth_TGC_Failed(0),
-     m_regionSelector(0),
+     m_regionSelector( "RegSelSvc", name ),
      m_mdtIdHelper(0)
 {
   declareInterface<TrigL2MuonSA::TgcRoadDefiner>(this);
@@ -73,7 +73,8 @@ StatusCode TrigL2MuonSA::TgcRoadDefiner::initialize()
 // --------------------------------------------------------------------------------
 // --------------------------------------------------------------------------------
 
-void TrigL2MuonSA::TgcRoadDefiner::setMdtGeometry(IRegSelSvc* regionSelector, const MdtIdHelper* mdtIdHelper)
+void TrigL2MuonSA::TgcRoadDefiner::setMdtGeometry( const ServiceHandle<IRegSelSvc>& regionSelector, 
+                                                   const MdtIdHelper* mdtIdHelper)
 {
   m_regionSelector = regionSelector;
   m_mdtIdHelper = mdtIdHelper;
diff --git a/Trigger/TrigAnalysis/TrigDecisionTool/Root/TrigDecisionTool.cxx b/Trigger/TrigAnalysis/TrigDecisionTool/Root/TrigDecisionTool.cxx
index 117226b86ba38246b8a4f0fa9360fe7438010ddf..fe262391681fdda13dac3c459fc9a7d91ecba8ed 100644
--- a/Trigger/TrigAnalysis/TrigDecisionTool/Root/TrigDecisionTool.cxx
+++ b/Trigger/TrigAnalysis/TrigDecisionTool/Root/TrigDecisionTool.cxx
@@ -84,7 +84,7 @@ Trig::TrigDecisionTool::TrigDecisionTool(const std::string& name) :
 }
 
 #ifdef ASGTOOL_ATHENA
-void Trig::TrigDecisionTool::outputlevelupdateHandler(Property& p) {
+void Trig::TrigDecisionTool::outputlevelupdateHandler(Property& /*p*/) {
    //call the original update handler
    Logger::msg().setLevel(AthMessaging::msg().level());
 }
diff --git a/Trigger/TrigAnalysis/TrigEffJpsiTools/src/MuonRoiWithExtendedBunches.h b/Trigger/TrigAnalysis/TrigEffJpsiTools/src/MuonRoiWithExtendedBunches.h
index a51fa59c7e5d97b995a2335371c54d8afde75981..bc048635a0c833bddeb461a2dfcc925213477e43 100644
--- a/Trigger/TrigAnalysis/TrigEffJpsiTools/src/MuonRoiWithExtendedBunches.h
+++ b/Trigger/TrigAnalysis/TrigEffJpsiTools/src/MuonRoiWithExtendedBunches.h
@@ -19,10 +19,9 @@
  *--------------------------------------------------------------------*/
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ServiceHandle.h"
+#include "TrigT1Interfaces/RecMuonRoiSvc.h"
 
 namespace ROIB { class RoIBResult; }
-namespace LVL1 { class RecMuonRoiSvc; }
-
 
 namespace MuComm {
 enum {
diff --git a/Trigger/TrigAnalysis/TriggerMatchingTool/Root/MatchingTool.cxx b/Trigger/TrigAnalysis/TriggerMatchingTool/Root/MatchingTool.cxx
index 48e8caea582f2eb68cead64e04d84661633e9f76..d4f14209fa90962f993f8e9f1b89e11ecf06450b 100644
--- a/Trigger/TrigAnalysis/TriggerMatchingTool/Root/MatchingTool.cxx
+++ b/Trigger/TrigAnalysis/TriggerMatchingTool/Root/MatchingTool.cxx
@@ -37,7 +37,7 @@ namespace Trig {
   }
 
 #ifndef XAOD_STANDALONE
-  void MatchingTool::updateOutputLevel(Property& p) {
+  void MatchingTool::updateOutputLevel(Property& /*p*/) {
     impl()->msg().setLevel(msgLevel()); //pass on our message level to the matchingimplementation
   }
 #endif
diff --git a/Trigger/TrigDataAccess/TrigSerializeCnvSvc/TrigSerializeCnvSvc/TrigSerializeConverter.h b/Trigger/TrigDataAccess/TrigSerializeCnvSvc/TrigSerializeCnvSvc/TrigSerializeConverter.h
index 8548f28dc3bde18a26b242b86c440685fc53c8fa..8a13f6b306e643ff1b9b1ace5b19fc663cca6860 100755
--- a/Trigger/TrigDataAccess/TrigSerializeCnvSvc/TrigSerializeCnvSvc/TrigSerializeConverter.h
+++ b/Trigger/TrigDataAccess/TrigSerializeCnvSvc/TrigSerializeCnvSvc/TrigSerializeConverter.h
@@ -282,8 +282,6 @@ public:
       m_log = new MsgStream( msgSvc(), "TrigSerializeConverter" );
    }
 
-protected:
-
    ~TrigSerializeConverter(){
       delete m_log;
    }
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/CombinedMuonFeatureCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/CombinedMuonFeatureCnv.h
index 52f530ff86f9cb2b5dbfaedc721b56ebcf466614..39eadacd13875c6b023d9e0094dbb7426e49c368 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/CombinedMuonFeatureCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/CombinedMuonFeatureCnv.h
@@ -42,12 +42,11 @@ typedef T_AthenaPoolCustomCnv<CombinedMuonFeature, CombinedMuonFeature_PERS>
  class CombinedMuonFeatureCnv : public CombinedMuonFeatureCnvBase {
  friend class CnvFactory<CombinedMuonFeatureCnv>;
  
- protected:
 public:
  CombinedMuonFeatureCnv( ISvcLocator *svcloc );
-protected:
  ~CombinedMuonFeatureCnv();
     
+protected:
    virtual CombinedMuonFeature_PERS* createPersistent( CombinedMuonFeature *transObj);
    virtual CombinedMuonFeature* createTransient();
  
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/FTK_RawTrackContainerCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/FTK_RawTrackContainerCnv.h
index 9145158d5a4fc6861933e4ef200f97a557b1deb0..4c2ac89a740556f71433f6575e5f683a094de2d3 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/FTK_RawTrackContainerCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/FTK_RawTrackContainerCnv.h
@@ -38,9 +38,9 @@ class FTK_RawTrackContainerCnv : public FTK_RawTrackContainerCnvBase{
 
 public:
   FTK_RawTrackContainerCnv(ISvcLocator* svcloc);
-protected:
   ~FTK_RawTrackContainerCnv();
 
+protected:
   virtual FTK_RawTrackContainer_PERS*  createPersistent(FTK_RawTrackContainer* transObj);
   virtual FTK_RawTrackContainer*       createTransient ();
 
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/IsoMuonFeatureCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/IsoMuonFeatureCnv.h
index 6c9564d6b417425cb6a1bbfe8cb59b9d381464f6..f11cc54b23e56e5bd7d01d424f29f702414dcdee 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/IsoMuonFeatureCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/IsoMuonFeatureCnv.h
@@ -40,12 +40,11 @@ typedef T_AthenaPoolCustomCnv<IsoMuonFeature, IsoMuonFeature_PERS>
  class IsoMuonFeatureCnv : public IsoMuonFeatureCnvBase {
  friend class CnvFactory<IsoMuonFeatureCnv>;
  
- protected:
 public:
  IsoMuonFeatureCnv( ISvcLocator *svcloc );
-protected:
  ~IsoMuonFeatureCnv();
     
+protected:
    virtual IsoMuonFeature_PERS* createPersistent( IsoMuonFeature *transObj);
    virtual IsoMuonFeature* createTransient();
  
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureCnv.h
index a70057af893f3042a773266cf41db9e68f9a9287..c5eb6f0b84e7a5275a7631cac7834176e55a74de 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureCnv.h
@@ -36,12 +36,11 @@ class MuonFeatureCnv : public MuonFeatureCnvBase {
 
   friend class CnvFactory<MuonFeatureCnv>;
 
- protected:
 public:
   MuonFeatureCnv(ISvcLocator *svcloc);
-protected:
   ~MuonFeatureCnv();
 
+protected:
   virtual MuonFeature_PERS  *createPersistent(MuonFeature *transObj);
   virtual MuonFeature       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureDetailsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureDetailsCnv.h
index 87e1f9631860f3fb41f37ebb4e9be05db5540259..a81ab4eae8b2d73ff07b551c8bf93a9b91fe842d 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureDetailsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/MuonFeatureDetailsCnv.h
@@ -24,12 +24,11 @@ class MuonFeatureDetailsCnv : public MuonFeatureDetailsCnvBase {
 
   friend class CnvFactory<MuonFeatureDetailsCnv>;
 
- protected:
 public:
   MuonFeatureDetailsCnv(ISvcLocator *svcloc);
-protected:
   ~MuonFeatureDetailsCnv();
 
+protected:
   virtual MuonFeatureDetails_PERS  *createPersistent(MuonFeatureDetails *transObj);
   virtual MuonFeatureDetails       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/RingerRingsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/RingerRingsCnv.h
index 9fa357f46339b3775c081e0c0a49347ddb13639f..0e35b4510b703abeb004f754f9b8f746149d2e02 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/RingerRingsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/RingerRingsCnv.h
@@ -35,9 +35,9 @@ class RingerRingsCnv  : public T_AthenaPoolCustomCnv<RingerRings, RingerRings_PE
   
 public:
   RingerRingsCnv(ISvcLocator* svcloc);
-protected:
   ~RingerRingsCnv();
 
+protected:
   RingerRings_PERS*  createPersistent(RingerRings* transCont);
 
   RingerRings*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TileMuFeatureCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TileMuFeatureCnv.h
index a5a3752855ce7bb80ad973ce8854f3569e16d13e..574c6cf2ad502e0eb4523b14b62fb1c8331df22a 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TileMuFeatureCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TileMuFeatureCnv.h
@@ -34,12 +34,11 @@ class TileMuFeatureCnv : public TileMuFeatureCnvBase {
 
   friend class CnvFactory<TileMuFeatureCnv>;
 
- protected:
 public:
   TileMuFeatureCnv(ISvcLocator *svcloc);
-protected:
   ~TileMuFeatureCnv();
 
+protected:
   virtual TileMuFeature_PERS  *createPersistent(TileMuFeature *transObj);
   virtual TileMuFeature       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigCompositeCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigCompositeCnv.h
index 86296e21e35340bea355912e50b35cba29e084ab..e32f08fe1aa661617e1d1a332ce25977944307b8 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigCompositeCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigCompositeCnv.h
@@ -29,13 +29,11 @@ class TrigCompositeCnv  : public T_AthenaPoolCustomCnv<TrigComposite, TrigCompos
 
   friend class CnvFactory<TrigCompositeCnv>;
 
- protected:
-  
 public:
   TrigCompositeCnv(ISvcLocator* svcloc);
-protected:
   ~TrigCompositeCnv();
 
+protected:
   TrigComposite_PERS*  createPersistent(TrigComposite* transCont);
 
   TrigComposite*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigDecisionCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigDecisionCnv.h
index 05f0c721a01d83dafba0eacfcc645dbf6b7156c1..77584f8d57780bd6a0704a7c881fdb00522a7a19 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigDecisionCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigDecisionCnv.h
@@ -42,12 +42,11 @@ class TrigDecisionCnv : public TrigDecisionCnvBase {
 
   friend class CnvFactory<TrigDecisionCnv >;
 
- protected:
 public:
   TrigDecisionCnv (ISvcLocator* svcloc);
-protected:
   ~TrigDecisionCnv ();
 
+protected:
     virtual TrigDecision_PERS*     createPersistent (TrigDec::TrigDecision* transCont);
     virtual TrigDec::TrigDecision* createTransient ();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBjetContainerCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBjetContainerCnv.h
index 30f8d12e90352744de0eab163f9360625d856ba4..37d438f7b5ca9ddf21372a81ee6cbaa249bb27ac 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBjetContainerCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBjetContainerCnv.h
@@ -46,9 +46,9 @@ class TrigEFBjetContainerCnv : public TrigEFBjetContainerCnvBase
    
 public:
   TrigEFBjetContainerCnv( ISvcLocator *svcloc );
-protected:
   ~TrigEFBjetContainerCnv();
   
+protected:
   
    virtual TrigEFBjetContainer_PERS *createPersistent( TrigEFBjetContainer *transObj);
    virtual TrigEFBjetContainer      *createTransient();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBphysContainerCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBphysContainerCnv.h
index 869ebe2814178b8e89ee578b131feac4b375df58..b02187174217988f1fc7596f0ffe0d87ea1212ba 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBphysContainerCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEFBphysContainerCnv.h
@@ -46,9 +46,9 @@ class TrigEFBphysContainerCnv : public TrigEFBphysContainerCnvBase
    
 public:
   TrigEFBphysContainerCnv( ISvcLocator *svcloc );
-protected:
   ~TrigEFBphysContainerCnv();
   
+protected:
   
    virtual TrigEFBphysContainer_PERS *createPersistent( TrigEFBphysContainer *transObj);
    virtual TrigEFBphysContainer      *createTransient();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEMClusterCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEMClusterCnv.h
index ed72c1126602c432b6148bebc6cb0546388ba512..72c32fdb82f2e6d21c1c88b0b896a9fe0ae1bda5 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEMClusterCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigEMClusterCnv.h
@@ -33,13 +33,11 @@ class TrigEMClusterCnv  : public T_AthenaPoolCustomCnv<TrigEMCluster, TrigEMClus
 
   friend class CnvFactory<TrigEMClusterCnv>;
 
- protected:
-  
 public:
   TrigEMClusterCnv(ISvcLocator* svcloc);
-protected:
   ~TrigEMClusterCnv();
 
+protected:
   TrigEMCluster_PERS*  createPersistent(TrigEMCluster* transCont);
 
   TrigEMCluster*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto1DCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto1DCnv.h
index 63fe0ef1def27d6492446b84f02317c424556044..87634dc12a0abcc7c30dc232ffca006801a1d672 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto1DCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto1DCnv.h
@@ -30,12 +30,11 @@ typedef T_AthenaPoolCustomCnv<TrigHisto1D, TrigHisto1D_PERS > TrigHisto1DCnvBase
 class TrigHisto1DCnv : public TrigHisto1DCnvBase {
   friend class CnvFactory<TrigHisto1DCnv>;
   
- protected:
 public:
   TrigHisto1DCnv(ISvcLocator* svcloc);
-protected:
   ~TrigHisto1DCnv();
   
+protected:
   TrigHisto1D_PERS* createPersistent(TrigHisto1D* transObj);
   TrigHisto1D* createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto2DCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto2DCnv.h
index b15e8da75cbd6d1c43e11965cfb2aadd46a05b19..9fb6a271f89f4e1fd8d0974f9a0c7c2ee1102408 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto2DCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigHisto2DCnv.h
@@ -29,12 +29,11 @@ typedef T_AthenaPoolCustomCnv<TrigHisto2D, TrigHisto2D_PERS > TrigHisto2DCnvBase
 class TrigHisto2DCnv : public TrigHisto2DCnvBase {
   friend class CnvFactory<TrigHisto2DCnv>;
   
- protected:
 public:
   TrigHisto2DCnv(ISvcLocator* svcloc);
-protected:
   ~TrigHisto2DCnv();
   
+protected:
   TrigHisto2D_PERS* createPersistent(TrigHisto2D* transObj);
   TrigHisto2D* createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigInDetTrackCollectionCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigInDetTrackCollectionCnv.h
index 17dc2d42a8ac28237d6bcdbbb2649d482de572df..697044dfa60f59772ac75932864f6779390af1d9 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigInDetTrackCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigInDetTrackCollectionCnv.h
@@ -34,13 +34,11 @@ class TrigInDetTrackCollectionCnv : public TrigInDetTrackCollectionCnvBase{
 
   friend class CnvFactory<TrigInDetTrackCollectionCnv>;
 
- protected:
-
 public:
   TrigInDetTrackCollectionCnv(ISvcLocator* svcloc);
-protected:
   ~TrigInDetTrackCollectionCnv();
 
+protected:
   virtual TrigInDetTrackCollection_PERS*  createPersistent(TrigInDetTrackCollection* transObj);
   virtual TrigInDetTrackCollection*       createTransient ();
 
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigL2BphysContainerCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigL2BphysContainerCnv.h
index 435e542e1f97e86608f5bd996c11ad3553ed41c5..3be870193736c067fe275547b2fc3bf6b6f177f5 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigL2BphysContainerCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigL2BphysContainerCnv.h
@@ -48,10 +48,9 @@ class TrigL2BphysContainerCnv : public TrigL2BphysContainerCnvBase
    
 public:
   TrigL2BphysContainerCnv( ISvcLocator *svcloc );
-protected:
-
   ~TrigL2BphysContainerCnv();
  
+protected:
    
    virtual TrigL2BphysContainer_PERS *createPersistent( TrigL2BphysContainer *transObj);
    virtual TrigL2BphysContainer      *createTransient();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMissingETCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMissingETCnv.h
index b32f1cdb5ea15c948ce1c6cdf3897c32b938e7b3..26e4dcc68382d186009dfd39dd185192d66172a8 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMissingETCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMissingETCnv.h
@@ -38,9 +38,9 @@ class TrigMissingETCnv : public TrigMissingETCnvBase {
  protected:
 public:
   TrigMissingETCnv(ISvcLocator *svcloc);
-protected:
   ~TrigMissingETCnv();
 
+protected:
   virtual TrigMissingET_PERS  *createPersistent(TrigMissingET *transObj);
   virtual TrigMissingET       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCnv.h
index 076bcfc9f778f0034fd761b0ab6f1fb338d72880..99556ebaac4d881e539c0cc820e691ecbeddc496 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCnv.h
@@ -23,9 +23,9 @@ class TrigMonConfigCnv : public T_AthenaPoolCustomCnv<TrigMonConfig, TrigMonConf
   
 public:
   TrigMonConfigCnv(ISvcLocator* svcloc);
-protected:
   virtual ~TrigMonConfigCnv();
 
+protected:
   TrigMonConfig_PERS*  createPersistent(TrigMonConfig* transObj);  
   TrigMonConfig*       createTransient ();
 
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCollectionCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCollectionCnv.h
index 8770c6f45d9a5e022391180148561b537f3a04db..db129c58aa0a6b18e5d5ab876d2063f41254e180 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonConfigCollectionCnv.h
@@ -23,10 +23,9 @@ class TrigMonConfigCollectionCnv
 
 public:
   TrigMonConfigCollectionCnv(ISvcLocator* svcloc);
-
- protected:
   virtual ~TrigMonConfigCollectionCnv();
 
+ protected:
   TrigMonConfigCollection_PERS*  createPersistent(TrigMonConfigCollection* transObj);
   TrigMonConfigCollection*       createTransient ();
 
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCnv.h
index 2e6123c356561a10a67e8d2646b85a88363a16d6..e3d3131617a2f7b9f64e4d58ad55e0413ba74d76 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCnv.h
@@ -23,9 +23,9 @@ class TrigMonEventCnv : public T_AthenaPoolCustomCnv<TrigMonEvent, TrigMonEvent_
   
 public:
   TrigMonEventCnv(ISvcLocator* svcloc);
-protected:
   virtual ~TrigMonEventCnv();
 
+protected:
   TrigMonEvent_PERS*  createPersistent(TrigMonEvent* transObj);  
   TrigMonEvent*       createTransient ();
 
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCollectionCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCollectionCnv.h
index 661e82b90a74174c07b0cda94b0ad7b3425002b1..b659e7c7ee905c21261a216621e07b805847ad9a 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMonEventCollectionCnv.h
@@ -23,10 +23,9 @@ class TrigMonEventCollectionCnv
 
  public:  
   TrigMonEventCollectionCnv(ISvcLocator* svcloc);
-
- protected:
   virtual ~TrigMonEventCollectionCnv();
 
+ protected:
   TrigMonEventCollection_PERS*  createPersistent(TrigMonEventCollection* transObj);
   TrigMonEventCollection*       createTransient ();
 
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonClusterFeatureContainerCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonClusterFeatureContainerCnv.h
index 2bdafa5c218125c35beba8ee3c3106ef72691b86..ba786abfb7cbaec4a5de9de7bdfb815bbd7c3509 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonClusterFeatureContainerCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonClusterFeatureContainerCnv.h
@@ -43,13 +43,11 @@ class TrigMuonClusterFeatureContainerCnv : public TrigMuonClusterFeatureContaine
   
   friend class CnvFactory<TrigMuonClusterFeatureContainerCnv>;
   
- protected:
-  
 public:
   TrigMuonClusterFeatureContainerCnv( ISvcLocator *svcloc );
-protected:
   ~TrigMuonClusterFeatureContainerCnv();
   
+protected:
   virtual TrigMuonClusterFeatureContainer_PERS *createPersistent( TrigMuonClusterFeatureContainer *transObj);
   virtual TrigMuonClusterFeatureContainer      *createTransient();
   
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonEFInfoContainerCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonEFInfoContainerCnv.h
index 6720ef65482625309098f57709fe006162327cbd..842ac0c3b67cc5bd4dce97cae4cfa3da5f1f9360 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonEFInfoContainerCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigMuonEFInfoContainerCnv.h
@@ -35,13 +35,11 @@ class TrigMuonEFInfoContainerCnv : public TrigMuonEFInfoContainerCnvBase{
   
   friend class CnvFactory<TrigMuonEFInfoContainerCnv>;
   
- protected:
-  
 public:
   TrigMuonEFInfoContainerCnv( ISvcLocator *svcloc );
-protected:
   ~TrigMuonEFInfoContainerCnv();
   
+protected:
   virtual TrigMuonEFInfoContainer_PERS *createPersistent( TrigMuonEFInfoContainer *transObj);
   virtual TrigMuonEFInfoContainer      *createTransient();
   
@@ -57,4 +55,4 @@ protected:
 };
 
 
-#endif 
\ No newline at end of file
+#endif 
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigRNNOutputCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigRNNOutputCnv.h
index 941761a2750011836282d48ad1d4644a2165c8aa..86b6890cff5dc9d81002270eaff3ee28bb61feb8 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigRNNOutputCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigRNNOutputCnv.h
@@ -36,9 +36,9 @@ class TrigRNNOutputCnv  : public T_AthenaPoolCustomCnv<TrigRNNOutput, TrigRNNOut
   
 public:
   TrigRNNOutputCnv(ISvcLocator* svcloc);
-protected:
   ~TrigRNNOutputCnv();
 
+protected:
   TrigRNNOutput_PERS*  createPersistent(TrigRNNOutput* transCont);
 
   TrigRNNOutput*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigSpacePointCountsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigSpacePointCountsCnv.h
index 829509f4b2fdd775d32995ae8084ad22114535fd..4743556760fee66cb9fca5dda97a3267c8597b2c 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigSpacePointCountsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigSpacePointCountsCnv.h
@@ -34,12 +34,11 @@ class TrigSpacePointCountsCnv : public TrigSpacePointCountsCnvBase {
 
   virtual StatusCode initialize();
 
- protected:
 public:
   TrigSpacePointCountsCnv(ISvcLocator *svcloc);
-protected:
   ~TrigSpacePointCountsCnv();
 
+protected:
   virtual TrigSpacePointCounts_PERS  *createPersistent(TrigSpacePointCounts *transObj);
   virtual TrigSpacePointCounts       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2JetCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2JetCnv.h
index 85b774584c123066391798028a0c225c97fef3c1..60faaaca02c85d445626c45821858d5670ac4365 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2JetCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2JetCnv.h
@@ -45,9 +45,9 @@ class TrigT2JetCnv : public TrigT2JetCnvBase
    
 public:
   TrigT2JetCnv( ISvcLocator *svcloc );
-protected:
   ~TrigT2JetCnv();
  
+protected:
    
    virtual TrigT2Jet_PERS *createPersistent( TrigT2Jet *transObj);
    virtual TrigT2Jet      *createTransient();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2MbtsBitsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2MbtsBitsCnv.h
index 356fdb332366118ff74d251591dc6caab89b32a4..d517e92871887fbf4475c693d93068e4d92d7fff 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2MbtsBitsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigT2MbtsBitsCnv.h
@@ -29,12 +29,11 @@ typedef T_AthenaPoolCustomCnv<TrigT2MbtsBits, TrigT2MbtsBits_PERS > TrigT2MbtsBi
 class TrigT2MbtsBitsCnv : public TrigT2MbtsBitsCnvBase {
   friend class CnvFactory<TrigT2MbtsBitsCnv>;
   
- protected:
 public:
   TrigT2MbtsBitsCnv(ISvcLocator* svcloc);
-protected:
   ~TrigT2MbtsBitsCnv();
   
+protected:
   TrigT2MbtsBits_PERS* createPersistent(TrigT2MbtsBits* transObj);
   TrigT2MbtsBits* createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterCnv.h
index 400420210065e389ee8b48da0ebab19d9af2f9fa..4a850e5a92c8c8004b521fe4e7f1a31b277d6f85 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterCnv.h
@@ -33,12 +33,11 @@ class TrigTauClusterCnv : public T_AthenaPoolCustomCnv<TrigTauCluster, TrigTauCl
 
   friend class CnvFactory<TrigTauClusterCnv>;
   
- protected:
 public:
   TrigTauClusterCnv(ISvcLocator* svcloc);
-protected:
   ~TrigTauClusterCnv();
 
+protected:
   TrigTauCluster_PERS*  createPersistent(TrigTauCluster* transCont);
 
   TrigTauCluster*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterDetailsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterDetailsCnv.h
index d54d6d44d45a389e47991f1db447b0b0a3dd6329..0c154b2ac88207624aae22d1c16064e01d805d1b 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterDetailsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauClusterDetailsCnv.h
@@ -33,12 +33,11 @@ class TrigTauClusterDetailsCnv : public T_AthenaPoolCustomCnv<TrigTauClusterDeta
 
   friend class CnvFactory<TrigTauClusterDetailsCnv>;
   
- protected:
 public:
   TrigTauClusterDetailsCnv(ISvcLocator* svcloc);
-protected:
   ~TrigTauClusterDetailsCnv();
 
+protected:
   TrigTauClusterDetails_PERS*  createPersistent(TrigTauClusterDetails* transCont);
 
   TrigTauClusterDetails*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauCnv.h
index 9e150440559a70a84e4a9bc90ba87a5e88c65818..e6b0214472b315f6367a3d469c464cfd4e9359aa 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTauCnv.h
@@ -37,9 +37,9 @@ class TrigTauCnv : public T_AthenaPoolCustomCnv<TrigTau, TrigTau_PERS >
   
 public:
   TrigTauCnv(ISvcLocator* svcloc);
-protected:
   ~TrigTauCnv();
 
+protected:
   TrigTau_PERS*  createPersistent(TrigTau* transCont);
 
   TrigTau*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCnv.h
index c82ed2ceec976156c8886c4b4ab8f0d4213ac0a2..6978e95a08b55df55c6b1a6752d4a88a4c005b62 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCnv.h
@@ -33,12 +33,11 @@ class TrigTrackCountsCnv : public TrigTrackCountsCnvBase {
 
   friend class CnvFactory<TrigTrackCountsCnv>;
 
- protected:
 public:
   TrigTrackCountsCnv(ISvcLocator *svcloc);
-protected:
   ~TrigTrackCountsCnv();
 
+protected:
   virtual TrigTrackCounts_PERS  *createPersistent(TrigTrackCounts *transObj);
   virtual TrigTrackCounts       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCollectionCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCollectionCnv.h
index aa0271a95c0031be62a30e956f21ab1d14ad4db9..d1d8ec9e398b8a10c97a5020952c802e40166f7f 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrackCountsCollectionCnv.h
@@ -41,13 +41,11 @@ class TrigTrackCountsCollectionCnv : public TrigTrackCountsCollectionCnvBase
   
   friend class CnvFactory<TrigTrackCountsCollectionCnv>;
   
- protected:
-  
 public:
   TrigTrackCountsCollectionCnv( ISvcLocator *svcloc );
-protected:
   ~TrigTrackCountsCollectionCnv();
   
+protected:
   virtual TrigTrackCountsCollection_PERS *createPersistent( TrigTrackCountsCollection *transObj);
   virtual TrigTrackCountsCollection      *createTransient();
   
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrtHitCountsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrtHitCountsCnv.h
index 09ea6a5c7bc27b5d870fd7377b24f95ce1bd621b..d67fb05812f9622b11691fb2848e35c47094156c 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrtHitCountsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigTrtHitCountsCnv.h
@@ -29,12 +29,11 @@ typedef T_AthenaPoolCustomCnv<TrigTrtHitCounts, TrigTrtHitCounts_PERS > TrigTrtH
 class TrigTrtHitCountsCnv : public TrigTrtHitCountsCnvBase {
   friend class CnvFactory<TrigTrtHitCountsCnv>;
   
- protected:
 public:
   TrigTrtHitCountsCnv(ISvcLocator* svcloc);
-protected:
   ~TrigTrtHitCountsCnv();
   
+protected:
   TrigTrtHitCounts_PERS* createPersistent(TrigTrtHitCounts* transObj);
   TrigTrtHitCounts* createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCollectionCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCollectionCnv.h
index 7223eedc926fbae57944794abe84168286259998..866d248760d7537d2bd1c17aef23cb913d994bb4 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCollectionCnv.h
@@ -44,13 +44,11 @@ class TrigVertexCollectionCnv : public TrigVertexCollectionCnvBase
   
   friend class CnvFactory<TrigVertexCollectionCnv>;
  
-  protected:
-   
 public:
   TrigVertexCollectionCnv( ISvcLocator *svcloc );
-protected:
   ~TrigVertexCollectionCnv();
 
+protected:
    virtual TrigVertexCollection_PERS *createPersistent( TrigVertexCollection *transObj);
    virtual TrigVertexCollection      *createTransient();
  
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCnv.h
index 2c2424160acd90820af8b720fe125c392378dda5..8fcd7103c147477716978d8c71c637253977a16a 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCnv.h
@@ -29,12 +29,11 @@ typedef T_AthenaPoolCustomCnv<TrigVertexCounts, TrigVertexCounts_PERS > TrigVert
 class TrigVertexCountsCnv : public TrigVertexCountsCnvBase {
   friend class CnvFactory<TrigVertexCountsCnv>;
   
- protected:
 public:
   TrigVertexCountsCnv(ISvcLocator* svcloc);
-protected:
   ~TrigVertexCountsCnv();
   
+protected:
   TrigVertexCounts_PERS* createPersistent(TrigVertexCounts* transObj);
   TrigVertexCounts* createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCollectionCnv.h b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCollectionCnv.h
index 5d501d1e79e216ebfc32f14b4962b16b31b33fac..4b837b50413b9895290907e89b74f1559e78384f 100644
--- a/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigEventAthenaPool/src/TrigVertexCountsCollectionCnv.h
@@ -37,13 +37,11 @@ class TrigVertexCountsCollectionCnv : public TrigVertexCountsCollectionCnvBase
   
   friend class CnvFactory<TrigVertexCountsCollectionCnv>;
  
-  protected:
-   
 public:
   TrigVertexCountsCollectionCnv( ISvcLocator *svcloc );
-protected:
   ~TrigVertexCountsCollectionCnv();
    
+protected:
    virtual TrigVertexCountsCollection_PERS *createPersistent( TrigVertexCountsCollection *transObj);
    virtual TrigVertexCountsCollection      *createTransient();
   
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/HLTResultCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/HLTResultCnv.h
index 54f138767b7778e62d73464e58843d546525a210..fd58e00d2cdf956ca5425dc8cc044e4f94fda0dd 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/HLTResultCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/HLTResultCnv.h
@@ -41,14 +41,12 @@ class HLTResultCnv : public HLTResultCnvBase {
   
   friend class CnvFactory< HLTResultCnv >;
   
- protected:
-
 public:
   HLTResultCnv (ISvcLocator* svcloc);
-protected:
-
   ~HLTResultCnv();
 
+protected:
+
   virtual HLTResult_PERS* createPersistent (HLT::HLTResult* transCont);
 
   virtual HLT::HLTResult* createTransient ();
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/Lvl1ResultCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/Lvl1ResultCnv.h
index 78dbce2eda68a679fa07bef1da35a205c3ba2354..459df9a44585b5782a7e257e66c2975861d149fc 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/Lvl1ResultCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/Lvl1ResultCnv.h
@@ -38,14 +38,12 @@ class Lvl1ResultCnv : public Lvl1ResultCnvBase {
 
   friend class CnvFactory< Lvl1ResultCnv >;
 
- protected:
-
 public:
   Lvl1ResultCnv (ISvcLocator* svcloc);
-protected:
-
   ~Lvl1ResultCnv();
 
+protected:
+
   virtual Lvl1Result_PERS* createPersistent (LVL1CTP::Lvl1Result* transCont);
 
   virtual LVL1CTP::Lvl1Result* createTransient ();
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCnv.h
index 2d567c93e34ca369602fcab6e8aebdb5b2e6ff69..44f0715fe0af16cbedc93a29ad4ce52afb19da2d 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCnv.h
@@ -37,9 +37,9 @@ class TrigOperationalInfoCnv : public T_AthenaPoolCustomCnv<TrigOperationalInfo,
   
 public:
   TrigOperationalInfoCnv(ISvcLocator* svcloc);
-protected:
   ~TrigOperationalInfoCnv();
 
+protected:
   TrigOperationalInfo_PERS*  createPersistent(TrigOperationalInfo* transObj);
 
   TrigOperationalInfo*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCollectionCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCollectionCnv.h
index 774218c6ec03edf90a906e5ef4415e43a383c827..c187d596d87906adfd6037ec4f593b855364121c 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigOperationalInfoCollectionCnv.h
@@ -33,13 +33,11 @@ class TrigOperationalInfoCollectionCnv : public T_AthenaPoolCustomCnv<TrigOperat
 
   friend class CnvFactory<TrigOperationalInfoCollectionCnv>;
 
- protected:
-  
 public:
   TrigOperationalInfoCollectionCnv(ISvcLocator* svcloc);
-protected:
   ~TrigOperationalInfoCollectionCnv();
 
+protected:
   TrigOperationalInfoCollection_PERS*  createPersistent(TrigOperationalInfoCollection* transObj);
 
   TrigOperationalInfoCollection*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassBitsCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassBitsCnv.h
index e9799c36ad45570a05f53b024b1e69821e6acc82..b4c31761f891ae5e55018c2bf263368444f52744 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassBitsCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassBitsCnv.h
@@ -36,12 +36,11 @@ class TrigPassBitsCnv : public TrigPassBitsCnvBase {
 
   friend class CnvFactory<TrigPassBitsCnv>;
 
- protected:
 public:
   TrigPassBitsCnv(ISvcLocator *svcloc);
-protected:
   ~TrigPassBitsCnv();
 
+protected:
   virtual TrigPassBits_PERS  *createPersistent(TrigPassBits *transObj);
   virtual TrigPassBits       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.cxx b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.cxx
index 82f116395d31ea980d21e2194e3621a799e653d0..c80910e8814e8920ee4ff0e68474815c9b10370d 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.cxx
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.cxx
@@ -7,7 +7,6 @@
 
 
 TrigPassFlagsCnv::TrigPassFlagsCnv(ISvcLocator *svcloc): TrigPassFlagsCnvBase(svcloc) {}
-TrigPassFlagsCnv::~TrigPassFlagsCnv(){}
 
 //createPersistent
 TrigPassFlags_PERS* TrigPassFlagsCnv::createPersistent(TrigPassFlags* transObj) {
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.h
index b2f566a03ba4c19b50bd79e514c77f33404f15c7..cdfe67480eeb10c6667f27edb5aa6bec41fa2e37 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigPassFlagsCnv.h
@@ -36,12 +36,10 @@ class TrigPassFlagsCnv : public TrigPassFlagsCnvBase {
 
   friend class CnvFactory<TrigPassFlagsCnv>;
 
- protected:
 public:
   TrigPassFlagsCnv(ISvcLocator *svcloc);
-protected:
-  ~TrigPassFlagsCnv();
 
+protected:
   virtual TrigPassFlags_PERS  *createPersistent(TrigPassFlags *transObj);
   virtual TrigPassFlags       *createTransient();
 };
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCnv.h
index 3c73f7d18dea9be6aaeb3fe7673927130083ca0b..f02baeda0939ee0bb19dbdc16d3ebe3c46529398 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCnv.h
@@ -34,13 +34,11 @@ class TrigRoiDescriptorCnv : public T_AthenaPoolCustomCnv<TrigRoiDescriptor, Tri
 
   friend class CnvFactory<TrigRoiDescriptorCnv>;
 
- protected:
-  
 public:
   TrigRoiDescriptorCnv(ISvcLocator* svcloc);
-protected:
   ~TrigRoiDescriptorCnv();
 
+protected:
   TrigRoiDescriptor_PERS*  createPersistent(TrigRoiDescriptor* transObj);
 
   TrigRoiDescriptor*       createTransient ();
diff --git a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCollectionCnv.h b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCollectionCnv.h
index f81814454b1d57be068dba92de82c43aafe51ad8..bb057014aa5f568378953c492bfda7378ad57145 100644
--- a/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCollectionCnv.h
+++ b/Trigger/TrigEvent/TrigSteeringEventAthenaPool/src/TrigRoiDescriptorCollectionCnv.h
@@ -35,13 +35,11 @@ class TrigRoiDescriptorCollectionCnv : public T_AthenaPoolCustomCnv<TrigRoiDescr
 
   friend class CnvFactory<TrigRoiDescriptorCollectionCnv>;
 
- protected:
-  
 public:
   TrigRoiDescriptorCollectionCnv(ISvcLocator* svcloc);
-protected:
   ~TrigRoiDescriptorCollectionCnv();
 
+protected:
   TrigRoiDescriptorCollection_PERS*  createPersistent(TrigRoiDescriptorCollection* transObj);
 
   TrigRoiDescriptorCollection*       createTransient ();
diff --git a/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt b/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt
index 44545feb3f2c7c27a4d8e2b894ae68255fb2301a..3ebb84df0d70d8fcc16e40c458f42844c48f1358 100644
--- a/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt
+++ b/Trigger/TrigFTK/FTK_RecTools/CMakeLists.txt
@@ -25,6 +25,7 @@ atlas_depends_on_subdirs( PUBLIC
                           InnerDetector/InDetRecEvent/InDetRIO_OnTrack
                           Tracking/TrkEvent/TrkParameters
                           Tracking/TrkTools/TrkToolInterfaces
+                          Tracking/TrkEvent/TrkRIO_OnTrack
                           Tracking/TrkTools/TrkAmbiguityProcessor
                           PRIVATE
                           Event/EventPrimitives
@@ -45,7 +46,7 @@ atlas_add_library( FTK_RecToolsLib
                    src/*.cxx
                    PUBLIC_HEADERS FTK_RecTools
                    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps GeoPrimitives xAODTracking TrkTrack VxVertex FTK_DataProviderInterfaces TrigFTK_RawData TrkVxEdmCnvLib  InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkAmbiguityProcessorLib StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry SiClusterizationToolLib TrkSurfaces)
+                   LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps GeoPrimitives xAODTracking TrkTrack VxVertex FTK_DataProviderInterfaces TrigFTK_RawData TrkVxEdmCnvLib  InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkToolInterfaces TrkRIO_OnTrack TrkAmbiguityProcessorLib StoreGateLib SGtests EventPrimitives InDetIdentifier InDetReadoutGeometry SiClusterizationToolLib TrkSurfaces)
 
 atlas_add_component( FTK_RecTools
                      src/*.cxx src/components/*.cxx
diff --git a/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_PixelClusterOnTrackTool.h b/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_PixelClusterOnTrackTool.h
index 541cda05286be30eaf49b96545d8916c1e005d76..93c478378b2624d7eb28c1b8e771c7f55bd14657 100644
--- a/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_PixelClusterOnTrackTool.h
+++ b/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_PixelClusterOnTrackTool.h
@@ -14,7 +14,7 @@
 
 
 #include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
+#include "InDetRIO_OnTrack/PixelRIO_OnTrackErrorScaling.h"
 #include "InDetRIO_OnTrack/PixelClusterOnTrack.h"
 
 #include "InDetPrepRawData/PixelGangedClusterAmbiguities.h"
@@ -98,10 +98,10 @@ public:
                                                            const Trk::TrackParameters&) const;
 
   virtual const InDet::PixelClusterOnTrack* correctNN(const Trk::PrepRawData&, const Trk::TrackParameters&) const;
-	
+        
   virtual bool getErrorsDefaultAmbi( const InDet::PixelCluster*, const Trk::TrackParameters&, 
                            Amg::Vector2D&,  Amg::MatrixX&) const;
-													 
+                                                                                                         
   virtual bool getErrorsTIDE_Ambi( const InDet::PixelCluster*, const Trk::TrackParameters&,  
                         Amg::Vector2D&,  Amg::MatrixX&) const;
 
@@ -130,7 +130,6 @@ public:
   ///////////////////////////////////////////////////////////////////
 
   ToolHandle<IModuleDistortionsTool>            m_pixDistoTool    ;
-  ToolHandle<Trk::IRIO_OnTrackErrorScalingTool> m_errorScalingTool;
   ServiceHandle<IPixelOfflineCalibSvc>          m_calibSvc        ;
   StoreGateSvc*                                 m_detStore        ;
   /* ME: Test histos have nothing to do with production code, use a flag
@@ -146,7 +145,9 @@ public:
 
   //! toolhandle for central error scaling
   //! flag storing if errors need scaling or should be kept nominal
-  bool                               m_scalePixelCov     ;
+  SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_pixelErrorScalingKey
+    {this,"PixelErrorScalingKey", "" /* "/Indet/TrkErrorScalingPixel" */, "Key for pixel error scaling conditions data. No error scaling if empty"};
+
   bool                               m_disableDistortions;
   bool                               m_rel13like         ;
   int                                m_positionStrategy  ;
@@ -171,8 +172,8 @@ public:
   /** Enable NN based calibration (do only if NN calibration is applied) **/
   mutable bool                      m_applyNNcorrection;
   mutable bool                      m_applydRcorrection;
-  bool				    m_NNIBLcorrection;
-  bool				    m_IBLAbsent;
+  bool                              m_NNIBLcorrection;
+  bool                              m_IBLAbsent;
   
   /** NN clusterizationi factory for NN based positions and errors **/
   ToolHandle<InDet::NnClusterizationFactory>                   m_NnClusterizationFactory;
@@ -185,8 +186,8 @@ public:
   
   bool                                                  m_doNotRecalibrateNN;
   bool                                                  m_noNNandBroadErrors;
-	
-	/** Enable different treatment of  cluster errors based on NN information (do only if TIDE ambi is run) **/
+        
+        /** Enable different treatment of  cluster errors based on NN information (do only if TIDE ambi is run) **/
   bool                      m_usingTIDE_Ambi;
   std::string m_splitClusterMapName; //no longer used
   mutable std::vector< std::vector<float> > m_fX, m_fY, m_fB, m_fC, m_fD;
diff --git a/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_SCTClusterOnTrackTool.h b/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_SCTClusterOnTrackTool.h
index c4af2cb25f74dc804ec55210c0028fbfd1ddb4e1..6da302fe10b93fd26849b13d0e7b745ff52aed31 100644
--- a/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_SCTClusterOnTrackTool.h
+++ b/Trigger/TrigFTK/FTK_RecTools/FTK_RecTools/FTK_SCTClusterOnTrackTool.h
@@ -18,7 +18,7 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
+#include "InDetRIO_OnTrack/SCTRIO_OnTrackErrorScaling.h"
 #include "TrkParameters/TrackParameters.h"
 #include "InDetRIO_OnTrack/SCT_ClusterOnTrack.h"
 #include "SCT_ModuleDistortions/ISCT_ModuleDistortionsTool.h"
@@ -90,12 +90,10 @@ public:
   // Private data:
   ///////////////////////////////////////////////////////////////////
 
-   //! toolhandle for central error scaling
-   ToolHandle< Trk::IRIO_OnTrackErrorScalingTool > m_errorScalingTool;
    ToolHandle<ISCT_ModuleDistortionsTool> m_distortionsTool;
    ToolHandle<ISiLorentzAngleTool> m_lorentzAngleTool{this, "LorentzAngleTool", "SCTLorentzAngleTool", "Tool to retreive Lorentz angle"};
-   //! flag storing if errors need scaling or should be kept nominal
-   bool                               m_scaleSctCov;
+   SG::ReadCondHandleKey<RIO_OnTrackErrorScaling> m_sctErrorScalingKey
+      {this,"SCTErrorScalingKey", "" /* "/Indet/TrkErrorScalingSCT" */, "Key for SCT error scaling conditions data. No error scaling if empty."};
 
    //! job options
    bool                               m_option_make2dimBarrelClusters;
diff --git a/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx b/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx
index ca1fc87237b18586fc418cd8d3f8ee00f2728b73..d15014058ac16676d44c6cc3ad70e2e672212497 100644
--- a/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx
+++ b/Trigger/TrigFTK/FTK_RecTools/src/FTK_PixelClusterOnTrackTool.cxx
@@ -28,6 +28,9 @@
 #include "CoralBase/Attribute.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include "AthenaPoolUtilities/AthenaAttributeList.h"
+
+#include "TrkRIO_OnTrack/check_cast.h"
+
 using CLHEP::mm;
 using CLHEP::micrometer;
 
@@ -68,10 +71,8 @@ FTK_PixelClusterOnTrackTool::FTK_PixelClusterOnTrackTool
   (const std::string &t, const std::string &n, const IInterface *p) :
   ::AthAlgTool(t, n, p),
   m_pixDistoTool("PixelDistortionsTool", this),
-  m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool", this),
   m_calibSvc("PixelOfflineCalibSvc", n),
   m_detStore(nullptr),
-  m_scalePixelCov(false),
   m_disableDistortions(false),
   m_rel13like(false),
   m_pixelid(nullptr),
@@ -90,7 +91,6 @@ FTK_PixelClusterOnTrackTool::FTK_PixelClusterOnTrackTool
   m_splitClusterMapName("SplitClusterAmbiguityMap") {
   declareInterface<IRIO_OnTrackCreator>(this);
 
-  declareProperty("ErrorScalingTool", m_errorScalingTool, "The error scaling tool");
   declareProperty("PixelDistortionsTool", m_pixDistoTool, "Tool to retrieve pixel distortions");
   declareProperty("PositionStrategy", m_positionStrategy = 1, "Which calibration of cluster positions");
   declareProperty("ErrorStrategy", m_errorStrategy = 2, "Which calibration of cluster position errors");
@@ -144,15 +144,9 @@ FTK_PixelClusterOnTrackTool::initialize() {
   }
 
   // get the error scaling tool
-  if (m_errorScalingTool.retrieve().isFailure()) {
-    msg(MSG::FATAL) << "Failed to retrieve tool " << m_errorScalingTool << endmsg;
-    return StatusCode::FAILURE;
-  } else {
-    ATH_MSG_INFO("Retrieved tool " << m_errorScalingTool);
-    m_scalePixelCov = m_errorScalingTool->needToScalePixel();
-    if (m_scalePixelCov) {
-      ATH_MSG_DEBUG("Detected need for scaling Pixel errors.");
-    }
+  if (!m_pixelErrorScalingKey.key().empty()) {
+    ATH_CHECK(m_pixelErrorScalingKey.initialize());
+    ATH_MSG_DEBUG("Detected need for scaling Pixel errors.");
   }
 
   // the NN corrections
@@ -644,14 +638,10 @@ FTK_PixelClusterOnTrackTool::correctDefault
   ATH_MSG_VERBOSE(" errphi =  " << errphi << " erreta = " << erreta);
 
   // create new copy of error matrix
-  if (m_scalePixelCov) {
-    Amg::MatrixX *newCov = m_errorScalingTool->createScaledPixelCovariance(cov, element->identify());
-    if (!newCov) {
-      ATH_MSG_WARNING("Failed to create scaled error for Pixel");
-      return 0;
-    }
-    cov = *newCov;
-    delete newCov;
+  if (!m_pixelErrorScalingKey.key().empty()) {
+    //SG::ReadCondHandle<PixelRIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_pixelErrorScalingKey );
+    cov = check_cast<PixelRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,  *m_pixelid, element->identify() );
   }
   bool isbroad = (m_errorStrategy == 0) ? true : false;
 
diff --git a/Trigger/TrigFTK/FTK_RecTools/src/FTK_SCTClusterOnTrackTool.cxx b/Trigger/TrigFTK/FTK_RecTools/src/FTK_SCTClusterOnTrackTool.cxx
index 69971c1a22012bb1714d54a5092ee91a2de1b396..7f5be3c1f9580d2e6f4914b1af5980ede4e6e470 100644
--- a/Trigger/TrigFTK/FTK_RecTools/src/FTK_SCTClusterOnTrackTool.cxx
+++ b/Trigger/TrigFTK/FTK_RecTools/src/FTK_SCTClusterOnTrackTool.cxx
@@ -17,6 +17,8 @@
 #include "TrkSurfaces/RectangleBounds.h"
 #include "TrkSurfaces/TrapezoidBounds.h"
 
+#include "TrkRIO_OnTrack/check_cast.h"
+
 using CLHEP::micrometer;
 using CLHEP::deg;
 
@@ -27,9 +29,7 @@ using CLHEP::deg;
 FTK_SCTClusterOnTrackTool::FTK_SCTClusterOnTrackTool
   (const std::string &t, const std::string &n, const IInterface *p) :
   AthAlgTool(t, n, p),
-  m_errorScalingTool("Trk::RIO_OnTrackErrorScalingTool/RIO_OnTrackErrorScalingTool", this),
   m_distortionsTool("SCT_DistortionsTool", this),
-  m_scaleSctCov(false),
   m_option_make2dimBarrelClusters(false),
   m_doDistortions(false),
   m_option_errorStrategy(-1),
@@ -37,8 +37,6 @@ FTK_SCTClusterOnTrackTool::FTK_SCTClusterOnTrackTool
   // declareInterface<FTK_SCTClusterOnTrackTool>(this);
   declareInterface<IRIO_OnTrackCreator>(this);
 
-  declareProperty("ErrorScalingTool", m_errorScalingTool,
-                  "The toolhandle for central error scaling");
   declareProperty("MakeTwoDimBarrelClusters", m_option_make2dimBarrelClusters,
                   "flag if strip length should be part of the measurement");
   declareProperty("ErrorStrategy", m_option_errorStrategy,
@@ -88,15 +86,9 @@ FTK_SCTClusterOnTrackTool::initialize() {
     msg(MSG::INFO) << "SCT cluster positions will be corrected" << endmsg;
   }
 
-  if (m_errorScalingTool.retrieve().isFailure()) {
-    msg(MSG::FATAL) << "Failed to retrieve tool " << m_errorScalingTool << endmsg;
-    return StatusCode::FAILURE;
-  } else {
-    msg(MSG::INFO) << "Retrieved tool " << m_errorScalingTool << endmsg;
-    m_scaleSctCov = m_errorScalingTool->needToScaleSct();
-    if (m_scaleSctCov) {
-      msg(MSG::DEBUG) << "Detected need for scaling SCT errors." << endmsg;
-    }
+  if (!m_sctErrorScalingKey.key().empty()) {
+    ATH_CHECK(m_sctErrorScalingKey.initialize());
+    ATH_MSG_DEBUG("Detected need for scaling sct errors.");
   }
 
   // Get ISCT_ModuleDistortionsTool
@@ -225,26 +217,18 @@ FTK_SCTClusterOnTrackTool::correct
       cov(0, 0) = oldcov(0, 0);
     }
 
-    if (m_scaleSctCov) {
-      Amg::MatrixX *newCov = m_errorScalingTool->createScaledSctCovariance(cov, false, 0.0);
-      if (!newCov) {
-        ATH_MSG_WARNING("Failed to create scaled error for SCT");
-        return 0;
-      }
-      cov = *newCov;
-      delete newCov;
+    if (!m_sctErrorScalingKey.key().empty()) {
+      //SG::ReadCondHandle<SCTRIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      cov = check_cast<SCTRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,  false, 0.0);
     }
   }else {                                           // endcap
     locpar = Trk::LocalParameters(SC->localPosition());
-    if (m_scaleSctCov) {
-      Amg::MatrixX *newCov = m_errorScalingTool->createScaledSctCovariance(cov, true,
-                                                                           EL->sinStereoLocal(SC->localPosition()));
-      if (!newCov) {
-        ATH_MSG_WARNING("Failed to create scaled error for SCT");
-        return 0;
-      }
-      cov = *newCov;
-      delete newCov;
+    if (!m_sctErrorScalingKey.key().empty()) {
+      //      SG::ReadCondHandle<SCTRIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      SG::ReadCondHandle<RIO_OnTrackErrorScaling> error_scaling( m_sctErrorScalingKey );
+      cov = check_cast<SCTRIO_OnTrackErrorScaling>(*error_scaling)->getScaledCovariance( cov,   true,
+                                                EL->sinStereoLocal(SC->localPosition()));
     }
     double Sn = EL->sinStereoLocal(SC->localPosition());
     double Sn2 = Sn * Sn;
diff --git a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/TrigFTK_RawDataAlgs/FTK_RDO_CreatorAlgo.h b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/TrigFTK_RawDataAlgs/FTK_RDO_CreatorAlgo.h
index 9d69e057c93aa64c44ab1560885479775430bb7a..205c019d1790fc0ea088ec1f95b5aff8e870736b 100644
--- a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/TrigFTK_RawDataAlgs/FTK_RDO_CreatorAlgo.h
+++ b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/TrigFTK_RawDataAlgs/FTK_RDO_CreatorAlgo.h
@@ -31,7 +31,6 @@ class SCT_ID;
 
 namespace InDetDD {
   class PixelDetectorManager;
-  class SCT_DetectorManager;
 }
 
 
@@ -81,7 +80,6 @@ private:
   const SCT_ID*  m_sctId;
 
   const InDetDD::PixelDetectorManager* m_pixelManager;
-  const InDetDD::SCT_DetectorManager*  m_SCT_Manager;
 
   const AtlasDetectorID* m_id_helper;
 
diff --git a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_CreatorAlgo.cxx b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_CreatorAlgo.cxx
index f2958ae61948c004f6b77b093787e3ff8ccb22cf..fc6ca2a03b7153c102b1ecf2c4b10877921cc96e 100644
--- a/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_CreatorAlgo.cxx
+++ b/Trigger/TrigFTK/TrigFTK_RawDataAlgs/src/FTK_RDO_CreatorAlgo.cxx
@@ -15,7 +15,6 @@
 #include "InDetIdentifier/PixelID.h"
 #include "InDetReadoutGeometry/SiDetectorElement.h"
 #include "InDetReadoutGeometry/PixelDetectorManager.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"
 #include "TBranch.h"
 #include "TMath.h"
 #include "TFile.h"
@@ -48,7 +47,6 @@ FTK_RDO_CreatorAlgo::FTK_RDO_CreatorAlgo(const std::string& name, ISvcLocator* p
   m_pixelId(nullptr),
   m_sctId(nullptr),
   m_pixelManager(nullptr),
-  m_SCT_Manager(nullptr),
   m_id_helper(nullptr),
   m_trainingBeamspotX(0.),
   m_trainingBeamspotY(0.),
@@ -104,7 +102,6 @@ StatusCode FTK_RDO_CreatorAlgo::initialize(){
   ATH_CHECK(detStore->retrieve(m_pixelId, "PixelID"));
   ATH_CHECK(detStore->retrieve(m_sctId, "SCT_ID"));
   ATH_CHECK(detStore->retrieve(m_pixelManager));
-  ATH_CHECK(detStore->retrieve(m_SCT_Manager));
   ATH_CHECK(detStore->retrieve(m_id_helper, "AtlasID"));
 
   // prepare the input from the FTK tracks, merged in an external simulation
diff --git a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h b/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h
index 366ed5c175237f77cda2352432392569ce9345c1..a503fd99c27fa95eed128335db5b6fa482922a78 100755
--- a/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h
+++ b/Trigger/TrigSteer/TrigHLTResultByteStream/TrigHLTResultByteStream/HLTResultByteStreamCnv.h
@@ -25,6 +25,8 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "ByteStreamCnvSvcBase/ByteStreamAddress.h"
+#include "ByteStreamCnvSvcBase/IByteStreamEventAccess.h"
+#include "ByteStreamCnvSvcBase/IROBDataProviderSvc.h"
 
 #include <string>
 
@@ -32,8 +34,6 @@
 class DataObject;
 class StatusCode;
 class IAddressCreator;
-class IROBDataProviderSvc;
-class IByteStreamEventAccess;
 
 class MsgStream;
 
diff --git a/Trigger/TrigSteer/TrigSteering/TrigSteering/TrigSteer.h b/Trigger/TrigSteer/TrigSteering/TrigSteering/TrigSteer.h
index c04bb5488334051105bb44adf8ab4f329bc3723c..7d27e2fe44fc1dcaa15b35bb6befa9c8a120cd1e 100755
--- a/Trigger/TrigSteer/TrigSteering/TrigSteering/TrigSteer.h
+++ b/Trigger/TrigSteer/TrigSteering/TrigSteering/TrigSteer.h
@@ -31,6 +31,7 @@
 #include "TrigTimeAlgs/CookTimer.h"
 
 #include "TrigConfHLTData/HLTSequence.h"
+#include "TrigNavigation/Navigation.h"
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
diff --git a/Trigger/TrigT1/L1Topo/L1TopoMonitoring/src/L1TopoTestAlg.h b/Trigger/TrigT1/L1Topo/L1TopoMonitoring/src/L1TopoTestAlg.h
index 9473a4836353d395366f05aab41a8df27e4ba4fc..1bd84d7f0dc0fd20b240d41c41ac2a82cac4f18d 100644
--- a/Trigger/TrigT1/L1Topo/L1TopoMonitoring/src/L1TopoTestAlg.h
+++ b/Trigger/TrigT1/L1Topo/L1TopoMonitoring/src/L1TopoTestAlg.h
@@ -6,11 +6,11 @@
 #define L1TOPOMONITORING_L1TOPOTESTALG_H 1
 
 #include "AthenaBaseComps/AthAlgorithm.h"
+#include "TrigConfInterfaces/IL1TopoConfigSvc.h"
 
-
-namespace TrigConf {
-  class IL1TopoConfigSvc;
-}
+// namespace TrigConf {
+//   class IL1TopoConfigSvc;
+// }
 
 class L1TopoTestAlg: public AthAlgorithm {
  public:
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMCPHitsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMCPHitsCollectionCnv.h
index 72b57c0ebe981a6d54b17ff3e5ad1a26dd6138d7..52984913a0538cdfc1aed7016b55b3db036ab9ee 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMCPHitsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMCPHitsCollectionCnv.h
@@ -32,8 +32,6 @@ public:
      {}
   
 protected:
-  ~CMMCPHitsCollectionCnv() {}
-  
   virtual CMMCPHitsCollection_PERS*   createPersistent (CMMCPHitsCollection* transCont);
   virtual CMMCPHitsCollection*        createTransient ();
 
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMEtSumsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMEtSumsCollectionCnv.h
index 39436cbe5bd43e24f2dd07ad379225a7ff46f721..9deb75e80c5500f5b87c8ce65629d67d4116cb7b 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMEtSumsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMEtSumsCollectionCnv.h
@@ -32,8 +32,6 @@ public:
      {}
   
 protected:
-
-  ~CMMEtSumsCollectionCnv() {}
   
   virtual CMMEtSumsCollection_PERS*   createPersistent (CMMEtSumsCollection* transCont);
   virtual CMMEtSumsCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMJetHitsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMJetHitsCollectionCnv.h
index 25cb9e411669d5580d4b9204b159c60c5ed57f4e..078f1ace1edde363c1d5a22fe7eb1012b023f4e7 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMJetHitsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMJetHitsCollectionCnv.h
@@ -32,8 +32,6 @@ public:
      {}
   
 protected:
-
-  ~CMMJetHitsCollectionCnv() {}
   
   virtual CMMJetHitsCollection_PERS*   createPersistent (CMMJetHitsCollection* transCont);
   virtual CMMJetHitsCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMRoICnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMRoICnv.h
index 78320f954666ac043c999a53669b6552e7041a29..369d7b741e125b70f31cabbe92293b524c11b139 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMRoICnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMMRoICnv.h
@@ -34,8 +34,6 @@ public:
      {}
   
 protected:
-
-  ~CMMRoICnv() {}
   
   virtual CMMRoI_PERS*   createPersistent (LVL1::CMMRoI* transCont);
   virtual LVL1::CMMRoI*  createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPHitsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPHitsCollectionCnv.h
index 30c117096d560b0925aa0ff94905e6e538010b5f..d670739b79e71b93e72e4eb0cb7c00467bdb0bf8 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPHitsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPHitsCollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CMXCPHitsCollectionCnv() {}
   
   virtual CMXCPHitsCollection_PERS*   createPersistent (CMXCPHitsCollection* transCont);
   virtual CMXCPHitsCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPTobCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPTobCollectionCnv.h
index dd2900e7dd3af22bd25cd910f5e2623a1c13a0d4..6201e8a3edf5ab94883fd09b993d0b45217a78ab 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPTobCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXCPTobCollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CMXCPTobCollectionCnv() {}
   
   virtual CMXCPTobCollection_PERS*   createPersistent (CMXCPTobCollection* transCont);
   virtual CMXCPTobCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXEtSumsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXEtSumsCollectionCnv.h
index 84ecbe143c8b541fb381eeb3c7ac42c170392b20..987e579b0c33c74c011c9fdd3a2b18adbb08f972 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXEtSumsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXEtSumsCollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CMXEtSumsCollectionCnv() {}
   
   virtual CMXEtSumsCollection_PERS*   createPersistent (CMXEtSumsCollection* transCont);
   virtual CMXEtSumsCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetHitsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetHitsCollectionCnv.h
index 3910476de68b4862dc6dfe704a2d28cd3fc416ac..c80918b48423e33df25406941016297257d97060 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetHitsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetHitsCollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CMXJetHitsCollectionCnv() {}
   
   virtual CMXJetHitsCollection_PERS*   createPersistent (CMXJetHitsCollection* transCont);
   virtual CMXJetHitsCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetTobCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetTobCollectionCnv.h
index 7a3025deceded1a1de8e2b8089680190108f98c4..c71e09d83677eafbaa0cc6711227ba745efd960c 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetTobCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXJetTobCollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CMXJetTobCollectionCnv() {}
   
   virtual CMXJetTobCollection_PERS*   createPersistent (CMXJetTobCollection* transCont);
   virtual CMXJetTobCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXRoICnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXRoICnv.h
index df070d2d880f90104adb2eb1fc7f4dcb735466a3..d603c74cf317e7cdd91fee73fe9536db371532a5 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXRoICnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CMXRoICnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CMXRoICnv() {}
   
   virtual CMXRoI_PERS*   createPersistent (LVL1::CMXRoI* transCont);
   virtual LVL1::CMXRoI*  createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMHitsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMHitsCollectionCnv.h
index 33de0b1e9ca139d0d82d286c1d0dd3e96841f486..34d04eca5676fbf60b063b04c44b6707559fda67 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMHitsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMHitsCollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CPMHitsCollectionCnv() {}
   
   virtual CPMHitsCollection_PERS*   createPersistent (CPMHitsCollection* transCont);
   virtual CPMHitsCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMRoICollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMRoICollectionCnv.h
index 19bb0e9aaac552ba8f6214d110db2a81284764f5..e2880197ffc8c4ad96bc81641c674cc487a2ce86 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMRoICollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMRoICollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CPMRoICollectionCnv() {}
   
   virtual CPMRoICollection_PERS*   createPersistent (CPMRoICollection* transCont);
   virtual CPMRoICollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTobRoICollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTobRoICollectionCnv.h
index bfd55559b494aba2a5177dc899c58a61f6f41b96..8242a053210b70808b1499d3a828cc6ad9e27562 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTobRoICollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTobRoICollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~CPMTobRoICollectionCnv() {}
   
   virtual CPMTobRoICollection_PERS*   createPersistent (CPMTobRoICollection* transCont);
   virtual CPMTobRoICollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTowerCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTowerCollectionCnv.h
index b9de36988f669d839a9272d8cbf8da1983b9736d..4d107c15578c7aa185413a85688fcbcf506099dc 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTowerCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/CPMTowerCollectionCnv.h
@@ -34,8 +34,6 @@ public:
 
 protected:
   
-  ~CPMTowerCollectionCnv() {}
-  
   virtual CPMTowerCollection_PERS*   createPersistent (CPMTowerCollection* transCont);
   virtual CPMTowerCollection*        createTransient ();
 
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMEtSumsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMEtSumsCollectionCnv.h
index 14d6b253950030a756924a4c23acfd010e2bcee7..ce21a8a2279533b0390643446742074509060ea9 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMEtSumsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMEtSumsCollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~JEMEtSumsCollectionCnv() {}
   
   virtual JEMEtSumsCollection_PERS*   createPersistent (JEMEtSumsCollection* transCont);
   virtual JEMEtSumsCollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMHitsCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMHitsCollectionCnv.h
index f7dbdfd25c26c5d483934f2d753d6684254f3a35..b32842c5f0fd205cb8cc5d2144a7153b1310b689 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMHitsCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMHitsCollectionCnv.h
@@ -34,8 +34,6 @@ public:
 
 protected:
   
-  ~JEMHitsCollectionCnv() {}
-  
   virtual JEMHitsCollection_PERS*   createPersistent (JEMHitsCollection* transCont);
   virtual JEMHitsCollection*        createTransient ();
 
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMRoICollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMRoICollectionCnv.h
index 528c05dd92a382d1d6f1d61f08139d0a597f3701..8f86a0543af5defe59c0dcc77501be4a95f96817 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMRoICollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMRoICollectionCnv.h
@@ -33,8 +33,6 @@ public:
      {}
   
 protected:
-
-  ~JEMRoICollectionCnv() {}
   
   virtual JEMRoICollection_PERS*   createPersistent (JEMRoICollection* transCont);
   virtual JEMRoICollection*        createTransient ();
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMTobRoICollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMTobRoICollectionCnv.h
index 4dade1dc789d9274bb1c97fca9c80d01b692ab64..caed626a5a4b3205dca8ba9534ccc4039c024a2b 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMTobRoICollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JEMTobRoICollectionCnv.h
@@ -34,8 +34,6 @@ public:
 
 protected:
   
-  ~JEMTobRoICollectionCnv() {}
-  
   virtual JEMTobRoICollection_PERS*   createPersistent (JEMTobRoICollection* transCont);
   virtual JEMTobRoICollection*        createTransient ();
 
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JetElementCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JetElementCollectionCnv.h
index e9cba0dd9ebb8b523cbf85ab780a310237661c1f..f46e83bf3b8d31a3f0eabe640288126b0b15b456 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/JetElementCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/JetElementCollectionCnv.h
@@ -33,9 +33,7 @@ public:
      {}
 
 protected:
-  
-  ~JetElementCollectionCnv() {}
-  
+
   virtual JetElementCollection_PERS*   createPersistent (JetElementCollection* transCont);
   virtual JetElementCollection*        createTransient ();
 
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/RODHeaderCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/RODHeaderCollectionCnv.h
index ceac1a8184a73110f4f94e58ed220ee22b588740..a39cfed6c5011acb5be63cf804314b36197231ce 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/RODHeaderCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/RODHeaderCollectionCnv.h
@@ -34,8 +34,6 @@ public:
 
 protected:
   
-  ~RODHeaderCollectionCnv() {}
-  
   virtual RODHeaderCollection_PERS*   createPersistent (RODHeaderCollection* transCont);
   virtual RODHeaderCollection*        createTransient ();
 
diff --git a/Trigger/TrigT1/TrigT1EventAthenaPool/src/TriggerTowerCollectionCnv.h b/Trigger/TrigT1/TrigT1EventAthenaPool/src/TriggerTowerCollectionCnv.h
index 31b3ebe3c56aa54178bbea66448a6381500a08c6..ceba4b85b273864b733a4b227746d1ccd77701b0 100644
--- a/Trigger/TrigT1/TrigT1EventAthenaPool/src/TriggerTowerCollectionCnv.h
+++ b/Trigger/TrigT1/TrigT1EventAthenaPool/src/TriggerTowerCollectionCnv.h
@@ -34,8 +34,6 @@ public:
   
 protected:
 
-  ~TriggerTowerCollectionCnv() {}
-  
   virtual TriggerTowerCollection_PERS*   createPersistent (TriggerTowerCollection* transCont);
   virtual TriggerTowerCollection*        createTransient ();
 
diff --git a/Trigger/TrigT1/TrigT1TRT/TrigT1TRT/TrigT1TRT.h b/Trigger/TrigT1/TrigT1TRT/TrigT1TRT/TrigT1TRT.h
index 51770aca22542809995a1f69c4bbf0973971d73d..6cabb026f1cfe3dcecc6a80da2e30b4ef5c3bf4b 100644
--- a/Trigger/TrigT1/TrigT1TRT/TrigT1TRT/TrigT1TRT.h
+++ b/Trigger/TrigT1/TrigT1TRT/TrigT1TRT/TrigT1TRT.h
@@ -10,15 +10,12 @@
 
 #include "InDetRawData/TRT_RDO_Container.h"
 #include "InDetReadoutGeometry/TRT_DetectorManager.h"
+#include "TrigConfInterfaces/ILVL1ConfigSvc.h"
+#include "TRT_ConditionsServices/ITRT_StrawNeighbourSvc.h"
 
 #include <string>
 #include <vector>
 
-namespace TrigConf{
-  class ILVL1ConfigSvc;
-}
-class ITRT_StrawNeighbourSvc;
-
 namespace LVL1 {
   class TrigT1TRT : public AthAlgorithm {
   public:
diff --git a/Trigger/TrigTools/TrigFTKToolInterfaces/TrigFTKToolInterfaces/ITrigFTKClusterConverterTool.h b/Trigger/TrigTools/TrigFTKToolInterfaces/TrigFTKToolInterfaces/ITrigFTKClusterConverterTool.h
index 787eac4537d24ce0e763641b1a86d65e4fb56d60..9be71d281bf5f145430c1632ff9714899dbe538c 100644
--- a/Trigger/TrigTools/TrigFTKToolInterfaces/TrigFTKToolInterfaces/ITrigFTKClusterConverterTool.h
+++ b/Trigger/TrigTools/TrigFTKToolInterfaces/TrigFTKToolInterfaces/ITrigFTKClusterConverterTool.h
@@ -28,13 +28,11 @@ class StoreGateSvc;
 
 class AtlasDetectorID;
 class PixelID;
-class SCT_ID;
 class Identifier;
 class IdentifierHash;
 
 namespace InDetDD {
   class PixelDetectorManager;
-  class SCT_DetectorManager;
 }
 
 namespace InDet {
diff --git a/Trigger/TrigTools/TrigFTKTrackConverter/TrigFTKTrackConverter/TrigFTKTrackConverter.h b/Trigger/TrigTools/TrigFTKTrackConverter/TrigFTKTrackConverter/TrigFTKTrackConverter.h
index 4b05e57abc2f57c5b507266e6086b3fe2fa6301b..a76b12b3867bdb2164fa88a9784a827bda7f634f 100644
--- a/Trigger/TrigTools/TrigFTKTrackConverter/TrigFTKTrackConverter/TrigFTKTrackConverter.h
+++ b/Trigger/TrigTools/TrigFTKTrackConverter/TrigFTKTrackConverter/TrigFTKTrackConverter.h
@@ -29,7 +29,6 @@ class IdentifierHash;
 
 namespace InDetDD {
   class PixelDetectorManager;
-  class SCT_DetectorManager;
 }
 
 namespace InDet {
@@ -77,7 +76,6 @@ private:
   const SCT_ID* m_sctId;
   
   const InDetDD::PixelDetectorManager* m_pixelManager;
-  const InDetDD::SCT_DetectorManager* m_SCT_Manager;
 
   ToolHandle<Trk::ITrackFitter> m_trackFitter;
   ToolHandle<ITrigFTKClusterConverterTool>  m_clusterConverterTool;
diff --git a/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx b/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx
index 87a8d381bb16363d724c59283175a7543c6a571b..3c9ae79bfc2fc95b4de61589629b6456694c8b5a 100644
--- a/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx
+++ b/Trigger/TrigTools/TrigFTKTrackConverter/src/TrigFTKTrackConverter.cxx
@@ -20,7 +20,6 @@
 #include "InDetIdentifier/SCT_ID.h"
 #include "InDetIdentifier/PixelID.h" 
 #include "InDetReadoutGeometry/PixelDetectorManager.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"
 #include "AtlasDetDescr/AtlasDetectorID.h"
 
 #include "GeneratorObjects/McEventCollection.h"
@@ -126,12 +125,6 @@ StatusCode TrigFTKTrackConverter::initialize() {
     return sc;
   } 
 
-  sc = detStore->retrieve(m_SCT_Manager);
-  if( sc.isFailure() ) {
-    ATH_MSG_ERROR("Could not retrieve SCT DetectorManager from detStore.");
-    return sc;
-  } 
-	
 	//Get ID helper
 	if (detStore->retrieve(m_idHelper, "AtlasID").isFailure()) {
 		ATH_MSG_FATAL("Could not get AtlasDetectorID helper AtlasID");
diff --git a/Trigger/TrigTools/TrigInDetTrackFitter/python/TrigInDetTrackFitter_Config.py b/Trigger/TrigTools/TrigInDetTrackFitter/python/TrigInDetTrackFitter_Config.py
index 72ab137e485b1149ceccb3a3486f66aab9c9a7fc..07a9134c65e40be55d8e26ea845300190c5fa497 100644
--- a/Trigger/TrigTools/TrigInDetTrackFitter/python/TrigInDetTrackFitter_Config.py
+++ b/Trigger/TrigTools/TrigInDetTrackFitter/python/TrigInDetTrackFitter_Config.py
@@ -15,9 +15,8 @@ class ConfiguredTrigL2_Extrapolator(Trk__Extrapolator) :
         from AthenaCommon.AppMgr import ToolSvc
         from TrkDetDescrSvc.AtlasTrackingGeometrySvc import AtlasTrackingGeometrySvc
 
-        from IOVDbSvc.CondDB import conddb
-        if not (conddb.folderRequested( "/Indet/TrkErrorScaling" ) or conddb.folderRequested( "/Indet/Onl/TrkErrorScaling" )):
-            conddb.addFolderSplitOnline("INDET", "/Indet/Onl/TrkErrorScaling", "/Indet/TrkErrorScaling" )
+        from InDetRecExample.TrackingCommon import createAndAddCondAlg, getRIO_OnTrackErrorScalingCondAlg
+        createAndAddCondAlg(getRIO_OnTrackErrorScalingCondAlg,'RIO_OnTrackErrorScalingCondAlg')
         
         from TrkExSTEP_Propagator.TrkExSTEP_PropagatorConf import Trk__STEP_Propagator
         TrigL2_StepPropagator = Trk__STEP_Propagator(name = 'TrigL2_StepPropagator')
diff --git a/Trigger/TrigTools/TrigOnlineSpacePointTool/TrigOnlineSpacePointTool/SCT_ClusterCacheTool.h b/Trigger/TrigTools/TrigOnlineSpacePointTool/TrigOnlineSpacePointTool/SCT_ClusterCacheTool.h
index 07fead8bd8ccf2898d26fc521050eef91069a8ba..462d6f76c18cf7b502eb2585876c7d94b5b00eda 100755
--- a/Trigger/TrigTools/TrigOnlineSpacePointTool/TrigOnlineSpacePointTool/SCT_ClusterCacheTool.h
+++ b/Trigger/TrigTools/TrigOnlineSpacePointTool/TrigOnlineSpacePointTool/SCT_ClusterCacheTool.h
@@ -13,6 +13,7 @@
 #include "InDetPrepRawData/SCT_ClusterContainer.h"
 #include "InDetRawData/SCT_RDO_Container.h"
 #include "SiClusterizationTool/ISCT_ClusteringTool.h"
+#include "SCT_RawDataByteStreamCnv/ISCT_RodDecoder.h"
 
 #include "TrigOnlineSpacePointTool/FastSCT_RodDecoder.h"
 #include "Identifier/IdContext.h" 
@@ -23,7 +24,6 @@
 
 class FastSCT_Clusterization;
 class ISCT_CablingSvc;
-class ISCT_RodDecoder;
 class TrigTimer;
 
 typedef OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment         ROBF ;
diff --git a/Trigger/TrigTruthEvent/TrigTruthEventAthenaPool/src/TrigInDetTrackTruthMapCnv.h b/Trigger/TrigTruthEvent/TrigTruthEventAthenaPool/src/TrigInDetTrackTruthMapCnv.h
index 979c700457a4069b178b1bc20b60cceaed1f71bf..3cf68938064136dbe86afc8e4024d045c3f8de8f 100644
--- a/Trigger/TrigTruthEvent/TrigTruthEventAthenaPool/src/TrigInDetTrackTruthMapCnv.h
+++ b/Trigger/TrigTruthEvent/TrigTruthEventAthenaPool/src/TrigInDetTrackTruthMapCnv.h
@@ -42,13 +42,11 @@ class TrigInDetTrackTruthMapCnv : public TrigInDetTrackTruthMapCnvBase
 
   virtual StatusCode initialize();
 
- protected:
-
 public:
   TrigInDetTrackTruthMapCnv(ISvcLocator* svcloc);
-protected:
   ~TrigInDetTrackTruthMapCnv();
 
+protected:
   virtual TrigInDetTrackTruthMap_PERS*  createPersistent(TrigInDetTrackTruthMap* transObj);
   virtual TrigInDetTrackTruthMap*       createTransient ();
 
diff --git a/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf b/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf
index 6ae7eeed32dcdfcc994619c48a4033e879c7930f..26d562998b2ddc799efe004d3e7585fd1bb1412a 100644
--- a/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf
+++ b/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf
@@ -871,7 +871,7 @@ test 183
   doc athenaHLT on latest available run
   filterlog filterREGTEST.py
   checklog --config checklogTrigP1Test.conf --showexcludestats
-  athena_cmd trigp1test_athenaHLT.py --nfiles=1 --dir='/eos/atlas/atlastier0/rucio/data18_13TeV/physics_Main/' --modifiers="testMCV7=True;fpeAuditor=True;from PerfMonComps.PerfMonFlags import jobproperties as pmon_properties ; pmon_properties.PerfMonFlags.doSemiDetailedMonitoring=True"
+  athena_cmd trigp1test_athenaHLT.py --nfiles=1 --nevents=100 --dir='/eos/atlas/atlastier0/rucio/data18_13TeV/physics_Main/' --modifiers="testMCV7=True;fpeAuditor=True;from PerfMonComps.PerfMonFlags import jobproperties as pmon_properties ; pmon_properties.PerfMonFlags.doSemiDetailedMonitoring=True"
   post_command chainDump.py -n -S 
 
 
diff --git a/graphics/JiveXML/JiveXML/AlgoJiveXML.h b/graphics/JiveXML/JiveXML/AlgoJiveXML.h
index 650fb58925b0e361eb86f11b2da75e963ae13430..63d52672a67a35ae05905bbdc085951e26e10e28 100755
--- a/graphics/JiveXML/JiveXML/AlgoJiveXML.h
+++ b/graphics/JiveXML/JiveXML/AlgoJiveXML.h
@@ -9,6 +9,7 @@
 #include "GaudiKernel/ToolHandle.h"
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/MsgStream.h"
+#include "JiveXML/IDataRetriever.h"
 
 #include <vector>
 
@@ -16,7 +17,7 @@
 class StoreGateSvc;
 
 namespace JiveXML{
-  class IDataRetriever; 
+  //  class IDataRetriever; 
   class IFormatTool;
   class IStreamTool;
 }