diff --git a/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h b/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h
index 42ae171c4549634b446cd0706d6e0fcb2c42f24a..c1ff21c52496645be36edcc1b933b77081d6f0ed 100644
--- a/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h
+++ b/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker.h
@@ -22,10 +22,9 @@ class CaloDM_ID;
 class CaloDmDescrManager;
 class CaloDmEnergy;
 
-#include "StoreGate/DataHandle.h"
-
 #include "CaloRec/CaloClusterCollectionProcessor.h"
-//#include "CaloEvent/CaloClusterMoment.h"
+#include "CaloSimEvent/CaloCalibrationHitContainer.h"
+#include "StoreGate/ReadHandleKeyArray.h"
 #include <string>
 #include <vector>
 #include <set>
@@ -118,14 +117,14 @@ class CaloCalibClusterMomentsMaker: public AthAlgTool, virtual public CaloCluste
    *
    * 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 vector of dead material calibration hit container names to use. 
    *
    * The containers specified in this property should hold calibration
    * hits outside the calorimeter systems - i.e. dead material hits ... */
-  std::vector<std::string> m_DMCalibrationHitContainerNames;
+  SG::ReadHandleKeyArray<CaloCalibrationHitContainer> m_DMCalibrationHitContainerNames;
 
   const CaloDetDescrManager* m_calo_dd_man; 
 
diff --git a/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker2.h b/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker2.h
index 3265dca2712ef1816573e47cf71e6b292fddfa3a..b4f00ee844c355fc3876370af65cb00b03c559ca 100644
--- a/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker2.h
+++ b/Calorimeter/CaloCalibHitRec/CaloCalibHitRec/CaloCalibClusterMomentsMaker2.h
@@ -23,14 +23,14 @@ class CaloDmDescrManager;
 class McEventCollection;
 class TruthParticleContainer;
 
-#include "StoreGate/DataHandle.h"
 #include "GaudiKernel/ToolHandle.h" 
 
 #include "CaloRec/CaloClusterCollectionProcessor.h"
-//#include "CaloEvent/CaloClusterMoment.h"
 #include "CaloGeoHelpers/CaloSampling.h"
 #include "CaloIdentifier/CaloCell_ID.h"
 #include "CaloDmDetDescr/CaloDmDescrManager.h"
+#include "CaloSimEvent/CaloCalibrationHitContainer.h"
+#include "StoreGate/ReadHandleKeyArray.h"
 
 #include <string>
 #include <vector>
@@ -186,14 +186,14 @@ class CaloCalibClusterMomentsMaker2: public AthAlgTool, virtual public CaloClust
    *
    * 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 vector of dead material calibration hit container names to use. 
    *
    * The containers specified in this property should hold calibration
    * hits outside the calorimeter systems - i.e. dead material hits ... */
-  std::vector<std::string> m_DMCalibrationHitContainerNames;
+  SG::ReadHandleKeyArray<CaloCalibrationHitContainer> m_DMCalibrationHitContainerNames;
 
   /** 
    * @brief name of truth particle container
diff --git a/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx b/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx
index 4e24cf402c6f620effb53cc1206b11b544f08095..136701078dc13975e9d7163d0bfdb9c1794f724d 100644
--- a/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx
+++ b/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker.cxx
@@ -38,12 +38,8 @@
 #include "CaloIdentifier/CaloCell_ID.h"
 #include "CaloIdentifier/CaloDM_ID.h"
 
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/ListItem.h"
-#include "GaudiKernel/IToolSvc.h"
-
 #include "StoreGate/StoreGateSvc.h" 
+#include "StoreGate/ReadHandle.h" 
 #include "CLHEP/Units/SystemOfUnits.h"
 
 #include <math.h>
@@ -280,58 +276,54 @@ StatusCode CaloCalibClusterMomentsMaker::initialize()
     }
   }
 
+  ATH_CHECK( m_CalibrationHitContainerNames.initialize() );
+  ATH_CHECK( m_DMCalibrationHitContainerNames.initialize() );
+
   return StatusCode::SUCCESS;
 }
 
 //###############################################################################
 
 StatusCode
-CaloCalibClusterMomentsMaker::execute(const EventContext& /*ctx*/,
+CaloCalibClusterMomentsMaker::execute(const EventContext& ctx,
                                       xAOD::CaloClusterContainer *theClusColl) const
 {  
   ATH_MSG_DEBUG( "Executing " << name()  );
 
   bool foundAllContainers (true);
-  const DataHandle<CaloCalibrationHitContainer> cchc;
   std::vector<const CaloCalibrationHitContainer *> v_cchc;
-  for (const std::string& cname : m_CalibrationHitContainerNames) {
-    if ( !m_storeGate->contains<CaloCalibrationHitContainer>(cname)) {
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer>& key :
+         m_CalibrationHitContainerNames)
+  {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (key, ctx);
+    if ( !cchc.isValid() ) {
       if (m_foundAllContainers) {
 	// print ERROR message only if there was at least one event with 
 	// all containers 
-	ATH_MSG_ERROR( "SG does not contain calibration hit container " << cname  );
+	ATH_MSG_ERROR( "SG does not contain calibration hit container " << key.key()  );
       }
       foundAllContainers = false;
     }
     else {
-      StatusCode sc = m_storeGate->retrieve(cchc,cname);
-      if (sc.isFailure() ) {
-	ATH_MSG_ERROR( "Cannot retrieve calibration hit container " << cname  );
-	foundAllContainers = false;
-      } 
-      else
-	v_cchc.push_back(cchc);
+      v_cchc.push_back(cchc.cptr());
     }
   }
 
   std::vector<const CaloCalibrationHitContainer *> v_dmcchc;
-  for (const std::string& cname : m_DMCalibrationHitContainerNames) {
-    if ( !m_storeGate->contains<CaloCalibrationHitContainer>(cname)) {
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer>& key :
+         m_DMCalibrationHitContainerNames)
+  {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (key, ctx);
+    if ( !cchc.isValid() ) {
       if (m_foundAllContainers) {
 	// print ERROR message only if there was at least one event with 
 	// all containers 
-	ATH_MSG_ERROR( "SG does not contain DM calibration hit container " << cname  );
+	ATH_MSG_ERROR( "SG does not contain DM calibration hit container " << key.key()  );
       }
       foundAllContainers = false;
     }
     else {
-      StatusCode sc = m_storeGate->retrieve(cchc,cname);
-      if (sc.isFailure() ) {
-	ATH_MSG_ERROR( "Cannot retrieve DM calibration hit container " << cname  );
-	foundAllContainers = false;
-      }
-      else
-	v_dmcchc.push_back(cchc);
+      v_dmcchc.push_back(cchc.cptr());
     }
   }
 
diff --git a/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker2.cxx b/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker2.cxx
index 6dae113cab779c28e17b20e41d88b37a93b6e160..5329c6fab5fa138ce37f22c5cfc19a6c5b2e4cba 100644
--- a/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker2.cxx
+++ b/Calorimeter/CaloCalibHitRec/src/CaloCalibClusterMomentsMaker2.cxx
@@ -40,17 +40,12 @@
 #include "McParticleEvent/TruthParticle.h"
 #include "McParticleEvent/TruthParticleContainer.h"
 
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/ListItem.h"
-#include "GaudiKernel/IToolSvc.h"
+#include "StoreGate/ReadHandle.h"
 
 #include "CLHEP/Units/SystemOfUnits.h"
 
 #include <math.h>
-#include <CLHEP/Units/SystemOfUnits.h>
 #include <CLHEP/Vector/LorentzVector.h>
-#include <CLHEP/Geometry/Vector3D.h>
 
 
 using CLHEP::HepLorentzVector;
@@ -290,57 +285,53 @@ StatusCode CaloCalibClusterMomentsMaker2::initialize()
     }
   }
 
+  ATH_CHECK( m_CalibrationHitContainerNames.initialize() );
+  ATH_CHECK( m_DMCalibrationHitContainerNames.initialize() );
+
   return StatusCode::SUCCESS;
 }
 
 //###############################################################################
 
 StatusCode
-CaloCalibClusterMomentsMaker2::execute(const EventContext& /*ctx*/,
+CaloCalibClusterMomentsMaker2::execute(const EventContext& ctx,
                                        xAOD::CaloClusterContainer *theClusColl) const
 {
 
   bool foundAllContainers (true);
-  const DataHandle<CaloCalibrationHitContainer> cchc;
   std::vector<const CaloCalibrationHitContainer *> v_cchc;
-  for (const std::string& cname : m_CalibrationHitContainerNames) {
-    if ( !evtStore()->contains<CaloCalibrationHitContainer>(cname)) {
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer>& key :
+         m_CalibrationHitContainerNames)
+  {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (key, ctx);
+    if ( !cchc.isValid() ) {
       if (m_foundAllContainers) {
 	// print ERROR message only if there was at least one event with 
 	// all containers 
-	msg(MSG::ERROR) << "SG does not contain calibration hit container " << cname << endmsg;
+	msg(MSG::ERROR) << "SG does not contain calibration hit container " << key.key() << endmsg;
       }
       foundAllContainers = false;
     }
     else {
-      StatusCode sc = evtStore()->retrieve(cchc,cname);
-      if (sc.isFailure() ) {
-	msg(MSG::ERROR) << "Cannot retrieve calibration hit container " << cname << endmsg;
-	foundAllContainers = false;
-      } 
-      else
-	v_cchc.push_back(cchc);
+      v_cchc.push_back(cchc.cptr());
     }
   }
 
   std::vector<const CaloCalibrationHitContainer *> v_dmcchc;
-  for (const std::string& cname : m_DMCalibrationHitContainerNames) {
-    if ( !evtStore()->contains<CaloCalibrationHitContainer>(cname)) {
+  for (const SG::ReadHandleKey<CaloCalibrationHitContainer>& key :
+         m_DMCalibrationHitContainerNames)
+  {
+    SG::ReadHandle<CaloCalibrationHitContainer> cchc (key, ctx);
+    if ( !cchc.isValid() ) {
       if (m_foundAllContainers) {
 	// print ERROR message only if there was at least one event with 
 	// all containers 
-	msg(MSG::ERROR) << "SG does not contain DM calibration hit container " << cname << endmsg;
+	msg(MSG::ERROR) << "SG does not contain DM calibration hit container " << key.key() << endmsg;
       }
       foundAllContainers = false;
     }
     else {
-      StatusCode sc = evtStore()->retrieve(cchc,cname);
-      if (sc.isFailure() ) {
-	msg(MSG::ERROR) << "Cannot retrieve DM calibration hit container " << cname << endmsg;
-	foundAllContainers = false;
-      }
-      else
-	v_dmcchc.push_back(cchc);
+      v_dmcchc.push_back(cchc.cptr());
     }
   }
 
diff --git a/Calorimeter/CaloCalibHitRec/src/CaloDmEnergy.cxx b/Calorimeter/CaloCalibHitRec/src/CaloDmEnergy.cxx
index 66fc7d3dd30863f677544a0c7f2a3c6d217d539f..5771cd77e188020581b2b4989acabee45f93c3d4 100644
--- a/Calorimeter/CaloCalibHitRec/src/CaloDmEnergy.cxx
+++ b/Calorimeter/CaloCalibHitRec/src/CaloDmEnergy.cxx
@@ -195,7 +195,7 @@ int CaloDmEnergy::assign2clusters(const std::string &clusterContainerName)
   // retreiving DM containers
   std::vector<const CaloCalibrationHitContainer *> v_dmcchc;
   for (std::vector<std::string>::iterator iter=m_CalibrationContainerNamesDM.begin();iter!=m_CalibrationContainerNamesDM.end();iter++) {
-    const DataHandle<CaloCalibrationHitContainer> dmcchc;
+    const CaloCalibrationHitContainer* dmcchc = nullptr;
     sc = m_storeGate->retrieve(dmcchc,*iter);
     if (sc.isFailure() ) {
       log << MSG::WARNING << "Cannot retrieve DM calibration hit container " << *iter << endmsg;
@@ -206,7 +206,7 @@ int CaloDmEnergy::assign2clusters(const std::string &clusterContainerName)
   }
 
   // retreiving cluster container
-  const DataHandle<xAOD::CaloClusterContainer > theClusters;
+  const xAOD::CaloClusterContainer* theClusters = nullptr;
   sc = m_storeGate->retrieve(theClusters, clusterContainerName);
   if (sc.isFailure()) {
     log << MSG::WARNING << " Couldn't get cluster container '" << clusterContainerName << "'" << endmsg;
diff --git a/Calorimeter/CaloMonitoring/src/CaloBaselineMon.cxx b/Calorimeter/CaloMonitoring/src/CaloBaselineMon.cxx
index 5d26910d5bc9bc1fc0330e1666919a7f5e792ae3..bb368d53469ec974c83e4001e5a153af69ca0a65 100644
--- a/Calorimeter/CaloMonitoring/src/CaloBaselineMon.cxx
+++ b/Calorimeter/CaloMonitoring/src/CaloBaselineMon.cxx
@@ -246,7 +246,7 @@ StatusCode CaloBaselineMon::fillHistograms() {
 
   // Fill pedestalMon only when the bunch is empty and far away enough from the last train.
   if (m_bool_pedestalMon){
-    if ((not m_bunchCrossingTool->isFilled(bcid)) and (m_bunchCrossingTool->gapAfterBunch(bcid) >= m_pedestalMon_BCIDmin*25.)) thisEvent_bool_pedestalMon = true;
+    if ((not m_bunchCrossingTool->isFilled(bcid)) and (m_bunchCrossingTool->gapAfterBunch(bcid) >= m_pedestalMon_BCIDmin*25.) and (m_bunchCrossingTool->gapBeforeBunch(bcid) >= m_pedestalMon_BCIDmin*25.)) thisEvent_bool_pedestalMon = true;
   }
   // Fill bcidtoolMon only when the bunch is in a bunch train and within accepted BCID range.
   if (m_bool_bcidtoolMon){
diff --git a/Calorimeter/CaloMonitoring/src/CaloMonToolBase.cxx b/Calorimeter/CaloMonitoring/src/CaloMonToolBase.cxx
index 91db1fa12723a52e8abd0a6c35dea85c22fb5a35..cec93a4e2eccb8f689f69190de24f463b2d2e0fb 100644
--- a/Calorimeter/CaloMonitoring/src/CaloMonToolBase.cxx
+++ b/Calorimeter/CaloMonitoring/src/CaloMonToolBase.cxx
@@ -81,7 +81,7 @@ StatusCode CaloMonToolBase::bookBaseHists(MonGroup* group) {
     m_h_EvtRejSumm->GetXaxis()->SetBinLabel(3,"Good LAr LB-OFF");
   }
   if (!m_useCollisionFilterTool){
-    m_h_EvtRejSumm->GetXaxis()->SetBinLabel(3,"LAr collision-OFF");
+    m_h_EvtRejSumm->GetXaxis()->SetBinLabel(4,"LAr collision-OFF");
   }
   if (!m_useBeamBackgroundRemoval){
     m_h_EvtRejSumm->GetXaxis()->SetBinLabel(5,"Beam backgr.-OFF");
diff --git a/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.cxx b/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.cxx
index 749e3c41fd62ca757836efe94eb6e644f6d0707b..73391ac90394a97afb69ad598e7b9cf809cc8a5c 100644
--- a/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.cxx
+++ b/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.cxx
@@ -37,13 +37,9 @@ CaloCellContainerCheckerTool::CaloCellContainerCheckerTool(
 			     const std::string& type, 
 			     const std::string& name, 
 			     const IInterface* parent)
-  :AthAlgTool(type, name, parent) ,
-   m_eventsToCheck(5),m_eventsLeftToCheck(5)
+  :base_class(type, name, parent)
 { 
-  declareInterface<ICaloCellMakerTool>(this); 
-  declareInterface<ICaloConstCellMakerTool>(this); 
-
-  declareProperty ("EventsToCheck",m_eventsToCheck) ;
+  declareProperty ("EventsToCheck",m_eventsToCheck = 5);
 }
 
 
@@ -55,29 +51,31 @@ CaloCellContainerCheckerTool::CaloCellContainerCheckerTool(
 /////////////////////////////////////////////////////////////////////
 
 StatusCode CaloCellContainerCheckerTool::initialize() {
-  m_eventsLeftToCheck = m_eventsToCheck;
   return StatusCode::SUCCESS;
 }
 
 
 StatusCode
-CaloCellContainerCheckerTool::process(CaloCellContainer * theCont )
+CaloCellContainerCheckerTool::process (CaloCellContainer* theCont)
 {
-  return doProcess (theCont);
+  return doProcess (theCont, Gaudi::Hive::currentContext());
 }
 
 
 StatusCode
-CaloCellContainerCheckerTool::process(CaloConstCellContainer * theCont )
+CaloCellContainerCheckerTool::process (CaloConstCellContainer* theCont)
 {
-  return doProcess (theCont->asDataVector());
+  return doProcess (theCont->asDataVector(), Gaudi::Hive::currentContext());
 }
 
 
 StatusCode
-CaloCellContainerCheckerTool::doProcess(const CaloCellContainer * theCont )
+CaloCellContainerCheckerTool::doProcess (const CaloCellContainer* theCont,
+                                         const EventContext& ctx) const
 {
-  if (m_eventsLeftToCheck<0) return StatusCode::SUCCESS; else m_eventsLeftToCheck--;
+  if (ctx.evt() >= m_eventsToCheck) {
+    return StatusCode::SUCCESS;
+  }
 
   StatusCode returnSc = StatusCode::SUCCESS ;
 
diff --git a/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.h b/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.h
index 925bd89187187adf9541f30cf89019331d45510c..3154b3e9ee58e2d31caeb9b3523d9c8bfff5d72f 100644
--- a/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.h
+++ b/Calorimeter/CaloRec/src/CaloCellContainerCheckerTool.h
@@ -10,10 +10,8 @@
 #include "CaloInterface/ICaloCellMakerTool.h"
 #include "CaloInterface/ICaloConstCellMakerTool.h"
 
-class CaloCellContainerCheckerTool: public AthAlgTool,
-				    virtual public ICaloCellMakerTool,
-				    virtual public ICaloConstCellMakerTool 
-
+class CaloCellContainerCheckerTool
+  : public extends<AthAlgTool, ICaloCellMakerTool, ICaloConstCellMakerTool>
 {
  
 public:    
@@ -23,16 +21,16 @@ public:
 			       const IInterface* parent) ;
 
 
-  virtual StatusCode initialize() ; 
+  virtual StatusCode initialize() override; 
 
-  virtual StatusCode process( CaloCellContainer * theCellContainer) ;
-  virtual StatusCode process( CaloConstCellContainer * theCellContainer) ;
+  virtual StatusCode process (CaloCellContainer* theCellContainer) override;
+  virtual StatusCode process (CaloConstCellContainer* theCellContainer) override;
 
  private:
-  StatusCode doProcess( const CaloCellContainer * theCellContainer) ;
+  StatusCode doProcess (const CaloCellContainer* theCellContainer,
+                        const EventContext& ctx) const;
 
-  int m_eventsToCheck;
-  int m_eventsLeftToCheck;
+  size_t m_eventsToCheck;
 };
 
 #endif
diff --git a/Control/AthViews/CMakeLists.txt b/Control/AthViews/CMakeLists.txt
index 23898667338dfbca65f1b56cd359d12741887fdb..e17cda7bc55f3f2df18215f3c6959a8419f63af1 100644
--- a/Control/AthViews/CMakeLists.txt
+++ b/Control/AthViews/CMakeLists.txt
@@ -60,7 +60,8 @@ atlas_add_test( SimpleViews SCRIPT test/test_simple_view_example.sh
 atlas_add_test( ViewScheduling SCRIPT test/test_view_scheduling.sh )
 
 atlas_add_test( ViewNestFail SCRIPT test/test_view_nest_fail.sh
-                PROPERTIES PASS_REGULAR_EXPRESSION "Execution of algorithm nest_alg failed" )
+                PROPERTIES PASS_REGULAR_EXPRESSION "Execution of algorithm nest_alg failed"
+                TIMEOUT 300 )
 
 # Install files from the package:
 atlas_install_headers( AthViews )
diff --git a/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx b/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx
index 600db43fe9666808125a98ffb38520b63cf0de46..119bf817505f08ce80c97a0c603fe8e9db6ea30d 100644
--- a/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx
+++ b/Control/AthenaExamples/AthAsgExUnittest/test/gt_AthExUnittest.cxx
@@ -27,6 +27,7 @@ namespace Athena_test {
 
     MyPackageAlgTest() 
     //  : InitGaudiGoogleTest( MSG::INFO ) // get usual message blurb
+      : myAlg(nullptr)
     {}
 
     virtual void SetUp() override {
diff --git a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx
index bf5b2e53229e39f32a03b2d6dfc274a7e4cf8db8..526308c8634aab52547d04a3d74e9a62a723d5dd 100644
--- a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx
+++ b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx
@@ -164,9 +164,9 @@ StatusCode AthenaOutputStreamTool::connectOutput(const std::string& outputName)
 
    // Remove DataHeader with same key if it exists
    if (m_store->contains<DataHeader>(m_dataHeaderKey)) {
-      const DataHandle<DataHeader> preDh;
+      const DataHeader* preDh = nullptr;
       if (m_store->retrieve(preDh, m_dataHeaderKey).isSuccess()) {
-         if (m_store->removeDataAndProxy(preDh.cptr()).isFailure()) {
+         if (m_store->removeDataAndProxy(preDh).isFailure()) {
             ATH_MSG_ERROR("Unable to get proxy for the DataHeader with key " << m_dataHeaderKey);
             return(StatusCode::FAILURE);
          }
@@ -179,7 +179,7 @@ StatusCode AthenaOutputStreamTool::connectOutput(const std::string& outputName)
    m_dataHeader->setProcessTag(m_processTag);
 
    // Retrieve all existing DataHeaders from StroreGate
-   const DataHandle<DataHeader> dh;
+   const DataHeader* dh = nullptr;
    std::vector<std::string> dhKeys;
    m_store->keys<DataHeader>(dhKeys);
    for (std::vector<std::string>::const_iterator dhKey = dhKeys.begin(), dhKeyEnd = dhKeys.end();
@@ -205,7 +205,7 @@ StatusCode AthenaOutputStreamTool::connectOutput(const std::string& outputName)
                }
             }
             // Update dhTransAddr to handle fast merged files.
-            SG::DataProxy* dhProxy = m_store->proxy(dh.operator->());
+            SG::DataProxy* dhProxy = m_store->proxy(dh);
             if (dhProxy != 0 && dhProxy->address() != 0) {
               delete dhTransAddr; dhTransAddr = 0;
               m_dataHeader->insertProvenance(DataHeaderElement(dhProxy,
@@ -230,7 +230,7 @@ StatusCode AthenaOutputStreamTool::connectOutput(const std::string& outputName)
       attrListKey = outputConnectionString.substr(pos + 18, outputConnectionString.find("]", pos + 18) - pos - 18);
    }
    if (!attrListKey.empty()) {
-      const DataHandle<AthenaAttributeList> attrList;
+      const AthenaAttributeList* attrList = nullptr;
       if (m_store->retrieve(attrList, attrListKey).isFailure()) {
          ATH_MSG_WARNING("Unable to retrieve AttributeList with key " << attrListKey);
       } else {
@@ -424,7 +424,8 @@ StatusCode AthenaOutputStreamTool::fillObjectRefs(const DataObjectVec& dataObjec
 //__________________________________________________________________________
 StatusCode AthenaOutputStreamTool::getInputItemList(SG::IFolder* p2BWrittenFromTool) {
    const std::string hltKey = "HLTAutoKey";
-   const DataHandle<DataHeader> beg, ending;
+   SG::ConstIterator<DataHeader> beg;
+   SG::ConstIterator<DataHeader> ending;
    if (m_store->retrieve(beg, ending).isFailure() || beg == ending) {
       ATH_MSG_DEBUG("No DataHeaders present in StoreGate");
    } else {
diff --git a/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref b/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref
index e2767cc23e364cbecd00334ca7b26db7f44735de..c959ae6305bf99b7c0f8c138eba1194f5334d64f 100644
--- a/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref
@@ -1,12 +1,12 @@
-Thu Jun 14 19:44:00 CEST 2018
+Mon Jul 16 19:56:49 CEST 2018
 Preloading tcmalloc_minimal.so
 Py:Athena            INFO including file "AthenaCommon/Preparation.py"
-Py:Athena            INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-opt] [atlas-work3/5e04217fa06] -- built on [2018-06-14T1530]
+Py:Athena            INFO using release [AthenaWorkDir-22.0.1] [x86_64-slc6-gcc62-dbg] [atlas-work3/a36f862d8a5] -- built on [2018-07-16T1502]
 Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Py:Athena            INFO executing ROOT6Setup
 Py:Athena            INFO including file "AthenaCommon/Execution.py"
 Py:Athena            INFO including file "DataModelRunTests/ByteStreamTestRead_jo.py"
-[?1034hPy:ConfigurableDb    INFO Read module info for 5481 configurables from 56 genConfDb files
+[?1034hPy:ConfigurableDb    INFO Read module info for 5509 configurables from 55 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
 Py:Athena            INFO including file "AthenaCommon/runbatch.py"
 ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
@@ -14,7 +14,7 @@ ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to leve
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
                                                    Welcome to ApplicationMgr (GaudiCoreSvc v30r2)
-                                          running on lxplus021.cern.ch on Thu Jun 14 19:44:16 2018
+                                          running on lxplus054.cern.ch on Mon Jul 16 19:57:10 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -22,8 +22,7 @@ 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 10029 CLIDRegistry entries for module ALL
-ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+ClassIDSvc           INFO  getRegistryEntries: read 10094 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
@@ -47,14 +46,14 @@ 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2059/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus054.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              INFO Setting up APR FileCatalog and Streams
 PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.Byt...   INFO Initializing MetaDataSvc.ByteStreamMetadataTool - package version ByteStreamCnvSvc-00-00-00
+ToolSvc.ByteStr...   INFO Initializing ToolSvc.ByteStreamMetadataTool - package version ByteStreamCnvSvc-00-00-00
 ClassIDSvc           INFO  getRegistryEntries: read 1907 CLIDRegistry entries for module ALL
 TrigSerializeCn...   INFO initialize()
 HistogramPersis...WARNING Histograms saving not required.
@@ -84,7 +83,7 @@ Warning in <TClass::Init>: no dictionary for class MdtTrackSegmentCollection_p2
 ToolSvc.TrigSer...   INFO Initializing - Package version: TrigSerializeTP-00-00-00
 APR:DbReflex:fo...WARNING  doing GUID scan on ALL types for Class ID=10DE610D-5634-4D42-80D4-80B0A8C16452
 Warning in <TClass::Init>: no dictionary for class coral::AttributeList is available
-ClassIDSvc           INFO  getRegistryEntries: read 13230 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 13246 CLIDRegistry entries for module ALL
 APR:DbReflex:fo...WARNING  doing GUID scan on ALL types for Class ID=2577D84A-BC0F-4CD2-9539-9F0A4EFC64AA
 ClassIDSvc           INFO  getRegistryEntries: read 70 CLIDRegistry entries for module ALL
 APR:DbReflex:fo...WARNING  doing GUID scan on ALL types for Class ID=740C4020-F0A3-40B3-88E1-B15A8055DB64
@@ -1604,7 +1603,7 @@ IncidentProcAlg2     INFO Finalize
 EventInfoByteSt...   INFO finalize 
 AthDictLoaderSvc     INFO in finalize...
 ToolSvc              INFO Removing all tools created by ToolSvc
-MetaDataSvc.Byt...   INFO in finalize()
+ToolSvc.ByteStr...   INFO in finalize()
 ToolSvc.TrigTSe...   INFO ToolSvc.TrigTSerializer no problems encountered
 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 4f34fca1014ed8e92628d973fe9c1fc55b2a9e95..736ed3f30f39d8d05c70ae80f8c271efc63b390e 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Filter.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:33:11 CEST 2018
+Mon Jul 16 20:30:46 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:33:22 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:30:53 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,21 +21,22 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -43,11 +44,9 @@ PoolSvc             DEBUG POOL ReadCatalog is file:Catalog.xml
 PoolSvc              INFO POOL WriteCatalog is file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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
 EventSelector.Q...   INFO in initialize()
 EventSelector        INFO reinitialization...
@@ -127,13 +126,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -193,9 +187,7 @@ ApplicationMgr       INFO Application Manager Started successfully
 MetaDataSvc         DEBUG handle() BeginInputFile for FID:????
 MetaDataSvc         DEBUG initInputMetaDataStore: file name FID:????
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Stream1_ref = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000006].
@@ -806,7 +798,7 @@ Stream1              INFO Records written: 11
 Stream1             DEBUG Leaving handle
 RegStream1          DEBUG handle() incident type: MetaDataStop
 RegStream1.TagTool   INFO Collection Events output: 10
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   CREATE    [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     UPDATE    [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
@@ -824,13 +816,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
-cObjR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 35
-cRepR_ALL            INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0)/    0/    0 [us] #= 43
+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
-cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.909(+- 2.87)/    0/   10 [ms] #= 33
-ChronoStatSvc        INFO Time User   : Tot= 1.07  [s]                                             #=  1
+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
 *****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 95ffaa71d44c11af8394190e94bc2cc2058f4049..c23f482c048c36ab54fc68d7ef6c880b007fb960 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:41:06 CEST 2018
+Mon Jul 16 20:52:18 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:41:17 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:52:26 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,8 +21,7 @@ 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 2375 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
 ReadCond            DEBUG Property update for OutputLevel : new value = 2
@@ -34,13 +33,15 @@ ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -49,11 +50,9 @@ PoolSvc             DEBUG POOL ReadCatalog is file:Catalog1.xml
 PoolSvc              INFO POOL WriteCatalog is file:Catalog2.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
 EventSelector       DEBUG Try item: "SimplePoolFile1.root" from the collection list.
@@ -124,15 +123,11 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 CondProxyProvider   DEBUG Property update for OutputLevel : new value = 2
 CondProxyProvider    INFO Initializing CondProxyProvider - package version EventSelectorAthenaPool-00-00-00
+CondProxyProvider   DEBUG Service base class initialized successfully
 CondProxyProvider   DEBUG Try item: "SimplePoolFile4.root" from the collection list.
 PersistencySvc:...  DEBUG lookupPFN: SimplePoolFile4.root returned FID: '????' tech=ROOT_All
 Domain[ROOT_All]     INFO ->  Access   DbDatabase   READ      [ROOT_All] ????
@@ -240,9 +235,7 @@ MetaDataHdr(Dat...  DEBUG    attributes# = 1
 MetaDataHdr(Dat...  DEBUG Branch container 'DataHeader'
 MetaDataHdr(Dat...  DEBUG Opened container MetaDataHdr(DataHeader) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+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
@@ -951,7 +944,7 @@ Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
 MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
@@ -965,8 +958,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=   40 [ms] Ave/Min/Max=0.615(+- 2.98)/    0/   20 [ms] #= 65
-ChronoStatSvc        INFO Time User   : Tot= 0.95  [s]                                             #=  1
+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
 *****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 88767de34a13d768c370884804f6255ee1c52094..5ca6d2ff234d03ab13fbac570c8e0d5317c94bce 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilter.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RFilter.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:33:26 CEST 2018
+Mon Jul 16 20:30:56 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:33:37 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:31:04 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,21 +21,22 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -44,16 +45,15 @@ PoolSvc             DEBUG POOL ReadCatalog is file:Catalog1.xml
 PoolSvc              INFO POOL WriteCatalog is file:Catalog2.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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        INFO reinitialization...
 EventSelector        INFO EventSelection with query EventNumber > 9
 EventSelector       DEBUG Try item: "SimplePoolCollection5.root" from the collection list.
 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 output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -320,7 +320,7 @@ AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #1 10 events
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
 ReadData             INFO in finalize()
@@ -330,9 +330,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=   90 [ms] Ave/Min/Max=  2.9(+- 15.9)/    0/   90 [ms] #= 31
-cObj_ALL             INFO Time User   : Tot=  130 [ms] Ave/Min/Max= 4.33(+- 18.2)/    0/  100 [ms] #= 30
-ChronoStatSvc        INFO Time User   : Tot= 1.06  [s]                                             #=  1
+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
 *****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 a112a839ec7b930754d6a860f9c90bef737e9aac..60498c03d390df67061250aca18d3a0499748fac 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:53:58 CEST 2018
+Mon Jul 16 20:52:39 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:54:09 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:52:47 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,23 +21,24 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -45,13 +46,10 @@ PoolSvc             DEBUG POOL ReadCatalog is xmlcatalog_file:Catalog2.xml
 PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
-MetaDataSvc.Ath...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.Ath...   INFO in initialize()
+ToolSvc.AthPool...   INFO in initialize()
 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        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
 EventSelector       DEBUG Try item: "SimplePoolFile5.root" from the collection list.
@@ -124,13 +122,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -206,20 +199,15 @@ MetaDataHdr(Dat...  DEBUG    attributes# = 1
 MetaDataHdr(Dat...  DEBUG Branch container 'DataHeader'
 MetaDataHdr(Dat...  DEBUG Opened container MetaDataHdr(DataHeader) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.AthPoolEx::ReadMeta
-MetaDataSvc.Ath...  DEBUG saw BeginInputFile incident.
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.AthPoolEx::ReadMeta
 SimplePoolFile5...  DEBUG --> Access   DbContainer  READ      [ROOT_Tree] MetaData(ExampleHitContainer_p1/PedestalWriteData)
 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
-MetaDataSvc.Ath...   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>
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile5.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
-MetaDataSvc.Ath...  DEBUG handle() BeginInputFile
-MetaDataSvc.Ath...  DEBUG handle() BeginInputFile for SimplePoolFile5.root
+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
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -869,21 +857,21 @@ Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All]
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
 MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.AthPoolEx::ReadMeta
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.AthPoolEx::ReadMeta
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
 ReadData             INFO in finalize()
 IncidentProcAlg2     INFO Finalize
 AthDictLoaderSvc     INFO in finalize...
 ToolSvc              INFO Removing all tools created by ToolSvc
-MetaDataSvc.Ath...   INFO in finalize()
+ToolSvc.AthPool...   INFO in finalize()
 *****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] #= 67
-cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.469(+- 2.76)/    0/   20 [ms] #= 64
-ChronoStatSvc        INFO Time User   : Tot= 1.04  [s]                                             #=  1
+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
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref
index 86dd3973051f80b42f3f74df2a4d5bc246aa00dc..37eb613f6e6ecfd082846eebfdb286e69a1ebf23 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 19:57:30 CEST 2018
+Mon Jul 16 20:06:34 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 19:57:41 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:06:43 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,22 +21,23 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -44,11 +45,9 @@ PoolSvc             DEBUG POOL ReadCatalog is file:Catalog.xml
 PoolSvc              INFO POOL WriteCatalog is file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
 EventSelector       DEBUG Try item: "SimplePoolFile1.root" from the collection list.
@@ -125,13 +124,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -197,9 +191,7 @@ ApplicationMgr       INFO Application Manager Started successfully
 MetaDataSvc         DEBUG handle() BeginInputFile for SimplePoolFile1.root
 MetaDataSvc         DEBUG initInputMetaDataStore: file name SimplePoolFile1.root
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -1959,7 +1951,7 @@ Stream1              INFO Records written: 21
 Stream1             DEBUG Leaving handle
 RegStream1          DEBUG handle() incident type: MetaDataStop
 RegStream1.TagTool   INFO Collection Events output: 20
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   CREATE    [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     UPDATE    [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
@@ -1979,13 +1971,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
-fRep_ALL             INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.323(+- 1.77)/    0/   10 [ms] #= 62
-cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.476(+- 2.78)/    0/   20 [ms] #= 63
-cRepR_ALL            INFO Time User   : Tot=   20 [ms] Ave/Min/Max=0.123(+-  1.1)/    0/   10 [ms] #=163
-ChronoStatSvc        INFO Time User   : Tot= 1.05  [s]                                             #=  1
+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
 *****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 fd10099b6d01ddb789e652f8d0a338b346871f62..f71b52126af0fec11759f064459bd950983a6818 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:32:41 CEST 2018
+Mon Jul 16 20:24:42 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:32:53 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:24:49 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,22 +21,23 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -44,11 +45,9 @@ PoolSvc             DEBUG POOL ReadCatalog is file:Catalog.xml
 PoolSvc              INFO POOL WriteCatalog is file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
 EventSelector       DEBUG Try item: "SimplePoolReplica1.root" from the collection list.
@@ -119,13 +118,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -253,9 +247,7 @@ MetaDataHdr(Dat...  DEBUG    attributes# = 1
 MetaDataHdr(Dat...  DEBUG Branch container 'DataHeader'
 MetaDataHdr(Dat...  DEBUG Opened container MetaDataHdr(DataHeader) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolReplica1.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 0
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -2015,7 +2007,7 @@ Stream1             DEBUG Leaving handle
 RegStream1          DEBUG handle() incident type: MetaDataStop
 RegStream1.TagTool   INFO Collection Events output: 20
 RegStream1.TagTool   INFO Unable to register collection: PFN 'RootCollection||PFN:SimplePoolCollection3.root' already registered ( POOL : "registerPFN" from "FileCatalog" )
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   CREATE    [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     UPDATE    [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
@@ -2035,13 +2027,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=   10 [ms] Ave/Min/Max=0.154(+- 1.23)/    0/   10 [ms] #= 65
+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
-fRep_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.484(+- 2.15)/    0/   10 [ms] #= 62
-cObj_ALL             INFO Time User   : Tot=   40 [ms] Ave/Min/Max=0.635(+- 3.51)/    0/   20 [ms] #= 63
-ChronoStatSvc        INFO Time User   : Tot= 1.05  [s]                                             #=  1
+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
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref
index b6ad0fbfeecd4e8d522154da3552300b5e9ec245..b1ad6a656c57500c7859980d9e1f82636f1d407d 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:32:57 CEST 2018
+Mon Jul 16 20:24: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_ReWriteNextJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:33:08 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:25:01 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,22 +21,23 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -44,11 +45,9 @@ PoolSvc             DEBUG POOL ReadCatalog is file:Catalog.xml
 PoolSvc              INFO POOL WriteCatalog is file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
 EventSelector       DEBUG Try item: "SimplePoolFile3.root" from the collection list.
@@ -125,13 +124,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -197,9 +191,7 @@ ApplicationMgr       INFO Application Manager Started successfully
 MetaDataSvc         DEBUG handle() BeginInputFile for SimplePoolFile3.root
 MetaDataSvc         DEBUG initInputMetaDataStore: file name SimplePoolFile3.root
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -1357,7 +1349,7 @@ Stream1              INFO Records written: 21
 Stream1             DEBUG Leaving handle
 RegStream1          DEBUG handle() incident type: MetaDataStop
 RegStream1.TagTool   INFO Collection Events output: 20
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   CREATE    [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     UPDATE    [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
@@ -1379,11 +1371,11 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****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=   10 [ms] Ave/Min/Max=0.154(+- 1.23)/    0/   10 [ms] #= 65
+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
-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(+- 2.44)/    0/   10 [ms] #= 63
-ChronoStatSvc        INFO Time User   : Tot= 0.97  [s]                                             #=  1
+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
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref
index bd5b67e75fe764963e0d023297486907049ae5d0..fb3630bee8d536283afaa125e2cc855288c3ab5f 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 19:57:44 CEST 2018
+Mon Jul 16 20:19: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_ReadJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 19:57:54 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:19:53 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,32 +21,31 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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 file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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
 IoComponentMgr       INFO IoComponent EventSelector has already had file EmptyPoolFile.root registered with i/o mode READ
 EventSelector        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
@@ -168,13 +167,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -234,9 +228,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 EventSelector       DEBUG Try item: "SimplePoolFile1.root" from the collection list.
@@ -251,10 +243,7 @@ PoolSvc              INFO Database (SimplePoolFile1.root) attribute [TREE_CACHE_
 MetaDataSvc         DEBUG handle() BeginInputFile for SimplePoolFile1.root
 MetaDataSvc         DEBUG initInputMetaDataStore: file name SimplePoolFile1.root
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector        INFO skipping event 1
 EventSelector        INFO skipping event 2
 EventSelector        INFO skipping event 3
@@ -326,7 +315,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -359,7 +348,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -392,7 +381,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -425,7 +414,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -458,7 +447,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -491,7 +480,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -524,7 +513,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -557,7 +546,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -590,7 +579,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -623,7 +612,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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:????
@@ -684,10 +673,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -772,10 +758,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000005-00000000].
@@ -826,7 +809,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -854,7 +837,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -882,7 +865,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -910,7 +893,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -938,7 +921,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -966,7 +949,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -994,7 +977,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1022,7 +1005,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1050,7 +1033,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1078,7 +1061,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1106,7 +1089,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1134,7 +1117,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1162,7 +1145,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1190,7 +1173,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1218,7 +1201,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1246,7 +1229,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1274,7 +1257,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1302,7 +1285,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1330,7 +1313,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1358,7 +1341,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1387,7 +1370,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1415,7 +1398,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1443,7 +1426,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1471,7 +1454,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1499,7 +1482,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1527,7 +1510,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1555,7 +1538,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1583,7 +1566,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1611,7 +1594,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1639,7 +1622,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1667,7 +1650,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1695,7 +1678,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1723,7 +1706,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1751,7 +1734,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1779,7 +1762,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1807,7 +1790,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1835,7 +1818,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1863,7 +1846,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1891,7 +1874,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1919,7 +1902,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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:????
@@ -2008,10 +1991,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -2156,7 +2136,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2203,7 +2183,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2250,7 +2230,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2297,7 +2277,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2344,7 +2324,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2391,7 +2371,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2438,7 +2418,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2485,7 +2465,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2532,7 +2512,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2579,7 +2559,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2626,7 +2606,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2673,7 +2653,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2720,7 +2700,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2767,7 +2747,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2814,7 +2794,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2861,7 +2841,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2908,7 +2888,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2955,7 +2935,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -3002,7 +2982,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -3049,14 +3029,14 @@ 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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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:????
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
@@ -3068,9 +3048,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.0735(+-0.854)/    0/   10 [ms] #=272
-cObj_ALL             INFO Time User   : Tot=   30 [ms] Ave/Min/Max=0.136(+- 1.16)/    0/   10 [ms] #=221
-ChronoStatSvc        INFO Time User   : Tot= 1.07  [s]                                             #=  1
+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
 *****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 5898910726aa590a90577ff108cd1d5ff1993845..efc5bdc1f9b0c69f28359d163036bdcb55b8f172 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:40:08 CEST 2018
+Mon Jul 16 20:34: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_ReadAgainJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:40:19 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:35:04 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,32 +21,31 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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 file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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
 IoComponentMgr       INFO IoComponent EventSelector has already had file EmptyPoolFile.root registered with i/o mode READ
 EventSelector        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
@@ -162,13 +161,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -232,9 +226,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -315,10 +307,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolReplica1.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolReplica1.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector        INFO skipping event 1
 EventSelector        INFO skipping event 2
 EventSelector        INFO skipping event 3
@@ -743,10 +732,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -831,10 +817,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 ClassIDSvc           INFO  getRegistryEntries: read 3 CLIDRegistry entries for module ALL
@@ -886,7 +869,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -914,7 +897,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -942,7 +925,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -970,7 +953,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -998,7 +981,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1026,7 +1009,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1054,7 +1037,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1082,7 +1065,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1110,7 +1093,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1138,7 +1121,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1166,7 +1149,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1194,7 +1177,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1222,7 +1205,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1250,7 +1233,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1278,7 +1261,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1306,7 +1289,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1334,7 +1317,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1362,7 +1345,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1390,7 +1373,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1418,7 +1401,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1447,7 +1430,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1475,7 +1458,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1503,7 +1486,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1531,7 +1514,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1559,7 +1542,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1587,7 +1570,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1615,7 +1598,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1643,7 +1626,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1671,7 +1654,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1699,7 +1682,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1727,7 +1710,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1755,7 +1738,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1783,7 +1766,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1811,7 +1794,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1839,7 +1822,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1867,7 +1850,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1895,7 +1878,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1923,7 +1906,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1951,7 +1934,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1979,7 +1962,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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:????
@@ -2068,10 +2051,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile4.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile4.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -2273,7 +2253,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2320,7 +2300,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2367,7 +2347,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2414,7 +2394,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2461,7 +2441,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2508,7 +2488,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2555,7 +2535,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2602,7 +2582,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2649,7 +2629,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2696,7 +2676,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2743,7 +2723,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2790,7 +2770,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2837,7 +2817,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2884,7 +2864,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2931,7 +2911,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -2978,7 +2958,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -3025,7 +3005,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -3072,7 +3052,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -3119,7 +3099,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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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
@@ -3166,14 +3146,14 @@ 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]: 27334
+PoolSvc              INFO Database (SimplePoolFile4.root) attribute [BYTES_READ]: 27346
 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:????
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -3187,8 +3167,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=   20 [ms] Ave/Min/Max=0.0643(+-0.799)/    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= 1.16  [s]                                             #=  1
+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
 *****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 6603e410719e5f0b22ce9286d80ed3905ed29b3d..062284de4df56d80a2ec964d06c9a5a2a3a347f9 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 19:57:44 CEST 2018
+Mon Jul 16 20:08:47 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 19:57:54 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:08:55 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,32 +21,31 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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 file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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
 IoComponentMgr       INFO IoComponent EventSelector has already had file EmptyPoolFile.root registered with i/o mode READ
 EventSelector        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
@@ -168,13 +167,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 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 output handles: 0
@@ -235,9 +229,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 EventSelector       DEBUG Try item: "SimplePoolFile1.root" from the collection list.
@@ -252,10 +244,7 @@ PoolSvc              INFO Database (SimplePoolFile1.root) attribute [TREE_CACHE_
 MetaDataSvc         DEBUG handle() BeginInputFile for SimplePoolFile1.root
 MetaDataSvc         DEBUG initInputMetaDataStore: file name SimplePoolFile1.root
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector        INFO skipping event 1
 EventSelector        INFO skipping event 2
 EventSelector        INFO skipping event 3
@@ -327,7 +316,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -360,7 +349,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -393,7 +382,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -426,7 +415,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -459,7 +448,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -492,7 +481,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -525,7 +514,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -558,7 +547,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -591,7 +580,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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
@@ -624,7 +613,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27935
 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:????
@@ -685,10 +674,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -773,10 +759,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000005-00000000].
@@ -827,7 +810,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -855,7 +838,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -883,7 +866,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -911,7 +894,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -939,7 +922,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -967,7 +950,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -995,7 +978,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1023,7 +1006,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1051,7 +1034,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1079,7 +1062,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1107,7 +1090,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1135,7 +1118,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1163,7 +1146,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1191,7 +1174,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1219,7 +1202,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1247,7 +1230,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1275,7 +1258,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1303,7 +1286,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1331,7 +1314,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1359,7 +1342,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26644
 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
@@ -1388,7 +1371,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1416,7 +1399,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1444,7 +1427,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1472,7 +1455,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1500,7 +1483,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1528,7 +1511,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1556,7 +1539,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1584,7 +1567,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1612,7 +1595,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1640,7 +1623,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1668,7 +1651,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1696,7 +1679,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1724,7 +1707,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1752,7 +1735,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1780,7 +1763,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1808,7 +1791,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1836,7 +1819,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1864,7 +1847,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1892,7 +1875,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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
@@ -1920,7 +1903,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28256
 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:????
@@ -2009,10 +1992,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -2157,7 +2137,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2204,7 +2184,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2251,7 +2231,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2298,7 +2278,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2345,7 +2325,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2392,7 +2372,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2439,7 +2419,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2486,7 +2466,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2533,7 +2513,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2580,7 +2560,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2627,7 +2607,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2674,7 +2654,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2721,7 +2701,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2768,7 +2748,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2815,7 +2795,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2862,7 +2842,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2909,7 +2889,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -2956,7 +2936,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -3003,7 +2983,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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
@@ -3050,14 +3030,14 @@ 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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27292
 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:????
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
@@ -3069,9 +3049,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.0735(+-0.854)/    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= 1.01  [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=   20 [ms] Ave/Min/Max=0.0905(+-0.947)/    0/   10 [ms] #=221
+ChronoStatSvc        INFO Time User   : Tot= 0.87  [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_ReadConcat.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref
index 7109a6dab1662879a31e26ddeebfc2dad2dcf5b9..a213f9e891992986194d7eb0f36c611d814e6698 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:40:37 CEST 2018
+Mon Jul 16 20:35:17 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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:40:48 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:35:25 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,32 +21,31 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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 file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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
 IoComponentMgr       INFO IoComponent EventSelector has already had file EmptyPoolFile.root registered with i/o mode READ
 EventSelector        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
@@ -162,13 +161,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -232,9 +226,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -315,10 +307,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector        INFO skipping event 1
 EventSelector        INFO skipping event 2
 EventSelector        INFO skipping event 3
@@ -385,7 +374,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -418,7 +407,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -451,7 +440,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -484,7 +473,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -517,7 +506,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -550,7 +539,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -583,7 +572,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -616,7 +605,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -649,7 +638,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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
@@ -682,7 +671,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]: 27514
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27509
 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] ????
@@ -743,10 +732,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -831,10 +817,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 ClassIDSvc           INFO  getRegistryEntries: read 3 CLIDRegistry entries for module ALL
@@ -886,7 +869,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -914,7 +897,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -942,7 +925,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -970,7 +953,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -998,7 +981,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1026,7 +1009,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1054,7 +1037,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1082,7 +1065,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1110,7 +1093,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1138,7 +1121,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1166,7 +1149,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1194,7 +1177,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1222,7 +1205,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1250,7 +1233,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1278,7 +1261,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1306,7 +1289,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1334,7 +1317,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1362,7 +1345,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1390,7 +1373,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1418,7 +1401,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]: 26624
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26619
 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
@@ -1447,7 +1430,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1475,7 +1458,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1503,7 +1486,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1531,7 +1514,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1559,7 +1542,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1587,7 +1570,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1615,7 +1598,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1643,7 +1626,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1671,7 +1654,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1699,7 +1682,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1727,7 +1710,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1755,7 +1738,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1783,7 +1766,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1811,7 +1794,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1839,7 +1822,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1867,7 +1850,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1895,7 +1878,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1923,7 +1906,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1951,7 +1934,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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
@@ -1979,7 +1962,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28229
 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:????
@@ -2061,10 +2044,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 0
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -2192,7 +2172,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2239,7 +2219,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2286,7 +2266,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2333,7 +2313,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2380,7 +2360,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2427,7 +2407,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2474,7 +2454,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2521,7 +2501,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2568,7 +2548,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2615,7 +2595,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2662,7 +2642,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2709,7 +2689,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2756,7 +2736,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2803,7 +2783,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2850,7 +2830,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2897,7 +2877,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2944,7 +2924,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -2991,7 +2971,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -3038,7 +3018,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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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
@@ -3085,14 +3065,14 @@ 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]: 26895
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 26896
 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] ????
 MetaDataSvc         DEBUG handle() EndInputFile for FID:????
 MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 ApplicationMgr       INFO Application Manager Stopped successfully
@@ -3104,9 +3084,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.0735(+-0.854)/    0/   10 [ms] #=272
+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= 1.03  [s]                                             #=  1
+ChronoStatSvc        INFO Time User   : Tot= 0.92  [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 4ca427358d9de015084362f00344045af956855c..036405b1b96fe589da8176fbc52ae083a7c1ef8e 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 19:57:44 CEST 2018
+Mon Jul 16 20:19: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 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 19:57:54 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:19:53 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,32 +21,31 @@ 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 2375 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
 ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+MetaDataSvc         DEBUG Service base class initialized successfully
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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 file:Catalog1.xml
 DbSession            INFO     Open     DbSession    
 Domain[ROOT_All]     INFO >   Access   DbDomain     READ      [ROOT_All] 
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
 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
 IoComponentMgr       INFO IoComponent EventSelector has already had file EmptyPoolFile.root registered with i/o mode READ
 EventSelector        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
@@ -168,13 +167,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -234,9 +228,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 EventSelector       DEBUG Try item: "SimplePoolFile1.root" from the collection list.
@@ -251,10 +243,7 @@ PoolSvc              INFO Database (SimplePoolFile1.root) attribute [TREE_CACHE_
 MetaDataSvc         DEBUG handle() BeginInputFile for SimplePoolFile1.root
 MetaDataSvc         DEBUG initInputMetaDataStore: file name SimplePoolFile1.root
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector        INFO skipping event 1
 EventSelector        INFO skipping event 2
 EventSelector        INFO skipping event 3
@@ -326,7 +315,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -359,7 +348,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -392,7 +381,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -425,7 +414,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -458,7 +447,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -491,7 +480,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -524,7 +513,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -557,7 +546,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -590,7 +579,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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
@@ -623,7 +612,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]: 27938
+PoolSvc              INFO Database (SimplePoolFile1.root) attribute [BYTES_READ]: 27943
 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:????
@@ -684,10 +673,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name EmptyPoolFile.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 MetaDataSvc         DEBUG handle() EndInputFile for eventless EmptyPoolFile.root
 Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
@@ -772,10 +758,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile2.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000005-00000000].
@@ -826,7 +809,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -854,7 +837,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -882,7 +865,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -910,7 +893,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -938,7 +921,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -966,7 +949,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -994,7 +977,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1022,7 +1005,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1050,7 +1033,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1078,7 +1061,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1106,7 +1089,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1134,7 +1117,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1162,7 +1145,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1190,7 +1173,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1218,7 +1201,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1246,7 +1229,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1274,7 +1257,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1302,7 +1285,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1330,7 +1313,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1358,7 +1341,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]: 26625
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 26639
 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
@@ -1387,7 +1370,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1415,7 +1398,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1443,7 +1426,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1471,7 +1454,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1499,7 +1482,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1527,7 +1510,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1555,7 +1538,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1583,7 +1566,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1611,7 +1594,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1639,7 +1622,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1667,7 +1650,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1695,7 +1678,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1723,7 +1706,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1751,7 +1734,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1779,7 +1762,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1807,7 +1790,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1835,7 +1818,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1863,7 +1846,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1891,7 +1874,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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
@@ -1919,7 +1902,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]: 28240
+PoolSvc              INFO Database (SimplePoolFile2.root) attribute [BYTES_READ]: 28252
 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:????
@@ -2008,10 +1991,7 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name SimplePoolFile3.root
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 3
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -2061,7 +2041,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2087,7 +2067,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2113,7 +2093,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2139,7 +2119,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2165,7 +2145,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2191,7 +2171,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2217,7 +2197,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2243,7 +2223,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2269,7 +2249,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2295,7 +2275,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2321,7 +2301,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2347,7 +2327,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2373,7 +2353,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2399,7 +2379,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2425,7 +2405,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2451,7 +2431,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2477,7 +2457,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2503,7 +2483,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2529,7 +2509,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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
@@ -2555,7 +2535,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]: 27287
+PoolSvc              INFO Database (SimplePoolFile3.root) attribute [BYTES_READ]: 27297
 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:????
@@ -2563,7 +2543,7 @@ Domain[ROOT_All]     INFO ->  Deaccess DbDatabase   READ      [ROOT_All] ????
 Domain[ROOT_All]     INFO >   Deaccess DbDomain     READ      [ROOT_All] 
 MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
 ReadData             INFO in finalize()
@@ -2575,7 +2555,7 @@ ToolSvc              INFO Removing all tools created by ToolSvc
 *****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
-ChronoStatSvc        INFO Time User   : Tot= 1.03  [s]                                             #=  1
+ChronoStatSvc        INFO Time User   : Tot= 0.88  [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_WCond.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref
index 34161a0475e0973f3ff6599d281adf0421b2495d..2320c5de709425a1c22cb5f804c0529826266467 100644
--- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref
+++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref
@@ -1,11 +1,11 @@
-Thu Jun 14 20:40:51 CEST 2018
+Mon Jul 16 20:52: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_WCondJobOptions.py"
-Py:ConfigurableDb    INFO Read module info for 5481 configurables from 56 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 5509 configurables from 55 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 lxplus021.cern.ch on Thu Jun 14 20:41:02 2018
+                                          running on lxplus052.cern.ch on Mon Jul 16 20:52:15 2018
 ====================================================================================================================================
 ApplicationMgr       INFO Successfully loaded modules : AthenaServices
 ApplicationMgr       INFO Application Manager Configured successfully
@@ -21,8 +21,7 @@ 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 2375 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
 Stream1             DEBUG Property update for OutputLevel : new value = 2
@@ -30,11 +29,12 @@ Stream1             DEBUG in initialize()
 ToolSvc.Stream1...   INFO Initializing ToolSvc.Stream1Tool - package version AthenaServices-00-00-00
 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 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-06-13T2055/Athena/22.0.1/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
-DBReplicaSvc         INFO Total of 10 servers found for host lxplus021.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-15T2055/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
@@ -48,11 +48,10 @@ ReadData            DEBUG Property update for OutputLevel : new value = 2
 ReadData             INFO in initialize()
 MetaDataSvc         DEBUG Property update for OutputLevel : new value = 2
 MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
-MetaDataSvc.IOV...  DEBUG Property update for OutputLevel : new value = 2
-MetaDataSvc.IOV...  DEBUG in initialize()
-MetaDataSvc.IOV...  DEBUG initialize(): need to modify folders 
+MetaDataSvc         DEBUG Service base class initialized successfully
 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        INFO reinitialization...
 EventSelector        INFO EventSelection with query 
 EventSelector       DEBUG Try item: "SimplePoolFile1.root" from the collection list.
@@ -123,13 +122,8 @@ MetaDataHdrForm...  DEBUG    attributes# = 1
 MetaDataHdrForm...  DEBUG Branch container 'DataHeaderForm'
 MetaDataHdrForm...  DEBUG Opened container MetaDataHdrForm(DataHeaderForm) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc.IOV...  DEBUG handle() FirstInputFile for FID:????
-MetaDataSvc.IOV...  DEBUG begin checkOverrideRunNumber
-MetaDataSvc.IOV...  DEBUG checkOverrideRunNumber: check if tag is set in jobOpts
-MetaDataSvc.IOV...  DEBUG resetRunNumber: unable to get OverrideRunNumberFromInput property from EventSelector 
-MetaDataSvc.IOV...  DEBUG processInputFileMetaData: file name FID:????
-MetaDataSvc.IOV...  DEBUG Could not retrieve IOVMetaDataContainer objects from InputMetaDataStore - cannot process input file meta data
 AthenaPoolAddre...  DEBUG Property update for OutputLevel : new value = 2
+AthenaPoolAddre...  DEBUG Service base class initialized successfully
 ReadData            DEBUG input handles: 0
 ReadData            DEBUG output handles: 0
 ReadData            DEBUG Data Deps for ReadData
@@ -210,9 +204,7 @@ MetaDataHdr(Dat...  DEBUG    attributes# = 1
 MetaDataHdr(Dat...  DEBUG Branch container 'DataHeader'
 MetaDataHdr(Dat...  DEBUG Opened container MetaDataHdr(DataHeader) of type ROOT_Tree
 MetaDataSvc         DEBUG Loaded input meta data store proxies
-MetaDataSvc         DEBUG  calling beginInputFile for MetaDataSvc.IOVDbMetaDataTool
-MetaDataSvc.IOV...  DEBUG handle() BeginInputFile for SimplePoolFile1.root
-MetaDataSvc.IOV...  DEBUG The first BeginInputFile incidence is fired along with the FirstInputFile incidence so we skip the processing of the Input File MetaData 
+MetaDataSvc         DEBUG  calling beginInputFile for ToolSvc.IOVDbMetaDataTool
 EventSelector       DEBUG Get AttributeList from the collection
 EventSelector       DEBUG AttributeList size 0
 EventSelector       DEBUG record AthenaAttribute, name = Token = [DB=????][CNT=POOLContainer(DataHeader)][CLID=????][TECH=00000202][OID=00000006-00000000].
@@ -1105,7 +1097,7 @@ MetaDataSvc         DEBUG handle() LastInputFile for end
 AthenaEventLoopMgr   INFO No more events in event selection 
 WriteCond            INFO in finalize()
 WriteCond            INFO Pedestal x = 193136 y = 14420 z = -175208 string = <..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o..........o>
-MetaDataSvc         DEBUG  calling metaDataStop for MetaDataSvc.IOVDbMetaDataTool
+MetaDataSvc         DEBUG  calling metaDataStop for ToolSvc.IOVDbMetaDataTool
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
 Stream1              INFO Finalize: preparing to write conditions objects 
@@ -1185,8 +1177,8 @@ cRep_ALL             INFO Time User   : Tot=    0 [us] Ave/Min/Max=    0(+-    0
 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=   40 [ms] Ave/Min/Max=0.635(+- 2.44)/    0/   10 [ms] #= 63
-ChronoStatSvc        INFO Time User   : Tot= 0.93  [s]                                             #=  1
+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
 *****Chrono*****     INFO ****************************************************************************************************
 ChronoStatSvc.f...   INFO  Service finalized successfully 
 ApplicationMgr       INFO Application Manager Finalized successfully
diff --git a/Database/AthenaPOOL/AthenaPoolTools/src/BookkeeperDumper.cxx b/Database/AthenaPOOL/AthenaPoolTools/src/BookkeeperDumper.cxx
index 659c80a08ec256dcec9a9d47cdc6719c7f685c64..4f1f77158a67ba0d7ceecce97ae632de1a3fd834 100755
--- a/Database/AthenaPOOL/AthenaPoolTools/src/BookkeeperDumper.cxx
+++ b/Database/AthenaPOOL/AthenaPoolTools/src/BookkeeperDumper.cxx
@@ -53,7 +53,7 @@ void BookkeeperDumper::handle(const Incident& inc)
     ServiceHandle<StoreGateSvc> mdstore("StoreGateSvc/InputMetaDataStore", name());
     if (mdstore.retrieve().isSuccess()) {
       //
-      const DataHandle<xAOD::CutBookkeeperContainer> compBook(nullptr);
+      const xAOD::CutBookkeeperContainer* compBook = nullptr;
       if (mdstore->retrieve(compBook, "CutBookkeepers").isSuccess()) 
       {
         ATH_MSG_INFO("CBK size = " << compBook->size());
@@ -64,7 +64,7 @@ void BookkeeperDumper::handle(const Incident& inc)
         ATH_MSG_INFO("CBK No CutBookkeepers " << mdstore->dump());
       }
       //
-      const DataHandle<xAOD::CutBookkeeperContainer> incompBook(nullptr);
+      const xAOD::CutBookkeeperContainer* incompBook = nullptr;
       if (mdstore->retrieve(incompBook, "IncompleteCutBookkeepers").isSuccess()) 
       {
         ATH_MSG_INFO("ICBK size = " << incompBook->size());
@@ -75,7 +75,7 @@ void BookkeeperDumper::handle(const Incident& inc)
         ATH_MSG_INFO("ICBK No CutBookkeepers " << mdstore->dump());
       }
       //
-      const DataHandle<xAOD::CutBookkeeperContainer> pcompBook(nullptr);
+      const xAOD::CutBookkeeperContainer* pcompBook = nullptr;
       if (mdstore->retrieve(pcompBook, "PDFSumOfWeights").isSuccess()) 
       {
         ATH_MSG_INFO("PCBK size = " << pcompBook->size());
@@ -86,7 +86,7 @@ void BookkeeperDumper::handle(const Incident& inc)
         ATH_MSG_INFO("PCBK No CutBookkeepers " << mdstore->dump());
       }
       //
-      const DataHandle<xAOD::CutBookkeeperContainer> ipcompBook(nullptr);
+      const xAOD::CutBookkeeperContainer* ipcompBook = nullptr;
       if (mdstore->retrieve(ipcompBook, "IncompletePDFSumOfWeights").isSuccess()) 
       {
         ATH_MSG_INFO("IPCBK size = " << ipcompBook->size());
diff --git a/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.cxx b/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.cxx
index 22154fe0c1e4ff2f5eaf06c7dd9bb011c1ae755b..ab8c3c2a4065ada60ec53c5b589a8d9526d94fd3 100755
--- a/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.cxx
+++ b/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.cxx
@@ -21,6 +21,7 @@
 #include "GaudiKernel/IIncidentSvc.h"
 #include "GaudiKernel/FileIncident.h"
 
+#include "StoreGate/ReadHandle.h"
 #include "StoreGate/StoreGateSvc.h"
 #include "AthenaKernel/IClassIDSvc.h"
 
@@ -45,6 +46,9 @@ EventCount::EventCount(const std::string& name, ISvcLocator* pSvcLocator) :
 {
    // Declare the properties
    declareProperty("Dump", m_dump,"Bool of whether to dump object summary");
+   declareProperty("EventInfoKey",
+                   m_eventInfoKey = "EventInfo",
+                   "Key to read EventInfo.");
 }
 
 EventCount::~EventCount()
@@ -63,7 +67,9 @@ StatusCode EventCount::initialize()
 
    ServiceHandle<IIncidentSvc> incSvc("IncidentSvc", this->name());
    ATH_CHECK( incSvc.retrieve() );
-   incSvc->addListener(this, "BeginInputFile", 100); 
+   incSvc->addListener(this, "BeginInputFile", 100);
+
+   ATH_CHECK( m_eventInfoKey.initialize() );
 
    return StatusCode::SUCCESS;
 }
@@ -92,8 +98,7 @@ StatusCode EventCount::execute()
 
    // Get the event header, print out event and run number
    //ATH_MSG_INFO ( evtStore()->dump() );
-   const DataHandle<xAOD::EventInfo> evt;
-   ATH_CHECK( evtStore()->retrieve(evt) );
+   SG::ReadHandle<xAOD::EventInfo> evt (m_eventInfoKey);
    if (!evt.isValid()) {
       ATH_MSG_FATAL ( "Could not find event" );
       return(StatusCode::FAILURE);
@@ -155,8 +160,8 @@ StatusCode EventCount::execute()
    // Now check what objects are in storegate
    //
    //if (m_dump) {
-       const DataHandle<DataHeader> beg; 
-       const DataHandle<DataHeader> ending; 
+       SG::ConstIterator<DataHeader> beg; 
+       SG::ConstIterator<DataHeader> ending; 
        StatusCode status = evtStore()->retrieve(beg,ending);
        if (status.isFailure() || beg==ending) {
      	 ATH_MSG_DEBUG ( "No DataHeaders present in StoreGate" );
diff --git a/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.h b/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.h
index 4cdee77c58d8937cfaa3e62fac6624575b745347..fb0142801c7ff1069d3c6881437febc32d55cd2c 100755
--- a/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.h
+++ b/Database/AthenaPOOL/AthenaPoolTools/src/EventCount.h
@@ -30,6 +30,8 @@
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/IIncidentListener.h"
 #include "PersistentDataModel/Guid.h"
+#include "xAODEventInfo/EventInfo.h"
+#include "StoreGate/ReadHandleKey.h"
 #include "EventInfo/EventID.h"
 
 class IClassIDSvc;
@@ -59,7 +61,8 @@ public:
   
 private:
   bool m_dump;                     /// PROP If dump is set to true then the 
-				   ///  object summary will be printed 
+				   ///  object summary will be printed
+  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey;
   ServiceHandle<IClassIDSvc> m_pCLIDSvc;
   
   int m_nev;                        /// Event count for output
diff --git a/Database/AthenaPOOL/AthenaPoolTools/src/RequireUniqueEvent.cxx b/Database/AthenaPOOL/AthenaPoolTools/src/RequireUniqueEvent.cxx
index dd26f31b26dcef225ca61f5fa20a011d5d59a17a..2c95b8ec76e5122bce808491e6cfd2b28a554f15 100755
--- a/Database/AthenaPOOL/AthenaPoolTools/src/RequireUniqueEvent.cxx
+++ b/Database/AthenaPOOL/AthenaPoolTools/src/RequireUniqueEvent.cxx
@@ -39,24 +39,16 @@ StatusCode RequireUniqueEvent::initialize()
 StatusCode RequireUniqueEvent::execute() 
 {
    ATH_MSG_DEBUG ( "in execute()" );
-   
-   // Check for event header
-   const DataHandle<EventInfo> evt;
-   ATH_CHECK( evtStore()->retrieve(evt) );
-   ATH_MSG_DEBUG ( "Found EventInfo in SG" );
-    
-   if (!evt.isValid()) {
-       ATH_MSG_FATAL ( "Could not find event" );
-       return(StatusCode::FAILURE);
-   }
-   ATH_MSG_DEBUG ( "EventInfo event: " << evt->event_ID()->event_number() 
-                   << " run: " << evt->event_ID()->run_number() );
+
+   const EventIDBase& eid = getContext().eventID();
+   ATH_MSG_DEBUG ( "EventInfo event: " << eid.event_number() 
+                   << " run: " << eid.run_number() );
    //
    // Check if EventID has occurred previously. If so, issue a warning
    //  -- Use brute force, i.e. let the set keep the index and do the search
    //  -- return code on insert is pair with iterator,bool
    //
-   EventID ev( evt->event_ID()->run_number(), evt->event_ID()->event_number() ); 
+   EventID ev( eid.run_number(), eid.event_number() ); 
    if (!m_evList.insert(ev).second) {
        ATH_MSG_WARNING ( "Duplicate record " << ev );
        m_cnt++;
diff --git a/Database/AthenaRoot/AthenaRootComps/share/test_athena_variable_shape3.ref b/Database/AthenaRoot/AthenaRootComps/share/test_athena_variable_shape3.ref
old mode 100755
new mode 100644
diff --git a/Database/AthenaRoot/AthenaRootComps/share/test_athena_variable_shape_merged.ref b/Database/AthenaRoot/AthenaRootComps/share/test_athena_variable_shape_merged.ref
old mode 100755
new mode 100644
diff --git a/Database/AthenaRoot/AthenaRootComps/src/RootNtupleOutputMetadataTool.cxx b/Database/AthenaRoot/AthenaRootComps/src/RootNtupleOutputMetadataTool.cxx
index 797c3c3339c5f7725898a880adbd7623fc5e4b38..5b4524e84747b9d83b1657ba5d871e3ee4bb58ec 100755
--- a/Database/AthenaRoot/AthenaRootComps/src/RootNtupleOutputMetadataTool.cxx
+++ b/Database/AthenaRoot/AthenaRootComps/src/RootNtupleOutputMetadataTool.cxx
@@ -157,13 +157,13 @@ RootNtupleOutputMetadataTool::handle(const Incident& inc)
   ATH_MSG_DEBUG("handle() incident type: " << inc.type());
   if (inc.type()=="BeginInputFile") {
     // Have to clean out any previous file metadata trees 
-    const DataHandle<TransferTree> titer; 
-    const DataHandle<TransferTree> tend; 
+    SG::ConstIterator<TransferTree> titer; 
+    SG::ConstIterator<TransferTree> tend; 
     StatusCode pc = m_ometaStore->retrieve(titer,tend); 
     if (pc.isSuccess()) { 
       for (; titer != tend; titer++) { 
-        if (titer.cptr()!=0) { 
-          if (m_ometaStore->removeDataAndProxy(titer.cptr()).isFailure()) { 
+        if (titer.isValid()) { 
+          if (m_ometaStore->removeDataAndProxy(&*titer).isFailure()) { 
             ATH_MSG_ERROR("Unable to remove TransferTree after writing"); 
           } 
         } 
@@ -195,8 +195,8 @@ RootNtupleOutputMetadataTool::writeMetadata()
   }
   if (!m_metaWritten) {
     // Write the strings
-    const DataHandle<std::string> iter;
-    const DataHandle<std::string> end;
+    SG::ConstIterator<std::string> iter;
+    SG::ConstIterator<std::string> end;
     StatusCode pc = m_ometaStore->retrieve(iter,end);
     bool failure = false; 
     if (pc.isSuccess()) {
@@ -211,16 +211,16 @@ RootNtupleOutputMetadataTool::writeMetadata()
     }
     m_metaWritten = true;
   }
-  const DataHandle<TransferTree> titer;
-  const DataHandle<TransferTree> tend;
+  SG::ConstIterator<TransferTree> titer;
+  SG::ConstIterator<TransferTree> tend;
   StatusCode pc = m_ometaStore->retrieve(titer,tend);
   bool failure = false; 
   if (pc.isSuccess()) {
     for (; titer != tend; titer++) {
       std::string key = titer.key();
       if (m_treesWritten.find(key) == m_treesWritten.end()) {
-        if (titer.cptr()!=0) {
-          const TTree* x = (TTree*)titer.cptr()->tree(); 
+        if (titer.isValid()) {
+          const TTree* x = (TTree*)titer->tree(); 
           try { 
             if (this->addMetadata(key,x,typeid(TTree)).isFailure()) failure=true; 
           } 
@@ -245,8 +245,8 @@ RootNtupleOutputMetadataTool::writeMetadata()
 StatusCode
 RootNtupleOutputMetadataTool::copyMetadata() 
 {
-  const DataHandle<std::string> iter;
-  const DataHandle<std::string> end;
+  SG::ConstIterator<std::string> iter;
+  SG::ConstIterator<std::string> end;
   StatusCode pc = m_imetaStore->retrieve(iter,end);
   bool failure = false; 
   if (pc.isSuccess()) {
@@ -261,13 +261,13 @@ RootNtupleOutputMetadataTool::copyMetadata()
     ATH_MSG_ERROR("Problem copying metadata");
     return StatusCode::FAILURE;
   }
-  const DataHandle<TransferTree> titer;
-  const DataHandle<TransferTree> tend;
+  SG::ConstIterator<TransferTree> titer;
+  SG::ConstIterator<TransferTree> tend;
   pc = m_imetaStore->retrieve(titer,tend);
   failure = false; 
   if (pc.isSuccess()) {
     for (; titer != tend; titer++) {
-      if (titer.cptr()!=0) {
+      if (titer.isValid()) {
         auto toCopy = std::make_unique<TransferTree>(*titer);
         if (!m_ometaStore->contains<TransferTree>(titer.key())) {
           if (m_ometaStore->record(std::move(toCopy),titer.key()).isFailure()) failure=true;
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py
index e2f0a89ab8f19730f285379b02a073331bfc04f1..3edb96feb9b97a17c353728b4b0341b3e7884f2a 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py
@@ -1,4 +1,3 @@
-
 include.block ( "EventOverlayJobTransforms/CaloOverlay_jobOptions.py" )
 
 from AthenaCommon.Resilience import treatException,protectedInclude
@@ -16,13 +15,13 @@ if overlayFlags.doBkg==True:
        from OverlayCommonAlgs.OverlayCommonAlgsConf import DeepCopyObjects
        job += DeepCopyObjects("BkgRdo3")
        job.BkgRdo3.TileObjects = True
-                               
-                            
+
+
 if DetFlags.overlay.LAr_on() or DetFlags.overlay.Tile_on():
 
    jobproperties.Digitization.doCaloNoise=False
 
-   if isRealData:
+   if overlayFlags.isDataOverlay():
       include("LArConditionsCommon/LArIdMap_comm_jobOptions.py")
       include("LArConditionsCommon/LArConditionsCommon_comm_jobOptions.py")
    else:
@@ -34,26 +33,25 @@ if DetFlags.overlay.LAr_on() or DetFlags.overlay.Tile_on():
 
 if DetFlags.overlay.LAr_on():
 
-    from AthenaCommon.GlobalFlags import GlobalFlags
-    
     # FIXME this is for doing Overlay with MC RDO + MC hits
     #   real data RDO will require some changes in the setup for proper db acces
     #include( "LArDetDescr/LArDetDescr_joboptions.py" )
     #include( "LArAthenaPool/LArAthenaPool_joboptions.py" )
     # We also need the conditions svc for MC constants:
-    if readBS and isRealData:
+    if overlayFlags.isDataOverlay():
        theApp.Dlls += [ "LArByteStream"]
        LArDigitKey = "FREE"
        ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += ["LArDigitContainer/"+LArDigitKey]
        ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += ["LArFebHeaderContainer/LArFebHeader"]
        ServiceMgr.ByteStreamAddressProviderSvc.TypeNames+=["LArDigitContainer/LArDigitContainer_MC"]
-   
+
     from LArROD.LArRawChannelGetter import LArRawChannelGetter
     LArRawChannelGetter()
-    
+
     from LArROD.LArDigits import DefaultLArDigitThinner
     LArDigitThinner = DefaultLArDigitThinner('LArDigitThinner') # automatically added to topSequence
-    if isRealData:
+    if overlayFlags.isDataOverlay():
+       job.LArDigitThinner.InputContainerName = overlayFlags.dataStore()+"+FREE"
        job.LArDigitThinner.RawChannelContainerName = "LArRawChannels_FromDigits"
        #job.digitmaker1.LArPileUpTool.OutputLevel=DEBUG
        #MessageSvc.debugLimit = 100000
@@ -65,14 +63,14 @@ if DetFlags.overlay.LAr_on():
 if DetFlags.overlay.Tile_on():
 
     include( "TileIdCnv/TileIdCnv_jobOptions.py" )
-    include( "TileConditions/TileConditions_jobOptions.py" )        
+    include( "TileConditions/TileConditions_jobOptions.py" )
 
     include( "TileSimAlgs/TileDigitization_jobOptions.py" )
     include( "TileL2Algs/TileL2Algs_jobOptions.py" )
 
     job.TileHitVecToCnt.DigitizationTool.RndmEvtOverlay = True
     theTileDigitsMaker.RndmEvtOverlay = True
-    if readBS and isRealData:
+    if overlayFlags.isDataOverlay():
        theApp.Dlls += [ "TileByteStream"]
        ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileBeamElemContainer/TileBeamElemCnt"]
        ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/TileRawChannelCnt"]
@@ -81,4 +79,3 @@ if DetFlags.overlay.Tile_on():
        ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileLaserObject/TileLaserObj"]
 
 #--------------------
-
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlay_jobOptions.py
index 9f87e0c567fb20bb89086026fccb2ed24049d75b..4a2ea488b332062a24b62c2a56ad2095d9d4b1d4 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlay_jobOptions.py
@@ -2,7 +2,7 @@ include.block ( "EventOverlayJobTransforms/ConfiguredOverlay_jobOptions.py" )
 
 #--------------------------------------------------------------
 # Load POOL support
-# (modified by Piyali.Banerjee to include skip  events) 
+# (modified by Piyali.Banerjee to include skip  events)
 #--------------------------------------------------------------
 
 from AthenaCommon.AlgSequence import AlgSequence
@@ -16,16 +16,14 @@ if not isRealData:
 #=======================================================================
 from AthenaCommon.AppMgr import ServiceMgr
 from PileUpComps.PileUpCompsConf import PileUpEventLoopMgr
-    
 from PileUpComps.PileUpCompsConf import BkgStreamsCache
 
 import AthenaPoolCnvSvc.WriteAthenaPool
 from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import EventSelectorAthenaPool
 
 from StoreGate.StoreGateConf import StoreGateSvc
-
-from Digitization.DigitizationFlags import jobproperties
-digitization = jobproperties.Digitization
+from Digitization.DigitizationFlags import digitizationFlags
+from OverlayCommonAlgs.OverlayFlags import overlayFlags
 
 pileUpEventLoopMgr = PileUpEventLoopMgr()
 pileUpEventLoopMgr.OutStreamType = "AthenaOutputStream"
@@ -35,7 +33,7 @@ print "================  DetFlags  ================ "
 DetFlags.Print()
 
 #if globalflags.InputFormat()=='bytestream':
-if readBS:
+if overlayFlags.isDataOverlay():
     #if isRealData:
     #   include ("RecExCommission/RecExCommission_BSRead_config_hack.py")
     #else:
@@ -44,7 +42,7 @@ if readBS:
     from ByteStreamCnvSvc import ReadByteStream
     include("RecExCommon/BSRead_config.py")
     ServiceMgr.ByteStreamInputSvc.FullFileName = DataInputCollections
-    ServiceMgr.ByteStreamInputSvc.EventStore= "StoreGateSvc/OriginalEvent_SG"
+    ServiceMgr.ByteStreamInputSvc.EventStore= "StoreGateSvc/"+overlayFlags.dataStore()
     from AthenaKernel import StoreID
     ServiceMgr.ByteStreamAddressProviderSvc.StoreID=StoreID.UNKNOWN
     from EventSelectorAthenaPool.EventSelectorAthenaPoolConf import AthenaPoolAddressProviderSvc
@@ -59,7 +57,7 @@ pileUpEventLoopMgr.OrigSelector="EventSelector"
 pileUpEventLoopMgr.firstXing=0
 pileUpEventLoopMgr.lastXing=0
 pileUpEventLoopMgr.IsEventOverlayJob=True
-pileUpEventLoopMgr.IsEventOverlayJobMC=not isRealData
+pileUpEventLoopMgr.IsEventOverlayJobMC=not overlayFlags.isDataOverlay()
 ServiceMgr.EventSelector.SkipEvents = athenaCommonFlags.SkipEvents()
 
 # Set up MC input
@@ -73,6 +71,11 @@ pileUpEventLoopMgr.SignalSelector="mcSignal_EventSelector"
 
 ServiceMgr += pileUpEventLoopMgr
 
+# Explicitly create the two extra StoreGateSvc instances used by
+# Overlay jobs. This prevents warnings later in the configuration.
+ServiceMgr += StoreGateSvc(overlayFlags.dataStore()) #, Dump=True, OutputLevel=DEBUG)
+ServiceMgr += StoreGateSvc(overlayFlags.evtStore()) #, Dump=True, OutputLevel=DEBUG)
+
 if not hasattr(ServiceMgr, 'PileUpMergeSvc'):
     from PileUpTools.PileUpToolsConf import PileUpMergeSvc
     ServiceMgr += PileUpMergeSvc()
@@ -85,21 +88,21 @@ ServiceMgr.PileUpMergeSvc.ReturnTimedData=False
 #================================================================
 
 #synchronization of Beam flags and Digitization flags - KAA
-#if not (digitization.doMinimumBias.get_Value() or digitization.doCavern.get_Value() or
-#        digitization.doBeamGas.get_Value() or digitization.doBeamHalo.get_Value()) :
+#if not (digitizationFlags.doMinimumBias.get_Value() or digitizationFlags.doCavern.get_Value() or
+#        digitizationFlags.doBeamGas.get_Value() or digitizationFlags.doBeamHalo.get_Value()) :
 DetFlags.pileup.all_setOff()
-digitization.numberOfCollisions=0.0
+digitizationFlags.numberOfCollisions=0.0
 
 #-----------------------------------------------------------
 # Check Beam and Digitization jobproperties are synchronised
 #-----------------------------------------------------------
 from AthenaCommon.BeamFlags import jobproperties
-if jobproperties.Beam.numberOfCollisions.get_Value() != digitization.numberOfCollisions.get_Value() :
-   jobproperties.Beam.numberOfCollisions = digitization.numberOfCollisions.get_Value()
-   jobproperties.Beam.override = True ## just incase - default is True
+if jobproperties.Beam.numberOfCollisions.get_Value() != digitizationFlags.numberOfCollisions.get_Value() :
+    jobproperties.Beam.numberOfCollisions = digitizationFlags.numberOfCollisions.get_Value()
+    jobproperties.Beam.override = True ## just incase - default is True
 
-if jobproperties.Beam.bunchSpacing.get_Value() != digitization.bunchSpacing.get_Value() :
-   jobproperties.Beam.bunchSpacing = digitization.bunchSpacing.get_Value()
-   jobproperties.Beam.override = True ## just incase - default is True
+if jobproperties.Beam.bunchSpacing.get_Value() != digitizationFlags.bunchSpacing.get_Value() :
+    jobproperties.Beam.bunchSpacing = digitizationFlags.bunchSpacing.get_Value()
+    jobproperties.Beam.override = True ## just incase - default is True
 
 #================================================================
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
index 6753682414d2d3a559b50c4bf21f401e262e5d80..9347cc8c2608999a0532a0410388cb447ea75097 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py
@@ -1,6 +1,6 @@
 include.block ( "EventOverlayJobTransforms/InnerDetectorOverlay_jobOptions.py" )
 
-from Digitization.DigitizationFlags import jobproperties
+from Digitization.DigitizationFlags import digitizationFlags
 from AthenaCommon.DetFlags import DetFlags
 from AthenaCommon import CfgGetter
 from OverlayCommonAlgs.OverlayFlags import overlayFlags
@@ -10,24 +10,22 @@ from AthenaCommon.Resilience import treatException,protectedInclude
 if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.TRT_on():
 
     if overlayFlags.doBkg==True:
-       from OverlayCommonAlgs.OverlayCommonAlgsConf import DeepCopyObjects
-       job += DeepCopyObjects("BkgRdo1")
-       job.BkgRdo1.InDetObjects = True
+        from OverlayCommonAlgs.OverlayCommonAlgsConf import DeepCopyObjects
+        job += DeepCopyObjects("BkgRdo1")
+        job.BkgRdo1.InDetObjects = True
 
-    include( "InDetEventAthenaPool/InDetEventAthenaPool_joboptions.py" ) # FIXME: is needed?
+    digitizationFlags.doInDetNoise=False # FIXME THIS SHOULD BE SET EARLIER IN THE CONFIGURATION
 
-    jobproperties.Digitization.doInDetNoise=False
-
-    #if readBS and isRealData:
+    #if overlayFlags.isDataOverlay():
     #   include( "InDetCosmicRecExample/InDetCosmicFlags_jobOptions.py" )
 
     if DetFlags.overlay.pixel_on():
         job += CfgGetter.getAlgorithm("PixelOverlayDigitization")
 
-        if readBS and isRealData:
-           job.InDetPixelRawDataProvider.RDOKey = "OriginalEvent_SG+PixelRDOs"
-           #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "PixelRDO_Container/PixelRDOs" ]
-           #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "Trk::PixelClusterContainer/PixelOnlineClusters" ]
+        if overlayFlags.isDataOverlay():
+            job.InDetPixelRawDataProvider.RDOKey = overlayFlags.dataStore()+"+PixelRDOs"
+            #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "PixelRDO_Container/PixelRDOs" ]
+            #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "Trk::PixelClusterContainer/PixelOnlineClusters" ]
         else:
             if not conddb.folderRequested('PIXEL/PixReco'):
                 conddb.addFolder('PIXEL_OFL','/PIXEL/PixReco')
@@ -35,60 +33,55 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.
     if DetFlags.overlay.SCT_on():
 
         # Setup the ReadCalibChip folders and Svc
-        if isRealData:
-           #conddb.blockFolder("/SCT/DAQ/Calibration/ChipGain")
-           #conddb.blockFolder("/SCT/DAQ/Calibration/ChipNoise")
-           #conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipGain",forceMC=True)
-           #conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipNoise",forceMC=True)
-           conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipGain<tag>SctDaqCalibrationChipGain-Apr10-01</tag>",forceMC=True, className="CondAttrListCollection")
-           conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipNoise<tag>SctDaqCalibrationChipNoise-Apr10-01</tag>",forceMC=True, className="CondAttrListCollection")
-
-           #if not conddb.folderRequested('/SCT/DAQ/Calibration/ChipGain'):
-           #   conddb.addFolderSplitOnline("SCT","/SCT/DAQ/Calibration/ChipGain","/SCT/DAQ/Calibration/ChipGain",forceMC=True)
-           #if not conddb.folderRequested('/SCT/DAQ/Calibration/ChipNoise'):
-           #   conddb.addFolderSplitOnline("SCT","/SCT/DAQ/Calibration/ChipNoise","/SCT/DAQ/Calibration/ChipNoise",forceMC=True)
+        if overlayFlags.isDataOverlay():
+            #conddb.blockFolder("/SCT/DAQ/Calibration/ChipGain")
+            #conddb.blockFolder("/SCT/DAQ/Calibration/ChipNoise")
+            #conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipGain",forceMC=True)
+            #conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipNoise",forceMC=True)
+            conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipGain<tag>SctDaqCalibrationChipGain-Apr10-01</tag>",forceMC=True, className="CondAttrListCollection")
+            conddb.addFolder("SCT_OFL","/SCT/DAQ/Calibration/ChipNoise<tag>SctDaqCalibrationChipNoise-Apr10-01</tag>",forceMC=True, className="CondAttrListCollection")
+
+            #if not conddb.folderRequested('/SCT/DAQ/Calibration/ChipGain'):
+            #   conddb.addFolderSplitOnline("SCT","/SCT/DAQ/Calibration/ChipGain","/SCT/DAQ/Calibration/ChipGain",forceMC=True)
+            #if not conddb.folderRequested('/SCT/DAQ/Calibration/ChipNoise'):
+            #   conddb.addFolderSplitOnline("SCT","/SCT/DAQ/Calibration/ChipNoise","/SCT/DAQ/Calibration/ChipNoise",forceMC=True)
 
         job += CfgGetter.getAlgorithm("SCT_OverlayDigitization")
-        CfgGetter.getPublicTool("SCT_DigitizationTool").InputObjectName="SCT_Hits"
-        if readBS and isRealData:
-           #job.InDetSCTRawDataProvider.EvtStore = "OriginalEvent_SG"
-           job.InDetSCTRawDataProvider.RDOKey = "OriginalEvent_SG+SCT_RDOs"
-           job.InDetSCTRawDataProvider.LVL1IDKey = "OriginalEvent_SG+SCT_LVL1ID"
-           job.InDetSCTRawDataProvider.BCIDKey = "OriginalEvent_SG+SCT_BCID"
-           #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "SCT_RDO_Container/SCT_RDOs" ]
-           #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "Trk::SCT_ClusterContainer/SCT_OnlineClusters" ]
+        if overlayFlags.isDataOverlay():
+            job.InDetSCTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+SCT_RDOs"
+            job.InDetSCTRawDataProvider.LVL1IDKey = overlayFlags.dataStore()+"+SCT_LVL1ID"
+            job.InDetSCTRawDataProvider.BCIDKey = overlayFlags.dataStore()+"+SCT_BCID"
+            #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "SCT_RDO_Container/SCT_RDOs" ]
+            #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "Trk::SCT_ClusterContainer/SCT_OnlineClusters" ]
 
     if DetFlags.overlay.TRT_on():
-        if isRealData:
-           conddb.blockFolder("/TRT/Cond/DigVers")
-           #conddb.addFolderWithTag("TRT_OFL","/TRT/Cond/DigVers","TRTCondDigVers-Collisions-01",force=True,forceMC=True)
-           conddb.addFolder("TRT_OFL","/TRT/Cond/DigVers",forceMC=True)
+        if overlayFlags.isDataOverlay():
+            conddb.blockFolder("/TRT/Cond/DigVers")
+            #conddb.addFolderWithTag("TRT_OFL","/TRT/Cond/DigVers","TRTCondDigVers-Collisions-01",force=True,forceMC=True)
+            conddb.addFolder("TRT_OFL","/TRT/Cond/DigVers",forceMC=True)
 
         from TRT_ElectronPidTools.TRT_ElectronPidToolsConf import InDet__TRT_LocalOccupancy
-        TRT_LocalOccupancy = InDet__TRT_LocalOccupancy(      name              ="TRT_LocalOccupancy",
-                                                             isTrigger         = False, 
-        )
+        TRT_LocalOccupancy = InDet__TRT_LocalOccupancy(name="TRT_LocalOccupancy", isTrigger= False )
         ToolSvc += TRT_LocalOccupancy
 
         job += CfgGetter.getAlgorithm("TRT_OverlayDigitization")
-                        
+
         from InDetRecExample.InDetJobProperties import InDetFlags
         include("InDetRecExample/InDetRecConditionsAccess.py")
 
-        if readBS and isRealData:
-           job.InDetTRTRawDataProvider.EvtStore = "OriginalEvent_SG"
-           job.InDetTRTRawDataProvider.RDOKey = "OriginalEvent_SG+TRT_RDOs"
-           #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TRT_RDO_Container/TRT_RDOs" ]
-  
-          #from IOVDbSvc.CondDB import conddb
-#           conddb.addFolder("TRT","/TRT/Calib/T0","<tag>TrtCalibt0-UPD2-FDR2-01</tag>")
-#           conddb.addFolder("TRT","/TRT/Calib/RT","<tag>TrtCalibRt-UPD2-FDR2-01</tag>")
-      #     conddb.addFolder("TRT","/TRT/Calib/T0","<tag>TrtCalibRt-HLT-UPD1-01</tag>")
-       #    conddb.addFolder("TRT","/TRT/Calib/RT","<tag>TrtCalibT0-HLT-UPD1-01</tag>")
-           conddb.addFolder("TRT_ONL","/TRT/Onl/ROD/Compress")
+        if overlayFlags.isDataOverlay():
+            job.InDetTRTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+TRT_RDOs"
+            #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TRT_RDO_Container/TRT_RDOs" ]
+
+            #from IOVDbSvc.CondDB import conddb
+            #conddb.addFolder("TRT","/TRT/Calib/T0","<tag>TrtCalibt0-UPD2-FDR2-01</tag>")
+            #conddb.addFolder("TRT","/TRT/Calib/RT","<tag>TrtCalibRt-UPD2-FDR2-01</tag>")
+            #conddb.addFolder("TRT","/TRT/Calib/T0","<tag>TrtCalibRt-HLT-UPD1-01</tag>")
+            #conddb.addFolder("TRT","/TRT/Calib/RT","<tag>TrtCalibT0-HLT-UPD1-01</tag>")
+            conddb.addFolder("TRT_ONL","/TRT/Onl/ROD/Compress")
 
     if overlayFlags.doSignal==True:
-       include ("EventOverlayJobTransforms/InDetMcSignal_jobOptions.py")
+        include ("EventOverlayJobTransforms/InDetMcSignal_jobOptions.py")
 
     job += CfgGetter.getAlgorithm("InDetOverlay")
     job += CfgGetter.getAlgorithm("InDetSDOOverlay")
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/LArMcSignal_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/LArMcSignal_jobOptions.py
index 405537047faba6f350773d2c380114cdef05f944..71bf544299af9f925ef937fb248d550a3d65e230 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/LArMcSignal_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/LArMcSignal_jobOptions.py
@@ -38,7 +38,7 @@ if DetFlags.overlay.LAr_on():
    theLArPileUpTool.NoiseOnOff = False
    theLArPileUpTool.RecordMap = False
    
-   if isRealData:
+   if overlayFlags.isDataOverlay():
       theLArPileUpTool.PedestalKey = job.digitmaker1.LArPileUpTool.PedestalKey
 
    theLArPileUpTool.ADC2MeVTool = job.digitmaker1.LArPileUpTool.ADC2MeVTool
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/Level1Overlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/Level1Overlay_jobOptions.py
index f7f488bafb7a88592b8f8ff2497cd9a437bf062e..616a525fa7bebd8fbb6053800982b0b1e209d081 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/Level1Overlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/Level1Overlay_jobOptions.py
@@ -2,7 +2,7 @@
 include.block ( "EventOverlayJobTransforms/Level1Overlay_jobOptions.py" )
 
 from AthenaCommon.DetFlags import DetFlags
-from Digitization.DigitizationFlags import jobproperties
+from Digitization.DigitizationFlags import digitizationFlags
 from OverlayCommonAlgs.OverlayFlags import overlayFlags
 
 if DetFlags.overlay.LVL1_on():
@@ -12,7 +12,7 @@ if DetFlags.overlay.LVL1_on():
        job += DeepCopyObjects("BkgRdo5")
        job.BkgRdo5.Level1Objects = True
           
-    if readBS and isRealData:
+    if overlayFlags.isDataOverlay():
        include ("TrigT1CaloByteStream/ReadLVL1CaloBS_jobOptions.py")
        #include ("MuonCommRecExample/ReadMuCTPI_jobOptions.py")
 
@@ -29,7 +29,7 @@ if DetFlags.overlay.LVL1_on():
     if DetFlags.simulateLVL1.LAr_on():
         include( "LArL1Sim/LArL1Sim_G4_jobOptions.py" )
         # Noise 
-        if not jobproperties.Digitization.doCaloNoise.get_Value():
+        if not digitizationFlags.doCaloNoise.get_Value():
             job.LArTTL1Maker.NoiseOnOff= False #(default:True) 
         # PileUp
         job.LArTTL1Maker.PileUp = True
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/MuonMcSignal_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/MuonMcSignal_jobOptions.py
index dbef2b7478ff62c6fac3344aa721cfbdf409e4e3..014555980e1ebddee9b6d9e904b82edd3c51b7c6 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/MuonMcSignal_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/MuonMcSignal_jobOptions.py
@@ -14,25 +14,19 @@ theApp.Dlls += [ "MuonByteStreamCnvTest" ]
 theApp.Dlls += [ "TrigT1RPChardware" ]
 theApp.Dlls += [ "TrigT1RPCsteering" ]
 theApp.Dlls += [ "TrigT1RPCmonitoring" ]
-
+from AthenaCommon.CfgGetter import getAlgorithm
 if DetFlags.overlay.MDT_on():
-        from MuonByteStreamCnvTest.MuonByteStreamCnvTestConf import MdtDigitToMdtRDO
-        job += MdtDigitToMdtRDO( "SigMdtDigitToMdtRDO" )
-        job.SigMdtDigitToMdtRDO.EvtStore = job.MdtOverlay.MCStore
+        job += getAlgorithm( "SigMdtDigitToMdtRDO" )
         #ACH if readBS==False:
            #ACH job += MdtDigitToMdtRDO( "BkgMdtDigitToMdtRDO" )
            #ACH job.BkgMdtDigitToMdtRDO.Store = job.MdtOverlay.TempBkgStore
 if DetFlags.overlay.RPC_on():
-        from MuonByteStreamCnvTest.MuonByteStreamCnvTestConf import RpcDigitToRpcRDO
-        job += RpcDigitToRpcRDO( "SigRpcDigitToRpcRDO" )
-        job.SigRpcDigitToRpcRDO.EvtStore = job.RpcOverlay.MCStore
+        job += getAlgorithm( "SigRpcDigitToRpcRDO" )
         #ACH if readBS==False:
            #ACH job += RpcDigitToRpcRDO( "BkgRpcDigitToRpcRDO" )
            #ACH job.BkgRpcDigitToRpcRDO.Store = job.RpcOverlay.TempBkgStore
 if DetFlags.overlay.TGC_on():
-        from MuonByteStreamCnvTest.MuonByteStreamCnvTestConf import TgcDigitToTgcRDO
-        job += TgcDigitToTgcRDO( "SigTgcDigitToTgcRDO" )
-        job.SigTgcDigitToTgcRDO.EvtStore = job.TgcOverlay.MCStore
+        job += getAlgorithm( "SigTgcDigitToTgcRDO" )
         #ACH if readBS==False:
            #ACH job += TgcDigitToTgcRDO( "BkgTgcDigitToTgcRDO" )
            #ACH job.BkgTgcDigitToTgcRDO.Store = job.TgcOverlay.TempBkgStore
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py
index 88b90882734e94361581b3e24dad43c02cd976e4..9d999f7abf749df07bef22e7b7da2133b09395f4 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/MuonOverlay_jobOptions.py
@@ -6,43 +6,46 @@ from Digitization.DigitizationFlags import digitizationFlags
 from AthenaCommon.DetFlags import DetFlags
 from OverlayCommonAlgs.OverlayFlags import overlayFlags
 from AthenaCommon import CfgGetter
+from AthenaCommon.CfgGetter import getAlgorithm
 
 from RecExConfig.RecFlags import rec as recFlags
 
 if DetFlags.overlay.MDT_on() or DetFlags.overlay.CSC_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on():
-   
+
     include( "MuonEventAthenaPool/MuonEventAthenaPool_joboptions.py" )
- 
+
     import MuonRecExample.MuonReadCalib
-    if readBS and isRealData:
-       theApp.Dlls += [ "MuonByteStream"]
-       if DetFlags.overlay.CSC_on():
-          from MuonRecExample.MuonRecFlags import muonRecFlags
-          muonRecFlags.doCSCs.set_Value_and_Lock = True
+    if overlayFlags.isDataOverlay():
+        theApp.Dlls += [ "MuonByteStream"]
+        if DetFlags.overlay.CSC_on():
+            from MuonRecExample.MuonRecFlags import muonRecFlags
+            muonRecFlags.doCSCs.set_Value_and_Lock = True #FIXME should not be setting jobproperties at this point in the configuration.
 
-       from MuonByteStream.MuonByteStreamFlags import muonByteStreamFlags
-       muonByteStreamFlags.TgcDataType = "atlas"#FIXME should not be setting jobproperties at this point in the configuration.
-       muonByteStreamFlags.RpcDataType = "atlas"#FIXME should not be setting jobproperties at this point in the configuration.
-       muonByteStreamFlags.MdtDataType = "atlas"#FIXME should not be setting jobproperties at this point in the configuration.
+        from MuonByteStream.MuonByteStreamFlags import muonByteStreamFlags
+        muonByteStreamFlags.TgcDataType = "atlas"#FIXME should not be setting jobproperties at this point in the configuration.
+        muonByteStreamFlags.RpcDataType = "atlas"#FIXME should not be setting jobproperties at this point in the configuration.
+        muonByteStreamFlags.MdtDataType = "atlas"#FIXME should not be setting jobproperties at this point in the configuration.
 
     if overlayFlags.doBkg==True:
-       from OverlayCommonAlgs.OverlayCommonAlgsConf import DeepCopyObjects
-       job += DeepCopyObjects("BkgRdo4")
-       job.BkgRdo4.MuonObjects = True
-       
+        from OverlayCommonAlgs.OverlayCommonAlgsConf import DeepCopyObjects
+        job += DeepCopyObjects("BkgRdo4")
+        job.BkgRdo4.MuonObjects = True
+
     import MuonCnvExample.MuonCablingConfig
 
     digitizationFlags.doMuonNoise=False #FIXME should not be setting jobproperties at this point in the configuration.
 
-    if readBS:
-       include("MuonCnvExample/MuonReadBS_jobOptions.py")
+    if overlayFlags.isDataOverlay():
+        include("MuonCnvExample/MuonReadBS_jobOptions.py")
 
     if DetFlags.overlay.CSC_on():
-        if readBS:
-           ToolSvc.CscRawDataProviderTool.RdoLocation = "OriginalEvent_SG+CSCRDO"
-        include ( "CscOverlay/CscOverlay_jobOptions.py" )
-        job.CscOverlay.IsByteStream = readBS
-        job.CscOverlay.DataStore = "OriginalEvent_SG"
+        if overlayFlags.isDataOverlay():
+            ToolSvc.CscRawDataProviderTool.RdoLocation = overlayFlags.dataStore()+"+CSCRDO"
+        job += getAlgorithm("CscOverlay")
+
+        #job.CscOverlay.OutputLevel=VERBOSE
+        #svcMgr.MessageSvc.defaultLimit=100000
+        #print job.CscOverlay
 
         #print "ACH123: Setting DEBUG v99"
         #job.CscOverlay.MakeRDOTool.OutputLevel=DEBUG
@@ -52,52 +55,36 @@ if DetFlags.overlay.MDT_on() or DetFlags.overlay.CSC_on() or DetFlags.overlay.RP
 
         #print "ACH123: NumSamples = 2 for MakeRDOTool"
         #job.CscOverlay.MakeRDOTool.NumSamples=2
-        
+
     if DetFlags.overlay.MDT_on():
-       # include ( "MdtOverlay/MdtOverlay_jobOptions.py" )
         job += CfgGetter.getAlgorithm("MdtOverlay")
-        from MuonByteStreamCnvTest.MuonByteStreamCnvTestConf import MdtDigitToMdtRDO
-        job += MdtDigitToMdtRDO()
-        job.MdtDigitToMdtRDO.InputObjectName = overlayFlags.dataStore()+"+MDT_DIGITS"
-        job.MdtDigitToMdtRDO.OutputObjectName = overlayFlags.dataStore()+"+MDTCSM"
-        
-
-        if readBS:
-           ToolSvc.MdtRawDataProviderTool.RdoLocation = "OriginalEvent_SG+MDTCSM"
-           job.MdtOverlay.ConvertRDOToDigitTool.RetrievePrivateCopy = False
-
+        job += CfgGetter.getAlgorithm("OverlayMdtDigitToMdtRDO")
+        if overlayFlags.isDataOverlay():
+            ToolSvc.MdtRawDataProviderTool.RdoLocation = overlayFlags.dataStore()+"+MDTCSM"
+            job.MdtOverlay.ConvertRDOToDigitTool.RetrievePrivateCopy = False
         #job.MdtOverlay.OutputLevel = VERBOSE
-        #job.MdtDigitToMdtRDO.OutputLevel = VERBOSE
+        #job.OverlayMdtDigitToMdtRDO.OutputLevel = VERBOSE
 
     if DetFlags.overlay.RPC_on():
         job += CfgGetter.getAlgorithm("RpcOverlay")
-        from MuonByteStreamCnvTest.MuonByteStreamCnvTestConf import RpcDigitToRpcRDO
-        job += RpcDigitToRpcRDO()
-        job.RpcDigitToRpcRDO.EvtStore = job.RpcOverlay.OutputStore
-        #include ( "RpcOverlay/RpcOverlay_jobOptions.py" )
-        #job.RpcOverlay.DataStore = "BkgEvent_2_SG"
-        if readBS:
-           ToolSvc.RpcRawDataProviderTool.RdoLocation = "OriginalEvent_SG+RPCPAD"
-           job.RpcOverlay.ConvertRDOToDigitTool.RetrievePrivateCopy = False 
+        job += CfgGetter.getAlgorithm("OverlayRpcDigitToRpcRDO")
+        if overlayFlags.isDataOverlay():
+            ToolSvc.RpcRawDataProviderTool.RdoLocation = overlayFlags.dataStore()+"+RPCPAD"
+            job.RpcOverlay.ConvertRDOToDigitTool.RetrievePrivateCopy = False
         #job.RpcOverlay.OutputLevel = VERBOSE
-        #job.RpcDigitToRpcRDO.OutputLevel = VERBOSE
+        #job.OverlayRpcDigitToRpcRDO.OutputLevel = VERBOSE
 
     if DetFlags.overlay.TGC_on():
-       # include ( "TgcOverlay/TgcOverlay_jobOptions.py" )
         job += CfgGetter.getAlgorithm("TgcOverlay")
-        from MuonByteStreamCnvTest.MuonByteStreamCnvTestConf import TgcDigitToTgcRDO
-        job += TgcDigitToTgcRDO()
-        job.TgcDigitToTgcRDO.EvtStore = job.TgcOverlay.OutputStore
-        #job.TgcOverlay.DataStore = "BkgEvent_2_SG"
-        if readBS:
-           ToolSvc.TgcRawDataProviderTool.RdoLocation = "OriginalEvent_SG+TGCRDO"
-
-           job.TgcOverlay.ConvertRDOToDigitTool.RetrievePrivateCopy = False
-
-           # storegate dump
-           # StoreGateSvc = Service( "StoreGateSvc" )
-           # StoreGateSvc.Dump = True  #true will dump data store contents
-
-           # StoreGateSvc.OutputLevel=DEBUG
-
-            
+        job += CfgGetter.getAlgorithm("OverlayTgcDigitToTgcRDO")
+        if overlayFlags.isDataOverlay():
+            ToolSvc.TgcRawDataProviderTool.RdoLocation = overlayFlags.dataStore()+"+TGCRDO"
+            job.TgcOverlay.ConvertRDOToDigitTool.RetrievePrivateCopy = False
+        #job.TgcOverlay.OutputLevel = VERBOSE
+        #job.OverlayTgcDigitToRpcRDO.OutputLevel = VERBOSE
+
+        # storegate dump
+        # StoreGateSvc = Service( "StoreGateSvc" )
+        # StoreGateSvc.Dump = True  #true will dump data store contents
+
+        # StoreGateSvc.OutputLevel=DEBUG
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutputItemList_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutputItemList_jobOptions.py
index c40590b7924e0eae935a24964d5821a102f238fa..60d2003142c180322e62a54247056f6c8f957c92 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutputItemList_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/OverlayOutputItemList_jobOptions.py
@@ -3,6 +3,7 @@ include.block ( "EventOverlayJobTransforms/OverlayOutputItemList_jobOptions.py"
 from AthenaCommon.AppMgr import ServiceMgr
 from AthenaCommon.DetFlags import DetFlags
 from Digitization.DigitizationFlags import digitizationFlags
+from OverlayCommonAlgs.OverlayFlags import overlayFlags
 
 # The output - overlay
 from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
@@ -15,7 +16,7 @@ outStream.ItemList += [ "EventInfo#*", "PileUpEventInfo#*" ]
 outStream.ItemList += [ "LumiBlockCollection#*" ]
 
 # timings
-if not isRealData:
+if not overlayFlags.isDataOverlay():
     outStream.ItemList += ["RecoTimingObj#EVNTtoHITS_timings"]
     outStream.ItemList += ["RecoTimingObj#HITStoRDO_timings"]
 
@@ -42,7 +43,7 @@ if DetFlags.overlay.Truth_on():
    if DetFlags.overlay.TRT_on():
       outStream.ItemList += [ "InDetSimDataCollection#TRT_SDO_Map" ]
    if DetFlags.overlay.BCM_on():
-      outStream.ItemList += [ "InDetSimDataCollection#BCM_SDO_Map" ] 
+      outStream.ItemList += [ "InDetSimDataCollection#BCM_SDO_Map" ]
 
 if DetFlags.overlay.pixel_on():
    outStream.ItemList += ["PixelRDO_Container#*"]
@@ -63,7 +64,7 @@ if DetFlags.overlay.LAr_on():
    outStream.ItemList+=["LArFebErrorSummary#*"]
 if DetFlags.overlay.Tile_on():
    outStream.ItemList += [ "TileRawChannelContainer#*" ]
-   if isRealData or 'AddCaloDigi' in digitizationFlags.experimentalDigi():
+   if overlayFlags.isDataOverlay() or 'AddCaloDigi' in digitizationFlags.experimentalDigi():
        outStream.ItemList += [ "TileDigitsContainer#*" ]
    else:
        outStream.ItemList += [ "TileDigitsContainer#TileDigitsFlt" ]
@@ -110,5 +111,3 @@ if DetFlags.overlay.LVL1_on():
                            "DataVector<LVL1::JEMRoI>#*",
                            "DataVector<LVL1::JEMEtSums>#*",
                            "LVL1::CMMRoI#*"]
-
-
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/TruthOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/TruthOverlay_jobOptions.py
index 7aaa8f8515b832bab24d2c9a6da4d34e2b11d57e..39f97279cc661f9de0a06bc7c767155d8a97282e 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/TruthOverlay_jobOptions.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/TruthOverlay_jobOptions.py
@@ -1,4 +1,3 @@
-
 include.block ( "EventOverlayJobTransforms/TruthOverlay_jobOptions.py" )
 
 # McEventCollection copying.  Alghough logically it belongs to
@@ -7,7 +6,7 @@ include.block ( "EventOverlayJobTransforms/TruthOverlay_jobOptions.py" )
 from OverlayCommonAlgs.OverlayFlags import overlayFlags
 
 if overlayFlags.doBkg==True:
-    from OverlayCommonAlgs.OverlayCommonAlgsConf import DeepCopyObjects   
+    from OverlayCommonAlgs.OverlayCommonAlgsConf import DeepCopyObjects
     job += DeepCopyObjects("BkgRdo")
     job.BkgRdo.EvtInfoObjects = True
     job += DeepCopyObjects("BkgRdo0")
@@ -15,9 +14,9 @@ if overlayFlags.doBkg==True:
 
 from OverlayCommonAlgs.OverlayCommonAlgsConf import CopyMcEventCollection
 job += CopyMcEventCollection()
-if readBS and isRealData:
+if overlayFlags.isDataOverlay():
     job.CopyMcEventCollection.RealData = True
 
-if not isRealData:
+if not overlayFlags.isDataOverlay():
     from OverlayCommonAlgs.OverlayCommonAlgsConf import CopyTruthInfo
     job += CopyTruthInfo()
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py
index 29e7b85402215446198ab356d94e3c2ac28673ed..a638742078f2c79e4ef3bf89e636119812a7cc42 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayBS_tf.py
@@ -30,7 +30,7 @@ larCondFlags.OFCShapeFolder.set_Value_and_Lock("")
 
 globalflags.isOverlay.set_Value_and_Lock(True)
 overlayFlags.isDataOverlay.set_Value_and_Lock(True)
-isRealData = True
+isRealData = overlayFlags.isDataOverlay()
 
 from AthenaCommon.BeamFlags import jobproperties
 jobproperties.Beam.beamType.set_Value_and_Lock("collisions")
@@ -81,7 +81,7 @@ if hasattr(runArgs,"samplingFractionDbTag"): digitizationFlags.physicsList=runAr
 if hasattr(runArgs,"digiRndmSvc"): digitizationFlags.rndmSvc=runArgs.digiRndmSvc
 #if hasattr(runArgs, "AddCaloDigi"): digitizationFlags.experimentalDigi+=["AddCaloDigi"]
 
-readBS = True
+readBS = overlayFlags.isDataOverlay()
 overlayFlags.doBkg=False #ACH
 
 #GlobalFlags.InputFormat.set_bytestream()
diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py
index 8816ac2bd4accd69be2a25837ce8a6c05a9b7b3d..c859ae6ac90626a02468e8c97a243117802895fc 100644
--- a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py
+++ b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.OverlayPool_tf.py
@@ -39,10 +39,10 @@ if hasattr(runArgs,"inputHITSFile"):
 else:
     raise RuntimeError ("No input HITS file defined")
 
-if hasattr(runArgs,"outputRDOFile"): 
+if hasattr(runArgs,"outputRDOFile"):
     athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock( runArgs.outputRDOFile )
     OverlayCollection = runArgs.outputRDOFile
-    
+
 if not hasattr(runArgs, 'outputRDO_SGNLFile') or runArgs.outputRDO_SGNLFile=="NONE":
     overlayFlags.doSignal=False
     SignalCollection = "NONE"
@@ -60,8 +60,8 @@ if hasattr(runArgs,"samplingFractionDbTag"): digitizationFlags.physicsList=runAr
 if hasattr(runArgs,"digiRndmSvc"): digitizationFlags.rndmSvc=runArgs.digiRndmSvc
 if hasattr(runArgs, "AddCaloDigi"): digitizationFlags.experimentalDigi+=["AddCaloDigi"]
 
-readBS = False
-isRealData = False
+readBS = overlayFlags.isDataOverlay()
+isRealData = overlayFlags.isDataOverlay()
 
 from RecExConfig.RecFlags import rec
 rec.projectName = 'IS_SIMULATION'
@@ -74,9 +74,9 @@ import MagFieldServices.SetupField
 from IOVDbSvc.CondDB import conddb
 
 if hasattr(runArgs, 'conditionsTag') and runArgs.conditionsTag!='NONE' and runArgs.conditionsTag!='':
-   globalflags.ConditionsTag=runArgs.conditionsTag
-   if len(globalflags.ConditionsTag())!=0:
-      conddb.setGlobalTag(globalflags.ConditionsTag())
+    globalflags.ConditionsTag=runArgs.conditionsTag
+    if len(globalflags.ConditionsTag())!=0:
+        conddb.setGlobalTag(globalflags.ConditionsTag())
 
 # LVL1 Trigger Menu
 if hasattr(runArgs, "triggerConfig") and runArgs.triggerConfig!="NONE":
@@ -139,7 +139,7 @@ except:
     overlaylog.warning('Could not add TimingAlg, no timing info will be written out.')
 
 
-include ( "RecExCond/AllDet_detDescr.py" )
+include ( "RecExCond/AllDet_detDescr.py" ) #FIXME Dangerous to use this one
 
 from AthenaCommon.AppMgr import theApp
 theApp.EventLoop = "PileUpEventLoopMgr"
diff --git a/Event/xAOD/xAODCore/CMakeLists.txt b/Event/xAOD/xAODCore/CMakeLists.txt
index fe6bd1ff008608517848823336a37aaf3e4a5e93..c4565de13bd321f7c44df6b4d73763f643a4c73c 100644
--- a/Event/xAOD/xAODCore/CMakeLists.txt
+++ b/Event/xAOD/xAODCore/CMakeLists.txt
@@ -81,11 +81,9 @@ atlas_add_test( ut_xaodcore_auxinfobase_test
    SOURCES test/ut_xaodcore_auxinfobase_test.cxx
    LINK_LIBRARIES AthContainers xAODCore )
 
-if( XAOD_STANDALONE )
-   atlas_add_test( ut_xaodcore_shallowcopy_test
-      SOURCES test/ut_xaodcore_shallowcopy.cxx
-      LINK_LIBRARIES AthContainers AthLinks xAODCore )
-endif()
+atlas_add_test( ut_xaodcore_shallowcopy_test
+   SOURCES test/ut_xaodcore_shallowcopy.cxx
+   LINK_LIBRARIES AthContainers AthLinks xAODCore )
 
 # Declare the "include tests":
 foreach( header AddDVProxy AuxContainerBase AuxSelection BaseInfo CLASS_DEF
diff --git a/Event/xAOD/xAODCore/share/ut_xaodcore_shallowcopy_test.ref b/Event/xAOD/xAODCore/share/ut_xaodcore_shallowcopy_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..c2fbee20eb8de459af637ef3af73b8fe05079bf7
--- /dev/null
+++ b/Event/xAOD/xAODCore/share/ut_xaodcore_shallowcopy_test.ref
@@ -0,0 +1 @@
+All tests with xAOD::ShallowAuxContainer succeeded
diff --git a/Event/xAOD/xAODCore/test/ut_xaodcore_shallowcopy.cxx b/Event/xAOD/xAODCore/test/ut_xaodcore_shallowcopy.cxx
index a571c405dea267a01b15357e827a6a90d402a3fd..29f49daf3b4065caf78d0d2d8aca7e9bf185e1f5 100644
--- a/Event/xAOD/xAODCore/test/ut_xaodcore_shallowcopy.cxx
+++ b/Event/xAOD/xAODCore/test/ut_xaodcore_shallowcopy.cxx
@@ -13,11 +13,15 @@
 #include <cmath>
 
 // EDM include(s):
+#ifdef XAOD_STANDALONE
 #define private public
 #define protected public
 #   include "AthLinks/DataLink.h"
 #undef protected
 #undef private
+#else
+# include "AthLinks/DataLink.h"
+#endif
 #include "AthContainers/AuxElement.h"
 #include "AthContainers/DataVector.h"
 
@@ -36,24 +40,10 @@
       }                                                                      \
    } while( 0 )
 
-int main() {
-
-   // Create a test container that we'll make a copy of later on:
-   xAOD::AuxContainerBase origAux;
-   DataVector< SG::AuxElement > origVec;
-   origVec.setStore( &origAux );
-   for( int i = 0; i < 10; ++i ) {
-      SG::AuxElement* e = new SG::AuxElement();
-      origVec.push_back( e );
-      e->auxdata< int >( "IntVar" ) = i;
-      e->auxdata< float >( "FloatVar" ) = i + 1;
-   }
 
-   // Make a shallow copy of it:
-   xAOD::ShallowAuxContainer copyAux;
-   DataLink< SG::IConstAuxStore > link;
-   link.m_object = &origAux;
-   copyAux.setParent( link );
+int testCopy (const DataVector<SG::AuxElement>& origVec,
+               xAOD::ShallowAuxContainer& copyAux)
+{
    DataVector< SG::AuxElement > copyVec;
    for( size_t i = 0; i < origVec.size(); ++i ) {
       copyVec.push_back( new SG::AuxElement() );
@@ -111,6 +101,46 @@ int main() {
    copyAux.setShallowIO( false );
    SIMPLE_ASSERT( copyAux.getSelectedAuxIDs().size() == 2 );
 
+   return 0;
+}
+
+
+int main() {
+
+   // Create a test container that we'll make a copy of later on:
+   xAOD::AuxContainerBase origAux;
+   DataVector< SG::AuxElement > origVec;
+   origVec.setStore( &origAux );
+   for( int i = 0; i < 10; ++i ) {
+      SG::AuxElement* e = new SG::AuxElement();
+      origVec.push_back( e );
+      e->auxdata< int >( "IntVar" ) = i;
+      e->auxdata< float >( "FloatVar" ) = i + 1;
+   }
+
+#ifdef XAOD_STANDALONE
+   DataLink< SG::IConstAuxStore > link;
+   link.m_object = &origAux;
+#else
+   DataLink< SG::IConstAuxStore > link (&origAux);
+#endif
+
+   // Make a shallow copy of it:
+   {
+     xAOD::ShallowAuxContainer copyAux;
+     copyAux.setParent( link );
+     if (testCopy (origVec, copyAux))
+       return 1;
+   }
+
+   {
+     xAOD::ShallowAuxContainer copyAux (link);
+     if (testCopy (origVec, copyAux))
+       return 1;
+     xAOD::ShallowAuxContainer copyAux2 (copyAux);
+     SIMPLE_ASSERT( copyAux2.getAuxIDs().size() == 3 );
+   }
+
    // Tell the user that everything went okay:
    std::cout << "All tests with xAOD::ShallowAuxContainer succeeded"
              << std::endl;
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/PixelClusterOnTrack.h b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/PixelClusterOnTrack.h
index 5aea8691936dd8e345ecac8b9a68e66ea665ddf7..7d94549755ebd1e0de5fcc81df583a25954605d1 100755
--- a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/PixelClusterOnTrack.h
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/PixelClusterOnTrack.h
@@ -11,7 +11,6 @@
 
 // Base classes
 #include "InDetRIO_OnTrack/SiClusterOnTrack.h"
-#include "InDetPrepRawData/PixelCluster.h"
 #include "TrkEventPrimitives/LocalParameters.h"
 
 // for ElementLink to IdentifiableContainer PixelClusterContainer
@@ -19,6 +18,8 @@
 #include "AthLinks/ElementLink.h"
 
 class FakeTrackBuilder;
+class PixelCluster;
+
 namespace Trk {
   class Surface;
   class TrkDetElementBase;
@@ -48,13 +49,14 @@ namespace InDet {
 
     public:
       friend class  Trk::ITrkEventCnvTool;
-      /**Default constructor - needed for POOL */
+      ///Default constructor - needed for POOL 
       PixelClusterOnTrack();
-      /**Copy constructor */
-      PixelClusterOnTrack(const PixelClusterOnTrack &);
-      /**Assignment operator*/
-      PixelClusterOnTrack &operator=(const PixelClusterOnTrack &);
-
+      ///Copy constructor 
+      PixelClusterOnTrack(const PixelClusterOnTrack &) = default;
+      ///Assignment operator
+      PixelClusterOnTrack &operator=(const PixelClusterOnTrack &) = default;
+      ///Move assignment 
+      PixelClusterOnTrack &operator=(PixelClusterOnTrack &&) = default;
       /** Constructor with parameters :
       RIO/PrepRawData pointer, LocalPosition&, LocalErrorMatrix&, idDE&
       Everything else is owned elsewhere. */
@@ -147,7 +149,6 @@ namespace InDet {
 
       /** PixelCluster - the RIO (PRD, PrepRawData)*/
       ElementLinkToIDCPixelClusterContainer m_rio;
-//       mutable const PixelCluster*   m_rio;
     
       /** records whether there is an ambiguity about this cluster*/
       bool                          m_hasClusterAmbiguity;   
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/SCT_ClusterOnTrack.h b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/SCT_ClusterOnTrack.h
index cc69db024cc80928a3505954febe7abacac712c8..80b7ed1384c69b2cc79d176588377d5effe01296 100755
--- a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/SCT_ClusterOnTrack.h
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/SCT_ClusterOnTrack.h
@@ -11,12 +11,14 @@
 
 // Base classes
 #include "InDetRIO_OnTrack/SiClusterOnTrack.h"
-#include "InDetPrepRawData/SCT_Cluster.h"
 
 // for ElementLink to IdentifiableContainer SCT_ClusterContainer
 #include "InDetPrepRawData/SCT_ClusterContainer.h"
 #include "AthLinks/ElementLink.h"
 
+
+class SCT_Cluster;
+
 namespace Trk {
   class Surface;
   class LocalParameters;
@@ -45,7 +47,7 @@ namespace InDet{
       /**For POOL only. Do not use*/
       SCT_ClusterOnTrack();
       /**Copy constructor*/
-      SCT_ClusterOnTrack(const SCT_ClusterOnTrack &);
+      SCT_ClusterOnTrack(const SCT_ClusterOnTrack &) = default;
 
     /** Constructor with parameters :
       RIO/PrepRawData pointer, LocalPosition*, LocalErrorMatrix*, idDE&
@@ -100,7 +102,7 @@ namespace InDet{
                           double positionAlongStrip);
 
       /**Assignment operator*/
-      SCT_ClusterOnTrack &operator=(const SCT_ClusterOnTrack &);
+      SCT_ClusterOnTrack &operator=(const SCT_ClusterOnTrack &) = default;
       /**Default move assigment operator*/
       SCT_ClusterOnTrack &operator=(SCT_ClusterOnTrack &&) = default;
 
@@ -148,7 +150,6 @@ namespace InDet{
       virtual void setValues(const Trk::TrkDetElementBase* detEl, const Trk::PrepRawData* prd);
  
       /** SCT_Cluster - the RIO (PRD, PrepRawData)*/
-//       mutable const SCT_Cluster*   m_rio;
       ElementLinkToIDCSCT_ClusterContainer m_rio; 
       /** corresponding detector element*/
       const InDetDD::SiDetectorElement* m_detEl;
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h
index 99a92eb4b5b1ff0bdfb13e5cfa5ea9510cd04e7f..d63ef19d1e4a333761312d06a754cbccacc4513c 100755
--- a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h
@@ -16,7 +16,6 @@
 #include "GaudiKernel/GaudiException.h"
 
 // InDet
-#include "InDetPrepRawData/TRT_DriftCircle.h"
 
 
 // for ElementLink to IdentifiableContainer PixelClusterContainer
@@ -36,7 +35,7 @@ namespace InDetDD {
 typedef ElementLink<InDet::TRT_DriftCircleContainer> ElementLinkToIDCTRT_DriftCircleContainer;
 
 namespace InDet{
-
+  class TRT_DriftCircle;
 
   /**@class TRT_DriftCircleOnTrack
   Represents 'corrected' measurements from the TRT (for example, corrected for wire sag). The 
@@ -56,6 +55,8 @@ namespace InDet{
       TRT_DriftCircleOnTrack(const TRT_DriftCircleOnTrack &);
       /**Assignment operator*/
       TRT_DriftCircleOnTrack &operator=(const TRT_DriftCircleOnTrack &);
+      /**Move assignment operator*/
+      TRT_DriftCircleOnTrack &operator=(TRT_DriftCircleOnTrack &&);
 		
      /** Constructor with parameters and without externalPrediction:
       RIO pointer, LocalPosition*, LocalErrorMatrix*, 
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/PixelClusterOnTrack.cxx b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/PixelClusterOnTrack.cxx
index f2c13cf55e134e79b8629ef54f4cd4a0d0d99f25..7df70ae44052abe464a3ff02baa2001edc89cae6 100755
--- a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/PixelClusterOnTrack.cxx
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/PixelClusterOnTrack.cxx
@@ -6,13 +6,11 @@
 // PixelClusterOnTrack.cxx, (c) ATLAS Detector Software
 ///////////////////////////////////////////////////////////////////
 
-#include <new>
 #include "InDetRIO_OnTrack/PixelClusterOnTrack.h"
 #include "InDetPrepRawData/PixelCluster.h"
 #include "InDetReadoutGeometry/SiDetectorElement.h"
 #include "GaudiKernel/MsgStream.h"
 #include <ostream>
-#include <typeinfo>
 
 
 // Constructor with parameters - no global position specified
@@ -31,7 +29,6 @@ InDet::PixelClusterOnTrack::PixelClusterOnTrack(
   m_energyLoss(RIO->energyLoss()),
   m_detEl( RIO->detectorElement() )
 {
-  //m_rio = ElementLinkToIDCPixelClusterContainer("PixelClusters", RIO->getHashAndIndex().hashAndIndex(), RIO);
   m_rio.setElement(RIO);
 }
 
@@ -52,7 +49,6 @@ InDet::PixelClusterOnTrack::PixelClusterOnTrack(
     m_energyLoss(RIO->energyLoss()),
     m_detEl( RIO->detectorElement() )
 {
-  //m_rio = ElementLinkToIDCPixelClusterContainer("PixelClusters", RIO->getHashAndIndex().hashAndIndex(), RIO);
   m_rio.setElement(RIO);
 }
 
@@ -93,29 +89,7 @@ InDet::PixelClusterOnTrack::PixelClusterOnTrack()
     m_detEl(0)
 {}
 
-// copy constructor:
-InDet::PixelClusterOnTrack::PixelClusterOnTrack( const InDet::PixelClusterOnTrack& rot)
-    :
-    InDet::SiClusterOnTrack(rot),
-    m_rio(rot.m_rio),
-    m_hasClusterAmbiguity(rot.m_hasClusterAmbiguity),
-    m_isFake(rot.m_isFake),
-    m_energyLoss(rot.m_energyLoss),
-    m_detEl(rot.m_detEl)
-{}
 
-// assignment operator:
-InDet::PixelClusterOnTrack& InDet::PixelClusterOnTrack::operator=( const InDet::PixelClusterOnTrack& rot){
-    if ( &rot != this) {
-          InDet::SiClusterOnTrack::operator=(rot);//base class ass. op.
-      m_rio                 = rot.m_rio;
-      m_hasClusterAmbiguity = rot.m_hasClusterAmbiguity;
-      m_detEl               = rot.m_detEl;
-      m_isFake              = rot.m_isFake;
-      m_energyLoss          = rot.m_energyLoss;
-    }
-    return *this;
-}
 
 
 const Trk::Surface& InDet::PixelClusterOnTrack::associatedSurface() const
@@ -124,7 +98,6 @@ const Trk::Surface& InDet::PixelClusterOnTrack::associatedSurface() const
               
 void InDet::PixelClusterOnTrack::setValues(const Trk::TrkDetElementBase* detEl, const Trk::PrepRawData* /*prd*/)
 {
-    //m_rio   = dynamic_cast< const PixelCluster* >(prd);//should check this really.
     m_detEl = dynamic_cast< const InDetDD::SiDetectorElement* >(detEl);
 }
 
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/SCT_ClusterOnTrack.cxx b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/SCT_ClusterOnTrack.cxx
index de5f2464e72d17518ffb0b9deb0cfbdf3e7dfda4..ee25b4ddc466e16faea3a893ead0c18fd70605b5 100755
--- a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/SCT_ClusterOnTrack.cxx
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/SCT_ClusterOnTrack.cxx
@@ -6,10 +6,10 @@
 // SCT_ClusterOnTrack.cxx, (c) ATLAS Detector Software
 ///////////////////////////////////////////////////////////////////
 
-#include <new>
 #include "InDetRIO_OnTrack/SCT_ClusterOnTrack.h"
-#include "InDetPrepRawData/SCT_Cluster.h"
 #include "InDetReadoutGeometry/SiDetectorElement.h"
+#include "InDetPrepRawData/SCT_Cluster.h"
+
 #include "GaudiKernel/MsgStream.h"
 #include <ostream>
 #include <limits>
@@ -24,7 +24,6 @@ InDet::SCT_ClusterOnTrack::SCT_ClusterOnTrack(const InDet::SCT_Cluster* RIO,
            bool isbroad) : 
   SiClusterOnTrack(locpars, locerr, idDE, RIO->identify(),isbroad) //call base class constructor
 {
-  //m_rio = ElementLinkToIDCSCT_ClusterContainer("SCT_Clusters", RIO->getHashAndIndex().hashAndIndex(), RIO);
   m_detEl=nullptr;
   m_positionAlongStrip=std::numeric_limits<double>::quiet_NaN();
   m_rio.setElement(RIO);
@@ -77,24 +76,6 @@ InDet::SCT_ClusterOnTrack::SCT_ClusterOnTrack():
   m_positionAlongStrip(std::numeric_limits<double>::quiet_NaN())
 {}
 
-// copy constructor:
-InDet::SCT_ClusterOnTrack::SCT_ClusterOnTrack( const InDet::SCT_ClusterOnTrack& rot):
-  SiClusterOnTrack(rot),
-  m_rio(rot.m_rio),
-  m_detEl(rot.m_detEl),
-  m_positionAlongStrip(rot.m_positionAlongStrip)
-{}
-
-// assignment operator:
-InDet::SCT_ClusterOnTrack& InDet::SCT_ClusterOnTrack::operator=( const InDet::SCT_ClusterOnTrack& rot){
-  if ( &rot != this) {
-    InDet::SiClusterOnTrack::operator=(rot);//base class ass. op.
-    m_rio                 = rot.m_rio;
-    m_detEl               = rot.m_detEl;
-    m_positionAlongStrip  = rot.m_positionAlongStrip;
-  }
-  return *this;
-}
 
 const Trk::Surface& InDet::SCT_ClusterOnTrack::associatedSurface() const
 { 
diff --git a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/TRT_DriftCircleOnTrack.cxx b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/TRT_DriftCircleOnTrack.cxx
index 23c2ac2bb98db000d83cf526202bbe73f008ba8e..29317b2ee30a249372e062d3802a035f0283ffd7 100755
--- a/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/TRT_DriftCircleOnTrack.cxx
+++ b/InnerDetector/InDetRecEvent/InDetRIO_OnTrack/src/TRT_DriftCircleOnTrack.cxx
@@ -16,7 +16,7 @@
 #include <cassert>
 #include "GaudiKernel/MsgStream.h"
 #include <ostream>
-#include<limits>
+#include <limits>
 
 
 // Constructor with parameters:
@@ -109,6 +109,25 @@ InDet::TRT_DriftCircleOnTrack::TRT_DriftCircleOnTrack( const InDet::TRT_DriftCir
 
 //assignment operator:
 InDet::TRT_DriftCircleOnTrack& InDet::TRT_DriftCircleOnTrack::operator=( const InDet::TRT_DriftCircleOnTrack& rot)
+{ 
+  if ( &rot != this) {
+    Trk::RIO_OnTrack::operator= (rot);
+    delete m_globalPosition;
+    m_globalPosition        = (rot.m_globalPosition ? new Amg::Vector3D(*rot.m_globalPosition) : 0);
+    m_rio                   = rot.m_rio;
+    m_localAngle            = rot.m_localAngle;
+    m_positionAlongWire     = rot.m_positionAlongWire;
+    m_idDE                  = rot.m_idDE;
+    m_status                = rot.m_status;
+    m_highLevel             = rot.m_highLevel;
+    m_timeOverThreshold     = rot.m_timeOverThreshold;
+    m_detEl                 = rot.m_detEl;
+   }
+  return *this;
+}
+
+//move assignment operator:
+InDet::TRT_DriftCircleOnTrack& InDet::TRT_DriftCircleOnTrack::operator=( InDet::TRT_DriftCircleOnTrack&& rot)
 { 
   if ( &rot != this) {
     Trk::RIO_OnTrack::operator= (rot);
diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/InDetTrackSelectorTool/InDetTrackSelectorTool.h b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/InDetTrackSelectorTool/InDetTrackSelectorTool.h
index 3545328ac009030afeacc78122d6efe31c14d930..61e6889b7d20da524b90c7f60a7ea323e2bf1c8b 100644
--- a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/InDetTrackSelectorTool/InDetTrackSelectorTool.h
+++ b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/InDetTrackSelectorTool/InDetTrackSelectorTool.h
@@ -8,8 +8,8 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "TrkToolInterfaces/ITrackSelectorTool.h"
-#include "TrkEventPrimitives/ParticleHypothesis.h"
-#include "TrkParameters/TrackParameters.h"
+#include "TrkEventPrimitives/ParticleHypothesis.h"//enum, do not fwd declare
+#include "TrkParameters/TrackParameters.h" //typedef
 
 /**
  * @file InDetTrackSelectorTool.h
diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetConversionTrackSelectorTool.cxx b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetConversionTrackSelectorTool.cxx
index 996861d969a0148079160bf289b84d3f1bada9a4..a9f0939579e0ad0c72d41d766d852b9685beb4f1 100644
--- a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetConversionTrackSelectorTool.cxx
+++ b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetConversionTrackSelectorTool.cxx
@@ -3,7 +3,6 @@
 */
 
 #include "InDetTrackSelectorTool/InDetConversionTrackSelectorTool.h"
-// forward declare
 #include "TrkToolInterfaces/ITrackSummaryTool.h"
 #include "TrkExInterfaces/IExtrapolator.h"
 #include "VxVertex/Vertex.h"
@@ -16,6 +15,7 @@
 #include "VxVertex/RecVertex.h"
 #include "TrkParameters/TrackParameters.h"
 #include "xAODTracking/Vertex.h"
+#include <cmath>
 
 
 namespace InDet
@@ -68,59 +68,38 @@ namespace InDet
   
  StatusCode  InDetConversionTrackSelectorTool::initialize()
  {
-   StatusCode sc = AthAlgTool::initialize();
-   if(sc.isFailure()){
-     msg(MSG::ERROR)<<" Unable to initialize the AlgTool"<<endmsg;
-     return StatusCode::FAILURE;
-   }
-
    /* Get the track summary tool from ToolSvc */
-   if ( m_trkSumTool.retrieve().isFailure() ) {
-     msg(MSG::ERROR) << "Failed to retrieve tool " << m_trkSumTool << endmsg;
-     return StatusCode::FAILURE;
-   } else {
-     msg(MSG::INFO) << "Retrieved tool " << m_trkSumTool << endmsg;
-   }
-
+   ATH_CHECK( m_trkSumTool.retrieve());
    /* Get the extrapolator tool from ToolSvc */
-   if ( m_extrapolator.retrieve().isFailure() ) {
-     msg(MSG::ERROR) << "Failed to retrieve tool " << m_extrapolator << endmsg;
-     return StatusCode::FAILURE;
-   } else {
-     msg(MSG::INFO) << "Retrieved tool " << m_extrapolator << endmsg;
-   }
-
+   ATH_CHECK( m_extrapolator.retrieve() );
    /* Get BeamCondSvc */
-   sc = m_iBeamCondSvc.retrieve();
-   if (sc.isFailure()) {
-     msg(MSG::INFO) << "Could not find BeamCondSvc. Will use (0,0,0) if no vertex is given and extrapolation is needed." << endmsg;
+   if (m_iBeamCondSvc.retrieve().isFailure()) {
+     ATH_MSG_INFO( "Could not find BeamCondSvc. Will use (0,0,0) if no vertex is given and extrapolation is needed." );
    }
-
    return StatusCode::SUCCESS;
  }
     
  StatusCode InDetConversionTrackSelectorTool::finalize()
  {
-  msg(MSG::INFO)  << "Finalize successful" << endmsg;
+  ATH_MSG_DEBUG( "Finalize successful");
   return StatusCode::SUCCESS;
  }
     
  bool InDetConversionTrackSelectorTool::decision(const Trk::Track& track,const Trk::Vertex* vx) const
  {  
    bool pass = false;
-
    const Trk::Perigee* perigee=dynamic_cast<const Trk::Perigee*>(track.perigeeParameters());
+   const bool vertexSuppliedByUser{vx!=nullptr};
    const Trk::Vertex* myVertex=vx;    
    //in case no Vertex is provided by the user, beam position will be used if available
-   if (myVertex==0) {
+   if (not vertexSuppliedByUser) {
      if (!m_iBeamCondSvc.empty()) {
        myVertex=new Trk::RecVertex(m_iBeamCondSvc->beamVtx());
      } else {
-       msg(MSG::WARNING) << " Cannot get beamSpot center from iBeamCondSvc. Using (0,0,0)... " << endmsg;
+       ATH_MSG_WARNING(" Cannot get beamSpot center from iBeamCondSvc. Using (0,0,0)... " );
        myVertex=new Trk::Vertex(Amg::Vector3D(0,0,0));
      }
    }
-    
    Trk::PerigeeSurface perigeeSurface(myVertex->position());
    const Trk::TrackParameters *firstmeaspar=0;
    for (unsigned int i=0;i<track.trackParameters()->size();i++){
@@ -134,12 +113,9 @@ namespace InDet
      //no track selection if firstmeas + perigee does not exist !
      firstmeaspar=track.perigeeParameters();
      if (!firstmeaspar){
-       msg(MSG::WARNING) << " First measurment on track is missing. Using perigee Parameters, but they are missing: 0 pointer! Track selection failed " << endmsg;
+       ATH_MSG_WARNING( " First measurment on track is missing. Using perigee Parameters, but they are missing: 0 pointer! Track selection failed " );
        //clean up vertex
-       if (myVertex!=vx) {
-	 delete myVertex;
-	 myVertex=0;
-       }
+       if (not vertexSuppliedByUser) delete myVertex;
        return false;
      }
    }
@@ -148,18 +124,19 @@ namespace InDet
 //   const Trk::TrackParameters * extrapolatedParameters= firstmeaspar ? m_extrapolator->extrapolate(*firstmeaspar,perigeeSurface,Trk::anyDirection,true,track.info().particleHypothesis() ) : 0;
    perigee = extrapolatedParameters ? dynamic_cast<const Trk::Perigee*>(extrapolatedParameters) : 0; 
    if (perigee==0 || !perigee->covariance() ) {
-     msg(MSG::WARNING) << "Track Selector failed to extrapolate track to the vertex: " << myVertex->position() << endmsg;
+     ATH_MSG_WARNING( "Track Selector failed to extrapolate track to the vertex: " << myVertex->position() );
      if (extrapolatedParameters!=0) {
-       msg(MSG::WARNING) << "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" << endmsg;
+       ATH_MSG_WARNING( "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!");
        delete extrapolatedParameters;
-       if (myVertex!=vx) delete myVertex;
+       if (not vertexSuppliedByUser) delete myVertex;
        return false;
      }
+     if (not vertexSuppliedByUser) delete myVertex;
      return false;
    }
 
    double qOverP = perigee->parameters()[Trk::qOverP];
-   double pt = fabs(1/qOverP)*sin(perigee->parameters()[Trk::theta]);
+   double pt = std::fabs(1./qOverP)*std::sin(perigee->parameters()[Trk::theta]);
    double d0 = perigee->parameters()[Trk::d0];
    double z0 = perigee->parameters()[Trk::z0];
    const Trk::TrackSummary* tSum = m_trkSumTool->createSummaryNoHoleSearch(track);
@@ -170,65 +147,59 @@ namespace InDet
      int nTrtOutliers   = tSum->get(Trk::numberOfTRTOutliers);
      int ntrt           = nTrtHits + nTrtOutliers;
      int nTrtXenonHits  = tSum->get(Trk::numberOfTRTXenonHits);
-
      if(m_isConv) {
-
-       if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
-	 ratioTrk = tSum->getPID(Trk::eProbabilityHT);
-
+       if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ){ // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
+	       ratioTrk = tSum->getPID(Trk::eProbabilityHT);
+       }
        if ( pt >= m_minPt ) {
-	 if ( (nclus==0 && fabs(d0)<=m_maxTrtD0) || (nclus>0 && fabs(d0)<=m_maxSiD0) ) {
-	   if ( (nclus==0 && fabs(z0)<=m_maxTrtZ0) || (nclus>0 && fabs(z0)<=m_maxSiZ0) ) {
-	     if (nclus>0) {
-	       if((ntrt<=15 && ratioTrk>=m_trRatio1) ||
-		  (ntrt>15 && ntrt<=25 && ratioTrk>=m_trRatio2) ||
-		  (ntrt>25 && ratioTrk>=m_trRatio3)) pass = true;
-	     } else if (ratioTrk>=m_trRatioTRT) pass = true;  
-	   }
-	 }
+         if ( (nclus==0 && std::fabs(d0)<=m_maxTrtD0) || (nclus>0 && std::fabs(d0)<=m_maxSiD0) ) {
+           if ( (nclus==0 && std::fabs(z0)<=m_maxTrtZ0) || (nclus>0 && std::fabs(z0)<=m_maxSiZ0) ) {
+             if (nclus>0) {
+               if((ntrt<=15 && ratioTrk>=m_trRatio1) ||
+                (ntrt>15 && ntrt<=25 && ratioTrk>=m_trRatio2) ||
+                (ntrt>25 && ratioTrk>=m_trRatio3)) pass = true;
+             } else if (ratioTrk>=m_trRatioTRT) pass = true;  
+           }
+         }
        }
      } else {
        //The cuts below are necessary for the V0 track selection
        const AmgSymMatrix(5)& err = *perigee->covariance();
        double sd0sq = err(0,0);
-       double sd0 = (sd0sq>0.)?sqrt(sd0sq):0.;
+       double sd0 = (sd0sq>0.)?std::sqrt(sd0sq):0.;
        double sz0sq = err(1,1);
-       double sz0 = (sz0sq>0.)?sqrt(sz0sq):0.;
+       double sz0 = (sz0sq>0.)?std::sqrt(sz0sq):0.;
        if(nclus == 0){
-	 if(fabs(d0)>=m_sD0_Trt*sd0 && fabs(d0)<=m_maxTrtD0 && fabs(z0)<=m_sZ0_Trt*sz0 && pt>=m_minPt) pass = true;
+	       if(std::fabs(d0)>=m_sD0_Trt*sd0 && std::fabs(d0)<=m_maxTrtD0 && std::fabs(z0)<=m_sZ0_Trt*sz0 && pt>=m_minPt) pass = true;
        }else{
-	 if(fabs(d0)>=m_sD0_Si*sd0 && fabs(z0)<=m_maxSiZ0 && pt>=m_minPt) pass = true;
+	       if(std::fabs(d0)>=m_sD0_Si*sd0 && std::fabs(z0)<=m_maxSiZ0 && pt>=m_minPt) pass = true;
        }
-       
        ratioTrk = 1.0;
        if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
-	 ratioTrk = tSum->getPID(Trk::eProbabilityHT);
-
+	     ratioTrk = tSum->getPID(Trk::eProbabilityHT);
        if(ratioTrk>m_trRatioV0) pass = false;
      }
 
      delete tSum;
    } else pass = false;
-
-   if (myVertex!=vx) delete myVertex;
+   if (not vertexSuppliedByUser) delete myVertex;
    if (perigee!=track.perigeeParameters()) delete perigee;
-    
    return pass;
  }
 
  bool InDetConversionTrackSelectorTool::decision(const Trk::TrackParticleBase& track,const Trk::Vertex* vx) const
  {
    bool pass = false;
-
    const Trk::TrackParameters* definintParameters=&(track.definingParameters());
    const Trk::Perigee* perigee=dynamic_cast<const Trk::Perigee*>(definintParameters);
    const Trk::Vertex* myVertex=vx;
+   const bool vertexSuppliedByUser{vx!=nullptr};
    //in case no Vertex is provided by the user, beam position will be used if available
-   if (myVertex==0) {
+   if (not vertexSuppliedByUser) {
      if (!m_iBeamCondSvc.empty()) {
        myVertex=new Trk::RecVertex(m_iBeamCondSvc->beamVtx());
      } else {
-       msg(MSG::WARNING) << " Cannot get beamSpot center from iBeamCondSvc. Using (0,0,0)... " << endmsg;
+       ATH_MSG_WARNING( " Cannot get beamSpot center from iBeamCondSvc. Using (0,0,0)... " );
        myVertex=new Trk::Vertex(Amg::Vector3D(0,0,0));
      }
    }
@@ -241,36 +212,31 @@ namespace InDet
        break;
      }
    }
-
    if (!firstmeaspar) {
      //using perigee instead of firstmeasurement, since first measurement was not found...
      firstmeaspar=&(track.definingParameters());
      if (!firstmeaspar){
-       msg(MSG::DEBUG) << " Track Paraemters at first measurement not found. Perigee not found. Cannot do TrackSelection..." << endmsg;
-       if (myVertex!=vx) {
-	 delete myVertex;
-	 myVertex=0;
-       }
+       ATH_MSG_WARNING( " Track Paraemters at first measurement not found. Perigee not found. Cannot do TrackSelection..." );
+       if (not vertexSuppliedByUser) delete myVertex;
        return false;
      }
    }
-
    const Trk::TrackParameters * extrapolatedParameters= m_extrapolator->extrapolate(*firstmeaspar,perigeeSurface,Trk::anyDirection,true,Trk::pion );
-   //const Trk::TrackParameters * extrapolatedParameters= firstmeaspar ? m_extrapolator->extrapolate(*firstmeaspar,perigeeSurface,Trk::anyDirection,true,Trk::pion ) : 0;
    perigee = extrapolatedParameters ? dynamic_cast<const Trk::Perigee*>(extrapolatedParameters) : 0; 
    if (perigee==0 || !perigee->covariance()) {
-     msg(MSG::WARNING) << "Track Selector failed to extrapolate track to the vertex: " << myVertex->position() << endmsg;
+     ATH_MSG_WARNING( "Track Selector failed to extrapolate track to the vertex: " << myVertex->position() );
      if (extrapolatedParameters!=0) {
-       msg(MSG::WARNING) << "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" << endmsg;
+       ATH_MSG_WARNING( "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
        delete extrapolatedParameters;
-       if (myVertex!=vx) delete myVertex;
+       if (not vertexSuppliedByUser) delete myVertex;
        return false;
      }
+     if (not vertexSuppliedByUser) delete myVertex;
      return false;
    }
     
    double qOverP = perigee->parameters()[Trk::qOverP];
-   double pt = fabs(1/qOverP)*sin(perigee->parameters()[Trk::theta]);
+   double pt = std::fabs(1./qOverP)*std::sin(perigee->parameters()[Trk::theta]);
    double d0 = perigee->parameters()[Trk::d0];
    double z0 = perigee->parameters()[Trk::z0];
    const Trk::TrackSummary* tSum = track.trackSummary();
@@ -283,42 +249,40 @@ namespace InDet
      int nTrtXenonHits  = tSum->get(Trk::numberOfTRTXenonHits);
 
      if(m_isConv){
-
-       if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
-	 ratioTrk = tSum->getPID(Trk::eProbabilityHT);
-
+       if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ){ // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
+	       ratioTrk = tSum->getPID(Trk::eProbabilityHT);
+       }
        if ( pt >= m_minPt ) {
-	 if ( (nclus==0 && fabs(d0)<=m_maxTrtD0) || (nclus>0 && fabs(d0)<=m_maxSiD0) ) {
-	   if ( (nclus==0 && fabs(z0)<=m_maxTrtZ0) || (nclus>0 && fabs(z0)<=m_maxSiZ0) ) {
-	     if (nclus > 0) {
-	       if((ntrt<=15 && ratioTrk>=m_trRatio1) ||
-		  (ntrt>15 && ntrt<=25 && ratioTrk>=m_trRatio2) ||
-		  (ntrt>25 && ratioTrk>=m_trRatio3)) pass = true;
-	     } else if (ratioTrk>=m_trRatioTRT) pass = true;  
-	   }
-	 }
+         if ( (nclus==0 && std::fabs(d0)<=m_maxTrtD0) || (nclus>0 && std::fabs(d0)<=m_maxSiD0) ) {
+           if ( (nclus==0 && std::fabs(z0)<=m_maxTrtZ0) || (nclus>0 && std::fabs(z0)<=m_maxSiZ0) ) {
+             if (nclus > 0) {
+               if((ntrt<=15 && ratioTrk>=m_trRatio1) ||
+                (ntrt>15 && ntrt<=25 && ratioTrk>=m_trRatio2) ||
+                (ntrt>25 && ratioTrk>=m_trRatio3)) pass = true;
+             } else if (ratioTrk>=m_trRatioTRT) pass = true;  
+           }
+         }
        }
      } else {
        //The cuts below are necessary for the V0 track selection
        const AmgSymMatrix(5)& err = *perigee->covariance();
        double sd0sq = err(0,0);
-       double sd0 = (sd0sq>0.)?sqrt(sd0sq):0.;
+       double sd0 = (sd0sq>0.)?std::sqrt(sd0sq):0.;
        double sz0sq = err(1,1);
-       double sz0 = (sz0sq>0.)?sqrt(sz0sq):0.;
+       double sz0 = (sz0sq>0.)?std::sqrt(sz0sq):0.;
        if(nclus == 0){
-	 if(fabs(d0)>=m_sD0_Trt*sd0 && fabs(d0)<= m_maxTrtD0 && fabs(z0)<=m_sZ0_Trt*sz0 && pt>=m_minPt) pass = true;
+	       if(std::fabs(d0)>=m_sD0_Trt*sd0 && std::fabs(d0)<= m_maxTrtD0 && std::fabs(z0)<=m_sZ0_Trt*sz0 && pt>=m_minPt) pass = true;
        }else{
-	 if(fabs(d0)>=m_sD0_Si*sd0 && fabs(z0)<=m_maxSiZ0 && pt>=m_minPt) pass = true;
+	       if(std::fabs(d0)>=m_sD0_Si*sd0 && std::fabs(z0)<=m_maxSiZ0 && pt>=m_minPt) pass = true;
        }
 
        ratioTrk = 1.0;
        if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
-	 ratioTrk = tSum->getPID(Trk::eProbabilityHT);
+	       ratioTrk = tSum->getPID(Trk::eProbabilityHT);
        if(ratioTrk>m_trRatioV0) pass = false;
      }
    } else pass = false;
-
-   if (myVertex!=vx) delete myVertex;
+   if (not vertexSuppliedByUser) delete myVertex;
    if (perigee!=&(track.definingParameters())) delete perigee;
     
    return pass;
@@ -328,26 +292,17 @@ namespace InDet
    // ---------------------------------------------------------------------
   bool InDetConversionTrackSelectorTool::decision(const xAOD::TrackParticle& tp,const xAOD::Vertex* vertex) const 
   {
-    
-    
-    
-    
     bool pass = false;
-
     const Trk::Perigee& perigee=tp.perigeeParameters();
-    
     //in case no Vertex is provided by the user, beam position will be used if available
-
     Trk::PerigeeSurface perigeeSurface( vertex ? vertex->position() : (!m_iBeamCondSvc.empty() ? m_iBeamCondSvc->beamVtx().position() : Amg::Vector3D(0,0,0) ) );
-  
     const Trk::TrackParameters* extrapolatedParameters= m_extrapolator->extrapolate(perigee,perigeeSurface,Trk::anyDirection,false,Trk::pion );
     if (extrapolatedParameters==0) {
-      ATH_MSG_WARNING( "Extrapolation to the vertex failed: " << perigeeSurface << std::endl << perigee );
+      ATH_MSG_WARNING( "Extrapolation to the vertex failed: " << perigeeSurface << "\n" << perigee );
       return false;
     }
-    
     double qOverP = perigee.parameters()[Trk::qOverP];
-    double pt = fabs(1/qOverP)*sin(perigee.parameters()[Trk::theta]);
+    double pt = std::fabs(1./qOverP)*std::sin(perigee.parameters()[Trk::theta]);
     double d0 = extrapolatedParameters->parameters()[Trk::d0];
     double z0 = extrapolatedParameters->parameters()[Trk::z0];
 
@@ -365,12 +320,12 @@ namespace InDet
      }
  
      if ( pt >= m_minPt ) {
-       if ( (nclus==0 && fabs(d0)<=m_maxTrtD0) || (nclus>0 && fabs(d0)<=m_maxSiD0) ) {
-         if ( (nclus==0 && fabs(z0)<=m_maxTrtZ0) || (nclus>0 && fabs(z0)<=m_maxSiZ0) ) {
+       if ( (nclus==0 && std::fabs(d0)<=m_maxTrtD0) || (nclus>0 && std::fabs(d0)<=m_maxSiD0) ) {
+         if ( (nclus==0 && std::fabs(z0)<=m_maxTrtZ0) || (nclus>0 && std::fabs(z0)<=m_maxSiZ0) ) {
            if (nclus > 0) {
              if((ntrt<=15 && ratioTrk>=m_trRatio1) ||
-          (ntrt>15 && ntrt<=25 && ratioTrk>=m_trRatio2) ||
-          (ntrt>25 && ratioTrk>=m_trRatio3)) pass = true;
+              (ntrt>15 && ntrt<=25 && ratioTrk>=m_trRatio2) ||
+              (ntrt>25 && ratioTrk>=m_trRatio3)) pass = true;
            } else if (ratioTrk>=m_trRatioTRT) pass = true;  
          }
        }
@@ -379,15 +334,14 @@ namespace InDet
      //The cuts below are necessary for the V0 track selection
      const AmgSymMatrix(5)& err = *perigee.covariance();
      double sd0sq = err(0,0);
-     double sd0 = (sd0sq>0.)?sqrt(sd0sq):0.;
+     double sd0 = (sd0sq>0.)?std::sqrt(sd0sq):0.;
      double sz0sq = err(1,1);
-     double sz0 = (sz0sq>0.)?sqrt(sz0sq):0.;
+     double sz0 = (sz0sq>0.)?std::sqrt(sz0sq):0.;
      if(nclus == 0){
-       if(fabs(d0)>=m_sD0_Trt*sd0 && fabs(d0)<= m_maxTrtD0 && fabs(z0)<=m_sZ0_Trt*sz0 && pt>=m_minPt) pass = true;
+       if(std::fabs(d0)>=m_sD0_Trt*sd0 && std::fabs(d0)<= m_maxTrtD0 && std::fabs(z0)<=m_sZ0_Trt*sz0 && pt>=m_minPt) pass = true;
      }else{
-       if(fabs(d0)>=m_sD0_Si*sd0 && fabs(z0)<=m_maxSiZ0 && pt>=m_minPt) pass = true;
+       if(std::fabs(d0)>=m_sD0_Si*sd0 && std::fabs(z0)<=m_maxSiZ0 && pt>=m_minPt) pass = true;
      }
-
      ratioTrk = 1.0;
      float temp(0);
      if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits
diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx
index 7756461fc8e9ebdecb17928301408e87abcd2936..cfa203f2f25240af0ff617d2efdc21ded4813d17 100644
--- a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx
+++ b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx
@@ -26,7 +26,7 @@
 #include "TrkSurfaces/PerigeeSurface.h"
 #include "GeoPrimitives/GeoPrimitives.h"
 #include "EventPrimitives/EventPrimitives.h"
-#include <TMath.h>
+#include <cmath>
 
 using CLHEP::GeV;
 using CLHEP::mm;
@@ -42,12 +42,10 @@ namespace InDet
     , m_iBeamCondSvc ("BeamCondSvc",n)
     , m_magFieldSvc("AtlasFieldSvc",n)
     , m_trtDCTool("InDet::InDetTrtDriftCircleCutTool")
-      // , m_inDetTestBLayerTool("InDet::InDetTestBLayerTool")
     , m_inDetTestBLayerTool("")
     , m_trackSumToolAvailable(true)
     , m_usePtDependentCuts(false)
-      // , m_ptBenchmarks(1, 0) // create with dummy length 1 filled with 0
-      // , m_nSCTValues(1, 0) // same
+
 
   {
     declareInterface<ITrackSelectorTool>(this);
@@ -115,19 +113,7 @@ namespace InDet
     declareProperty("TrtDCCutTool"       , m_trtDCTool);
     declareProperty("InDetTestBLayerTool", m_inDetTestBLayerTool);
     
-    //pt-dependent cuts; default vector values (can be done much smarter, but I want 
-    // to have an explicit code..)
-
-    //   std::vector<float> loc_bench;
-    //   loc_bench.push_back(100.);
-    //   loc_bench.push_back(200.);
-    //   loc_bench.push_back(300.);
    
-    //   std::vector<int> loc_nsct;
-    //   loc_nsct.push_back(2);
-    //   loc_nsct.push_back(4);
-    //   loc_nsct.push_back(6);
-
     declareProperty("UsePtDependentCuts", m_usePtDependentCuts = false);  
     declareProperty("PtBenchmarks"      , m_ptBenchmarks);  
     declareProperty("SCTCutValues"      , m_nSCTValues);  
@@ -138,126 +124,81 @@ namespace InDet
   {}
   
   // ---------------------------------------------------------------------
-  StatusCode  InDetDetailedTrackSelectorTool::initialize()
-  {
-    StatusCode sc = AthAlgTool::initialize();
-    if(sc.isFailure())
-      {
-	msg(MSG::ERROR)<<" Unable to initialize the AlgTool"<<endmsg;
-	return StatusCode::FAILURE;
-      }
-    
+  StatusCode  
+  InDetDetailedTrackSelectorTool::initialize(){
     m_trackSumToolAvailable=false;
-    if (!m_trackSumTool.empty())
-      {  
-	if(m_trackSumTool.retrieve().isFailure())
-	  {
-	    msg(MSG::INFO)<<" Unable to retrieve. OK if running on AOD. "<<m_trackSumTool<<endmsg;
-	  }
-	else
-	  {
-	    msg(MSG::INFO)<<"Track summary tool retrieved"<<endmsg;
-	    m_trackSumToolAvailable=true;
-	  }
-      } 
-    
-    if ( m_extrapolator.retrieve().isFailure() ) 
-      {
-	msg(MSG::ERROR) << "Failed to retrieve tool " << m_extrapolator << endmsg;
-	return StatusCode::FAILURE;
-      }
-    ATH_MSG_INFO("Retrieved tool " << m_extrapolator);
-
-    sc = m_iBeamCondSvc.retrieve();
-    if (sc.isFailure())
+    if (!m_trackSumTool.empty()) {  
+	    if(m_trackSumTool.retrieve().isFailure()){
+	      ATH_MSG_INFO(" Unable to retrieve. OK if running on AOD. "<<m_trackSumTool);
+	    }else{
+	      ATH_MSG_INFO("Track summary tool retrieved");
+	      m_trackSumToolAvailable=true;
+	    }
+    } 
+    ATH_CHECK( m_extrapolator.retrieve() );
+    if (m_iBeamCondSvc.retrieve().isFailure()){
       ATH_MSG_INFO("Could not find BeamCondSvc. Will use (0,0,0) if no vertex is given and extrapolation is needed.");
-    
-    if (m_useEtaDepententMinHitTrt || m_useEtaDepententMinHitTrtWithOutliers) 
-      {
-	if(m_trtDCTool.empty()) {
-	  msg(MSG::ERROR)<<" Eta delendent cut on number of TRT hits requested but TrtDCCutTool not specified. "<<endmsg;
-	  return StatusCode::FAILURE;
-	}
-	else if(m_trtDCTool.retrieve().isFailure()) {
-	  msg(MSG::ERROR)<<" Unable to retrieve tool "<<m_trtDCTool<<endmsg;
-	  return StatusCode::FAILURE;
-	}
-	ATH_MSG_INFO("Retrieved tool "<<m_trtDCTool);
-	
-	if(m_useEtaDepententMinHitTrt)
-	  ATH_MSG_INFO("Using eta dependent cut on number of TRT hits.");
-	if(m_useEtaDepententMinHitTrtWithOutliers)
-	  ATH_MSG_INFO("Using eta dependent cut on number of TRT hits + outliers.");
-      }
-    else{
+    }
+    if (m_useEtaDepententMinHitTrt || m_useEtaDepententMinHitTrtWithOutliers){
+	    if(m_trtDCTool.empty()) {
+	      ATH_MSG_ERROR(" Eta delendent cut on number of TRT hits requested but TrtDCCutTool not specified. ");
+	      return StatusCode::FAILURE;
+	    } else if(m_trtDCTool.retrieve().isFailure()) {
+	      ATH_MSG_ERROR(" Unable to retrieve tool "<<m_trtDCTool);
+	      return StatusCode::FAILURE;
+	    }
+	    ATH_MSG_INFO("Retrieved tool "<<m_trtDCTool);
+	    if(m_useEtaDepententMinHitTrt){
+	      ATH_MSG_INFO("Using eta dependent cut on number of TRT hits.");
+	    }
+	    if(m_useEtaDepententMinHitTrtWithOutliers){
+	      ATH_MSG_INFO("Using eta dependent cut on number of TRT hits + outliers.");
+	    }
+    }else{
       m_trtDCTool.disable();
     }
-    
-    if (m_magFieldSvc.retrieve().isFailure()) 
-      {
-	msg(MSG::FATAL) << "Failed to retrieve " << m_magFieldSvc << endmsg;
-	return StatusCode::FAILURE;
-      }
-    ATH_MSG_INFO("Retrieved tool "<<m_magFieldSvc);
-    
-    if(m_inDetTestBLayerTool.empty())
-      {
-	msg(MSG::INFO)<<" The BLayerTool not specified, turning off cut. "<<endmsg;
-      }
-    else if ( m_inDetTestBLayerTool.retrieve().isFailure() ) 
-      {
-	msg(MSG::ERROR)<< "Failed to retrieve tool " << m_inDetTestBLayerTool<<endmsg;
-	return StatusCode::FAILURE;
-      } 
+    ATH_CHECK(m_magFieldSvc.retrieve());
+    if(m_inDetTestBLayerTool.empty()){
+	    ATH_MSG_INFO(" The BLayerTool not specified, turning off cut. ");
+    } else {
+      ATH_CHECK( m_inDetTestBLayerTool.retrieve());
+    }
     ATH_MSG_INFO("Using cuts on the number of Silicon hits");
-
-    if(m_usePtDependentCuts) 
-      {
-	//checking whether sizes of cuts and pt interval expressed in vectors match
-	if( m_ptBenchmarks.size() != m_nSCTValues.size())
-	  {
-	    msg(MSG::ERROR)<< "Number of cuts DOES NOT match the number of intervals to apply. Please check jobOptions. "<<endmsg;
-	    return StatusCode::FAILURE;
-	  } else if (m_ptBenchmarks.size() == 0)
-	  {
-	    msg(MSG::ERROR)<< "Zero vectors for number of cuts and pt intervals. Please check jobOptions. "<<endmsg;
-	    return StatusCode::FAILURE;
-	  }//end of vector size protection block   
-      }//end of memory protection 
-    
+    if(m_usePtDependentCuts) {
+	    //checking whether sizes of cuts and pt interval expressed in vectors match
+	    if( m_ptBenchmarks.size() != m_nSCTValues.size()){
+	      ATH_MSG_ERROR( "Number of cuts DOES NOT match the number of intervals to apply. Please check jobOptions. ");
+	      return StatusCode::FAILURE;
+	    } else if (m_ptBenchmarks.empty()){
+	      ATH_MSG_ERROR( "Zero vectors for number of cuts and pt intervals. Please check jobOptions. ");
+	      return StatusCode::FAILURE;
+	    }//end of vector size protection block   
+    }//end of memory protection 
     return StatusCode::SUCCESS;
   }
     
   // ---------------------------------------------------------------------
   StatusCode InDetDetailedTrackSelectorTool::finalize()
   {
-    msg(MSG::INFO)  << "Finalize successful" << endmsg;
+    ATH_MSG_DEBUG( "Finalize successful" );
     return StatusCode::SUCCESS;
   }
 
   // ---------------------------------------------------------------------
-  bool InDetDetailedTrackSelectorTool::decision(const Trk::Track& track,const Trk::Vertex* vertex) const
-  {
-    const Trk::Perigee* perigeeBeforeExtrapolation=
-      dynamic_cast<const Trk::Perigee*>(track.perigeeParameters());
-    
-    if (perigeeBeforeExtrapolation && m_usePreselectionCuts)
-      {
-	bool preselectionDecision=preselectionBeforeExtrapolation(*perigeeBeforeExtrapolation);
-	if (!preselectionDecision) {
-	  ATH_MSG_DEBUG("Track rejected because of preselection decision!");
-	  return false;
-	}
-      }
-    else if (m_usePreselectionCuts)
-      {
-	ATH_MSG_INFO( " Preselection was requested but cannot be made since no Perigee in Track is available. This is not an error." );
-      }
-
+  bool 
+  InDetDetailedTrackSelectorTool::decision(const Trk::Track& track,const Trk::Vertex* vertex) const{
+    const Trk::Perigee* perigeeBeforeExtrapolation=dynamic_cast<const Trk::Perigee*>(track.perigeeParameters());
+    if (perigeeBeforeExtrapolation && m_usePreselectionCuts){
+	    bool preselectionDecision=preselectionBeforeExtrapolation(*perigeeBeforeExtrapolation);
+	    if (!preselectionDecision) {
+	      ATH_MSG_DEBUG("Track rejected because of preselection decision!");
+	      return false;
+	    }
+    } else if (m_usePreselectionCuts){
+	    ATH_MSG_INFO( " Preselection was requested but cannot be made since no Perigee in Track is available. This is not an error." );
+    }
     const Trk::Vertex* myVertex=vertex;
-    
     //in case no Vertex is provided by the user, beam position will be used if available
-    
     if (myVertex==0) {
       //ATH_MSG_DEBUG( "No vertex given, using beam spot or 0,0,0" );
       if (!m_iBeamCondSvc.empty()) {
@@ -267,7 +208,6 @@ namespace InDet
         myVertex=new Trk::Vertex(Amg::Vector3D(0,0,0));
       }
     }
-    
     Trk::PerigeeSurface perigeeSurface(myVertex->position());
     const Trk::TrackParameters *firstmeaspar=0;
     for (unsigned int i=0;i<track.trackParameters()->size();i++){
@@ -276,204 +216,163 @@ namespace InDet
         break;
       }
     }
-    
     if (!firstmeaspar) {
       //assumes perigeeParameters exist...
       //no track selection if firstmeas + perigee does not exist !
       firstmeaspar=track.perigeeParameters();
-      if (!firstmeaspar)
-	{
-	  ATH_MSG_WARNING( " First measurment on track is missing. Using perigee Parameters, but they are missing: 0 pointer! Track selection failed " );
-	  //clean up vertex
-	  if (myVertex!=vertex) {
-	    delete myVertex;
-	    myVertex=0;
-	  }
-	  return false;
-	}
+      if (!firstmeaspar){
+	      ATH_MSG_WARNING( " First measurment on track is missing. Using perigee Parameters, but they are missing: 0 pointer! Track selection failed " );
+	      //clean up vertex
+	      if (myVertex!=vertex) {
+	        delete myVertex;
+	        myVertex=0;
+	      }
+	      return false;
+	    }
     }
-   
     const Trk::TrackParameters* extrapolatedParameters= m_extrapolator->extrapolate(*firstmeaspar,perigeeSurface,Trk::anyDirection,true,track.info().particleHypothesis() ); 
     const Trk::Perigee* extrapolatedPerigee = extrapolatedParameters ? dynamic_cast<const Trk::Perigee*>(extrapolatedParameters) : 0; 
-        
     if (!extrapolatedPerigee || !extrapolatedPerigee->covariance() ) {
       ATH_MSG_WARNING( "Track Selector failed to extrapolate track to the vertex: " << myVertex->position() );
-      if (extrapolatedParameters!=0) {
+      if (extrapolatedParameters) {
         ATH_MSG_WARNING( "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
         delete extrapolatedParameters;
+        extrapolatedParameters=nullptr;
       }
     }
     
     //decision based on the track parameters 
     const Trk::RecVertex* recVertex = dynamic_cast<const Trk::RecVertex*>(myVertex);
     bool dec = decision(extrapolatedPerigee, recVertex ? &recVertex->covariancePosition() : 0 );
-    
     if (myVertex!=vertex) {
       delete myVertex;
       myVertex=0;
     }
-
     bool isInTrtAcceptance=true;
-    
-    if (!extrapolatedPerigee || fabs(extrapolatedPerigee->momentum().eta())>m_TrtMaxEtaAcceptance) {
+    if (!extrapolatedPerigee || std::fabs(extrapolatedPerigee->momentum().eta())>m_TrtMaxEtaAcceptance) {
       isInTrtAcceptance=false;
     }
-    
     if (extrapolatedPerigee!=track.perigeeParameters()) {
       delete extrapolatedPerigee;
       extrapolatedPerigee=0;
     }
-    
     if(!dec) { 
       ATH_MSG_DEBUG("Track rejected because of perigee parameters!");
       return false;
     }
-    
     if (m_useTrackQualityInfo) {
-      
       const Trk::FitQuality*  TrkQuality=track.fitQuality();
-      
       if (TrkQuality==0) {
         ATH_MSG_WARNING( "Requested cut on track quality was not possible. Track has no FitQuality object attached. Selection failed." );
         return false;
       }
-      
       if (!decision(TrkQuality)) {
         return false;
       }
     }
-    
     if (m_useTrackSummaryInfo) {
       //number of hits, silicon hits, b-layer
-      
       const Trk::TrackSummary* summary = 0;
-      
       // first ask track for summary
       summary = track.trackSummary();
-      
       if (m_trackSumToolAvailable && summary == 0) {
         // ugly but one needs to cast the const away because the method needs to update the track (the tool is a friend of track)
         Trk::Track& nonConstTrack = const_cast<Trk::Track&>(track);
         m_trackSumTool->updateTrack(nonConstTrack);
         summary = nonConstTrack.trackSummary();
       }
-      
       if (!m_trackSumToolAvailable) {
         ATH_MSG_WARNING( " No Track Summary Tool available. This should be the case only when running on AOD" );
       }
-
       if (0==summary ) {
         ATH_MSG_WARNING( "Track preselection: cannot create a track summary (but useTrackSummary is true). Selection failed." );
         return false;
       }
-      
       // get the minimum nimber of TRT hits based on eta of the track
       if(m_useEtaDepententMinHitTrt) {
         m_nHitTrt = m_trtDCTool->minNumberDCs( (*track.trackParameters())[0] );
-        if(m_addToMinHitTrt!=0)
+        if(m_addToMinHitTrt!=0){
           m_nHitTrt += m_addToMinHitTrt;
-        else
+        }else{
           m_nHitTrt = (int)((double)m_nHitTrt*m_scaleMinHitTrt);
+        }
       }
-      
       // get the minimum nimber of TRT hits + outliers based on eta of the track
       if(m_useEtaDepententMinHitTrtWithOutliers) {
         m_nHitTrtPlusOutliers = m_trtDCTool->minNumberDCs( (*track.trackParameters())[0] );
-        if(m_addToMinHitTrtWithOutliers!=0)
+        if(m_addToMinHitTrtWithOutliers!=0){
           m_nHitTrtPlusOutliers += m_addToMinHitTrtWithOutliers;
-        else
+        }else{
           m_nHitTrtPlusOutliers = (int)((double)m_nHitTrtPlusOutliers*m_scaleMinHitTrtWithOutliers);
+        }
       }
-
       if (!decision(summary,m_useSharedHitInfo,isInTrtAcceptance, perigeeBeforeExtrapolation)) {
         summary=0;
         return false;
       }
       summary=0;
     }
-    
-    //all ok 
     return true;  
   }
 
   // ---------------------------------------------------------------------
-  bool InDetDetailedTrackSelectorTool::decision(const Trk::TrackParticleBase& track,const Trk::Vertex* vertex) const
-  {
-    
+  bool 
+  InDetDetailedTrackSelectorTool::decision(const Trk::TrackParticleBase& track,const Trk::Vertex* vertex) const{
     const Trk::TrackParameters* definintParameters=&(track.definingParameters());
-
-    const Trk::Perigee* perigeeBeforeExtrapolation=
-      dynamic_cast<const Trk::Perigee*>(definintParameters);
-
+    const Trk::Perigee* perigeeBeforeExtrapolation=dynamic_cast<const Trk::Perigee*>(definintParameters);
     if (perigeeBeforeExtrapolation && m_usePreselectionCuts) {
       bool preselectionDecision=preselectionBeforeExtrapolation(*perigeeBeforeExtrapolation);  
       if (!preselectionDecision) {
         ATH_MSG_DEBUG("Track rejected because of preselection decision!");
         return false;
       }
-    }
-    else if (m_usePreselectionCuts) {
+    } else if (m_usePreselectionCuts) {
       ATH_MSG_WARNING( " Preselection was requested but cannot be made since the Perigee is not the defining Parameter of the TrackParticle. This is not an error." );
     }
-
-    
     bool isInTrtAcceptance=true;
-    if (!perigeeBeforeExtrapolation || fabs(perigeeBeforeExtrapolation->momentum().eta())>m_TrtMaxEtaAcceptance) {
+    if (!perigeeBeforeExtrapolation || std::fabs(perigeeBeforeExtrapolation->momentum().eta())>m_TrtMaxEtaAcceptance) {
       isInTrtAcceptance=false;
     }
-    
-
     if (m_useTrackQualityInfo) {
-      
       const Trk::FitQuality*  TrkQuality=track.fitQuality();
-      
       if (TrkQuality==0) {
         ATH_MSG_WARNING( "Requested cut on track quality was not possible. TrackParticleBase has no FitQuality object attached. Selection failed." );
         return false;
       }
-      
       if (!decision(TrkQuality)) {
         return false;
       }
-      
     }
-
     if (m_useTrackSummaryInfo) {
       //number of hits, silicon hits, b-layer
       const Trk::TrackSummary* summary = track.trackSummary();
-      
       if (0==summary ) { 
         ATH_MSG_WARNING( "Track preselection: cannot create a track summary (but useTrackSummary is true). Selection failed." );
         return false;
       }
-      
       if(m_useEtaDepententMinHitTrt) {
         m_nHitTrt = m_trtDCTool->minNumberDCs( (track.trackParameters())[0] );
-        if(m_addToMinHitTrt!=0)
+        if(m_addToMinHitTrt!=0){
           m_nHitTrt += m_addToMinHitTrt;
-        else
+        }else{
           m_nHitTrt = (int)((double)m_nHitTrt*m_scaleMinHitTrt);
+        }
       }
-      
       if(m_useEtaDepententMinHitTrtWithOutliers) {
         m_nHitTrtPlusOutliers = m_trtDCTool->minNumberDCs( (track.trackParameters())[0] );
-        if(m_addToMinHitTrtWithOutliers!=0)
+        if(m_addToMinHitTrtWithOutliers!=0){
           m_nHitTrtPlusOutliers += m_addToMinHitTrtWithOutliers;
-        else
+        }else{
           m_nHitTrtPlusOutliers = (int)((double)m_nHitTrtPlusOutliers*m_scaleMinHitTrtWithOutliers);
+        }
       }
-      
-      if (!decision(summary, m_useSharedHitInfo, isInTrtAcceptance, perigeeBeforeExtrapolation)) {
-	return false;
+      if ((!perigeeBeforeExtrapolation) or (!decision(summary, m_useSharedHitInfo, isInTrtAcceptance, perigeeBeforeExtrapolation))) {
+	      return false;
       }      
     }
-    
     const Trk::Perigee* extrapolatedPerigee=dynamic_cast<const Trk::Perigee*>(definintParameters);
- 
     const Trk::Vertex* myVertex=vertex;
-
     if (vertex==0) {
-      //ATH_MSG_DEBUG( "No vertex given, using beam spot or 0,0,0" );
       if (!m_iBeamCondSvc.empty()) {
         myVertex=new Trk::RecVertex(m_iBeamCondSvc->beamVtx());
       } else {
@@ -481,27 +380,23 @@ namespace InDet
         myVertex=new Trk::Vertex(Amg::Vector3D(0,0,0));
       }
     }
-    
     Trk::PerigeeSurface perigeeSurface(myVertex->position());
-    
     const Trk::TrackParameters *firstmeaspar=0;
-    
     for (unsigned int i=0;i<track.trackParameters().size();i++) {
       if ((track.trackParameters())[i]->covariance() &&
-	  !dynamic_cast<const Trk::Perigee*>((track.trackParameters())[i])) {
+	     !dynamic_cast<const Trk::Perigee*>((track.trackParameters())[i])) {
         firstmeaspar=(track.trackParameters())[i];
         break;
       }
     }
-
     if (!firstmeaspar) {
       if (!extrapolatedPerigee || !extrapolatedPerigee->covariance() ) {
-	ATH_MSG_DEBUG( " Track Paraemters at first measurement not found. Perigee not found. Cannot do TrackSelection..." );
-	if (myVertex!=vertex) {
-	  delete myVertex;
-	  myVertex=0;
-	}
-	return false;
+	      ATH_MSG_DEBUG( " Track Paraemters at first measurement not found. Perigee not found. Cannot do TrackSelection..." );
+	      if (myVertex!=vertex) {
+	        delete myVertex;
+	        myVertex=0;
+	      }
+	      return false;
       }
       //using perigee instead of firstmeasurement, since first measurement was not found...
       firstmeaspar=&(track.definingParameters());
@@ -510,26 +405,20 @@ namespace InDet
     ATH_MSG_VERBOSE ("Input to extrapolation: "    << *firstmeaspar);
     ATH_MSG_VERBOSE ("Extrapolating to position: " << myVertex->position()[0] << " , " <<
 		     myVertex->position()[1] << " , " << myVertex->position()[2]);
-    
     const Trk::TrackParameters* extrapolatedParameters= firstmeaspar ?
       m_extrapolator->extrapolate(*firstmeaspar,perigeeSurface,Trk::anyDirection,true,Trk::pion ) : 0;
-    
     extrapolatedPerigee = extrapolatedParameters ? dynamic_cast<const Trk::Perigee*>(extrapolatedParameters) : 0; 
-    
-    
     if (extrapolatedPerigee==0 || !extrapolatedPerigee->covariance()) {
       ATH_MSG_WARNING( "Track Selector failed to extrapolate track to the vertex: " << myVertex->position() );
-      if (extrapolatedParameters!=0) {
-	ATH_MSG_WARNING( "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
-	delete extrapolatedParameters;
+      if (extrapolatedParameters) {
+	      ATH_MSG_WARNING( "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
+	      delete extrapolatedParameters;
+	      extrapolatedParameters = nullptr;
       }
     }
-    
-    ATH_MSG_VERBOSE ("Result: " << *extrapolatedParameters);
-    
+    if (extrapolatedParameters) ATH_MSG_VERBOSE ("Result: " << *extrapolatedParameters);
     const Trk::RecVertex* recVertex = dynamic_cast<const Trk::RecVertex*>(myVertex);
     bool dec = decision(extrapolatedPerigee, recVertex ? &recVertex->covariancePosition() : 0 );
-    
     if (myVertex!=vertex) {
       delete myVertex;
       myVertex=0;
@@ -538,18 +427,17 @@ namespace InDet
       delete extrapolatedPerigee;
       extrapolatedPerigee=0;
     }
-    
     if(!dec) {
       ATH_MSG_DEBUG("Track rejected because of perigee parameters!");
       return false;
     }
-    
     return true;
   }
 
 
   // ---------------------------------------------------------------------
-  bool InDetDetailedTrackSelectorTool::decision(const xAOD::TrackParticle& tp,const xAOD::Vertex* vertex) const 
+  bool 
+  InDetDetailedTrackSelectorTool::decision(const xAOD::TrackParticle& tp,const xAOD::Vertex* vertex) const 
   {
     
     const Trk::Perigee& perigee=tp.perigeeParameters();
@@ -568,21 +456,20 @@ namespace InDet
 
       if(m_useEtaDepententMinHitTrt) {
         m_nHitTrt = m_trtDCTool->minNumberDCs( &perigee );
-        if(m_addToMinHitTrt!=0)
+        if(m_addToMinHitTrt!=0){
           m_nHitTrt += m_addToMinHitTrt;
-        else
+        }else{
           m_nHitTrt = (int)((double)m_nHitTrt*m_scaleMinHitTrt);
+        }
       }
-      
       if(m_useEtaDepententMinHitTrtWithOutliers) {
         m_nHitTrtPlusOutliers = m_trtDCTool->minNumberDCs( &perigee );
-        if(m_addToMinHitTrtWithOutliers!=0)
+        if(m_addToMinHitTrtWithOutliers!=0){
           m_nHitTrtPlusOutliers += m_addToMinHitTrtWithOutliers;
-        else
+        }else{
           m_nHitTrtPlusOutliers = (int)((double)m_nHitTrtPlusOutliers*m_scaleMinHitTrtWithOutliers);
+        }
       }
-      
-    
       int nb = getCount(tp,xAOD::numberOfInnermostPixelLayerHits );
       int np = getCount(tp,xAOD::numberOfPixelHits );
       int npd = getCount(tp,xAOD::numberOfPixelDeadSensors );
@@ -590,25 +477,22 @@ namespace InDet
       int nhp = getCount(tp,xAOD::numberOfPixelHoles );
       int nhs = getCount(tp,xAOD::numberOfSCTHoles );
       int ndhs = getCount(tp,xAOD::numberOfSCTDoubleHoles);
-
       //**-----------------------------------------------------------------------
       if(m_usePtDependentCuts) {
-
-	double pt = tp.pt();
-     
-	unsigned int it = 0;
-	for(; it< m_ptBenchmarks.size()-1; ++it ) {
-	  if(pt>m_ptBenchmarks[it] && pt <=m_ptBenchmarks[it+1] && ns < m_nSCTValues[it]) {
-	    ATH_MSG_DEBUG("Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
-	    return false;
-	  }
-	}//end of  pt intervals loop
+	      double pt = tp.pt();
+	      unsigned int it = 0;
+        for(; it< m_ptBenchmarks.size()-1; ++it ) {
+          if(pt>m_ptBenchmarks[it] && pt <=m_ptBenchmarks[it+1] && ns < m_nSCTValues[it]) {
+            ATH_MSG_DEBUG("Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
+            return false;
+          }
+        }//end of  pt intervals loop
 	
-	//now cutting all the rest by the last value in the vector   
-	if(pt>m_ptBenchmarks[it+1] && ns < m_nSCTValues[it+1]) {
-	  ATH_MSG_DEBUG("Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
-	  return false;
-	}
+        //now cutting all the rest by the last value in the vector   
+        if(pt>m_ptBenchmarks[it+1] && ns < m_nSCTValues[it+1]) {
+          ATH_MSG_DEBUG("Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
+          return false;
+        }
       }
       
       //*--------------------------------------------------------------------------------
@@ -616,40 +500,40 @@ namespace InDet
       //normal cuts in all their variety    
     
       if(nb == 0 && nb < m_nHitBLayer) {
-	ATH_MSG_DEBUG("Track rejected because of nHitBLayer "<<nb<<" < "<<m_nHitBLayer);
-	if(m_inDetTestBLayerTool.empty()) {
-	  ATH_MSG_DEBUG("and no blayer tool configured, so will not try to recover track");
-	  return false;
-	} else if (m_inDetTestBLayerTool->expectHitInBLayer(&perigee)) {
-	  ATH_MSG_DEBUG("and track rejected because of Number of b-layer hits ACCOUNTING for those expected") ;
-	  return false;
-	}else  ATH_MSG_DEBUG("recovered track as no b-layer expected") ;
+        ATH_MSG_DEBUG("Track rejected because of nHitBLayer "<<nb<<" < "<<m_nHitBLayer);
+        if(m_inDetTestBLayerTool.empty()) {
+          ATH_MSG_DEBUG("and no blayer tool configured, so will not try to recover track");
+          return false;
+        } else if (m_inDetTestBLayerTool->expectHitInBLayer(&perigee)) {
+          ATH_MSG_DEBUG("and track rejected because of Number of b-layer hits ACCOUNTING for those expected") ;
+          return false;
+        }else  ATH_MSG_DEBUG("recovered track as no b-layer expected") ;
       }//end of checking the b-layer
      
       if(np+npd < m_nHitPix) {
-	ATH_MSG_DEBUG("Track rejected because of nHitPix "<<np+npd<<" < "<<m_nHitPix);
-	return false;
+        ATH_MSG_DEBUG("Track rejected because of nHitPix "<<np+npd<<" < "<<m_nHitPix);
+        return false;
       }
     
       if(np < m_nHitPixPhysical) {
-	ATH_MSG_DEBUG("Track rejected because of nHitPixPhysical "<<np<<" < "<<m_nHitPixPhysical);
-	return false;
+        ATH_MSG_DEBUG("Track rejected because of nHitPixPhysical "<<np<<" < "<<m_nHitPixPhysical);
+        return false;
       }
     
       int nsd = getCount(tp,xAOD::numberOfSCTDeadSensors);
       if(ns+nsd < m_nHitSct) {
-	ATH_MSG_DEBUG("Track rejected because of nHitSct "<<ns+nsd<<" < "<<m_nHitSct);
-	return false;
+        ATH_MSG_DEBUG("Track rejected because of nHitSct "<<ns+nsd<<" < "<<m_nHitSct);
+        return false;
       }
     
       if(np+ns+npd+nsd < m_nHitSi) {
-	ATH_MSG_DEBUG("Track rejected because of nHitSi "<<np+npd+ns+nsd<<" < "<<m_nHitSi);
-	return false;
+        ATH_MSG_DEBUG("Track rejected because of nHitSi "<<np+npd+ns+nsd<<" < "<<m_nHitSi);
+        return false;
       }
     
       if(np+ns < m_nHitSiPhysical) {
-	ATH_MSG_DEBUG("Track rejected because of nHitSiPhysical "<<np+ns<<" < "<<m_nHitSiPhysical);
-	return false;
+        ATH_MSG_DEBUG("Track rejected because of nHitSiPhysical "<<np+ns<<" < "<<m_nHitSiPhysical);
+        return false;
       }
     
       if (nb+np+npd< m_nHitBLayerPlusPix){
@@ -669,69 +553,67 @@ namespace InDet
       }
    
       if(nhp > m_nHolesPix){
-	ATH_MSG_DEBUG("Track rejected because of nHolesPix "<<nhp<<" > "<<m_nHolesPix);
-	return false;
+        ATH_MSG_DEBUG("Track rejected because of nHolesPix "<<nhp<<" > "<<m_nHolesPix);
+        return false;
       }
    
       if (nhs > m_nHolesSct){
-	ATH_MSG_DEBUG("Track rejected because of nHolesSct "<<nhs<<" > "<<m_nHolesSct);
-	return false;
+        ATH_MSG_DEBUG("Track rejected because of nHolesSct "<<nhs<<" > "<<m_nHolesSct);
+        return false;
       }
    
-      if (fabs(tp.eta())>m_TrtMaxEtaAcceptance) {
-	int nh = getCount(tp,xAOD::numberOfTRTHits);
-	if(nh < m_nHitTrt) {
-	  ATH_MSG_DEBUG("Track rejected because of nHitTrt "<<nh<<" < "<<m_nHitTrt);
-	  return false;
-	}
-
-	int nhh = getCount(tp, xAOD::numberOfTRTHits ) + getCount(tp, xAOD::numberOfTRTOutliers );
-	if (nhh<m_nHitTrtPlusOutliers) {
-	  ATH_MSG_DEBUG("Track rejected because of nHitTrtPlusOutliers "<<nhh<<" < "<<m_nHitTrtPlusOutliers);
-	  return false;
-	}
+      if (std::fabs(tp.eta())>m_TrtMaxEtaAcceptance) {
+        int nh = getCount(tp,xAOD::numberOfTRTHits);
+        if(nh < m_nHitTrt) {
+          ATH_MSG_DEBUG("Track rejected because of nHitTrt "<<nh<<" < "<<m_nHitTrt);
+          return false;
+        }
+
+      int nhh = getCount(tp, xAOD::numberOfTRTHits ) + getCount(tp, xAOD::numberOfTRTOutliers );
+      if (nhh<m_nHitTrtPlusOutliers) {
+        ATH_MSG_DEBUG("Track rejected because of nHitTrtPlusOutliers "<<nhh<<" < "<<m_nHitTrtPlusOutliers);
+        return false;
+      }
 
-	int nhthits= getCount(tp,xAOD::numberOfTRTHighThresholdHits);
-	if (nhthits<m_nHitTrtHighE) {
-	  ATH_MSG_DEBUG("Track rejected because of nHitTrtHighE "<<nhthits<<" < "<<m_nHitTrtHighE);
-	  return false;
-	}
+      int nhthits= getCount(tp,xAOD::numberOfTRTHighThresholdHits);
+      if (nhthits<m_nHitTrtHighE) {
+        ATH_MSG_DEBUG("Track rejected because of nHitTrtHighE "<<nhthits<<" < "<<m_nHitTrtHighE);
+        return false;
+      }
       
-	int nhthitsWithOutliers= getCount(tp,xAOD::numberOfTRTHighThresholdHits) + getCount(tp,xAOD::numberOfTRTHighThresholdOutliers);
-	if (nhthitsWithOutliers<m_nHitTrtPlusOutliersHighE) {
-	  ATH_MSG_DEBUG("Track rejected because of nHitTrtPlusOutliersHighE "<<nhthitsWithOutliers<<" < "<<m_nHitTrtPlusOutliersHighE);
-	  return false;
-	}
+      int nhthitsWithOutliers= getCount(tp,xAOD::numberOfTRTHighThresholdHits) + getCount(tp,xAOD::numberOfTRTHighThresholdOutliers);
+      if (nhthitsWithOutliers<m_nHitTrtPlusOutliersHighE) {
+        ATH_MSG_DEBUG("Track rejected because of nHitTrtPlusOutliersHighE "<<nhthitsWithOutliers<<" < "<<m_nHitTrtPlusOutliersHighE);
+        return false;
+      }
 
-	if ( getCount(tp, xAOD::numberOfTRTHits )>0) {
-	  double nhe = getCount(tp,xAOD::numberOfTRTHighThresholdHits);
-	  nhe /= getCount(tp, xAOD::numberOfTRTHits);
-	  if(nhe > m_nHitTrtHighEFraction ) {
-	    ATH_MSG_DEBUG("Track rejected because of nHitTrtHighEFraction "<<nhe<<" < "<<m_nHitTrtHighEFraction);
-	    return false;
-	  }
-	}
+      if ( getCount(tp, xAOD::numberOfTRTHits )>0) {
+        double nhe = getCount(tp,xAOD::numberOfTRTHighThresholdHits);
+        nhe /= getCount(tp, xAOD::numberOfTRTHits);
+        if(nhe > m_nHitTrtHighEFraction ) {
+          ATH_MSG_DEBUG("Track rejected because of nHitTrtHighEFraction "<<nhe<<" < "<<m_nHitTrtHighEFraction);
+          return false;
+        }
+      }
       
-	if ( getCount(tp, xAOD::numberOfTRTHits ) + getCount(tp, xAOD::numberOfTRTOutliers ) > 0 ) {
-	  double nheh = (double)(getCount(tp,xAOD::numberOfTRTHighThresholdHits) + getCount(tp,xAOD::numberOfTRTHighThresholdOutliers))/
-            (double)(getCount(tp, xAOD::numberOfTRTHits) + getCount(tp, xAOD::numberOfTRTOutliers ) );
-	  if(nheh<0.) nheh=0.;
-	  if (nheh>1.) nheh=1.;
-	  if(nheh > m_nHitTrtHighEFractionWithOutliers ) {
-	    ATH_MSG_DEBUG("Track rejected because of nHitTrtHighEFractionWithOutliers "<<nheh<<" < "<<m_nHitTrtHighEFractionWithOutliers);
-	    return false;
-	  }
-	}
+      if ( getCount(tp, xAOD::numberOfTRTHits ) + getCount(tp, xAOD::numberOfTRTOutliers ) > 0 ) {
+        double nheh = (double)(getCount(tp,xAOD::numberOfTRTHighThresholdHits) + getCount(tp,xAOD::numberOfTRTHighThresholdOutliers))/
+                (double)(getCount(tp, xAOD::numberOfTRTHits) + getCount(tp, xAOD::numberOfTRTOutliers ) );
+        if(nheh<0.) nheh=0.;
+        if (nheh>1.) nheh=1.;
+        if(nheh > m_nHitTrtHighEFractionWithOutliers ) {
+          ATH_MSG_DEBUG("Track rejected because of nHitTrtHighEFractionWithOutliers "<<nheh<<" < "<<m_nHitTrtHighEFractionWithOutliers);
+          return false;
+        }
+      }
       }
-
       if (m_useSharedHitInfo) {
-
-	int nbs = getCount(tp,xAOD::numberOfInnermostPixelLayerSharedHits);
-	if (nbs>1) nbs=1;
-	if(nbs>m_nSharedBLayer) {
-	  ATH_MSG_DEBUG("Track rejected because of nSharedBLayer "<<nbs<<" < "<<m_nSharedBLayer);
-	  return false;
-	}
+        int nbs = getCount(tp,xAOD::numberOfInnermostPixelLayerSharedHits);
+        if (nbs>1) nbs=1;
+        if(nbs>m_nSharedBLayer) {
+          ATH_MSG_DEBUG("Track rejected because of nSharedBLayer "<<nbs<<" < "<<m_nSharedBLayer);
+          return false;
+        }
 
 	int nps = getCount(tp,xAOD::numberOfPixelSharedHits);
 	if(nps>m_nSharedPix) {
@@ -759,8 +641,9 @@ namespace InDet
     if (extrapolatedPerigee==0) {
       ATH_MSG_WARNING( "Extrapolation to the vertex failed: " << perigeeSurface << std::endl << perigee );
       if (extrapolatedParameters!=0) {
-    	ATH_MSG_WARNING( "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
-    	delete extrapolatedParameters;
+        ATH_MSG_WARNING( "The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
+        delete extrapolatedParameters;
+        extrapolatedParameters=nullptr;
       }
       return false;
     }
@@ -800,35 +683,35 @@ namespace InDet
 	ATH_MSG_DEBUG("Track rejected because of qOverP == 0.");
 	return false;
       }
-      double p = fabs(1./perigeeParms[Trk::qOverP]);
+      double p = std::fabs(1./perigeeParms[Trk::qOverP]);
       if (p<m_pMin) {
 	ATH_MSG_DEBUG("Track rejected because of p " << p << " < " << m_pMin);
 	return false;
       }
-      double pt = p*sin(perigeeParms[Trk::theta]);
+      double pt = p*std::sin(perigeeParms[Trk::theta]);
       if (pt<m_pTMin) {
 	ATH_MSG_DEBUG("Track rejected because of pt " << pt << " < " << m_pTMin);
 	return false;
       }
     }
     
-    if (fabs(perigeeParms[Trk::d0]) > m_IPd0Max) {
-      ATH_MSG_DEBUG("Track rejected because of fabs(d0) " << fabs(perigeeParms[Trk::d0]) << " > " << m_IPd0Max);
+    if (std::fabs(perigeeParms[Trk::d0]) > m_IPd0Max) {
+      ATH_MSG_DEBUG("Track rejected because of fabs(d0) " << std::fabs(perigeeParms[Trk::d0]) << " > " << m_IPd0Max);
       return false;
     }
     
-    if (fabs(perigeeParms[Trk::z0]*sin(perigeeParms[Trk::theta])) > m_IPz0Max) {
-      ATH_MSG_DEBUG("Track rejected because of fabs(z0*sin(theta)) " << fabs(perigeeParms[Trk::z0]*sin(perigeeParms[Trk::theta])) << " > " << m_IPz0Max);
+    if (std::fabs(perigeeParms[Trk::z0]*std::sin(perigeeParms[Trk::theta])) > m_IPz0Max) {
+      ATH_MSG_DEBUG("Track rejected because of fabs(z0*sin(theta)) " << std::fabs(perigeeParms[Trk::z0]*std::sin(perigeeParms[Trk::theta])) << " > " << m_IPz0Max);
       return false;
     }
     
-    if (fabs(perigeeParms[Trk::z0]) > m_z0Max) {
-      ATH_MSG_DEBUG("Track rejected because of fabs(z0) " << fabs(perigeeParms[Trk::z0]) << " > " << m_z0Max);
+    if (std::fabs(perigeeParms[Trk::z0]) > m_z0Max) {
+      ATH_MSG_DEBUG("Track rejected because of fabs(z0) " << std::fabs(perigeeParms[Trk::z0]) << " > " << m_z0Max);
       return false;
     }
 
-    if (sqrt( (*track->covariance())(Trk::z0,Trk::z0) )*sin(perigeeParms[Trk::theta])>m_sigIPz0Max) {
-      ATH_MSG_DEBUG("Track rejected because of err(z0)*sin(theta) " << sqrt( (*track->covariance())(Trk::z0,Trk::z0) )*sin(perigeeParms[Trk::theta]) << " > " << m_sigIPz0Max);
+    if (sqrt( (*track->covariance())(Trk::z0,Trk::z0) )*std::sin(perigeeParms[Trk::theta])>m_sigIPz0Max) {
+      ATH_MSG_DEBUG("Track rejected because of err(z0)*sin(theta) " << sqrt( (*track->covariance())(Trk::z0,Trk::z0) )*std::sin(perigeeParms[Trk::theta]) << " > " << m_sigIPz0Max);
       return false;
     }
     
@@ -839,8 +722,8 @@ namespace InDet
     
     if (m_d0significanceMax>0 || m_z0significanceMax>0) {
       
-      double sinTheta = sin(perigeeParms[Trk::theta]);
-      double cosTheta = cos(perigeeParms[Trk::theta]);
+      double sinTheta = std::sin(perigeeParms[Trk::theta]);
+      double cosTheta = std::cos(perigeeParms[Trk::theta]);
       double d0wrtPriVtx = perigeeParms[Trk::d0];
       double deltaZ = perigeeParms[Trk::z0];
       double z0wrtPriVtx = deltaZ*sinTheta;
@@ -849,15 +732,15 @@ namespace InDet
       double testtrackSigTh = sqrt( (*track->covariance())(Trk::theta,Trk::theta) );
       // error on IP:
       double trackPhi = perigeeParms[Trk::phi];
-      double dIPdx = sin(trackPhi);
-      double dIPdy = -cos(trackPhi);
+      double dIPdx = std::sin(trackPhi);
+      double dIPdy = -std::cos(trackPhi);
       double DD0 = testtrackSigD0*testtrackSigD0;
       double newD0Err=0;
       if (covariancePosition) {
-	double DXX = dIPdx*dIPdx* (*covariancePosition)(0,0);
-	double DYY = dIPdy*dIPdy* (*covariancePosition)(1,1);
-	double DXY = 2.*dIPdx*dIPdy* (*covariancePosition)(0,1);
-	newD0Err = DD0 + DXX + DYY + DXY;
+        double DXX = dIPdx*dIPdx* (*covariancePosition)(0,0);
+        double DYY = dIPdy*dIPdy* (*covariancePosition)(1,1);
+        double DXY = 2.*dIPdx*dIPdy* (*covariancePosition)(0,1);
+        newD0Err = DD0 + DXX + DYY + DXY;
       } else {
 	newD0Err = DD0;
       }
@@ -869,8 +752,8 @@ namespace InDet
       }
       
       if (m_d0significanceMax>0) {
-	if (fabs(d0wrtPriVtx/d0ErrwrtPriVtx)>m_d0significanceMax) {
-	  ATH_MSG_DEBUG("Track rejected because of fabs(d0wrtPriVtx/d0ErrwrtPriVtx) " << fabs(d0wrtPriVtx/d0ErrwrtPriVtx) << " > " << m_d0significanceMax);
+	if (std::fabs(d0wrtPriVtx/d0ErrwrtPriVtx)>m_d0significanceMax) {
+	  ATH_MSG_DEBUG("Track rejected because of fabs(d0wrtPriVtx/d0ErrwrtPriVtx) " << std::fabs(d0wrtPriVtx/d0ErrwrtPriVtx) << " > " << m_d0significanceMax);
 	  return false;
 	}
       }
@@ -898,16 +781,16 @@ namespace InDet
 	  ATH_MSG_WARNING( " error on z0 is negative: numeric error... (not expected. please report!)" );
 	}
 
-	if (fabs(z0wrtPriVtx/z0ErrwrtPriVtx)>m_z0significanceMax) {
-	  ATH_MSG_DEBUG("Track rejected because of fabs(z0wrtPriVtx/z0ErrwrtPriVtx) " << fabs(z0wrtPriVtx/z0ErrwrtPriVtx) << " > " << m_z0significanceMax);
+	if (std::fabs(z0wrtPriVtx/z0ErrwrtPriVtx)>m_z0significanceMax) {
+	  ATH_MSG_DEBUG("Track rejected because of fabs(z0wrtPriVtx/z0ErrwrtPriVtx) " << std::fabs(z0wrtPriVtx/z0ErrwrtPriVtx) << " > " << m_z0significanceMax);
 	  return false;
 	}
       }
       
     }
     
-    if (fabs(track->momentum().eta())>m_etaMax) {
-      ATH_MSG_DEBUG("Track rejected because of fabs(eta) " << fabs(track->momentum().eta()) << " > " << m_etaMax);
+    if (std::fabs(track->momentum().eta())>m_etaMax) {
+      ATH_MSG_DEBUG("Track rejected because of fabs(eta) " << std::fabs(track->momentum().eta()) << " > " << m_etaMax);
       return false;
     }
     
@@ -989,8 +872,8 @@ namespace InDet
          return false;
       }
       const AmgVector(5)& perigeeParms = track->parameters();
-      double p = fabs(1./perigeeParms[Trk::qOverP]);  
-      double pt = p*sin(perigeeParms[Trk::theta]);
+      double p = std::fabs(1./perigeeParms[Trk::qOverP]);  
+      double pt = p*std::sin(perigeeParms[Trk::theta]);
      
       unsigned int it = 0;
       for(; it< m_ptBenchmarks.size()-1; ++it ) {
@@ -1183,20 +1066,20 @@ namespace InDet
 	ATH_MSG_DEBUG("Track rejected because of perigee qOverP == 0.");
 	return false;
       }
-      double p = fabs(1./perigeeParms[Trk::qOverP]);
+      double p = std::fabs(1./perigeeParms[Trk::qOverP]);
       if (p<m_pMin) {
 	ATH_MSG_DEBUG("Track rejected because of p " << p << " < " << m_pMin);
 	return false;
       }
-      double pt = p*sin(perigeeParms[Trk::theta]);
+      double pt = p*std::sin(perigeeParms[Trk::theta]);
       if (pt<m_pTMin) {
 	ATH_MSG_DEBUG("Track rejected because of pt " << pt << " < " << m_pTMin);
 	return false;
       }
     }
 
-    if (fabs(perigeeParms[Trk::d0]) > m_d0MaxPreselection) {
-      ATH_MSG_DEBUG("Track rejected because of fabs(d0) "<<fabs(perigeeParms[Trk::d0])<<" < "<<m_d0MaxPreselection);
+    if (std::fabs(perigeeParms[Trk::d0]) > m_d0MaxPreselection) {
+      ATH_MSG_DEBUG("Track rejected because of fabs(d0) "<<std::fabs(perigeeParms[Trk::d0])<<" < "<<m_d0MaxPreselection);
       return false;
     }
 
diff --git a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h
index dec8ebccb2cb279166b85e66ab57313f7de1c934..64fc07a87f0ad9834c1a90a9d145ece5f4d07e3c 100755
--- a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h
+++ b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/SiClusterOnTrackTool/PixelClusterOnTrackTool.h
@@ -2,210 +2,214 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-///////////////////////////////////////////////////////////////////
-//  Header file for class  PixelClusterOnTrackTool
-///////////////////////////////////////////////////////////////////
-// (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-// Interface for PixelClusterOnTrack production
-///////////////////////////////////////////////////////////////////
-// started 1/05/2004 I.Gavrilenko - see ChangeLog for details
-///////////////////////////////////////////////////////////////////
-#ifndef PixelClusterOnTrackTool_H
-#define PixelClusterOnTrackTool_H
-
-#include "GaudiKernel/ToolHandle.h"
-#include "AthenaBaseComps/AthAlgTool.h"
-
-
-#include "TrkToolInterfaces/IRIO_OnTrackCreator.h"
-#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
-#include "InDetRIO_OnTrack/PixelClusterOnTrack.h"
-
-#include "InDetPrepRawData/PixelGangedClusterAmbiguities.h"
-#include "TrkParameters/TrackParameters.h"
-//#include "InDetIdentifier/PixelID.h"
-#include "GeoPrimitives/GeoPrimitives.h"
-#include "TrkAmbiguityProcessor/dRMap.h"
-
-//#include "PixelConditionsServices/IPixelOfflineCalibSvc.h"
-//#include "PixelConditionsTools/IModuleDistortionsTool.h"
-
-#include "AthenaPoolUtilities/CondAttrListCollection.h"
-class PixelID;
-class IPixelOfflineCalibSvc;
-class IModuleDistortionsTool;
-
-class StoreGateSvc;
-class IIBLParameterSvc;
-
-namespace InDet {
-
-  /** @brief creates PixelClusterOnTrack objects allowing to
-      calibrate cluster position and error using a given track hypothesis. 
-
-      See doxygen of Trk::RIO_OnTrackCreator for details.
-      Different strategies to calibrate the cluster error can be chosen
-      by job Option. Also the handle to the general hit-error scaling
-      is implemented.
-
-      Special strategies for correction can be invoked by calling the
-      correct method with an additional argument from the 
-      PixelClusterStrategy enumeration
-
-  */
-
-  class NnClusterizationFactory;
-
-  enum PixelClusterStrategy {
-    PIXELCLUSTER_DEFAULT=0,
-    PIXELCLUSTER_OUTLIER=1,
-    PIXELCLUSTER_SHARED =2,
-    PIXELCLUSTER_SPLIT  =3
-  };
-
-
-  class PixelClusterOnTrackTool: 
-        public AthAlgTool, virtual public Trk::IRIO_OnTrackCreator
-{
-  ///////////////////////////////////////////////////////////////////
-  // Public methods:
-  ///////////////////////////////////////////////////////////////////
-
-public:
-
-  //! AlgTool constructor 
-  PixelClusterOnTrackTool(const std::string&,const std::string&,
-                          const IInterface*);
-  virtual ~PixelClusterOnTrackTool ();
-  //! AlgTool initialisation
-  virtual StatusCode initialize() override;
-  //! AlgTool termination
-  virtual StatusCode finalize  () override;
-  
-  
- 
-  void correctBow(const Identifier&, Amg::Vector2D& locpos, const double tanphi, const double taneta) const;
-
-  double splineIBLPullX(float x, int layer) const;
-
-  /** @brief produces a PixelClusterOnTrack (object factory!).
-
-      Depending on job options it changes the pixel cluster position
-      and error according to the parameters (in particular, the angle)
-      of the intersecting track.
-  */
-  virtual const InDet::PixelClusterOnTrack* correct(const Trk::PrepRawData&,
-                                                    const Trk::TrackParameters&) const override;
-
-  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&, 
-                           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:
-  ///////////////////////////////////////////////////////////////////
-  
- private:
-
-  /** @brief parametrizes the pixel cluster position error as a function of 
-      the track angle alpha and the cluster width (number of rows) deltax */
-  //  double getBarrelPhiError(double& alpha, int& deltax) const;
-  //  double getBarrelEtaError(double eta, int deltax, int deltay) const;
-  // double getEndcapPhiError(int etasize, int phisize) const;
-  // double getEndcapEtaError(int etasize, int phisize) const;
-  
-  void FillFromDataBase() const;
-
-  ///////////////////////////////////////////////////////////////////
-  // Private data:
-  ///////////////////////////////////////////////////////////////////
-
-  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
-    IHistogram1D* m_h_Resx;
-    IHistogram1D* m_h_Resy;
-    IHistogram1D* m_h_Locx;
-    IHistogram1D* m_h_Locy;
-    IHistogram1D* m_h_PhiTrack;
-    IHistogram1D* m_h_ThetaTrack;
-    IHistogram1D* m_h_Rad; 
-    IHistogram1D* m_h_Slope;
-  */
-
-  //! 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  ;
-  mutable int                        m_errorStrategy     ;
-  
-  
-  /** @brief Flag controlling how module distortions are taken into account:
-      
-  case 0 -----> No distorsions implemented;
-  
-  case 1 -----> Set curvature (in 1/meter) and twist (in radiant) equal for all modules;
-  
-  case 2 -----> Read curvatures and twists from textfile containing Survey data;
-  
-  case 3 -----> Set curvature and twist from Gaussian random generator with mean and RMS coming from Survey data;
-  
-  case 4 -----> Read curvatures and twists from database (not ready yet);
-  */
-  //! identifier-helper
-  const PixelID*                     m_pixelid;
-  
-  /** 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;
-  
-  /** NN clusterizationi factory for NN based positions and errors **/
-  ToolHandle<NnClusterizationFactory>                   m_NnClusterizationFactory;
-  ServiceHandle<StoreGateSvc>                           m_storeGate;            //!< Event store
-  ServiceHandle<IIBLParameterSvc>                       m_IBLParameterSvc;
-
-
-  SG::ReadHandleKey<InDet::DRMap>                      m_dRMap;      //!< the actual dR map         
-  std::string                                          m_dRMapName;
-  
-  bool                                                  m_doNotRecalibrateNN;
-  bool                                                  m_noNNandBroadErrors;
-	
-	/** 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;
-  
-  //moved from static to member variable
-  static constexpr int s_nbinphi=9;
-  static constexpr int s_nbineta=6;
-  double m_calphi[s_nbinphi];
-  double m_caleta[s_nbineta][3];
-  double m_calerrphi[s_nbinphi][3];
-  double m_calerreta[s_nbineta][3];
-  double m_phix[s_nbinphi+1];
-  double m_etax[s_nbineta+1];
-};
-
-} // end of namespace InDet
-
-#endif // PixelClusterOnTrackTool_H
+///////////////////////////////////////////////////////////////////
+//  Header file for class  PixelClusterOnTrackTool
+///////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////
+// Interface for PixelClusterOnTrack production
+///////////////////////////////////////////////////////////////////
+// started 1/05/2004 I.Gavrilenko - see ChangeLog for details
+///////////////////////////////////////////////////////////////////
+#ifndef PixelClusterOnTrackTool_H
+#define PixelClusterOnTrackTool_H
+
+#include "GaudiKernel/ToolHandle.h"
+#include "AthenaBaseComps/AthAlgTool.h"
+
+
+#include "TrkToolInterfaces/IRIO_OnTrackCreator.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
+ * in an error:
+ * invalid covariant return type for 'virtual const InDet::PixelClusterOnTrack* 
+ InDet::PixelClusterOnTrackTool::correct(const Trk::PrepRawData&, 
+ const TrackParameters&) const'
+ * because the return type has changed and the compiler has no information to cast.
+ **/
+#include "InDetRIO_OnTrack/PixelClusterOnTrack.h"
+
+#include "InDetPrepRawData/PixelGangedClusterAmbiguities.h"
+#include "TrkParameters/TrackParameters.h"
+#include "GeoPrimitives/GeoPrimitives.h"
+#include "TrkAmbiguityProcessor/dRMap.h"
+class PixelID;
+class IPixelOfflineCalibSvc;
+class IModuleDistortionsTool;
+namespace Trk{
+  class IRIO_OnTrackErrorScalingTool;
+}
+
+class StoreGateSvc;
+class IIBLParameterSvc;
+
+namespace InDet {
+
+  /** @brief creates PixelClusterOnTrack objects allowing to
+      calibrate cluster position and error using a given track hypothesis. 
+
+      See doxygen of Trk::RIO_OnTrackCreator for details.
+      Different strategies to calibrate the cluster error can be chosen
+      by job Option. Also the handle to the general hit-error scaling
+      is implemented.
+
+      Special strategies for correction can be invoked by calling the
+      correct method with an additional argument from the 
+      PixelClusterStrategy enumeration
+
+  */
+
+  class NnClusterizationFactory;
+
+  enum PixelClusterStrategy {
+    PIXELCLUSTER_DEFAULT=0,
+    PIXELCLUSTER_OUTLIER=1,
+    PIXELCLUSTER_SHARED =2,
+    PIXELCLUSTER_SPLIT  =3
+  };
+
+
+  class PixelClusterOnTrackTool: 
+        public AthAlgTool, virtual public Trk::IRIO_OnTrackCreator
+{
+  ///////////////////////////////////////////////////////////////////
+  // Public methods:
+  ///////////////////////////////////////////////////////////////////
+
+public:
+
+  //! AlgTool constructor 
+  PixelClusterOnTrackTool(const std::string&,const std::string&,
+                          const IInterface*);
+  virtual ~PixelClusterOnTrackTool ();
+  //! AlgTool initialisation
+  virtual StatusCode initialize() override;
+  //! AlgTool termination
+  virtual StatusCode finalize  () override;
+  
+  
+ 
+  void correctBow(const Identifier&, Amg::Vector2D& locpos, const double tanphi, const double taneta) const;
+
+  double splineIBLPullX(float x, int layer) const;
+
+  /** @brief produces a PixelClusterOnTrack (object factory!).
+
+      Depending on job options it changes the pixel cluster position
+      and error according to the parameters (in particular, the angle)
+      of the intersecting track.
+  */
+  virtual const InDet::PixelClusterOnTrack* correct(const Trk::PrepRawData&,
+                                                    const Trk::TrackParameters&) const override;
+
+  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&, 
+                           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:
+  ///////////////////////////////////////////////////////////////////
+  
+ private:
+
+  /** @brief parametrizes the pixel cluster position error as a function of 
+      the track angle alpha and the cluster width (number of rows) deltax */
+  //  double getBarrelPhiError(double& alpha, int& deltax) const;
+  //  double getBarrelEtaError(double eta, int deltax, int deltay) const;
+  // double getEndcapPhiError(int etasize, int phisize) const;
+  // double getEndcapEtaError(int etasize, int phisize) const;
+  
+  void FillFromDataBase() const;
+
+  ///////////////////////////////////////////////////////////////////
+  // Private data:
+  ///////////////////////////////////////////////////////////////////
+
+  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
+    IHistogram1D* m_h_Resx;
+    IHistogram1D* m_h_Resy;
+    IHistogram1D* m_h_Locx;
+    IHistogram1D* m_h_Locy;
+    IHistogram1D* m_h_PhiTrack;
+    IHistogram1D* m_h_ThetaTrack;
+    IHistogram1D* m_h_Rad; 
+    IHistogram1D* m_h_Slope;
+  */
+
+  //! 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  ;
+  mutable int                        m_errorStrategy     ;
+  
+  
+  /** @brief Flag controlling how module distortions are taken into account:
+      
+  case 0 -----> No distorsions implemented;
+  
+  case 1 -----> Set curvature (in 1/meter) and twist (in radiant) equal for all modules;
+  
+  case 2 -----> Read curvatures and twists from textfile containing Survey data;
+  
+  case 3 -----> Set curvature and twist from Gaussian random generator with mean and RMS coming from Survey data;
+  
+  case 4 -----> Read curvatures and twists from database (not ready yet);
+  */
+  //! identifier-helper
+  const PixelID*                     m_pixelid;
+  
+  /** 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;
+  
+  /** NN clusterizationi factory for NN based positions and errors **/
+  ToolHandle<NnClusterizationFactory>                   m_NnClusterizationFactory;
+  ServiceHandle<StoreGateSvc>                           m_storeGate;            //!< Event store
+  ServiceHandle<IIBLParameterSvc>                       m_IBLParameterSvc;
+
+
+  SG::ReadHandleKey<InDet::DRMap>                      m_dRMap;      //!< the actual dR map         
+  std::string                                          m_dRMapName;
+  
+  bool                                                  m_doNotRecalibrateNN;
+  bool                                                  m_noNNandBroadErrors;
+	
+	/** 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;
+  
+  //moved from static to member variable
+  static constexpr int s_nbinphi=9;
+  static constexpr int s_nbineta=6;
+  double m_calphi[s_nbinphi];
+  double m_caleta[s_nbineta][3];
+  double m_calerrphi[s_nbinphi][3];
+  double m_calerreta[s_nbineta][3];
+  double m_phix[s_nbinphi+1];
+  double m_etax[s_nbineta+1];
+};
+
+} // end of namespace InDet
+
+#endif // PixelClusterOnTrackTool_H
diff --git a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx
index b9e289c724f648e69c011ff3f36f7dd6bc34c1a3..0f43976e48eb74119ec9f53d8bb348883a00edb5 100755
--- a/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx
+++ b/InnerDetector/InDetRecTools/SiClusterOnTrackTool/src/PixelClusterOnTrackTool.cxx
@@ -13,6 +13,7 @@
 ///////////////////////////////////////////////////////////////////
 
 #include "SiClusterOnTrackTool/PixelClusterOnTrackTool.h"
+#include "TrkToolInterfaces/IRIO_OnTrackErrorScalingTool.h"
 #include "InDetReadoutGeometry/SiDetectorManager.h"
 #include "InDetReadoutGeometry/PixelModuleDesign.h"
 #include "InDetIdentifier/PixelID.h"
@@ -273,8 +274,8 @@ InDet::PixelClusterOnTrackTool::FillFromDataBase() const{
           m_fD.emplace_back(std::move(fd));
         }
       }else {
-        msg(MSG::ERROR) << "Cannot find covariance corrections for key "
-                        << "/PIXEL/PixelClustering/PixelCovCorr" << " - no correction " << endmsg;
+        ATH_MSG_ERROR( "Cannot find covariance corrections for key "
+                        << "/PIXEL/PixelClustering/PixelCovCorr" << " - no correction " );
         
       }
     }
@@ -300,11 +301,9 @@ InDet::PixelClusterOnTrackTool::correct
     m_applyNNcorrection = false;
   }
 #endif
-
-  if (!m_applyNNcorrection ||
-      ((dynamic_cast<const InDetDD::SiDetectorElement *>(rio.detectorElement()))->isBlayer() && !m_NNIBLcorrection &&
-       !m_IBLAbsent)) {
-    return correctDefault(rio, trackPar);
+  auto element= dynamic_cast<const InDetDD::SiDetectorElement *>(rio.detectorElement());
+  if ((not m_applyNNcorrection) or (element and element->isBlayer() and (not m_NNIBLcorrection) and (not m_IBLAbsent))){
+        return correctDefault(rio, trackPar);
   }else {
     if (m_errorStrategy == 0 || m_errorStrategy == 1) {
       // version from Giacinto
@@ -374,8 +373,8 @@ InDet::PixelClusterOnTrackTool::correctDefault
     float trkphicomp = my_track.dot(my_phiax);
     float trketacomp = my_track.dot(my_etaax);
     float trknormcomp = my_track.dot(my_normal);
-    double bowphi = atan2(trkphicomp, trknormcomp);
-    double boweta = atan2(trketacomp, trknormcomp);
+    double bowphi = std::atan2(trkphicomp, trknormcomp);
+    double boweta = std::atan2(trketacomp, trknormcomp);
     float etatrack = trackPar.eta();
 
     float tanl = element->getTanLorentzAnglePhi();
@@ -391,7 +390,7 @@ InDet::PixelClusterOnTrackTool::correctDefault
     // finally, subtract the Lorentz angle effect
     // the readoutside term is needed because of a bug in old
     // geometry versions (CSC-01-* and CSC-02-*)
-    double angle = atan(tan(bowphi) - readoutside * tanl);
+    double angle = std::atan(std::tan(bowphi) - readoutside * tanl);
 
     // try to understand...
     const Identifier element_id = element->identify();
@@ -729,8 +728,8 @@ InDet::PixelClusterOnTrackTool::correctNN
     float trkphicomp = my_track.dot(my_phiax);
     float trketacomp = my_track.dot(my_etaax);
     float trknormcomp = my_track.dot(my_normal);
-    double bowphi = atan2(trkphicomp, trknormcomp);
-    double boweta = atan2(trketacomp, trknormcomp);
+    double bowphi = std::atan2(trkphicomp, trknormcomp);
+    double boweta = std::atan2(trketacomp, trknormcomp);
 
     Amg::Vector2D locpos = pixelPrepCluster->localPosition();
     if (element->isBarrel() && !m_disableDistortions) {
@@ -771,16 +770,14 @@ InDet::PixelClusterOnTrackTool::correctNN
     }
   }
 
-  if (msgLvl(MSG::DEBUG)) {
-    msg(MSG::DEBUG) << " Old position x: " << pixelPrepCluster->localPosition()[0] <<
-      " +/- " << std::sqrt(pixelPrepCluster->localCovariance()(0, 0))
-                    << " y: " << pixelPrepCluster->localPosition()[1] <<
-      " +/- " << std::sqrt(pixelPrepCluster->localCovariance()(1, 1)) << endmsg;
-    msg(MSG::DEBUG) << " Final position x: " << finalposition[0] <<
-      " +/- " << std::sqrt(finalerrormatrix(0, 0)) <<
-      " y: " << finalposition[1] << " +/- " <<
-      std::sqrt(finalerrormatrix(1, 1)) << endmsg;
-  }
+  ATH_MSG_DEBUG( " Old position x: " << pixelPrepCluster->localPosition()[0] 
+      << " +/- " << std::sqrt(pixelPrepCluster->localCovariance()(0, 0))
+      << " y: " << pixelPrepCluster->localPosition()[1]
+      << " +/- " << std::sqrt(pixelPrepCluster->localCovariance()(1, 1)) <<"\n" 
+      << " Final position x: " << finalposition[0]
+      << " +/- " << std::sqrt(finalerrormatrix(0, 0))
+      << " y: " << finalposition[1] << " +/- "
+      <<std::sqrt(finalerrormatrix(1, 1)) );
 
   Amg::Vector3D my_track = trackPar.momentum();
   Amg::Vector3D my_normal = element->normal();
@@ -789,8 +786,8 @@ InDet::PixelClusterOnTrackTool::correctNN
   float trkphicomp = my_track.dot(my_phiax);
   float trketacomp = my_track.dot(my_etaax);
   float trknormcomp = my_track.dot(my_normal);
-  double bowphi = atan2(trkphicomp, trknormcomp);
-  double boweta = atan2(trketacomp, trknormcomp);
+  double bowphi = std::atan2(trkphicomp, trknormcomp);
+  double boweta = std::atan2(trketacomp, trknormcomp);
 
   if (element->isBarrel() && !m_disableDistortions) {
     correctBow(element->identify(), finalposition, bowphi, boweta);
@@ -831,7 +828,7 @@ InDet::PixelClusterOnTrackTool::getErrorsDefaultAmbi(const InDet::PixelCluster *
   int numberOfSubclusters = 1;
 
   vectorOfPositions.push_back(pixelPrepCluster->localPosition());
-#ifdef __clustermap
+  #ifdef __clustermap
 
   SG::ReadHandle<InDet::PixelGangedClusterAmbiguities> splitClusterMap(m_splitClusterHandle);
   InDet::PixelGangedClusterAmbiguities::const_iterator mapBegin = splitClusterMap->begin();
@@ -843,9 +840,7 @@ InDet::PixelClusterOnTrackTool::getErrorsDefaultAmbi(const InDet::PixelCluster *
     if (first == pixelPrepCluster && second != pixelPrepCluster) {
       ATH_MSG_DEBUG("Found additional split cluster in ambiguity map (+=1).");
       numberOfSubclusters += 1;
- 
       const SiCluster *otherOne = second;
- 
       const InDet::PixelCluster *pixelAddCluster = dynamic_cast<const InDet::PixelCluster *>(otherOne);
       if (pixelAddCluster == 0) {
         ATH_MSG_WARNING("Pixel ambiguity map has empty pixel cluster. Please DEBUG!");
@@ -853,27 +848,17 @@ InDet::PixelClusterOnTrackTool::getErrorsDefaultAmbi(const InDet::PixelCluster *
       }
       vectorOfPositions.push_back(pixelAddCluster->localPosition());
  
-      if (msgLvl(MSG::DEBUG)) {
-        msg(MSG::DEBUG) << "Found one more pixel cluster. Position x: "
-                        << pixelAddCluster->localPosition()[0] << "y: " << pixelAddCluster->localPosition()[1] <<
-        endmsg;
-      }
+      ATH_MSG_DEBUG( "Found one more pixel cluster. Position x: "
+                        << pixelAddCluster->localPosition()[0] << "y: " << pixelAddCluster->localPosition()[1]);
     }// find relevant element of map
   }// iterate over map
 #endif
 
-  // A.S. hack for the moment: isSplit is also set for modified (non-split) 1-pixel-clusters ... is this needed anyway ?
-  //
-  // if (pixelPrepCluster->isSplit() && numberOfSubclusters<2)
-  // {
-  // msg(MSG::WARNING) << " Cluster is split but no further clusters found in split cluster map." << endmsg;
-  // }
-
   // now you have numberOfSubclusters and the vectorOfPositions (Amg::Vector2D)
 
   const Trk::AtaPlane *parameters = dynamic_cast<const Trk::AtaPlane *>(&trackPar);
-  if (parameters == 0) {
-    msg(MSG::WARNING) << "Parameters are not at a plane ! Aborting cluster correction... " << endmsg;
+  if (not parameters) {
+    ATH_MSG_WARNING( "Parameters are not at a plane ! Aborting cluster correction... " );
     return false;
   }
 
@@ -887,17 +872,15 @@ InDet::PixelClusterOnTrackTool::getErrorsDefaultAmbi(const InDet::PixelCluster *
                                                  allErrorMatrix,
                                                  numberOfSubclusters);
 
-  if (allLocalPositions.size() == 0) {
-    if (msgLvl(MSG::DEBUG)) {
-      msg(MSG::DEBUG) << " Cluster cannot be treated by NN. Giving back to default clusterization " << endmsg;
-    }
+  if (allLocalPositions.empty()) {
+    ATH_MSG_DEBUG( " Cluster cannot be treated by NN. Giving back to default clusterization " );
+    
     return false;
   }
 
   if (allLocalPositions.size() != size_t(numberOfSubclusters)) {
-    msg(MSG::WARNING) << "Returned position vector size " << allLocalPositions.size() <<
-    " not according to expected number of subclusters: " << numberOfSubclusters << ". Abort cluster correction..." <<
-    endmsg;
+    ATH_MSG_WARNING( "Returned position vector size " << allLocalPositions.size() <<
+    " not according to expected number of subclusters: " << numberOfSubclusters << ". Abort cluster correction..." );
     return false;
   }
 
@@ -923,16 +906,15 @@ InDet::PixelClusterOnTrackTool::getErrorsDefaultAmbi(const InDet::PixelCluster *
       square(vectorOfPositions[1][1] - allLocalPositions[0][1]) / allErrorMatrix[0](1, 1) +
       square(vectorOfPositions[0][1] - allLocalPositions[1][1]) / allErrorMatrix[1](1, 1);
 
-    if (msgLvl(MSG::DEBUG)) {
-      msg(MSG::DEBUG) << " Old pix (1) x: " << vectorOfPositions[0][0] << " y: " << vectorOfPositions[0][1] << endmsg;
-      msg(MSG::DEBUG) << " Old pix (2) x: " << vectorOfPositions[1][0] << " y: " << vectorOfPositions[1][1] << endmsg;
-      msg(MSG::DEBUG) << " Pix (1) x: " << allLocalPositions[0][0] << " +/- " << std::sqrt(allErrorMatrix[0](0, 0))
-                      << " y: " << allLocalPositions[0][1] << " +/- " << std::sqrt(allErrorMatrix[0](1, 1)) << endmsg;
-      msg(MSG::DEBUG) << " Pix (2) x: " << allLocalPositions[1][0] << " +/- " << std::sqrt(allErrorMatrix[1](0, 0))
-                      << " y: " << allLocalPositions[1][1] << " +/- " << std::sqrt(allErrorMatrix[1](1, 1)) << endmsg;
-      msg(MSG::DEBUG) << " Old (1) new (1) dist: " << std::sqrt(distancesq1) << " Old (1) new (2) " << std::sqrt(distancesq2) <<
-      endmsg;
-    }
+    ATH_MSG_DEBUG(
+     " Old pix (1) x: " << vectorOfPositions[0][0] << " y: " << vectorOfPositions[0][1] << "\n"
+      << " Old pix (2) x: " << vectorOfPositions[1][0] << " y: " << vectorOfPositions[1][1] << "\n"
+      << " Pix (1) x: " << allLocalPositions[0][0] << " +/- " << std::sqrt(allErrorMatrix[0](0, 0))
+      << " y: " << allLocalPositions[0][1] << " +/- " << std::sqrt(allErrorMatrix[0](1, 1)) <<"\n"
+      << " Pix (2) x: " << allLocalPositions[1][0] << " +/- " << std::sqrt(allErrorMatrix[1](0, 0))
+      << " y: " << allLocalPositions[1][1] << " +/- " << std::sqrt(allErrorMatrix[1](1, 1)) << "\n"
+      << " Old (1) new (1) dist: " << std::sqrt(distancesq1) << " Old (1) new (2) " << std::sqrt(distancesq2) );
+    
 
     if (distancesq1 < distancesq2) {
       finalposition = allLocalPositions[0];
diff --git a/InnerDetector/InDetRecTools/SiClusterizationTool/SiClusterizationTool/IPixelClusteringTool.h b/InnerDetector/InDetRecTools/SiClusterizationTool/SiClusterizationTool/IPixelClusteringTool.h
index 10b4bcd75d37ec9b4bb6986bc05816401e967a48..f8e1d92eb70ec2cc68bf636f0de04b3b6647df12 100755
--- a/InnerDetector/InDetRecTools/SiClusterizationTool/SiClusterizationTool/IPixelClusteringTool.h
+++ b/InnerDetector/InDetRecTools/SiClusterizationTool/SiClusterizationTool/IPixelClusteringTool.h
@@ -2,61 +2,59 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-///////////////////////////////////////////////////////////////////
-// I_PixelClusteringTool.h
-///////////////////////////////////////////////////////////////////
-// (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-// Interface for pixel clustering algorithms, taking input from RDOs
-///////////////////////////////////////////////////////////////////
-
-#ifndef SICLUSTERIZATIONTOOL_IPIXELCLUSTERINGTOOL_H
-#define SICLUSTERIZATIONTOOL_IPIXELCLUSTERINGTOOL_H
-
-#include "GaudiKernel/IAlgTool.h"
-
-#include "InDetRawData/InDetRawDataCollection.h"
-#include "InDetRawData/PixelRDORawData.h"
-// forward declare not possible (typedef)
-#include "InDetPrepRawData/PixelClusterCollection.h"
-// forward declare of this causes a compilation error (which I do not fully understand) 
-// in LazyOfflineSpacePointTool in a trigger package (T.L.)
-#include "InDetConditionsSummaryService/IInDetConditionsSvc.h"
-
-//class PixelConditionsSummarySvc;
-//template <class T> class ServiceHandle;
-
-class PixelID;
-
-namespace InDetDD
-{
-  class SiDetectorManager;
-}
-
-namespace InDet
-{
-
-  static const InterfaceID IID_IPixelClusteringTool("InDet::IPixelClusteringTool", 1, 0);
-
-  class IPixelClusteringTool : virtual public IAlgTool
-  {
-
-  public:
-
-    virtual ~IPixelClusteringTool() {};
-    virtual StatusCode initialize() = 0;
-    virtual StatusCode finalize() = 0;
-
-    static const InterfaceID& interfaceID() { return IID_IPixelClusteringTool; };
-
-    // Clusterize a collection of pixel raw data objects
-    virtual PixelClusterCollection* clusterize
-    (const InDetRawDataCollection<PixelRDORawData> &RDOs,
-     const InDetDD::SiDetectorManager& manager,
-     const PixelID& idHelper) const = 0;
-
-  };
-
-}
-
-#endif // SICLUSTERIZATIONTOOL_I_PIXELCLUSTERINGALG_H
+///////////////////////////////////////////////////////////////////
+// I_PixelClusteringTool.h
+///////////////////////////////////////////////////////////////////
+// (c) ATLAS Detector software
+///////////////////////////////////////////////////////////////////
+// Interface for pixel clustering algorithms, taking input from RDOs
+///////////////////////////////////////////////////////////////////
+
+#ifndef SICLUSTERIZATIONTOOL_IPIXELCLUSTERINGTOOL_H
+#define SICLUSTERIZATIONTOOL_IPIXELCLUSTERINGTOOL_H
+
+#include "GaudiKernel/IAlgTool.h"
+
+#include "InDetRawData/InDetRawDataCollection.h"
+#include "InDetRawData/PixelRDORawData.h"
+// forward declare not possible (typedef)
+#include "InDetPrepRawData/PixelClusterCollection.h"
+// forward declare of this causes a compilation error (which I do not fully understand) 
+// in LazyOfflineSpacePointTool in a trigger package (T.L.)
+#include "InDetConditionsSummaryService/IInDetConditionsSvc.h"
+
+
+class PixelID;
+
+namespace InDetDD
+{
+  class SiDetectorManager;
+}
+
+namespace InDet
+{
+
+  static const InterfaceID IID_IPixelClusteringTool("InDet::IPixelClusteringTool", 1, 0);
+
+  class IPixelClusteringTool : virtual public IAlgTool
+  {
+
+  public:
+
+    virtual ~IPixelClusteringTool() {};
+    virtual StatusCode initialize() = 0;
+    virtual StatusCode finalize() = 0;
+
+    static const InterfaceID& interfaceID() { return IID_IPixelClusteringTool; };
+
+    // Clusterize a collection of pixel raw data objects
+    virtual PixelClusterCollection* clusterize
+    (const InDetRawDataCollection<PixelRDORawData> &RDOs,
+     const InDetDD::SiDetectorManager& manager,
+     const PixelID& idHelper) const = 0;
+
+  };
+
+}
+
+#endif // SICLUSTERIZATIONTOOL_I_PIXELCLUSTERINGALG_H
diff --git a/InnerDetector/InDetRecTools/SiClusterizationTool/src/MergedPixelsTool.cxx b/InnerDetector/InDetRecTools/SiClusterizationTool/src/MergedPixelsTool.cxx
index 0742262e1c8d29e0a32da009bedf77dca97a57da..f82cb47659a70b74ef4e385026a02804d2b8b9df 100755
--- a/InnerDetector/InDetRecTools/SiClusterizationTool/src/MergedPixelsTool.cxx
+++ b/InnerDetector/InDetRecTools/SiClusterizationTool/src/MergedPixelsTool.cxx
@@ -18,7 +18,6 @@
 
 #include "SiClusterizationTool/MergedPixelsTool.h"
 #include "GaudiKernel/ServiceHandle.h"
-//#include "StoreGate/StoreGateSvc.h"
 #include "GaudiKernel/Incident.h"
 #include "Identifier/IdentifierHash.h"
 #include "InDetRawData/InDetRawDataCollection.h"
@@ -116,47 +115,10 @@ namespace InDet {
 	m_IBLParameterSvc->setBoolParameters(m_IBLAbsent,"IBLAbsent");
       }  
 
-
-    //// Get an Identifier helper object
-    //sc = m_detStore.retrieve();
-    //if(!sc.isSuccess()){
-      //  ATH_MSG_FATAL("Unable to retrieve detector store");
-        //return StatusCode::FAILURE;
-    //}
-    //else {
-      //  msg(MSG::DEBUG) << "DetectorStore service found" << endmsg;
-    //}
- 
-    //// Get the PixelID Helper
-    //if (m_detStore->retrieve(m_idHelper, "PixelID").isFailure()) {
-      //  msg(MSG::FATAL) << "Could not get Pixel ID helper" << endmsg;
-        //return StatusCode::FAILURE;
-    //}
-    
 // for the cluster splitting
-        if (!m_splitProbTool.empty() && m_splitProbTool.retrieve().isFailure()) {
-            ATH_MSG_FATAL( "Could not retrieve the split probability tool " << m_splitProbTool << "'.");
-            return StatusCode::FAILURE;
-        }      
-        if (!m_clusterSplitter.empty() && m_clusterSplitter.retrieve().isFailure()) {
-            ATH_MSG_FATAL( "Could not retrieve the cluster splitter '" << m_clusterSplitter << "'.");
-            return StatusCode::FAILURE;
-        }
-
-        if (m_incidentSvc.retrieve().isFailure()){
-            ATH_MSG_WARNING("Can not retrieve " << m_incidentSvc << ". Exiting.");
-            return StatusCode::FAILURE;
-        }
-        // register to the incident service: 
-        // (a) BeginEvent needed for the recording of the Split ambiguity map (always need to be there for merging)
-//        m_incidentSvc->addListener( this, IncidentType::BeginEvent);
-        // (b) EndEvent needed for memory cleanup
-//        m_incidentSvc->addListener( this, IncidentType::EndEvent);
-
-        if (m_pixofflinecalibSvc.retrieve().isFailure()){
-            ATH_MSG_ERROR("Could not retrieve " << m_pixofflinecalibSvc);
-            return StatusCode::FAILURE;
-        }
+        ATH_CHECK(m_splitProbTool.retrieve( EnableTool{not m_splitProbTool.empty()}));
+        ATH_CHECK(m_clusterSplitter.retrieve( EnableTool{not m_clusterSplitter.empty()} ));
+        ATH_CHECK(m_pixofflinecalibSvc.retrieve());
 
         if (m_minToT.size() != 7){
  		ATH_MSG_ERROR("Number of entries for ToT Cut is:" << m_minToT.size() << " . 7 Values are needed, so fix jO.");
@@ -513,8 +475,14 @@ namespace InDet {
 		  
 		  ATH_MSG_VERBOSE( "--> Processing new splitCluster with n. " << splitClusterParts.size() << " subClusters. ");
 		  
+		  const InDetDD::PixelModuleDesign* design (dynamic_cast<const InDetDD::PixelModuleDesign*>(&element->design()));
+		  if (not design){
+		    ATH_MSG_ERROR("Dynamic cast failed at "<<__LINE__<<" of MergedPixelsTool.cxx.");
+		    delete cluster;
+		    delete clusterCollection;
+		    return nullptr;
+		  }
 		  for ( size_t iclus = 0 ; splitClusterPartsIter != splitClusterPartsIterEnd; ++splitClusterPartsIter, ++iclus ){
-		    
 		    const Amg::Vector2D& position=(*(*splitClusterPartsIter).localPosition());
 		    const Amg::MatrixX&   error=(*(*splitClusterPartsIter).errorMatrix());
 		    const std::vector<int>&   totGroup=(*splitClusterPartsIter).totGroup();
@@ -563,12 +531,7 @@ namespace InDet {
 			  colMax = col;
 			}
 		      }
-		    const InDetDD::PixelModuleDesign* design
-		      (dynamic_cast<const InDetDD::PixelModuleDesign*>(&element->design()));
-		    if (not design){
-		      ATH_MSG_ERROR("Dynamic cast failed at "<<__LINE__<<" of MergedPixelsTool.cxx.");
-		      return nullptr;
-		    }
+		    
 		    int colWidth = colMax-colMin+1;
 		    int rowWidth = rowMax-rowMin+1;
 		    double etaWidth = design->widthFromColumnRange(colMin, colMax);
diff --git a/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTools_xk.h b/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTools_xk.h
index 9ffe946c03c67c4f67976216a9b0d203c5a947c0..2c9bd32c8898a1a295085773ca5e06853b261c16 100755
--- a/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTools_xk.h
+++ b/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTools_xk.h
@@ -34,9 +34,9 @@ namespace InDet{
     public:
       
       SiTools_xk();
-      SiTools_xk(const SiTools_xk&);
+      SiTools_xk(const SiTools_xk&) = default;
       ~SiTools_xk();
-      SiTools_xk& operator  = (const SiTools_xk&);
+      SiTools_xk& operator  = (const SiTools_xk&) = default;
 
       ///////////////////////////////////////////////////////////////////
       // Main methods
@@ -75,11 +75,8 @@ namespace InDet{
 	 MagField::IMagFieldSvc* 
 	 );  
       
-      void setTools
-	(const Trk::MagneticFieldProperties&);
- 
+      void setTools(const Trk::MagneticFieldProperties&);
       void setTools(IInDetConditionsTool*,IInDetConditionsTool*);
-
       void setXi2pTmin(const double&,const double&,const double&,const double&);
       void setHolesClusters(const int&,const int&,const int&);
       void setAssociation(const int&);
@@ -130,6 +127,7 @@ namespace InDet{
   inline SiTools_xk::SiTools_xk()
     {
       m_assoTool    = 0   ;
+      m_fieldService= 0    ;
       m_proptool    = 0   ;
       m_updatortool = 0   ;
       m_riotool     = 0   ;  
@@ -148,42 +146,10 @@ namespace InDet{
       m_multitrack  = false; 
       m_bremnoise   = false;
       m_electron    = false;
-      m_fieldService= 0    ;
+      m_heavyion    = false;
     }
 
-  inline SiTools_xk::SiTools_xk(const SiTools_xk& T)
-    {
-      *this = T;
-    }
   
-  inline SiTools_xk& SiTools_xk::operator = 
-    (const SiTools_xk& T) 
-    {
-      if(&T!=this) {
-	m_assoTool    = T.m_assoTool   ;
-	m_fieldtool   = T.m_fieldtool  ;
-	m_fieldService= T.m_fieldService;
-	m_proptool    = T.m_proptool   ;
-	m_updatortool = T.m_updatortool;
-	m_riotool     = T.m_riotool    ;
-	m_pixcond     = T.m_pixcond    ;
-	m_sctcond     = T.m_sctcond    ;
-	m_xi2max      = T.m_xi2max     ;
-	m_xi2maxBrem  = T.m_xi2maxBrem ;
-	m_xi2maxlink  = T.m_xi2maxlink ;
-	m_xi2multi    = T.m_xi2multi   ;
-	m_pTmin       = T.m_pTmin      ;
-	m_nholesmax   = T.m_nholesmax  ;
-	m_dholesmax   = T.m_dholesmax  ;
-	m_nclusmin    = T.m_nclusmin   ; 
-	m_useassoTool = T.m_useassoTool;
-	m_multitrack  = T.m_multitrack ; 
-	m_bremnoise   = T.m_bremnoise  ;
-	m_electron    = T.m_electron   ; 
-	m_heavyion    = T.m_heavyion   ;
-      }
-      return(*this);
-    }
 
   inline SiTools_xk::~SiTools_xk() {}
 
diff --git a/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTrajectoryElement_xk.h b/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTrajectoryElement_xk.h
index f5720d7f013b36e1ae4854da61f357260d4dd288..ce86080e791a6ba4bf406fada2e093de68fb9304 100755
--- a/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTrajectoryElement_xk.h
+++ b/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/SiCombinatorialTrackFinderTool_xk/SiTrajectoryElement_xk.h
@@ -16,7 +16,6 @@
 #define SiTrajectoryElement_xk_H
 
 #include "InDetPrepRawData/SiClusterCollection.h"
-#include "TrkTrack/TrackStateOnSurface.h"
 #include "TrkPatternParameters/PatternTrackParameters.h"
 #include "TrkPatternParameters/NoiseOnSurface.h"
 
@@ -24,6 +23,9 @@
 #include "SiCombinatorialTrackFinderTool_xk/SiClusterLink_xk.h"
 #include "SiCombinatorialTrackFinderTool_xk/SiDetElementBoundaryLink_xk.h"
 
+#include "TrkTrack/TrackStateOnSurface.h"
+
+
 namespace InDet{
 
   class SiTrajectoryElement_xk
diff --git a/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/src/SiTrajectoryElement_xk.cxx b/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/src/SiTrajectoryElement_xk.cxx
index dfda6f280504e8c1246ff2a873a3e78d49803caf..adc7fa4d43d949de9adf5dc151089db4260e2d11 100755
--- a/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/src/SiTrajectoryElement_xk.cxx
+++ b/InnerDetector/InDetRecTools/SiCombinatorialTrackFinderTool_xk/src/SiTrajectoryElement_xk.cxx
@@ -2,8 +2,6 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include <iostream>
-#include <iomanip>
 
 #include "TrkSurfaces/PerigeeSurface.h" 
 #include "TrkSurfaces/AnnulusBounds.h" 
@@ -15,6 +13,8 @@
 
 #include "InDetRIO_OnTrack/PixelClusterOnTrack.h"
 #include "InDetRIO_OnTrack/SCT_ClusterOnTrack.h"
+#include <stdexcept>
+#include <math.h>//for sincos function
 
 ///////////////////////////////////////////////////////////////////
 // Set trajectory element
@@ -28,7 +28,8 @@ bool InDet::SiTrajectoryElement_xk::set
  const InDet::SiCluster*                           si
  )
 {
-  m_fieldMode    = false; if(m_tools->fieldTool().magneticFieldMode()!=0) m_fieldMode = true;
+  m_fieldMode    = false; 
+  if(m_tools->fieldTool().magneticFieldMode()!=0) m_fieldMode = true;
   m_status       = 0                       ;
   m_detstatus    = st                      ;
   m_ndist        = 0                       ;
@@ -1457,18 +1458,16 @@ double InDet::SiTrajectoryElement_xk::quality(int& holes) const
 // to PlaneSurface Ta->pSu = Tb with step to surface calculation
 /////////////////////////////////////////////////////////////////////////////////
 
-bool InDet::SiTrajectoryElement_xk::propagate
-(Trk::PatternTrackParameters  & Ta,
+bool 
+InDet::SiTrajectoryElement_xk::propagate(Trk::PatternTrackParameters  & Ta,
  Trk::PatternTrackParameters  & Tb,
- double                       & S ) 
-{
-  bool useJac = true; if(!Ta.iscovariance()) useJac = false;
-
-  double P[64]; transformPlaneToGlobal(useJac,Ta,P);
-
+ double & S ) {
+  bool useJac = true; 
+  if(!Ta.iscovariance()) useJac = false;
+  double P[64]; 
+  transformPlaneToGlobal(useJac,Ta,P);
   if( m_fieldMode) {if(!rungeKuttaToPlane      (useJac,P)) return false;}
   else             {if(!straightLineStepToPlane(useJac,P)) return false;} 
-
   S = P[45]; return transformGlobalToPlane(useJac,P,Ta,Tb);
 }
 
@@ -1477,32 +1476,36 @@ bool InDet::SiTrajectoryElement_xk::propagate
 // to PlaneSurface Ta->pSu = Tb with step to surface calculation
 /////////////////////////////////////////////////////////////////////////////////
 
-bool InDet::SiTrajectoryElement_xk::propagateParameters
-(Trk::PatternTrackParameters  & Ta,
- Trk::PatternTrackParameters  & Tb,
- double                       & S ) 
-{
+bool 
+InDet::SiTrajectoryElement_xk::propagateParameters(Trk::PatternTrackParameters  & Ta,
+ Trk::PatternTrackParameters  & Tb, double  & S ) {
   bool useJac = false;
-
-  double P[64]; transformPlaneToGlobal(useJac,Ta,P);
-
-  if( m_fieldMode) {if(!rungeKuttaToPlane      (useJac,P)) return false;}
-  else             {if(!straightLineStepToPlane(useJac,P)) return false;} 
-
-  S = P[45]; return transformGlobalToPlane(useJac,P,Ta,Tb);
+  double P[64]; 
+  transformPlaneToGlobal(useJac,Ta,P);
+  if( m_fieldMode) {
+    if(!rungeKuttaToPlane (useJac,P)) return false;
+    } else {
+    if(!straightLineStepToPlane(useJac,P)) return false;
+  } 
+  S = P[45]; 
+  return transformGlobalToPlane(useJac,P,Ta,Tb);
 }
 
 /////////////////////////////////////////////////////////////////////////////////
 // Tramsform from plane to global
 /////////////////////////////////////////////////////////////////////////////////
 
-void InDet::SiTrajectoryElement_xk::transformPlaneToGlobal
-(bool useJac,Trk::PatternTrackParameters& Tp,double* P) 
-{
-  double Sf,Cf,Ce,Se;   sincos(Tp.par()[2],&Sf,&Cf);  sincos(Tp.par()[3],&Se,&Ce);
-
-  const Amg::Transform3D& T  = Tp.associatedSurface()->transform();
-
+void InDet::SiTrajectoryElement_xk::transformPlaneToGlobal(bool useJac,
+ Trk::PatternTrackParameters& Tp,double* P) {
+  double Sf,Cf,Ce,Se;   
+  sincos(Tp.par()[2],&Sf,&Cf);  
+  sincos(Tp.par()[3],&Se,&Ce);
+  const auto pSurface=Tp.associatedSurface();
+  if (not pSurface){
+    throw(std::runtime_error("TrackParameters associated surface is null pointer in InDet::SiTrajectoryElement_xk::transformPlaneToGlobal"));
+  }
+  const Amg::Transform3D& T  = pSurface->transform();
+ 
   double Ax[3] = {T(0,0),T(1,0),T(2,0)};
   double Ay[3] = {T(0,1),T(1,1),T(2,1)};
 
diff --git a/InnerDetector/InDetRecTools/SiZvertexTool_xk/SiZvertexTool_xk/SiZvertexMaker_xk.h b/InnerDetector/InDetRecTools/SiZvertexTool_xk/SiZvertexTool_xk/SiZvertexMaker_xk.h
index b42e20474aa6c27069c9b7664346f0a3b7441a89..8d0b9f046bd9276ec94703ef7a0c5e487bb106ee 100755
--- a/InnerDetector/InDetRecTools/SiZvertexTool_xk/SiZvertexTool_xk/SiZvertexMaker_xk.h
+++ b/InnerDetector/InDetRecTools/SiZvertexTool_xk/SiZvertexTool_xk/SiZvertexMaker_xk.h
@@ -15,11 +15,20 @@
 #ifndef SiZvertexMaker_xk_H
 #define SiZvertexMaker_xk_H
 
-#include <list>
+
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "InDetRecToolInterfaces/ISiZvertexMaker.h"  
 #include "InDetRecToolInterfaces/ISiSpacePointsSeedMaker.h"
+#include "Identifier/IdentifierHash.h"
+#include <list>
+#include <vector>
+#include <iosfwd>
+
+namespace Trk{
+  class Vertex;
+}
+
 
 class MsgStream;
 
@@ -72,17 +81,17 @@ namespace InDet{
       // Protected data and methods
       ///////////////////////////////////////////////////////////////////
       
-      int*                                       m_histogram     ;
-      double*                                    m_z_histogram   ;
-      int                                        m_outputlevel   ;
-      int                                        m_nprint        ;
-      int                                        m_nspoint       ;
-      int                                        m_histsize      ;
-      int                                        m_mincontent    ;
-      int                                        m_maxcontent    ;
-      double                                     m_zmin          ;
-      double                                     m_zmax          ;
-      double                                     m_ratio         ;
+      int*                                       m_histogram{}     ;
+      double*                                    m_z_histogram{}   ;
+      int                                        m_outputlevel{}   ;
+      int                                        m_nprint {}       ;
+      int                                        m_nspoint{}       ;
+      int                                        m_histsize{}      ;
+      int                                        m_mincontent{}    ;
+      int                                        m_maxcontent{}    ;
+      double                                     m_zmin{}          ;
+      double                                     m_zmax {}         ;
+      double                                     m_ratio {}        ;
       std::list<Trk::Vertex>                     m_vertex        ;
       ToolHandle<InDet::ISiSpacePointsSeedMaker> m_seedsgenerator; 
 
diff --git a/InnerDetector/InDetRecTools/SiZvertexTool_xk/src/SiZvertexMaker_xk.cxx b/InnerDetector/InDetRecTools/SiZvertexTool_xk/src/SiZvertexMaker_xk.cxx
index a8a54df87bec194ff513993c44799ca7259e9df2..8c2385afc4debad84c4707b21a96f52380453052 100755
--- a/InnerDetector/InDetRecTools/SiZvertexTool_xk/src/SiZvertexMaker_xk.cxx
+++ b/InnerDetector/InDetRecTools/SiZvertexTool_xk/src/SiZvertexMaker_xk.cxx
@@ -10,11 +10,13 @@
 // Version 1.0 30/10/2004 I.Gavrilenko
 ///////////////////////////////////////////////////////////////////
 
-#include <iostream>
+#include <ostream>
 #include <iomanip>
 
 #include "SiZvertexTool_xk/SiZvertexMaker_xk.h"
 #include "SiSpacePointsSeed/SiSpacePointsSeed.h"
+#include "VxVertex/Vertex.h"
+#include <map>
 
 ///////////////////////////////////////////////////////////////////
 // Constructor
diff --git a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h
index a25bbb328dc9e453af3b92a49f150f6abf43eda7..9a13c8aeb6ec382f63fd79d1efdcfd843358c576 100755
--- a/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h
+++ b/InnerDetector/InDetRecTools/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadTool_xk/TRT_DetElementsRoadMaker_xk.h
@@ -16,8 +16,7 @@
 #ifndef TRT_DetElementsRoadMaker_xk_H
 #define TRT_DetElementsRoadMaker_xk_H
 
-#include <list>
-#include <vector>
+
 
 #include "GaudiKernel/ServiceHandle.h"
 #include "MagFieldInterfaces/IMagFieldSvc.h"
@@ -33,6 +32,9 @@
 #include "TrkSurfaces/CylinderBounds.h"
 
 #include "TRT_DetElementsRoadTool_xk/TRT_DetElementsLayer_xk.h"
+#include <list>
+#include <vector>
+#include <iosfwd>
 
 class MsgStream;
 
@@ -97,17 +99,17 @@ namespace InDet {
       ///////////////////////////////////////////////////////////////////
 
       ServiceHandle<MagField::IMagFieldSvc> m_fieldServiceHandle;
-      MagField::IMagFieldSvc*               m_fieldService      ;
+      MagField::IMagFieldSvc*               m_fieldService{}      ;
       ToolHandle<Trk::IPropagator>          m_proptool ;  // Propagator     tool
       Trk::MagneticFieldProperties          m_fieldprop;  // Magnetic field properties
 
-      int                                  m_outputlevel;
-      int                                  m_nprint   ;
-      int                                  m_sizeroad ;
-      double                               m_zfield   ;
-      float                                m_width    ;  // Width of the roadInnerDetector/InDetRecTools/
-      double                               m_step     ;  // Max step allowed
-      double                               m_rminTRT  ;
+      int                                  m_outputlevel{};
+      int                                  m_nprint{}   ;
+      int                                  m_sizeroad{} ;
+      double                               m_zfield{}   ;
+      float                                m_width{}    ;  // Width of the roadInnerDetector/InDetRecTools/
+      double                               m_step{}     ;  // Max step allowed
+      double                               m_rminTRT{}  ;
       Trk::CylinderBounds                  m_bounds   ;  //  
       int                                  m_map  [3] ;
       std::vector<TRT_DetElementsLayer_xk> m_layer[3] ;  // Layers
diff --git a/InnerDetector/InDetSimEvent/InDetSimEvent/SiHit.h b/InnerDetector/InDetSimEvent/InDetSimEvent/SiHit.h
index b00a10afe83bb71ff25b7845c1a0495e09eb2633..15acd0616814ee1528753b1979e5135d00bc315f 100755
--- a/InnerDetector/InDetSimEvent/InDetSimEvent/SiHit.h
+++ b/InnerDetector/InDetSimEvent/InDetSimEvent/SiHit.h
@@ -12,7 +12,6 @@
 #ifndef INDETSIMEVENT_SIHIT_H
 #define INDETSIMEVENT_SIHIT_H
 
-#include <iostream>
 // Data members classes
 #include "CLHEP/Geometry/Point3D.h"
 #include "GeneratorObjects/HepMcParticleLink.h"
@@ -69,6 +68,13 @@ public:
 
   // Destructor:
   virtual ~SiHit(); //temporary make it virtual for Pool!
+  
+  //move assignment defaulted
+  SiHit & operator = (SiHit &&) = default;
+  //assignment defaulted
+  SiHit & operator = (const SiHit &) = default;
+  //copy c'tor defaulted
+  SiHit(const SiHit &) = default;
 
   ///////////////////////////////////////////////////////////////////
   // Const methods:
@@ -137,14 +143,11 @@ public:
   ///////////////////////////////////////////////////////////////////
 private:
 
-  //  HepGeom::Point3D<double> m_localStartPosition; // local start position of the hit
-  //  HepGeom::Point3D<double> m_localEndPosition; // local end position of the hit
   float m_stX, m_stY, m_stZ;
   float m_enX, m_enY, m_enZ;
   float m_energyLoss; // deposited energy
   float m_meanTime; // time of energy deposition
   HepMcParticleLink m_partLink;
-  //   int m_trackNumber; // number of track which released this energy
   unsigned int m_ID;
 public:
   enum
diff --git a/InnerDetector/InDetSimEvent/InDetSimEvent/TRTUncompressedHit.h b/InnerDetector/InDetSimEvent/InDetSimEvent/TRTUncompressedHit.h
index ca6c7ab1c1782901b203abb4ef043b29898c641b..3b22798c5846e3f96c8c4aca2cf961210bdb4fd2 100755
--- a/InnerDetector/InDetSimEvent/InDetSimEvent/TRTUncompressedHit.h
+++ b/InnerDetector/InDetSimEvent/InDetSimEvent/TRTUncompressedHit.h
@@ -26,6 +26,13 @@ public:
 
   // Destructor: FIXME POOL
   inline virtual ~TRTUncompressedHit() {};
+  
+  //copy c'tor defaulted
+  TRTUncompressedHit(const TRTUncompressedHit &) = default;
+  //assignment defaulted
+  TRTUncompressedHit & operator = (const TRTUncompressedHit &) =default;
+  //move assignment defaulted
+  TRTUncompressedHit & operator = (TRTUncompressedHit &&) = default;
 
   bool operator < (const TRTUncompressedHit& obj) const
   {return m_hitID < obj.m_hitID;}
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/InDetTrigConversionFinder/TrigConversionFinder.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/InDetTrigConversionFinder/TrigConversionFinder.h
index 579a0c72248a68f345190ebebc516eb04f3cb059..8e52356ab72dcae295aba70ad239cb15de5300df 100755
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/InDetTrigConversionFinder/TrigConversionFinder.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/InDetTrigConversionFinder/TrigConversionFinder.h
@@ -40,21 +40,21 @@ namespace InDet
       void analyzeResults(xAOD::VertexContainer*); 
  
     protected: 
-      int m_nTracks;
-      int m_nVertices;
+      int m_nTracks{};
+      int m_nVertices{};
             
       ToolHandle< IVertexFinder > m_VertexFinderTool;
  
       /** Statistics  */ 
-      long m_events_processed;    //!< Number of events processed 
-      long m_Gamma_stored;        //!< Number of conversion vertices stored 
-      long m_Double_Conversions;  //!< Number of two-track conversions 
-      long m_Single_Conversions;  //!< Number of single-track conversions 
-      long m_SiSi_Conversions;    //!< Number of Si-Si track conversions 
-      long m_SiTrt_Conversions;   //!< Number of Si-TRT track conversions 
-      long m_TrtTrt_Conversions;  //!< Number of TRT-TRT track conversions 
-      long m_Si_Conversions;      //!< Number of Si single-track conversions 
-      long m_Trt_Conversions;     //!< Number of TRT single-track conversions 
+      long m_events_processed{};    //!< Number of events processed 
+      long m_Gamma_stored{};        //!< Number of conversion vertices stored 
+      long m_Double_Conversions{};  //!< Number of two-track conversions 
+      long m_Single_Conversions{};  //!< Number of single-track conversions 
+      long m_SiSi_Conversions{};    //!< Number of Si-Si track conversions 
+      long m_SiTrt_Conversions{};   //!< Number of Si-TRT track conversions 
+      long m_TrtTrt_Conversions{};  //!< Number of TRT-TRT track conversions 
+      long m_Si_Conversions{};      //!< Number of Si single-track conversions 
+      long m_Trt_Conversions{};     //!< Number of TRT single-track conversions 
       
     }; 
 } 
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/src/TrigConversionFinder.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/src/TrigConversionFinder.cxx
index 799a8fe33ef38454863a316c484e8b08dee147ba..a5417d547b6a08fa8044eb7389f67120d48d2475 100755
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/src/TrigConversionFinder.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigConversionFinder/src/TrigConversionFinder.cxx
@@ -127,11 +127,9 @@ namespace InDet
 #endif
      
       // Find conversions
-      // virtual std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> findVertex(const xAOD::TrackParticleContainer* trackParticles) = 0;
       std::pair <xAOD::VertexContainer*, xAOD::VertexAuxContainer*> foo;
       foo = m_VertexFinderTool->findVertex(TPC);
       InDetTrigConversionContainer = foo.first;
-      //delete tpBaseColl;
     }
       
     
@@ -151,7 +149,12 @@ namespace InDet
     
     if(outputLevel <= MSG::DEBUG){
       msg() << MSG::DEBUG << "Container recorded in StoreGate." << endmsg;
-      msg() << MSG::DEBUG << "REGTEST: Output conversion container size :" << InDetTrigConversionContainer->size() << endmsg;
+      if (InDetTrigConversionContainer){
+        msg() << MSG::DEBUG << "REGTEST: Output conversion container size :" << InDetTrigConversionContainer->size() << endmsg;
+      } else {
+        msg() << MSG::DEBUG << "InDetTrigConversionContainer ptr is null at "<<__LINE__<<endmsg;
+      }
+    
     } 
     
     return HLT::OK;
@@ -178,6 +181,10 @@ namespace InDet
 	    const Trk::LinkToTrackParticleBase * linkToTrackPB = dynamic_cast<const Trk::LinkToTrackParticleBase *>(trLink); 
 	    if(0!= linkToTrackPB){
 	      if(linkToTrackPB->isValid()) tempTrk = linkToTrackPB->cachedElement();
+	      if (not tempTrk) {
+	        msg() << MSG::ERROR<<"tempTrk ptr is null at "<<__LINE__<<endmsg;
+	        continue;
+	      }
 	      const Trk::TrackSummary* summary = tempTrk->trackSummary();
 	      int ncl  = summary->get(Trk::numberOfPixelHits) + summary->get(Trk::numberOfSCTHits);
 	      int ntrt = summary->get(Trk::numberOfTRTHits);
@@ -190,7 +197,7 @@ namespace InDet
                 if(ncl==0 && ntrt>0) isTrt2 = true;
 	      }
 	    }//end of dynamic_cast check
-	  }//end of ITrackLink existance check
+	  }//end of ITrackLink existence check
 	  
 	}
 	
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnv.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnv.cxx
index d8ee613d58b617ab3ba1239dfeeaf2756aa785ee..35835c0c0580b74ebaf843271dceffed7c0ec79c 100644
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnv.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnv.cxx
@@ -40,6 +40,8 @@ namespace InDet
     : HLT::FexAlgo (name, pSvcLocator),
       m_particleCreatorTool("Trk::ParticleCreatorTool"),
       m_residualCalc("Trk::ResidualPullCalculator"),
+      m_idHelper{},
+      m_pixelId{},
       m_tracks(0),
       m_doIBLresidual(false),
       m_slice_name(""),
@@ -258,7 +260,7 @@ namespace InDet
     tpCont->setStore( &tpAuxCont );
 
 
-    if(m_tracks && runAlg) {
+    if(runAlg) { //m_tracks should not be checked here, it has been dereferenced already
       for(unsigned int idtr=0; idtr< m_tracks->size(); ++idtr) {
         const ElementLink<TrackCollection> trackLink(*m_tracks, idtr);
 
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnvMT.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnvMT.h
index 25819cb7c312ac48648d2ab3514b3510cf0659f3..d0db3be90d85f394eab0bf4a1cecf0b2a084464c 100644
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnvMT.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigParticleCreation/src/TrigTrackingxAODCnvMT.h
@@ -32,8 +32,8 @@
 #include "TrigInterfaces/FexAlgo.h"
 
 // STL
-#include <map>
 #include <string>
+#include <vector>
 
 class StoreGateSvc;
 class TH1F;
@@ -73,17 +73,17 @@ namespace InDet
   private:
     ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreatorTool;
     ToolHandle< Trk::IResidualPullCalculator > m_residualCalc;
-    const AtlasDetectorID* m_idHelper;
-    const PixelID* m_pixelId;
+    const AtlasDetectorID* m_idHelper{};
+    const PixelID* m_pixelId{};
 
-    bool                         m_doIBLresidual;
+    bool                         m_doIBLresidual{};
 
     //Monitoring
     std::string                  m_slice_name;
-    bool                         m_mon_doSliceSpecific;
-    int                          m_mon_counter;
-    int                          m_mon_prescale;
-    float                        m_mon_ptmin;
+    bool                         m_mon_doSliceSpecific{};
+    int                          m_mon_counter{};
+    int                          m_mon_prescale{};
+    float                        m_mon_ptmin{};
     //Common Variables
     std::vector<float>          m_dqm_d0;
     std::vector<float>          m_dqm_z0;
@@ -96,33 +96,33 @@ namespace InDet
     std::vector<float>          m_dqm_chi2dof;
     std::vector<float>          m_dqm_eta_roi;
     std::vector<float>          m_dqm_phi_roi;
-    double                      m_roiPhi, m_roiEta, m_roiZ;
-    double                      m_roiPhiWidth, m_roiEtaWidth, m_roiZ_Width;
-    int                         m_dqm_ntrkpart;
-    int                         m_dqm_ntrk;
-    int                         m_dqm_nvertex;
+    double                      m_roiPhi{}, m_roiEta{}, m_roiZ{};
+    double                      m_roiPhiWidth{}, m_roiEtaWidth{}, m_roiZ_Width{};
+    int                         m_dqm_ntrkpart{};
+    int                         m_dqm_ntrk{};
+    int                         m_dqm_nvertex{};
     //Bjet
-    float                       m_dqm_bj_sumpt;
+    float                       m_dqm_bj_sumpt{};
     //Muon
-    float                       m_dqm_mu_d0;
-    float                       m_dqm_mu_z0;
-    float                       m_dqm_mu_eta;
-    float                       m_dqm_mu_phi;
-    float                       m_dqm_mu_qOverP;
-    float                       m_dqm_mu_pt;
-    int                         m_dqm_mu_npix_hits;
-    int                         m_dqm_mu_nsct_hits;
-    int                         m_dqm_mu_ntrt_hits;
-    float                       m_dqm_mu_chi2dof;
-    float                       m_dqm_mu_eta_roi;
-    float                       m_dqm_mu_phi_roi;
+    float                       m_dqm_mu_d0{};
+    float                       m_dqm_mu_z0{};
+    float                       m_dqm_mu_eta{};
+    float                       m_dqm_mu_phi{};
+    float                       m_dqm_mu_qOverP{};
+    float                       m_dqm_mu_pt{};
+    int                         m_dqm_mu_npix_hits{};
+    int                         m_dqm_mu_nsct_hits{};
+    int                         m_dqm_mu_ntrt_hits{};
+    float                       m_dqm_mu_chi2dof{};
+    float                       m_dqm_mu_eta_roi{};
+    float                       m_dqm_mu_phi_roi{};
     //Tau
     std::vector<float>          m_dqm_ta_roidr;
-    float                       m_dqm_ta_L_pt;    //+++ pT of leading (L) pT track
-    float                       m_dqm_ta_frac_pt; //+++ fraction pT_L/pT_NL, NL= next-to-leading
-    float                       m_dqm_ta_sum_ch;  //+++ Charge sum all tracks
-    float                       m_dqm_ta_asy_ch;  //+++ Charge asymmetry all tracks
-    float                       m_dqm_ta_m;       //+++ Inv mass all tracks
+    float                       m_dqm_ta_L_pt{};    //+++ pT of leading (L) pT track
+    float                       m_dqm_ta_frac_pt{}; //+++ fraction pT_L/pT_NL, NL= next-to-leading
+    float                       m_dqm_ta_sum_ch{};  //+++ Charge sum all tracks
+    float                       m_dqm_ta_asy_ch{};  //+++ Charge asymmetry all tracks
+    float                       m_dqm_ta_m{};       //+++ Inv mass all tracks
 
     //
     std::vector<float>          m_dqm_ibl_z;         //IBL coordinate along z 
@@ -130,11 +130,7 @@ namespace InDet
     std::vector<float>          m_dqm_ibl_res_y;
     std::vector<float>          m_dqm_ibl_hit_expected_found;
 
-    //Timers
-    //TrigTimer* m_timerMemAlloc;
-    //TrigTimer* m_timerFeatureAttach;
-    //TrigTimer* m_timerTrackConversion;
-
+    
 
     SG::ReadHandleKey<TrigRoiDescriptorCollection> m_roiCollectionKey;
     SG::ReadHandleKey<TrackCollection> m_trackKey;
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association.h
index 9beda3c1d10a167d1bfc35d59938cd589d44a1fe..9c8e1a4f87e21b405df3923fa38ddde2064b38ec 100755
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association.h
@@ -11,6 +11,8 @@
 //!< Trigger specific stuff
 #include "TrigTimeAlgs/TrigTimerSvc.h"
 #include "TrigInterfaces/FexAlgo.h"
+#include <vector>
+#include <iosfwd>
 
 
 namespace InDet {
@@ -52,10 +54,10 @@ namespace InDet {
      
       std::vector<std::string>              m_tracksName    ; // Name of track collections       
       ToolHandle<Trk::IPRD_AssociationTool> m_assoTool      ; // Assotiation tool
-      int                                   m_outputlevel   ;
+      int                                   m_outputlevel{}   ;
       int                                   m_tracksPRD[10];
       int                                   m_tracksPRDn[10];
-      int                                   m_nprint;
+      int                                   m_nprint{};
       bool                                  m_istracks[10];
 
       ///////////////////////////////////////////////////////////////////
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/src/InDetTrigTrackPRD_Association.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/src/InDetTrigTrackPRD_Association.cxx
index 91f1dbd6dc8fd54c5271e2cdc09d39770aa04026..7e83fced9a7ec94a41152144fa191cfcd2aa8165 100755
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/src/InDetTrigTrackPRD_Association.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackPRD_Association/src/InDetTrigTrackPRD_Association.cxx
@@ -5,6 +5,7 @@
 #include "InDetTrigTrackPRD_Association/InDetTrigTrackPRD_Association.h"
 #include "TrkTrack/TrackCollection.h"
 #include "TrkTrack/Track.h"
+#include <ostream>
 
 
 ///////////////////////////////////////////////////////////////////
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h
index f6215fc43bb096f1ba3a9b3fed5551f5ae3daa14..ba7c14465d50d1fdd24cd632f70893978f76b691 100644
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/InDetTrigTrackResidualMonitor/TrigTrackResidualMonitor.h
@@ -12,14 +12,10 @@
  */
 ////////////////////////////////////////////////////////////////////////////
 
-#ifndef INDETTRIGTRACKSLIMMER_H
-#define INDETTRIGTRACKSLIMMER_H
+#ifndef TrigTrackResidualMonitor_H
+#define TrigTrackResidualMonitor_H
 
 #include "GaudiKernel/ToolHandle.h"
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "AthContainers/DataVector.h"
-#include "GaudiKernel/ITHistSvc.h"
-
 
 //typedef
 #include "TrkTrack/TrackCollection.h"
@@ -27,21 +23,6 @@
 
 //!< Trigger specific stuff
 #include "TrigInterfaces/FexAlgo.h"
-#include "TrkParameters/TrackParameters.h"
-#include "TrkToolInterfaces/IResidualPullCalculator.h"
-#include "TrkEventPrimitives/TrackStateDefs.h"
-#include "TrkEventPrimitives/FitQualityOnSurface.h"
-#include "TrkTrack/TrackStateOnSurface.h"
-#include "TrkValEvent/TrackStateData.h"
-#include "Identifier/IdentifierHash.h"
-#include "Identifier/Identifier.h"
-#include "AtlasDetDescr/AtlasDetectorID.h"
-#include "InDetPrepRawData/PixelClusterCollection.h"
-#include "InDetPrepRawData/PixelClusterContainer.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"  
-#include "InDetReadoutGeometry/PixelDetectorManager.h"  
-#include "InDetPrepRawData/SiClusterContainer.h"
-#include "InDetPrepRawData/SCT_ClusterCollection.h"
 #include "TrkEventPrimitives/ParticleHypothesis.h"
 
 
@@ -104,10 +85,10 @@ namespace InDet
 
     // tools    
     
-    const AtlasDetectorID*   m_idHelper;
+    const AtlasDetectorID*   m_idHelper{};
     
-    const PixelID*           m_idHelperPixel;
-    const SCT_ID*            m_idHelperSCT;
+    const PixelID*           m_idHelperPixel{};
+    const SCT_ID*            m_idHelperSCT{};
     
  
     
@@ -129,8 +110,8 @@ namespace InDet
     ToolHandle<Trk::IResidualPullCalculator> m_residualPullCalculator;
     
     
-    const InDetDD::SCT_DetectorManager    *m_SCT_Manager;
-    const InDetDD::PixelDetectorManager   *m_Pixel_Manager;
+    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 964b73a87de4aa035a0c837eaa69dac68f6e678e..ef74b8dd2da251fadfb9d74b65716269478aa575 100644
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/src/TrigTrackResidualMonitor.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/src/TrigTrackResidualMonitor.cxx
@@ -39,6 +39,9 @@
 #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"
 
 namespace InDet
 {
@@ -444,239 +447,243 @@ namespace InDet
       
       
       if (trkSum && npix >= 3 && nsct >= 6){
-	const Trk::Perigee *trkPerig = track->perigeeParameters();
-	double TrackPt = -1;
-	if(trkPerig){
-	  TrackPt = trkPerig->pT();
-	  m_TrackPt.push_back(TrackPt);
-	}
-	if (trkPerig->pT() > 5000){
-	  for( ; it!=itEnd; ++it ){
-	    tsos = *it;
-	    if ((*it)->type(Trk::TrackStateOnSurface::Measurement) ){
-	      const Trk::MeasurementBase* mesb=
-		dynamic_cast <const Trk::MeasurementBase*>((*it)->measurementOnTrack());
-	      const Trk::TrackParameters* trackPars = (*it)->trackParameters();
-	      
-	      const Trk::ResidualPull* resPullPixelBiased;// = 0;
-	      const Trk::ResidualPull* resPullSCTBiased; //= 0;
-	      
-	      const Trk::ResidualPull* resPullPixelUnbiased;// = 0;
-	      const Trk::ResidualPull* resPullSCTUnbiased; //= 0;
-	      
-	      int detType = 99;
-	      
-	      const Trk::MeasurementBase* mesh = (*it)->measurementOnTrack();
-	      const Trk::RIO_OnTrack* hitbec = dynamic_cast <const Trk::RIO_OnTrack*>(mesh);
-	      const Identifier & hitIdbec = hitbec->identify();
-	      
-	      
-	      if (m_idHelper->is_pixel(hitIdbec)){
-		detType = 0;
-	      }
-	      if (m_idHelper->is_sct(hitIdbec)) {
-		detType = 1;
-	      }
-	      
-	      if((mesb) != 0 && (trackPars) !=0){
-		const Trk::TrackParameters* TrackParams(0);
-		const Trk::TrackParameters* UnbiasedTrackParams(0);
-		const Trk::TrackParameters* PropagatedTrackParams(0);
-		const Trk::TrackParameters* OtherSideUnbiasedTrackParams(0);
-		const Trk::TrackParameters* PropagatedPixelUnbiasedTrackParams(0);
-		const Trk::TrackParameters* PixelUnbiasedTrackParams(0);
-		
-		const Trk::Surface* Surf = &(mesb->associatedSurface());
-		const Identifier id =  Surf->associatedDetectorElementIdentifier();
-		
-		if ( id.is_valid()) {
-		  int barrelECSCTUB = 99;
-		  int barrelECSCTB = 99;		  
-		  int barrelECPUB = 99;
-		  int barrelECPB = 99;
-		  if (detType == 1 ) {
-		    //	if (m_idHelperSCT->is_sct(id)) {  //there's no TrueUnbiased for non-SCT (pixel) hits)  
-		    
-		    // check if other module side was also hit and try to remove other hit as well
-		    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 Trk::RIO_OnTrack* hit(0);
-		    
-		    for (const Trk::TrackStateOnSurface* TempTsos : *(*itResTrk)->trackStateOnSurfaces()) {
-		      const Trk::RIO_OnTrack* hitOnTrack = dynamic_cast <const Trk::RIO_OnTrack*>(TempTsos->measurementOnTrack());
-		      //hit = hitOnTrack;
-		      if (hitOnTrack != 0) {
-			const Identifier& trkID = hitOnTrack->identify();
-			if (m_idHelperSCT->wafer_id(trkID) == OtherModuleSideID) {
-			  OtherModuleSideHit = TempTsos;
-			}
-		      }
-		    }
-		    
-		    if (OtherModuleSideHit) {
-		      if (OtherModuleSideHit->trackParameters()) {
-			OtherSideUnbiasedTrackParams = m_updator->removeFromState(*(OtherModuleSideHit->trackParameters()),
-										  OtherModuleSideHit->measurementOnTrack()->localParameters(),
-										  OtherModuleSideHit->measurementOnTrack()->localCovariance());
-			
-			if (OtherSideUnbiasedTrackParams) {
-			  const Trk::Surface* TempSurface = &(OtherModuleSideHit->measurementOnTrack()->associatedSurface());
-			  const Trk::MagneticFieldProperties* TempField = 0;
-			  if (TempSurface){
-			    if (TempSurface->associatedLayer()){
-			      if (TempSurface->associatedLayer()->enclosingTrackingVolume()){
-				TempField = dynamic_cast <const Trk::MagneticFieldProperties*>(TempSurface->associatedLayer()->enclosingTrackingVolume());
-			      }
-			    }
-			  } 
-			  
-			  PropagatedTrackParams = m_propagator->propagate(*OtherSideUnbiasedTrackParams,
-									  tsos->measurementOnTrack()->associatedSurface(),
-									  Trk::anyDirection, false,
-									  *TempField,
-									  m_ParticleHypothesis);
-			  
-			  delete OtherSideUnbiasedTrackParams;
-			  
-			  UnbiasedTrackParams = m_updator->removeFromState(*PropagatedTrackParams, 
-									   tsos->measurementOnTrack()->localParameters(), 
-									   tsos->measurementOnTrack()->localCovariance());
-			  
-			  delete PropagatedTrackParams;
-			  if (UnbiasedTrackParams) {
-			    TrackParams = UnbiasedTrackParams->clone(); 
-			  }
-			  
-			  resPullSCTUnbiased =   m_residualPullCalculator->residualPull(mesb,TrackParams,Trk::ResidualPull::Unbiased);
-			  if(barrelECSCTUB == 0) {  // Barrel region
-			    m_resSCTUnbiasedBarrel.push_back(resPullSCTUnbiased->residual()[Trk::loc1]);
-			    m_pullSCTUnbiasedBarrel.push_back(resPullSCTUnbiased->pull()[Trk::loc1]);
-			  }
-			  else if (barrelECSCTUB == 2){ // EndCap A
-			    m_resSCTUnbiasedEndCapA.push_back(resPullSCTUnbiased->residual()[Trk::loc1]);
-			    m_pullSCTUnbiasedEndCapA.push_back(resPullSCTUnbiased->pull()[Trk::loc1]);
-			  }
-			  else if (barrelECSCTUB == -2 ) { // EndCap A
-			    m_resSCTUnbiasedEndCapC.push_back(resPullSCTUnbiased->residual()[Trk::loc1]);
-			    m_pullSCTUnbiasedEndCapC.push_back(resPullSCTUnbiased->pull()[Trk::loc1]);
-			  }
-			  delete UnbiasedTrackParams;  	      
-			} 
-		      } 
-		    } 
-		  } // end of m_True Unbiased Loop
-		  
-		  
-		  else if ( detType == 0 ) {
-		    // else  if (m_idHelperPixel->is_pixel(id) ) {  
-		    const Identifier& idbECPUB = m_idHelperPixel->wafer_id(hitIdbec);
-		    barrelECPUB = m_idHelperPixel->barrel_ec(idbECPUB);
-		    const Trk::TrackStateOnSurface* PixelSideHit(0);
-		    PixelSideHit = *it;
-		    
-		    PropagatedPixelUnbiasedTrackParams = m_updator->removeFromState(*tsos->trackParameters(), 
-										    tsos->measurementOnTrack()->localParameters(), 
-										    tsos->measurementOnTrack()->localCovariance());
-		    //  const Identifier& PixelID = m_Pixel_Manager->getDetectorElement(id)->identify();
-		    const Trk::Surface* TempSurfacePixel = &(PixelSideHit->measurementOnTrack()->associatedSurface());
-		    const Trk::MagneticFieldProperties* TempFieldPixel = 0;
-		    
-		    if (TempSurfacePixel){
-		      if (TempSurfacePixel->associatedLayer()){
-			if (TempSurfacePixel->associatedLayer()->enclosingTrackingVolume()){
-			  TempFieldPixel = dynamic_cast <const Trk::MagneticFieldProperties*>(TempSurfacePixel->associatedLayer()->enclosingTrackingVolume());
-			}
-		      }
-		    } 
-		    
-		    PixelUnbiasedTrackParams = m_propagator->propagate(*PropagatedPixelUnbiasedTrackParams,
-								       tsos->measurementOnTrack()->associatedSurface(),
-								       Trk::anyDirection, false,
-								       *TempFieldPixel,
-								       m_ParticleHypothesis);
-		    delete PropagatedPixelUnbiasedTrackParams;		
-		    
-		    if (PixelUnbiasedTrackParams) {
-		      TrackParams = PixelUnbiasedTrackParams->clone(); 
-		    }
-		    
-		    resPullPixelUnbiased = m_residualPullCalculator->residualPull(mesb,TrackParams,Trk::ResidualPull::Unbiased);
-		    if (barrelECPUB == 0){
-		      m_resPixellocXUnbiasedBarrel.push_back(resPullPixelUnbiased->residual()[Trk::locX]);
-		      m_resPixellocYUnbiasedBarrel.push_back(resPullPixelUnbiased->residual()[Trk::locY]);
-		      m_pullPixellocXUnbiasedBarrel.push_back(resPullPixelUnbiased->pull()[Trk::locX]);
-		      m_pullPixellocYUnbiasedBarrel.push_back(resPullPixelUnbiased->pull()[Trk::locY]);
-		    }
-		    else if (barrelECPUB == 2 ){
-		      m_resPixellocXUnbiasedEndCapA.push_back(resPullPixelUnbiased->residual()[Trk::locX]);
-		      m_resPixellocYUnbiasedEndCapA.push_back(resPullPixelUnbiased->residual()[Trk::locY]);
-		      m_pullPixellocXUnbiasedEndCapA.push_back(resPullPixelUnbiased->pull()[Trk::locX]);
-		      m_pullPixellocYUnbiasedEndCapA.push_back(resPullPixelUnbiased->pull()[Trk::locY]);
-		    }
-		    else if (barrelECPUB == -2 ) {
-		      m_resPixellocXUnbiasedEndCapC.push_back(resPullPixelUnbiased->residual()[Trk::locX]);
-		      m_resPixellocYUnbiasedEndCapC.push_back(resPullPixelUnbiased->residual()[Trk::locY]);
-		      m_pullPixellocXUnbiasedEndCapC.push_back(resPullPixelUnbiased->pull()[Trk::locX]);
-		      m_pullPixellocYUnbiasedEndCapC.push_back(resPullPixelUnbiased->pull()[Trk::locY]);
-		    }
-		  }
-		  
-		  
-		  if ( detType == 0 ){
-		    // if (m_idHelperPixel->is_pixel(id) ) {
-		    const Identifier& idbECPB = m_idHelperPixel->wafer_id(hitIdbec);
-		    barrelECPB = m_idHelperPixel->barrel_ec(idbECPB);
-		    
-		    resPullPixelBiased = m_residualPullCalculator->residualPull(mesb,trackPars,Trk::ResidualPull::Biased);
-		    
-		    if(barrelECPB == 0){
-		      m_resPixellocXBiasedBarrel.push_back(resPullPixelBiased->residual()[Trk::locX]);
-		      m_resPixellocYBiasedBarrel.push_back(resPullPixelBiased->residual()[Trk::locY]);
-		      m_pullPixellocXBiasedBarrel.push_back(resPullPixelBiased->pull()[Trk::locX]);
-		      m_pullPixellocYBiasedBarrel.push_back(resPullPixelBiased->pull()[Trk::locY]);
-		    }
-		    else if (barrelECPB == 2 ){
-		      m_resPixellocXBiasedEndCapA.push_back(resPullPixelBiased->residual()[Trk::locX]);
-		      m_resPixellocYBiasedEndCapA.push_back(resPullPixelBiased->residual()[Trk::locY]);
-		      m_pullPixellocXBiasedEndCapA.push_back(resPullPixelBiased->pull()[Trk::locX]);
-		      m_pullPixellocYBiasedEndCapA.push_back(resPullPixelBiased->pull()[Trk::locY]);
-		    }
-		    else if (barrelECPB == -2 ) {
-		      m_resPixellocXBiasedEndCapC.push_back(resPullPixelBiased->residual()[Trk::locX]);
-		      m_resPixellocYBiasedEndCapC.push_back(resPullPixelBiased->residual()[Trk::locY]);
-		      m_pullPixellocXBiasedEndCapC.push_back(resPullPixelBiased->pull()[Trk::locX]);
-		      m_pullPixellocYBiasedEndCapC.push_back(resPullPixelBiased->pull()[Trk::locY]);
-		    }
-		    
-		    
-		  } else if ( detType == 1 ) {
-		    // } else if (m_idHelperSCT->is_sct(id)) {
-		    const Identifier& idbECSCTB = m_idHelperSCT->wafer_id(hitIdbec);
-		    barrelECSCTB = m_idHelperSCT->barrel_ec(idbECSCTB);
-		    
-		    resPullSCTBiased =   m_residualPullCalculator->residualPull(mesb,trackPars,Trk::ResidualPull::Biased);
-		    
-		    if(barrelECSCTB == 0){
-		      m_resSCTBiasedBarrel.push_back(resPullSCTBiased->residual()[Trk::locX]);
-		      m_pullSCTBiasedBarrel.push_back(resPullSCTBiased->pull()[Trk::locX]);
-		    }
-		    else if (barrelECSCTB == 2) {
-		      m_resSCTBiasedEndCapA.push_back(resPullSCTBiased->residual()[Trk::locX]);
-		      m_pullSCTBiasedEndCapA.push_back(resPullSCTBiased->pull()[Trk::locX]);
-		    }
-		    else if (barrelECSCTB == -2 ) {
-		      m_resSCTBiasedEndCapC.push_back(resPullSCTBiased->residual()[Trk::locX]);
-		      m_pullSCTBiasedEndCapC.push_back(resPullSCTBiased->pull()[Trk::locX]);
-		    }
-		  }
-		} // is_valid, for detector types
-	      } // if loop, track parameters ! = 0 or trackPars !=0
-	    } // If loop   Trk::measurement
-	  } // end of for loop over trackStateOnSurfaces
-	} // end of the if loop for trkPerig->pT()
-      }// end of trkSum and npix and nsct
+        const Trk::Perigee *trkPerig = track->perigeeParameters();
+        double TrackPt = -1;
+        if(trkPerig){
+          TrackPt = trkPerig->pT();
+          m_TrackPt.push_back(TrackPt);
+          if (trkPerig->pT() > 5000){
+            for( ; it!=itEnd; ++it ){
+              tsos = *it;
+              if ((*it)->type(Trk::TrackStateOnSurface::Measurement) ){
+                const Trk::MeasurementBase* mesb=dynamic_cast <const Trk::MeasurementBase*>((*it)->measurementOnTrack());
+                const Trk::TrackParameters* trackPars = (*it)->trackParameters();
+        
+                const Trk::ResidualPull* resPullPixelBiased;// = 0;
+                const Trk::ResidualPull* resPullSCTBiased; //= 0;
+        
+                const Trk::ResidualPull* resPullPixelUnbiased;// = 0;
+                const Trk::ResidualPull* resPullSCTUnbiased; //= 0;
+        
+                int detType = 99;
+        
+                const Trk::MeasurementBase* mesh = (*it)->measurementOnTrack();
+                const Trk::RIO_OnTrack* hitbec = dynamic_cast <const Trk::RIO_OnTrack*>(mesh);
+                if (not hitbec){
+                  msg() << MSG::WARNING << " Cast from MeasurementBase to RIO_OnTrack failed in line "<<__LINE__ << endmsg;
+                  continue;
+                }
+                const Identifier & hitIdbec = hitbec->identify();
+        
+        
+                if (m_idHelper->is_pixel(hitIdbec)){
+            detType = 0;
+                }
+                if (m_idHelper->is_sct(hitIdbec)) {
+            detType = 1;
+                }
+        
+                if((mesb) != 0 && (trackPars) !=0){
+            const Trk::TrackParameters* TrackParams(0);
+            const Trk::TrackParameters* UnbiasedTrackParams(0);
+            const Trk::TrackParameters* PropagatedTrackParams(0);
+            const Trk::TrackParameters* OtherSideUnbiasedTrackParams(0);
+            const Trk::TrackParameters* PropagatedPixelUnbiasedTrackParams(0);
+            const Trk::TrackParameters* PixelUnbiasedTrackParams(0);
+    
+            const Trk::Surface* Surf = &(mesb->associatedSurface());
+            const Identifier id =  Surf->associatedDetectorElementIdentifier();
+    
+            if ( id.is_valid()) {
+              int barrelECSCTUB = 99;
+              int barrelECSCTB = 99;		  
+              int barrelECPUB = 99;
+              int barrelECPB = 99;
+              if (detType == 1 ) {
+                //	if (m_idHelperSCT->is_sct(id)) {  //there's no TrueUnbiased for non-SCT (pixel) hits)  
+        
+                // check if other module side was also hit and try to remove other hit as well
+                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 Trk::RIO_OnTrack* hit(0);
+        
+                for (const Trk::TrackStateOnSurface* TempTsos : *(*itResTrk)->trackStateOnSurfaces()) {
+                  const Trk::RIO_OnTrack* hitOnTrack = dynamic_cast <const Trk::RIO_OnTrack*>(TempTsos->measurementOnTrack());
+                  //hit = hitOnTrack;
+                  if (hitOnTrack != 0) {
+              const Identifier& trkID = hitOnTrack->identify();
+              if (m_idHelperSCT->wafer_id(trkID) == OtherModuleSideID) {
+                OtherModuleSideHit = TempTsos;
+              }
+                  }
+                }
+        
+                if (OtherModuleSideHit) {
+                  if (OtherModuleSideHit->trackParameters()) {
+              OtherSideUnbiasedTrackParams = m_updator->removeFromState(*(OtherModuleSideHit->trackParameters()),
+                              OtherModuleSideHit->measurementOnTrack()->localParameters(),
+                              OtherModuleSideHit->measurementOnTrack()->localCovariance());
+      
+              if (OtherSideUnbiasedTrackParams) {
+                const Trk::Surface* TempSurface = &(OtherModuleSideHit->measurementOnTrack()->associatedSurface());
+                const Trk::MagneticFieldProperties* TempField = 0;
+                if (TempSurface){
+                  if (TempSurface->associatedLayer()){
+                    if (TempSurface->associatedLayer()->enclosingTrackingVolume()){
+                TempField = dynamic_cast <const Trk::MagneticFieldProperties*>(TempSurface->associatedLayer()->enclosingTrackingVolume());
+                    }
+                  }
+                } 
+        
+                PropagatedTrackParams = m_propagator->propagate(*OtherSideUnbiasedTrackParams,
+                            tsos->measurementOnTrack()->associatedSurface(),
+                            Trk::anyDirection, false,
+                            *TempField,
+                            m_ParticleHypothesis);
+        
+                delete OtherSideUnbiasedTrackParams;
+        
+                UnbiasedTrackParams = m_updator->removeFromState(*PropagatedTrackParams, 
+                             tsos->measurementOnTrack()->localParameters(), 
+                             tsos->measurementOnTrack()->localCovariance());
+        
+                delete PropagatedTrackParams;
+                if (UnbiasedTrackParams) {
+                  TrackParams = UnbiasedTrackParams->clone(); 
+                }
+        
+                resPullSCTUnbiased =   m_residualPullCalculator->residualPull(mesb,TrackParams,Trk::ResidualPull::Unbiased);
+                if(barrelECSCTUB == 0) {  // Barrel region
+                  m_resSCTUnbiasedBarrel.push_back(resPullSCTUnbiased->residual()[Trk::loc1]);
+                  m_pullSCTUnbiasedBarrel.push_back(resPullSCTUnbiased->pull()[Trk::loc1]);
+                }
+                else if (barrelECSCTUB == 2){ // EndCap A
+                  m_resSCTUnbiasedEndCapA.push_back(resPullSCTUnbiased->residual()[Trk::loc1]);
+                  m_pullSCTUnbiasedEndCapA.push_back(resPullSCTUnbiased->pull()[Trk::loc1]);
+                }
+                else if (barrelECSCTUB == -2 ) { // EndCap A
+                  m_resSCTUnbiasedEndCapC.push_back(resPullSCTUnbiased->residual()[Trk::loc1]);
+                  m_pullSCTUnbiasedEndCapC.push_back(resPullSCTUnbiased->pull()[Trk::loc1]);
+                }
+                delete UnbiasedTrackParams;  	      
+              } 
+                  } 
+                } 
+              } // end of m_True Unbiased Loop
+      
+      
+              else if ( detType == 0 ) {
+                // else  if (m_idHelperPixel->is_pixel(id) ) {  
+                const Identifier& idbECPUB = m_idHelperPixel->wafer_id(hitIdbec);
+                barrelECPUB = m_idHelperPixel->barrel_ec(idbECPUB);
+                const Trk::TrackStateOnSurface* PixelSideHit(0);
+                PixelSideHit = *it;
+        
+                PropagatedPixelUnbiasedTrackParams = m_updator->removeFromState(*tsos->trackParameters(), 
+                                tsos->measurementOnTrack()->localParameters(), 
+                                tsos->measurementOnTrack()->localCovariance());
+                //  const Identifier& PixelID = m_Pixel_Manager->getDetectorElement(id)->identify();
+                const Trk::Surface* TempSurfacePixel = &(PixelSideHit->measurementOnTrack()->associatedSurface());
+                const Trk::MagneticFieldProperties* TempFieldPixel = 0;
+        
+                if (TempSurfacePixel){
+                  if (TempSurfacePixel->associatedLayer()){
+              if (TempSurfacePixel->associatedLayer()->enclosingTrackingVolume()){
+                TempFieldPixel = dynamic_cast <const Trk::MagneticFieldProperties*>(TempSurfacePixel->associatedLayer()->enclosingTrackingVolume());
+              }
+                  }
+                } 
+        
+                PixelUnbiasedTrackParams = m_propagator->propagate(*PropagatedPixelUnbiasedTrackParams,
+                               tsos->measurementOnTrack()->associatedSurface(),
+                               Trk::anyDirection, false,
+                               *TempFieldPixel,
+                               m_ParticleHypothesis);
+                delete PropagatedPixelUnbiasedTrackParams;		
+        
+                if (PixelUnbiasedTrackParams) {
+                  TrackParams = PixelUnbiasedTrackParams->clone(); 
+                }
+        
+                resPullPixelUnbiased = m_residualPullCalculator->residualPull(mesb,TrackParams,Trk::ResidualPull::Unbiased);
+                if (barrelECPUB == 0){
+                  m_resPixellocXUnbiasedBarrel.push_back(resPullPixelUnbiased->residual()[Trk::locX]);
+                  m_resPixellocYUnbiasedBarrel.push_back(resPullPixelUnbiased->residual()[Trk::locY]);
+                  m_pullPixellocXUnbiasedBarrel.push_back(resPullPixelUnbiased->pull()[Trk::locX]);
+                  m_pullPixellocYUnbiasedBarrel.push_back(resPullPixelUnbiased->pull()[Trk::locY]);
+                }
+                else if (barrelECPUB == 2 ){
+                  m_resPixellocXUnbiasedEndCapA.push_back(resPullPixelUnbiased->residual()[Trk::locX]);
+                  m_resPixellocYUnbiasedEndCapA.push_back(resPullPixelUnbiased->residual()[Trk::locY]);
+                  m_pullPixellocXUnbiasedEndCapA.push_back(resPullPixelUnbiased->pull()[Trk::locX]);
+                  m_pullPixellocYUnbiasedEndCapA.push_back(resPullPixelUnbiased->pull()[Trk::locY]);
+                }
+                else if (barrelECPUB == -2 ) {
+                  m_resPixellocXUnbiasedEndCapC.push_back(resPullPixelUnbiased->residual()[Trk::locX]);
+                  m_resPixellocYUnbiasedEndCapC.push_back(resPullPixelUnbiased->residual()[Trk::locY]);
+                  m_pullPixellocXUnbiasedEndCapC.push_back(resPullPixelUnbiased->pull()[Trk::locX]);
+                  m_pullPixellocYUnbiasedEndCapC.push_back(resPullPixelUnbiased->pull()[Trk::locY]);
+                }
+              }
+      
+      
+              if ( detType == 0 ){
+                // if (m_idHelperPixel->is_pixel(id) ) {
+                const Identifier& idbECPB = m_idHelperPixel->wafer_id(hitIdbec);
+                barrelECPB = m_idHelperPixel->barrel_ec(idbECPB);
+        
+                resPullPixelBiased = m_residualPullCalculator->residualPull(mesb,trackPars,Trk::ResidualPull::Biased);
+        
+                if(barrelECPB == 0){
+                  m_resPixellocXBiasedBarrel.push_back(resPullPixelBiased->residual()[Trk::locX]);
+                  m_resPixellocYBiasedBarrel.push_back(resPullPixelBiased->residual()[Trk::locY]);
+                  m_pullPixellocXBiasedBarrel.push_back(resPullPixelBiased->pull()[Trk::locX]);
+                  m_pullPixellocYBiasedBarrel.push_back(resPullPixelBiased->pull()[Trk::locY]);
+                }
+                else if (barrelECPB == 2 ){
+                  m_resPixellocXBiasedEndCapA.push_back(resPullPixelBiased->residual()[Trk::locX]);
+                  m_resPixellocYBiasedEndCapA.push_back(resPullPixelBiased->residual()[Trk::locY]);
+                  m_pullPixellocXBiasedEndCapA.push_back(resPullPixelBiased->pull()[Trk::locX]);
+                  m_pullPixellocYBiasedEndCapA.push_back(resPullPixelBiased->pull()[Trk::locY]);
+                }
+                else if (barrelECPB == -2 ) {
+                  m_resPixellocXBiasedEndCapC.push_back(resPullPixelBiased->residual()[Trk::locX]);
+                  m_resPixellocYBiasedEndCapC.push_back(resPullPixelBiased->residual()[Trk::locY]);
+                  m_pullPixellocXBiasedEndCapC.push_back(resPullPixelBiased->pull()[Trk::locX]);
+                  m_pullPixellocYBiasedEndCapC.push_back(resPullPixelBiased->pull()[Trk::locY]);
+                }
+        
+        
+              } else if ( detType == 1 ) {
+                // } else if (m_idHelperSCT->is_sct(id)) {
+                const Identifier& idbECSCTB = m_idHelperSCT->wafer_id(hitIdbec);
+                barrelECSCTB = m_idHelperSCT->barrel_ec(idbECSCTB);
+        
+                resPullSCTBiased =   m_residualPullCalculator->residualPull(mesb,trackPars,Trk::ResidualPull::Biased);
+        
+                if(barrelECSCTB == 0){
+                  m_resSCTBiasedBarrel.push_back(resPullSCTBiased->residual()[Trk::locX]);
+                  m_pullSCTBiasedBarrel.push_back(resPullSCTBiased->pull()[Trk::locX]);
+                }
+                else if (barrelECSCTB == 2) {
+                  m_resSCTBiasedEndCapA.push_back(resPullSCTBiased->residual()[Trk::locX]);
+                  m_pullSCTBiasedEndCapA.push_back(resPullSCTBiased->pull()[Trk::locX]);
+                }
+                else if (barrelECSCTB == -2 ) {
+                  m_resSCTBiasedEndCapC.push_back(resPullSCTBiased->residual()[Trk::locX]);
+                  m_pullSCTBiasedEndCapC.push_back(resPullSCTBiased->pull()[Trk::locX]);
+                }
+              }
+            } // is_valid, for detector types
+                } // if loop, track parameters ! = 0 or trackPars !=0
+              } // If loop   Trk::measurement
+            } // end of for loop over trackStateOnSurfaces
+    
+          } 
+        }// end of the 'if trkPerig'
+      }//end of 'if trkSum and npix>=3 and nsct>=6
     } //  end of loop over all tracks
     
     
diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/src/TrigVxSecondary.cxx b/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/src/TrigVxSecondary.cxx
index e65f6ecc5a672e6dcbf34d30a0c572e8e47c11b4..2b3573b554c5fb548cb371f0f7057754b688a84b 100644
--- a/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/src/TrigVxSecondary.cxx
+++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/src/TrigVxSecondary.cxx
@@ -7,7 +7,6 @@
 #include "InDetRecToolInterfaces/ISecVertexInJetFinder.h"
 #include "TrkTrack/TrackCollection.h"
 #include "TrkParameters/TrackParameters.h"
-//#include "VxVertex/VxContainer.h"
 #include "GeoPrimitives/GeoPrimitives.h"
 #include "InDetBeamSpotService/IBeamCondSvc.h"
 #include "TrigInDetEvent/TrigVertexCollection.h"
@@ -15,7 +14,6 @@
 #include "IRegionSelector/IRegSelSvc.h"
 #include <sstream>
 #include <TLorentzVector.h>
-//#include "xAODTracking/Vertex.h"
 #include "xAODBase/IParticle.h"
 #include "xAODTracking/TrackParticleContainer.h"
 
@@ -378,84 +376,61 @@ namespace InDet {
 
     m_secVertexInfoContainer = new Trk::VxSecVertexInfoContainer;
     m_secVertexInfo = 0;
-
     for(; itSecVtxFinders != itSecVtxFindersEnd; ++itSecVtxFinders) {
-
       std::string vxAuthor = (*itSecVtxFinders).name();
-
       if(*itSecVtxFinders != 0) {
-	if(outputLevel <= MSG::DEBUG)
-	  msg() << MSG::DEBUG << "Running " << vxAuthor << endmsg;
-
-	xAOD::Vertex* vertex = new xAOD::Vertex();
-	vertex->makePrivateStore();
-	vertex->setPosition(bestFitPriVertex->position());
-	vertex->setCovariancePosition(bestFitPriVertex->covariancePosition());
-	vertex->setFitQuality(bestFitPriVertex->chiSquared(), bestFitPriVertex->numberDoF () ); 
-
-	std::vector<const xAOD::IParticle*> inputIParticles;
-	
-	xAOD::TrackParticleContainer::const_iterator trackIt = trackTES->begin();
-	xAOD::TrackParticleContainer::const_iterator lastTrackIt = trackTES->end();	
-	
-	for(; trackIt != lastTrackIt; ++trackIt)
-	  inputIParticles.push_back(*trackIt);
-	
-	m_secVertexInfo = (*itSecVtxFinders)->findSecVertex(*vertex, *m_jetDirection, inputIParticles);
-
-	delete vertex;
-
-	if(m_secVertexInfo == 0) {
-	  if(outputLevel <= MSG::DEBUG)
-	    msg() << MSG::DEBUG << vxAuthor << " returned null pointer (no vertex)" << endmsg;
-	  continue;
-	}
-	else {
-	  if (m_secVertexInfo->vertices().size()) {
-	    m_secVertexInfo->vertices().front()->setVertexType((xAOD::VxType::VertexType)2);
-	  }
-	  m_secVertexInfoContainer->push_back(const_cast<Trk::VxSecVertexInfo*>(m_secVertexInfo));
-	  m_secVertexInfoContainer->back()->getSVOwnership(true);
-	  m_nVxSecVertexInfo++;
-	}
-
-	if(outputLevel <= MSG::DEBUG) {
-	  msg() << MSG::DEBUG << vxAuthor << " returned " << m_secVertexInfo->vertices().size() << " vertices" << endmsg;
-	}
-    
-	//* for monitoring *//
-
-	const Trk::VxSecVKalVertexInfo* secVKalVertexInfo = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(m_secVertexInfo);
-	const std::vector<xAOD::Vertex_v1*> & myVertices = secVKalVertexInfo->vertices();
-	if(myVertices.size()>0) {
-	  m_secVtx_twoTrkTot = secVKalVertexInfo->n2trackvertices();
-	  m_secVtx_mass      = secVKalVertexInfo->mass();
-	  m_secVtx_energy    = secVKalVertexInfo->energyFraction();
-
-	  std::vector<xAOD::Vertex_v1*>::const_iterator verticesIt=myVertices.begin();
-	  std::vector<xAOD::Vertex_v1*>::const_iterator verticesEnd=myVertices.end();
-
-	  for( ; verticesIt!=verticesEnd ; ++verticesIt) {
-
-	    if(!(*verticesIt)) {
-	      msg() << MSG::DEBUG << "Secondary vertex from InDetVKalVxInJet has zero pointer. Skipping this vtx.." << endmsg;
-	      continue;
-	    }
-	
-	    msg() << MSG::DEBUG << "xAOD::Vertex at ("
-		  << (*verticesIt)->position().x() << ","
-		  << (*verticesIt)->position().y() << ","
-		  << (*verticesIt)->position().z() << endmsg;
-
-	    std::vector<Trk::VxTrackAtVertex> tracksAtVertex = (*verticesIt)->vxTrackAtVertex();
-	  
-	    if(tracksAtVertex.size())
-	      m_secVtx_numTrkSV = tracksAtVertex.size();
-	  }
-	}
-
-	//std::vector<xAOD::Vertex*>::const_iterator vertexIt     = m_secVertexInfo->vertices().begin();
-	//std::vector<xAOD::Vertex*>::const_iterator lastVertexIt = m_secVertexInfo->vertices().end();
+        if(outputLevel <= MSG::DEBUG) msg() << MSG::DEBUG << "Running " << vxAuthor << endmsg;
+        xAOD::Vertex* vertex = new xAOD::Vertex();
+        vertex->makePrivateStore();
+        vertex->setPosition(bestFitPriVertex->position());
+        vertex->setCovariancePosition(bestFitPriVertex->covariancePosition());
+        vertex->setFitQuality(bestFitPriVertex->chiSquared(), bestFitPriVertex->numberDoF () ); 
+        std::vector<const xAOD::IParticle*> inputIParticles;
+        xAOD::TrackParticleContainer::const_iterator trackIt = trackTES->begin();
+        xAOD::TrackParticleContainer::const_iterator lastTrackIt = trackTES->end();	
+        for(; trackIt != lastTrackIt; ++trackIt) inputIParticles.push_back(*trackIt);
+        m_secVertexInfo = (*itSecVtxFinders)->findSecVertex(*vertex, *m_jetDirection, inputIParticles);
+        delete vertex;
+        if(m_secVertexInfo == 0) {
+          if(outputLevel <= MSG::DEBUG) msg() << MSG::DEBUG << vxAuthor << " returned null pointer (no vertex)" << endmsg;
+          continue;
+        } else {
+          if (m_secVertexInfo->vertices().size()) {
+            m_secVertexInfo->vertices().front()->setVertexType((xAOD::VxType::VertexType)2);
+          }
+          m_secVertexInfoContainer->push_back(const_cast<Trk::VxSecVertexInfo*>(m_secVertexInfo));
+          m_secVertexInfoContainer->back()->getSVOwnership(true);
+          m_nVxSecVertexInfo++;
+        }
+        if(outputLevel <= MSG::DEBUG) {
+          msg() << MSG::DEBUG << vxAuthor << " returned " << m_secVertexInfo->vertices().size() << " vertices" << endmsg;
+        }
+        //
+        //* for monitoring *//
+        const Trk::VxSecVKalVertexInfo* secVKalVertexInfo = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(m_secVertexInfo);
+        if (secVKalVertexInfo){
+          const std::vector<xAOD::Vertex_v1*> & myVertices = secVKalVertexInfo->vertices();
+          if(not myVertices.empty()) {
+            m_secVtx_twoTrkTot = secVKalVertexInfo->n2trackvertices();
+            m_secVtx_mass      = secVKalVertexInfo->mass();
+            m_secVtx_energy    = secVKalVertexInfo->energyFraction();
+            std::vector<xAOD::Vertex_v1*>::const_iterator verticesIt=myVertices.begin();
+            std::vector<xAOD::Vertex_v1*>::const_iterator verticesEnd=myVertices.end();
+            for( ; verticesIt!=verticesEnd ; ++verticesIt) {
+              if(!(*verticesIt)) {
+                msg() << MSG::DEBUG << "Secondary vertex from InDetVKalVxInJet has zero pointer. Skipping this vtx.." << endmsg;
+                continue;
+              }
+              msg() << MSG::DEBUG << "xAOD::Vertex at ("
+              << (*verticesIt)->position().x() << ","
+              << (*verticesIt)->position().y() << ","
+              << (*verticesIt)->position().z() << endmsg;
+              std::vector<Trk::VxTrackAtVertex> tracksAtVertex = (*verticesIt)->vxTrackAtVertex();
+              if(not tracksAtVertex.empty())
+                m_secVtx_numTrkSV = tracksAtVertex.size();
+            }
+          }
+        }
       }
     }
     
diff --git a/LArCalorimeter/LArCellRec/src/LArCellHVCorr.h b/LArCalorimeter/LArCellRec/src/LArCellHVCorr.h
index 658c1d5e67155ec8d49ba9d6b72bcbcf489b735c..427f9453c35ff3bad0188c1447c33670dd5b7dc2 100644
--- a/LArCalorimeter/LArCellRec/src/LArCellHVCorr.h
+++ b/LArCalorimeter/LArCellRec/src/LArCellHVCorr.h
@@ -45,9 +45,9 @@ public:
   //Implements the ILArCellHVCorrTool interface
   virtual float getCorrection(const Identifier id) override;
 
-  StatusCode LoadCalibration(IOVSVC_CALLBACK_ARGS);
+  virtual StatusCode LoadCalibration(IOVSVC_CALLBACK_ARGS) override;
 
-  bool updateOnLastCallback() {return m_updateOnLastCallback;}
+  virtual bool updateOnLastCallback() override {return m_updateOnLastCallback;}
 
  private: 
   float getCorrection(const Identifier id) const;
diff --git a/LArCalorimeter/LArROD/python/LArRawChannelGetter.py b/LArCalorimeter/LArROD/python/LArRawChannelGetter.py
index baeeb41647cda8441a85cb49df9602e86b507b7c..f268e0f807ccd79cf08fa32a1871daf424d69f7b 100755
--- a/LArCalorimeter/LArROD/python/LArRawChannelGetter.py
+++ b/LArCalorimeter/LArROD/python/LArRawChannelGetter.py
@@ -130,7 +130,7 @@ class LArRawChannelGetter ( Configured )  :
                 # main method from database
                 from LArROD.LArRODConf import LArRawChannelBuilderPedestalDataBase
                 theLArRawChannelBuilderPedestalDataBase=LArRawChannelBuilderPedestalDataBase()
-                theLArRawChannelBuilderPedestalDataBase.LArPedestalKey = "Pedestal"
+                theLArRawChannelBuilderPedestalDataBase.LArPedestalKey = "LArPedestal"
                 theLArRawChannelBuilder.PedestalTools  = [theLArRawChannelBuilderPedestalDataBase]
                 theLArRawChannelBuilder += theLArRawChannelBuilderPedestalDataBase 
                 
diff --git a/LArCalorimeter/LArRawUtils/LArRawUtils/LArRoI_Map.h b/LArCalorimeter/LArRawUtils/LArRawUtils/LArRoI_Map.h
index a4cd397a030d20454b81dff96fbc6b2af8c148b5..7598fd2b01270d2fbc254f67242e660f0cbd8c69 100755
--- a/LArCalorimeter/LArRawUtils/LArRawUtils/LArRoI_Map.h
+++ b/LArCalorimeter/LArRawUtils/LArRawUtils/LArRoI_Map.h
@@ -20,8 +20,9 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include <map> 
 
-class LArCablingService; 
-class CaloTriggerTowerService;
+#include "LArCabling/LArCablingService.h" 
+#include "CaloTriggerTool/CaloTriggerTowerService.h" 
+
 class LArOnlineID ; 
 class LArEM_ID ; 
 class LArHEC_ID ; 
@@ -109,8 +110,9 @@ class LArRoI_Map : public AthAlgTool,
   ONLMAP m_onlmap; 
   ROIMAP m_roimap; 
  
-  LArCablingService* m_cablingSvc; 
-  CaloTriggerTowerService* m_ttSvc; 
+
+  ToolHandle<LArCablingService> m_cablingSvc{ this, "CablingSvc", "LArCablingService", "LAr cabling tool"};
+  ToolHandle<CaloTriggerTowerService> m_ttSvc{ this, "TriggerTowerSvc", "CaloTriggerTowerService", "Towers tool"};   
 
   bool m_print; 
   bool m_loadAtBegin;
@@ -121,7 +123,6 @@ class LArRoI_Map : public AthAlgTool,
   const LArEM_ID*  m_em_id   ; 
   const LArHEC_ID* m_hec_id  ; 
   const LArFCAL_ID* m_fcal_id; 
-
 };
 
   
diff --git a/LArCalorimeter/LArRawUtils/src/LArRoI_Map.cxx b/LArCalorimeter/LArRawUtils/src/LArRoI_Map.cxx
index 581755f150e51574fb5f5aff62cb4d448cb8891e..9e596263fdefd9f1952104c456a0aad611cdc022 100755
--- a/LArCalorimeter/LArRawUtils/src/LArRoI_Map.cxx
+++ b/LArCalorimeter/LArRawUtils/src/LArRoI_Map.cxx
@@ -14,9 +14,6 @@
 #include "CaloIdentifier/CaloLVL1_ID.h" 
 #include "LArIdentifier/LArOnlineID.h" 
 
-#include "LArCabling/LArCablingService.h" 
-#include "CaloTriggerTool/CaloTriggerTowerService.h" 
-
 #include "StoreGate/StoreGateSvc.h"
 #include "GaudiKernel/IIncidentSvc.h"
 
@@ -62,8 +59,9 @@ StatusCode LArRoI_Map::initialize()
   ATH_CHECK( detStore()->retrieve(m_em_id) );
   ATH_CHECK( detStore()->retrieve(m_hec_id) );
   ATH_CHECK( detStore()->retrieve(m_fcal_id) );
-  ATH_CHECK( toolSvc()->retrieveTool("LArCablingService",m_cablingSvc) );
-  ATH_CHECK( toolSvc()->retrieveTool("CaloTriggerTowerService",m_ttSvc) );
+
+  ATH_CHECK( m_cablingSvc.retrieve() );
+  ATH_CHECK( m_ttSvc.retrieve() ); 
 
   ATH_CHECK( detStore()->regFcn(&LArCablingService::iovCallBack,&(*m_cablingSvc),
                                 &LArRoI_Map::iovCallBack,
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfig.py b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfig.py
index 2b1b6b83a20596024eb8cc62f12f09a0e35742d6..afc22f0ba9929c0979f56156071647b510a0d7ca 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfig.py
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfig.py
@@ -12,6 +12,7 @@ def getMdtRdoToMdtDigit(name="MdtRdoToMdtDigitOverlay", **kwargs):
     kwargs.setdefault("EvtStore", overlayFlags.dataStore())
     return CfgMgr.MuonRdoToMuonDigitTool(name, **kwargs)
 
+
 def getRpcRdoToRpcDigit(name="RpcRdoToRpcDigitOverlay", **kwargs):
     kwargs.setdefault("DecodeMdtRDO", False)
     kwargs.setdefault("DecodeRpcRDO", True)
@@ -22,6 +23,7 @@ def getRpcRdoToRpcDigit(name="RpcRdoToRpcDigitOverlay", **kwargs):
     kwargs.setdefault("EvtStore", overlayFlags.dataStore())
     return CfgMgr.MuonRdoToMuonDigitTool(name, **kwargs)
 
+
 def getTgcRdoToTgcDigit(name="TgcRdoToTgcDigitOverlay", **kwargs):
     kwargs.setdefault("DecodeMdtRDO", False)
     kwargs.setdefault("DecodeRpcRDO", False)
@@ -31,3 +33,45 @@ def getTgcRdoToTgcDigit(name="TgcRdoToTgcDigitOverlay", **kwargs):
     from OverlayCommonAlgs.OverlayFlags import overlayFlags
     kwargs.setdefault("EvtStore", overlayFlags.dataStore())
     return CfgMgr.MuonRdoToMuonDigitTool(name, **kwargs)
+
+
+def getSigMdtDigitToMdtRDO(name="SigMdtDigitToMdtRDO", **kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.evtStore()+"+MDT_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.evtStore()+"+MDTCSM")
+    return CfgMgr.MdtDigitToMdtRDO(name, **kwargs)
+
+
+def getSigRpcDigitToRpcRDO(name="SigRpcDigitToRpcRDO", **kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.evtStore()+"+RPC_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.evtStore()+"+RPCPAD")
+    return CfgMgr.RpcDigitToRpcRDO(name, **kwargs)
+
+
+def getSigTgcDigitToTgcRDO(name="SigTgcDigitToTgcRDO", **kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.evtStore()+"+TGC_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.evtStore()+"+TGCRDO")
+    return CfgMgr.TgcDigitToTgcRDO(name, **kwargs)
+
+
+def getOverlayMdtDigitToMdtRDO(name="OverlayMdtDigitToMdtRDO", **kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.outputStore()+"+MDT_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.outputStore()+"+MDTCSM")
+    return CfgMgr.MdtDigitToMdtRDO(name, **kwargs)
+
+
+def getOverlayRpcDigitToRpcRDO(name="OverlayRpcDigitToRpcRDO", **kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.outputStore()+"+RPC_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.outputStore()+"+RPCPAD")
+    return CfgMgr.RpcDigitToRpcRDO(name, **kwargs)
+
+
+def getOverlayTgcDigitToTgcRDO(name="OverlayTgcDigitToTgcRDO", **kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.outputStore()+"+TGC_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.outputStore()+"+TGCRDO")
+    return CfgMgr.TgcDigitToTgcRDO(name, **kwargs)
diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfigDb.py b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfigDb.py
index afb48cb4bb26787e799833b963091e5a5b15ee22..671cef55eadf61e2218790a217ede48c941f7c32 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfigDb.py
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/python/MuonByteStreamCnvTestConfigDb.py
@@ -1,8 +1,14 @@
 # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 
-from AthenaCommon.CfgGetter import addTool
+from AthenaCommon.CfgGetter import addTool, addAlgorithm
 
 addTool("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getMdtRdoToMdtDigit", "MdtRdoToMdtDigitOverlay")
 addTool("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getRpcRdoToRpcDigit", "RpcRdoToRpcDigitOverlay")
 addTool("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getTgcRdoToTgcDigit", "TgcRdoToTgcDigitOverlay")
 
+addAlgorithm("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getSigMdtDigitToMdtRDO" , "SigMdtDigitToMdtRDO")
+addAlgorithm("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getSigRpcDigitToRpcRDO" , "SigRpcDigitToRpcRDO")
+addAlgorithm("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getSigTgcDigitToTgcRDO" , "SigTgcDigitToTgcRDO")
+addAlgorithm("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getOverlayMdtDigitToMdtRDO" , "OverlayMdtDigitToMdtRDO")
+addAlgorithm("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getOverlayRpcDigitToRpcRDO" , "OverlayRpcDigitToRpcRDO")
+addAlgorithm("MuonByteStreamCnvTest.MuonByteStreamCnvTestConfig.getOverlayTgcDigitToTgcRDO" , "OverlayTgcDigitToTgcRDO")
diff --git a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvConfig.py b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvConfig.py
index cbe83911a1fca50c9b4e0600dbd0d377dd3d6fe6..7da4b5df2d0bed3bcee9bce52e9fc96d41354314 100644
--- a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvConfig.py
+++ b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvConfig.py
@@ -1,31 +1,46 @@
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 
 
-def CscDigitToCscRDOTool(name,**kwargs):
-    
-    from Digitization.DigitizationFlags import digitizationFlags
-    
+def BaseCscDigitToCscRDOTool(name,**kwargs):
     kwargs.setdefault("NumSamples", 4)
     kwargs.setdefault("Latency", 0)
+    from Digitization.DigitizationFlags import digitizationFlags
     kwargs.setdefault("addNoise", digitizationFlags.doMuonNoise())
     kwargs.setdefault("RndmSvc",  digitizationFlags.rndmSvc.get_Value())
     kwargs.setdefault("cscCalibTool", "CscCalibTool")
+    from AthenaCommon import CfgMgr
+    return CfgMgr.CscDigitToCscRDOTool(name,**kwargs)
 
+def CscDigitToCscRDOTool(name,**kwargs):
+    from Digitization.DigitizationFlags import digitizationFlags
     digitizationFlags.rndmSeedList.addSeed("CscDigitToCscRDOTool", 49261510, 105132394 )
-    
-    from AthenaCommon.GlobalFlags import globalflags
-    if globalflags.isOverlay():
-        from OverlayCommonAlgs.OverlayFlags import overlayFlags
-        kwargs.setdefault("InputObjectName",overlayFlags.dataStore()+"+CSC_DIGITS")
-        kwargs.setdefault("OutputObjectName",overlayFlags.dataStore()+"+CSCRDO")
-        kwargs.setdefault("EvtStore", overlayFlags.dataStore())
+    return BaseCscDigitToCscRDOTool(name,**kwargs)
 
-    from AthenaCommon import CfgMgr
-    return CfgMgr.CscDigitToCscRDOTool(name,**kwargs)
+def CscDigitToCscRDOTool2(name,**kwargs):
+    # consider a separate random number stream
+    #from Digitization.DigitizationFlags import digitizationFlags
+    #digitizationFlags.rndmSeedList.addSeed("CscDigitToCscRDOTool2", 49261510, 105132394 )
+    #kwargs.setdefault("RndmEngine","CscDigitToCscRDOTool2")
+    kwargs.setdefault("NumSamples", 2)
+    kwargs.setdefault("addNoise", False)
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.evtStore()+"+CSC_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.evtStore()+"+CSCRDO")
+    return BaseCscDigitToCscRDOTool(name,**kwargs)
 
-def CscDigitToCscRDO(name,**kwargs):
+def CscDigitToCscRDOTool4(name,**kwargs):
+    # consider a separate random number stream
+    #from Digitization.DigitizationFlags import digitizationFlags
+    #digitizationFlags.rndmSeedList.addSeed("CscDigitToCscRDOTool4", 49261510, 105132394 )
+    #kwargs.setdefault("RndmEngine","CscDigitToCscRDOTool4")
+    kwargs.setdefault("NumSamples", 4)
+    kwargs.setdefault("addNoise", False)
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputObjectName",overlayFlags.evtStore()+"+CSC_DIGITS")
+    kwargs.setdefault("OutputObjectName",overlayFlags.evtStore()+"+CSCRDO")
+    return BaseCscDigitToCscRDOTool(name,**kwargs)
 
+def CscDigitToCscRDO(name,**kwargs):
     kwargs.setdefault("CscDigitToRDOTool", "CscDigitToCscRDOTool")
-    
     from AthenaCommon import CfgMgr
     return CfgMgr.CscDigitToCscRDO(name,**kwargs)
diff --git a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvExampleConfigDb.py b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvExampleConfigDb.py
index 245c93346cdf1252c82759e990b59d51fc5a717c..7629a530c6303760497b518f64cc445823e6c7e7 100644
--- a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvExampleConfigDb.py
+++ b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCnvExampleConfigDb.py
@@ -36,5 +36,7 @@ addService( "MuonCnvExample.MuonCalibConfig.MdtCalibrationSvc", "MdtCalibrationS
 # Tools/algorithms/services from MuonCnvExample.MuonCnvConfig
 ################################################################################
 addTool( "MuonCnvExample.MuonCnvConfig.CscDigitToCscRDOTool", "CscDigitToCscRDOTool" )
+addTool( "MuonCnvExample.MuonCnvConfig.CscDigitToCscRDOTool2", "CscDigitToCscRDOTool2" )
+addTool( "MuonCnvExample.MuonCnvConfig.CscDigitToCscRDOTool4", "CscDigitToCscRDOTool4" )
 addAlgorithm( "MuonCnvExample.MuonCnvConfig.CscDigitToCscRDO", "CscDigitToCscRDO" )
 
diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfig.py b/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfig.py
index 9108258af348d5d931b450c3c418df005761835d..c733688fd8f68f4f72eb3bb6a4c7ece7e700edc8 100644
--- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfig.py
+++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfig.py
@@ -53,3 +53,11 @@ def CscDigitizationTool(name="CscDigitizationTool", **kwargs):
         kwargs.setdefault("IncludePileUpTruth", False)
 
     return CfgMgr.CscDigitizationTool(name, **kwargs)
+
+def Csc_OverlayDigitizationTool(name="Csc_OverlayDigitizationTool",**kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("EvtStore", overlayFlags.evtStore())
+    kwargs.setdefault("OutputObjectName",overlayFlags.evtStore()+"+CSC_DIGITS")
+    if not overlayFlags.isDataOverlay():
+        kwargs.setdefault("CSCSimDataCollectionOutputName",overlayFlags.evtStore()+"+CSC_SDO")
+    return CscDigitizationTool(name,**kwargs)
diff --git a/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfigDb.py b/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfigDb.py
index 182c996c10113052d4f0a56aee39c91881c3d66a..f79021dbd8de8c614d082728720e8d5a5578bb45 100644
--- a/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfigDb.py
+++ b/MuonSpectrometer/MuonDigitization/CSC_Digitization/python/CSC_DigitizationConfigDb.py
@@ -3,4 +3,5 @@
 from AthenaCommon.CfgGetter import addTool
 
 addTool("CSC_Digitization.CSC_DigitizationConfig.CscDigitizationTool" , "CscDigitizationTool") 
+addTool("CSC_Digitization.CSC_DigitizationConfig.Csc_OverlayDigitizationTool" , "Csc_OverlayDigitizationTool")
 addTool("CSC_Digitization.CSC_DigitizationConfig.getCscRange"         , "CscRange")
diff --git a/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml b/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml
index cd500edbfdfb2502290cdd1b47f2864a67c85615..e18b0f1be4b35f91ecef2c10bd94c208d322416f 120000
--- a/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml
+++ b/MuonSpectrometer/MuonG4/NSW_Sim/data/NSW_StationDescription.xml
@@ -1 +1 @@
-stations.v1.79.xml
\ No newline at end of file
+stations.v1.80.xml
\ No newline at end of file
diff --git a/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v1.80.xml b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v1.80.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3c8910709bdd6a3112293fcae6a4b339142d8e04
--- /dev/null
+++ b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v1.80.xml
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<AGDD>
+
+<section name="NSW_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" >
+<!-- Global variables-->
+<var name="NSW_NbrOfLayers" value="4"/>
+<var name="NSW_NbrOfDriftPcb" value="3"/>
+<var name="NSW_NbrOfROPcb" value="2"/>
+</section>
+
+<section name="NSW_sTGC_Parameters" version="13.7" top_volume="useless" date=" June 30, 2016 " author="Daniel Lellouch">
+<!-- ================ Global Variables ================= -->
+
+<!-- Thickness of a quadruplet -->
+<var name="NSW_sTGC_Tck" value="49.34"/>
+<!-- Gas Gap inside one layer -->
+<var name="NSW_sTGC_GasTck" value="2.85"/>
+<!-- G10 thickness per layer -->
+<var name="NSW_sTGC_pcbTck" value="3"/>
+<!-- Number of layers in a quaduplet -->
+<var name="NSW_sTGC_NbrOfLayers" value="4"/>
+<!-- Wire pitch -->
+<var name="NSW_sTGC_WirePitch" value="1.8"/>
+<!-- Strip pitch -->
+<var name="NSW_sTGC_StripPitch" value="3.2"/>
+<!-- Strip width -->
+<var name="NSW_sTGC_StripWidth" value="2.7"/>
+<!-- Width of G10 frame besides gas volume -->
+<var name="NSW_sTGC_SideFrame" value="28.5"/>
+<!-- Width of G10 frame in base w/o capacitor -->
+<var name="NSW_sTGC_hFrameNoCapacitor" value="11"/>
+<!-- Width of G10 frame in base with capacitor -->
+<var name="NSW_sTGC_hFrameCapacitor" value="14"/>
+<!-- Opening (in degrees) of trapezes in small wedges -->
+<var name="NSW_sTGC_SmallOpening" value="17"/>
+<!-- Opening (in degrees) of trapezes in large wedges -->
+<var name="NSW_sTGC_LargeOpening" value="28"/>
+<!-- Z center of small Pivot -->
+<var name="NSW_sTGC_ZSmallPivot" value="7344"/>
+<!-- Z center of small Confirm -->
+<var name="NSW_sTGC_ZSmallConfirm" value="7010"/>
+<!-- Z center of Large Pivot -->
+<var name="NSW_sTGC_ZLargePivot" value="7474"/>
+<!-- Z center of Large Confirm -->
+<var name="NSW_sTGC_ZLargeConfirm" value="7808"/>
+<!-- Z of each volume, relative to center of quadruplet -->
+<array name="NSW_sTGC_LayerDeltaZ" values="-16.45;-5.48;5.49;16.46"/>
+<!-- Side of the Pad readout -->
+<array name="NSW_sTGC_PadSide" values="-1;1;-1;1"/>
+<!-- Side of the Strip readout -->
+<array name="NSW_sTGC_StripSide" values="1;-1;1;-1"/>
+</section>
+
+<!-- ================ sTGC ========================= -->
+
+
+<section name="NewSmallWheels_sTGC" version="22.1" top_volume="useless" date=" June 22, 2018 " author="Daniel Lellouch">
+
+<composition name="NSW_sTGC">
+
+<sTGC_Tech type="sTGC_1" geometryLevel="1" nLayers="NSW_sTGC_NbrOfLayers" gasTck="NSW_sTGC_GasTck" pcbTck="NSW_sTGC_pcbTck" Tck="NSW_sTGC_Tck" f4="NSW_sTGC_hFrameNoCapacitor" f5="NSW_sTGC_hFrameNoCapacitor" f6="NSW_sTGC_SideFrame"/>
+
+<!-- ================ small Pivot ========================= -->
+
+<sTGC type="sTG1-QS1P" tech="sTGC_1" subType="QS1P" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="279.32" lPadWidth="667.18" padH="80;80;80.24;80.24" rankPadPhi="4;3;2;1" nPadPhi="4;4;3;3" anglePadPhi="5" firstPadPhiDivision_C="-5;-5;-2.5;-2.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-5;-5;-2.5;-2.5" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="17;17;17;17" firstPadH="65.8;65.8;28.61;28.61" firstPadRow="1;1;1;1" sStripWidth="293.48" lStripWidth="681.33" wireCutout="802.8;829.8;856.8;883.8" nWires="371;370;370;370" firstWire="-333;-331.65;-332.55;-332.1" wireGroupWidth="20" nStrips="406" firstTriggerBand="3;3;3;3" nTriggerBands="28;28;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13; 12;13;12;13;12;13;10" StripsInBandsLayer2="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;13;12; 13;12;13;12;13;12;10" StripsInBandsLayer3="12;13;12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;12;13;12;13;12; 13;12;13;13;12;13;8" StripsInBandsLayer4="12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;13;12;13;12;13;12;13; 12;13;12;13;13;12;8" nWireGroups="19;20;19;19" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS1P" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/>
+
+<sTGC type="sTG1-QS2P" tech="sTGC_1" subType="QS2P" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="677.64" lPadWidth="1026.28" padH="80;80;80.24;80.24" rankPadPhi="2;1;4;3" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="15;15;15;15" firstPadH="93.2;93.2;60.09;60.09" firstPadRow="18;18;18;18" sStripWidth="691.8" lStripWidth="1040.43" wireCutout="0;0;0;0" nWires="569;570;570;570" firstWire="-511.2;-511.65;-512.55;-512.1" wireGroupWidth="20" nStrips="365" firstTriggerBand="34;34;34;34" nTriggerBands="30;30;30;30" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="4;13;12;13;12;13;12;13;12;12; 12;13;12;12;13;12;13;12;13;12; 13;12;13;12;;12;13;12;13;11" StripsInBandsLayer2="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer3="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer4="7;12;13;12;13;12;13;13;12;12; 12;13;12;13;12;13;13;12;13;12; 13;12;13;12;13;12;13;13;12;7" nWireGroups="29;30;29;29" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS2P" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/>
+
+<sTGC type="sTG1-QS3P" tech="sTGC_1" subType="QS3P" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1037.46" lPadWidth="1330.62" padH="80;80;80.24;80.24" rankPadPhi="2;1;4;3" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="12;12;13;13" firstPadH="89.4;89.4;59.88;59.88" firstPadRow="33;33;33;33" sStripWidth="1051.61" lStripWidth="1344.78" wireCutout="0;0;0;0" nWires="739;739;739;738" firstWire="-664.2;-664.65;-663.75;-663.3" wireGroupWidth="20" nStrips="307" firstTriggerBand="64;64;64;64" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="3;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;12;13;12;13; 12;13;12;13;12;5" StripsInBandsLayer2="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 13;12;13;12;13;3" StripsInBandsLayer3="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 12;13;12;13;13" StripsInBandsLayer4="7;13;12;13;12;13;12;13;12;12; 12;13;13;12;13;12;13;12;13;12; 13;12;13;13;11" nWireGroups="37;38;38;38" firstWireGroup="20;14;10;3"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS3P" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/>
+
+
+<!-- ================ small confirm =============== -->
+
+<sTGC type="sTG1-QS1C" tech="sTGC_1" subType="QS1C" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="293.48" lPadWidth="681.33" padH="76.35;76.35;76.59;76.59" rankPadPhi="1;4;2;3" nPadPhi="4;4;4;4" anglePadPhi="5" firstPadPhiDivision_C="-3.75;-6.25;-3.75;-6.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-6.25;-3.75;-6.25;-3.75" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="17;17;18;18" firstPadH="78.4;78.4;43.21;43.21" firstPadRow="2;2;2;2" sStripWidth="293.48" lStripWidth="681.33" wireCutout="883.8;856.8;829.8;802.8" nWires="370;370;370;371" firstWire="-332.1;-331.65;-332.55;-333" wireGroupWidth="20" nStrips="406" firstTriggerBand="5;5;5;5" nTriggerBands="32;32;31;31" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;11;12;12;12; 12;12;12;12;12;12;12;12;11;12;12;12" StripsInBandsLayer2="12;12;12;12;11;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 11;12;12;12;12;12;12;12;12;12;12;11" StripsInBandsLayer3="12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;11;10" StripsInBandsLayer4="12;12;12;12;12;12;12;12;11; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;12;9" nWireGroups="20;19;19;19" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS1C" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/>
+
+<sTGC type="sTG1-QS2C" tech="sTGC_1" subType="QS2C" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="691.8" lPadWidth="1040.43" padH="76.35;76.35;76.59;76.59" rankPadPhi="3;2;4;1" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="16;16;15;15" firstPadH="43.8;43.8;89.29;89.29" firstPadRow="19;19;20;20" sStripWidth="691.8" lStripWidth="1040.43" wireCutout="0;0;0;0" nWires="570;570;570;569" firstWire="-512.1;-511.65;-512.55;-511.2" wireGroupWidth="20" nStrips="365" firstTriggerBand="64;64;64;64" nTriggerBands="31;31;31;31" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="2;12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;11;12" StripsInBandsLayer2="12;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; ;12;12;12;12;12;12;12;12;12" StripsInBandsLayer3="2;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; ;12;12;12;12;12;12;12;12;12" StripsInBandsLayer4="5;12;11;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" nWireGroups="30;29;29;29" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS2C" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/>
+
+<sTGC type="sTG1-QS3C" tech="sTGC_1" subType="QS3C" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1051.61" lPadWidth="1344.78" padH="76.35;76.35;76.59;76.59" rankPadPhi="3;2;4;1" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="13;13;14;14" firstPadH="61.66;61.66;34.38;34.38" firstPadRow="35;35;35;35" sStripWidth="1051.61" lStripWidth="1344.78" wireCutout="0;0;0;0" nWires="738;739;739;739" firstWire="-663.3;-664.65;-663.75;-664.2" wireGroupWidth="20" nStrips="307" firstTriggerBand="37;37;37;37" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="6;7;12;12;12;12;12;12;11;11; 12;12;12;12;12;12;12;12;12;12; 12;11;12;13;12;12" StripsInBandsLayer2="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;13;12" StripsInBandsLayer3="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;13" StripsInBandsLayer4="1;12;12;12;12;12;12;11;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;11" nWireGroups="38;38;38;38" firstWireGroup="5;14;15;3"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS3C" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/>
+
+
+<!-- ================ Large Pivot ==================== -->
+
+<sTGC type="sTG1-QL1P" tech="sTGC_1" subType="QL1P" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="476.42" lPadWidth="1126.66" padH="81.42;81.42;81.66;81.66" rankPadPhi="4;3;2;1" nPadPhi="6;6;7;7" anglePadPhi="5" firstPadPhiDivision_C="-10;-10;-12.5;-12.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-10;-10;-12.5;-12.5" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="17;17;16;16" firstPadH="54.39;54.39;98.15;98.15" firstPadRow="1;1;2;2" sStripWidth="490.84" lStripWidth="1141.09" wireCutout="808;835;862;889" nWires="621;620;620;620" firstWire="-558;-556.65;-557.55;-557.1" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="30;30;30;30" firstStripInTrigger="45;45;45;45" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13; 13;12;13;13;13;12;13;13" StripsInBandsLayer2="13;13;12;13;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;13;12; 13;13;12;13;13;13;12;13" StripsInBandsLayer3="13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13" StripsInBandsLayer4="13;13;12;13;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;13;12;13; 13;13;12;13;13;13;12;13" nWireGroups="32;32;32;32" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL1P" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/>
+
+<sTGC type="sTG1-QL2P" tech="sTGC_1" subType="QL2P" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1144.12" lPadWidth="1727.34" padH="81.42;81.42;81.66;81.66" rankPadPhi="2;1;4;3" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-11.25" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-11.25" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="14;14;15;15" firstPadH="99.51;99.51;65.69;65.69" firstPadRow="18;18;18;18" sStripWidth="490.84" lStripWidth="1141.09" wireCutout="0;0;0;0" nWires="953;954;954;954" firstWire="-856.8;-857.25;-858.15;-857.7" wireGroupWidth="20" nStrips="366" firstTriggerBand="33;33;33;33" nTriggerBands="30;30;30;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="9;6;12;13;13;12;13;13;13;12;13;13;1313;13;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer2="9;6;13;13;12;13;13;13;12;13;13;12;1213;13;13;12;13;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer3="7;8;12;13;13;13;12;13;13;13;12;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13;13" StripsInBandsLayer4="7;8;13;13;13;12;13;13;13;12;13;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13" nWireGroups="48;49;49;48" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL2P" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/>
+
+<sTGC type="sTG1-QL3P" tech="sTGC_1" subType="QL3P" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode="539.26">
+
+<sTGC_readout sPadWidth="1745.99" lPadWidth="2054" padH="81.42;81.42;81.66;81.66"
+ rankPadPhi="2;1;4;3" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-11.25" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-11.25" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="15;15;14;14" firstPadH="32.38;32.38;83.57;83.57" firstPadRow="32;32;33;33" sStripWidth="1760.42" lStripWidth="2054" wireCutout="0;0;0;0" nWires="1133;1134;1134;1134" firstWire="-1018.8;-1019.25;-1019.7;-1019.7" wireGroupWidth="20" nStrips="353" firstTriggerBand="63;63;63;62" nTriggerBands="28;28;28;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="10;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13;12;13" StripsInBandsLayer2="11;13;12;13;13;13;12;13;13; 12;13;13;13;12;13;13;13;12;13; 13;13;12;13;13;12;13;13;11" StripsInBandsLayer3="13;13;13;12;13;13;13;12;13; 13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13;8" StripsInBandsLayer4="1;13;13;13;12;13;13;13;13;12; 13;13;13;12;13;13;13;12;13;13; 13;13;12;13;13;13;12;13;7" nWireGroups="57;58;58;57" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL3P" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/>
+
+<!-- =============== Large Confirm ===================== -->
+
+<sTGC type="sTG1-QL1C" tech="sTGC_1" subType="QL1C" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="490.84" lPadWidth="1141.09" padH="85.07;85.07;85.31;85.31" rankPadPhi="4;3;2;1" nPadPhi="6;6;6;6" anglePadPhi="5" firstPadPhiDivision_C="-8.75;-11.25;-8.75;-11.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-11.25;-8.75;-11.25;-8.75" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="16;16;16;16" firstPadH="77.79;77.79;38.01;38.01" firstPadRow="1;1;1;1" sStripWidth="490.84" lStripWidth="1141.09" wireCutout="889;862;835;808" nWires="620;620;620;621" firstWire="-557.1;-556.65;-557.55;-558" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="29;29;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="13;13;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;13;14;13;13; 13;14;13;13;14;13;13;13" StripsInBandsLayer2="13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13" StripsInBandsLayer3="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13" StripsInBandsLayer4="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 14;13;13;14;13;13;14;13" nWireGroups="32;32;32;32" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL1C" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/>
+
+<sTGC type="sTG1-QL2C" tech="sTGC_1" subType="QL2C" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1158.55" lPadWidth="1741.77" padH="85.07;85.07;85.31;85.31" rankPadPhi="3;2;4;1" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="14;14;14;14" firstPadH="99.84;99.84;63.9;63.9" firstPadRow="17;17;17;17" sStripWidth="1158.55" lStripWidth="1741.77" wireCutout="0;0;0;0" nWires="954;954;954;953" firstWire="-857.7;-857.25;-858.15;-856.8" wireGroupWidth="20" nStrips="366" firstTriggerBand="30;30;30;30" nTriggerBands="29;29;29;29" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;5;13;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13;13;14; 13;13;14;13;13;13;14;13;13" StripsInBandsLayer2="11;5;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13" StripsInBandsLayer3="10;7;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;14;13;13; 14;13;13;14;13;13;14;13;13" StripsInBandsLayer4="9;7;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;14;13;13; 14;13;13;14;13;13;14;13;12" nWireGroups="49;49;48;48" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL2C" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/>
+
+<sTGC type="sTG1-QL3C" tech="sTGC_1" subType="QL3C" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode="539.26">
+
+<sTGC_readout sPadWidth="1760.42" lPadWidth="2054" padH="85.07;85.07;85.31;85.31" rankPadPhi="3;2;4;1" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="13;13;14;14" firstPadH="83.76;83.76;51.17;51.17" firstPadRow="31;31;31;31" sStripWidth="1760.42" lStripWidth="2054" wireCutout="0;0;0;0" nWires="1134;1134;1134;1133" firstWire="-1019.7;-1019.25;-1020.15;-1018.8" wireGroupWidth="20" nStrips="353" firstTriggerBand="60;60;60;60" nTriggerBands="28;28;28;28" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="3;13;13;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;13;14;13; 13;13;14;13;13;14;8" StripsInBandsLayer2="2;14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;7" StripsInBandsLayer3="2;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;13;14;13;13;14; 13;13;14;13;13;14;4" StripsInBandsLayer4="3;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;14;13;13;14;13;3" nWireGroups="58;58;57;57" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL3C" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/>
+
+</composition>
+</section>
+
+
+<!-- ========== MicroMegas ============================== -->
+
+<section name="NSW_MM_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" >
+
+<!-- Frames. "f1": frame width close to the trapezium large side. "f2": frame width close to the trapezium small side. "f3": frame width close to the trapezium oblique side  -->
+
+<!-- Distance from IP, labeled zmin_MM in Parameter Book -->
+<var name="NSW_MM_LM_distanceFromIP" value="7536"/>
+<var name="NSW_MM_SM_distanceFromIP" value="7072"/>
+<!-- Thickness of Multilayer and the subcomponent (mm)-->
+<var name="NSW_MM_GasTck" value="5.04"/>
+<var name="NSW_MM_ROPcbTck" value="11.69"/>
+<var name="NSW_MM_DriftPcbTck" value="11.284"/>
+<var name="NSW_MM_MultilayerTck" value="NSW_NbrOfLayers* NSW_MM_GasTck + (NSW_NbrOfDriftPcb) * NSW_MM_DriftPcbTck+ ( NSW_NbrOfROPcb) * NSW_MM_ROPcbTck" /> <!-- Thickness of one multilayer -->
+
+<!-- Large sector modules (LM1" LM2). Modules are all trapezoid. ""Height"": radial envelope" ""base/top Width"": upper/lower side of the trapezoid-->
+<var name="NSW_MM_LM1_InnerRadius" value="923" />
+<var name="NSW_MM_LM1_Length" value="2310" />
+<var name="NSW_MM_LM1_outerRadius" value="NSW_MM_LM1_InnerRadius+NSW_MM_LM1_Length" />
+<var name="NSW_MM_LM1_f1" value="30"/>
+<var name="NSW_MM_LM1_f2" value="30"/>
+<var name="NSW_MM_LM1_f3" value="100"/>
+<var name="NSW_MM_LMGap_Length" value="5" /> <!-- Radial gap between LM1 and LM2 -->
+<var name="NSW_MM_LM2_InnerRadius" value="NSW_MM_LM1_outerRadius+NSW_MM_LMGap_Length" />
+<var name="NSW_MM_LM2_Length" value="1410" />
+<var name="NSW_MM_LM2_outerRadius" value="NSW_MM_LM2_InnerRadius+NSW_MM_LM2_Length" />
+<var name="NSW_MM_LM1_baseWidth" value="640" />
+<var name="NSW_MM_LM1_topWidth" value="2008.5" />
+<var name="NSW_MM_LM2_baseWidth" value="2022.8" />
+<var name="NSW_MM_LM2_topWidth" value="2220" />
+<var name="NSW_MM_LM2_f1" value="30"/>
+<var name="NSW_MM_LM2_f2" value="30"/>
+<var name="NSW_MM_LM2_f3" value="100"/>
+<!-- Small sector modules (SM1" SM2). Modules are all trapezoids. ""Height"": radial envelope" ""base/top Width"": upper/lower side -->
+<var name="NSW_MM_SM1_InnerRadius" value="895" />
+<var name="NSW_MM_SM1_Length" value="2210" />
+<var name="NSW_MM_SM1_outerRadius" value="NSW_MM_SM1_InnerRadius+NSW_MM_SM1_Length" />
+<var name="NSW_MM_SMGap_Length" value="5" /> <!-- Radial gap between SM1 and SM2 -->
+<var name="NSW_MM_SM1_f1" value="30"/>
+<var name="NSW_MM_SM1_f2" value="30"/>
+<var name="NSW_MM_SM1_f3" value="100"/>
+<var name="NSW_MM_SM2_InnerRadius" value="NSW_MM_SM1_outerRadius+NSW_MM_SMGap_Length" />
+<var name="NSW_MM_SM2_Length" value="1350" />
+<var name="NSW_MM_SM2_outerRadius" value="NSW_MM_SM2_InnerRadius+NSW_MM_SM2_Length" />
+<var name="NSW_MM_SM1_baseWidth" value="500" />
+<var name="NSW_MM_SM1_topWidth" value="1319.2" />
+<var name="NSW_MM_SM2_baseWidth" value="1321.1" />
+<var name="NSW_MM_SM2_topWidth" value="1821.5" />
+<var name="NSW_MM_SM2_f1" value="30"/>
+<var name="NSW_MM_SM2_f2" value="30"/>
+<var name="NSW_MM_SM2_f3" value="100"/>
+
+<var name="NSW_MM_LargeSector_ZCENTER" value="(NSW_sTGC_ZLargePivot+NSW_sTGC_ZLargeConfirm)/2."/>
+<var name="NSW_MM_SmallSector_ZCENTER" value="(NSW_sTGC_ZSmallPivot+NSW_sTGC_ZSmallConfirm)/2."/>
+
+
+<!-- Thickness of inter-multilayer spacers -->
+<var name="NSW_MM_SpacerThickness" value="50" />
+
+<!-- Global z-coordinate for the sector center -->
+<!--  <var name="NSW_MM_LargeSector_ZCENTER" value="NSW_MM_LM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/>
+<var name="NSW_MM_SmallSector_ZCENTER" value="NSW_MM_SM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/>  -->
+
+</section>
+
+<section name="NewSmallWheelsMM" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" >
+
+
+<!-- Technologies  -->
+<mm_Tech type="MM_1" geometryLevel="1" nLayers="NSW_NbrOfLayers" gasTck="NSW_MM_GasTck" driftPcbTck="NSW_MM_DriftPcbTck" ROPcbTck="NSW_MM_ROPcbTck" Tck="NSW_MM_MultilayerTck" />
+<mmSpacer_Tech type="Spa_1" Tck="NSW_MM_SpacerThickness" />
+
+<!-- large wheel -->
+<micromegas type="sMD1-1-1" tech="MM_1" subType="M1L1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/>
+</micromegas>
+<micromegas type="sMD1-2-1" tech="MM_1" subType="M2L1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/>
+</micromegas>
+<micromegas type="sMD1-1-2" tech="MM_1" subType="M1L2" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/>
+</micromegas>
+<micromegas type="sMD1-2-2" tech="MM_1" subType="M2L2" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/>
+</micromegas>
+
+<mmSpacer type="spa1-1" tech="Spa_1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM1_Length" />
+<mmSpacer type="spa1-2" tech="Spa_1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM2_Length" />
+
+
+<!-- small wheel -->
+<micromegas type="sMD3-1-1" tech="MM_1" subType="M1S1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/>
+</micromegas>
+<micromegas type="sMD3-2-1" tech="MM_1" subType="M2S1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/>
+</micromegas>
+<micromegas type="sMD3-1-2" tech="MM_1" subType="M1S2" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/>
+</micromegas>
+<micromegas type="sMD3-2-2" tech="MM_1" subType="M2S2" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/>
+</micromegas>
+<mmSpacer type="spa3-1" tech="Spa_1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM1_Length" />
+<mmSpacer type="spa3-2" tech="Spa_1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM2_Length" />
+
+<composition name="NSW_MM" >
+<!-- A-SIDE -->
+
+<!-- LARGE SECTOR -->
+
+<!-- MM multilayer 1 -->
+<chamberPosition volume="sMD1-1-1" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+<chamberPosition volume="sMD1-2-1" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+<!-- spacer -->
+<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." />
+<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." />
+
+<!-- MM multilayer 2 -->
+<chamberPosition volume="sMD1-1-2" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+<chamberPosition volume="sMD1-2-2" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+
+<!-- SMALL SECTOR -->
+
+<!-- MM multilayer 1 -->
+<chamberPosition volume="sMD3-1-1" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+<chamberPosition volume="sMD3-2-1" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+
+<!-- spacer -->
+<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." />
+<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." />
+
+<!-- MM multilayer 2 -->
+<chamberPosition volume="sMD3-1-2" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+<chamberPosition volume="sMD3-2-2" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+
+<!-- C-SIDE -->
+<!-- LARGE SECTOR -->
+<!-- spacer -->
+<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." />
+<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." />
+
+<!-- SMALL SECTOR -->
+<!-- spacer -->
+<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." />
+<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." />
+
+</composition>
+
+</section>
+
+
+<!-- ========== Poisitionning sTGC in NSW================ -->
+
+
+<section name="NewSmallWheels" version="4.3" top_volume="useless" date=" April 20, 2015 " author="Daniel Lellouch">
+
+<composition name="NewSmallWheel">
+ <posXYZ volume="NSW_sTGC" X_Y_Z="0.;0.;0."/>
+ <posXYZ volume="NSW_MM" X_Y_Z="0.;0.;0." />
+</composition>
+
+</section>
+</AGDD>
diff --git a/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v2.04.xml b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v2.04.xml
new file mode 100644
index 0000000000000000000000000000000000000000..647f2459436f708e812bee6217acea14d581c22f
--- /dev/null
+++ b/MuonSpectrometer/MuonG4/NSW_Sim/data/stations.v2.04.xml
@@ -0,0 +1,1788 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<AGDD>
+
+<section name="NSW_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" >
+<!-- Global variables-->
+<var name="NSW_NbrOfLayers" value="4"/>
+<var name="NSW_NbrOfDriftPcb" value="3"/>
+<var name="NSW_NbrOfROPcb" value="2"/>
+<!--Center between the large sectors and the small sectors-->
+<var name="ZCenter_Global" value="7409"/>
+</section>
+
+<section name="NSW_sTGC_Parameters" version="13.7" top_volume="useless" date=" June 30, 2016 " author="Daniel Lellouch">
+<!-- ================ Global Variables ================= -->
+
+<!-- Thickness of a quadruplet -->
+<var name="NSW_sTGC_Tck" value="49.34"/>
+<!-- Gas Gap inside one layer -->
+<var name="NSW_sTGC_GasTck" value="2.85"/>
+<!-- G10 thickness per layer -->
+<var name="NSW_sTGC_pcbTck" value="3"/>
+<!-- Number of layers in a quaduplet -->
+<var name="NSW_sTGC_NbrOfLayers" value="4"/>
+<!-- Wire pitch -->
+<var name="NSW_sTGC_WirePitch" value="1.8"/>
+<!-- Strip pitch -->
+<var name="NSW_sTGC_StripPitch" value="3.2"/>
+<!-- Strip width -->
+<var name="NSW_sTGC_StripWidth" value="2.7"/>
+<!-- Width of G10 frame besides gas volume -->
+<var name="NSW_sTGC_SideFrame" value="28.5"/>
+<!-- Width of G10 frame in base w/o capacitor -->
+<var name="NSW_sTGC_hFrameNoCapacitor" value="11"/>
+<!-- Width of G10 frame in base with capacitor -->
+<var name="NSW_sTGC_hFrameCapacitor" value="14"/>
+<!-- Opening (in degrees) of trapezes in small wedges -->
+<var name="NSW_sTGC_SmallOpening" value="17"/>
+<!-- Opening (in degrees) of trapezes in large wedges -->
+<var name="NSW_sTGC_LargeOpening" value="28"/>
+<!-- Z center of small Pivot -->
+<var name="NSW_sTGC_ZSmallPivot" value="ZCenter_Global-64"/>
+<!-- Z center of small Confirm -->
+<var name="NSW_sTGC_ZSmallConfirm" value="ZCenter_Global-399"/>
+<!-- Z center of Large Pivot -->
+<var name="NSW_sTGC_ZLargePivot" value="ZCenter_Global+64"/>
+<!-- Z center of Large Confirm -->
+<var name="NSW_sTGC_ZLargeConfirm" value="ZCenter_Global+399"/>
+<!-- Z of each volume, relative to center of quadruplet -->
+<array name="NSW_sTGC_LayerDeltaZ" values="-16.45;-5.48;5.49;16.46"/>
+<!-- Side of the Pad readout -->
+<array name="NSW_sTGC_PadSide" values="-1;1;-1;1"/>
+<!-- Side of the Strip readout -->
+<array name="NSW_sTGC_StripSide" values="1;-1;1;-1"/>
+</section>
+
+<!-- ================ sTGC ========================= -->
+
+
+<section name="NewSmallWheels_sTGC" version="22.1" top_volume="useless" date=" June 22, 2018 " author="Daniel Lellouch">
+
+<composition name="NSW_sTGC">
+
+<sTGC_Tech type="sTGC_1" geometryLevel="1" nLayers="NSW_sTGC_NbrOfLayers" gasTck="NSW_sTGC_GasTck" pcbTck="NSW_sTGC_pcbTck" Tck="NSW_sTGC_Tck" f4="NSW_sTGC_hFrameNoCapacitor" f5="NSW_sTGC_hFrameNoCapacitor" f6="NSW_sTGC_SideFrame"/>
+
+<!-- ================ small Pivot ========================= -->
+
+<sTGC type="sTG1-QS1P" tech="sTGC_1" subType="QS1P" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="279.32" lPadWidth="667.18" padH="80;80;80.24;80.24" rankPadPhi="4;3;2;1" nPadPhi="4;4;3;3" anglePadPhi="5" firstPadPhiDivision_C="-5;-5;-2.5;-2.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-5;-5;-2.5;-2.5" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="17;17;17;17" firstPadH="65.8;65.8;28.61;28.61" firstPadRow="1;1;1;1" sStripWidth="293.48" lStripWidth="681.33" wireCutout="802.8;829.8;856.8;883.8" nWires="371;370;370;370" firstWire="-333;-331.65;-332.55;-332.1" wireGroupWidth="20" nStrips="406" firstTriggerBand="3;3;3;3" nTriggerBands="28;28;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13; 12;13;12;13;12;13;10" StripsInBandsLayer2="12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;12;13;13;12; 13;12;13;12;13;12;10" StripsInBandsLayer3="12;13;12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;12;13;12;13;12; 13;12;13;13;12;13;8" StripsInBandsLayer4="12;13;12;13;12;13;13;12;13;12;13;12;13;12;13;13;12;13;12;13;12;13; 12;13;12;13;13;12;8" nWireGroups="19;20;19;19" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS1P" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/>
+
+<sTGC type="sTG1-QS2P" tech="sTGC_1" subType="QS2P" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="677.64" lPadWidth="1026.28" padH="80;80;80.24;80.24" rankPadPhi="2;1;4;3" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="15;15;15;15" firstPadH="93.2;93.2;60.09;60.09" firstPadRow="18;18;18;18" sStripWidth="691.8" lStripWidth="1040.43" wireCutout="0;0;0;0" nWires="569;570;570;570" firstWire="-511.2;-511.65;-512.55;-512.1" wireGroupWidth="20" nStrips="365" firstTriggerBand="34;34;34;34" nTriggerBands="30;30;30;30" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="4;13;12;13;12;13;12;13;12;12; 12;13;12;12;13;12;13;12;13;12; 13;12;13;12;;12;13;12;13;11" StripsInBandsLayer2="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer3="5;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;13;12;13;12; 13;12;13;12;13;12;13;12;13;10" StripsInBandsLayer4="7;12;13;12;13;12;13;13;12;12; 12;13;12;13;12;13;13;12;13;12; 13;12;13;12;13;12;13;13;12;7" nWireGroups="29;30;29;29" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS2P" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/>
+
+<sTGC type="sTG1-QS3P" tech="sTGC_1" subType="QS3P" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1037.46" lPadWidth="1330.62" padH="80;80;80.24;80.24" rankPadPhi="2;1;4;3" nPadPhi="2;2;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="0;0;-3.75;-3.75" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="0;0;-3.75;-3.75" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="12;12;13;13" firstPadH="89.4;89.4;59.88;59.88" firstPadRow="33;33;33;33" sStripWidth="1051.61" lStripWidth="1344.78" wireCutout="0;0;0;0" nWires="739;739;739;738" firstWire="-664.2;-664.65;-663.75;-663.3" wireGroupWidth="20" nStrips="307" firstTriggerBand="64;64;64;64" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="3;12;13;12;13;12;13;12;13;13; 13;12;13;12;13;12;12;13;12;13; 12;13;12;13;12;5" StripsInBandsLayer2="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 13;12;13;12;13;3" StripsInBandsLayer3="6;12;13;12;13;13;12;13;12;12; 12;13;12;13;12;13;12;13;12;13; 12;13;12;13;13" StripsInBandsLayer4="7;13;12;13;12;13;12;13;12;12; 12;13;13;12;13;12;13;12;13;12; 13;12;13;13;11" nWireGroups="37;38;38;38" firstWireGroup="20;14;10;3"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS3P" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallPivot" phi0="22.5"/>
+
+
+<!-- ================ small confirm =============== -->
+
+<sTGC type="sTG1-QS1C" tech="sTGC_1" subType="QS1C" sWidth="346.93" lWidth="743.15" Length="1325.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="293.48" lPadWidth="681.33" padH="76.35;76.35;76.59;76.59" rankPadPhi="1;4;2;3" nPadPhi="4;4;4;4" anglePadPhi="5" firstPadPhiDivision_C="-3.75;-6.25;-3.75;-6.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-6.25;-3.75;-6.25;-3.75" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="17;17;18;18" firstPadH="78.4;78.4;43.21;43.21" firstPadRow="2;2;2;2" sStripWidth="293.48" lStripWidth="681.33" wireCutout="883.8;856.8;829.8;802.8" nWires="370;370;370;371" firstWire="-332.1;-331.65;-332.55;-333" wireGroupWidth="20" nStrips="406" firstTriggerBand="5;5;5;5" nTriggerBands="32;32;31;31" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;12;11;12;12;12; 12;12;12;12;12;12;12;12;11;12;12;12" StripsInBandsLayer2="12;12;12;12;11;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 11;12;12;12;12;12;12;12;12;12;12;11" StripsInBandsLayer3="12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;11;10" StripsInBandsLayer4="12;12;12;12;12;12;12;12;11; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12;12;9" nWireGroups="20;19;19;19" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS1C" type="ENDCAP" chamberType="sTGS" radius="1563" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/>
+
+<sTGC type="sTG1-QS2C" tech="sTGC_1" subType="QS2C" sWidth="746.14" lWidth="1102.25" Length="1191.4" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="691.8" lPadWidth="1040.43" padH="76.35;76.35;76.59;76.59" rankPadPhi="3;2;4;1" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="16;16;15;15" firstPadH="43.8;43.8;89.29;89.29" firstPadRow="19;19;20;20" sStripWidth="691.8" lStripWidth="1040.43" wireCutout="0;0;0;0" nWires="570;570;570;569" firstWire="-512.1;-511.65;-512.55;-511.2" wireGroupWidth="20" nStrips="365" firstTriggerBand="64;64;64;64" nTriggerBands="31;31;31;31" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="2;12;12;12;11;12;12;12;12;12;12; 12;12;12;12;12;11;12;12;12;12; 12;12;12;12;12;12;12;12;11;12" StripsInBandsLayer2="12;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; ;12;12;12;12;12;12;12;12;12" StripsInBandsLayer3="2;12;12;12;12;12;12;12;12;12;12; 12;12;12;11;12;12;12;12;12;12; ;12;12;12;12;12;12;12;12;12" StripsInBandsLayer4="5;12;11;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12" nWireGroups="30;29;29;29" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS2C" type="ENDCAP" chamberType="sTGS" radius="2831.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/>
+
+<sTGC type="sTG1-QS3C" tech="sTGC_1" subType="QS3C" sWidth="1105.96" lWidth="1406.59" Length="1005.8" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1051.61" lPadWidth="1344.78" padH="76.35;76.35;76.59;76.59" rankPadPhi="3;2;4;1" nPadPhi="3;3;3;3" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-1.87;-5.62;-1.87" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-1.87;-5.62;-1.87;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="13;13;14;14" firstPadH="61.66;61.66;34.38;34.38" firstPadRow="35;35;35;35" sStripWidth="1051.61" lStripWidth="1344.78" wireCutout="0;0;0;0" nWires="738;739;739;739" firstWire="-663.3;-664.65;-663.75;-664.2" wireGroupWidth="20" nStrips="307" firstTriggerBand="37;37;37;37" nTriggerBands="26;26;25;25" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="6;7;12;12;12;12;12;12;11;11; 12;12;12;12;12;12;12;12;12;12; 12;11;12;13;12;12" StripsInBandsLayer2="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;12;13;12" StripsInBandsLayer3="2;10;12;12;12;12;12;12;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;13" StripsInBandsLayer4="1;12;12;12;12;12;12;11;12;12; 12;12;12;12;12;12;12;12;12;12; 12;12;12;13;11" nWireGroups="38;38;38;38" firstWireGroup="5;14;15;3"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QS3C" type="ENDCAP" chamberType="sTGS" radius="3942.5" zPos="NSW_sTGC_ZSmallConfirm" phi0="22.5"/>
+
+
+<!-- ================ Large Pivot ==================== -->
+
+<sTGC type="sTG1-QL1P" tech="sTGC_1" subType="QL1P" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="476.42" lPadWidth="1126.66" padH="81.42;81.42;81.66;81.66" rankPadPhi="4;3;2;1" nPadPhi="6;6;7;7" anglePadPhi="5" firstPadPhiDivision_C="-10;-10;-12.5;-12.5" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-10;-10;-12.5;-12.5" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="17;17;16;16" firstPadH="54.39;54.39;98.15;98.15" firstPadRow="1;1;2;2" sStripWidth="490.84" lStripWidth="1141.09" wireCutout="808;835;862;889" nWires="621;620;620;620" firstWire="-558;-556.65;-557.55;-557.1" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="30;30;30;30" firstStripInTrigger="45;45;45;45" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13; 13;12;13;13;13;12;13;13" StripsInBandsLayer2="13;13;12;13;13;13;12;13;13;13;12;13;13;12;13;13;13;12;13;13;13;12; 13;13;12;13;13;13;12;13" StripsInBandsLayer3="13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13" StripsInBandsLayer4="13;13;12;13;13;13;13;12;13;13;13;12;13;13;13;12;13;13;13;13;12;13; 13;13;12;13;13;13;12;13" nWireGroups="32;32;32;32" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL1P" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/>
+
+<sTGC type="sTG1-QL2P" tech="sTGC_1" subType="QL2P" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1144.12" lPadWidth="1727.34" padH="81.42;81.42;81.66;81.66" rankPadPhi="2;1;4;3" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-11.25" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-11.25" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="14;14;15;15" firstPadH="99.51;99.51;65.69;65.69" firstPadRow="18;18;18;18" sStripWidth="490.84" lStripWidth="1141.09" wireCutout="0;0;0;0" nWires="953;954;954;954" firstWire="-856.8;-857.25;-858.15;-857.7" wireGroupWidth="20" nStrips="366" firstTriggerBand="33;33;33;33" nTriggerBands="30;30;30;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="9;6;12;13;13;12;13;13;13;12;13;13;1313;13;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer2="9;6;13;13;12;13;13;13;12;13;13;12;1213;13;13;12;13;13;13;12;13;13;13; 12;13;13;12;13;13;13" StripsInBandsLayer3="7;8;12;13;13;13;12;13;13;13;12;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13;13" StripsInBandsLayer4="7;8;13;13;13;12;13;13;13;12;13;13;1313;13;12;13;13;13;12;13;13;13;12; 13;13;13;12;13;13" nWireGroups="48;49;49;48" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL2P" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/>
+
+<sTGC type="sTG1-QL3P" tech="sTGC_1" subType="QL3P" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode="539.26">
+
+<sTGC_readout sPadWidth="1745.99" lPadWidth="2054" padH="81.42;81.42;81.66;81.66"
+ rankPadPhi="2;1;4;3" nPadPhi="4;4;5;5" anglePadPhi="7.5" firstPadPhiDivision_C="-7.5;-7.5;-11.25;-11.25" PadPhiShift_C="2;-2;2;-2" firstPadPhiDivision_A="-7.5;-7.5;-11.25;-11.25" PadPhiShift_A="-2;2;-2;2" rankPadH="1;2;3;4" nPadH="15;15;14;14" firstPadH="32.38;32.38;83.57;83.57" firstPadRow="32;32;33;33" sStripWidth="1760.42" lStripWidth="2054" wireCutout="0;0;0;0" nWires="1133;1134;1134;1134" firstWire="-1018.8;-1019.25;-1019.7;-1019.7" wireGroupWidth="20" nStrips="353" firstTriggerBand="63;63;63;62" nTriggerBands="28;28;28;29" firstStripInTrigger="1;1;1;1" firstStripWidth="1.6;3.2;1.6;3.2" StripsInBandsLayer1="10;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;12;13;13;13; 12;13;13;12;13;13;13;12;13" StripsInBandsLayer2="11;13;12;13;13;13;12;13;13; 12;13;13;13;12;13;13;13;12;13; 13;13;12;13;13;12;13;13;11" StripsInBandsLayer3="13;13;13;12;13;13;13;12;13; 13;13;12;13;13;13;12;13;13;13; 12;13;13;13;12;13;13;13;8" StripsInBandsLayer4="1;13;13;13;12;13;13;13;13;12; 13;13;13;12;13;13;13;12;13;13; 13;13;12;13;13;13;12;13;7" nWireGroups="57;58;58;57" firstWireGroup="20;5;10;15"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL3P" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargePivot" phi0="0.0"/>
+
+<!-- =============== Large Confirm ===================== -->
+
+<sTGC type="sTG1-QL1C" tech="sTGC_1" subType="QL1C" sWidth="542.61" lWidth="1206.82" Length="1332" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="490.84" lPadWidth="1141.09" padH="85.07;85.07;85.31;85.31" rankPadPhi="4;3;2;1" nPadPhi="6;6;6;6" anglePadPhi="5" firstPadPhiDivision_C="-8.75;-11.25;-8.75;-11.25" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-11.25;-8.75;-11.25;-8.75" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="16;16;16;16" firstPadH="77.79;77.79;38.01;38.01" firstPadRow="1;1;1;1" sStripWidth="490.84" lStripWidth="1141.09" wireCutout="889;862;835;808" nWires="620;620;620;621" firstWire="-557.1;-556.65;-557.55;-558" wireGroupWidth="20" nStrips="408" firstTriggerBand="3;3;3;3" nTriggerBands="29;29;28;28" firstStripInTrigger="44;44;44;44" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="13;13;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;13;14;13;13; 13;14;13;13;14;13;13;13" StripsInBandsLayer2="13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13" StripsInBandsLayer3="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13" StripsInBandsLayer4="14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 14;13;13;14;13;13;14;13" nWireGroups="32;32;32;32" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL1C" type="ENDCAP" chamberType="sTGL" radius="1595" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/>
+
+<sTGC type="sTG1-QL2C" tech="sTGC_1" subType="QL2C" sWidth="1211.81" lWidth="1807.5" Length="1194.6" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="0" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode ="0">
+
+<sTGC_readout sPadWidth="1158.55" lPadWidth="1741.77" padH="85.07;85.07;85.31;85.31" rankPadPhi="3;2;4;1" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="14;14;14;14" firstPadH="99.84;99.84;63.9;63.9" firstPadRow="17;17;17;17" sStripWidth="1158.55" lStripWidth="1741.77" wireCutout="0;0;0;0" nWires="954;954;954;953" firstWire="-857.7;-857.25;-858.15;-856.8" wireGroupWidth="20" nStrips="366" firstTriggerBand="30;30;30;30" nTriggerBands="29;29;29;29" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="12;5;13;13;13;14;13;13;14;13; 13;13;14;13;13;14;13;13;13;14; 13;13;14;13;13;13;14;13;13" StripsInBandsLayer2="11;5;13;14;13;13;14;13;13;13; 14;13;13;14;13;13;14;13;13;14; 13;13;13;14;13;13;14;13;13" StripsInBandsLayer3="10;7;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;14;13;13; 14;13;13;14;13;13;14;13;13" StripsInBandsLayer4="9;7;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;14;13;13; 14;13;13;14;13;13;14;13;12" nWireGroups="49;49;48;48" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL2C" type="ENDCAP" chamberType="sTGL" radius="2868.3" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/>
+
+<sTGC type="sTG1-QL3C" tech="sTGC_1" subType="QL3C" sWidth="1813.68" lWidth="2111" Length="1153" Tck="NSW_sTGC_Tck" xFrame="NSW_sTGC_SideFrame" ysFrame="NSW_sTGC_hFrameNoCapacitor" ylFrame="NSW_sTGC_hFrameCapacitor" yCutout="545.3" stripPitch="NSW_sTGC_StripPitch" wirePitch="NSW_sTGC_WirePitch" stripWidth="NSW_sTGC_StripWidth" yCutoutCathode="539.26">
+
+<sTGC_readout sPadWidth="1760.42" lPadWidth="2054" padH="85.07;85.07;85.31;85.31" rankPadPhi="3;2;4;1" nPadPhi="4;4;4;4" anglePadPhi="7.5" firstPadPhiDivision_C="-5.62;-9.37;-5.62;-9.37" PadPhiShift_C="-2;2;-2;2" firstPadPhiDivision_A="-9.37;-5.62;-9.37;-5.62" PadPhiShift_A="2;-2;2;-2" rankPadH="1;2;3;4" nPadH="13;13;14;14" firstPadH="83.76;83.76;51.17;51.17" firstPadRow="31;31;31;31" sStripWidth="1760.42" lStripWidth="2054" wireCutout="0;0;0;0" nWires="1134;1134;1134;1133" firstWire="-1019.7;-1019.25;-1020.15;-1018.8" wireGroupWidth="20" nStrips="353" firstTriggerBand="60;60;60;60" nTriggerBands="28;28;28;28" firstStripInTrigger="1;1;1;1" firstStripWidth="3.2;1.6;3.2;1.6" StripsInBandsLayer1="3;13;13;13;13;14;13;13;14;13;13; 13;14;13;13;14;13;13;13;14;13; 13;13;14;13;13;14;8" StripsInBandsLayer2="2;14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;13;14;13;13; 14;13;13;14;13;13;7" StripsInBandsLayer3="2;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;13;14;13;13;14; 13;13;14;13;13;14;4" StripsInBandsLayer4="3;14;13;13;14;13;13;14;13;13;14; 13;13;14;13;13;14;13;13;14;13; 13;14;13;13;14;13;3" nWireGroups="58;58;57;57" firstWireGroup="5;10;15;20"/>
+</sTGC>
+
+<chamberPosition volume="sTG1-QL3C" type="ENDCAP" chamberType="sTGL" radius="4054.5" zPos="NSW_sTGC_ZLargeConfirm" phi0="0.0"/>
+
+</composition>
+</section>
+
+
+<!-- ========== MicroMegas ============================== -->
+
+<section name="NSW_MM_Parameters" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" >
+
+<!-- Frames. "f1": frame width close to the trapezium large side. "f2": frame width close to the trapezium small side. "f3": frame width close to the trapezium oblique side  -->
+
+<!-- Distance from IP, labeled zmin_MM in Parameter Book -->
+<var name="NSW_MM_LM_distanceFromIP" value="7536"/>
+<var name="NSW_MM_SM_distanceFromIP" value="7072"/>
+<!-- Thickness of Multilayer and the subcomponent (mm)-->
+<var name="NSW_MM_GasTck" value="5.04"/>
+<var name="NSW_MM_ROPcbTck" value="11.69"/>
+<var name="NSW_MM_DriftPcbTck" value="11.284"/>
+<var name="NSW_MM_MultilayerTck" value="NSW_NbrOfLayers* NSW_MM_GasTck + (NSW_NbrOfDriftPcb) * NSW_MM_DriftPcbTck+ ( NSW_NbrOfROPcb) * NSW_MM_ROPcbTck" /> <!-- Thickness of one multilayer -->
+
+<!-- Large sector modules (LM1" LM2). Modules are all trapezoid. ""Height"": radial envelope" ""base/top Width"": upper/lower side of the trapezoid-->
+<var name="NSW_MM_LM1_InnerRadius" value="923" />
+<var name="NSW_MM_LM1_Length" value="2310" />
+<var name="NSW_MM_LM1_outerRadius" value="NSW_MM_LM1_InnerRadius+NSW_MM_LM1_Length" />
+<var name="NSW_MM_LM1_f1" value="30"/>
+<var name="NSW_MM_LM1_f2" value="30"/>
+<var name="NSW_MM_LM1_f3" value="100"/>
+<var name="NSW_MM_LMGap_Length" value="5" /> <!-- Radial gap between LM1 and LM2 -->
+<var name="NSW_MM_LM2_InnerRadius" value="NSW_MM_LM1_outerRadius+NSW_MM_LMGap_Length" />
+<var name="NSW_MM_LM2_Length" value="1410" />
+<var name="NSW_MM_LM2_outerRadius" value="NSW_MM_LM2_InnerRadius+NSW_MM_LM2_Length" />
+<var name="NSW_MM_LM1_baseWidth" value="640" />
+<var name="NSW_MM_LM1_topWidth" value="2008.5" />
+<var name="NSW_MM_LM2_baseWidth" value="2022.8" />
+<var name="NSW_MM_LM2_topWidth" value="2220" />
+<var name="NSW_MM_LM2_f1" value="30"/>
+<var name="NSW_MM_LM2_f2" value="30"/>
+<var name="NSW_MM_LM2_f3" value="100"/>
+<!-- Small sector modules (SM1" SM2). Modules are all trapezoids. ""Height"": radial envelope" ""base/top Width"": upper/lower side -->
+<var name="NSW_MM_SM1_InnerRadius" value="895" />
+<var name="NSW_MM_SM1_Length" value="2210" />
+<var name="NSW_MM_SM1_outerRadius" value="NSW_MM_SM1_InnerRadius+NSW_MM_SM1_Length" />
+<var name="NSW_MM_SMGap_Length" value="5" /> <!-- Radial gap between SM1 and SM2 -->
+<var name="NSW_MM_SM1_f1" value="30"/>
+<var name="NSW_MM_SM1_f2" value="30"/>
+<var name="NSW_MM_SM1_f3" value="100"/>
+<var name="NSW_MM_SM2_InnerRadius" value="NSW_MM_SM1_outerRadius+NSW_MM_SMGap_Length" />
+<var name="NSW_MM_SM2_Length" value="1350" />
+<var name="NSW_MM_SM2_outerRadius" value="NSW_MM_SM2_InnerRadius+NSW_MM_SM2_Length" />
+<var name="NSW_MM_SM1_baseWidth" value="500" />
+<var name="NSW_MM_SM1_topWidth" value="1319.2" />
+<var name="NSW_MM_SM2_baseWidth" value="1321.1" />
+<var name="NSW_MM_SM2_topWidth" value="1821.5" />
+<var name="NSW_MM_SM2_f1" value="30"/>
+<var name="NSW_MM_SM2_f2" value="30"/>
+<var name="NSW_MM_SM2_f3" value="100"/>
+
+<var name="NSW_MM_LargeSector_ZCENTER" value="ZCenter_Global+232."/>
+<var name="NSW_MM_SmallSector_ZCENTER" value="ZCenter_Global-232."/>
+
+
+<!-- Thickness of inter-multilayer spacers -->
+<var name="NSW_MM_SpacerThickness" value="50" />
+
+<!-- Global z-coordinate for the sector center -->
+<!--  <var name="NSW_MM_LargeSector_ZCENTER" value="NSW_MM_LM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/>
+<var name="NSW_MM_SmallSector_ZCENTER" value="NSW_MM_SM_distanceFromIP + 4.*NSW_MM_DriftPcbTck + 4.*NSW_MM_ROPcbTck + 4.*NSW_MM_GasTck + NSW_MM_SpacerThickness/2."/>  -->
+
+</section>
+
+<section name="NewSmallWheelsMM" version="1" top_volume="useless" date="December 16 2014" author="S.Chen" >
+
+
+<!-- Technologies  -->
+<mm_Tech type="MM_1" geometryLevel="1" nLayers="NSW_NbrOfLayers" gasTck="NSW_MM_GasTck" driftPcbTck="NSW_MM_DriftPcbTck" ROPcbTck="NSW_MM_ROPcbTck" Tck="NSW_MM_MultilayerTck" />
+<!--Chilufya<mmSpacer_Tech type="Spa_1" Tck="NSW_MM_SpacerThickness" />Chilufya-->
+
+<!-- large wheel -->
+<micromegas type="sMD1-1-1" tech="MM_1" subType="M1L1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/>
+</micromegas>
+<micromegas type="sMD1-2-1" tech="MM_1" subType="M2L1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/>
+</micromegas>
+<micromegas type="sMD1-1-2" tech="MM_1" subType="M1L2" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM1_Length" ylFrame="NSW_MM_LM1_f1" ysFrame="NSW_MM_LM1_f2" xFrame="NSW_MM_LM1_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM1_InnerRadius" roLength="NSW_MM_LM1_Length"/>
+</micromegas>
+<micromegas type="sMD1-2-2" tech="MM_1" subType="M2L2" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_LM2_Length" ylFrame="NSW_MM_LM2_f1" ysFrame="NSW_MM_LM2_f2" xFrame="NSW_MM_LM2_f3">
+<mm_readout stripPitch="0.45" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_LM2_InnerRadius" roLength="NSW_MM_LM2_Length"/>
+</micromegas>
+
+<!--Chilufya<mmSpacer type="spa1-1" tech="Spa_1" sWidth="NSW_MM_LM1_baseWidth" lWidth="NSW_MM_LM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM1_Length" />
+<mmSpacer type="spa1-2" tech="Spa_1" sWidth="NSW_MM_LM2_baseWidth" lWidth="NSW_MM_LM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_LM2_Length" />Chilufya-->
+
+
+<!-- small wheel -->
+<micromegas type="sMD3-1-1" tech="MM_1" subType="M1S1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/>
+</micromegas>
+<micromegas type="sMD3-2-1" tech="MM_1" subType="M2S1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.; 0.; 0.02618; -0.02618" readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/>
+</micromegas>
+<micromegas type="sMD3-1-2" tech="MM_1" subType="M1S2" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM1_Length" ylFrame="NSW_MM_SM1_f1" ysFrame="NSW_MM_SM1_f2" xFrame="NSW_MM_SM1_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM1_InnerRadius" roLength="NSW_MM_SM1_Length"/>
+</micromegas>
+<micromegas type="sMD3-2-2" tech="MM_1" subType="M2S2" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_MultilayerTck" Length="NSW_MM_SM2_Length" ylFrame="NSW_MM_SM2_f1" ysFrame="NSW_MM_SM2_f2" xFrame="NSW_MM_SM2_f3">
+<mm_readout stripPitch="0.425" gasThickness="NSW_MM_GasTck" pcbThickness="NSW_MM_ROPcbTck" driftThickness="NSW_MM_DriftPcbTck" stereoAngle="0.02618; -0.02618; 0.; 0." readoutSide="-1; 1; -1; 1" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." distanceFromZAxis="NSW_MM_SM2_InnerRadius" roLength="NSW_MM_SM2_Length"/>
+</micromegas>
+<!--Chilufya<mmSpacer type="spa3-1" tech="Spa_1" sWidth="NSW_MM_SM1_baseWidth" lWidth="NSW_MM_SM1_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM1_Length" />
+<mmSpacer type="spa3-2" tech="Spa_1" sWidth="NSW_MM_SM2_baseWidth" lWidth="NSW_MM_SM2_topWidth" Tck="NSW_MM_SpacerThickness" Length="NSW_MM_SM2_Length" />Chilufya-->
+
+<composition name="NSW_MM" >
+<!-- A-SIDE -->
+
+<!-- LARGE SECTOR -->
+
+<!-- MM multilayer 1 -->
+<chamberPosition volume="sMD1-1-1" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+<chamberPosition volume="sMD1-2-1" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+<!-- spacer -->
+<!--Chilufya<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." />
+<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 270.; 90." />Chilufya-->
+
+<!-- MM multilayer 2 -->
+<chamberPosition volume="sMD1-1-2" radius="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+<chamberPosition volume="sMD1-2-2" radius="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2" zPos="NSW_MM_LargeSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="0" />
+
+<!-- SMALL SECTOR -->
+
+<!-- MM multilayer 1 -->
+<chamberPosition volume="sMD3-1-1" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+<chamberPosition volume="sMD3-2-1" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER-NSW_MM_MultilayerTck/2.-NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+
+<!-- spacer -->
+<!--Chilufya<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." />
+<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 270.; 90." />Chilufya-->
+
+<!-- MM multilayer 2 -->
+<chamberPosition volume="sMD3-1-2" radius="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+<chamberPosition volume="sMD3-2-2" radius="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2" zPos="NSW_MM_SmallSector_ZCENTER+NSW_MM_MultilayerTck/2.+NSW_MM_SpacerThickness/2." type="ENDCAP" chamberType="Micromegas" phi0="22.5" />
+
+<!-- C-SIDE -->
+<!-- LARGE SECTOR -->
+<!-- spacer -->
+<!--Chilufya<mposPhi volume="spa1-1" ncopy="8" R_Z="(NSW_MM_LM1_InnerRadius+NSW_MM_LM1_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." />
+<mposPhi volume="spa1-2" ncopy="8" R_Z="(NSW_MM_LM2_InnerRadius+NSW_MM_LM2_outerRadius)/2;-NSW_MM_LargeSector_ZCENTER" Phi0="0" rot=" 90.; 90.; 90." />Chilufya-->
+
+<!-- SMALL SECTOR -->
+<!-- spacer -->
+<!--Chilufya<mposPhi volume="spa3-1" ncopy="8" R_Z="(NSW_MM_SM1_InnerRadius+NSW_MM_SM1_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." />
+<mposPhi volume="spa3-2" ncopy="8" R_Z="(NSW_MM_SM2_InnerRadius+NSW_MM_SM2_outerRadius)/2;-NSW_MM_SmallSector_ZCENTER" Phi0="22.5" rot=" 90.; 90.; 90." />Chilufya-->
+
+</composition>
+
+</section>
+
+
+
+
+
+
+
+<!--====================================SPACER FRAME===============================================-->
+
+<section name       = "LS and SS Spacer Frames"
+         version    = "0.0"
+         date       = "25-07-2017"
+         author     = "Georgian Engineering Team - Niko Tsutskiridze"
+         top_volume = "NSW_Spacer">
+
+<!-- LS Spacer Ftame -->
+<gvxy name="LS_StructuralPlate_Main" material="Aluminium" dZ="5.9">
+  <gvxy_point X_Y="226.; 958."/>
+  <gvxy_point X_Y="914.15; 3281."/>
+  <gvxy_point X_Y="1007.3; 4613."/>
+  <gvxy_point X_Y="0.01; 4613."/>
+  <gvxy_point X_Y="0.01; 958."/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut1" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="902.87; 4123."/>
+  <gvxy_point X_Y="932.24; 4543."/>
+  <gvxy_point X_Y="40.; 4543."/>
+  <gvxy_point X_Y="40.; 4123."/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut2" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="774.41; 3913.25"/>
+  <gvxy_point X_Y="770.86; 3963."/>
+  <gvxy_point X_Y="135.; 3963."/>
+  <gvxy_point X_Y="135.; 3821.33"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut3" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="778.83; 3639.29"/>
+  <gvxy_point X_Y="792.52; 3835.04"/>
+  <gvxy_point X_Y="203.42; 3750.35"/>
+  <gvxy_point X_Y="203.46; 3720.65"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut4" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="477.15; 3586.36"/>
+  <gvxy_point X_Y="477.24; 3606.18"/>
+  <gvxy_point X_Y="135.; 3654.58"/>
+  <gvxy_point X_Y="135.; 3541.07"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut5" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="762.41; 3404.48"/>
+  <gvxy_point X_Y="772.57; 3549.82"/>
+  <gvxy_point X_Y="286.06; 3485.41"/>
+  <gvxy_point X_Y="286.1; 3465.58"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut6" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="600.; 3314.58"/>
+  <gvxy_point X_Y="602.55; 3354.42"/>
+  <gvxy_point X_Y="60.; 3424.01"/>
+  <gvxy_point X_Y="60.; 3314.58"/>
+</gvxy>
+
+<box  name="LS_StructuralPlate_Cut7" material="Aluminium"  X_Y_Z="138.; 70.; 7. " />
+
+<gvxy name="LS_StructuralPlate_Cut8" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="678.71; 2838.18"/>
+  <gvxy_point X_Y="772.71; 3155.5"/>
+  <gvxy_point X_Y="63.52; 3155.5"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut9" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="533.6; 2715.5"/>
+  <gvxy_point X_Y="551.94; 2791.05"/>
+  <gvxy_point X_Y="40.; 3055.11"/>
+  <gvxy_point X_Y="40.; 2715.5"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut10" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="459.9; 2169.9"/>
+  <gvxy_point X_Y="585.97; 2595.5"/>
+  <gvxy_point X_Y="117.42; 2595.5"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut11" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="391.41; 2095.5"/>
+  <gvxy_point X_Y="135.; 2414.15"/>
+  <gvxy_point X_Y="135.; 2095.5"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut12" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="344.91; 1865.18"/>
+  <gvxy_point X_Y="389.44; 2015.5"/>
+  <gvxy_point X_Y="258.79; 2015.5"/>
+</gvxy>
+<gvxy name="LS_StructuralPlate_Cut13" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="275.45; 1825.5"/>
+  <gvxy_point X_Y="172.35; 2005.44"/>
+  <gvxy_point X_Y="135.; 1995.5"/>
+  <gvxy_point X_Y="135.; 1825.5"/>
+</gvxy>
+
+<gvxy name="LS_StructuralPlate_Cut14" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="173.8; 1028."/>
+  <gvxy_point X_Y="380.41; 1725.5"/>
+  <gvxy_point X_Y="40.; 1725.5"/>
+  <gvxy_point X_Y="40.; 1028."/>
+</gvxy>
+
+<subtraction  name="LS_StructuralPlateSub" >
+  <posXYZ   volume="LS_StructuralPlate_Main"   />
+  <posXYZ   volume="LS_StructuralPlate_Cut1" />
+  <posXYZ   volume="LS_StructuralPlate_Cut2" />
+  <posXYZ   volume="LS_StructuralPlate_Cut3" />
+  <posXYZ   volume="LS_StructuralPlate_Cut4" />
+  <posXYZ   volume="LS_StructuralPlate_Cut5" />
+  <posXYZ   volume="LS_StructuralPlate_Cut6" />
+  <posXYZ   volume="LS_StructuralPlate_Cut7" X_Y_Z="589.; 3235.5; 0." />
+  <posXYZ   volume="LS_StructuralPlate_Cut8" />
+  <posXYZ   volume="LS_StructuralPlate_Cut9" />
+  <posXYZ   volume="LS_StructuralPlate_Cut10" />
+  <posXYZ   volume="LS_StructuralPlate_Cut11" />
+  <posXYZ   volume="LS_StructuralPlate_Cut12" />
+  <posXYZ   volume="LS_StructuralPlate_Cut13" />
+  <posXYZ   volume="LS_StructuralPlate_Cut14" />
+</subtraction>
+
+<composition  name="LS_StructuralPlate" >
+  <posXYZ  volume="LS_StructuralPlateSub" />
+  <posXYZ  volume="LS_StructuralPlateSub" rot="0. ; 180. ; 0." />
+</composition>
+
+<box  name="LS_Central_reference_bar" material="Aluminium"  X_Y_Z="1704.; 100.; 27.8 " />
+
+<box  name="LS_Channel_section_L2000_Main" material="Aluminium"  X_Y_Z="50.; 2000.; 30. " />
+<box  name="LS_Channel_section_L2000_Cut" material="Aluminium"  X_Y_Z="40.; 2050.; 20. " />
+<subtraction  name="LS_Channel_section_L2000" >
+  <posXYZ   volume="LS_Channel_section_L2000_Main"   />
+  <posXYZ   volume="LS_Channel_section_L2000_Cut" />
+</subtraction>
+
+<box  name="LS_Channel_section_L1200_Main" material="Aluminium"  X_Y_Z="50.; 1200.; 30. " />
+<subtraction  name="LS_Channel_section_L1200" >
+  <posXYZ   volume="LS_Channel_section_L1200_Main"   />
+  <posXYZ   volume="LS_Channel_section_L2000_Cut" />
+</subtraction>
+
+<box  name="LS_Channel_section_L850_Main" material="Aluminium"  X_Y_Z="50.; 850.; 30. " />
+<subtraction  name="LS_Channel_section_L850" >
+  <posXYZ   volume="LS_Channel_section_L850_Main"   />
+  <posXYZ   volume="LS_Channel_section_L2000_Cut" />
+</subtraction>
+
+<box  name="LS_Channel_section_L1000_Main" material="Aluminium"  X_Y_Z="50.; 1000.; 30. " />
+<subtraction  name="LS_Channel_section_L1000" >
+  <posXYZ   volume="LS_Channel_section_L1000_Main"   />
+  <posXYZ   volume="LS_Channel_section_L2000_Cut" />
+</subtraction>
+
+<box  name="LS_UProfile_L1460_Main" material="Aluminium"  X_Y_Z="20.; 1460.; 30. " />
+<box  name="LS_UProfile_L1460_Cut" material="Aluminium"  X_Y_Z="20.; 1500.; 24. " />
+<subtraction  name="LS_UProfile_L1460" >
+  <posXYZ   volume="LS_UProfile_L1460_Main"   />
+  <posXYZ   volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." />
+</subtraction>
+
+<box  name="LS_UProfile_L750_Main" material="Aluminium"  X_Y_Z="20.; 750.; 30. " />
+<subtraction  name="LS_UProfile_L750" >
+  <posXYZ   volume="LS_UProfile_L750_Main"   />
+  <posXYZ   volume="LS_UProfile_L1460_Cut" X_Y_Z="3.; 0.; 0." />
+</subtraction>
+
+<gvxy name="LS_Top_Interface" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="914.3; 3484.44"/>
+  <gvxy_point X_Y="1146.47; 3571.68"/>
+  <gvxy_point X_Y="1141.27; 3656.86"/>
+  <gvxy_point X_Y="1054.98; 3656.86"/>
+  <gvxy_point X_Y="1054.98; 4070."/>
+  <gvxy_point X_Y="813.64; 4070."/>
+  <gvxy_point X_Y="774.65; 3494.2"/>
+</gvxy>
+
+<gvxy name="LS_Bottom_Grabber_interface" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="-801.54; 2552.21"/>
+  <gvxy_point X_Y="-858.34; 2743.97"/>
+  <gvxy_point X_Y="-591.97; 2822.88"/>
+  <gvxy_point X_Y="-535.17; 2631.11"/>
+</gvxy>
+
+<gvxy name="LS_Bottom_Interface" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="-558.42; 1731.46"/>
+  <gvxy_point X_Y="-616.93; 1928.98"/>
+  <gvxy_point X_Y="-678.34; 1910.78"/>
+  <gvxy_point X_Y="-727.9; 1985.99"/>
+  <gvxy_point X_Y="-570.48; 2124.21"/>
+  <gvxy_point X_Y="-437.49; 2163.6"/>
+  <gvxy_point X_Y="-329.56; 1799.25"/>
+</gvxy>
+
+<box  name="LS_MM_Connectors" material="Aluminium"  X_Y_Z="76.; 40.; 30. " />
+<composition  name="LS_MM_Connectors_Assembly" >
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="323.24; 1278.98; 0." rot="0. ; 0. ; -16.5" />
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="596.23; 2200.58; 0." rot="0. ; 0. ; -16.5" />
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="800.97; 2891.78; 0." rot="0. ; 0. ; -16.5" />
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="922.31; 3368.81; 0." rot="0. ; 0. ; -4." />
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="986.76; 4290.41; 0." rot="0. ; 0. ; -4." />
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="824.; 4615.; 0." rot="0. ; 0. ; 90." />
+</composition>
+
+<box  name="LS_KM_Joint" material="ShieldSteel"  X_Y_Z="150.; 118.; 48. " />
+
+<composition  name="LS_Spacer_Frame_Assembly" >
+  <posXYZ  volume="LS_StructuralPlate" X_Y_Z="0.; 0.; 18." />
+  <posXYZ  volume="LS_StructuralPlate" X_Y_Z="0.; 0.; -18." />
+  <posXYZ  volume="LS_Central_reference_bar" X_Y_Z="0.; 3235.5; 0." />
+  <posXYZ  volume="LS_Channel_section_L2000" X_Y_Z="0.; 2185.49; 0." />
+  <posXYZ  volume="LS_Channel_section_L1200" X_Y_Z="0.; 3885.51; 0." />
+  <posXYZ  volume="LS_Channel_section_L850" X_Y_Z="130.5; 3710.51; 0." />
+  <posXYZ  volume="LS_Channel_section_L850" X_Y_Z="-130.5; 3710.51; 0." />
+  <posXYZ  volume="LS_Channel_section_L1000" X_Y_Z="130.5; 2223.; 0." />
+  <posXYZ  volume="LS_Channel_section_L1000" X_Y_Z="-130.5; 2223.; 0." />
+  <posXYZ  volume="LS_UProfile_L1460" X_Y_Z="252.; 2455.49; 0." />
+  <posXYZ  volume="LS_UProfile_L1460" X_Y_Z="-252.; 2455.49; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="252.; 3760.5; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="-252.; 3760.5; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="465.; 3760.5; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="-465.; 3760.5; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="678.; 3760.5; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="-678.; 3760.5; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="465.; 2551.; 0." />
+  <posXYZ  volume="LS_UProfile_L750" X_Y_Z="-465.; 2551.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_Top_Interface" X_Y_Z="0.; 0.; 0." />
+  <posXYZ  volume="LS_Top_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="LS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="LS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="LS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="0.; 956.; 0." rot="0. ; 0. ; 90." />
+  <posXYZ  volume="LS_MM_Connectors" X_Y_Z="0.; 4615.; 0." rot="0. ; 0. ; 90." />
+  <posXYZ  volume="LS_KM_Joint" X_Y_Z="-1130.01; 3970.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="LS_KM_Joint" X_Y_Z="1130.01; 3970.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="LS_KM_Joint" X_Y_Z="656.6; 1798.8; 0." rot="0. ; 0. ; -16.5" />
+</composition>
+
+<composition  name="LS" >
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 0." />
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 90." />
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 135." />
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 180." />
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 225." />
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 270." />
+  <posXYZ  volume="LS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 315." />
+</composition>
+<!-- LS Spacer Ftame -->
+
+<!-- SS Spacer Ftame -->
+<gvxy name="SS_StructuralPlate_Main" material="Aluminium" dZ="5.9">
+  <gvxy_point X_Y="154.8; 930."/>
+  <gvxy_point X_Y="745.; 4114.46"/>
+  <gvxy_point X_Y="745.; 4425."/>
+  <gvxy_point X_Y="0.01; 4425."/>
+  <gvxy_point X_Y="0.01; 930."/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut1" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="685.; 4242.5"/>
+  <gvxy_point X_Y="685.; 4375."/>
+  <gvxy_point X_Y="25.; 4375."/>
+  <gvxy_point X_Y="25.; 4242.5"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut2" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="449.11; 4102.75"/>
+  <gvxy_point X_Y="446.87; 4122.5"/>
+  <gvxy_point X_Y="125.; 4122.5"/>
+  <gvxy_point X_Y="125.; 4028.36"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut3" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="577.21; 3867.18"/>
+  <gvxy_point X_Y="620.57; 4101.07"/>
+  <gvxy_point X_Y="131.86; 3988.9"/>
+  <gvxy_point X_Y="131.86; 3969.4"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut4" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="395.9; 3847.5"/>
+  <gvxy_point X_Y="398.14; 3867.25"/>
+  <gvxy_point X_Y="125.; 3929.94"/>
+  <gvxy_point X_Y="125.; 3847.5"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut5" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="495.98; 3705.39"/>
+  <gvxy_point X_Y="495.98; 3747.5"/>
+  <gvxy_point X_Y="25.; 3747.5"/>
+  <gvxy_point X_Y="25.; 3475.7"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut6" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="488.74; 3225.16"/>
+  <gvxy_point X_Y="576.8; 3700.3"/>
+  <gvxy_point X_Y="45.63; 3441.26"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut7" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="408.58; 3177.5"/>
+  <gvxy_point X_Y="417.35; 3215.48"/>
+  <gvxy_point X_Y="25.; 3406.82"/>
+  <gvxy_point X_Y="25.; 3177.5"/>
+</gvxy>
+
+<box  name="SS_StructuralPlate_Cut8" material="Aluminium"  X_Y_Z="92.; 70.; 7. " />
+
+<gvxy name="SS_StructuralPlate_Cut9" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="429.19; 3037.5"/>
+  <gvxy_point X_Y="25.; 3037.5"/>
+  <gvxy_point X_Y="25.; 2483.96"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut10" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="342.44; 2435.8"/>
+  <gvxy_point X_Y="445.53; 2992.05"/>
+  <gvxy_point X_Y="50.98; 2451.7"/>
+  <gvxy_point X_Y="59.05; 2435.8"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut11" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="275.17; 2072.87"/>
+  <gvxy_point X_Y="330.64; 2372.16"/>
+  <gvxy_point X_Y="310.98; 2395.8"/>
+  <gvxy_point X_Y="39.37; 2395.8"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut12" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="245.39; 2045.82"/>
+  <gvxy_point X_Y="25.; 2347.65"/>
+  <gvxy_point X_Y="25.; 2045.82"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut13" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="144.83; 1534.74"/>
+  <gvxy_point X_Y="203.73; 1852.5"/>
+  <gvxy_point X_Y="125.; 1852.5"/>
+  <gvxy_point X_Y="125.; 1536.56"/>
+</gvxy>
+
+<gvxy name="SS_StructuralPlate_Cut14" material="Aluminium" dZ="7.">
+  <gvxy_point X_Y="123.38; 980."/>
+  <gvxy_point X_Y="201.04; 1399."/>
+  <gvxy_point X_Y="25.; 1399."/>
+  <gvxy_point X_Y="25.; 980."/>
+</gvxy>
+
+<subtraction  name="SS_StructuralPlateSub" >
+  <posXYZ   volume="SS_StructuralPlate_Main"   />
+  <posXYZ   volume="SS_StructuralPlate_Cut1" />
+  <posXYZ   volume="SS_StructuralPlate_Cut2" />
+  <posXYZ   volume="SS_StructuralPlate_Cut3" />
+  <posXYZ   volume="SS_StructuralPlate_Cut4" />
+  <posXYZ   volume="SS_StructuralPlate_Cut5" />
+  <posXYZ   volume="SS_StructuralPlate_Cut6" />
+  <posXYZ   volume="SS_StructuralPlate_Cut7" />
+  <posXYZ   volume="SS_StructuralPlate_Cut8" X_Y_Z="-340.5; 3107.5; 0." />
+  <posXYZ   volume="SS_StructuralPlate_Cut9" />
+  <posXYZ   volume="SS_StructuralPlate_Cut10" />
+  <posXYZ   volume="SS_StructuralPlate_Cut11" />
+  <posXYZ   volume="SS_StructuralPlate_Cut12" />
+  <posXYZ   volume="SS_StructuralPlate_Cut13" />
+  <posXYZ   volume="SS_StructuralPlate_Cut14" />
+</subtraction>
+
+<composition  name="SS_StructuralPlate" >
+  <posXYZ  volume="SS_StructuralPlateSub" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="SS_StructuralPlateSub" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+</composition>
+
+<box  name="SS_Central_reference_bar" material="Aluminium"  X_Y_Z="1012.; 100.; 28. " />
+
+<box  name="SS_Channel_section_L1100_Main" material="Aluminium"  X_Y_Z="50.; 1100.; 30. " />
+<subtraction  name="SS_Channel_section_L1100" >
+  <posXYZ   volume="SS_Channel_section_L1100_Main"   />
+  <posXYZ   volume="LS_Channel_section_L2000_Cut" />
+</subtraction>
+
+
+<box  name="SS_Channel_section_L650_Main" material="Aluminium"  X_Y_Z="50.; 650.; 30. " />
+<subtraction  name="SS_Channel_section_L650" >
+  <posXYZ   volume="SS_Channel_section_L650_Main"   />
+  <posXYZ   volume="LS_Channel_section_L2000_Cut" />
+</subtraction>
+
+<box  name="SS_UProfile_L1000_Main" material="Aluminium"  X_Y_Z="20.; 1000.; 30. " />
+<subtraction  name="SS_UProfile_L1000" >
+  <posXYZ   volume="SS_UProfile_L1000_Main"   />
+  <posXYZ   volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." />
+</subtraction>
+
+<box  name="SS_UProfile_L920_Main" material="Aluminium"  X_Y_Z="20.; 920.; 30. " />
+<subtraction  name="SS_UProfile_L920" >
+  <posXYZ   volume="SS_UProfile_L920_Main"   />
+  <posXYZ   volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." />
+</subtraction>
+
+<box  name="SS_UProfile_L1200_Main" material="Aluminium"  X_Y_Z="20.; 1200.; 30. " />
+<subtraction  name="SS_UProfile_L1200" >
+  <posXYZ   volume="SS_UProfile_L1200_Main"   />
+  <posXYZ   volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." />
+</subtraction>
+
+<box  name="SS_UProfile_L700_Main" material="Aluminium"  X_Y_Z="20.; 700.; 30. " />
+<subtraction  name="SS_UProfile_L700" >
+  <posXYZ   volume="SS_UProfile_L700_Main"   />
+  <posXYZ   volume="LS_UProfile_L1460_Cut" X_Y_Z="-3.; 0.; 0." />
+</subtraction>
+
+<gvxy name="SS_Top_Interface" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="849.99; 3705.17"/>
+  <gvxy_point X_Y="849.99; 4260."/>
+  <gvxy_point X_Y="627.69; 4260."/>
+  <gvxy_point X_Y="627.69; 4106.34"/>
+  <gvxy_point X_Y="564.77; 3758.03"/>
+</gvxy>
+
+<gvxy name="SS_Bottom_Grabber_interface" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="454.99; 1875."/>
+  <gvxy_point X_Y="454.99; 2075."/>
+  <gvxy_point X_Y="255.; 2075."/>
+  <gvxy_point X_Y="255.; 1875."/>
+</gvxy>
+
+<gvxy name="SS_Bottom_Interface" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="442.2; 1397.5"/>
+  <gvxy_point X_Y="442.2; 1560.65"/>
+  <gvxy_point X_Y="397.; 1560.65"/>
+  <gvxy_point X_Y="397.; 1792.5"/>
+  <gvxy_point X_Y="194.29; 1792.5"/>
+  <gvxy_point X_Y="149.53; 1434.71"/>
+  <gvxy_point X_Y="204.54; 1397.5"/>
+</gvxy>
+
+<box  name="SS_MM_Connectors" material="Aluminium"  X_Y_Z="76.; 40.; 30. " />
+<box  name="SS_MM_Connectors_Lar" material="Aluminium"  X_Y_Z="120.; 40.; 30. " />
+<composition  name="SS_MM_Connectors_Assembly" >
+  <posXYZ  volume="SS_MM_Connectors" X_Y_Z="214.86; 1243.14; 0." rot="0. ; 0. ; -10.5" />
+  <posXYZ  volume="SS_MM_Connectors" X_Y_Z="376.17; 2113.54; 0." rot="0. ; 0. ; -10.5" />
+  <posXYZ  volume="SS_MM_Connectors" X_Y_Z="497.16; 2766.34; 0." rot="0. ; 0. ; -10.5" />
+  <posXYZ  volume="SS_MM_Connectors" X_Y_Z="626.36; 3463.34; 0." rot="0. ; 0. ; -10.5" />
+  <posXYZ  volume="SS_MM_Connectors_Lar" X_Y_Z="766.02; 4337.75; 0." rot="0. ; 0. ; -10.5" />
+  <posXYZ  volume="SS_MM_Connectors" X_Y_Z="624.; 4427.; 0." rot="0. ; 0. ; 90." />
+</composition>
+
+<box  name="SS_KM_Joint" material="ShieldSteel"  X_Y_Z="154.; 101.; 48. " />
+
+<composition  name="SS_Spacer_Frame_Assembly" >
+  <posXYZ  volume="SS_StructuralPlate" X_Y_Z="0.; 0.; 18." />
+  <posXYZ  volume="SS_StructuralPlate" X_Y_Z="0.; 0.; -18." />
+  <posXYZ  volume="SS_Central_reference_bar" X_Y_Z="0.; 3107.5; 0." />
+  <posXYZ  volume="LS_Channel_section_L2000" X_Y_Z="0.; 2057.49; 0." />
+  <posXYZ  volume="SS_Channel_section_L1100" X_Y_Z="0.; 3707.51; 0." />
+  <posXYZ  volume="SS_Channel_section_L1100" X_Y_Z="-110.5; 3707.51; 0." />
+  <posXYZ  volume="SS_Channel_section_L1100" X_Y_Z="110.5; 3707.51; 0." />
+  <posXYZ  volume="SS_Channel_section_L650" X_Y_Z="-110.5; 1722.; 0." />
+  <posXYZ  volume="SS_Channel_section_L650" X_Y_Z="110.5; 1722.; 0." />
+  <posXYZ  volume="SS_UProfile_L1000" X_Y_Z="-345.; 3742.5; 0." />
+  <posXYZ  volume="SS_UProfile_L1000" X_Y_Z="345.; 3742.5; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_UProfile_L920" X_Y_Z="-195.; 3782.5; 0." />
+  <posXYZ  volume="SS_UProfile_L920" X_Y_Z="195.; 3782.5; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_UProfile_L1200" X_Y_Z="-195.; 2457.49; 0." />
+  <posXYZ  volume="SS_UProfile_L1200" X_Y_Z="195.; 2457.49; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_UProfile_L700" X_Y_Z="-360.; 2587.5; 0." />
+  <posXYZ  volume="SS_UProfile_L700" X_Y_Z="360.; 2587.5; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_Top_Interface" X_Y_Z="0.; 0.; 0." />
+  <posXYZ  volume="SS_Top_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="SS_Bottom_Grabber_interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="SS_Bottom_Interface" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="SS_MM_Connectors_Assembly" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ  volume="SS_MM_Connectors" X_Y_Z="0.; 928.; 0." rot="0. ; 0. ; 90." />
+  <posXYZ  volume="SS_MM_Connectors" X_Y_Z="0.; 4427.; 0." rot="0. ; 0. ; 90." />
+  <posXYZ  volume="SS_KM_Joint" X_Y_Z="-927.01; 4160.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="SS_KM_Joint" X_Y_Z="927.01; 4160.; 0." rot="0. ; 0. ; 0." />
+  <posXYZ  volume="SS_KM_Joint" X_Y_Z="-532.01; 1975.; 0." rot="0. ; 0. ; 0." />
+</composition>
+
+<composition  name="SS_AssemblyRot" >
+  <posXYZ  volume="SS_Spacer_Frame_Assembly"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 22.5" />
+</composition>
+
+<composition  name="SS" >
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 0." />
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 90." />
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 135." />
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 180." />
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 225." />
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 270." />
+  <posXYZ  volume="SS_AssemblyRot"  X_Y_Z="0.; 0.; 0." rot="   0. ; 0. ; 315." />
+</composition>
+<!-- End SS Spacer_Frame-->
+
+<composition  name="LS_and_SS_SideA" >
+  <posXYZ  volume="LS"  X_Y_Z="0.; 0.; 7641." rot=" 0. ; 0. ; 0." />
+  <posXYZ  volume="SS"  X_Y_Z="0.; 0.; 7177." rot=" 0. ; 0. ; 0." />
+</composition>
+
+<composition  name="LS_and_SS_SideC" >
+  <posXYZ  volume="LS"  X_Y_Z="0.; 0.; -7641." rot=" 0. ; 0. ; 0." />
+  <posXYZ  volume="SS"  X_Y_Z="0.; 0.; -7177." rot=" 0. ; 0. ; 0." />
+</composition>
+
+<composition  name="NSW_Spacer" >
+  <posXYZ  volume="LS_and_SS_SideA" />
+  <posXYZ  volume="LS_and_SS_SideC" />
+</composition>
+
+</section>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!--====================================Support Structures and Hub===============================================-->
+
+<section name       = "NSW Aluminum Structure and HUB"
+         version    = "0.0"
+         date       = "25-04-2017"
+         author     = "Georgian Engineering Team - Niko Tsutskiridze"
+         top_volume = "NSW_Aluminum_Structure_and_HUB">
+
+<!-- ********************************************** New Hub ************************************************** -->
+
+<!-- Horizontal Shielding -->
+<gvxysx name="Hub_Outer_Plate1" material="Lead" dZ="517.5">
+  <gvxy_point X_Y="-163.1; 820.05"/>
+  <gvxy_point X_Y=" -169.25; 850.95"/>
+</gvxysx>
+
+ <gvxysx name="Hub_Outer_Plate2" material="PolyBoron207HD5" dZ="517.5">
+  <gvxy_point X_Y="-163.1; 820."/>
+  <gvxy_point X_Y=" -153.15; 770."/>
+</gvxysx>
+
+<gvxysx name="Hub_Outer_Plate3" material="Lead" dZ="504.">
+  <gvxy_point X_Y="-163.1; 820.05"/>
+  <gvxy_point X_Y=" -169.25; 850.95"/>
+</gvxysx>
+
+<gvxysx name="Hub_Outer_Plate4" material="PolyBoron207HD5" dZ="545.">
+  <gvxy_point X_Y="-163.1; 820."/>
+  <gvxy_point X_Y=" -153.15; 770."/>
+</gvxysx>
+
+<gvxysx name="Hub_Outer_Plate5" material="Lead" dZ="30.">
+  <gvxy_point X_Y="-163.1; 820.05"/>
+  <gvxy_point X_Y=" -169.25; 850.95"/>
+</gvxysx>
+
+<gvxysx name="Hub_Outer_Plate6" material="PolyBoron207HD5" dZ="30.">
+  <gvxy_point X_Y="-163.1; 820."/>
+  <gvxy_point X_Y=" -153.15; 770."/>
+</gvxysx>
+
+<gvxysx name="Hub_Outer_Plate7" material="Lead" dZ="85.">
+  <gvxy_point X_Y="-163.1; 820.05"/>
+  <gvxy_point X_Y=" -169.25; 850.95"/>
+</gvxysx>
+
+<gvxysx name="Hub_Outer_Plate8" material="PolyBoron207HD5" dZ="126.">
+<gvxy_point X_Y="-163.1; 820."/>
+  <gvxy_point X_Y=" -153.15; 770."/>
+</gvxysx>
+
+<composition  name="Horizontal_Shielding_ForRot_Spec" >
+  <posXYZ  volume="Hub_Outer_Plate5"  X_Y_Z="0.; 0.; 908.2" />
+  <posXYZ  volume="Hub_Outer_Plate6"  X_Y_Z="0.; 0.; 908.2" />
+</composition>
+
+<composition  name="Horizontal_Shielding_ForRot_Spec2" >
+  <posXYZ  volume="Hub_Outer_Plate3"  X_Y_Z="0.; 0.; 248.7" rot="   0. ; 0. ; 22.5" />
+  <posXYZ  volume="Hub_Outer_Plate4"  X_Y_Z="0.; 0.; 228.2" rot="   0. ; 0. ; 22.5" />
+</composition>
+
+<composition  name="Horizontal_Shielding_ForRot" >
+  <posXYZ  volume="Hub_Outer_Plate1"  X_Y_Z="0.; 0.; 643.45" />
+  <posXYZ  volume="Hub_Outer_Plate2"  X_Y_Z="0.; 0.; 643.45" />
+  <posXYZ  volume="Horizontal_Shielding_ForRot_Spec2" />
+  <posXYZ  volume="Hub_Outer_Plate7"  X_Y_Z="0.; 0.; 39.2" />
+  <posXYZ  volume="Hub_Outer_Plate8"  X_Y_Z="0.; 0.; 18.7" />
+</composition>
+
+<composition  name="Horizontal_Shielding" >
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 0." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 90." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 135." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 180." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 225." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 270." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot"  rot="   0. ; 0. ; 315." />
+  <posXYZ  volume="Horizontal_Shielding_ForRot_Spec"  rot="   0. ; 0. ; 22.5" />
+  <posXYZ  volume="Horizontal_Shielding_ForRot_Spec"  rot="   0. ; 0. ; 67.5" />
+  <posXYZ  volume="Horizontal_Shielding_ForRot_Spec"  rot="   0. ; 0. ; -22.5" />
+  <posXYZ  volume="Horizontal_Shielding_ForRot_Spec"  rot="   0. ; 0. ; -67.5" />
+</composition>
+<!-- End Horizontal Shielding (New Hub) -->
+
+<!-- Other Parts of New Hub -->
+<pcon name="HUB_Extension_inner_tube" material="ShieldSteel" nbPhi="20">
+  <polyplane Rio_Z="172.; 225.; 997.75"/>
+  <polyplane Rio_Z=" 152.3; 225.; 0."/>
+</pcon>
+<tubs   name="HUB_Extension_plate_HO_side"      material="ShieldSteel"   Rio_Z="172.5; 530.; 59.2" />
+<tubs   name="Copper_disk_Extension"      material="Copper"   Rio_Z="225.5; 454.5; 998." />
+<tubs   name="HUB_Extension_outer_tube"      material="ShieldSteel"   Rio_Z="455.5; 530.; 998.7" />
+
+<pcon name="HUB_Main_part_inner_tube" material="ShieldSteel" nbPhi="20">
+  <polyplane Rio_Z="148.7; 225.; 858.5"/>
+  <polyplane Rio_Z=" 137.; 225.; 0."/>
+</pcon>
+
+<tubs   name="Copper_disk_Main_part"      material="Copper"   Rio_Z="225.5; 699.5; 760." />
+
+<gvxysxy name="Plate_IP_Main" material="ShieldSteel" dZ="91.6">
+  <gvxy_point X_Y="769.95; 153.16"/>
+  <gvxy_point X_Y="652.77; 436.16"/>
+  <gvxy_point X_Y="436.16; 652.77"/>
+  <gvxy_point X_Y="153.16; 769.95"/>
+</gvxysxy>
+
+<tubs   name="Plate_IP_Cut_Tube"      material="ShieldSteel"   Rio_Z="0.; 226.; 95." />
+
+<subtraction  name="Plate_IP" >
+  <posXYZ   volume="Plate_IP_Main"   />
+  <posXYZ   volume="Plate_IP_Cut_Tube" />
+</subtraction>
+
+<gvxysxy name="HUB_Main_part_outer_tube_Main" material="ShieldSteel" dZ="767.7">
+  <gvxy_point X_Y="769.95; 153.16"/>
+  <gvxy_point X_Y="652.77; 436.16"/>
+  <gvxy_point X_Y="436.16; 652.77"/>
+  <gvxy_point X_Y="153.16; 769.95"/>
+</gvxysxy>
+
+<tubs   name="HUB_Main_part_outer_tube_Cut_Tube"      material="ShieldSteel"   Rio_Z="0.; 700.; 770." />
+
+<subtraction  name="HUB_Main_part_outer_tube" >
+  <posXYZ   volume="HUB_Main_part_outer_tube_Main"   />
+  <posXYZ   volume="HUB_Main_part_outer_tube_Cut_Tube" />
+</subtraction>
+
+<gvxysxy name="Plate_HO_Main" material="ShieldSteel" dZ="78.">
+  <gvxy_point X_Y="769.95; 153.16"/>
+  <gvxy_point X_Y="652.77; 436.16"/>
+  <gvxy_point X_Y="436.16; 652.77"/>
+  <gvxy_point X_Y="153.16; 769.95"/>
+</gvxysxy>
+
+<tubs   name="Plate_HO_Cut_Tube"      material="ShieldSteel"   Rio_Z="0.; 150.5; 80." />
+
+<subtraction  name="Plate_HO" >
+  <posXYZ   volume="Plate_HO_Main"   />
+  <posXYZ   volume="Plate_HO_Cut_Tube" />
+</subtraction>
+
+<tubs name="Plate_HO_SupportTube" material="ShieldSteel" Rio_Z="585.; 770.; 21.4" profile="-15.; 210." nbPhi="20"/>
+
+<tubs   name="Disque_shileding_ext"      material="PolyBoron207HD5"   Rio_Z="532.5; 800.; 40." />
+<tubs   name="Plaque_polyboron_droite_v2"      material="PolyBoron207HD5"   Rio_Z="532.5; 582.5; 200." />
+
+<composition  name="Hub_Other_Parts_Assembly" >
+  <posXYZ  volume="HUB_Extension_plate_HO_side"  X_Y_Z="0.; 0.; 1920.6" />
+  <posXYZ  volume="HUB_Extension_inner_tube"  X_Y_Z="0.; 0.; 892.25" />
+  <posXYZ  volume="Copper_disk_Extension"  X_Y_Z="0.; 0.; 1391.95" />
+  <posXYZ  volume="HUB_Extension_outer_tube"  X_Y_Z="0.; 0.; 1391.6" />
+  <posXYZ  volume="HUB_Main_part_inner_tube"  X_Y_Z="0.; 0.; -45.8" />
+  <posXYZ  volume="Copper_disk_Main_part"  X_Y_Z="0.; 0.; 434.2" />
+  <posXYZ  volume="Plate_IP" />
+  <posXYZ  volume="HUB_Main_part_outer_tube"  X_Y_Z="0.; 0.; 430.3" />
+  <posXYZ  volume="Disque_shileding_ext"  X_Y_Z="0.; 0.; 944.2" />
+  <posXYZ  volume="Plaque_polyboron_droite_v2"  X_Y_Z="0.; 0.; 1064.25" />
+  <posXYZ  volume="Plate_HO"  X_Y_Z="0.; 0.; 853.2" />
+  <posXYZ  volume="Plate_HO_SupportTube"  X_Y_Z="0.; 0.; 902.95" />
+</composition>
+<!-- End Other Parts of New Hub -->
+
+<composition  name="New_Hub" >
+  <posXYZ  volume="Hub_Other_Parts_Assembly" />
+  <posXYZ  volume="Horizontal_Shielding" />
+</composition>
+<!-- ************************************************************************************** End New Hub *********************************************** -->
+
+<!-- **************************************************** Inner Spoke ******************************************************************* -->
+<gvxysx name="Base_Leg" material="Aluminium" dZ="390.">
+  <gvxy_point X_Y="40.; 531.5"/>
+  <gvxy_point X_Y=" 40.; -501.5"/>
+  <gvxy_point X_Y="150.; -501.5"/>
+  <gvxy_point X_Y=" 150.; -531.5"/>
+</gvxysx>
+
+<gvxy name="JOINING_BAR3" material="Aluminium" dZ="150.">
+  <gvxy_point X_Y="75.; 23."/>
+  <gvxy_point X_Y="75.; 7."/>
+  <gvxy_point X_Y="640.; 7."/>
+  <gvxy_point X_Y="640.; -23."/>
+  <gvxy_point X_Y="-640.; -23."/>
+  <gvxy_point X_Y="-640.; 7."/>
+  <gvxy_point X_Y="-75.; 7."/>
+  <gvxy_point X_Y="-75.; 23."/>
+</gvxy>
+
+<box  name="LATERAL_PLATE_L"      material="Aluminium"  X_Y_Z="21.; 1680.; 390. " />
+
+<gvxysx name="Front_plate2" material="Aluminium" dZ="14.">
+  <gvxy_point X_Y="98.65; 2867.18"/>
+  <gvxy_point X_Y=" 89.94; 2805.19"/>
+  <gvxy_point X_Y="89.94; 2587.18"/>
+</gvxysx>
+
+<gvxysx name="LS_OUTER3_MainBox" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="323.7; 450."/>
+  <gvxy_point X_Y=" 197.21; -450."/>
+</gvxysx>
+
+<box  name="LS_OUTER3_CutBox"      material="Aluminium"  X_Y_Z="250.; 600.; 35. " />
+
+<subtraction  name="LS_OUTER3" >
+  <posXYZ   volume="LS_OUTER3_MainBox"  />
+  <posXYZ   volume="LS_OUTER3_CutBox"  X_Y_Z=" 0.; -50.; 0. " />
+</subtraction>
+
+<gvxysx name="REAR_PLATE1" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="176.95; 309.25"/>
+  <gvxy_point X_Y=" 90.03; -309.25"/>
+</gvxysx>
+
+<gvxy name="REAR_PLATE2" material="Aluminium" dZ="30.">
+ <gvxy_point X_Y="273.95; 174.5"/>
+  <gvxy_point X_Y="224.9; -174.5"/>
+  <gvxy_point X_Y="125.; -174.5"/>
+  <gvxy_point X_Y="125.; -154.5"/>
+  <gvxy_point X_Y="-125.; -154.5"/>
+  <gvxy_point X_Y="-125.; -174.5"/>
+  <gvxy_point X_Y="-224.9; -174.5"/>
+  <gvxy_point X_Y="-273.95; 174.5"/>
+</gvxy>
+
+<box  name="SHIM1"      material="Aluminium"  X_Y_Z="700.; 150.; 21.6 " />
+<box  name="SHIM2"      material="Aluminium"  X_Y_Z="350.; 150.; 21.6 " />
+
+<gvxysx name="REAR_PLATE3" material="Aluminium" dZ="30.">
+  <gvxy_point X_Y="323.7; 80."/>
+  <gvxy_point X_Y=" 301.21; -80."/>
+</gvxysx>
+
+<box  name="KM_FRONT_PLATE1"      material="ShieldSteel"  X_Y_Z="34.; 160.; 250. " />
+<box  name="KM_LOCKING_PLATE1"      material="ShieldSteel"  X_Y_Z="20.; 120.; 200. " />
+
+<gvxy name="JOINING_BAR2" material="Aluminium" dZ="29.">
+  <gvxy_point X_Y="175.; 75."/>
+  <gvxy_point X_Y="964.81; -64.27"/>
+  <gvxy_point X_Y="938.77; -211.99"/>
+  <gvxy_point X_Y="161.88; -75."/>
+  <gvxy_point X_Y="-161.88; -75."/>
+  <gvxy_point X_Y="-938.77; -211.99"/>
+  <gvxy_point X_Y="-964.81; -64.27"/>
+  <gvxy_point X_Y="-175.; 75."/>
+</gvxy>
+
+<gvxy name="JOINING_BAR1" material="Aluminium" dZ="29.">
+  <gvxy_point X_Y="350.; 75."/>
+  <gvxy_point X_Y="1196.93; -74.34"/>
+  <gvxy_point X_Y="1170.88; -222.06"/>
+  <gvxy_point X_Y="336.88; -75."/>
+  <gvxy_point X_Y="-336.88; -75."/>
+  <gvxy_point X_Y="-1170.88; -222.06"/>
+  <gvxy_point X_Y="-1196.93; -74.34"/>
+  <gvxy_point X_Y="-350.; 75."/>
+</gvxy>
+
+<composition  name="Inner_Spoke_Assembly" >
+  <posXYZ  volume="Base_Leg"  X_Y_Z="0.; 1301.5; 0." />
+  <posXYZ  volume="JOINING_BAR1"  X_Y_Z="0.; 4385.; -231.2" />
+  <posXYZ  volume="JOINING_BAR2"  X_Y_Z="0.; 3065.; -231.2" />
+  <posXYZ  volume="JOINING_BAR3"  X_Y_Z="0.; 1715.; -218.05" rot="   90. ; 0. ; 0." />
+  <posXYZ  volume="LATERAL_PLATE_L"  X_Y_Z="-217.3; 3635.56; 0." rot="   0. ; 0. ; 8." />
+  <posXYZ  volume="LATERAL_PLATE_L"  X_Y_Z="217.3; 3635.56; 0." rot="   0. ; 0. ; -8." />
+  <posXYZ  volume="Front_plate2"  X_Y_Z="0.; 0.; 188." />
+  <posXYZ  volume="LS_OUTER3"  X_Y_Z="0.; 4018.41; 180." />
+  <posXYZ  volume="REAR_PLATE1"  X_Y_Z="0.; 3114.99; -180." />
+  <posXYZ  volume="REAR_PLATE2"  X_Y_Z="0.; 3939.93; -180." />
+  <posXYZ  volume="REAR_PLATE3"  X_Y_Z="0.; 4388.42; -180." />
+  <posXYZ  volume="SHIM1"  X_Y_Z="0.; 4385.; -205.85" />
+  <posXYZ  volume="SHIM2"  X_Y_Z="0.; 3065.; -205.85" />
+  <posXYZ  volume="KM_FRONT_PLATE1"  X_Y_Z="318.34; 4156.56; 25." rot="   0. ; 0. ; -8." />
+  <posXYZ  volume="KM_FRONT_PLATE1"  X_Y_Z="-318.34; 4156.56; 25." rot="   0. ; 0. ; 8." />
+  <posXYZ  volume="KM_LOCKING_PLATE1"  X_Y_Z="270.71; 4163.26; 0." rot="   0. ; 0. ; -8." />
+  <posXYZ  volume="KM_LOCKING_PLATE1"  X_Y_Z="-270.71; 4163.26; 0." rot="   0. ; 0. ; 8." />
+</composition>
+
+<composition  name="Inner_Spoke" >
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 22.5" />
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 67.5" />
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 112.5" />
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 157.5" />
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 202.5" />
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 247.5" />
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 292.5" />
+  <posXYZ  volume="Inner_Spoke_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 337.5" />
+</composition>
+
+<!-- *********************************************************************************** End Inner Spoke **************************************************\
+************************************* -->
+
+<!-- *********************************************************************************** Outer Spoke ******************************************************\
+************************************* -->
+
+<box  name="NSW_F1_spoke_MainBox"      material="Aluminium"  X_Y_Z="135.; 1060.; 185. " />
+<box  name="NSW_F1_spoke_CutBox"      material="Aluminium"  X_Y_Z="111.; 1070.; 161. " />
+
+<subtraction  name="NSW_F1_spoke" >
+  <posXYZ  volume="NSW_F1_spoke_MainBox" />
+  <posXYZ  volume="NSW_F1_spoke_CutBox" />
+</subtraction>
+<box  name="NSW_F1_spoke_Bot_Plate"      material="Aluminium"  X_Y_Z="300.; 48.; 300. " />
+
+<gvxysx name="Plaque_interface2" material="Aluminium" dZ="37.">
+  <gvxy_point X_Y="182.5; 375."/>
+  <gvxy_point X_Y="146.5; 213.2"/>
+  <gvxy_point X_Y="90.; -375."/>
+</gvxysx>
+
+<gvxysx name="Plaque_interface2.1" material="Aluminium" dZ="45.">
+  <gvxy_point X_Y="182.5; 375."/>
+  <gvxy_point X_Y="146.5; 213.2"/>
+  <gvxy_point X_Y="90.; -375."/>
+</gvxysx>
+
+<box  name="NSW_SS_spoke_Pillar_MainBox"      material="Aluminium"  X_Y_Z="135.; 2683.25; 185. " />
+<box  name="NSW_SS_spoke_Pillar_CutBox"      material="Aluminium"  X_Y_Z="113.; 2685.; 163. " />
+
+<subtraction  name="NSW_SS_spoke_Pillar" >
+  <posXYZ  volume="NSW_SS_spoke_Pillar_MainBox" />
+  <posXYZ  volume="NSW_SS_spoke_Pillar_CutBox" />
+</subtraction>
+
+<box  name="Spoke_Joint"      material="ShieldSteel"  X_Y_Z="75.; 85.; 124.4 " />
+
+<gvxysx name="Manifolds_Support_Main" material="Aluminium" dZ="150.">
+  <gvxy_point X_Y="585.; 75."/>
+  <gvxy_point X_Y=" 551.74; -75."/>
+</gvxysx>
+
+<box  name="Manifolds_Support_CutBox1"      material="Aluminium"  X_Y_Z="1180.; 140.; 140. " />
+<box  name="Manifolds_Support_CutBox2"      material="Aluminium"  X_Y_Z="160.; 90.; 160. " />
+
+<subtraction  name="Manifolds_Support" >
+  <posXYZ  volume="Manifolds_Support_Main" />
+  <posXYZ  volume="Manifolds_Support_CutBox1" />
+  <posXYZ  volume="Manifolds_Support_CutBox2"  X_Y_Z="135.; -45.; 0." />
+</subtraction>
+
+<box  name="Cale"      material="Aluminium"  X_Y_Z="135.; 280.; 52. " />
+<box  name="JD_JOINT2.1_Plate1"      material="Aluminium"  X_Y_Z="250.; 270.; 20. " />
+<box  name="Shim_JD"      material="Aluminium"  X_Y_Z="250.; 270.; 29. " />
+<box  name="JD_JOINT1_Pipe_MainBox" material="Aluminium"  X_Y_Z="1300.; 120.; 80." />
+<box  name="JD_JOINT1_Pipe_CutBox"      material="Aluminium"  X_Y_Z="1305.; 100.; 60. " />
+
+<subtraction  name="JD_JOINT1_Pipe" >
+  <posXYZ  volume="JD_JOINT1_Pipe_MainBox"  />
+  <posXYZ  volume="JD_JOINT1_Pipe_CutBox"  />
+</subtraction>
+
+<box  name="JD_JOINT2_Pipe_MainBox" material="Aluminium"  X_Y_Z="900.; 120.; 80." />
+
+<subtraction  name="JD_JOINT2_Pipe" >
+  <posXYZ  volume="JD_JOINT2_Pipe_MainBox" />
+  <posXYZ  volume="JD_JOINT1_Pipe_CutBox"  />
+</subtraction>
+
+<box  name="KM_FRONT_PLATE.1.1"      material="ShieldSteel"  X_Y_Z="27.; 272.; 120. " />
+<box  name="Manifolds_Support_Plate"      material="Aluminium"  X_Y_Z="9.8; 275.; 175. " />
+<box  name="AL_BAR_KM_INCLINED_PLATE"      material="Aluminium"  X_Y_Z="290.; 38.; 67. " />
+
+<composition  name="Outer_Spoke_Assembly" >
+  <posXYZ  volume="NSW_F1_spoke"  X_Y_Z="0.; 1350.; 0." />
+  <posXYZ  volume="NSW_F1_spoke_Bot_Plate"  X_Y_Z="0.; 795.95; 0." />
+  <posXYZ  volume="Manifolds_Support"  X_Y_Z="0.; 4515.33; 0." />
+  <posXYZ  volume="Plaque_interface2"  X_Y_Z="0.; 1745.; 111.05" />
+  <posXYZ  volume="Plaque_interface2.1"  X_Y_Z="0.; 1745.; -115.05" />
+  <posXYZ  volume="NSW_SS_spoke_Pillar"  X_Y_Z="371.; 3267.85; 0." rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="NSW_SS_spoke_Pillar"  X_Y_Z="-371.; 3267.85; 0." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="610.52; 4348.24; 154.75" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="322.65; 3049.77; 154.75" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="-610.52; 4348.24; 154.75" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="-322.65; 3049.77; 154.75" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Cale"  X_Y_Z="537.79; 4020.21; -118.55" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Cale"  X_Y_Z="338.24; 3120.06; -118.55" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Cale"  X_Y_Z="-537.79; 4020.21; -118.55" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Cale"  X_Y_Z="-338.24; 3120.06; -118.55" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="515.; 4020.2; -154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="315.; 3120.6; -154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="-515.; 4020.2; -154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="-315.; 3120.6; -154.6" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="515.; 4020.2; -261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="315.; 3120.6; -261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="-515.; 4020.2; -261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="-315.; 3120.6; -261.55" />
+  <posXYZ  volume="JD_JOINT1_Pipe"  X_Y_Z="0.; 4020.2; -207." />
+  <posXYZ  volume="JD_JOINT2_Pipe"  X_Y_Z="0.; 3120.6; -207." />
+  <posXYZ  volume="KM_FRONT_PLATE.1.1"  X_Y_Z="641.41; 4289.16; 0." rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="KM_FRONT_PLATE.1.1"  X_Y_Z="-641.41; 4289.16; 0." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Manifolds_Support_Plate"  X_Y_Z="560.93; 4459.11; 0." rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Manifolds_Support_Plate"  X_Y_Z="-560.93; 4459.11; 0." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="AL_BAR_KM_INCLINED_PLATE"  X_Y_Z="-243.; 4099.25; -228.5" />
+</composition>
+
+<!-- Outer Spoke Foot -->
+<gvxysx name="Plaque_interface2_SpecMain" material="Aluminium" dZ="37.">
+  <gvxy_point X_Y="182.5; 375."/>
+  <gvxy_point X_Y="146.5; 213.2"/>
+  <gvxy_point X_Y="90.; -375."/>
+</gvxysx>
+
+<box  name="Plaque_interface2_Spec_CutBox"      material="Aluminium"  X_Y_Z="160.; 260.; 13. " />
+
+<subtraction  name="Plaque_interface2_Spec" >
+  <posXYZ  volume="Plaque_interface2_SpecMain" />
+  <posXYZ  volume="Plaque_interface2_Spec_CutBox"  X_Y_Z="-120.94; 337.19; -12.5" rot="   0. ; 0. ; 12.5" />
+</subtraction>
+
+<gvxysx name="Plaque_interface2.1_SpecMain" material="Aluminium" dZ="45.">
+  <gvxy_point X_Y="182.5; 375."/>
+  <gvxy_point X_Y="146.5; 213.2"/>
+  <gvxy_point X_Y="90.; -375."/>
+</gvxysx>
+
+<subtraction  name="Plaque_interface2.1_Spec" >
+  <posXYZ  volume="Plaque_interface2.1_SpecMain" />
+  <posXYZ  volume="Plaque_interface2_Spec_CutBox"  X_Y_Z="-120.94; 337.19; 16.5" rot="   0. ; 0. ; 12.5" />
+</subtraction>
+
+<box  name="NSW_SS_spoke_PillarSpec_MainBox"      material="ShieldSteel"  X_Y_Z="135.; 2818.1; 210. " />
+<box  name="NSW_SS_spoke_PillarSpec_CutBox"      material="Aluminium"  X_Y_Z="91.; 2820.; 166. " />
+
+<subtraction  name="NSW_SS_spokeSpec_Pillar" >
+  <posXYZ  volume="NSW_SS_spoke_PillarSpec_MainBox" />
+  <posXYZ  volume="NSW_SS_spoke_PillarSpec_CutBox" />
+</subtraction>
+
+<box  name="Cale_Spec"      material="Aluminium"  X_Y_Z="135.; 280.; 38.6 " />
+<box  name="Spoke_Joint1.2"      material="Aluminium"  X_Y_Z="66.; 100.; 111.9 " />
+
+<box  name="BOTTOM_PLATE.1_Horisontal_Plate"      material="ShieldSteel"  X_Y_Z="29.8; 775.; 495. " />
+<box  name="BOTTOM_PLATE.1_Vertical_Main_Plate"      material="ShieldSteel"  X_Y_Z="460.; 640.; 35. " />
+
+<gvxy name="Connecting_Plates2.1" material="Aluminium" dZ="22.">
+  <gvxy_point X_Y="-252.; 130.65"/>
+  <gvxy_point X_Y="70.; 130.65"/>
+  <gvxy_point X_Y="252.; 25.65"/>
+  <gvxy_point X_Y="258.6; -124.1"/>
+  <gvxy_point X_Y="108.7; -130.65"/>
+  <gvxy_point X_Y="-252.; 19.35"/>
+</gvxy>
+
+<box  name="Tube_alu_feet_MainBox"      material="Aluminium"  X_Y_Z="1050.; 135.; 185. " />
+<box  name="Tube_alu_feet_CutBox"      material="Aluminium"  X_Y_Z="1055.; 111.4; 161.4 " />
+
+<subtraction  name="Tube_alu_feet" >
+  <posXYZ  volume="Tube_alu_feet_MainBox" />
+  <posXYZ  volume="Tube_alu_feet_CutBox"  X_Y_Z="-120.94; 337.19; 16.5" rot="   0. ; 0. ; 12.5" />
+</subtraction>
+
+<box  name="Fix_nut"      material="ShieldSteel"  X_Y_Z="50.; 52.; 290. " />
+
+<gvxy name="Beam_Interface" material="Aluminium" dZ="300.">
+  <gvxy_point X_Y="-80.; 73.4"/>
+  <gvxy_point X_Y="80.; 73.4"/>
+  <gvxy_point X_Y="80.; -73.4"/>
+  <gvxy_point X_Y="-80.; 28.5"/>
+</gvxy>
+
+<gvxy name="Beam_Interface2" material="Aluminium" dZ="300.">
+  <gvxy_point X_Y="-80.; 79.8"/>
+  <gvxy_point X_Y="80.; 79.8"/>
+  <gvxy_point X_Y="80.; 12.6"/>
+  <gvxy_point X_Y="-80.; -79.8"/>
+</gvxy>
+
+<box  name="LS_T_Joint"      material="ShieldSteel"  X_Y_Z="80.; 70.; 134.9 " />
+<box  name="LS_T_Joint2"      material="ShieldSteel"  X_Y_Z="77.; 67.; 147.4 " />
+
+<gvxy name="Renfort_Bas1_MainBox" material="Aluminium" dZ="135.">
+  <gvxy_point X_Y="-337.73; -67.5"/>
+  <gvxy_point X_Y="-251.72; 67.5"/>
+  <gvxy_point X_Y="251.72; 67.5"/>
+  <gvxy_point X_Y="337.27; -67.5"/>
+</gvxy>
+
+<box  name="Renfort_Bas1_CutBox"      material="Aluminium"  X_Y_Z="680.; 115.; 115. " />
+
+
+<subtraction  name="Renfort_Bas1" >
+  <posXYZ  volume="Renfort_Bas1_MainBox" />
+  <posXYZ  volume="Renfort_Bas1_CutBox" />
+</subtraction>
+
+<composition  name="Outer_Spoke_Assembly_FOOT1" >
+  <posXYZ  volume="NSW_F1_spoke"  X_Y_Z="0.; 1350.; 0." />
+  <posXYZ  volume="NSW_F1_spoke_Bot_Plate"  X_Y_Z="0.; 795.95; 0." />
+  <posXYZ  volume="Plaque_interface2_Spec"  X_Y_Z="0.; 1745.; 111.05" />
+  <posXYZ  volume="Plaque_interface2.1_Spec"  X_Y_Z="0.; 1745.; -115.05" />
+  <posXYZ  volume="NSW_SS_spoke_Pillar"  X_Y_Z="371.; 3267.85; 0." rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="NSW_SS_spokeSpec_Pillar"  X_Y_Z="-385.59; 3333.67; 0." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="515.; 4020.2; -261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="315.; 3120.6; -261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="-515.; 4020.2; -261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="-315.; 3120.6; -261.55" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="515.; 4020.2; -154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="315.; 3120.6; -154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="-515.; 4020.2; -154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="-315.; 3120.6; -154.6" />
+  <posXYZ  volume="Cale"  X_Y_Z="537.79; 4020.21; -118.55" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Cale"  X_Y_Z="338.24; 3120.06; -118.55" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Cale_Spec"  X_Y_Z="-537.79; 4020.21; -124.35" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Cale_Spec"  X_Y_Z="-338.24; 3120.06; -124.35" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="JD_JOINT1_Pipe"  X_Y_Z="0.; 4020.2; -207." />
+  <posXYZ  volume="JD_JOINT2_Pipe"  X_Y_Z="0.; 3120.6; -207." />
+  <posXYZ  volume="AL_BAR_KM_INCLINED_PLATE"  X_Y_Z="-243.; 4099.25; -228.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="322.65; 3049.77; 154.75" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="610.52; 4348.24; 154.75" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Spoke_Joint1.2"  X_Y_Z="-322.65; 3049.28; 161." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Spoke_Joint1.2"  X_Y_Z="-610.4; 4347.75; 161." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="KM_FRONT_PLATE.1.1"  X_Y_Z="641.41; 4289.16; 0." rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="BOTTOM_PLATE.1_Horisontal_Plate"  X_Y_Z="-675.29; 4889.64; -29." rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="BOTTOM_PLATE.1_Vertical_Main_Plate"  X_Y_Z="-491.47; 4727.04; -257.5" rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="Connecting_Plates2.1"  X_Y_Z="475.73; 4596.28; 103.55" rot="   0. ; 0. ; -15." />
+  <posXYZ  volume="Connecting_Plates2.1"  X_Y_Z="475.73; 4596.28; -103.55" rot="   0. ; 0. ; -15." />
+  <posXYZ  volume="Tube_alu_feet"  X_Y_Z="35.49; 4779.63; 0." rot="   0. ; 0. ; -15." />
+  <posXYZ  volume="Fix_nut"  X_Y_Z="-840.79; 4666.23; -5." rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="Fix_nut"  X_Y_Z="-443.82; 5063.2; -5." rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="Beam_Interface"  X_Y_Z="-716.12; 4723.86; 0." rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="Beam_Interface2"  X_Y_Z="-496.92; 4934.01; 0." rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="LS_T_Joint"  X_Y_Z="-649.; 4560.58; -172.5" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="LS_T_Joint2"  X_Y_Z="-356.49; 4881.55; -166.25" rot="   0. ; 0. ; 75." />
+  <posXYZ  volume="Renfort_Bas1"  X_Y_Z="-329.24; 4539.98; 0." rot="   0. ; 0. ; 45." />
+</composition>
+
+<composition  name="Outer_Spoke_Assembly_FOOT2" >
+  <posXYZ  volume="NSW_F1_spoke"  X_Y_Z="0.; 1350.; 0." />
+  <posXYZ  volume="NSW_F1_spoke_Bot_Plate"  X_Y_Z="0.; 795.95; 0." />
+  <posXYZ  volume="Plaque_interface2_Spec"  X_Y_Z="0.; 1745.; 111.05" />
+  <posXYZ  volume="Plaque_interface2.1_Spec"  X_Y_Z="0.; 1745.; -115.05" />
+  <posXYZ  volume="NSW_SS_spoke_Pillar"  X_Y_Z="371.; 3267.85; 0." rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="NSW_SS_spokeSpec_Pillar"  X_Y_Z="-385.59; 3333.67; 0." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="515.; 4020.2; 261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="315.; 3120.6; 261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="-515.; 4020.2; 261.55" />
+  <posXYZ  volume="Shim_JD"  X_Y_Z="-315.; 3120.6; 261.55" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="515.; 4020.2; 154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="315.; 3120.6; 154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="-515.; 4020.2; 154.6" />
+  <posXYZ  volume="JD_JOINT2.1_Plate1"  X_Y_Z="-315.; 3120.6; 154.6" />
+  <posXYZ  volume="Cale"  X_Y_Z="537.79; 4020.21; 118.55" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Cale"  X_Y_Z="338.24; 3120.06; 118.55" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Cale_Spec"  X_Y_Z="-537.79; 4020.21; 124.35" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Cale_Spec"  X_Y_Z="-338.24; 3120.06; 124.35" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="JD_JOINT1_Pipe"  X_Y_Z="0.; 4020.2; 207." />
+  <posXYZ  volume="JD_JOINT2_Pipe"  X_Y_Z="0.; 3120.6; 207." />
+  <posXYZ  volume="AL_BAR_KM_INCLINED_PLATE"  X_Y_Z="-243.; 4099.25; 228.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="322.65; 3049.77; -154.75" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Spoke_Joint"  X_Y_Z="610.52; 4348.24; -154.75" rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="Spoke_Joint1.2"  X_Y_Z="-322.65; 3049.28; -161." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="Spoke_Joint1.2"  X_Y_Z="-610.4; 4347.75; -161." rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="KM_FRONT_PLATE.1.1"  X_Y_Z="641.41; 4289.16; 0." rot="   0. ; 0. ; -12.5" />
+  <posXYZ  volume="BOTTOM_PLATE.1_Horisontal_Plate"  X_Y_Z="-675.29; 4889.64; 29." rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="BOTTOM_PLATE.1_Vertical_Main_Plate"  X_Y_Z="-491.47; 4727.04; 257.5" rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="Connecting_Plates2.1"  X_Y_Z="475.73; 4596.28; -103.55" rot="   0. ; 0. ; -15." />
+  <posXYZ  volume="Connecting_Plates2.1"  X_Y_Z="475.73; 4596.28; 103.55" rot="   0. ; 0. ; -15." />
+  <posXYZ  volume="Tube_alu_feet"  X_Y_Z="35.49; 4779.63; 0." rot="   0. ; 0. ; -15." />
+  <posXYZ  volume="Fix_nut"  X_Y_Z="-840.79; 4666.23; -5." rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="Fix_nut"  X_Y_Z="-443.82; 5063.2; -5." rot="   0. ; 0. ; -45." />
+  <posXYZ  volume="Beam_Interface"  X_Y_Z="-716.12; 4723.86; 0." rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="Beam_Interface2"  X_Y_Z="-496.92; 4934.01; 0." rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="LS_T_Joint"  X_Y_Z="-649.; 4560.58; 172.5" rot="   0. ; 0. ; 12.5" />
+  <posXYZ  volume="LS_T_Joint2"  X_Y_Z="-356.49; 4881.55; 166.25" rot="   0. ; 0. ; 75." />
+  <posXYZ  volume="Renfort_Bas1"  X_Y_Z="-329.24; 4539.98; 0." rot="   0. ; 0. ; 45." />
+</composition>
+<!-- End Outer Spoke Foot -->
+
+
+<composition  name="Outer_Spoke" >
+  <posXYZ  volume="Outer_Spoke_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 0." />
+  <posXYZ  volume="Outer_Spoke_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="Outer_Spoke_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 90." />
+  <posXYZ  volume="Outer_Spoke_Assembly_FOOT1"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 135." />
+  <posXYZ  volume="Outer_Spoke_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 180." />
+  <posXYZ  volume="Outer_Spoke_Assembly_FOOT2"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 180. ; 225." />
+  <posXYZ  volume="Outer_Spoke_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 270." />
+  <posXYZ  volume="Outer_Spoke_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 315." />
+</composition>
+<!-- ********************************************************************************* End Outer Spoke ****************************************************\
+************************************** -->
+
+<!-- *********************************************************************************** LSO LSI Connection ***********************************************\
+************************************* -->
+
+<box  name="LSO_LSI_connection_Rot"      material="ShieldSteel"  X_Y_Z="63.; 754.1; 46. " />
+
+<composition  name="LSO_LSI_connection_Pos" >
+  <posXYZ  volume="LSO_LSI_connection_Rot"  X_Y_Z="0.; 2210.09; 0." />
+</composition>
+
+<composition  name="LSO_LSI_Connection" >
+  <posXYZ  volume="LSO_LSI_connection_Pos"  X_Y_Z="0.; 0.; 870.2" rot="   0. ; 0. ; 22.5" />
+  <posXYZ  volume="LSO_LSI_connection_Pos"  X_Y_Z="0.; 0.; 870.2" rot="   0. ; 0. ; 67.5" />
+  <posXYZ  volume="LSO_LSI_connection_Pos"  X_Y_Z="0.; 0.; 870.2" rot="   0. ; 0. ; -22.5" />
+  <posXYZ  volume="LSO_LSI_connection_Pos"  X_Y_Z="0.; 0.; 870.2" rot="   0. ; 0. ; -67.5" />
+</composition>
+
+<!-- *********************************************************************************** End LSO LSI Connection *******************************************\
+************************************* -->
+
+<!-- *********************************************************************************** Alignment Bars ***************************************************\
+**************************************** -->
+
+<!-- SS Bar -->
+<tubs   name="SS_Bar_Tube"      material="Aluminium"   Rio_Z="0.; 49.1; 2382." />
+
+<composition  name="SS_Bar_Assembly" >
+  <posXYZ  volume="SS_Bar_Tube"  X_Y_Z="69.2; 3364.6; 0" rot="   90. ; 0. ; -3.35" />
+</composition>
+
+<composition  name="SS_Bar" >
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 0." />
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 90." />
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 135." />
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 180." />
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 225." />
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 270." />
+  <posXYZ  volume="SS_Bar_Assembly"  X_Y_Z="0.; 0.; 233.2" rot="   0. ; 0. ; 315." />
+</composition>
+<!-- End SS Bar -->
+
+<!-- LS Bar -->
+<tubs   name="LS_Bar_Tube"      material="Aluminium"   Rio_Z="0.; 48.; 2340." />
+<box  name="LS_Arm"      material="Aluminium"  X_Y_Z="1010.; 40.; 50. " />
+
+<composition  name="LS_Bar_Assembly" >
+  <posXYZ  volume="LS_Bar_Tube"  X_Y_Z="1286.4; 3086.18; 0." rot="   90. ; 0. ; -25." />
+  <posXYZ  volume="LS_Arm"  X_Y_Z="1789.34; 4164.73; 0." rot="   0. ; 0. ; -25." />
+</composition>
+
+<composition  name="LS_Bar" >
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 0." />
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 45." />
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 90." />
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 135." />
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 180." />
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 225." />
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 270." />
+  <posXYZ  volume="LS_Bar_Assembly"  X_Y_Z="0.; 0.; 697.2" rot="   0. ; 0. ; 315." />
+</composition>
+<!-- End LS Bar -->
+
+<!-- *********************************************************************************** End Alignment Bars ***********************************************\
+******************************************** -->
+
+
+<composition  name="NSW_Aluminum_Structure_and_HUB_Assembly" >
+  <posXYZ  volume="New_Hub" />
+  <posXYZ  volume="Inner_Spoke" />
+  <posXYZ  volume="LSO_LSI_Connection" />
+  <posXYZ  volume="Outer_Spoke" />
+  <posXYZ  volume="SS_Bar" />
+  <posXYZ  volume="LS_Bar" />
+</composition>
+
+<composition  name="NSW_Aluminum_Structure_and_HUB_SideA" >
+  <posXYZ  volume="NSW_Aluminum_Structure_and_HUB_Assembly"  X_Y_Z="0.; 0.; 6943.8" rot="   0. ; 0. ; 0." />
+</composition>
+
+<composition  name="NSW_Aluminum_Structure_and_HUB_SideC" >
+  <posXYZ  volume="NSW_Aluminum_Structure_and_HUB_Assembly"  X_Y_Z="0.; 0.; -6943.8" rot="   0. ; 180. ; 0." />
+</composition>
+
+<composition  name="NSW_Aluminum_Structure_and_HUB" >
+  <posXYZ  volume="NSW_Aluminum_Structure_and_HUB_SideA" />
+  <posXYZ  volume="NSW_Aluminum_Structure_and_HUB_SideC" />
+</composition>
+
+</section>
+
+<!-- ===========================================NJD=========================================== -->
+
+<section name       = "NJD Disk"
+         version    = "0.0"
+         date       = "16-11-2016"
+         author     = "Georgian Engineering Team - Niko Tsutskiridze"
+         top_volume = "NJD_Disk">
+
+<!-- NJD Disk -->
+
+<!-- main disk-->
+<tubs name="MD01"   material="ShieldSteel"  Rio_Z="430.; 4360.; 40."  nbPhi="32." />
+<tubs name="MD02"   material="ShieldSteel"  Rio_Z="430.; 2700.;  48.7"  nbPhi="32." />
+<tubs name="MDB01_Cut"   material="ShieldSteel"  Rio_Z="0.; 840.; 3."  nbPhi="32." />
+
+<gvxy   name="MD03"   material="ShieldSteel"  dZ="40." >
+  <gvxy_point X_Y="-3370.; -3950."/>
+  <gvxy_point X_Y="-3370.; -3880."/>
+  <gvxy_point X_Y="-3679.5; -2484."/>
+  <gvxy_point X_Y="-3990.; -1734.39"/>
+  <gvxy_point X_Y="-2599.16; -3470."/>
+  <gvxy_point X_Y="-2670.; -3570."/>
+  <gvxy_point X_Y="-2670.; -3950."/>
+</gvxy>
+
+<subtraction name="MDB01_Un" >
+ <posXYZ volume="MD01" />
+ <posXYZ volume="MDB01_Cut" X_Y_Z=" 0.; 0.; 19.4 " />
+</subtraction>
+
+<union name="MDB01" >
+ <posXYZ volume="MDB01_Un" />
+ <posXYZ volume="MD03"  />
+ <posXYZ volume="MD03" rot=" 0.; 180.; 0."/>
+</union>
+<!-- End main disk-->
+
+
+<!-- Ret.Flux -->
+<tubs name="FLUX_Box"   material="ShieldSteel"  Rio_Z="3800.; 4360.; 39.9"  nbPhi="32." />
+<box  name="FLUX_Cut_Box" material="ShieldSteel"  X_Y_Z="2200.; 400.;  50." />
+
+<subtraction name="FLUX" >
+ <posXYZ volume="FLUX_Box" />
+ <posXYZ volume="FLUX_Cut_Box" X_Y_Z=" -1930.; 3430.; 0." />
+</subtraction>
+<!-- End Ret.Flux -->
+
+<!-- FIXING PLATE -->
+<box  name="FIXING_PLATE" material="ShieldSteel"  X_Y_Z="350.; 975.;  40.9" />
+<box  name="FIXING_PLATE_Special" material="ShieldSteel"  X_Y_Z="350.; 787.5;  40.9" />
+
+<composition name="FIXING_PLATE_Pos" >
+ <posXYZ volume="FIXING_PLATE" X_Y_Z=" 0.; 3252.5; 0." />
+</composition>
+
+<composition name="FIXING_PLATE_Ass" >
+ <posXYZ volume="FIXING_PLATE_Special" X_Y_Z=" -1208.8; 2918.31; 0." rot=" 0.; 0.; 22.5" />
+ <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 67.5" />
+ <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 112.5" />
+ <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 157.5" />
+ <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0."  rot=" 0.; 0.; 202.5" />
+ <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0."  rot=" 0.; 0.; 247.5" />
+ <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0."  rot=" 0.; 0.; 292.5" />
+ <posXYZ volume="FIXING_PLATE_Pos" X_Y_Z=" 0.; 0.; 0."  rot=" 0.; 0.; 337.5" />
+</composition>
+<!-- End FIXING PLATE -->
+
+<!-- NJD feet-->
+<gvxy   name="JF01"   material="ShieldSteel"  dZ="37.3" >
+  <gvxy_point X_Y="-3300.; -3950."/>
+  <gvxy_point X_Y="-3300.; -3480."/>
+  <gvxy_point X_Y="-3270.; -3450."/>
+  <gvxy_point X_Y="-2730.; -3450."/>
+  <gvxy_point X_Y="-2700.; -3480."/>
+  <gvxy_point X_Y="-2700.; -3950."/>
+</gvxy>
+
+<gvxy   name="JF02"   material="ShieldSteel"  dZ="35." >
+  <gvxy_point X_Y="-342.4; -3950."/>
+  <gvxy_point X_Y="-342.4; -3930."/>
+  <gvxy_point X_Y="-77.4; -3470."/>
+  <gvxy_point X_Y="-57.4; -3470."/>
+  <gvxy_point X_Y="-57.4; -3920."/>
+  <gvxy_point X_Y="-87.4; -3950."/>
+</gvxy>
+
+<gvxy   name="JF03"   material="ShieldSteel"  dZ="48." >
+  <gvxy_point X_Y="-3370.; -362."/>
+  <gvxy_point X_Y="-3370.; 704."/>
+  <gvxy_point X_Y="-3495.; 704."/>
+  <gvxy_point X_Y="-3495.; 933."/>
+  <gvxy_point X_Y="-2660.; 933."/>
+  <gvxy_point X_Y="-2660.; 653."/>
+  <gvxy_point X_Y="-2700.; 653."/>
+  <gvxy_point X_Y="-2700.; 523."/>
+  <gvxy_point X_Y="-2590.; 523."/>
+  <gvxy_point X_Y="-2590.; -52."/>
+  <gvxy_point X_Y="-2685.; -52."/>
+  <gvxy_point X_Y="-2685.; -362."/>
+</gvxy>
+
+<gvxy   name="JF04"   material="ShieldSteel"  dZ="41.6" >
+  <gvxy_point X_Y="-453.5; -4251.1"/>
+  <gvxy_point X_Y="-453.5; -4158.1"/>
+  <gvxy_point X_Y="-603.; -4083.1"/>
+  <gvxy_point X_Y="-603.; -4038.1"/>
+  <gvxy_point X_Y="-362.; -4038.1"/>
+  <gvxy_point X_Y="-362.; -3998.1"/>
+  <gvxy_point X_Y="883.; -3998.1"/>
+  <gvxy_point X_Y="883.; -4251.1"/>
+</gvxy>
+
+<gvxy   name="JF05"   material="ShieldSteel"  dZ="356.1" >
+  <gvxy_point X_Y="-603.; -4048.1"/>
+  <gvxy_point X_Y="-603.; -4038.1"/>
+  <gvxy_point X_Y="-362.; -4038.1"/>
+  <gvxy_point X_Y="-362.; -3998.1"/>
+  <gvxy_point X_Y="-253.; -3998.1"/>
+  <gvxy_point X_Y="-253.; -4048.1"/>
+</gvxy>
+
+<box  name="JF06" material="ShieldSteel"  X_Y_Z="536.; 253.; 71.4" />
+
+<!-- Right-->
+<composition name="Right_Feet" >
+ <posXYZ volume="JF01" X_Y_Z=" 0.; 0.; 38.7" rot=" 0.; 0.; 0." />
+ <posXYZ volume="JF02" X_Y_Z=" -2802.5; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF02" X_Y_Z=" -3197.5; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF03" X_Y_Z=" 0.; -3974.05; 0." rot=" -90.; 0.; 0." />
+ <posXYZ volume="JF04" X_Y_Z=" -2805.2; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF04" X_Y_Z=" -3203.; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF05" X_Y_Z=" -3004.1; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF06" X_Y_Z=" -3000.; -4124.6; -918.75" rot=" 0.; 0.; 0." />
+</composition>
+<!-- End Right-->
+
+<!-- Left-->
+<composition name="Left_Feet" >
+ <posXYZ volume="JF01" X_Y_Z=" 0.; 0.; 38.7" rot=" 0.; 180.; 0." />
+ <posXYZ volume="JF02" X_Y_Z=" 2802.5; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF02" X_Y_Z=" 3197.5; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF03" X_Y_Z=" 0.; -3974.05; 0." rot=" -90.; 0.; 180." />
+ <posXYZ volume="JF04" X_Y_Z=" 2805.2; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF04" X_Y_Z=" 3203.; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF05" X_Y_Z=" 3004.1; 0.; 0." rot=" 0.; 90.; 0." />
+ <posXYZ volume="JF06" X_Y_Z=" 3000.; -4124.6; -918.75" rot=" 0.; 0.; 0." />
+</composition>
+<!-- End Right-->
+<!-- End NJD feet-->
+
+<composition name="JDDisk_ASide" >
+ <posXYZ volume="MDB01"  X_Y_Z=" 0.; 0.; 6880." rot=" 0.; 0.; 0." />
+ <posXYZ volume="MD02" X_Y_Z=" 0.; 0.; 6835.6" rot=" 0.; 0.;0."/>
+ <posXYZ volume="FLUX" X_Y_Z=" 0.; 0.; 6840." rot=" 0.; 0.; 0." />
+ <posXYZ volume="FIXING_PLATE_Ass" X_Y_Z=" 0.; 0.; 6839.5" rot=" 0.; 0.; 0." />
+ <posXYZ volume="Right_Feet"  X_Y_Z=" 0.; 0.; 6880." rot=" 0.; 180.; 0." />
+ <posXYZ volume="Left_Feet"  X_Y_Z=" 0.; 0.; 6880." rot=" 0.; 180.; 0." />
+</composition>
+
+<composition name="JDDisk_CSide" >
+ <posXYZ volume="MDB01"  X_Y_Z=" 0.; 0.; -6880." rot=" 0.; 180.; 0." />
+ <posXYZ volume="MD02" X_Y_Z=" 0.; 0.; -6835.6" rot=" 0.; 0.;0."/>
+ <posXYZ volume="FLUX" X_Y_Z=" 0.; 0.; -6840." rot=" 0.; 0.; 0." />
+ <posXYZ volume="FIXING_PLATE_Ass" X_Y_Z=" 0.; 0.; -6839.5" rot=" 0.; 0.; 0." />
+ <posXYZ volume="Right_Feet"  X_Y_Z=" 0.; 0.; -6880." rot=" 0.; 0.; 0." />
+ <posXYZ volume="Left_Feet"  X_Y_Z=" 0.; 0.; -6880." rot=" 0.; 0.; 0." />
+</composition>
+<!-- End NJD Disk -->
+
+<composition  name="NJD_Disk" >
+ <posXYZ volume="JDDisk_ASide"  X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 0." />
+ <posXYZ volume="JDDisk_CSide"  X_Y_Z=" 0.; 0.; 0." rot=" 0.; 0.; 0." />
+</composition>
+
+</section>
+
+<!-- ==================================================Feet========================================= -->
+
+<section name       = "A Plate"
+         version    = "0.0"
+         date       = "29-05-2017"
+         author     = "Georgian Engineering Team - Niko Tsutskiridze"
+         top_volume = "A_Plate">
+
+<gvxy name="Lateral_Plate_Main" material="ShieldSteel" dZ="21.">
+  <gvxy_point X_Y="-3300.; -4000."/>
+  <gvxy_point X_Y="-3548.3; -3235.72"/>
+  <gvxy_point X_Y="-1458.4; -560.8"/>
+  <gvxy_point X_Y="73.9; 73.9"/>
+  <gvxy_point X_Y="-628.9; -1622.8"/>
+  <gvxy_point X_Y="-818.3; -1544.4"/>
+  <gvxy_point X_Y="-1558.6; -2491.9"/>
+  <gvxy_point X_Y="-1427.8; -2980."/>
+  <gvxy_point X_Y="-0.01; -2980."/>
+  <gvxy_point X_Y="-0.01; -3280."/>
+  <gvxy_point X_Y="-1701.9; -3280."/>
+  <gvxy_point X_Y="-1995.3; -3050.8"/>
+  <gvxy_point X_Y="-2650.; -3889."/>
+  <gvxy_point X_Y="-2650.; -4000."/>
+</gvxy>
+
+<tubs name="Lateral_plate_TubeCut" material="ShieldSteel"  Rio_Z=" 0. ; 600. ; 25."  nbPhi="36." />
+
+<subtraction  name="Lateral_Plate" >
+  <posXYZ   volume="Lateral_Plate_Main"  />
+  <posXYZ   volume="Lateral_plate_TubeCut" X_Y_Z="-0.01; -0.01; 0." rot="   0. ; 0. ; 0." />
+</subtraction>
+
+<tubs     name="Anchorage"  material="ShieldSteel"  Rio_Z=" 0. ; 22.6 ; 577."  nbPhi="36." />
+
+<gvxy name="Vertical_Top_Plate" material="ShieldSteel" dZ="33.">
+  <gvxy_point X_Y="-3300.; -3998."/>
+  <gvxy_point X_Y="-3300.; -3730."/>
+  <gvxy_point X_Y="-2865.; -3730."/>
+  <gvxy_point X_Y="-2675.; -3920."/>
+  <gvxy_point X_Y="-2675.; -3998."/>
+</gvxy>
+
+<box  name="Horizontal_Plate" material="ShieldSteel"  X_Y_Z="625.; 40.6; 287. " />
+
+<composition  name="A_Plate_Assembly" >
+  <posXYZ   volume="Lateral_Plate"  />
+  <posXYZ   volume="Lateral_Plate" X_Y_Z="0.; 0.; 0." rot="0. ; 180. ; 0." />
+  <posXYZ   volume="Anchorage" X_Y_Z="-3447.; -3283.25; -299.01" rot="0. ; 0. ; 0." />
+  <posXYZ   volume="Anchorage" X_Y_Z="3447.; -3283.25; -299.01" rot="0. ; 0. ; 0." />
+  <posXYZ   volume="Vertical_Top_Plate" X_Y_Z="0.; 0.; -27.01" rot="0. ; 0. ; 0." />
+  <posXYZ   volume="Vertical_Top_Plate" X_Y_Z="0.; 0.; -27.01" rot="0. ; 180. ; 0." />
+  <posXYZ   volume="Horizontal_Plate" X_Y_Z="-2987.5; -3929.7; -187.02" rot="0. ; 0. ; 0." />
+  <posXYZ   volume="Horizontal_Plate" X_Y_Z="2987.5; -3929.7; -187.02" rot="0. ; 0. ; 0." />
+</composition>
+
+<composition  name="A_Plate_SideA" >
+   <posXYZ volume="A_Plate_Assembly" X_Y_Z=" 0. ; 0.; 7857.5"  />
+</composition>
+
+<composition  name="A_Plate_SideC" >
+   <posXYZ volume="A_Plate_Assembly" X_Y_Z=" 0. ; 0.; -7857.5" rot="0. ; 180. ; 0."  />
+</composition>
+
+<composition  name="A_Plate" >
+   <posXYZ volume="A_Plate_SideA" />
+   <posXYZ volume="A_Plate_SideC" />
+</composition>
+
+</section>
+
+<!-- ========== Poisitionning all Volumes in NSW================ -->
+
+<section name="NewSmallWheels" version="4.3" top_volume="useless" date=" April 20, 2015 " author="Daniel Lellouch">
+
+<composition name="NewSmallWheel">
+ <posXYZ volume="NSW_sTGC" X_Y_Z="0.;0.;0."/>
+ <posXYZ volume="NSW_MM" X_Y_Z="0.;0.;0." />
+ <posXYZ volume="NSW_Spacer" />
+ <posXYZ volume="NSW_Aluminum_Structure_and_HUB" />
+ <posXYZ volume="NJD_Disk" />
+ <posXYZ volume="A_Plate" />
+</composition>
+
+</section>
+
+</AGDD>
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt b/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt
index fdbd43473baf0dd1ff54fb3d71f1252b6fd8f901..d73dbd629d76f262046903dbcb2d3d7ae9acee77 100644
--- a/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/CMakeLists.txt
@@ -34,4 +34,5 @@ atlas_add_component( CscOverlay
 # Install files from the package:
 atlas_install_headers( CscOverlay )
 atlas_install_joboptions( share/*.py )
+atlas_install_python_modules( python/*.py )
 
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
index 03bc94b8412634af1138efc20c0bb5818d20b08f..f8a57876dad908cbe0df4e54076c7fa44c3d0ea8 100644
--- a/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/CscOverlay/CscOverlay.h
@@ -82,17 +82,20 @@ private:
   //Whether the data needs to be fliped by 49-strip for bug#56002
   bool needtoflip(const int address) const;
 
-  // ----------------------------------------------------------------
+  // Copying CscRawDataCollection properties
+  void copyCscRawDataCollectionProperties(const CscRawDataCollection& sourceColl, CscRawDataCollection& outColl) const;
 
-  ServiceHandle<StoreGateSvc> m_storeGateTemp;
+  // ----------------------------------------------------------------
  
   // jO controllable properties.
   // "Main" containers are read, have data from "overlay" containers added,
   // and written out with the original SG keys.
-  std::string m_mainInputCSC_Name;
-  std::string m_overlayInputCSC_Name;
+  SG::ReadHandleKey<CscRawDataContainer> m_inputDataRDOKey{this,"InputDataRDOKey","OriginalEvent_SG+CSCRDO",""};
+  SG::ReadHandleKey<CscRawDataContainer> m_inputOverlayRDOKey{this,"InputOverlayRDOKey","BkgEvent_0_SG+CSCRDO",""};
+  SG::WriteHandleKey<CscRawDataContainer> m_outputContainerKey{this,"OutputContainerKey","StoreGateSvc+CSCRDO",""};
   std::string m_sdo;
 
+
   const CscIdHelper   * m_cscHelper;
   ToolHandle<ICscCalibTool> m_cscCalibTool;
   ToolHandle<IMuonDigitizationTool> m_digTool;
@@ -100,7 +103,6 @@ private:
   ToolHandle<IMuonDigitizationTool> m_rdoTool4;
   ToolHandle<Muon::ICSC_RDO_Decoder> m_cscRdoDecoderTool;
   bool m_copySDO;
-  bool m_isByteStream;
 
   ServiceHandle <IAtRndmGenSvc> m_rndmSvc;      // Random number service
   CLHEP::HepRandomEngine *m_rndmEngine;    // Random number engine used - not init in SiDigitization
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfig.py b/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..f7c5ccdaf6d21cec6de1bd0469b41636831469ba
--- /dev/null
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfig.py
@@ -0,0 +1,18 @@
+
+def getCscOverlay(name="CscOverlay", **kwargs):
+    from OverlayCommonAlgs.OverlayFlags import overlayFlags
+    kwargs.setdefault("InputDataRDOKey", overlayFlags.dataStore()+"+CSCRDO")
+    kwargs.setdefault("InputOverlayRDOKey", overlayFlags.evtStore()+"+CSCRDO")
+    kwargs.setdefault("OutputContainerKey", "StoreGateSvc+CSCRDO")
+    kwargs.setdefault("DigitizationTool", "Csc_OverlayDigitizationTool")
+    kwargs.setdefault("MakeRDOTool2", "CscDigitToCscRDOTool2")
+    kwargs.setdefault("MakeRDOTool4", "CscDigitToCscRDOTool4")
+    from Digitization.DigitizationFlags import digitizationFlags
+    kwargs.setdefault("RndmSvc", digitizationFlags.rndmSvc.get_Value())
+    digitizationFlags.rndmSeedList.addSeed("CscOverlay", 12261551, 245536301 )
+    kwargs.setdefault("MCStore", overlayFlags.evtStore())
+    kwargs.setdefault("DataStore", overlayFlags.dataStore())
+    kwargs.setdefault("CopySDO",not overlayFlags.isDataOverlay())
+
+    from AthenaCommon import CfgMgr
+    return CfgMgr.CscOverlay(name,**kwargs)
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfigDb.py b/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfigDb.py
new file mode 100644
index 0000000000000000000000000000000000000000..34eabc4ad87614490e822064760b97ed30cd7af7
--- /dev/null
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/python/CscOverlayConfigDb.py
@@ -0,0 +1,2 @@
+from AthenaCommon.CfgGetter import addAlgorithm
+addAlgorithm("CscOverlay.CscOverlayConfig.getCscOverlay", "CscOverlay")
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/share/CscOverlay_jobOptions.py b/MuonSpectrometer/MuonOverlay/CscOverlay/share/CscOverlay_jobOptions.py
index f6cea88cf664b27ca45bac13cdd160f7aa734d0c..3ece6e4c3dbe9cd864405b4ba9e585c5a4711be5 100644
--- a/MuonSpectrometer/MuonOverlay/CscOverlay/share/CscOverlay_jobOptions.py
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/share/CscOverlay_jobOptions.py
@@ -1,29 +1,10 @@
 from Digitization.DigitizationFlags import digitizationFlags
-from AthenaCommon.CfgGetter import getPublicTool
-from OverlayCommonAlgs.OverlayFlags import overlayFlags
-getPublicTool("CscDigitToCscRDOTool")
-
-from CscOverlay.CscOverlayConf import CscOverlay
-job += CscOverlay()
-job.CscOverlay.mainInputCSC_Name         = "CSCRDO"
-job.CscOverlay.overlayInputCSC_Name      = "CSCRDO"
-job.CscOverlay.DigitizationTool          = getPublicTool("CscDigitizationTool") #CscDigitizationTool
-job.CscOverlay.DigitizationTool.EvtStore = job.CscOverlay.MCStore
-job.CscOverlay.DigitizationTool.OutputObjectName = overlayFlags.evtStore() + "+CSC_DIGITS"
-job.CscOverlay.MakeRDOTool2              = ToolSvc.CscDigitToCscRDOTool.clone("CscDigitToCscRDOTool2") # consider a separate random number stream
-job.CscOverlay.MakeRDOTool2.EvtStore     = job.CscOverlay.MCStore
-job.CscOverlay.MakeRDOTool2.addNoise     = False
-job.CscOverlay.MakeRDOTool2.NumSamples   = 2
-job.CscOverlay.MakeRDOTool4              = ToolSvc.CscDigitToCscRDOTool.clone("CscDigitToCscRDOTool4") # consider a separate random number stream
-job.CscOverlay.MakeRDOTool4.EvtStore     = job.CscOverlay.MCStore
-job.CscOverlay.MakeRDOTool4.addNoise     = False
-job.CscOverlay.MakeRDOTool4.NumSamples   = 4
-job.CscOverlay.RndmSvc                   = digitizationFlags.rndmSvc.get_Value()
+from AthenaCommon.CfgGetter import getAlgorithm
 
+job += getAlgorithm("CscOverlay")
+from OverlayCommonAlgs.OverlayFlags import overlayFlags
+job.CscOverlay.DigitizationTool.OutputObjectName = overlayFlags.evtStore() + "+CSC_DIGITS" #private tool, so this should work
 #job.CscOverlay.OutputLevel=VERBOSE
 #svcMgr.MessageSvc.defaultLimit=100000
-
-digitizationFlags.rndmSeedList.addSeed("CscOverlay", 12261551, 245536301 )
-
 print job.CscOverlay
 
diff --git a/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx b/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx
index db9168e6dc2911d5d702d72bae336885cf53ba6d..252029ad857cdf530ee8e154904706f78545758c 100644
--- a/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.cxx
+++ b/MuonSpectrometer/MuonOverlay/CscOverlay/src/CscOverlay.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
 */
 
 #include "CscOverlay/CscOverlay.h"
@@ -27,30 +27,25 @@ constexpr uint16_t MAX_AMPL = 4095; // 12-bit ADC
 //================================================================
 CscOverlay::CscOverlay(const std::string &name, ISvcLocator *pSvcLocator) :
   MuonOverlayBase(name, pSvcLocator),
-  m_storeGateTemp("StoreGateSvc/BkgEvent_1_SG", name),
-  m_cscHelper(0),
+  m_cscHelper(nullptr),
   m_cscCalibTool( "CscCalibTool", this),
   m_digTool("CscDigitizationTool", this ),
   m_rdoTool2("CscDigitToCscRDOTool2", this ),
   m_rdoTool4("CscDigitToCscRDOTool4", this ),
   m_cscRdoDecoderTool ("Muon::CscRDO_Decoder"),
   m_rndmSvc("AtRndmGenSvc", name ),
-  m_rndmEngine(0),
+  m_rndmEngine(nullptr),
   m_rndmEngineName("CscOverlay")
 {
 
   /** Event DAta Store keys for the 2 data streams to overlay
       - modifiable in job options */
-  declareProperty("TempStore", m_storeGateTemp, "help");
-  declareProperty("mainInputCSC_Name", m_mainInputCSC_Name="CSCRDO");
-  declareProperty("overlayInputCSC_Name", m_overlayInputCSC_Name="CSCRDO");
   declareProperty("CopySDO", m_copySDO=true);
   declareProperty("DigitizationTool", m_digTool);
   declareProperty("MakeRDOTool2", m_rdoTool2);
   declareProperty("MakeRDOTool4", m_rdoTool4);
   declareProperty("CscRdoDecoderTool",   m_cscRdoDecoderTool );
   declareProperty("CSCSDO", m_sdo = "CSC_SDO");
-  declareProperty("IsByteStream", m_isByteStream = false ); 
   declareProperty("RndmSvc", 	     m_rndmSvc, "Random Number Service used for CscDigitToCscRDOTool" );
   declareProperty("RndmEngine",      m_rndmEngineName, "Random engine name for CscDigitToCscRDOTool");
 
@@ -59,173 +54,112 @@ CscOverlay::CscOverlay(const std::string &name, ISvcLocator *pSvcLocator) :
 //================================================================
 StatusCode CscOverlay::overlayInitialize()
 {
-  MsgStream msg(msgSvc(), name());
-  msg << MSG::INFO <<"CscOverlay initialized"<<endmsg;
-
-  if (m_storeGateTemp.retrieve().isFailure()) {
-    msg<< MSG::FATAL << "SaveInDetObjects::initialize): StoreGate[temp] service not found !" << endmsg;
-     return StatusCode::FAILURE;
-  }
-
-  /** initialize the detectore store service */
-  StoreGateSvc* detStore=0;
-  StatusCode sc = serviceLocator()->service("DetectorStore", detStore);
-  if (sc.isFailure()) {
-    msg<< MSG::FATAL << "DetectorStore service not found !" << endmsg;
-    return StatusCode::FAILURE;
-  }
+  ATH_MSG_INFO("CscOverlay initialized");
 
   /** access to the CSC Identifier helper */
-  sc = detStore->retrieve(m_cscHelper, "CSCIDHELPER");
-  if (sc.isFailure()) {
-    msg<< MSG::FATAL << "Could not get CscIdHelper !" << endmsg;
-    return StatusCode::FAILURE;
-  } 
-  else {
-    msg<<MSG::DEBUG<<" Found the CscIdHelper. "<<endmsg;
-  }
-
+  ATH_CHECK(detStore()->retrieve(m_cscHelper, "CSCIDHELPER"));
+  ATH_MSG_DEBUG(" Found the CscIdHelper. ");
+  
   /** CSC calibratin tool for the Condtiions Data base access */
-  sc = m_cscCalibTool.retrieve();
-  if (sc.isFailure()) {
-      msg<<MSG::ERROR<< "Can't get handle on CSC calibration tools" << endmsg;
-      return StatusCode::FAILURE;
-  }
+  ATH_CHECK(m_cscCalibTool.retrieve());  
 
   // get cscRdoDecoderTool
-  if (m_cscRdoDecoderTool.retrieve().isFailure()){
-    ATH_MSG_ERROR ( "Can't get handle on CSC RDO Decoder tool" );
-    return StatusCode::FAILURE;
-  } 
- 
-  if (m_digTool.retrieve().isFailure()) {
-    msg<< MSG::FATAL << "Could not retrieve CSC Digitization Tool!" << endmsg;
-    return StatusCode::FAILURE;
-  }
-  msg<<MSG::DEBUG<<"Retrieved CSC Digitization Tool."<<endmsg;
-  
-  if (m_rdoTool2.retrieve().isFailure()) {
-    msg<< MSG::FATAL << "Could not retrieve CSC Digit -> RDO Tool 2!" << endmsg;
-    return StatusCode::FAILURE;
-  }
-  msg<<MSG::DEBUG<<"Retrieved CSC Digit -> RDO Tool 2."<<endmsg;
-  
-  if (m_rdoTool4.retrieve().isFailure()) {
-    msg<< MSG::FATAL << "Could not retrieve CSC Digit -> RDO Tool 4!" << endmsg;
-    return StatusCode::FAILURE;
-  }
-  msg<<MSG::DEBUG<<"Retrieved CSC Digit -> RDO Tool 4."<<endmsg;
+  ATH_CHECK(m_cscRdoDecoderTool.retrieve());
+
+  ATH_CHECK(m_digTool.retrieve());
+  ATH_MSG_DEBUG("Retrieved CSC Digitization Tool.");
+
+  ATH_CHECK(m_rdoTool2.retrieve());
+  ATH_MSG_DEBUG("Retrieved CSC Digit -> RDO Tool 2.");
+
+  ATH_CHECK(m_rdoTool4.retrieve());
+  ATH_MSG_DEBUG("Retrieved CSC Digit -> RDO Tool 4.");
 
   //random number initialization
-  if (!m_rndmSvc.retrieve().isSuccess()) {
-     msg<<MSG::ERROR<< " Could not initialize Random Number Service" << endmsg;
-  }      
+  ATH_CHECK(m_rndmSvc.retrieve());
     
   // getting our random numbers stream
   m_rndmEngine = m_rndmSvc->GetEngine(m_rndmEngineName);
-  if (m_rndmEngine==0) {
-    msg<<MSG::ERROR<< "Could not find RndmEngine : " << m_rndmEngineName << endmsg;
+  if (!m_rndmEngine) {
+    ATH_MSG_ERROR("Could not find RndmEngine : " << m_rndmEngineName);
     return StatusCode::FAILURE;
   }
 
+  ATH_CHECK( m_inputDataRDOKey.initialize() );
+  ATH_CHECK( m_inputOverlayRDOKey.initialize() );
+  ATH_CHECK( m_outputContainerKey.initialize() );
+
   return StatusCode::SUCCESS;
 }
 
 //================================================================
 StatusCode CscOverlay::overlayFinalize() 
 {
-  MsgStream msg(msgSvc(), name());
-  msg <<MSG::INFO << "CscOverlay finalized" << endmsg;
+  ATH_MSG_INFO("CscOverlay finalized");  
   return StatusCode::SUCCESS;
 }
 
 //================================================================
 StatusCode CscOverlay::overlayExecute() {
-  MsgStream msg(msgSvc(), name());
-  msg<<MSG::DEBUG<<"CscOverlay::execute() begin"<<endmsg;
-
+  ATH_MSG_DEBUG("CscOverlay::execute() begin");
   //----------------------------------------------------------------
   unsigned int numsamples=0;//to be determined from the data
-  SG::ReadHandle<CscRawDataContainer> cdata(m_mainInputCSC_Name, m_storeGateData->name());
-  SG::ReadHandle<CscRawDataContainer> data_input_CSC(m_mainInputCSC_Name, m_storeGateData->name());
-  if ( !m_isByteStream )
-    {
-      if( !cdata.isValid() )
-	{
-	  ATH_MSG_WARNING("Could not get real data CSC RDO container \"" << m_mainInputCSC_Name << "\"");
-	  return StatusCode::SUCCESS;
-	}
-      if ((cdata->begin()==cdata->end()) || !*(cdata->begin())){
-	ATH_MSG_WARNING("Could not get nsamples, cdata empty?");
-	//return StatusCode::SUCCESS;
-      }
-      else
-	{
-	  numsamples=cdata->begin()->numSamples();
-	}
-    }
+  SG::ReadHandle<CscRawDataContainer> inputDataRDO(m_inputDataRDOKey);           
+  if(!inputDataRDO.isValid()) {
+    ATH_MSG_WARNING("Could not get data CscRawDataContainer  \"" << inputDataRDO.name() << "\" in " << inputDataRDO.store());
+    return StatusCode::SUCCESS;
+  }
+  ATH_MSG_VERBOSE("Found CscRawDataContainer \"" << inputDataRDO.name() << "\" in " << inputDataRDO.store());
+  if ((inputDataRDO->begin()==inputDataRDO->end()) || !*(inputDataRDO->begin())){
+	ATH_MSG_WARNING("Could not get nsamples, inputDataRDO empty?");
+  }
   else{
-    if(!data_input_CSC.isValid())
-      {
-	ATH_MSG_WARNING("Could not get real data CSC RDO container \"" << m_mainInputCSC_Name << "\"");
-	return StatusCode::SUCCESS;
-      }
-    if ((data_input_CSC->begin()==data_input_CSC->end()) || !*(data_input_CSC->begin()))
-      {
-	ATH_MSG_WARNING("Could not get nsamples, data_input_CSC empty?");
-	//return StatusCode::SUCCESS;
-      }
-    else
-      {
-	numsamples=data_input_CSC->begin()->numSamples();
-      }
-    }
+    numsamples=inputDataRDO->begin()->numSamples();
+  }
 
   /** in the simulation stream, run digitization of the fly
       and make RDO - this will be used as input to the overlay job */
   if ( m_digTool->digitize().isFailure() ) {
-     msg << MSG::WARNING << "On the fly CSC digitization failed " << endmsg;
+     ATH_MSG_WARNING("On the fly CSC digitization failed ");
      return StatusCode::SUCCESS;
   }
   
-  if (numsamples==2){
+  if (numsamples==2) {
     if ( m_rdoTool2->digitize().isFailure() ) {
-      msg << MSG::WARNING << "On the fly CSC Digit -> RDO 2 failed " << endmsg;
+      ATH_MSG_WARNING("On the fly CSC Digit -> RDO 2 failed ");
       return StatusCode::SUCCESS;
     }
-    msg << MSG::DEBUG << "Digitizing with 2 samples" << endmsg;
+    ATH_MSG_DEBUG("Digitizing with 2 samples");
   }
-  else if (numsamples==4){
+  else if (numsamples==4) {
     if ( m_rdoTool4->digitize().isFailure() ) {
-      msg << MSG::WARNING << "On the fly CSC Digit -> RDO 4 failed " << endmsg;
+      ATH_MSG_WARNING("On the fly CSC Digit -> RDO 4 failed ");
       return StatusCode::SUCCESS;
     }
-    msg << MSG::DEBUG << "Digitizing with 4 samples" << endmsg;
+    ATH_MSG_DEBUG("Digitizing with 4 samples");
   }
   else{
-    msg << MSG::WARNING << "On the fly CSC Digit -> RDO failed - not 2 or 4 samples!" << endmsg;
+    ATH_MSG_WARNING("On the fly CSC Digit -> RDO failed - not 2 or 4 samples!");
     //return StatusCode::SUCCESS;
   }
   
-  if (numsamples>0){
-    msg << MSG::DEBUG << "Retrieving MC input CSC container" << endmsg;
-    SG::ReadHandle<CscRawDataContainer> ovl_input_CSC(m_overlayInputCSC_Name, m_storeGateMC.name());
-    if(!ovl_input_CSC.isValid())
-      {
-	msg << MSG::WARNING << "Could not get CSC RDO from the simulation stream ... " << m_overlayInputCSC_Name << endmsg;
-	return StatusCode::SUCCESS;
-      }
-
+  if (numsamples>0) {
+    ATH_MSG_DEBUG("Retrieving MC input CSC container");
+    SG::ReadHandle<CscRawDataContainer> inputOverlayRDO(m_inputOverlayRDOKey);
+    if(!inputOverlayRDO.isValid()) {
+      ATH_MSG_WARNING("Could not get overlay CscRawDataContainer \"" << inputOverlayRDO.name() << "\" in " << inputOverlayRDO.store());
+      return StatusCode::SUCCESS;
+    }
+    ATH_MSG_VERBOSE("Found CscRawOverlayContainer \"" << inputOverlayRDO.name() << "\" in " << inputOverlayRDO.store());
+    
     /* now do the overlay - reading real data from the data stream
        and reading simulated RDO produced in the previous steps 
        from the simulation stream */
-    if ( !m_isByteStream ) this->overlayContainer(cdata.cptr(), ovl_input_CSC.cptr());
-    else this->overlayContainer(data_input_CSC.cptr(), ovl_input_CSC.cptr()); 
+    this->overlayContainer(inputDataRDO.cptr(), inputOverlayRDO.cptr());
   }
-
+  
   //----------------------------------------------------------------
-  msg<<MSG::DEBUG<<"Processing MC truth data"<<endmsg;
-
+  ATH_MSG_DEBUG("Processing MC truth data");
   // Main stream is normally real data without any MC info.
   // In tests we may use a MC generated file instead of real data.
   // Remove truth info from the main input stream, if any.
@@ -234,11 +168,11 @@ StatusCode CscOverlay::overlayExecute() {
   // (McEventCollection is done by the base.)
 
   // Now copy CSC-specific MC truth objects to the output.
-  if ( m_copySDO )
+  if ( m_copySDO ) {
     this->copyMuonObjects<CscSimDataCollection>(&*m_storeGateOutput, &*m_storeGateMC, m_sdo);
-
+  }
   //----------------------------------------------------------------
-  msg<<MSG::DEBUG<<"CscOverlay::execute() end"<<endmsg;
+  ATH_MSG_DEBUG("CscOverlay::execute() end");
   return StatusCode::SUCCESS;
 }
 
@@ -246,25 +180,31 @@ StatusCode CscOverlay::overlayExecute() {
 void CscOverlay::overlayContainer(const CscRawDataContainer *main,
                                   const CscRawDataContainer *overlay)
 {
-  MsgStream msg(msgSvc(), name());
-  msg << MSG::DEBUG << "overlayContainer<>() begin" << endmsg;
+  ATH_MSG_DEBUG("overlayContainer<>() begin");
 
-  SG::WriteHandle<CscRawDataContainer> outputContainer(m_mainInputCSC_Name, m_storeGateOutput->name());
-  outputContainer = CxxUtils::make_unique<CscRawDataContainer>();
+  SG::WriteHandle<CscRawDataContainer> outputContainer(m_outputContainerKey);
+  if (outputContainer.record(std::make_unique<CscRawDataContainer>()).isFailure()) {
+    ATH_MSG_ERROR("Failed to record " << m_outputContainerKey);
+  }
 
   /** Add data from the main container to the output one */
   CscRawDataContainer::const_iterator p_main = main->begin(); 
   CscRawDataContainer::const_iterator p_main_end = main->end();
-  
   for(; p_main != p_main_end; ) {
-    
-
-    const CscRawDataCollection *coll_main = *p_main;
-    if ( outputContainer->addCollection(coll_main, p_main.hashId()).isFailure() ) {
-      msg << MSG::WARNING << "addCollection failed for main" << endmsg; 
+    const CscRawDataCollection& mainColl(**p_main);
+    //Deep-copy CscRawDataCollection
+    //FIXME Write a copy-constructor for CscRawDataCollection!!
+    auto p_newColl = std::make_unique<CscRawDataCollection>(mainColl.identify());
+    this->copyCscRawDataCollectionProperties(mainColl, *p_newColl);
+    for(auto rawData : **p_main) {
+      auto newData = std::make_unique<CscRawData>(*rawData); // TODO confirm implicit copy-constructor works as expected
+      p_newColl->push_back(newData.release());
+    }
+    if ( outputContainer->addCollection(p_newColl.release(), p_main.hashId()).isFailure() ) {
+      ATH_MSG_WARNING("addCollection failed for main"); 
     }
     else {
-      msg << MSG::DEBUG << "data overlayContainer() added overlaid RDO" << endmsg;
+      ATH_MSG_DEBUG("data overlayContainer() added overlaid RDO");
     }
     ++p_main;
   }
@@ -276,60 +216,38 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main,
   for(; p_ovl != p_ovl_end; ) {
 
     const CscRawDataCollection *coll_ovl = *p_ovl;
-
-    uint16_t coll_id = (*p_ovl)->identify();
+    const uint16_t coll_id = (*p_ovl)->identify();
 
     /** The newly created stuff will go to the output EventStore SG */
-    CscRawDataCollection *out_coll = new CscRawDataCollection( coll_id );
+    auto out_coll = std::make_unique<CscRawDataCollection>( coll_id );
 
     /** Look for the same ID in the main StoreGate EventStore */ 
-    CscRawDataContainer::const_iterator q = outputContainer->indexFind( coll_id );
+    CscRawDataContainer::const_iterator q = outputContainer->indexFind(coll_id);
 
     if( q != outputContainer->end() ) {
       /** Need to merge the collections
           Retrieve q */
 
       const CscRawDataCollection *coll_data = *q;
-
-      /** copy a few things to the new collection */
-      out_coll->set_eventType( coll_data->eventType() );
-      out_coll->setRodId ( coll_data->rodId() );
-      out_coll->setSubDetectorId ( coll_data->subDetectorId() );
-      if ( coll_data->samplingPhase() ) out_coll->set_samplingPhase();
-      if ( coll_data->triggerType() ) out_coll->set_triggerType();
-      out_coll->set_firstBitSummary( coll_data->firstBitSummary() );
-      out_coll->set_scaAddress( coll_data->scaAddress() );
-      const std::vector<uint8_t> dataType = coll_data->dataType();
-      for ( unsigned int i=0; i<dataType.size(); ++i ) out_coll->addDataType( dataType[i] );
-
-      this->mergeCollections(out_coll, coll_data, coll_ovl);
+      this->copyCscRawDataCollectionProperties(*coll_data, *out_coll);
+      this->mergeCollections(out_coll.get(), coll_data, coll_ovl);
 
       /** Here the new collection is created, but not yet registered. 
 	  Put it in IDC in place of the original collection.
        */
 
       outputContainer->removeCollection(p_ovl.hashId());
-      if(outputContainer->addCollection(out_coll, p_ovl.hashId()).isFailure()) {
-	msg << MSG::WARNING << "addCollection failed " << endmsg; 
+      if(outputContainer->addCollection(out_coll.release(), p_ovl.hashId()).isFailure()) {      
+	ATH_MSG_WARNING("addCollection failed ");
       }
       else {
-	msg << MSG::DEBUG << "overlayContainer() added overlaid RDO" << endmsg;
+	ATH_MSG_DEBUG("overlayContainer() added overlaid RDO");
       }
-
     }
     else {
       /** Copy the complete collection from ovl to output, 
           hopefully preserving the "most derived" type of its raw data */ 
-
-      out_coll->set_eventType( coll_ovl->eventType() );
-      out_coll->setRodId ( coll_ovl->rodId() );
-      out_coll->setSubDetectorId ( coll_ovl->subDetectorId() );
-      if ( coll_ovl->samplingPhase() ) out_coll->set_samplingPhase();
-      if ( coll_ovl->triggerType() ) out_coll->set_triggerType();
-      out_coll->set_firstBitSummary( coll_ovl->firstBitSummary() );
-      out_coll->set_scaAddress( coll_ovl->scaAddress() );
-      const std::vector<uint8_t> dataType = coll_ovl->dataType();
-      for ( unsigned int i=0; i<dataType.size(); ++i ) out_coll->addDataType( dataType[i] );
+      this->copyCscRawDataCollectionProperties(*coll_ovl, *out_coll);
 
       /** Copy the complete collection from ovl to output, 
           hopefully preserving the "most derived" type of its raw data */
@@ -339,7 +257,7 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main,
 	/** Put Digit into Collection */
 	const CscRawData *data = ( *i );
 	if( !data ) {
-	  msg << MSG::WARNING << "NULL pointer to Digit!" << endmsg;
+	  ATH_MSG_WARNING("NULL pointer to Digit!");
 	  continue;
 	}	
 	else{
@@ -348,78 +266,87 @@ void CscOverlay::overlayContainer(const CscRawDataContainer *main,
           uint32_t hashOffset = data->hashId();
           std::vector<uint16_t> all_samples; 
           for (unsigned int j=0; j<width; ++j) {
-              uint32_t stripHash = hashOffset+j;
-              double noise    = m_cscCalibTool->stripNoise( stripHash, false );
-              //double pedestal = m_cscCalibTool->stripPedestal( stripHash, false );
-              std::vector<uint16_t> samples;
-              bool extractSamples = data->samples(j, numSamples, samples);
-              if (!extractSamples) {
-		msg << MSG::WARNING  << "Unable to extract samples for strip " << j 
-                                     << " Online Cluster width = " << width 
-                                     << " for number of Samples = " << numSamples 
-                                     << " continuing ..." << endmsg; 
-              } else {
-                for (unsigned int k=0; k<samples.size(); ++k) {
-		  double theNoise = CLHEP::RandGauss::shoot(m_rndmEngine, 0.0, noise);
-		  float adcCount = samples[k] + theNoise;
-		  if ( adcCount > MAX_AMPL ) {
-		    msg<<MSG::DEBUG<< "value out of range (copying over signal): " << adcCount << " " 
-		       << " Setting it to max value = " << MAX_AMPL
-		       << " IdentifierHash is " << stripHash <<endmsg;
-		    adcCount = MAX_AMPL;
-		  } 
-		  all_samples.push_back( (uint16_t) rint(adcCount) );
-                }
-              }
+	    uint32_t stripHash = hashOffset+j;
+	    double noise    = m_cscCalibTool->stripNoise( stripHash, false );
+	    //double pedestal = m_cscCalibTool->stripPedestal( stripHash, false );
+	    std::vector<uint16_t> samples;
+	    bool extractSamples = data->samples(j, numSamples, samples);
+	    if (!extractSamples) {
+	      ATH_MSG_WARNING("Unable to extract samples for strip " << j 
+			      << " Online Cluster width = " << width 
+			      << " for number of Samples = " << numSamples 
+			      << " continuing ..."); 
+	    } 
+	    else {
+	      for (unsigned int k=0; k<samples.size(); ++k) {
+		double theNoise = CLHEP::RandGauss::shoot(m_rndmEngine, 0.0, noise);
+		float adcCount = samples[k] + theNoise;
+		if ( adcCount > MAX_AMPL ) {
+		  ATH_MSG_DEBUG("value out of range (copying over signal): " << adcCount << " " 
+				<< " Setting it to max value = " << MAX_AMPL
+				<< " IdentifierHash is " << stripHash);
+		  adcCount = MAX_AMPL;
+		} 
+		all_samples.push_back( (uint16_t) rint(adcCount) );
+	      }
+	    }
           }  
-          CscRawData *rdo = new CscRawData( all_samples, data->address(), data->identify(), data->rpuID(), data->width() );
+	  auto rdo = std::make_unique<CscRawData>( all_samples, data->address(), data->identify(), data->rpuID(), data->width() );
           rdo->setHashID( data->hashId() );//ACH - was "width()" ???
 	  rdo->setTime( data->time() );//ACH - was absent
 
 	  //perform some checks
 	  bool good=true;
 	  for (unsigned int j=0; j<width; ++j) {
-	    const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(rdo, j);
+	    const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(rdo.get(), j);
 	    if(!(m_cscHelper->valid(channelId))) {
-	      msg << MSG::WARNING << "Invalid CSC Identifier! - skipping " << channelId << endmsg;
+	      ATH_MSG_WARNING("Invalid CSC Identifier! - skipping " << channelId);
 	      good=false;
 	    }
 	  }
 	  if (good){
-	    out_coll->push_back( rdo );
+	    out_coll->push_back( rdo.release() );
 	  }
-	  else{
-	    delete rdo;//coverity demands it
-	  }
-
 	}
       }
-          
+      
       /** The new collection goes to m_storeGateOutput */
-
-      if(outputContainer->addCollection(out_coll, out_coll->identify()).isFailure()) {
-	msg << MSG::WARNING << "overlayContainer(): Problem in outputContainer->addCollection(Identifier)" << endmsg;
+      if(outputContainer->addCollection(out_coll.release(), out_coll->identify()).isFailure()) {
+	ATH_MSG_WARNING("overlayContainer(): Problem in outputContainer->addCollection(Identifier)");
       }
       else {
-	msg << MSG::DEBUG << "overlayContainer() added new RDO" << endmsg;
+	ATH_MSG_DEBUG("overlayContainer() added new RDO");
       }
     }
-
+    
     ++p_ovl;
   }
   
-  msg << MSG::DEBUG << "overlayContainer<>() end" << endmsg;
+  ATH_MSG_DEBUG("overlayContainer<>() end");
 }
+ 
+// Copying CscRawDataCollection properties
+ void CscOverlay::copyCscRawDataCollectionProperties(const CscRawDataCollection& sourceColl, CscRawDataCollection& outColl) const {
+   /** copy a few things to the new collection */
+   outColl.setIdentifyHash( sourceColl.identifyHash() );
+   outColl.set_eventType( sourceColl.eventType() );
+   outColl.setRodId ( sourceColl.rodId() );
+   outColl.setSubDetectorId ( sourceColl.subDetectorId() );
+   if (sourceColl.samplingPhase()) { outColl.set_samplingPhase(); }
+   if (sourceColl.triggerType()) { outColl.set_triggerType(); }
+   outColl.set_firstBitSummary( sourceColl.firstBitSummary() );
+   outColl.set_scaAddress( sourceColl.scaAddress() );
+   for (auto dataType : sourceColl.dataType()) { outColl.addDataType( dataType ); }
+ }
 
 void CscOverlay::spuData( const CscRawDataCollection * coll, const uint16_t spuID, std::vector<const CscRawData*>& data) {
-  MsgStream msg(msgSvc(), name());
   data.clear();  if ( !coll ) return; 
   CscRawDataCollection::const_iterator idata = coll->begin();
   CscRawDataCollection::const_iterator edata = coll->end();
   for ( ; idata != edata; ++idata ) {
       if ( (*idata)->rpuID() == spuID ) data.push_back( *idata );
   }
-  msg <<MSG::DEBUG<<"spuData(): made data vector of size "<<data.size()<<" for SPU "<<spuID<<endmsg;
+  ATH_MSG_DEBUG("spuData(): made data vector of size "<<data.size()<<" for SPU "<<spuID);
 }
 
 bool CscOverlay::needtoflip(const int address) const {
@@ -440,9 +367,7 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
                                   const CscRawDataCollection *data_coll,
                                   const CscRawDataCollection *ovl_coll)
 {
-
-  MsgStream msg(msgSvc(), name());
-  msg << MSG::DEBUG << "mergeCollection<>() begin" << endmsg;
+  ATH_MSG_DEBUG("mergeCollection<>() begin");
 
   // number of ADC samples in  the both data stream
   unsigned int nSigSamples  = data_coll->numSamples();
@@ -453,14 +378,14 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
   unsigned int ovlSamplingTime  = ovl_coll->rate();
 
   if ( dataSamplingTime != ovlSamplingTime ) {
-     msg<< MSG::WARNING  << "Overlay of inconsistent data - sampling times not the same "
-                         << dataSamplingTime << " ns " << ovlSamplingTime << " ns" << endmsg;
+    ATH_MSG_WARNING("Overlay of inconsistent data - sampling times not the same "
+		    << dataSamplingTime << " ns " << ovlSamplingTime << " ns");
      return;
   }
 
   if ( nSigSamples != nOvlSamples ) {
-     msg<< MSG::WARNING  << "Overlay of inconsistent data - number of samples not the same "
-                         << nSigSamples << " " << nOvlSamples << endmsg;
+    ATH_MSG_WARNING("Overlay of inconsistent data - number of samples not the same "
+		    << nSigSamples << " " << nOvlSamples);
      return;
   }
 
@@ -492,29 +417,29 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
        uint32_t hash      = std::min( sigHash, ovlHash );
        uint32_t address   = std::min( sigAddress, ovlAddress );
        if (sigSamples.size()!=0 && ovlSamples.size()!=0 && needtoflip(address)){
-       	 msg <<MSG::DEBUG<<"Looking for overlap of hashes and addresses within witdths because needtoflip"<<endmsg;
-	 msg <<MSG::VERBOSE ;
+       	 ATH_MSG_DEBUG("Looking for overlap of hashes and addresses within witdths because needtoflip");
+	 msg() << MSG::VERBOSE ;
 	 std::set<int> sig;  int lastindex=-1;
 	 for (std::map< int,std::vector<uint16_t> >::const_iterator si=sigSamples.begin(); si!=sigSamples.end(); ++si) {
 	   if (si!=sigSamples.begin() && si->first-lastindex!=1) break;
 	   lastindex=si->first;
-	   sig.insert(si->first); msg << si->first << " ";
+	   sig.insert(si->first); msg() << si->first << " ";
 	 }
-	 msg<<endmsg;
+	 msg()<<endmsg;
 	 bool overlap=false;
-	 msg <<MSG::VERBOSE ;
+	 msg() <<MSG::VERBOSE ;
 	 for (std::map< int,std::vector<uint16_t> >::const_iterator so=ovlSamples.begin(); so!=ovlSamples.end(); ++so) {
 	   //add 1 to beginning and end of list because adjacent counts as overlap
-	   msg << (so->first)-1 << " ";
-	   if (sig.find((so->first)-1)!=sig.end()) {overlap=true; msg << "!!";}
-	   msg << (so->first) << " ";
-	   if (sig.find((so->first))!=sig.end()) {overlap=true; msg << "!!";}
-	   msg << (so->first)+1 << " ";
-	   if (sig.find((so->first)+1)!=sig.end()) {overlap=true; msg << "!!";}
+	   msg() << (so->first)-1 << " ";
+	   if (sig.find((so->first)-1)!=sig.end()) {overlap=true; msg() << "!!";}
+	   msg() << (so->first) << " ";
+	   if (sig.find((so->first))!=sig.end()) {overlap=true; msg() << "!!";}
+	   msg() << (so->first)+1 << " ";
+	   if (sig.find((so->first)+1)!=sig.end()) {overlap=true; msg() << "!!";}
 	 }
-	 msg<<endmsg;
+	 msg()<<endmsg;
 	 if (!overlap){
-	   msg <<MSG::DEBUG<<"Taking max of hashes and addresses because needtoflip and no overlap"<<endmsg;
+	   ATH_MSG_DEBUG("Taking max of hashes and addresses because needtoflip and no overlap");
 	   hash      = std::max( sigHash, ovlHash );
 	   address   = std::max( sigAddress, ovlAddress );
 	 }
@@ -526,15 +451,15 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
        for (std::map< int,std::vector<uint16_t> >::const_iterator si=ovlSamples.begin(); si!=ovlSamples.end(); ++si){readstrips.insert(si->first);}
        
        std::vector<CscRawData*> datums = this->overlay(sigSamples, ovlSamples,address, spuID, out_coll->identify(), hash );
-       if ( datums.size()==0 ) { 	 msg<<MSG::WARNING<<"datums is size 0!"<<endmsg;       }
+       if ( datums.size()==0 ) { 	 ATH_MSG_WARNING("datums is size 0!");       }
        for (unsigned int di=0; di<datums.size(); ++di){
 	 CscRawData* datum=datums[di];
 	 hash = datum->hashId();
 	 address = datum->address();
 	 int stripstart        = (  address & 0x000000FF) + 1 + 0;
-	 msg <<MSG::DEBUG<< "Datum in layer="<<j<<" has hash="<<hash<<" address="<<address<<" stripstart="<<stripstart<<", "<< *datum <<endmsg;
+	 ATH_MSG_DEBUG("Datum in layer="<<j<<" has hash="<<hash<<" address="<<address<<" stripstart="<<stripstart<<", "<< *datum );
 	 if (datum->width()==0) {
-	   msg<<MSG::WARNING<< "Datum has 0 width!" <<endmsg;
+	   ATH_MSG_WARNING("Datum has 0 width!");
 	   continue;
 	 }
 
@@ -543,7 +468,7 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
 	  int stationEta  =  ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1;
 	  int stationPhi  =  ( ( address & 0x0000E000) >> 13 ) + 1;
 	  Identifier me= m_cscHelper->elementID(stationName,stationEta,stationPhi);
-	  msg<<MSG::VERBOSE<<"stationName,Eta,Phi="<<stationName<<","<<stationEta<<","<<stationPhi<<" - me="<<me<<endmsg;
+	  ATH_MSG_VERBOSE("stationName,Eta,Phi="<<stationName<<","<<stationEta<<","<<stationPhi<<" - me="<<me);
 	  bool good=true;
 	  for (unsigned int j=0; j<datum->width(); ++j) {
 	    int chamberLayer = ( (address & 0x00000800) >> 11) + 0;
@@ -553,24 +478,24 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
  	    int wireLayer    = ( (address & 0x00000600) >>  9) + 1;
 	    int measuresPhi  = ( (address & 0x00000100) >>  8);
 	    int strip        = (  address & 0x000000FF) + 1 + j; 
-	    msg<<MSG::VERBOSE<<"det,chamberlayer,wirelayer,measuresphi,strip="<<det<<","<<chamberLayer<<","<<wireLayer<<","<<measuresPhi<<","<<strip<<endmsg;
+	    ATH_MSG_VERBOSE("det,chamberlayer,wirelayer,measuresphi,strip="<<det<<","<<chamberLayer<<","<<wireLayer<<","<<measuresPhi<<","<<strip);
 	    // Added to Online -> Offline id  in A side number is opposite bug#56002
 	    if (measuresPhi) {
 	      int stationEta  =  ( ((address & 0x00001000) >> 12 ) == 0x0) ? -1 : 1;
 	      if (stationEta>0) {
 		strip = 49-strip;
-		msg<<MSG::VERBOSE<<"FLIP strip, now strip="<<strip<<endmsg;
+		ATH_MSG_VERBOSE("FLIP strip, now strip="<<strip);
 	      }
 	    }
 	    insertedstrips.insert(strip);//for checks
 	    Identifier mechan= m_cscHelper->channelID(me,chamberLayer,wireLayer,measuresPhi,strip);
-	    msg<<MSG::VERBOSE<<"mechan="<<mechan<<endmsg;
+	    ATH_MSG_VERBOSE("mechan="<<mechan);
 	    const Identifier channelId = m_cscRdoDecoderTool->channelIdentifier(datum, j);
 	    if(!(m_cscHelper->valid(channelId))) {
-	      msg << MSG::WARNING << "Invalid CSC Identifier in merge! - skipping " << channelId << endmsg;
+	      ATH_MSG_WARNING("Invalid CSC Identifier in merge! - skipping " << channelId );
 	      good=false;
 	    }
-	    else{msg << MSG::DEBUG << "Valid CSC Identifier in merge " << channelId << endmsg;}
+	  else{ATH_MSG_DEBUG("Valid CSC Identifier in merge " << channelId);}
 	  }
 	  if (good){	    out_coll->push_back(datum);	  }
 	  else{	    continue;	  }
@@ -583,7 +508,7 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
        
        //check
        if (readstrips!=insertedstrips){
-	 msg << MSG::WARNING << "Readstrips != Insertedstrips: "<<endmsg;
+	 ATH_MSG_WARNING("Readstrips != Insertedstrips: ");
 	 for (std::set<int>::const_iterator i = readstrips.begin(); i!=readstrips.end(); ++i){std::cout<<*i<<" ";} std::cout<<std::endl;
 	 for (std::set<int>::const_iterator i = insertedstrips.begin(); i!=insertedstrips.end(); ++i){std::cout<<*i<<" ";} std::cout<<std::endl;
        }
@@ -593,7 +518,7 @@ void CscOverlay::mergeCollections(CscRawDataCollection *out_coll,
   for (unsigned int i=0; i<10; ++i) out_coll->set_spuCount(i,clusterCounts[i]);
   for (unsigned int i=0; i<2; ++i)  { if (rpuCount[i] != 0) out_coll->addRPU(rpuCount[i]); }
   // FIXME --- need to be able to reset the dataType - should add a new method to CscRawDataCollection for this
-  msg<<MSG::DEBUG<<"mergeCollection<>() end "<<endmsg;
+  ATH_MSG_DEBUG("mergeCollection<>() end ");
 }
  
 uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
@@ -603,8 +528,7 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
                                  const uint16_t spuID,
                                  const int gasLayer, bool isdata)
 {
-  MsgStream msg(msgSvc(), name());
-  msg << MSG::DEBUG << "stripData<>() begin: gasLayer="<<gasLayer<<" spuID="<<spuID<<" isdata="<<isdata<<endmsg;
+  ATH_MSG_DEBUG("stripData<>() begin: gasLayer="<<gasLayer<<" spuID="<<spuID<<" isdata="<<isdata);
 
   samples.clear();
   IdContext context = m_cscHelper->channel_context();
@@ -637,7 +561,7 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
     bool precision     = (gasLayer==0) && (!(spuID==4 || spuID==9));
     bool check = precision || non_precision; 
     if ( !check ) {
-      //msg << MSG::DEBUG<<"Not precision or non_precision, skipping layer="<<layer<<", gasLayer="<<gasLayer<<", spuID="<<spuID<<endmsg;
+      //ATH_MSG_DEBUG("Not precision or non_precision, skipping layer="<<layer<<", gasLayer="<<gasLayer<<", spuID="<<spuID);
       continue;
     }
 
@@ -645,7 +569,7 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
     unsigned int newaddress = datum->address();
     //if we're going to later flip the data strip for bug#56002
     if (isdata && needtoflip(newaddress)) {
-      msg << MSG::VERBOSE << "needtoflip in stripdata, newaddress was = "<<newaddress<<", strip was = "<<strip<<endmsg;
+      ATH_MSG_VERBOSE("needtoflip in stripdata, newaddress was = "<<newaddress<<", strip was = "<<strip);
 
       //old way
       //newaddress= newaddress- (width-1);//apparently need to shift the address to the highest strip
@@ -659,7 +583,7 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
       uint32_t newStrip  = uint32_t (49-oldStrip);//starts at 1
       strip=strip - oldStrip + newStrip;
       
-      msg << MSG::VERBOSE << "needtoflip in stripdata, newaddress now = "<<newaddress<<", strip now = "<<strip<<endmsg;
+      ATH_MSG_VERBOSE("needtoflip in stripdata, newaddress now = "<<newaddress<<", strip now = "<<strip);
     }
 
     if ( needtoflip(newaddress) ){
@@ -673,27 +597,27 @@ uint32_t CscOverlay::stripData ( const std::vector<const CscRawData*>& data,
       if ( newaddress < address ) address = newaddress;
     }
 
-    msg << MSG::DEBUG << "stripData(): width="<<width<<" hashOffset="<<hashOffset<<" datumaddress="<<datum->address()<<" layer="<<layer<<" strip="<<strip<<", hash="<<hash<<" address="<<address<<endmsg;
+    ATH_MSG_DEBUG("stripData(): width="<<width<<" hashOffset="<<hashOffset<<" datumaddress="<<datum->address()<<" layer="<<layer<<" strip="<<strip<<", hash="<<hash<<" address="<<address);
 
     for (unsigned int j=0; j<width; ++j) {
        std::vector<uint16_t> adcs;
        bool extractSamples = datum->samples(j, numSamples, adcs);
        if ( !extractSamples ) {
-	 msg << MSG::WARNING  << "Unable to extract samples for strip " << j 
-                               << " Online Cluster width = " << width << " for number of Samples = " << numSamples << endmsg; 
+	 ATH_MSG_WARNING("Unable to extract samples for strip " << j 
+			 << " Online Cluster width = " << width << " for number of Samples = " << numSamples); 
        } 
        else {   
 	 int newstrip = (strip+j);
 	 if (false && isdata && needtoflip(address)){
 	   newstrip = strip-j;
-	   msg << MSG::VERBOSE << "needtoflip in stripdata, newstrip is "<<newstrip<<endmsg;
+	   ATH_MSG_VERBOSE("needtoflip in stripdata, newstrip is "<<newstrip);
 	 }
 	 samples.insert ( std::make_pair( newstrip, adcs) );    
        }
     }
   }
 
-  msg << MSG::DEBUG << "stripData<>() end: hash=" << hash << " address=" << address << endmsg;
+  ATH_MSG_DEBUG("stripData<>() end: hash=" << hash << " address=" << address);
   return address;
 }
 
@@ -704,10 +628,9 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui
                                   const uint16_t collId,
                                   const uint32_t hash )
 {
-  MsgStream msg(msgSvc(), name());
-  msg << MSG::DEBUG << "overlay<>() begin: hash="<<hash<<" address="<<address<<endmsg;
+  ATH_MSG_DEBUG("overlay<>() begin: hash="<<hash<<" address="<<address);
   std::vector<CscRawData*> datas;
-  CscRawData * rawData = 0;
+  CscRawData * rawData = nullptr;
   int max = 192;
   if ( spuID == 4 || spuID == 9 ) max = 48;
   std::vector<uint16_t> samples;
@@ -723,7 +646,7 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui
     bool used=false;
 
     if ( sig != sigSamples.end() && ovl == ovlSamples.end() ) { // real data only
-      msg << MSG::VERBOSE << "data only for i="<<i<<endmsg;
+      ATH_MSG_VERBOSE("data only for i="<<i);
       for ( unsigned int j=0; j<(*sig).second.size(); ++j ) {
 	samples.push_back( (*sig).second.at(j) );
 	assert((*sig).second.at(j)<=MAX_AMPL);
@@ -731,16 +654,16 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui
       width++; used=true;
     }
     else if ( sig == sigSamples.end() && ovl != ovlSamples.end() ) { // simulation only
-      msg << MSG::VERBOSE << "simulation only for i="<<i<<endmsg;
+      ATH_MSG_VERBOSE("simulation only for i="<<i);
       int myhashw=myhash+width; if (needtoflip(myaddress)) {myhashw=myhash-width;}
       double noise = m_cscCalibTool->stripNoise( (myhashw), false );//in ADC counts
        for ( unsigned int j=0; j<(*ovl).second.size(); ++j ) {
 	  double theNoise = CLHEP::RandGauss::shoot(m_rndmEngine, 0.0, noise);
           float adcCount = (*ovl).second.at(j) + theNoise ;//add noise
           if ( adcCount > MAX_AMPL ) {
-	    msg << MSG::DEBUG << "value out of range (adding noise): " << adcCount << " "
+	    ATH_MSG_DEBUG("value out of range (adding noise): " << adcCount << " "
 		<< " Setting it to max value = " << MAX_AMPL
-		<< " IdentifierHash is " << (myhashw) <<endmsg;
+			  << " IdentifierHash is " << (myhashw));
 	    adcCount = MAX_AMPL;
           }
           samples.push_back( (uint16_t) rint(adcCount) );
@@ -748,15 +671,15 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui
        width++; used=true;
     }
     else if ( sig != sigSamples.end() && ovl != ovlSamples.end() ) { // real data + MC
-      msg << MSG::VERBOSE << "data and simulation for i="<<i<<endmsg;
+      ATH_MSG_VERBOSE("data and simulation for i="<<i);
       int myhashw=myhash+width; if (needtoflip(myaddress)) {myhashw=myhash-width;}
       double pedestal = m_cscCalibTool->stripPedestal( (myhashw), false );//in ADC counts
        for ( unsigned int j=0; j<(*sig).second.size(); ++j ) {
           float adcCount = (*sig).second.at(j) + (*ovl).second.at(j) - pedestal ;//subtract pedestal only (data already has noise)
           if ( adcCount > MAX_AMPL ) {
-	    msg << MSG::DEBUG << "value out of range (adding data+MC samples - pedestal): " << adcCount << " "
+	    ATH_MSG_DEBUG("value out of range (adding data+MC samples - pedestal): " << adcCount << " "
 		<< " Setting it to max value = " << MAX_AMPL
-		<< " IdentifierHash is " << (myhashw) <<endmsg;
+			  << " IdentifierHash is " << (myhashw));
 	    adcCount = MAX_AMPL;
           }
           samples.push_back( (uint16_t) rint(adcCount) );
@@ -777,14 +700,14 @@ std::vector<CscRawData*> CscOverlay::overlay( const std::map< int,std::vector<ui
       rawData->setHashID(myhash); 
       rawData->setTime(0);//ACH - TODO: should be made significantly more clever!
       datas.push_back(rawData);
-      msg << MSG::DEBUG << "overlay<>() add datum: hash="<<myhash<<" address="<<myaddress<<" width="<<width<<endmsg;
+      ATH_MSG_DEBUG("overlay<>() add datum: hash="<<myhash<<" address="<<myaddress<<" width="<<width);
       samples.clear();
       if (!needtoflip(myaddress)) {myhash+=width; myaddress+=width;}
       width=0;
     }
     
   }
-  msg << MSG::DEBUG << "overlay<>() end: CscRawDatas size="<<datas.size()<<endmsg;
+  ATH_MSG_DEBUG("overlay<>() end: CscRawDatas size="<<datas.size());
   return datas;
 }
 
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/PrimaryDPDMaker/ThinContainers.h b/PhysicsAnalysis/PrimaryDPDMaker/PrimaryDPDMaker/ThinContainers.h
index fe8c170d27c1b76b3182355f8dd0a9be26517c7e..bd83e6931267dcbb5d0ebc4ee713845c741171dc 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/PrimaryDPDMaker/ThinContainers.h
+++ b/PhysicsAnalysis/PrimaryDPDMaker/PrimaryDPDMaker/ThinContainers.h
@@ -28,66 +28,46 @@ Description: This is a short algorithm to select calorimeter cells that are
 ******************************************************************************/
 
 
-#include <string>
-#include <vector>
+
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include "EventKernel/INavigable4Momentum.h"
 #include "AthenaKernel/IThinningSvc.h"
-#include "GaudiKernel/Property.h"
-#include "GaudiKernel/ServiceHandle.h"
 #include "StoreGate/StoreGateSvc.h"
-#include "AthContainers/DataVector.h"
-
-#include "CLHEP/Vector/LorentzVector.h"
-#include "CLHEP/Vector/ThreeVector.h"
+#include "GaudiKernel/ToolHandle.h"
 
-// Needed for TrackParticles
-#include "Particle/TrackParticleContainer.h"
 // Needed for Tracks
-#include "TrkTrack/TrackCollection.h" 
-#include "TrkTrack/Track.h" 
+#include "TrkTrack/TrackCollection.h" //typedef, cannot fwd include
 
 // Needed for the cell IDs
 #include "Identifier/Identifier.h"
+#include "Identifier/IdentifierHash.h"
+//
 #include "CaloEvent/CaloCellContainer.h"
 #include "CaloEvent/CaloClusterContainer.h"
 
-// Needed for the pixel clusters
-#include "InDetReadoutGeometry/PixelDetectorManager.h"
-#include "InDetReadoutGeometry/SCT_DetectorManager.h"
-#include "InDetReadoutGeometry/TRT_DetectorManager.h"
+//following are typedef'ed, cannot fwd include
 #include "InDetPrepRawData/PixelClusterContainer.h"
-#include "InDetPrepRawData/PixelClusterCollection.h"
-#include "InDetPrepRawData/PixelCluster.h"
 #include "InDetPrepRawData/SCT_ClusterContainer.h"
-#include "InDetPrepRawData/SCT_ClusterCollection.h"
-#include "InDetPrepRawData/SCT_Cluster.h"
 #include "InDetPrepRawData/TRT_DriftCircleContainer.h"
-#include "InDetPrepRawData/TRT_DriftCircleCollection.h"
-#include "InDetPrepRawData/TRT_DriftCircle.h"
-#include "InDetIdentifier/PixelID.h"
 
 // Needed for RegSelSvc
-#include "GaudiKernel/ToolHandle.h"
-#include "IRegionSelector/RegSelEnums.h"
+#include "IRegionSelector/RegSelEnums.h" //contains the DETID enum
 
-typedef InDet::PixelClusterContainer PixelClusterContainer;
-typedef InDet::PixelClusterCollection PixelClusterCollection;
-typedef InDet::PixelCluster PixelCluster;
-
-typedef InDet::SCT_ClusterContainer SCT_ClusterContainer;
-typedef InDet::SCT_ClusterCollection SCT_ClusterCollection;
-typedef InDet::SCT_Cluster SCT_Cluster;
-
-typedef InDet::TRT_DriftCircleContainer TRT_DriftCircleContainer;
-typedef InDet::TRT_DriftCircleCollection TRT_DriftCircleCollection;
-typedef InDet::TRT_DriftCircle TRT_DriftCircle;
+//
+#include <string>
+#include <vector>
+#include <set>
 
-//class CaloClusterContainer;
 //Needed for RegSelSvc
 class IRegSelSvc;
 class I4Momentum;
-
+namespace Rec{
+  class TrackParticleContainer;
+}
+
+namespace CLHEP{
+  class HepLorentzVector;
+  class Hep3Vector;
+}
 
 
 class ThinContainers : public AthAlgorithm {
diff --git a/PhysicsAnalysis/PrimaryDPDMaker/src/ThinContainers.cxx b/PhysicsAnalysis/PrimaryDPDMaker/src/ThinContainers.cxx
index c2434e36e8635193bd30a34641b0c49d655d6d7f..7d7d0ddd22c924dae208b97bac7d3cfab584b773 100644
--- a/PhysicsAnalysis/PrimaryDPDMaker/src/ThinContainers.cxx
+++ b/PhysicsAnalysis/PrimaryDPDMaker/src/ThinContainers.cxx
@@ -43,26 +43,27 @@
 #include "tauEvent/TauJet.h"
 #include "JetEvent/JetCollection.h"
 #include "Particle/TrackParticleContainer.h"
-#include "TrkTrack/TrackCollection.h" 
 #include "TrkTrack/Track.h" 
 #include "TrkParameters/TrackParameters.h"
 #include "TrkTrackSummary/TrackSummary.h"
 #include "AnalysisTriggerEvent/LVL1_ROI.h" 
 #include "AnalysisTriggerEvent/EmTau_ROI.h"
-#include "CaloEvent/CaloCellContainer.h"
 #include "CaloEvent/CaloCellLinkContainer.h"
 #include "CaloEvent/CaloCellLink.h"
-#include "CaloEvent/CaloClusterContainer.h"
 #include "CaloEvent/CaloCluster.h"
-#include "InDetPrepRawData/PixelClusterContainer.h"
+
+// Needed for the pixel clusters
+#include "InDetReadoutGeometry/PixelDetectorManager.h"
+#include "InDetReadoutGeometry/SCT_DetectorManager.h"
+#include "InDetReadoutGeometry/TRT_DetectorManager.h"
+//
 #include "InDetPrepRawData/PixelClusterCollection.h"
 #include "InDetPrepRawData/PixelCluster.h"
-#include "InDetPrepRawData/SCT_ClusterContainer.h"
 #include "InDetPrepRawData/SCT_ClusterCollection.h"
 #include "InDetPrepRawData/SCT_Cluster.h"
-#include "InDetPrepRawData/TRT_DriftCircleContainer.h"
 #include "InDetPrepRawData/TRT_DriftCircleCollection.h"
 #include "InDetPrepRawData/TRT_DriftCircle.h"
+//
 #include "InDetReadoutGeometry/TRT_BaseElement.h"
 
 #include "InDetRIO_OnTrack/PixelClusterOnTrack.h"
@@ -70,7 +71,7 @@
 #include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h"
 #include "TrkPseudoMeasurementOnTrack/PseudoMeasurementOnTrack.h"
 
-#include "Identifier/IdentifierHash.h"
+
 
 
 // Needed for deltaR calculation (really?)
@@ -2109,7 +2110,7 @@ StatusCode ThinContainers::thinPixels(const InDet::PixelClusterContainer* pixelC
       ++nTotal;
       ATH_MSG_DEBUG( "There are " << (*pixelItr)->size() 
                      << " entries in the PixelClusterContainer!" );
-      const PixelClusterCollection *colNext = (*pixelItr);
+      const InDet::PixelClusterCollection *colNext = (*pixelItr);
       
       if (!colNext){ continue; }
 
@@ -2190,7 +2191,7 @@ StatusCode ThinContainers::thinSCTClusters(const InDet::SCT_ClusterContainer* sc
       ++nTotal;
       ATH_MSG_DEBUG( "There are " << (*sctItr)->size() 
                      << " entries in the SCT_ClusterContainer!" );
-      const SCT_ClusterCollection *colNext = (*sctItr);
+      const InDet::SCT_ClusterCollection *colNext = (*sctItr);
       
       if (!colNext){ continue; }
       
@@ -2276,7 +2277,7 @@ StatusCode ThinContainers::thinTRTDriftCircles(const InDet::TRT_DriftCircleConta
       ++nTotal;
       ATH_MSG_DEBUG( "There are " << (*trtItr)->size() 
                      << " entries in the TRT_DriftCircleContainer!" );
-      const TRT_DriftCircleCollection *colNext = (*trtItr);
+      const InDet::TRT_DriftCircleCollection *colNext = (*trtItr);
       
       if (!colNext){ continue; }
       
diff --git a/Projects/AthSimulation/package_filters.txt b/Projects/AthSimulation/package_filters.txt
index 21eae91821955f4c57c97e40affe8564c8566294..552cada7658d7e48f2e8f496aa6c08bae9176920 100644
--- a/Projects/AthSimulation/package_filters.txt
+++ b/Projects/AthSimulation/package_filters.txt
@@ -330,6 +330,7 @@
 + Tools/KitValidation
 + Tools/PathResolver
 + Tools/PmbCxxUtils
++ Tools/PROCTools
 + Tools/PyCmt
 + Tools/PyJobTransforms
 + Tools/PyUtils
diff --git a/Reconstruction/egamma/egammaAlgs/python/egammaSuperClusterBuilder.py b/Reconstruction/egamma/egammaAlgs/python/egammaSuperClusterBuilder.py
index d1081903d1875422e85b7c0ed2270b5bc81df76c..144685fb1c78f89bd1d5434d6f6f33fe512ba74e 100644
--- a/Reconstruction/egamma/egammaAlgs/python/egammaSuperClusterBuilder.py
+++ b/Reconstruction/egamma/egammaAlgs/python/egammaSuperClusterBuilder.py
@@ -9,14 +9,14 @@ from egammaRec.egammaRecFlags import jobproperties # to set jobproperties.egamma
 from egammaRec import egammaKeys
 
 from egammaTools.egammaToolsFactories import \
-    EMTrackMatchBuilder, EMConversionBuilder, egammaSwTool, egammaMVATool
+    EMTrackMatchBuilder, EMConversionBuilder, egammaSwTool, egammaMVASvc
 
 electronSuperClusterBuilder = AlgFactory( egammaAlgsConf.electronSuperClusterBuilder,
                                           name = 'electronSuperClusterBuilder',
                                           InputEgammaRecContainerName=egammaKeys.EgammaRecKey(),
                                           SuperElectronRecCollectionName=egammaKeys.ElectronSuperRecKey(),
                                           ClusterCorrectionTool=egammaSwTool,
-                                          MVACalibTool=egammaMVATool,
+                                          MVACalibSvc=egammaMVASvc,
                                           EtThresholdCut=1000, 
                                           TrackMatchBuilderTool = EMTrackMatchBuilder
                                          )
@@ -26,6 +26,6 @@ photonSuperClusterBuilder = AlgFactory( egammaAlgsConf.photonSuperClusterBuilder
                                         InputEgammaRecContainerName=egammaKeys.EgammaRecKey(),
                                         SuperPhotonRecCollectionName=egammaKeys.PhotonSuperRecKey(),
                                         ClusterCorrectionTool=egammaSwTool,
-                                        MVACalibTool= egammaMVATool,
+                                        MVACalibSvc= egammaMVASvc,
                                         ConversionBuilderTool = EMConversionBuilder
                                         )
diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx
index 8c552719ccdd5abee4eaa17d2e67a3c6d64e3fc7..cdf36409929dc77b79ab1802654d8381a87b6023 100644
--- a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx
+++ b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx
@@ -145,10 +145,11 @@ StatusCode egammaSuperClusterBuilder::initialize() {
     m_clusterCorrectionTool.disable();
   }
   if (m_calibrateClusters) {
-    ATH_CHECK(m_MVACalibTool.retrieve());
-  } else {
-    m_MVACalibTool.disable();
-  }
+    ATH_CHECK(m_MVACalibSvc.retrieve());
+  } 
+  // else {
+  //   m_MVACalibSvc.disable();
+  // }
 
   return StatusCode::SUCCESS;
 }
@@ -400,7 +401,7 @@ StatusCode egammaSuperClusterBuilder::CalibrateCluster(xAOD::CaloCluster* newClu
   //So We will need at the end to do the final update in the EMClusterTool
   //For now apply just cluster info only calibration.
   if (m_calibrateClusters) {
-    ATH_CHECK(m_MVACalibTool->execute(newCluster,egType));
+    ATH_CHECK(m_MVACalibSvc->execute(*newCluster,egType));
   }
   ATH_MSG_DEBUG("========== cluster only calibration ==== ");
   ATH_MSG_DEBUG("Cluster Energy after cluster only calibration: "<<newCluster->e());
diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h
index 609bb223eca09ce7c3d42a10c46bf76abe46052f..d1a57079899017cd169b793da7c330c66bdc3db1 100644
--- a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h
+++ b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h
@@ -17,7 +17,7 @@
 #include "CaloUtils/CaloCellDetPos.h"
 #include "xAODEgamma/EgammaEnums.h"
 #include "egammaInterfaces/IegammaSwTool.h"
-#include "egammaMVACalib/IegammaMVATool.h"
+#include "egammaInterfaces/IegammaMVASvc.h"
 
 /** Base class for electronSuperClusterBuilder and photonSuperClusterBuilder.
  *  The inheritance should be private. This class should never be instantiated
@@ -141,9 +141,9 @@ private:
   Gaudi::Property<bool> m_calibrateClusters {this, "CalibrateClusters", true, 
       "Whether to run cluster calibrations"};
 
-  /** @brief Handle to the MVA calibration Tool **/
-  PublicToolHandle<IegammaMVATool>  m_MVACalibTool {this,
-      "MVACalibTool", "egammaMVATool", "calibration tool"};
+  /** @brief Handle to the MVA calibration service **/
+  ServiceHandle<IegammaMVASvc>  m_MVACalibSvc {this,
+      "MVACalibSvc", "egammaMVASvc", "calibration service"};
   
   /** @brief Tool to handle cluster corrections */
   ToolHandle<IegammaSwTool>   m_clusterCorrectionTool {this,
diff --git a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IegammaMVACalibTool.h b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IegammaMVACalibTool.h
new file mode 100644
index 0000000000000000000000000000000000000000..9b8bc9f033924acea650a998e312eeccf7ef62c2
--- /dev/null
+++ b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IegammaMVACalibTool.h
@@ -0,0 +1,28 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef EGAMMAINTERFACES_iEGAMMAMVACALIBTOOL_H
+#define EGAMMAINTERFACES_iEGAMMAMVACALIBTOOL_H
+
+#include "GaudiKernel/IAlgTool.h"
+
+// EDM includes
+#include "xAODEgamma/EgammaFwd.h"
+#include "xAODCaloEvent/CaloClusterFwd.h"
+
+/**
+ * @class IegammaMVACalibTool
+ * @brief A tool used by the egammaMVASvc to help manage the MVAs.
+ **/
+class IegammaMVACalibTool : virtual public IAlgTool {
+public:
+  DeclareInterfaceID(IegammaMVACalibTool, 1, 0);
+
+  virtual ~IegammaMVACalibTool() override {};
+
+  virtual float getEnergy(const xAOD::Egamma* eg,
+			  const xAOD::CaloCluster* clus) const = 0;
+
+}; 
+
+#endif
diff --git a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IegammaMVASvc.h b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IegammaMVASvc.h
new file mode 100644
index 0000000000000000000000000000000000000000..14525a8bffc539f6fa9a224a11d915a8173a1099
--- /dev/null
+++ b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IegammaMVASvc.h
@@ -0,0 +1,37 @@
+// Dear Emacs, this is -*- C++ -*-
+
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+
+#ifndef EGAMMAINTERFACES_IEGAMMAMVASVC_H
+#define EGAMMAINTERFACES_IEGAMMAMVASVC_H
+
+#include "GaudiKernel/IService.h"
+
+// EDM includes
+#include "xAODEgamma/EgammaFwd.h"
+#include "xAODEgamma/EgammaEnums.h"
+#include "xAODCaloEvent/CaloClusterFwd.h"
+
+
+class IegammaMVASvc : virtual public IService {
+public:
+  DeclareInterfaceID(IegammaMVASvc, 1, 0);
+
+  virtual ~IegammaMVASvc() override {};
+
+  /// Standard execute when you have both cluster and eg object
+  virtual StatusCode execute(xAOD::CaloCluster& cluster,
+			     const xAOD::Egamma& eg) const = 0;
+
+  /// An execute that just has cluster and egType. A converted photon
+  /// is treated like an unconverted photon since no access to vertex.
+  virtual StatusCode execute(xAOD::CaloCluster& cluster,
+			     xAOD::EgammaParameters::EgammaType egType) const = 0;
+
+
+};
+
+#endif
diff --git a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IelectronSuperClusterBuilder.h b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IelectronSuperClusterBuilder.h
deleted file mode 100644
index 66d93590d31a7c00984eaf5f339f3038f407725b..0000000000000000000000000000000000000000
--- a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IelectronSuperClusterBuilder.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef EGAMMAINTERFACES_IELECTRONSUPERCLUSTERBUILDER_H
-#define EGAMMAINTERFACES_IELECTRONSUPERCLUSTERBUILDER_H
-
-/** @class IELECTRONSUPERCLUSTERBULDER
-  Interface for the tool Reconstruction/egamma/egammaTools/electronSuperClusterBuilder
-  @author David Di Valentino david.di.valentino@cern.ch
-CREATED  : 21/12/2013
-MODIFIED : 
-*/
-// INCLUDE HEADER FILES:
-#include "GaudiKernel/IAlgTool.h"
-
-static const InterfaceID IID_IelectronSuperClusterBuilder("IelectronSuperClusterBuilder", 1, 0);
-
-class IelectronSuperClusterBuilder : virtual public IAlgTool
-{
-
- public:
-  /** @brief Virtual destructor*/
-  virtual ~IelectronSuperClusterBuilder() {};
-  /** @brief AlgTool interface methods */
-  static const InterfaceID& interfaceID();
-  /** @brief initialize method*/
-  virtual StatusCode initialize() = 0;
-  virtual StatusCode finalize()   = 0;
-  virtual StatusCode execute()    = 0; 
-};
-
-inline const InterfaceID& IelectronSuperClusterBuilder::interfaceID()
-{
-  return IID_IelectronSuperClusterBuilder;
-}
-
-#endif
diff --git a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IphotonSuperClusterBuilder.h b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IphotonSuperClusterBuilder.h
deleted file mode 100644
index 67ed47ef6296193ebb17edbfa6bc2917073b14ec..0000000000000000000000000000000000000000
--- a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/IphotonSuperClusterBuilder.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef EGAMMAINTERFACES_IPHOTONSUPERCLUSTERBUILDER_H
-#define EGAMMAINTERFACES_IPHOTONSUPERCLUSTERBUILDER_H
-
-#include "GaudiKernel/IAlgTool.h"
-
-static const InterfaceID IID_IphotonSuperClusterBuilder("IphotonSuperClusterBuilder", 1, 0);
-
-class IphotonSuperClusterBuilder : virtual public IAlgTool
-{
-
- public:
-  /** @brief Virtual destructor*/
-  virtual ~IphotonSuperClusterBuilder() {};
-  /** @brief AlgTool interface methods */
-  static const InterfaceID& interfaceID();
-  /** @brief initialize method*/
-  virtual StatusCode initialize() = 0;
-  virtual StatusCode finalize()   = 0;
-  virtual StatusCode execute()    = 0; 
-};
-
-inline const InterfaceID& IphotonSuperClusterBuilder::interfaceID()
-{
-  return IID_IphotonSuperClusterBuilder;
-}
-
-#endif
diff --git a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/egammaInterfacesDict.h b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/egammaInterfacesDict.h
index 37ab5e39b5eeeecc03ad9f1f80acb3cd9a5d0a9a..fa02a1a3eb53a09b47e2cfd95f29a33bb6433085 100644
--- a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/egammaInterfacesDict.h
+++ b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/egammaInterfacesDict.h
@@ -38,6 +38,5 @@
 #include "egammaInterfaces/IegammaTrkRefitterTool.h"
 #include "egammaInterfaces/Iegammaqweta1c.h"
 #include "egammaInterfaces/Iegammaqweta2c.h"
-#include "egammaInterfaces/IelectronSuperClusterBuilder.h"
-#include "egammaInterfaces/IphotonSuperClusterBuilder.h"
+#include "egammaInterfaces/IegammaMVASvc.h"
 #endif // EGAMMAINTERFACES_EGAMMAINTERFACESDICT_H
diff --git a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/selection.xml b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/selection.xml
index 790e3a3a4887da8d2deddf9f41fcd98793ec2c7c..d31c2df10d6069bfcbf303450f7432018ef692ec 100644
--- a/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/selection.xml
+++ b/Reconstruction/egamma/egammaInterfaces/egammaInterfaces/selection.xml
@@ -19,7 +19,6 @@
   <class name="IegammaTrkRefitterTool" />
   <class name="Iegammaqweta1c" />
   <class name="Iegammaqweta2c" />
-  <class name="IelectronSuperClusterBuilder" />
-  <class name="IphotonSuperClusterBuilder" />
+  <class name="IegammaMVASvc" />
 </lcgdict>
 
diff --git a/Reconstruction/egamma/egammaMVACalib/CMakeLists.txt b/Reconstruction/egamma/egammaMVACalib/CMakeLists.txt
index 0af29ebf67d598aa05fd584b94925a114cd82940..bdb7b3b17405ee0268c4ae20a2f34a15aec8e95d 100644
--- a/Reconstruction/egamma/egammaMVACalib/CMakeLists.txt
+++ b/Reconstruction/egamma/egammaMVACalib/CMakeLists.txt
@@ -27,6 +27,7 @@ atlas_depends_on_subdirs(
    Reconstruction/MVAUtils
    Control/CxxUtils
    Tools/PathResolver
+   Reconstruction/egamma/egammaInterfaces
    ${extra_dep} )
 
 # External dependencies:
@@ -44,8 +45,8 @@ atlas_add_library( egammaMVACalibLib
 
 if( NOT XAOD_STANDALONE )
    atlas_add_component( egammaMVACalib
-      src/components/*.cxx
-      LINK_LIBRARIES GaudiKernel egammaMVACalibLib )
+      src/*.cxx src/components/*.cxx
+      LINK_LIBRARIES GaudiKernel egammaMVACalibLib PathResolver MVAUtils )
 endif()
 
 atlas_add_dictionary( egammaMVACalibDict
diff --git a/Reconstruction/egamma/egammaMVACalib/Root/egammaMVAFunctions.cxx b/Reconstruction/egamma/egammaMVACalib/Root/egammaMVAFunctions.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..238957c92769ac77641f1dd9a7881e86ecca1d48
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/Root/egammaMVAFunctions.cxx
@@ -0,0 +1,298 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+
+#include "egammaMVACalib/egammaMVAFunctions.h"
+
+/**
+ * These functions are for building the maps of functions
+ **/
+
+namespace egammaMVAFunctions
+{
+
+  // forward declarations
+  void initializeClusterFuncs(funcMap_t& funcLibrary, 
+			      const std::string& prefix, 
+			      bool useLayerCorrected);
+
+  void initializeEgammaFuncs(funcMap_t& funcLibrary,
+			     const std::string& prefix, 
+			     bool useLayerCorrected);
+
+  /// A function to build the map for electrons
+  std::unique_ptr<funcMap_t> initializeElectronFuncs(bool useLayerCorrected)
+  {
+    auto funcLibraryPtr = std::make_unique<funcMap_t>();
+    funcMap_t& funcLibrary = *funcLibraryPtr;
+
+    initializeClusterFuncs(funcLibrary, "el", useLayerCorrected);
+    initializeEgammaFuncs(funcLibrary, "el", useLayerCorrected);
+
+    funcLibrary["el_charge"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return compute_el_charge(*(static_cast<const xAOD::Electron*>(eg))); };
+    funcLibrary["el_tracketa"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return compute_el_tracketa(*(static_cast<const xAOD::Electron*>(eg))); };
+    funcLibrary["el_trackpt"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return compute_el_trackpt(*(static_cast<const xAOD::Electron*>(eg))); };
+    funcLibrary["el_trackz0"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return compute_el_trackz0(*(static_cast<const xAOD::Electron*>(eg))); };
+    funcLibrary["el_refittedTrack_qoverp"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return compute_el_refittedTrack_qoverp(*(static_cast<const xAOD::Electron*>(eg))); };
+    
+    return funcLibraryPtr;
+  }
+
+  /// A function to build the map for uncoverted photons
+  std::unique_ptr<funcMap_t> initializeUnconvertedPhotonFuncs(bool useLayerCorrected)
+  {
+    auto funcLibraryPtr = std::make_unique<funcMap_t>();
+    funcMap_t& funcLibrary = *funcLibraryPtr;
+ 
+    initializeClusterFuncs(funcLibrary, "ph", useLayerCorrected);
+    initializeEgammaFuncs(funcLibrary, "ph", useLayerCorrected);
+
+    return funcLibraryPtr;
+  }
+
+
+  /// A function to build the map for converted photons
+  std::unique_ptr<funcMap_t> initializeConvertedPhotonFuncs(bool useLayerCorrected)
+  {
+    auto funcLibraryPtr = std::make_unique<funcMap_t>();
+    funcMap_t& funcLibrary = *funcLibraryPtr;
+    
+    initializeClusterFuncs(funcLibrary, "ph", useLayerCorrected);
+    initializeEgammaFuncs(funcLibrary, "ph", useLayerCorrected);
+    
+
+    funcLibrary["ph_Rconv"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)->float
+      { return xAOD::EgammaHelpers::conversionRadius(static_cast<const xAOD::Photon*>(eg)); };
+    
+    funcLibrary["convR"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)->float
+      { 
+	auto ph = static_cast<const xAOD::Photon*>(eg);
+	if (compute_ptconv(ph) > 3*CLHEP::GeV) {
+	  return xAOD::EgammaHelpers::conversionRadius(ph);
+	} else {
+	  return 799.0;
+	}
+      };
+    funcLibrary["ph_zconv"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return static_cast<const xAOD::Photon*>(eg)->vertex()->position().z(); };
+    funcLibrary["ph_pt1conv"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)->float
+      { return compute_pt1conv(static_cast<const xAOD::Photon*>(eg)); };    
+    funcLibrary["ph_pt2conv"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)->float
+      { return compute_pt2conv(static_cast<const xAOD::Photon*>(eg)); }; 
+    funcLibrary["ph_ptconv"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return compute_ptconv(static_cast<const xAOD::Photon*>(eg)); };
+    
+    funcLibrary["convPtRatio"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)->float
+      {
+	auto ph = static_cast<const xAOD::Photon*>(eg);
+	if (xAOD::EgammaHelpers::numberOfSiTracks(ph) == 2) {
+	  auto pt1 = compute_pt1conv(ph);
+	  auto pt2 = compute_pt2conv(ph);
+	  return std::max(pt1, pt2)/(pt1+pt2);
+	} else {
+	  return 1.0f;
+	}
+      };
+    
+    if (useLayerCorrected) {
+      funcLibrary["convEtOverPt"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*cl)->float
+	{
+	  auto ph = static_cast<const xAOD::Photon*>(eg);
+	  
+	  float rv = 0.0;
+	  if (xAOD::EgammaHelpers::numberOfSiTracks(ph) == 2) {
+	    rv = std::max(0.0f, compute_correctedcl_Eacc(*cl)/(std::cosh(compute_cl_eta(*cl))*compute_ptconv(ph)));
+	  } 
+	  return std::min(rv, 2.0f);
+	};
+    } else {
+      funcLibrary["convEtOverPt"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*cl)->float
+	{
+	  auto ph = static_cast<const xAOD::Photon*>(eg);
+	  
+	  float rv = 0.0;
+	  if (xAOD::EgammaHelpers::numberOfSiTracks(ph) == 2) {
+	    rv = std::max(0.0f, compute_rawcl_Eacc(*cl)/(std::cosh(compute_cl_eta(*cl))*compute_ptconv(ph)));
+	  } 
+	  return std::min(rv, 2.0f);
+	};
+    }
+    
+    return funcLibraryPtr;
+  }
+
+
+  // Initialize the functions that just depend on the cluster.
+  // This helper function is not meant for external use.
+  void initializeClusterFuncs(funcMap_t& funcLibrary, 
+			      const std::string& prefix, 
+			      bool useLayerCorrected)
+  {
+
+    funcLibrary[prefix + "_cl_eta"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return compute_cl_eta(*cl); };
+    funcLibrary[prefix + "_cl_phi"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return compute_cl_phi(*cl); };
+    funcLibrary[prefix + "_cl_E"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return compute_cl_e(*cl); };
+    funcLibrary[prefix + "_cl_etaCalo"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return compute_cl_etaCalo(*cl); };
+    funcLibrary[prefix + "_cl_phiCalo"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return compute_cl_phiCalo(*cl); };
+    funcLibrary[prefix + "_cl_E_TileGap3"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return cl->eSample(CaloSampling::TileGap3); };
+    
+    funcLibrary["cellIndexCalo"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return std::floor(std::abs(compute_cl_etaCalo(*cl))/0.025); };
+    funcLibrary["phiModCalo"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return ((abs(compute_cl_eta(*cl)) < 1.425) ? 
+		std::fmod(compute_cl_phiCalo(*cl), TMath::Pi()/512) :
+		std::fmod(compute_cl_phiCalo(*cl), TMath::Pi()/384)); 
+      };
+    funcLibrary["etaModCalo"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return std::fmod(std::abs(compute_cl_etaCalo(*cl)), 0.025); };
+    funcLibrary["dPhiTG3"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+      { return std::fmod(2.*TMath::Pi()+compute_cl_phi(*cl),TMath::Pi()/32.)-TMath::Pi()/64.0; };
+    
+    if (useLayerCorrected) {
+      funcLibrary[prefix + "_rawcl_Es0"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_Es0(*cl); };
+      funcLibrary[prefix + "_rawcl_Es1"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_Es1(*cl); };
+      funcLibrary[prefix + "_rawcl_Es2"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_Es2(*cl); };
+      funcLibrary[prefix + "_rawcl_Es3"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_Es3(*cl); };
+      funcLibrary[prefix + "_rawcl_Eacc"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_Eacc(*cl); };
+      funcLibrary[prefix + "_rawcl_f0"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_f0(*cl); };
+      funcLibrary[prefix + "_rawcl_calibHitsShowerDepth"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_calibHitsShowerDepth(*cl); };
+      funcLibrary["R12"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_correctedcl_Es1(*cl)/compute_correctedcl_Es2(*cl); };
+      funcLibrary["fTG3"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return cl->eSample(CaloSampling::TileGap3)/compute_correctedcl_Eacc(*cl); };
+    } else {
+      funcLibrary[prefix + "_rawcl_Es0"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_Es0(*cl); };
+      funcLibrary[prefix + "_rawcl_Es1"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_Es1(*cl); };
+      funcLibrary[prefix + "_rawcl_Es2"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_Es2(*cl); };
+      funcLibrary[prefix + "_rawcl_Es3"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_Es3(*cl); };
+      funcLibrary[prefix + "_rawcl_Eacc"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_Eacc(*cl); };
+      funcLibrary[prefix + "_rawcl_f0"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_f0(*cl); };
+      funcLibrary[prefix + "_rawcl_calibHitsShowerDepth"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_calibHitsShowerDepth(*cl); };
+      funcLibrary["R12"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return compute_rawcl_Es1(*cl)/compute_rawcl_Es2(*cl); };
+      funcLibrary["fTG3"] = [](const xAOD::Egamma*, const xAOD::CaloCluster* cl)
+	{ return cl->eSample(CaloSampling::TileGap3)/compute_rawcl_Eacc(*cl); };
+    }
+  }
+
+  // Initialize the variables that just depend on egamma.
+  // This helper function is not meant for external use.
+  void initializeEgammaFuncs(funcMap_t& funcLibrary, 
+			     const std::string& prefix, 
+			     bool /* useLayerCorrected */)
+  {
+    funcLibrary[prefix + "_e011"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e011); };
+    funcLibrary[prefix + "_e033"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e033); };
+    funcLibrary[prefix + "_e132"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e132); };
+    funcLibrary[prefix + "_e1152"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e1152); };
+    funcLibrary[prefix + "_ethad1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::ethad1); };
+    funcLibrary[prefix + "_ethad"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::ethad); };
+    funcLibrary[prefix + "_f1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::f1); };
+    funcLibrary[prefix + "_f3"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::f3); };
+    funcLibrary[prefix + "_f1core"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::f1core); };
+    funcLibrary[prefix + "_f3core"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::f3core); };
+    funcLibrary[prefix + "_e233"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e233); };
+    funcLibrary[prefix + "_e235"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e235); };
+    funcLibrary[prefix + "_e255"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e255); };
+    funcLibrary[prefix + "_e237"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e237); };
+    funcLibrary[prefix + "_e277"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e277); };
+    funcLibrary[prefix + "_e333"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e333); };
+    funcLibrary[prefix + "_e335"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e335); };
+    funcLibrary[prefix + "_e337"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e337); };
+    funcLibrary[prefix + "_e377"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e377); };
+    funcLibrary[prefix + "_weta1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::weta1); };
+    funcLibrary[prefix + "_weta2"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::weta2); };
+    funcLibrary[prefix + "_e2ts1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e2ts1); };
+    funcLibrary[prefix + "_e2tsts1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::e2tsts1); };
+    funcLibrary[prefix + "_fracs1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::fracs1); };
+    funcLibrary[prefix + "_widths1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::widths1); };
+    funcLibrary[prefix + "_widths2"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::widths2); };
+    funcLibrary[prefix + "_poscs1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::poscs1); };
+    funcLibrary[prefix + "_poscs2"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::poscs2); };
+    funcLibrary[prefix + "_asy1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::asy1); };
+    funcLibrary[prefix + "_pos"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::pos); };
+    funcLibrary[prefix + "_pos7"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::pos7); };
+    funcLibrary[prefix + "_barys1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::barys1); };
+    funcLibrary[prefix + "_wtots1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::wtots1); };
+    funcLibrary[prefix + "_emins1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::emins1); };
+    funcLibrary[prefix + "_emaxs1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::emaxs1); };
+    funcLibrary[prefix + "_r33over37allcalo"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::r33over37allcalo); };
+    funcLibrary[prefix + "_ecore"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::ecore); };
+    funcLibrary[prefix + "_Reta"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::Reta); };
+    funcLibrary[prefix + "_Rphi"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::Rphi); };
+    funcLibrary[prefix + "_Eratio"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::Eratio); };
+    funcLibrary[prefix + "_Rhad"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::Rhad); };
+    funcLibrary[prefix + "_Rhad1"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::Rhad1); };
+    funcLibrary[prefix + "_DeltaE"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)
+      { return eg->showerShapeValue(xAOD::EgammaParameters::DeltaE); };
+    
+  }
+}
diff --git a/Reconstruction/egamma/egammaMVACalib/Root/egammaMVATree.cxx b/Reconstruction/egamma/egammaMVACalib/Root/egammaMVATree.cxx
index 616457074a21a392d8eddbc8fcf197ad40d29c69..2f924a55e220e5768912a0abb195115eda2188fe 100644
--- a/Reconstruction/egamma/egammaMVACalib/Root/egammaMVATree.cxx
+++ b/Reconstruction/egamma/egammaMVACalib/Root/egammaMVATree.cxx
@@ -21,7 +21,7 @@
 #include "egammaMVACalib/egammaMVATree.h"
 
 
-using namespace egammaMVATreeHelpers;
+using namespace egammaMVAFunctions;
 
 //ClassImp(egammaMVATreeEgamma)
 //#ifdef ROOTCORE
diff --git a/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVAFunctions.h b/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVAFunctions.h
new file mode 100644
index 0000000000000000000000000000000000000000..a66bd2ca6fb9ed56c0aaaa8eaa4719c8a50d3103
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVAFunctions.h
@@ -0,0 +1,304 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef EGAMMAMVACALIB_EGAMMAMVAFUNCTIONS
+#define EGAMMAMVACALIB_EGAMMAMVAFUNCTIONS
+
+#include "xAODEgamma/Egamma.h"
+#include "xAODEgamma/Electron.h"
+#include "xAODEgamma/Photon.h"
+#include "xAODEgamma/EgammaxAODHelpers.h"
+#include "xAODEgamma/PhotonxAODHelpers.h"
+#include "xAODCaloEvent/CaloCluster.h"
+#include "egammaMVALayerDepth.h"
+
+// for the ConversionHelper (deprecated?)
+#include <AsgTools/AsgMessaging.h>
+
+#include "TLorentzVector.h"
+
+#include <functional>
+#include <string>
+#include <unordered_map>
+#include <cmath>
+#include <memory>
+#include <stdexcept>
+
+
+/**
+ * These functions are for calculating variables used by the
+ * MVA calibration
+ **/
+
+namespace egammaMVAFunctions
+{
+  // inline functions to avoid duplicates problem during linking (and performance)
+  // cluster functions
+  // REMEMBER to add the functions using corrected layer energies
+  inline float compute_cl_eta(const xAOD::CaloCluster& cluster) { return cluster.eta(); }
+  inline float compute_cl_phi(const xAOD::CaloCluster& cluster) { return cluster.phi(); }
+  inline float compute_cl_e(const xAOD::CaloCluster& cluster) { return cluster.e(); }
+  inline float compute_cl_etaCalo(const xAOD::CaloCluster& cluster) {
+    double tmp = 0.;
+    if(! (cluster.retrieveMoment(xAOD::CaloCluster::ETACALOFRAME, tmp))) {
+      throw std::runtime_error("etaCalo not found in CaloCluster object");
+    }
+    return tmp;
+  }
+  inline float compute_cl_phiCalo(const xAOD::CaloCluster& cluster) {
+    double tmp = 0.;
+    if(! (cluster.retrieveMoment(xAOD::CaloCluster::PHICALOFRAME, tmp))) {
+      throw std::runtime_error("phiCalo not found in CaloCluster object");
+    }
+    return tmp;
+  }
+  inline float compute_cl_etas1(const xAOD::CaloCluster& cluster) { return cluster.etaBE(1); }
+  inline float compute_cl_etas2(const xAOD::CaloCluster& cluster) { return cluster.etaBE(2); }
+  inline float compute_rawcl_Es0(const xAOD::CaloCluster& cl) { return cl.energyBE(0); }
+  /*inline std::function<float(const xAOD::CaloCluster&)> compute_rawcl_Es0_auto(bool use_corrected)
+  {
+      if (use_corrected) return [](const xAOD::CaloCluster& cl) { return cl.energyBE(0); };
+      else return [](const xAOD::CaloCluster& cl) { return cl.energyBE(0); };
+  }*/
+  inline float compute_rawcl_Es1(const xAOD::CaloCluster& cl) { return cl.energyBE(1); }
+  inline float compute_rawcl_Es2(const xAOD::CaloCluster& cl) { return cl.energyBE(2); }
+  inline float compute_rawcl_Es3(const xAOD::CaloCluster& cl) { return cl.energyBE(3); }
+
+  inline float compute_correctedcl_Es0(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es0") ? cl.auxdataConst<double>("correctedcl_Es0") : cl.energyBE(0); }
+  inline float compute_correctedcl_Es1(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es1") ? cl.auxdataConst<double>("correctedcl_Es1") : cl.energyBE(1); }
+  inline float compute_correctedcl_Es2(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es2") ? cl.auxdataConst<double>("correctedcl_Es2") : cl.energyBE(2); }
+  inline float compute_correctedcl_Es3(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es3") ? cl.auxdataConst<double>("correctedcl_Es3") : cl.energyBE(3); }
+
+  inline float compute_rawcl_Eacc(const xAOD::CaloCluster& cl) { return cl.energyBE(1) + cl.energyBE(2) + cl.energyBE(3); }
+  inline float compute_rawcl_f0(const xAOD::CaloCluster& cl) { return cl.energyBE(0) / (cl.energyBE(1) + cl.energyBE(2) + cl.energyBE(3)); }
+
+  inline float compute_correctedcl_Eacc(const xAOD::CaloCluster& cl) { return compute_correctedcl_Es1(cl) + compute_correctedcl_Es2(cl) + compute_correctedcl_Es3(cl); }
+  inline float compute_correctedcl_f0(const xAOD::CaloCluster& cl) { return compute_correctedcl_Es0(cl) / (compute_correctedcl_Eacc(cl)); }
+
+
+  inline float compute_calibHitsShowerDepth(const std::array<float, 4>& cl, float eta)
+  {
+    const std::array<float, 4> radius(get_MVAradius(eta));
+
+    // loop unrolling
+    const float denominator = cl[0] + cl[1] + cl[2] + cl[3];
+    if (denominator == 0) return 0.;
+
+    return (radius[0] * cl[0]
+          + radius[1] * cl[1]
+          + radius[2] * cl[2]
+          + radius[3] * cl[3]) / denominator;
+  }
+
+  inline float compute_rawcl_calibHitsShowerDepth(const xAOD::CaloCluster& cl)
+  {
+      const std::array<float, 4> cluster_array {{ compute_rawcl_Es0(cl),
+                                                  compute_rawcl_Es1(cl),
+                                                  compute_rawcl_Es2(cl),
+                                                  compute_rawcl_Es3(cl) }};
+      return compute_calibHitsShowerDepth(cluster_array, compute_cl_eta(cl));
+  }
+
+  inline float compute_correctedcl_calibHitsShowerDepth(const xAOD::CaloCluster& cl) {
+    const std::array<float, 4> cluster_array {{ compute_correctedcl_Es0(cl),
+                                                compute_correctedcl_Es1(cl),
+                                                compute_correctedcl_Es2(cl),
+                                                compute_correctedcl_Es3(cl) }};
+    return compute_calibHitsShowerDepth(cluster_array, compute_cl_eta(cl));
+  }
+
+
+
+
+  // electron functions
+  inline float compute_el_charge(const xAOD::Electron& el) { return el.charge(); }
+  inline float compute_el_tracketa(const xAOD::Electron& el) { return el.trackParticle()->eta(); }
+  inline float compute_el_trackpt(const xAOD::Electron& el) { return el.trackParticle()->pt(); }
+  inline float compute_el_trackz0(const xAOD::Electron& el) { return el.trackParticle()->z0(); }
+  inline float compute_el_refittedTrack_qoverp(const xAOD::Electron& el) { return el.trackParticle()->qOverP(); }
+  inline int compute_el_author(const xAOD::Electron& el) { return el.auxdata<unsigned short int>("author"); }
+
+
+  // photon functions
+  inline int compute_ph_convFlag(const xAOD::Photon& ph) {
+    const auto original = xAOD::EgammaHelpers::conversionType(&ph);
+    if (original == 3) return 2;
+    else if (original != 0) return 1;
+    else return original;
+  }
+
+  // a utility function
+  inline float getPtAtFirstMeasurement(const xAOD::TrackParticle* tp)
+  {
+    if (!tp) return 0;
+    for (unsigned int i = 0; i < tp->numberOfParameters(); ++i) {
+      if (tp->parameterPosition(i) == xAOD::FirstMeasurement) {
+	return hypot(tp->parameterPX(i), tp->parameterPY(i));
+      }
+    }
+    return tp->pt();
+  }
+
+  // define a few without using conversion helper
+
+  /// This ptconv function uses the vertex decorations
+  inline float compute_ptconv_decor(const xAOD::Photon* ph)
+  {
+    static const SG::AuxElement::Accessor<float> accPx("px");
+    static const SG::AuxElement::Accessor<float> accPy("py");
+    
+    auto vx = ph->vertex();
+    return vx ? std::hypot(accPx(*vx), accPy(*vx)) : 0.0;
+  }
+
+  /// This ptconv is the old one used by MVACalib
+  inline float compute_ptconv(const xAOD::Photon* ph)
+  {
+    auto vx = ph->vertex();
+    if (!vx) return 0.0;
+ 
+    TLorentzVector sum;
+    if (vx->trackParticle(0)) sum += vx->trackParticle(0)->p4();
+    if (vx->trackParticle(1)) sum += vx->trackParticle(1)->p4();
+    return sum.Perp();
+  }
+
+  inline float compute_pt1conv(const xAOD::Photon* ph)
+  {
+    static const SG::AuxElement::Accessor<float> accPt1("pt1");
+    
+    const xAOD::Vertex* vx = ph->vertex();
+    if (!vx) return 0.0;
+    if (accPt1.isAvailable(*vx)) {
+      return accPt1(*vx);
+    } else {
+      return getPtAtFirstMeasurement(vx->trackParticle(0));
+    }
+  }
+
+  inline float compute_pt2conv(const xAOD::Photon* ph)
+  {
+    static const SG::AuxElement::Accessor<float> accPt2("pt2");
+    
+    const xAOD::Vertex* vx = ph->vertex();
+    if (!vx) return 0.0;
+    if (accPt2.isAvailable(*vx)) {
+      return accPt2(*vx);
+    } else {
+      return getPtAtFirstMeasurement(vx->trackParticle(1));
+    }
+  }
+
+  // The functions to return the dictionaries of functions,
+  // i.e., the variable name to function
+
+  /// Define the map type since it's long
+  using funcMap_t = std::unordered_map<std::string,
+				       std::function<float(const xAOD::Egamma*, const xAOD::CaloCluster*)> >;
+
+  /// A function to build the map for electrons
+  std::unique_ptr<funcMap_t> initializeElectronFuncs(bool useLayerCorrected);
+
+  /// A function to build the map for uncoverted photons
+  std::unique_ptr<funcMap_t> initializeUnconvertedPhotonFuncs(bool useLayerCorrected);
+
+  /// A function to build the map for converted photons
+  std::unique_ptr<funcMap_t> initializeConvertedPhotonFuncs(bool useLayerCorrected);
+
+
+  /// The ConversionHelper struct used by egammaMVATree 
+  /// but not the functions in the dictionaries above.
+  /// (Might want to consider deprecating)
+  struct ConversionHelper
+  {
+    ConversionHelper(const xAOD::Photon* ph)
+      : m_vertex(ph ? ph->vertex() : nullptr),
+        m_tp0(m_vertex ? m_vertex->trackParticle(0) : nullptr),
+        m_tp1(m_vertex ? m_vertex->trackParticle(1) : nullptr),
+        m_pt1conv(0.), m_pt2conv(0.)
+    {
+      static asg::AsgMessaging static_msg("ConversionHelper");
+      static_msg.msg(MSG::DEBUG) << "init conversion helper";
+      if (!m_vertex) return;
+
+      static SG::AuxElement::Accessor<float> accPt1("pt1");
+      static SG::AuxElement::Accessor<float> accPt2("pt2");
+      if (accPt1.isAvailable(*m_vertex) && accPt2.isAvailable(*m_vertex))
+      {
+        m_pt1conv = accPt1(*m_vertex);
+        m_pt2conv = accPt2(*m_vertex);
+      }
+      else
+      {
+        static_msg.msg(MSG::WARNING) << "pt1/pt2 not available, will approximate from first measurements";
+        m_pt1conv = getPtAtFirstMeasurement(m_tp0);
+        m_pt2conv = getPtAtFirstMeasurement(m_tp1);
+      }
+    }
+
+    ConversionHelper(const xAOD::Photon& ph)
+      : ConversionHelper(&ph) { }  // delegating constr
+
+    inline float ph_Rconv() const { return m_vertex ? hypot(m_vertex->position().x(), m_vertex->position().y()) : 0; }
+    inline float ph_zconv() const { return m_vertex ? m_vertex->position().z() : 0.; }
+    inline int ph_convtrk1nPixHits() const {
+      if (!m_tp0) { return 0; }
+      uint8_t hits = 0;
+      if (m_tp0->summaryValue(hits, xAOD::numberOfPixelHits)) { return hits; }
+      else {
+        static asg::AsgMessaging static_msg("ConversionHelper");
+        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfPixelHits";
+        return 0;
+      }
+    }
+    inline int ph_convtrk2nPixHits() const {
+      if (!m_tp1) return 0;
+      uint8_t hits;
+      if (m_tp1->summaryValue(hits, xAOD::numberOfPixelHits)) { return hits; }
+      else {
+        static asg::AsgMessaging static_msg("ConversionHelper");
+        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfPixelHits";
+        return 0;
+      }
+    }
+    inline int ph_convtrk1nSCTHits() const {
+      if (!m_tp0) { return 0; }
+      uint8_t hits;
+      if (m_tp0->summaryValue(hits, xAOD::numberOfSCTHits)) { return hits; }
+      else {
+        static asg::AsgMessaging static_msg("ConversionHelper");
+        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfSCTHits";
+        return 0;
+      }
+    }
+    inline int ph_convtrk2nSCTHits() const {
+      if (!m_tp1) { return 0; }
+      uint8_t hits;
+      if (m_tp1->summaryValue(hits, xAOD::numberOfSCTHits)) { return hits; }
+      else {
+        static asg::AsgMessaging static_msg("ConversionHelper");
+        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfSCTHits";
+        return 0;
+      }
+    }
+    inline float ph_pt1conv() const { return m_pt1conv; }
+    inline float ph_pt2conv() const { return m_pt2conv; }
+    inline float ph_ptconv() const {
+      // TODO: evaluate if move to this new definition, by now keep the previous one
+      // to be consistent with the training
+      // return m_vertex ? xAOD::EgammaHelpers::momentumAtVertex(*m_vertex).perp() : 0.;
+      TLorentzVector sum;
+      if (m_tp0) sum += m_tp0->p4();
+      if (m_tp1) sum += m_tp1->p4();
+      return sum.Perp();
+    }
+  private:
+    const xAOD::Vertex* m_vertex;
+    const xAOD::TrackParticle* m_tp0;
+    const xAOD::TrackParticle* m_tp1;
+    float m_pt1conv, m_pt2conv;
+  };
+}
+
+#endif
diff --git a/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVATree.h b/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVATree.h
index 939b4cc43e46f210fa5bdf290a3ab6212a898668..966aae7f6ed7e5c299a0456eec8bee994ba21916 100644
--- a/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVATree.h
+++ b/Reconstruction/egamma/egammaMVACalib/egammaMVACalib/egammaMVATree.h
@@ -27,7 +27,8 @@
 
 #include <AsgTools/AsgMessaging.h>
 
-#include <egammaMVACalib/egammaMVALayerDepth.h>
+#include "egammaMVACalib/egammaMVALayerDepth.h"
+#include "egammaMVACalib/egammaMVAFunctions.h"
 
 
 
@@ -154,8 +155,6 @@ public:
 template<> const float* egammaMVATreeEgamma::get_ptr<float>(const std::string&) const;
 template<> const int* egammaMVATreeEgamma::get_ptr<int>(const std::string&) const;
 
-namespace egammaMVATreeHelpers { struct ConversionHelper; }
-
 class egammaMVATreePhoton : public egammaMVATreeEgamma
 {
 public:
@@ -174,8 +173,8 @@ private:
   void init_variables(const std::set<std::string>& variables);
   typedef std::tuple<std::string, std::function<float(const xAOD::Photon&)>, float> FloatElement; //!
   typedef std::tuple<std::string, std::function<int(const xAOD::Photon&)>, int> IntElement; //!
-  typedef std::tuple<std::string, std::function<float(const egammaMVATreeHelpers::ConversionHelper&)>, float> FloatElementConv; //!
-  typedef std::tuple<std::string, std::function<int(const egammaMVATreeHelpers::ConversionHelper&)>, int> IntElementConv; //!
+  typedef std::tuple<std::string, std::function<float(const egammaMVAFunctions::ConversionHelper&)>, float> FloatElementConv; //!
+  typedef std::tuple<std::string, std::function<int(const egammaMVAFunctions::ConversionHelper&)>, int> IntElementConv; //!
   std::vector<FloatElement> m_functions_float_from_photon; //!
   std::vector<IntElement> m_functions_int_from_photon; //!
   std::vector<FloatElementConv> m_functions_float_from_ConversionHelper; //!
@@ -227,203 +226,5 @@ public:
 template<> const float* egammaMVATreePhoton::get_ptr<float>(const std::string&) const;
 template<> const int* egammaMVATreePhoton::get_ptr<int>(const std::string&) const;
 
-/** inline functions to compute quantities **/
-namespace egammaMVATreeHelpers
-{
-  // inline functions to avoid duplicates problem during linking (and performance)
-  // cluster functions
-  // REMEMBER to add the functions using corrected layer energies
-  inline float compute_cl_eta(const xAOD::CaloCluster& cluster) { return cluster.eta(); }
-  inline float compute_cl_phi(const xAOD::CaloCluster& cluster) { return cluster.phi(); }
-  inline float compute_cl_e(const xAOD::CaloCluster& cluster) { return cluster.e(); }
-  inline float compute_cl_etaCalo(const xAOD::CaloCluster& cluster) {
-    double tmp = 0.;
-    if(! (cluster.retrieveMoment(xAOD::CaloCluster::ETACALOFRAME, tmp))) {
-      throw std::runtime_error("etaCalo not found in CaloCluster object");
-    }
-    return tmp;
-  }
-  inline float compute_cl_phiCalo(const xAOD::CaloCluster& cluster) {
-    double tmp = 0.;
-    if(! (cluster.retrieveMoment(xAOD::CaloCluster::PHICALOFRAME, tmp))) {
-      throw std::runtime_error("phiCalo not found in CaloCluster object");
-    }
-    return tmp;
-  }
-  inline float compute_cl_etas1(const xAOD::CaloCluster& cluster) { return cluster.etaBE(1); }
-  inline float compute_cl_etas2(const xAOD::CaloCluster& cluster) { return cluster.etaBE(2); }
-  inline float compute_rawcl_Es0(const xAOD::CaloCluster& cl) { return cl.energyBE(0); }
-  /*inline std::function<float(const xAOD::CaloCluster&)> compute_rawcl_Es0_auto(bool use_corrected)
-  {
-      if (use_corrected) return [](const xAOD::CaloCluster& cl) { return cl.energyBE(0); };
-      else return [](const xAOD::CaloCluster& cl) { return cl.energyBE(0); };
-  }*/
-  inline float compute_rawcl_Es1(const xAOD::CaloCluster& cl) { return cl.energyBE(1); }
-  inline float compute_rawcl_Es2(const xAOD::CaloCluster& cl) { return cl.energyBE(2); }
-  inline float compute_rawcl_Es3(const xAOD::CaloCluster& cl) { return cl.energyBE(3); }
-
-  inline float compute_correctedcl_Es0(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es0") ? cl.auxdataConst<double>("correctedcl_Es0") : cl.energyBE(0); }
-  inline float compute_correctedcl_Es1(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es1") ? cl.auxdataConst<double>("correctedcl_Es1") : cl.energyBE(1); }
-  inline float compute_correctedcl_Es2(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es2") ? cl.auxdataConst<double>("correctedcl_Es2") : cl.energyBE(2); }
-  inline float compute_correctedcl_Es3(const xAOD::CaloCluster& cl) { return cl.isAvailable<double>("correctedcl_Es3") ? cl.auxdataConst<double>("correctedcl_Es3") : cl.energyBE(3); }
-
-  inline float compute_rawcl_Eacc(const xAOD::CaloCluster& cl) { return cl.energyBE(1) + cl.energyBE(2) + cl.energyBE(3); }
-  inline float compute_rawcl_f0(const xAOD::CaloCluster& cl) { return cl.energyBE(0) / (cl.energyBE(1) + cl.energyBE(2) + cl.energyBE(3)); }
-
-  inline float compute_correctedcl_Eacc(const xAOD::CaloCluster& cl) { return compute_correctedcl_Es1(cl) + compute_correctedcl_Es2(cl) + compute_correctedcl_Es3(cl); }
-  inline float compute_correctedcl_f0(const xAOD::CaloCluster& cl) { return compute_correctedcl_Es0(cl) / (compute_correctedcl_Eacc(cl)); }
-
-
-  inline float compute_calibHitsShowerDepth(const std::array<float, 4>& cl, float eta)
-  {
-    const std::array<float, 4> radius(get_MVAradius(eta));
-
-    // loop unrolling
-    const float denominator = cl[0] + cl[1] + cl[2] + cl[3];
-    if (denominator == 0) return 0.;
-
-    return (radius[0] * cl[0]
-          + radius[1] * cl[1]
-          + radius[2] * cl[2]
-          + radius[3] * cl[3]) / denominator;
-  }
-
-  inline float compute_rawcl_calibHitsShowerDepth(const xAOD::CaloCluster& cl)
-  {
-      const std::array<float, 4> cluster_array {{ compute_rawcl_Es0(cl),
-                                                  compute_rawcl_Es1(cl),
-                                                  compute_rawcl_Es2(cl),
-                                                  compute_rawcl_Es3(cl) }};
-      return compute_calibHitsShowerDepth(cluster_array, compute_cl_eta(cl));
-  }
-
-  inline float compute_correctedcl_calibHitsShowerDepth(const xAOD::CaloCluster& cl) {
-    const std::array<float, 4> cluster_array {{ compute_correctedcl_Es0(cl),
-                                                compute_correctedcl_Es1(cl),
-                                                compute_correctedcl_Es2(cl),
-                                                compute_correctedcl_Es3(cl) }};
-    return compute_calibHitsShowerDepth(cluster_array, compute_cl_eta(cl));
-  }
-
-
-
-
-  // electron functions
-  inline float compute_el_charge(const xAOD::Electron& el) { return el.charge(); }
-  inline float compute_el_tracketa(const xAOD::Electron& el) { return el.trackParticle()->eta(); }
-  inline float compute_el_trackpt(const xAOD::Electron& el) { return el.trackParticle()->pt(); }
-  inline float compute_el_trackz0(const xAOD::Electron& el) { return el.trackParticle()->z0(); }
-  inline float compute_el_refittedTrack_qoverp(const xAOD::Electron& el) { return el.trackParticle()->qOverP(); }
-  inline int compute_el_author(const xAOD::Electron& el) { return el.auxdata<unsigned short int>("author"); }
-
-
-  // photon functions
-  inline int compute_ph_convFlag(const xAOD::Photon& ph) {
-    const auto original = xAOD::EgammaHelpers::conversionType(&ph);
-    if (original == 3) return 2;
-    else if (original != 0) return 1;
-    else return original;
-  }
-
-  struct ConversionHelper
-  {
-    ConversionHelper(const xAOD::Photon* ph)
-      : m_vertex(ph ? ph->vertex() : nullptr),
-        m_tp0(m_vertex ? m_vertex->trackParticle(0) : nullptr),
-        m_tp1(m_vertex ? m_vertex->trackParticle(1) : nullptr),
-        m_pt1conv(0.), m_pt2conv(0.)
-    {
-      static asg::AsgMessaging static_msg("ConversionHelper");
-      static_msg.msg(MSG::DEBUG) << "init conversion helper";
-      if (!m_vertex) return;
-
-      static SG::AuxElement::Accessor<float> accPt1("pt1");
-      static SG::AuxElement::Accessor<float> accPt2("pt2");
-      if (accPt1.isAvailable(*m_vertex) && accPt2.isAvailable(*m_vertex))
-      {
-        m_pt1conv = accPt1(*m_vertex);
-        m_pt2conv = accPt2(*m_vertex);
-      }
-      else
-      {
-        static_msg.msg(MSG::WARNING) << "pt1/pt2 not available, will approximate from first measurements";
-        m_pt1conv = getPtAtFirstMeasurement(m_tp0);
-        m_pt2conv = getPtAtFirstMeasurement(m_tp1);
-      }
-    }
-
-    ConversionHelper(const xAOD::Photon& ph)
-      : ConversionHelper(&ph) { }  // delegating constr
-
-    inline float ph_Rconv() const { return m_vertex ? hypot(m_vertex->position().x(), m_vertex->position().y()) : 0; }
-    inline float ph_zconv() const { return m_vertex ? m_vertex->position().z() : 0.; }
-    inline int ph_convtrk1nPixHits() const {
-      if (!m_tp0) { return 0; }
-      uint8_t hits = 0;
-      if (m_tp0->summaryValue(hits, xAOD::numberOfPixelHits)) { return hits; }
-      else {
-        static asg::AsgMessaging static_msg("ConversionHelper");
-        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfPixelHits";
-        return 0;
-      }
-    }
-    inline int ph_convtrk2nPixHits() const {
-      if (!m_tp1) return 0;
-      uint8_t hits;
-      if (m_tp1->summaryValue(hits, xAOD::numberOfPixelHits)) { return hits; }
-      else {
-        static asg::AsgMessaging static_msg("ConversionHelper");
-        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfPixelHits";
-        return 0;
-      }
-    }
-    inline int ph_convtrk1nSCTHits() const {
-      if (!m_tp0) { return 0; }
-      uint8_t hits;
-      if (m_tp0->summaryValue(hits, xAOD::numberOfSCTHits)) { return hits; }
-      else {
-        static asg::AsgMessaging static_msg("ConversionHelper");
-        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfSCTHits";
-        return 0;
-      }
-    }
-    inline int ph_convtrk2nSCTHits() const {
-      if (!m_tp1) { return 0; }
-      uint8_t hits;
-      if (m_tp1->summaryValue(hits, xAOD::numberOfSCTHits)) { return hits; }
-      else {
-        static asg::AsgMessaging static_msg("ConversionHelper");
-        static_msg.msg(MSG::WARNING) << "cannot read xAOD::numberOfSCTHits";
-        return 0;
-      }
-    }
-    inline float ph_pt1conv() const { return m_pt1conv; }
-    inline float ph_pt2conv() const { return m_pt2conv; }
-    inline float ph_ptconv() const {
-      // TODO: evaluate if move to this new definition, by now keep the previous one
-      // to be consistent with the training
-      // return m_vertex ? xAOD::EgammaHelpers::momentumAtVertex(*m_vertex).perp() : 0.;
-      TLorentzVector sum;
-      if (m_tp0) sum += m_tp0->p4();
-      if (m_tp1) sum += m_tp1->p4();
-      return sum.Perp();
-    }
-  private:
-    float getPtAtFirstMeasurement(const xAOD::TrackParticle* tp) const
-    {
-      if (!tp) return 0;
-      for (unsigned int i = 0; i < tp->numberOfParameters(); ++i)
-        if (tp->parameterPosition(i) == xAOD::FirstMeasurement)
-          return hypot(tp->parameterPX(i), tp->parameterPY(i));
-      static asg::AsgMessaging static_msg("ConversionHelper");
-      static_msg.msg(MSG::WARNING) << "Could not find first parameter, return pt at perigee";
-      return tp->pt();
-    }
-    const xAOD::Vertex* m_vertex;
-    const xAOD::TrackParticle* m_tp0;
-    const xAOD::TrackParticle* m_tp1;
-    float m_pt1conv, m_pt2conv;
-  };
-}
 
 #endif
diff --git a/Reconstruction/egamma/egammaMVACalib/python/TrigEgammaMVACalibFactories.py b/Reconstruction/egamma/egammaMVACalib/python/TrigEgammaMVACalibFactories.py
new file mode 100644
index 0000000000000000000000000000000000000000..1071ebe8771108d51b5420fd67302cb9d3453e66
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/python/TrigEgammaMVACalibFactories.py
@@ -0,0 +1,40 @@
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+
+__doc__ = "Tool and service factories to instantiate MVA calibration for trigger"
+__author__ = "Jovan Mitrevski"
+
+
+from egammaRec.Factories import ToolFactory, ServiceFactory
+
+import logging
+mlog = logging.getLogger ('TrigEgammaMVACalibFactories')
+
+from egammaMVACalib import egammaMVACalibConf
+from TriggerMenu.egamma.EgammaSliceFlags import EgammaSliceFlags
+mlog.info("MVA version version %s"%EgammaSliceFlags.calibMVAVersion() )
+mlog.info("Cluster Correction version %s"%EgammaSliceFlags.clusterCorrectionVersion() )
+EgammaSliceFlags.calibMVAVersion.set_On()
+
+import cppyy
+cppyy.loadDictionary('xAODEgammaDict')
+from ROOT import xAOD
+
+
+TrigElectronMVATool = ToolFactory(egammaMVACalibConf.egammaMVACalibTool, 
+                                  name = "TrigElectronMVATool",
+                                  ParticleType = xAOD.EgammaParameters.electron,
+                                  folder=EgammaSliceFlags.calibMVAVersion(),
+                                  use_layer_corrected = False)
+
+TrigPhotonMVATool = ToolFactory(egammaMVACalibConf.egammaMVACalibTool, 
+                                name = "TrigPhotonMVATool",
+                                ParticleType = xAOD.EgammaParameters.unconvertedPhoton,
+                                folder=EgammaSliceFlags.calibMVAVersion(),
+                                use_layer_corrected = False)
+
+
+TrigEgammaMVASvc =  ServiceFactory(egammaMVACalibConf.egammaMVASvc, name = "TrigEgammaMVASvc",
+                                   ElectronTool = TrigElectronMVATool,
+                                   UnconvertedPhotonTool = TrigPhotonMVATool)
+
+del mlog
diff --git a/Reconstruction/egamma/egammaMVACalib/python/egammaMVACalibFactories.py b/Reconstruction/egamma/egammaMVACalib/python/egammaMVACalibFactories.py
new file mode 100644
index 0000000000000000000000000000000000000000..bf1b8081a07ca68fb9d67220a8a6ac8adc017b7b
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/python/egammaMVACalibFactories.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+
+__doc__ = "Tool and service factories to instantiate MVA calibration"
+__author__ = "Jovan Mitrevski"
+
+
+from egammaRec.Factories import ToolFactory, ServiceFactory
+
+from egammaMVACalib import egammaMVACalibConf
+from egammaRec.egammaRecFlags import jobproperties
+import cppyy
+cppyy.loadDictionary('xAODEgammaDict')
+from ROOT import xAOD
+
+electronMVATool = ToolFactory(egammaMVACalibConf.egammaMVACalibTool, 
+                              name = "electronMVATool",
+                              ParticleType = xAOD.EgammaParameters.electron,
+                              folder=jobproperties.egammaRecFlags.calibMVAVersion())
+
+unconvPhotonMVATool = ToolFactory(egammaMVACalibConf.egammaMVACalibTool, 
+                                  name = "unconvPhotonMVATool",
+                                  ParticleType = xAOD.EgammaParameters.unconvertedPhoton,
+                                  folder=jobproperties.egammaRecFlags.calibMVAVersion())
+
+convertedPhotonMVATool = ToolFactory(egammaMVACalibConf.egammaMVACalibTool,
+                                     name = "convertePhotonMVATool",
+                                     ParticleType = xAOD.EgammaParameters.convertedPhoton,
+                                     folder=jobproperties.egammaRecFlags.calibMVAVersion())
+
+egammaMVASvc =  ServiceFactory(egammaMVACalibConf.egammaMVASvc,
+                               ElectronTool = electronMVATool,
+                               UnconvertedPhotonTool = unconvPhotonMVATool,
+                               ConvertedPhotonTool = convertedPhotonMVATool)
diff --git a/Reconstruction/egamma/egammaMVACalib/src/components/egammaMVACalib_entries.cxx b/Reconstruction/egamma/egammaMVACalib/src/components/egammaMVACalib_entries.cxx
index 37a5a6fa8cfb9003076cfb1214326957e96896d1..c9ef57c023ee945435da627ca4961440faba2886 100644
--- a/Reconstruction/egamma/egammaMVACalib/src/components/egammaMVACalib_entries.cxx
+++ b/Reconstruction/egamma/egammaMVACalib/src/components/egammaMVACalib_entries.cxx
@@ -1,4 +1,8 @@
 #include "egammaMVACalib/egammaMVATool.h"
+#include "../egammaMVASvc.h"
+#include "../egammaMVACalibTool.h"
 
 DECLARE_COMPONENT( egammaMVATool )
+DECLARE_COMPONENT( egammaMVASvc )
+DECLARE_COMPONENT( egammaMVACalibTool )
 
diff --git a/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.cxx b/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a7b84937cf19d195b2a504ddfde588b0caeff915
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.cxx
@@ -0,0 +1,278 @@
+ /*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "egammaMVACalibTool.h"
+
+#include "PathResolver/PathResolver.h"
+
+#include "TFile.h"
+#include "TMath.h"
+
+#include <cmath>
+
+
+egammaMVACalibTool::egammaMVACalibTool(const std::string& type, const std::string& name, const IInterface* parent) :
+  base_class(type, name, parent)
+{
+}
+
+egammaMVACalibTool::~egammaMVACalibTool()
+{
+}
+
+StatusCode egammaMVACalibTool::initialize()
+{
+
+  ATH_MSG_DEBUG("Initializing with particle " << m_particleType);
+
+  if (m_shiftType == MEAN10TOTRUE) {
+    ATH_MSG_DEBUG("Using Mean10 shift");
+  } else if (m_shiftType == NOSHIFT) {
+    ATH_MSG_DEBUG("Not using a shift");
+  } else {
+    ATH_MSG_FATAL("Unsupported shift: " << m_shiftType);
+    return StatusCode::FAILURE;
+  }
+
+  // get the BDTs
+  ATH_MSG_DEBUG("get BDTs in folder: " << m_folder);
+  switch (m_particleType) {
+  case xAOD::EgammaParameters::electron:
+    {
+      std::unique_ptr<egammaMVAFunctions::funcMap_t> funcLibraryPtr = 
+	egammaMVAFunctions::initializeElectronFuncs(m_useLayerCorrected);
+      ATH_CHECK(setupBDT(*funcLibraryPtr, 
+			 PathResolverFindCalibFile(m_folder + "/MVACalib_electron.weights.root")));
+    }
+    break;
+  case xAOD::EgammaParameters::unconvertedPhoton:
+    {
+      std::unique_ptr<egammaMVAFunctions::funcMap_t> funcLibraryPtr = 
+	egammaMVAFunctions::initializeUnconvertedPhotonFuncs(m_useLayerCorrected);
+      ATH_CHECK(setupBDT(*funcLibraryPtr, 
+			 PathResolverFindCalibFile(m_folder + "/MVACalib_unconvertedPhoton.weights.root")));
+    }
+    break;
+  case xAOD::EgammaParameters::convertedPhoton:
+    {
+      std::unique_ptr<egammaMVAFunctions::funcMap_t> funcLibraryPtr = 
+	egammaMVAFunctions::initializeConvertedPhotonFuncs(m_useLayerCorrected);
+      ATH_CHECK(setupBDT(*funcLibraryPtr, 
+			 PathResolverFindCalibFile(m_folder + "/MVACalib_convertedPhoton.weights.root")));
+    }
+    break;
+  default:
+    ATH_MSG_FATAL("Particle type not set properly: " << m_particleType);
+    return StatusCode::FAILURE;
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+StatusCode egammaMVACalibTool::finalize()
+{
+  return StatusCode::SUCCESS;
+}
+
+StatusCode egammaMVACalibTool::setupBDT(const egammaMVAFunctions::funcMap_t& funcLibrary,
+					std::string fileName)
+{
+
+  ATH_MSG_DEBUG("Trying to open " << fileName);
+
+  std::unique_ptr<TFile> f(TFile::Open(fileName.c_str()));
+  if (!f || f->IsZombie() ) {
+    ATH_MSG_FATAL("Could not open file: " << fileName);
+    return StatusCode::FAILURE;
+  }
+
+  // Load hPoly
+  TH2Poly *hPoly = nullptr;
+  f->GetObject("hPoly", hPoly);
+  if (!hPoly) {
+    ATH_MSG_FATAL("Could not find hPoly");
+    return StatusCode::FAILURE;
+  }
+  
+  m_hPoly.reset(static_cast<TH2Poly*>(hPoly->Clone()));
+  m_hPoly->SetDirectory(0);
+
+  // Load variables
+  TObjArray *variablesTmp = nullptr;
+  f->GetObject("variables", variablesTmp);
+  if (!variablesTmp) {
+    ATH_MSG_FATAL("Could not find variables");
+    return StatusCode::FAILURE;
+  }
+  auto variables = std::unique_ptr<TObjArray>(variablesTmp);
+  variables->SetOwner(); // to delete the objects when d-tor is called
+
+  // Load shifts
+  TObjArray *shiftsTmp = nullptr;
+  f->GetObject("shifts", shiftsTmp);
+  if (!shiftsTmp) {
+    ATH_MSG_FATAL("Could not find shifts");
+    return StatusCode::FAILURE;
+  }
+  auto shifts = std::unique_ptr<TObjArray>(shiftsTmp);
+  shifts->SetOwner(); // to delete the objects when d-tor is called
+
+  // Load trees
+  TObjArray *treesTmp = nullptr;
+  std::unique_ptr<TObjArray> trees;
+  f->GetObject("trees", treesTmp);
+  if (treesTmp) {
+    trees = std::unique_ptr<TObjArray>(treesTmp);
+    trees->SetOwner(); // to delete the objects when d-tor is called
+    ATH_MSG_DEBUG("setupBDT " << "BDTs read from TObjArray");
+  } else {
+    ATH_MSG_DEBUG("setupBDT " << "Reading trees individually");
+    trees = std::make_unique<TObjArray>();
+    trees->SetOwner(); // to delete the objects when d-tor is called
+    for (int i = 0; i < variables->GetEntries(); ++i)
+    {
+      TTree *tree = nullptr;
+      f->GetObject(Form("BDT%d", i), tree);
+      if (tree) tree->SetCacheSize(0);
+      trees->AddAtAndExpand(tree, i);
+    }
+  }
+
+  // Ensure the objects have (the same number of) entries
+  if (!trees->GetEntries() || !(trees->GetEntries() == variables->GetEntries())) {
+    ATH_MSG_FATAL("Tree has size " << trees->GetEntries() 
+		  << " while variables has size " << variables->GetEntries());
+    return StatusCode::FAILURE;
+  }
+
+  // Loop simultaneously over trees, variables and shifts
+  // Define the BDTs, the list of variables and the shift for each BDT
+  TObjString *str2, *shift;
+  TTree *tree;
+  TIter nextTree(trees.get());
+  TIter nextVariables(variables.get());
+  TIter nextShift(shifts.get());
+  for (int i=0; (tree = (TTree*) nextTree()) && ((TObjString*) nextVariables()); ++i)
+  {
+    m_BDTs.emplace_back(tree);
+
+    std::vector<std::function<float(const xAOD::Egamma*, const xAOD::CaloCluster*)> > funcs;
+    // Loop over variables, which are separated by comma
+    char separator_var = ';';
+    if (getString(variables->At(i)).Index(";") < 1) separator_var = ','; // old versions
+    std::unique_ptr<TObjArray> tokens(getString(variables->At(i)).Tokenize(separator_var));
+    TIter nextVar(tokens.get());
+    while ((str2 = (TObjString*) nextVar()))
+    {
+      const TString& varName = getString(str2);
+      if (!varName.Length()) {
+	ATH_MSG_FATAL("There was an empty variable name!");
+	return StatusCode::FAILURE;
+      }
+      try {
+	funcs.push_back(funcLibrary.at(varName.Data()));
+      } catch(const std::out_of_range& e) {
+	ATH_MSG_FATAL("Could not find formula for variable " << varName << ", error: " << e.what());
+	return StatusCode::FAILURE;	
+      } 
+    }
+    m_funcs.push_back(std::move(funcs));
+
+    if (m_shiftType == MEAN10TOTRUE) {
+      shift = (TObjString*) nextShift();
+      const TString& shiftFormula = getString(shift);
+      m_shifts.emplace_back("", shiftFormula);
+    }
+  }
+  return StatusCode::SUCCESS;
+
+}
+
+const TString& egammaMVACalibTool::getString(TObject* obj) const
+{
+  TObjString *objS = dynamic_cast<TObjString*>(obj);
+  if (!objS) {
+    throw std::runtime_error("egammaMVACalibTool::getString was passed something that was not a string object");
+  }
+  return objS->GetString();
+}
+
+float egammaMVACalibTool::getEnergy(const xAOD::Egamma* eg,
+				    const xAOD::CaloCluster* clus) const
+{
+
+  ATH_MSG_DEBUG("calling getEnergy with cluster (" << clus << ") and eg (" << eg <<")");
+
+
+  if (!clus && eg) {
+    clus = eg->caloCluster();
+  }
+  if (!clus) {
+    ATH_MSG_FATAL("The cluster pointer must not be null!");
+    throw std::runtime_error("egammaMVACalibTool::getEnergy called with a null cluster");
+    return 0.0;
+  }
+
+  // find the bin of BDT
+
+  const auto initEnergy = (m_useLayerCorrected ? 
+			   egammaMVAFunctions::compute_correctedcl_Eacc(*clus) :
+                           egammaMVAFunctions::compute_rawcl_Eacc(*clus));
+  
+  const auto energyVarGeV = (initEnergy / std::cosh(clus->eta())) / CLHEP::GeV;
+  const auto etaVar = std::abs(clus->eta());
+
+  const auto bin = m_hPoly->FindBin(etaVar, energyVarGeV) - 1; // poly bins are shifted by one
+
+  ATH_MSG_DEBUG("Using bin: " << bin);
+
+  // select the bdt and funcsions. (shifts are done later if needed)
+  const auto& bdt = m_BDTs[bin];
+  const auto& funcs = m_funcs[bin];
+
+  const size_t sz = funcs.size();
+
+  // could consider adding std::array support to the BDTs
+  std::vector<float> vars(sz);
+
+  for (size_t i = 0; i < sz; i++) {
+    vars[i] = funcs[i](eg,clus);
+  }
+
+  // evaluate the BDT response
+  const float mvaOutput = bdt.GetResponse(vars);
+
+  // what to do if the MVA response is 0;
+  if (mvaOutput == 0.) {
+    if (m_clusterEif0) {
+      return clus->e();
+    } else {
+      return 0.;
+    }
+  }
+
+  // calcluate the unshifted energy
+  const auto energy = (m_calibrationType == fullCalibration) ?
+    mvaOutput : (initEnergy * mvaOutput);
+
+  ATH_MSG_DEBUG("energy after MVA = " << energy);
+
+  if (m_shiftType == NOSHIFT) {
+    // if no shift, just return the unshifted energy
+    return energy;
+  }
+
+  // have to do a shift if here. It's based on the corrected Et in GeV
+  const auto etGeV = (energy / std::cosh(clus->eta())) / CLHEP::GeV;
+
+  // evaluate the TFormula associated with the bin
+  const auto shift = m_shifts[bin].Eval(etGeV);
+  ATH_MSG_DEBUG("shift = " << shift);
+  if (shift > 0.5) {
+    return energy / shift;
+  } else {
+    ATH_MSG_WARNING("Shift value too small: " << shift << "; not applying shift");
+    return energy;
+  }
+}
diff --git a/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.h b/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.h
new file mode 100644
index 0000000000000000000000000000000000000000..6c04bf07461ec82805a373bfa72222497bb9b2ad
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.h
@@ -0,0 +1,99 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+#ifndef EGAMMAMVACALIB_EGAMMAMVACALIBTOOL_H
+#define EGAMMAMVACALIB_EGAMMAMVACALIBTOOL_H
+
+// Package includes
+#include "egammaInterfaces/IegammaMVACalibTool.h"
+#include "xAODEgamma/EgammaEnums.h"
+#include "xAODEgamma/Electron.h"
+#include "xAODEgamma/Photon.h"
+#include "xAODCaloEvent/CaloCluster.h"
+#include "MVAUtils/BDT.h"
+#include "egammaMVACalib/egammaMVAFunctions.h"
+
+// Framework includes
+#include "AthenaBaseComps/AthAlgTool.h"
+#include "TH2Poly.h"
+#include "TObject.h"
+#include "TString.h"
+#include "TFormula.h"
+#include "TTree.h"
+
+// STL includes
+#include <string>
+#include <memory>
+#include <functional>
+
+
+/**
+ * @class egammaMVACalibTool
+ * @brief A tool used by the egammaMVASvc to help manage the MVAs.
+ **/
+class egammaMVACalibTool : public extends<AthAlgTool, IegammaMVACalibTool> {
+public:
+  egammaMVACalibTool(const std::string& type, const std::string& name, const IInterface* parent);
+  virtual ~egammaMVACalibTool() override;
+
+  virtual StatusCode initialize() override;
+  virtual StatusCode finalize() override;
+ 
+  enum CalibrationType {correctEcluster, correctEaccordion, 
+			fullCalibration, NCalibrationTypes };
+
+  enum ShiftType {NOSHIFT=0, PEAKTOTRUE, MEANTOTRUE, MEDIANTOTRUE, 
+		  MEAN10TOTRUE, MEAN20TOTRUE, MEDIAN10TOTRUE, MEDIAN20TOTRUE, 
+		  NSHIFTCORRECTIONS};
+
+  float getEnergy(const xAOD::Egamma* eg,
+		  const xAOD::CaloCluster* clus) const override final;
+
+private:
+  Gaudi::Property<int> m_particleType {this, 
+      "ParticleType", xAOD::EgammaParameters::electron,
+      "What type of particle do we use"};
+
+  Gaudi::Property<int> m_shiftType {this, 
+      "ShiftType", MEAN10TOTRUE, 
+      "Shift corrections to apply to value"};
+
+  Gaudi::Property<int> m_calibrationType {this, 
+      "CalibrationType", correctEaccordion, 
+      "What type of calibration to apply"};
+
+  Gaudi::Property<bool> m_clusterEif0 {this, 
+      "useClusterIf0", true, 
+      "Use cluster energy if MVA response is 0"};
+
+  /// string with folder for weight files
+  Gaudi::Property<std::string> m_folder {this, 
+      "folder", "",
+      "string with folder for weight files"}; 
+
+  Gaudi::Property<bool> m_useLayerCorrected {this,
+      "use_layer_corrected", false,
+      "whether to use layer corrections"};
+
+  /// A TH2Poly used to extract bin numbers. Note there is an offset of 1
+  std::unique_ptr<TH2Poly> m_hPoly;
+
+  /// Where the BDTs are stored
+  std::vector<MVAUtils::BDT> m_BDTs;
+
+  /// where the pointers to the funcs to calculate the vars per BDT
+  std::vector<std::vector<std::function<float(const xAOD::Egamma*, const xAOD::CaloCluster*)> > > m_funcs;
+
+  /// shifts for mean10
+  std::vector<TFormula> m_shifts;
+
+  /// a function called by initialize to setup the BDT, funcs, and shifts.
+  StatusCode setupBDT(const egammaMVAFunctions::funcMap_t& funcLibrary,
+		      std::string fileName);
+
+  /// a utility to get a TString out of an TObjString pointer
+  const TString& getString(TObject* obj) const;
+  
+};
+
+#endif 
diff --git a/Reconstruction/egamma/egammaMVACalib/src/egammaMVASvc.cxx b/Reconstruction/egamma/egammaMVACalib/src/egammaMVASvc.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..62d42a0dc5ea84a407754426c5ccb900162ba40f
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/src/egammaMVASvc.cxx
@@ -0,0 +1,149 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include <memory>
+
+#include "egammaMVASvc.h"
+#include "xAODEgamma/Egamma.h"
+#include "xAODEgamma/EgammaDefs.h"
+#include "xAODEgamma/Electron.h"
+#include "xAODEgamma/Photon.h"
+#include "xAODCaloEvent/CaloCluster.h"
+#include "xAODEgamma/EgammaxAODHelpers.h"
+#include "xAODTracking/Vertex.h"
+#include "xAODTracking/TrackParticle.h"
+#include "xAODTracking/TrackingPrimitives.h"
+#include "PathResolver/PathResolver.h"
+
+egammaMVASvc::egammaMVASvc(const std::string& name, ISvcLocator* svc) :
+  base_class( name, svc )
+{
+}
+
+StatusCode egammaMVASvc::initialize() 
+{
+  ATH_MSG_DEBUG("In initialize of " << name() << "..." );
+  
+  if (m_mvaElectron.isEnabled()) {
+    ATH_MSG_DEBUG("Retrieving mvaElectron");
+    ATH_CHECK(m_mvaElectron.retrieve());
+  } else {
+    ATH_MSG_DEBUG("Disabling mvaElectron");
+    m_mvaElectron.disable();
+  }
+
+  if (m_mvaUnconvertedPhoton.isEnabled()) {
+    ATH_MSG_DEBUG("Retrieving mvaUnconvertedPhoton");
+    ATH_CHECK(m_mvaUnconvertedPhoton.retrieve());
+  } else {
+    ATH_MSG_DEBUG("Disabling mvaUnconvertedPhoton");
+    m_mvaUnconvertedPhoton.disable();
+  }
+
+  if (m_mvaConvertedPhoton.isEnabled()) {
+    ATH_MSG_DEBUG("Retrieving mvaConvertedPhoton");
+    ATH_CHECK(m_mvaConvertedPhoton.retrieve());
+  } else {
+    ATH_MSG_DEBUG("Disabling mvaConvertedPhoton");
+    m_mvaConvertedPhoton.disable();
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+
+StatusCode egammaMVASvc::finalize(){
+  ATH_MSG_DEBUG( "in finalize" );
+  return StatusCode::SUCCESS;
+}
+
+StatusCode egammaMVASvc::execute(xAOD::CaloCluster& cluster,
+				 const xAOD::Egamma& eg) const
+{
+
+  ATH_MSG_DEBUG("calling execute with cluster and eg");
+
+  float mvaE = 0.0;
+
+  if (xAOD::EgammaHelpers::isElectron(&eg)) {
+    if (m_mvaElectron.isEnabled()) {
+      mvaE = m_mvaElectron->getEnergy(&eg, &cluster);
+    } else {
+      ATH_MSG_FATAL("Trying to calibrate an electron, but disabled");
+      return StatusCode::FAILURE;
+    }
+  } else if (xAOD::EgammaHelpers::isConvertedPhoton(&eg) && 
+	     xAOD::EgammaHelpers::conversionRadius(static_cast<const xAOD::Photon*>(&eg)) < m_maxConvR) {
+    if (m_mvaConvertedPhoton.isEnabled()) {
+      mvaE = m_mvaConvertedPhoton->getEnergy(&eg, &cluster);
+    } else {
+      ATH_MSG_FATAL("Trying to calibrate a converted photon, but disabled");
+      return StatusCode::FAILURE;
+    }
+  } else if (xAOD::EgammaHelpers::isPhoton(&eg)) {
+    if (m_mvaUnconvertedPhoton.isEnabled()) {
+      mvaE = m_mvaUnconvertedPhoton->getEnergy(&eg, &cluster);
+    } else {
+      ATH_MSG_FATAL("Trying to calibrate an unconverted photon, but disabled");
+      return StatusCode::FAILURE;
+    }
+  } else {
+    ATH_MSG_FATAL("Egamma object is of unsupported type");
+    return StatusCode::FAILURE;
+  }
+      
+  ATH_MSG_DEBUG( "Calculated MVA calibrated energy = " << mvaE );
+  if (mvaE > eg.m()) {
+    cluster.setCalE(mvaE);
+  }
+  else {
+    ATH_MSG_DEBUG("MVA energy (" << mvaE << ") < particle mass ("
+                  << eg.m() << "), setting e = cluster energy (" << cluster.e() << ")");
+    cluster.setCalE(cluster.e());
+  }
+  return StatusCode::SUCCESS;
+}
+
+StatusCode egammaMVASvc::execute(xAOD::CaloCluster& cluster,
+				 xAOD::EgammaParameters::EgammaType egType) const
+{
+
+  ATH_MSG_DEBUG("calling execute with cluster and egType (" << egType <<")");
+
+  float mvaE = 0.0;
+  switch (egType) {
+  case xAOD::EgammaParameters::electron:
+    if (m_mvaElectron.isEnabled()) {
+      mvaE = m_mvaElectron->getEnergy(nullptr, &cluster);
+    } else {
+      ATH_MSG_FATAL("Trying to calibrate an electron, but disabled");
+      return StatusCode::FAILURE;
+    }
+    break;
+  case xAOD::EgammaParameters::convertedPhoton:
+  case xAOD::EgammaParameters::unconvertedPhoton:
+    // treat converted photons like unconverted photons since don't have access to vertex
+    if (m_mvaUnconvertedPhoton.isEnabled()) {
+      mvaE = m_mvaUnconvertedPhoton->getEnergy(nullptr, &cluster);
+    } else {
+      ATH_MSG_FATAL("Trying to calibrate an unconverted photon, but disabled");
+      return StatusCode::FAILURE;
+    }
+    break;
+  default:
+    ATH_MSG_FATAL("Egamma object is of unsupported type");
+    return StatusCode::FAILURE;
+  }
+
+  ATH_MSG_DEBUG( "Calculated MVA calibrated energy = " << mvaE );
+  if (mvaE > 0) {
+    cluster.setCalE(mvaE);
+  }
+  else {
+    ATH_MSG_DEBUG("MVA energy (" << mvaE << ") < 0, setting e = cluster energy (" 
+		  << cluster.e() << ")");
+    cluster.setCalE(cluster.e());
+  }
+  return StatusCode::SUCCESS;
+}
diff --git a/Reconstruction/egamma/egammaMVACalib/src/egammaMVASvc.h b/Reconstruction/egamma/egammaMVACalib/src/egammaMVASvc.h
new file mode 100644
index 0000000000000000000000000000000000000000..728e6a58d5de909f4aef78975dcf27d7d7e5c725
--- /dev/null
+++ b/Reconstruction/egamma/egammaMVACalib/src/egammaMVASvc.h
@@ -0,0 +1,64 @@
+// Dear Emacs, this is -*- C++ -*-
+
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+
+#ifndef EGAMMAMVACALIB_EGAMMAMVASVC_H
+#define EGAMMAMVACALIB_EGAMMAMVASVC_H
+
+#include <string>
+#include <set>
+
+#include "egammaInterfaces/IegammaMVASvc.h"
+#include "egammaInterfaces/IegammaMVACalibTool.h"
+#include "AthenaBaseComps/AthService.h"
+
+class egammaMVASvc : public extends1<AthService, IegammaMVASvc>
+{
+public:
+  /** Constructor */
+  egammaMVASvc( const std::string& name, ISvcLocator* svc );
+
+  virtual ~egammaMVASvc() override {};  
+
+  /** @brief initialize method*/
+  virtual StatusCode initialize() override;
+
+  /** @brief finalize method*/
+  virtual StatusCode finalize() override;
+
+  /** Main execute. We need to calibrate the cluster.
+      Use full egamma object instead of Type
+      As we employ further variables than the ones present in the cluster
+      This method needs to be valid also for reconstruction
+  */
+
+  StatusCode execute(xAOD::CaloCluster& cluster,
+		     const xAOD::Egamma& eg) const override final;
+
+  StatusCode execute(xAOD::CaloCluster& cluster,
+		     xAOD::EgammaParameters::EgammaType egType) const override final;
+
+private:
+
+  /// MVA tool for electron
+  ToolHandle<IegammaMVACalibTool> m_mvaElectron {this,
+      "ElectronTool", "", "Tool to handle MVA trees for electrons"}; 
+
+  /// MVA tool for uncovnerted photon
+  ToolHandle<IegammaMVACalibTool> m_mvaUnconvertedPhoton {this,
+      "UnconvertedPhotonTool", "", "Tool to handle MVA trees for unconverted photons"};
+
+  /// MVA tool for converted photon
+  ToolHandle<IegammaMVACalibTool> m_mvaConvertedPhoton {this,
+      "ConvertedPhotonTool", "", "Tool to handle MVA trees for converted photons"};
+
+  Gaudi::Property<float> m_maxConvR {this,
+      "MaxConvRadius", 800.0, 
+      "The maximum conversion radius for a photon to be considered converted"}; 
+  
+};
+
+#endif
diff --git a/Reconstruction/egamma/egammaRec/python/Factories.py b/Reconstruction/egamma/egammaRec/python/Factories.py
index b055df233560b25db39a876e08c799d7f15e76f3..9f1cf598be2f4b83c7b2ceafce4497f46b22810c 100644
--- a/Reconstruction/egamma/egammaRec/python/Factories.py
+++ b/Reconstruction/egamma/egammaRec/python/Factories.py
@@ -9,8 +9,9 @@ def factoriesInfo ( log):
   logFactories = logging.getLogger( 'Factories' )
   logFactories.info(log)        
 
+# tools
 def isAlreadyInToolSvc( name ):
-  "isAlreadyInToolSvc ( mane of the tool ) --> check if the tool with name is already in the service"
+  "isAlreadyInToolSvc ( name of the tool ) --> check if the tool with name is already in the service"
   from AthenaCommon.AppMgr import ToolSvc
   if hasattr(ToolSvc, name):
     return True
@@ -28,6 +29,27 @@ def addToToolSvc( tool ):
   ToolSvc += tool
   return tool
 
+# services
+def isAlreadyInServiceMgr( name ):
+  "isAlreadyInServiceMgr ( mane of the service ) --> check if the service with name is already in the manager"
+  from AthenaCommon.AppMgr import ServiceMgr
+  if hasattr(ServiceMgr, name):
+    return True
+  else:
+    return False 
+
+def getFromServiceMgr( name ):
+  "getFromServiceMgr ( name of the service ) --> Get the service from manager by name "
+  from AthenaCommon.AppMgr import ServiceMgr
+  return getattr (ServiceMgr,name)
+  
+def addToServiceMgr( service ):
+  "addToServiceMgr( service ) --> add service to ServiceMgr"
+  from AthenaCommon.AppMgr import ServiceMgr
+  ServiceMgr += service
+  return service
+
+# algs
 def isAlreadyInTopSequence( name ):
   "isAlreadyInTopSequence ( mane of the alg ) --> check if the alg  with name is already in the Alg sequence"
   from AthenaCommon.AlgSequence import AlgSequence
@@ -146,7 +168,7 @@ class Factory:
     
     # Call FcnWrapper or ToolFactory parameters 
     # (or if they are inside a list, for ToolHandleArray)
-    classes = (FcnWrapper, ToolFactory, PublicToolFactory)
+    classes = (FcnWrapper, ToolFactory, PublicToolFactory, ServiceFactory)
     for paramName, value in params.items():
       if isinstance(value, classes) or \
         (isinstance(value, list) and any(isinstance(v, classes) for v in value) ):
@@ -221,6 +243,20 @@ class PublicToolFactory( Factory ):
     else :
       factoriesInfo("Tool with name ==> %s  already in ToolSvc, use existing instance" %  obj.getFullName() )
 
+class ServiceFactory( Factory ):
+  """ServiceFactory: to instantiate services. Adds to ServiceMgr. See Factory"""
+
+  def __init__(self, iclass, **defaults ):
+    self.iclass = iclass
+    self.defaults = dict({'doAdd': True}, **defaults)
+
+  def add(self, obj):
+    if not isAlreadyInServiceMgr(obj.getName()):
+      factoriesInfo("Adding new Service ===> %s" % obj.getFullName())
+      addToServiceMgr(obj)
+    else :
+      factoriesInfo("Service with name ==> %s  already in ServiceMgr, use existing instance" %  obj.getFullName() )
+
 class AlgFactory( Factory ):
   """AlgFactory: to instantiate algs and add them to TopSequence. See Factory"""
   def __init__(self, iclass, **defaults ):
diff --git a/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py b/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py
index db7a1494b7f7cfe7d322005710a71e9da02612e8..9c52a1e9c838d94729da37e9316521df7b9d03b4 100644
--- a/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py
+++ b/Reconstruction/egamma/egammaTools/python/egammaToolsFactories.py
@@ -4,7 +4,7 @@ __doc__ = "ToolFactories to instantiate all egammaTools with default configurati
 __author__ = "Bruno Lenzi"
 
 import egammaToolsConf
-from egammaRec.Factories import FcnWrapper, ToolFactory, PublicToolFactory, FullNameWrapper
+from egammaRec.Factories import FcnWrapper, ToolFactory, FullNameWrapper
 from egammaRec import egammaKeys
 from egammaRec.egammaRecFlags import jobproperties # to set jobproperties.egammaRecFlags
 from RecExConfig.RecFlags import rec
@@ -48,16 +48,14 @@ def configureClusterCorrections(swTool):
 egammaSwTool = ToolFactory(egammaToolsConf.egammaSwTool,
                            postInit=[configureClusterCorrections])
 
-from egammaMVACalib import egammaMVACalibConf 
-egammaMVATool =  PublicToolFactory(egammaMVACalibConf.egammaMVATool,
-                              folder=jobproperties.egammaRecFlags.calibMVAVersion())
+from egammaMVACalib.egammaMVACalibFactories import egammaMVASvc
 
 EMClusterTool = ToolFactory(egammaToolsConf.EMClusterTool,
                             OutputClusterContainerName = egammaKeys.outputClusterKey(),
                             OutputTopoSeededClusterContainerName = egammaKeys.outputTopoSeededClusterKey(),
                             ClusterCorrectionTool = egammaSwTool,
                             doSuperCluster = jobproperties.egammaRecFlags.doSuperclusters(),
-                            MVACalibTool= egammaMVATool
+                            MVACalibSvc = egammaMVASvc
                             )
 
 
diff --git a/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx b/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx
index 7582c6b6db2ed134e10b75d3aae8321b2a4f44d2..5e51ea410505f7d1d36bd1ac55cd8b2e24ac2a68 100644
--- a/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx
+++ b/Reconstruction/egamma/egammaTools/src/EMClusterTool.cxx
@@ -59,12 +59,12 @@ StatusCode EMClusterTool::initialize() {
 
 
   // Get the cluster correction tool
-  if(m_MVACalibTool.retrieve().isFailure()) {
-    ATH_MSG_ERROR("Failed to retrieve " << m_MVACalibTool);
+  if(m_MVACalibSvc.retrieve().isFailure()) {
+    ATH_MSG_ERROR("Failed to retrieve " << m_MVACalibSvc);
     return StatusCode::SUCCESS;
   } 
   else {
-    ATH_MSG_DEBUG("Retrieved tool " << m_MVACalibTool);   
+    ATH_MSG_DEBUG("Retrieved tool " << m_MVACalibSvc);   
   }
 
   ATH_MSG_DEBUG("Initialization successful");
@@ -205,7 +205,7 @@ xAOD::CaloCluster* EMClusterTool::makeNewCluster(const xAOD::CaloCluster& cluste
   }
   xAOD::CaloCluster *newCluster = makeNewCluster(cluster, cluSize);
  
-  if (newCluster && m_MVACalibTool->execute(newCluster,eg).isFailure()){
+  if (newCluster && m_MVACalibSvc->execute(*newCluster,*eg).isFailure()){
     ATH_MSG_ERROR("Problem executing MVA cluster tool");
   }
   return newCluster;
@@ -242,7 +242,7 @@ xAOD::CaloCluster* EMClusterTool::makeNewSuperCluster(const xAOD::CaloCluster& c
   //
   xAOD::CaloCluster* newClus = new xAOD::CaloCluster(cluster);
   if(m_applySuperClusters){ 
-    if (newClus && m_MVACalibTool->execute(newClus,eg).isFailure()){
+    if (newClus && m_MVACalibSvc->execute(*newClus,*eg).isFailure()){
       ATH_MSG_ERROR("Problem executing MVA cluster tool");
     }
   }
diff --git a/Reconstruction/egamma/egammaTools/src/EMClusterTool.h b/Reconstruction/egamma/egammaTools/src/EMClusterTool.h
index 5007c500bf6b1e5d183a9c26b212671cf83980f5..0d1e8fbea81980bf329ca360826ab274d480b0de 100644
--- a/Reconstruction/egamma/egammaTools/src/EMClusterTool.h
+++ b/Reconstruction/egamma/egammaTools/src/EMClusterTool.h
@@ -12,7 +12,7 @@
 #include "egammaBaseTool.h"
 
 #include "egammaInterfaces/IegammaSwTool.h"
-#include "egammaMVACalib/IegammaMVATool.h"
+#include "egammaInterfaces/IegammaMVASvc.h"
 
 #include "xAODCaloEvent/CaloCluster.h" // cannot use CaloClusterFwd b/c of ClusterSize
 #include "xAODCaloEvent/CaloClusterContainer.h"
@@ -109,9 +109,9 @@ class EMClusterTool : public AthAlgTool, virtual public IEMClusterTool {
     * name taken from containter name */
   SG::WriteHandleKey<CaloClusterCellLinkContainer> m_outputTopoSeededClusterContainerCellLinkKey;
 
-  /** Handle to the MVA calibration Tool **/
-  PublicToolHandle<IegammaMVATool> m_MVACalibTool {this,
-      "MVACalibTool", "egammaMVATool", "calibration tool"};
+  /** Handle to the MVA calibration service **/
+  ServiceHandle<IegammaMVASvc> m_MVACalibSvc {this,
+      "MVACalibSvc", "egammaMVASvc", "calibration service"};
 
   /** @brief Name of the input electron container **/
   std::string m_electronContainerName;
diff --git a/Simulation/Digitization/CMakeLists.txt b/Simulation/Digitization/CMakeLists.txt
index d3d7351189b57ab8e06a2a52f09c9375479639fb..98037e1a5f72e0b800387883a644bc38e530a430 100644
--- a/Simulation/Digitization/CMakeLists.txt
+++ b/Simulation/Digitization/CMakeLists.txt
@@ -14,3 +14,7 @@ atlas_install_python_modules( python/*.py )
 atlas_install_joboptions( share/*.py share/jobOpts/*.py )
 atlas_install_runtime( data/*.ascii test/Digitization_TestConfiguration.xml )
 
+atlas_add_test(test_MC16a_Digi_tf_configuration
+               SCRIPT test/test_MC16a_Digi_tf_configuration.py
+               PROPERTIES TIMEOUT 300
+               PROPERTIES RESOURCE_LOCK DigiTf)
diff --git a/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py b/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py
new file mode 100755
index 0000000000000000000000000000000000000000..9e4525789d7dd5af7f422304010ea511bde5e6f9
--- /dev/null
+++ b/Simulation/Digitization/test/test_MC16a_Digi_tf_configuration.py
@@ -0,0 +1,345 @@
+#!/usr/bin/env python
+
+import pickle
+import subprocess
+import unittest
+
+
+class TestDigitizationMC16a(unittest.TestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        config_picklefilename = 'DigitizationMC16a_config.pkl'
+        command = [
+            'Digi_tf.py',
+            '--athenaopts', '"--config-only={}"'.format(config_picklefilename),
+            '--inputHITSFile', '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.simul.HITS.e4993_s3091/HITS.10504490._000425.pool.root.1',
+            '--conditionsTag', 'default:OFLCOND-MC16-SDR-16',
+            '--geometryVersion', 'default:ATLAS-R2-2016-01-00-01',
+            '--inputHighPtMinbiasHitsFile', '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/mc16_13TeV.361239.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_high.merge.HITS.e4981_s3087_s3089/HITS.10501933._000005.pool.root.1',
+            '--inputLowPtMinbiasHitsFile', '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/mc16_13TeV.361238.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_low.merge.HITS.e4981_s3087_s3089/HITS.10501925._000003.pool.root.1',
+            '--jobNumber', '1',
+            '--maxEvents', '25',
+            '--numberOfCavernBkg', '0',
+            '--numberOfHighPtMinBias', '0.116075313',
+            '--numberOfLowPtMinBias', '44.3839246425',
+            '--outputRDOFile', 'mc16a_ttbar.RDO.pool.root',
+            '--digiSteeringConf', 'StandardSignalOnlyTruth',
+            '--postExec', 'all:CfgMgr.MessageSvc().setError+=["HepMcParticleLink"]', 'ToolSvc.LArAutoCorrTotalToolDefault.deltaBunch=1',
+            '--postInclude', 'default:PyJobTransforms/UseFrontier.py',
+            '--pileupFinalBunch', '6',
+            '--preExec', 'all:from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);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)',
+            '--preInclude', 'HITtoRDO:Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInclude.PileUpBunchTrainsMC15_2015_25ns_Config1.py,RunDependentSimData/configLumi_run284500_mc16a.py',
+            '--skipEvents', '0',
+            # would otherwise fail due to missing RDO file:
+            '--outputFileValidation', 'False',
+        ]
+        subprocess.check_call(command)
+
+        with open(config_picklefilename) as picklefile:
+            job_config_dict = pickle.load(picklefile)
+
+        cls._job_config_dict = job_config_dict
+
+    def _assert_Algorithm_property_unordered_equal(self,
+                                                   algorithm_name,
+                                                   property_name,
+                                                   expected_property_value):
+        algconfigdict = self._job_config_dict[algorithm_name]
+        actual_property_value_as_str = algconfigdict[property_name]
+        # need to evaluate to obtain actual Python object
+        actual_property_value = eval(actual_property_value_as_str)
+        expected_property_value_sorted = sorted(expected_property_value)
+        actual_property_value_sorted = sorted(actual_property_value)
+
+        failure_message = "{algorithm}.{property} has a different " \
+                          "value than expected!\n" \
+                          "expected (sorted):\n" \
+                          " {expected}\n" \
+                          "actual (sorted):\n" \
+                          " {actual}".format(
+                              algorithm=algorithm_name,
+                              property=property_name,
+                              expected=expected_property_value_sorted,
+                              actual=actual_property_value_sorted)
+        self.assertEqual(expected_property_value_sorted,
+                         actual_property_value_sorted,
+                         failure_message)
+
+
+    def _assert_Algorithm_property_ordered_equal(self,
+                                                 algorithm_name,
+                                                 property_name,
+                                                 expected_property_value):
+        algconfigdict = self._job_config_dict[algorithm_name]
+        actual_property_value_as_str = algconfigdict[property_name]
+        # need to evaluate to obtain actual Python object
+        actual_property_value = eval(actual_property_value_as_str)
+
+        failure_message = "{algorithm}.{property} has a different " \
+                          "value than expected!\n" \
+                          "expected:\n" \
+                          " {expected}\n" \
+                          "actual:\n" \
+                          " {actual}".format(
+                              algorithm=algorithm_name,
+                              property=property_name,
+                              expected=str(expected_property_value),
+                              actual=str(actual_property_value))
+        self.assertEqual(expected_property_value,
+                         actual_property_value,
+                         failure_message)
+
+
+    def _assert_Algorithm_property_equal(self,
+                                   algorithm_name,
+                                   property_name,
+                                   expected_property_value):
+        algconfigdict = self._job_config_dict[algorithm_name]
+        actual_property_value = algconfigdict[property_name]
+
+        failure_message = "{algorithm}.{property} has a different " \
+                          "value than expected!\n" \
+                          "expected:\n" \
+                          " {expected}\n" \
+                          "actual:\n" \
+                          " {actual}".format(
+                              algorithm=algorithm_name,
+                              property=property_name,
+                              expected=str(expected_property_value),
+                              actual=str(actual_property_value))
+        self.assertEqual(str(expected_property_value),
+                         str(actual_property_value),
+                         failure_message)
+
+
+    def _detailed_ConfigurablePropertiesCheck(self,
+                                              tested_configurable_name,
+                                              expected_property_list,
+                                              expected_nonstring_properties,
+                                              expected_string_properties):
+        testedConfigurableDict = self._job_config_dict[tested_configurable_name]
+        actual_list = testedConfigurableDict.keys()
+        expected_property_value_sorted = sorted(expected_property_list)
+        actual_property_value_sorted = sorted(actual_list)
+
+        failure_message = "{configurable}.keys() has a different " \
+                          "value than expected!\n" \
+                          "expected (sorted):\n" \
+                          " {expected}\n" \
+                          "actual (sorted):\n" \
+                          " {actual}".format(
+                              configurable=tested_configurable_name,
+                              expected=expected_property_value_sorted,
+                              actual=actual_property_value_sorted)
+        self.assertEqual(expected_property_value_sorted,
+                         actual_property_value_sorted,
+                         failure_message)
+
+        for key, value in expected_nonstring_properties.iteritems():
+            expected_Property = eval(value)
+            self._assert_Algorithm_property_equal(
+                tested_configurable_name,
+                key,
+                expected_Property)
+
+        for key, value in expected_string_properties.iteritems():
+            expected_Property = value
+            self._assert_Algorithm_property_equal(
+                tested_configurable_name,
+                key,
+                expected_Property)
+
+
+    def test___PileUpToolsAlg_is_second_in_AthAlgSeq(self):
+        expected_AlgSequence = ['TimingAlg/DigiTimerBegin', 'PileUpToolsAlg/StandardSignalOnlyTruthPileUpToolsAlg', 'LArRawChannelBuilder/LArRawChannelBuilder', 'LArDigitThinner/LArDigitThinner', 'TileDigitsMaker/TileDigitsMaker', 'TileRawChannelMaker/TileRChMaker', 'TileRawChannelToL2/TileRawChannelToL2', 'CscDigitToCscRDO/CscDigitToCscRDO', 'MdtDigitToMdtRDO/MdtDigitToMdtRDO', 'RpcDigitToRpcRDO/RpcDigitToRpcRDO', 'TgcDigitToTgcRDO/TgcDigitToTgcRDO', 'LArTTL1Maker/LArTTL1Maker', 'TileHitToTTL1/TileHitToTTL1', 'TilePulseForTileMuonReceiver/TilePulseForTileMuonReceiver', 'TileMuonReceiverDecision/TileMuonReceiverDecision', 'AthenaOutputStream/StreamRDO']
+        ath_alg_seqence_as_str = self._job_config_dict['AthAlgSeq']['Members']
+        # need to evaluate to obtain actual Python object
+        ath_alg_seqence_list = eval(ath_alg_seqence_as_str)
+
+        actual_2nd_ath_alg_sequence_entry = ath_alg_seqence_list[1]
+        print ath_alg_seqence_list
+        expected_2nd_ath_alg_sequence_entry = "PileUpToolsAlg/StandardSignalOnlyTruthPileUpToolsAlg"
+        self.assertEqual(expected_2nd_ath_alg_sequence_entry,
+                         actual_2nd_ath_alg_sequence_entry)
+        self.assertEqual(expected_AlgSequence, ath_alg_seqence_list)
+
+
+    def test___StandardSignalOnlyTruthPileUpToolsAlg_PileUpTools(self):
+        expected_PileUpTools = ['MergeMcEventCollTool/SignalOnlyMcEventCollTool','MergeTruthJetsTool/MergeTruthJetsTool','MergeTrackRecordCollTool/MergeTrackRecordCollTool','MergeCalibHitsTool/MergeCalibHitsTool','BCM_DigitizationTool/BCM_DigitizationTool','PixelDigitizationTool/PixelDigitizationTool','SCT_DigitizationTool/SCT_DigitizationTool','TRTDigitizationTool/TRTDigitizationTool','LArPileUpTool/LArPileUpTool','TileHitVecToCntTool/TileHitVecToCntTool','CscDigitizationTool/CscDigitizationTool','MdtDigitizationTool/MdtDigitizationTool','RpcDigitizationTool/RpcDigitizationTool','TgcDigitizationTool/TgcDigitizationTool','MergeRecoTimingObjTool/MergeRecoTimingObjTool']
+        self._assert_Algorithm_property_unordered_equal(
+            'StandardSignalOnlyTruthPileUpToolsAlg',
+            'PileUpTools',
+            expected_PileUpTools)
+
+
+    def test___MergeTruthJetsTool_properties(self):
+        tested_configurable_name = 'ToolSvc.MergeTruthJetsTool'
+        expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing']
+        expected_nonstring_properties = {'LastXing': '100', 'FirstXing': '-500'}
+        expected_string_properties = {} # Not checking any specific property values
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___MergeTrackRecordCollTool_properties(self):
+        tested_configurable_name = 'ToolSvc.MergeTrackRecordCollTool'
+        expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing']
+        expected_nonstring_properties = {'LastXing': '1', 'FirstXing': '-1'}
+        expected_string_properties = {} # Not checking any specific property values
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___MergeCalibHitsTool_properties(self):
+        tested_configurable_name = 'ToolSvc.MergeCalibHitsTool'
+        expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing']
+        expected_nonstring_properties = {'LastXing': '1', 'FirstXing': '-1'}
+        expected_string_properties = {} # Not checking any specific property values
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___BCM_DigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.BCM_DigitizationTool'
+        expected_property_list = ['DetStore', 'EffDistanceParam', 'EffSharpnessParam', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'HitCollName', 'LastXing', 'MIPDeposit', 'ModNoise', 'ModSignal', 'NinoThr', 'RndmSvc', 'TimeDelay']
+        expected_nonstring_properties = {'LastXing': '0', 'FirstXing': '-25'}
+        expected_string_properties = {'HitCollName': 'BCMHits'}
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___SignalOnlyMcEventCollTool_properties(self):
+        tested_configurable_name = 'ToolSvc.SignalOnlyMcEventCollTool'
+        expected_property_list = ['KeepUnstable', 'SaveInTimeMinBias', 'AddBackgroundCollisionVertices', 'zRange', 'TruthCollKey', 'OnlySaveSignalTruth', 'OutOfTimeAbsEtaMax', 'rRange', 'CompressOutputCollection', 'ExtraOutputs', 'AbsEtaMax', 'LastXing', 'SaveOutOfTimeMinBias', 'ExtraInputs', 'DetStore', 'SaveCavernBackground', 'FirstXing', 'SaveRestOfMinBias', 'EvtStore', 'HighTimeToKeep', 'LowTimeToKeep']
+        expected_nonstring_properties = {'KeepUnstable': 'False', 'SaveInTimeMinBias': 'True', 'AddBackgroundCollisionVertices': 'True', 'zRange': '200.0', 'OnlySaveSignalTruth': 'True', 'OutOfTimeAbsEtaMax': '3.0', 'rRange': '20.0', 'CompressOutputCollection': 'False', 'ExtraOutputs': '[]', 'AbsEtaMax': '5.0', 'LastXing': '0', 'SaveOutOfTimeMinBias': 'True', 'ExtraInputs': '[]', 'SaveCavernBackground': 'True', 'FirstXing': '0', 'SaveRestOfMinBias': 'False', 'HighTimeToKeep': '50.5', 'LowTimeToKeep': '-50.5'}
+        expected_string_properties = {'TruthCollKey': 'TruthEvent'}
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___PixelDigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.PixelDigitizationTool'
+        expected_property_list = ['ChargeTools', 'DetStore', 'EnergyDepositionTool', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FrontEndSimTools', 'HardScatterSplittingMode', 'InputObjectName', 'LastXing', 'MergeSvc', 'RndmEngine', 'RndmSvc']
+        expected_nonstring_properties = {'LastXing': '25', 'FirstXing': '-25'}
+        expected_string_properties = {'InputObjectName': 'PixelHits'}
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___SCT_DigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.SCT_DigitizationTool'
+        expected_property_list = ['BarrelOnly', 'DetStore', 'EnableHits', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FrontEnd', 'HardScatterSplittingMode', 'InputObjectName', 'LastXing', 'MergeSvc', 'OutputObjectName', 'OutputSDOName', 'RndmSvc', 'SurfaceChargesGenerator']
+        expected_nonstring_properties = {'LastXing': '25', 'FirstXing': '-50'}
+        expected_string_properties = {'InputObjectName': 'SCT_Hits', 'OutputObjectName': 'SCT_RDOs', 'OutputSDOName': 'SCT_SDO_Map'}
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___TRTDigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.TRTDigitizationTool'
+        expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'HardScatterSplittingMode', 'InDetTRTStrawStatusSummarySvc', 'LastXing', 'MergeSvc', 'OutputObjectName', 'OutputSDOName', 'Override_TrtRangeCutProperty', 'PAI_Tool_Ar', 'PAI_Tool_Kr', 'PAI_Tool_Xe', 'RndmSvc', 'SimDriftTimeTool', 'TRT_StrawNeighbourSvc']
+        expected_nonstring_properties = {'LastXing': '50', 'FirstXing': '-50'}
+        expected_string_properties = {'OutputObjectName': 'TRT_RDOs', 'OutputSDOName': 'TRT_SDO_Map'} # No Input name property
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___LArPileUpTool_properties(self):
+        tested_configurable_name = 'ToolSvc.LArPileUpTool'
+        expected_property_list = ['ADC2MeVTool', 'AutoCorrNoiseTool', 'BadChannelTool', 'DetStore', 'DigitContainer', 'EmBarrelHitContainerName', 'EmEndCapHitContainerName', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'ForWardHitContainerName', 'HecHitContainerName', 'HighGainThreshFCAL', 'LastXing', 'MaskingTool', 'NoiseOnOff', 'Nsamples', 'RndmEvtOverlay', 'RndmSvc', 'TriggerTimeToolName', 'firstSample', 'useLArFloat']
+        expected_nonstring_properties = {'LastXing': '101', 'FirstXing': '-751', 'Nsamples': '4', 'EmBarrelHitContainerName': '["LArHitEMB"]', 'EmEndCapHitContainerName': '["LArHitEMEC"]', 'ForWardHitContainerName': '["LArHitFCAL"]', 'HecHitContainerName': '["LArHitHEC"]'}
+        expected_string_properties = {'DigitContainer': 'LArDigitContainer_MC'}
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___TileHitVecToCntTool_properties(self):
+        tested_configurable_name = 'ToolSvc.TileHitVecToCntTool'
+        expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'PileUp', 'RndmSvc', 'TileHitContainer', 'TileHitVectors', 'TileInfoName', 'TriggerTimeTool']
+        expected_nonstring_properties = {'LastXing': '150', 'FirstXing': '-200', 'TileHitVectors': '["TileHitVec", "MBTSHits"]'}
+        expected_string_properties = {'TileHitContainer': 'TileHitCnt'}
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___CscDigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.CscDigitizationTool'
+        expected_property_list = ['DetStore', 'DriftVelocity', 'ElectronEnergy', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'InputObjectName', 'LastXing', 'NewDigitEDM', 'OutputObjectName', 'RndmEngine', 'RndmSvc', 'WindowLowerOffset', 'WindowUpperOffset', 'amplification', 'cscCalibTool', 'isPileUp', 'pedestal']
+        expected_nonstring_properties = {'LastXing': '175', 'FirstXing': '-375'}
+        expected_string_properties = {'InputObjectName': 'CSC_Hits', 'OutputObjectName': 'CSC_DIGITS'}
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___MdtDigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.MdtDigitizationTool'
+        expected_property_list = ['DetStore', 'DigitizationTool', 'DiscardEarlyHits', 'DoQballCharge', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'MDTCondSummarySvc', 'MaskedStations', 'MdtCalibrationDbSvc', 'RndmEngine', 'RndmSvc', 'TwinRndmEngine', 'TwinRndmSvc', 'UseDeadChamberSvc', 'UseTof']
+        expected_nonstring_properties = {'LastXing': '150', 'FirstXing': '-800'}
+        expected_string_properties = {} # Not checking any specific property values
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___RpcDigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.RpcDigitizationTool'
+        expected_property_list = ['ClusterSize1_2uncorr', 'ClusterSize_fromCOOL', 'CutProjectedTracks', 'DeadTime', 'DetStore', 'DumpFromDbFirst', 'EfficiencyPatchForBMShighEta', 'Efficiency_fromCOOL', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'FracClusterSize1_A', 'FracClusterSize1_C', 'FracClusterSize2_A', 'FracClusterSize2_C', 'FracClusterSizeTail_A', 'FracClusterSizeTail_C', 'IgnoreRunDependentConfig', 'LastXing', 'MeanClusterSizeTail_A', 'MeanClusterSizeTail_C', 'OnlyEtaEff_A', 'OnlyEtaEff_C', 'OnlyPhiEff_A', 'OnlyPhiEff_C', 'PanelId_OFF_fromlist', 'PanelId_OK_fromlist', 'PatchForRpcTime', 'PatchForRpcTimeShift', 'PhiAndEtaEff_A', 'PhiAndEtaEff_C', 'PrintCalibrationVector', 'RPCCondSummarySvc', 'RPCInfoFromDb', 'RndmEngine', 'RndmSvc', 'testbeam_clustersize', 'turnON_clustersize', 'turnON_efficiency']
+        expected_nonstring_properties = {'LastXing': '125', 'FirstXing': '-150'}
+        expected_string_properties = {} # Not checking any specific property values
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+    def test___TgcDigitizationTool_properties(self):
+        tested_configurable_name = 'ToolSvc.TgcDigitizationTool'
+        expected_property_list = ['DetStore', 'EvtStore', 'ExtraInputs', 'ExtraOutputs', 'FirstXing', 'LastXing', 'RndmEngine', 'RndmSvc']
+        expected_nonstring_properties = {'LastXing': '75', 'FirstXing': '-50'}
+        expected_string_properties = {} # Not checking any specific property values
+        self._detailed_ConfigurablePropertiesCheck(
+            tested_configurable_name,
+            expected_property_list,
+            expected_nonstring_properties,
+            expected_string_properties)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx
index 321751e746333c378a1f498afec136d4d2c21805..55f73b931aefb5b0f9f943076aa12e1c58375ccc 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeCalibHitsTool.cxx
@@ -77,21 +77,17 @@ StatusCode MergeCalibHitsTool::processBunchXing(int bunchXing,
       ++iEvt;
       continue;
     }
-    StoreGateSvc& seStore(*iEvt->ptr()->evtStore());
+
     // loop over containers
     for (unsigned int iHitContainer=0;iHitContainer<m_CalibrationHitContainer.size();++iHitContainer) {
       ATH_MSG_VERBOSE ( " Bunch Crossing: " <<bunchXing << ". Process CalibrationHit container " << m_CalibrationHitContainer[iHitContainer] );
       const CaloCalibrationHitContainer* hitCont;
-      // if container not there, do nothing
-      if (seStore.contains<CaloCalibrationHitContainer>(m_CalibrationHitContainer[iHitContainer])) {
-        if( !seStore.retrieve(hitCont, m_CalibrationHitContainer[iHitContainer]).isSuccess()) {
-          ATH_MSG_ERROR ( " Failed to retrieve CalibrationHitContainer called " << m_CalibrationHitContainer[iHitContainer] );
-        }
-      }
-      else {
-        ATH_MSG_VERBOSE ( " Cannot find CalibrationHitContainer called " << m_CalibrationHitContainer[iHitContainer] );
-        continue;
+      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;
       }
+
       //if this is the first SubEvent for this Event then create the hitContainers;
       if(m_firstSubEvent) {
         m_outputContainers[iHitContainer] = new CaloCalibrationHitContainer(m_CalibrationHitContainer[iHitContainer]);
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx
index fbf752c0800889e880432820b326390a37ecda80..e8ea7f7d5ab46849f2a8c4d4c9098f8e076ce63c 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeGenericMuonSimHitCollTool.cxx
@@ -52,21 +52,16 @@ StatusCode MergeGenericMuonSimHitCollTool::processBunchXing(int bunchXing,
   ATH_MSG_VERBOSE ( "processBunchXing()" );
   SubEventIterator iEvt(bSubEvents);
   while (iEvt != eSubEvents) {
-    StoreGateSvc& seStore(*iEvt->ptr()->evtStore());
     // 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;
-      // if container not there, do nothing
-      if (seStore.contains<GenericMuonSimHitCollection>(m_SimHitContainerNames[iHitContainer])) {
-        if( !seStore.retrieve(hitCont, m_SimHitContainerNames[iHitContainer]).isSuccess()) {
-          ATH_MSG_ERROR ( " Failed to retrieve GenericMuonSimHitCollection called " << m_SimHitContainerNames[iHitContainer] );
-        }
-      }
-      else {
-        ATH_MSG_VERBOSE ( " Cannot find GenericMuonSimHitCollection called " << m_SimHitContainerNames[iHitContainer] );
-        continue;
+      if (!m_pMergeSvc->retrieveSingleSubEvtData(m_SimHitContainerNames[iHitContainer], hitCont,
+						 bunchXing, iEvt).isSuccess()){
+	ATH_MSG_ERROR("GenericMuonSimHitCollection not found for event key " << m_SimHitContainerNames[iHitContainer]);
+	return StatusCode::FAILURE;
       }
+
       //if this is the first SubEvent for this Event then create the hitContainers;
       if(m_firstSubEvent) {
         m_outputContainers[iHitContainer] = new GenericMuonSimHitCollection(m_SimHitContainerNames[iHitContainer]);
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeHijingParsTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeHijingParsTool.cxx
index fc8719dd88560421dee382b6885190d87204e7e1..2a14429a165ac2df98214457c4fb28a94d3dbf90 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeHijingParsTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeHijingParsTool.cxx
@@ -26,7 +26,7 @@ StatusCode MergeHijingParsTool::prepareEvent(unsigned int nInputEvents) {
   return StatusCode::SUCCESS;
 }
 
-StatusCode MergeHijingParsTool::processBunchXing(int,
+StatusCode MergeHijingParsTool::processBunchXing(int bunchXing,
                                                  SubEventIterator bSubEvents,
                                                  SubEventIterator eSubEvents)
 {
@@ -39,44 +39,44 @@ StatusCode MergeHijingParsTool::processBunchXing(int,
   SubEventIterator iEvt = bSubEvents;
   for (; iEvt!=eSubEvents; iEvt++)
     {
-      StoreGateSvc& seStore(*bSubEvents->ptr()->evtStore());
-      if (seStore.contains<HijingEventParams>(m_outputObject.name()))
-        {
-          const HijingEventParams *hijing_pars(nullptr);
-          ATH_CHECK(seStore.retrieve(hijing_pars, m_outputObject.name()));
-          // create new container for overlayed event
-          m_outputObject = CxxUtils::make_unique<HijingEventParams>(hijing_pars->get_np(),
-                                                                    hijing_pars->get_nt(),
-                                                                    hijing_pars->get_n0(),
-                                                                    hijing_pars->get_n01(),
-                                                                    hijing_pars->get_n10(),
-                                                                    hijing_pars->get_n11(),
-                                                                    hijing_pars->get_natt(),
-                                                                    hijing_pars->get_jatt(),
-                                                                    hijing_pars->get_b(),
-                                                                    hijing_pars->get_bphi());
-          // FIXME Why is there no copy constructor for this class?!
-          // add in setting Psi angles manually.
-          for(int n=1;n<7;++n)
-            {
-              m_outputObject->set_psi(n,hijing_pars->get_psi(n));
-            }
+      const HijingEventParams *hijing_pars(nullptr);
+      if (m_pMergeSvc->retrieveSingleSubEvtData(m_outputObject.name(), hijing_pars,
+						 bunchXing, iEvt).isSuccess()){
+
+
+	m_outputObject = CxxUtils::make_unique<HijingEventParams>(hijing_pars->get_np(),
+								  hijing_pars->get_nt(),
+								  hijing_pars->get_n0(),
+								  hijing_pars->get_n01(),
+								  hijing_pars->get_n10(),
+								  hijing_pars->get_n11(),
+								  hijing_pars->get_natt(),
+								  hijing_pars->get_jatt(),
+								  hijing_pars->get_b(),
+								  hijing_pars->get_bphi());
+	// FIXME Why is there no copy constructor for this class?!
+	// add in setting Psi angles manually.
+	for(int n=1;n<7;++n)
+	  {
+	    m_outputObject->set_psi(n,hijing_pars->get_psi(n));
+	  }
+	
+	if(m_firstSubEvent)
+	  {
+	    ATH_MSG_DEBUG( "processBunchXing: copied original event HijingEventParams" );
+	  }
+	else
+	  {
+	    ATH_MSG_DEBUG( "processBunchXing: copied background event HijingEventParams" );
+	  }
+	return StatusCode::SUCCESS;
+      }
 
-          if(m_firstSubEvent)
-            {
-              ATH_MSG_DEBUG( "processBunchXing: copied original event HijingEventParams" );
-            }
-          else
-            {
-              ATH_MSG_DEBUG( "processBunchXing: copied background event HijingEventParams" );
-            }
-          return StatusCode::SUCCESS;
-        }
       if(m_firstSubEvent)
-        {
-          ATH_MSG_VERBOSE("processBunchXing: No HijingEventParams found in the signal eventStore." );
-          m_firstSubEvent=false;
-        }
+	{
+	  ATH_MSG_VERBOSE("processBunchXing: No HijingEventParams found in the signal eventStore." );
+	  m_firstSubEvent=false;
+	}
     }
   return StatusCode::SUCCESS;
 }
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollTool.cxx
index 138a6bec92dbcb1c4f106577d9a0ab977e0a24b6..2f3150cfce8f9f3a6cb0ae0f1ba52874c349e930 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeMcEventCollTool.cxx
@@ -272,7 +272,7 @@ StatusCode MergeMcEventCollTool::processAllSubEvents() {
   return StatusCode::SUCCESS;
 }
 
-StatusCode MergeMcEventCollTool::processBunchXing(int /*bunchXing*/,
+StatusCode MergeMcEventCollTool::processBunchXing(int bunchXing,
                                                 SubEventIterator bSubEvents,
                                                 SubEventIterator eSubEvents)
 {
@@ -280,14 +280,13 @@ StatusCode MergeMcEventCollTool::processBunchXing(int /*bunchXing*/,
   SubEventIterator iEvt(bSubEvents);
   //loop over the McEventCollections (each one assumed to containing exactly one GenEvent) of the various input events
   while (iEvt != eSubEvents) {
-    StoreGateSvc& seStore(*iEvt->ptr()->evtStore());
     const McEventCollection *pMEC(NULL);
-    //FIXME Should I be using m_truthCollKey in the retrieve method?
-    if (!seStore.retrieve(pMEC, m_truthCollKey.value()).isSuccess()) {
-      ATH_MSG_ERROR ("processBunchXing: SubEvt McEventCollection NOT FOUND in StoreGate " << seStore.name() );
+    if (!m_pMergeSvc->retrieveSingleSubEvtData(m_truthCollKey.value(), pMEC,
+					       bunchXing, iEvt).isSuccess()){
+      ATH_MSG_ERROR("McEventCollection not found for event key " << m_truthCollKey.value());
       return StatusCode::FAILURE;
     }
-    ATH_MSG_DEBUG ("processBunchXing: SubEvt McEventCollection from StoreGate " << seStore.name() );
+
     if (!processEvent(pMEC,iEvt->time(),iEvt->index()).isSuccess()) {
       ATH_MSG_ERROR ("processBunchXing: Failed to process McEventCollection." );
       return StatusCode::FAILURE;
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeRecoTimingObjTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeRecoTimingObjTool.cxx
index 0f65f160719a9b753cd2add127480ed19cf30533..70781b11eff69773d2bfd0035601dbaf8a063327 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeRecoTimingObjTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeRecoTimingObjTool.cxx
@@ -37,13 +37,12 @@ StatusCode MergeRecoTimingObjTool::processBunchXing(int bunchXing,
     {
       if (bSubEvents != eSubEvents)
         {
-          StoreGateSvc& seStore(*bSubEvents->ptr()->evtStore());
-          if(seStore.contains<RecoTimingObj>(m_recTimingObjKey.value()))
-            {
-              const RecoTimingObj *oldColl(0);
-              CHECK(seStore.retrieve(oldColl, m_recTimingObjKey.value()));
-              CHECK(processRecoTimingObj(oldColl));
-            }
+	  const RecoTimingObj *oldColl(0);
+	  if (m_pMergeSvc->retrieveSingleSubEvtData(m_recTimingObjKey.value(), oldColl,
+						    bunchXing, bSubEvents).isSuccess())
+	    {
+	      CHECK(processRecoTimingObj(oldColl));
+	    }
           else
             {
               ATH_MSG_DEBUG ( "processBunchXing: No RecoTimingObj found." );
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTrackRecordCollTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTrackRecordCollTool.cxx
index e23468924bdd5255c706f31fdfc3bfc95638660d..5e32c46ebf435394d9d4a6a8bde318199492a89f 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTrackRecordCollTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTrackRecordCollTool.cxx
@@ -37,19 +37,19 @@ StatusCode MergeTrackRecordCollTool::processBunchXing(int bunchXing,
     {
     if (bSubEvents != eSubEvents)
       {
-        StoreGateSvc& seStore(*bSubEvents->ptr()->evtStore());
         const TrackRecordCollection* oldColl(0);
-        if (seStore.retrieve(oldColl, m_trRecCollKey.value()).isSuccess())
-          {
-            TrackRecordCollection* newColl = new TrackRecordCollection();
-            for(auto trcit : *oldColl)
-              {
-                newColl->push_back( TrackRecord(trcit) );
-              }
-            CHECK(evtStore()->record(newColl, m_trRecCollKey));
-            ATH_MSG_DEBUG( "processBunchXing: copied original event TrackRecordCollection" );
-            m_firstSubEvent=false;
-          }
+	if (m_pMergeSvc->retrieveSingleSubEvtData(m_trRecCollKey.value(), oldColl,
+						  bunchXing, bSubEvents).isSuccess())
+	    {
+	      TrackRecordCollection* newColl = new TrackRecordCollection();
+	      for(auto trcit : *oldColl)
+		{
+		  newColl->push_back( TrackRecord(trcit) );
+		}
+	      CHECK(evtStore()->record(newColl, m_trRecCollKey));
+	      ATH_MSG_DEBUG( "processBunchXing: copied original event TrackRecordCollection" );
+	      m_firstSubEvent=false;
+	    }
         else
           {
             ATH_MSG_ERROR ( "processBunchXing: TimedTruthList is empty" );
@@ -60,9 +60,10 @@ StatusCode MergeTrackRecordCollTool::processBunchXing(int bunchXing,
         ATH_MSG_ERROR ( "processBunchXing: Can not find TimedTruthList" );
       }
     }
-
+  
   return StatusCode::SUCCESS;
 }
+
 StatusCode MergeTrackRecordCollTool::mergeEvent()
 {
   //Nothing to do here;
diff --git a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTruthJetsTool.cxx b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTruthJetsTool.cxx
index 2a4e56cebbb49821c8ccd771a25a775bf9d018c5..a0dcbd754f4b6b8ad4706096361ee98c82d7c1f0 100644
--- a/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTruthJetsTool.cxx
+++ b/Simulation/G4Utilities/MCTruthSimAlgs/src/MergeTruthJetsTool.cxx
@@ -64,13 +64,11 @@ StatusCode MergeTruthJetsTool::processBunchXing(int bunchXing,
   SubEventIterator iEvt(bSubEvents);
   while (iEvt != eSubEvents)
     {
-      StoreGateSvc& seStore(*iEvt->ptr()->evtStore());
       const xAOD::JetContainer* inputJetContainer = 0;
-      if (seStore.contains<xAOD::JetContainer>(m_inputJetCollKey))
-        {
+      if (m_pMergeSvc->retrieveSingleSubEvtData(m_inputJetCollKey, inputJetContainer,
+						bunchXing, bSubEvents).isSuccess())
+	{
           ATH_MSG_VERBOSE("Found an xAOD::JetContainer in storeGate.");
-          inputJetContainer = seStore.retrieve<const xAOD::JetContainer>(m_inputJetCollKey);
-          //Back-compatibility with inputs which contain old JetCollections
           if ( inputJetContainer==0 )
             {
               ATH_MSG_ERROR("Unable to retrieve input jet container: " << m_inputJetCollKey);
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/CMakeLists.txt b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/CMakeLists.txt
index e06103e300fe4124bc3c688305c91a8a786e6bfb..f80aa38c7ab43fc44f7b0c7f3efa4d24bcfcaad1 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/CMakeLists.txt
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/CMakeLists.txt
@@ -61,6 +61,7 @@ atlas_add_root_dictionary( ISF_FastCaloSimEvent _dictSource
                            ISF_FastCaloSimEvent/TFCSHistoLateralShapeParametrization.h
                            ISF_FastCaloSimEvent/TFCSLateralShapeParametrizationHitNumberFromE.h
                            ISF_FastCaloSimEvent/TFCSHitCellMapping.h
+                           ISF_FastCaloSimEvent/TFCSHitCellMappingFCal.h
                            ISF_FastCaloSimEvent/TFCSHitCellMappingWiggle.h
                            ISF_FastCaloSimEvent/TFCSHitCellMappingWiggleEMB.h
                            ISF_FastCaloSimEvent/TFCSExtrapolationState.h 
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/LinkDef.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/LinkDef.h
index 92fb2e0c0a1f8f15fae8b1f21f30963117c37700..0d81d35cc1e9b82246b8a3754532c06a0f638293 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/LinkDef.h
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/LinkDef.h
@@ -41,6 +41,7 @@
 #include "ISF_FastCaloSimEvent/TFCSHistoLateralShapeParametrization.h"
 #include "ISF_FastCaloSimEvent/TFCSLateralShapeParametrizationHitNumberFromE.h"
 #include "ISF_FastCaloSimEvent/TFCSHitCellMapping.h"
+#include "ISF_FastCaloSimEvent/TFCSHitCellMappingFCal.h"
 #include "ISF_FastCaloSimEvent/TFCSHitCellMappingWiggle.h"
 #include "ISF_FastCaloSimEvent/TFCSHitCellMappingWiggleEMB.h"
 
@@ -145,6 +146,7 @@
 #pragma link C++ class TFCSHistoLateralShapeParametrization+;
 #pragma link C++ class TFCSLateralShapeParametrizationHitNumberFromE+;
 #pragma link C++ class TFCSHitCellMapping+;
+#pragma link C++ class TFCSHitCellMappingFCal+;
 #pragma link C++ class TFCSHitCellMappingWiggle+;
 #pragma link C++ class TFCSHitCellMappingWiggleEMB+;
 
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSHitCellMapping.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSHitCellMapping.h
index 301d8d22c738b093a01a3a2e750b847bcef39b42..7620f5f311e6da8f69159c2f7605e02714dfba7d 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSHitCellMapping.h
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSHitCellMapping.h
@@ -21,9 +21,9 @@ public:
 
   void Print(Option_t *option) const;
 
-private:
+protected:
   ICaloGeometry* m_geo; //! do not persistify
-
+private:
   ClassDef(TFCSHitCellMapping,1)  //TFCSHitCellMapping
 };
 
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSHitCellMappingFCal.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSHitCellMappingFCal.h
new file mode 100644
index 0000000000000000000000000000000000000000..4aee99d8e7e95e5167162f201ee1bcefce9283a5
--- /dev/null
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSHitCellMappingFCal.h
@@ -0,0 +1,26 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TFCSHitCellMappingFCal_h
+#define TFCSHitCellMappingFCal_h
+
+#include "ISF_FastCaloSimEvent/TFCSHitCellMapping.h"
+
+class ICaloGeometry;
+
+class TFCSHitCellMappingFCal:public TFCSHitCellMapping {
+public:
+  TFCSHitCellMappingFCal(const char* name=nullptr, const char* title=nullptr, ICaloGeometry* geo=nullptr):TFCSHitCellMapping(name,title,geo){}
+  
+  virtual void simulate_hit(Hit& hit,TFCSSimulationState& simulstate,const TFCSTruthState* truth, const TFCSExtrapolationState* extrapol);
+
+private:
+  ClassDef(TFCSHitCellMappingFCal,1)  //TFCSHitCellMapping
+};
+
+#if defined(__ROOTCLING__) && defined(__FastCaloSimStandAlone__)
+#pragma link C++ class TFCSHitCellMappingFCal+;
+#endif
+
+#endif
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSLateralShapeParametrizationHitBase.h b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSLateralShapeParametrizationHitBase.h
index 32c0feb5ee8db4f9941f2b8dabc10432daf15863..f53cbc785e794d77b4b8e15463a172e7443dbc62 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSLateralShapeParametrizationHitBase.h
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/ISF_FastCaloSimEvent/TFCSLateralShapeParametrizationHitBase.h
@@ -19,15 +19,41 @@ public:
   class Hit
   {
     public:
-    Hit():m_eta(0),m_phi(0),m_E(0) {}; // for hits with the same energy, m_E should normalized to E(layer)/nhit
-    Hit(float eta, float phi, float E):m_eta(eta),m_phi(phi),m_E(E) {};
+    Hit():m_eta_x(0.),m_phi_y(0.),m_z(0.),m_E(0.) {}; // for hits with the same energy, m_E should normalized to E(layer)/nhit
+    Hit(float eta, float phi, float E):m_eta_x(eta),m_phi_y(phi),m_E(E) {};
+    Hit(float x, float y, float z, float E):m_eta_x(x),m_phi_y(y),m_z(z),m_E(E) {};
+    
+    inline void setEtaPhiE(float eta,float phi, float E){
+      m_eta_x=eta;
+      m_phi_y=phi;
+      m_E=E;
+    }
+    inline void setXYZE(float x,float y,float z, float E){
+      m_eta_x=x;
+      m_phi_y=y;
+      m_z=z;
+      m_E=E;
+    }
 
-    float& eta() {return m_eta;};
-    float& phi() {return m_phi;};
-    float& E() {return m_E;};
+    inline void reset(){
+      m_eta_x=0.;
+      m_phi_y=0.;
+      m_z=0.;
+      m_E=0.;
+    }
+
+    inline float& eta() {return m_eta_x;};
+    inline float& phi() {return m_phi_y;};
+    inline float& x() {return m_eta_x;};
+    inline float& y() {return m_phi_y;};
+    inline float& E() {return m_E;};
+    inline float& z() {return m_z;}
 
     private:
-    float m_eta,m_phi,m_E;
+    float m_eta_x; // eta for barrel and end-cap, x for FCal
+    float m_phi_y; // phi for barrel and end-cap, y for FCal
+    float m_z;
+    float m_E;
   };
 
   /// simulated one hit position with some energy. As last step in TFCSLateralShapeParametrizationHitChain::simulate, 
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHitCellMappingFCal.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHitCellMappingFCal.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..7f493482b30e213507d36a4309abf37033e3c3e3
--- /dev/null
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSHitCellMappingFCal.cxx
@@ -0,0 +1,24 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "ISF_FastCaloSimEvent/TFCSHitCellMappingFCal.h"
+#include "ISF_FastCaloSimEvent/ICaloGeometry.h"
+#include "ISF_FastCaloSimEvent/TFCSSimulationState.h"
+
+//=============================================
+//======= TFCSHitCellMappingFCal =========
+//=============================================
+
+
+void TFCSHitCellMappingFCal::simulate_hit(Hit& hit,TFCSSimulationState& simulstate,const TFCSTruthState* /*truth*/, const TFCSExtrapolationState* /*extrapol*/)
+{
+  int cs=calosample();
+  const CaloDetDescrElement* cellele=m_geo->getFCalDDE(cs,hit.x(),hit.y(),hit.z());
+  ATH_MSG_DEBUG("HIT: cellele="<<cellele<<" E="<<hit.E()<<" cs="<<cs<<" x="<<hit.x()<<" y="<<hit.y() << " z="<<hit.z());
+  if(cellele) {
+    simulstate.deposit(cellele,hit.E());
+  } else {
+    ATH_MSG_ERROR("TFCSLateralShapeParametrizationHitCellMapping::simulate_hit: cellele="<<cellele<<" E="<<hit.E()<<" cs="<<cs<<" eta="<<hit.eta()<<" phi="<<hit.phi());
+  }
+}
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt
index 0b991a0ad1520600dbeb13ee4321236e3df0e0f1..5d7fa6d075d7c48f38f5314fce37cf6a15ef1334 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt
@@ -7,22 +7,20 @@ atlas_subdir( ISF_FatrasServices )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
+                          GaudiKernel
+                          PRIVATE
                           Control/AthenaBaseComps
                           DetectorDescription/AtlasDetDescr
-                          GaudiKernel
+                          Simulation/ISF/ISF_Core/ISF_Event
                           Simulation/ISF/ISF_Core/ISF_Interfaces
-                          Tracking/TrkEvent/TrkTrack
-                          PRIVATE
-                          Control/StoreGate
-                          Simulation/ISF/ISF_Core/ISF_Event )
+                          Tracking/TrkEvent/TrkTrack )
 
 # Component(s) in the package:
 atlas_add_component( ISF_FatrasServices
                      src/*.cxx
                      src/components/*.cxx
-                     LINK_LIBRARIES AthenaBaseComps AtlasDetDescr GaudiKernel ISF_Interfaces TrkTrack StoreGateLib SGtests ISF_Event )
+                     LINK_LIBRARIES AthenaBaseComps AtlasDetDescr GaudiKernel ISF_Interfaces TrkTrack ISF_Event )
 
 # Install files from the package:
-atlas_install_headers( ISF_FatrasServices )
 atlas_install_python_modules( python/*.py )
 
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/FatrasSimSvc.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/FatrasSimSvc.cxx
index 85514beda5ce582213c422e8c8149316e752f69a..319a19550669baba5e7371531e5a7491e4d1f6a3 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/FatrasSimSvc.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/FatrasSimSvc.cxx
@@ -1,16 +1,10 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
-///////////////////////////////////////////////////////////////////
-// TransportSimSvc.cxx, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
 // class header include
-#include "ISF_FatrasServices/FatrasSimSvc.h"
+#include "FatrasSimSvc.h"
 
-// StoreGate
-#include "StoreGate/StoreGateSvc.h"
 // Remaining ISF include
 #include "ISF_Interfaces/IParticleBroker.h"
 #include "ISF_Interfaces/ITruthSvc.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/ISF_FatrasServices/FatrasSimSvc.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/FatrasSimSvc.h
similarity index 88%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasServices/ISF_FatrasServices/FatrasSimSvc.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/FatrasSimSvc.h
index d5b90aade602df82cc5034cafbd5e49c4fff9985..c53e33fe61f02c43554341f578b4fa99fd3ab014 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/ISF_FatrasServices/FatrasSimSvc.h
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/FatrasSimSvc.h
@@ -1,11 +1,7 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
-///////////////////////////////////////////////////////////////////
-// FatrasSimSvc.h, (c) ATLAS Detector software
-///////////////////////////////////////////////////////////////////
-
 #ifndef ISF_FATRASSIMSVC_H
 #define ISF_FATRASSIMSVC_H 1
 
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/components/ISF_FatrasServices_entries.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/components/ISF_FatrasServices_entries.cxx
index 7ccfb3c6d84b676b6d2b948e5f95989cb36e4206..b7fba9de56c774ad6259a8f2cbce818b967842bf 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/components/ISF_FatrasServices_entries.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/src/components/ISF_FatrasServices_entries.cxx
@@ -1,4 +1,4 @@
-#include "ISF_FatrasServices/FatrasSimSvc.h"
+#include "../FatrasSimSvc.h"
 
 DECLARE_COMPONENT( iFatras::FatrasSimSvc )
 
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/CMakeLists.txt
index b415599308271e9090890db74bad3befaccac11a..99d0352b18117a9bf6362a7350f29d3c428d2a82 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/CMakeLists.txt
@@ -7,31 +7,31 @@ atlas_subdir( ISF_FatrasTools )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
+                          GaudiKernel
+                          PRIVATE
                           Control/AthenaBaseComps
                           Control/AthenaKernel
+                          Control/StoreGate
+                          DetectorDescription/AtlasDetDescr
                           DetectorDescription/GeoPrimitives
                           Event/EventPrimitives
-                          GaudiKernel
-                          Simulation/Barcode/BarcodeInterfaces
+                          Simulation/Barcode/BarcodeEvent
+                          Simulation/FastSimulation/FastSimulationEvent
                           Simulation/ISF/ISF_Core/ISF_Event
                           Simulation/ISF/ISF_Core/ISF_Interfaces
                           Simulation/ISF/ISF_Fatras/ISF_FatrasInterfaces
+                          Tracking/TrkDetDescr/TrkDetDescrInterfaces
                           Tracking/TrkDetDescr/TrkDetDescrUtils
                           Tracking/TrkDetDescr/TrkGeometry
-                          Tracking/TrkEvent/TrkEventPrimitives
-                          Tracking/TrkEvent/TrkParameters
-                          Tracking/TrkExtrapolation/TrkExInterfaces
-                          Tracking/TrkExtrapolation/TrkExUtils
-                          PRIVATE
-                          Control/StoreGate
-                          DetectorDescription/AtlasDetDescr
-                          Simulation/FastSimulation/FastSimulationEvent
-                          Tracking/TrkDetDescr/TrkDetDescrInterfaces
                           Tracking/TrkDetDescr/TrkSurfaces
                           Tracking/TrkDetDescr/TrkVolumes
+                          Tracking/TrkEvent/TrkEventPrimitives
                           Tracking/TrkEvent/TrkMaterialOnTrack
                           Tracking/TrkEvent/TrkNeutralParameters
-                          Tracking/TrkEvent/TrkTrack )
+                          Tracking/TrkEvent/TrkParameters
+                          Tracking/TrkEvent/TrkTrack
+                          Tracking/TrkExtrapolation/TrkExInterfaces
+                          Tracking/TrkExtrapolation/TrkExUtils )
 
 # External dependencies:
 find_package( CLHEP )
@@ -44,8 +44,3 @@ atlas_add_component( ISF_FatrasTools
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel GeoPrimitives EventPrimitives GaudiKernel ISF_Event ISF_Interfaces ISF_FatrasInterfaces TrkDetDescrUtils TrkGeometry TrkEventPrimitives TrkParameters TrkExInterfaces TrkExUtils StoreGateLib SGtests AtlasDetDescr TrkDetDescrInterfaces TrkSurfaces TrkVolumes TrkMaterialOnTrack TrkNeutralParameters TrkTrack )
-
-# Install files from the package:
-atlas_install_headers( ISF_FatrasTools )
-
-
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/EnergyLossSamplerBetheHeitler.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/EnergyLossSamplerBetheHeitler.cxx
index 34f9d0ff55bca218bc5f17e5c8aeb43487338243..95393d247010b923d0bee1a812bc2b764b44b854 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/EnergyLossSamplerBetheHeitler.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/EnergyLossSamplerBetheHeitler.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header include
-#include "ISF_FatrasTools/EnergyLossSamplerBetheHeitler.h"
+#include "EnergyLossSamplerBetheHeitler.h"
 
 #include "TrkGeometry/MaterialProperties.h"
 #include "TrkMaterialOnTrack/EnergyLoss.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/EnergyLossSamplerBetheHeitler.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/EnergyLossSamplerBetheHeitler.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/EnergyLossSamplerBetheHeitler.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/EnergyLossSamplerBetheHeitler.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx
index 97aa171bf8fa2c777c2af853713f6bf2a46ec2a9..5231ca399fbb62e6d821243fb77e9576f9168d76 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/HadIntProcessorParametric.h"
+#include "HadIntProcessorParametric.h"
 
 // Gaudi Kernel
 #include "GaudiKernel/IRndmGenSvc.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/HadIntProcessorParametric.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/HadIntProcessorParametric.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McEnergyLossUpdator.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McEnergyLossUpdator.cxx
index 85719ae4611e85edb3860efa95dff284c5104eb6..14d76d2aa560e01b69de51293ff6a871f603cc11 100755
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McEnergyLossUpdator.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McEnergyLossUpdator.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/McEnergyLossUpdator.h"
+#include "McEnergyLossUpdator.h"
 
 // Trk
 #include "TrkGeometry/MaterialProperties.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McEnergyLossUpdator.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McEnergyLossUpdator.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McEnergyLossUpdator.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McEnergyLossUpdator.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.cxx
index e3a57797efd254d7023be2d9b6b3368ae4ea7fa8..741e382213e26ef79f4bbaa3510b8bdaba85ee88 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/McMaterialEffectsEngine.h"
+#include "McMaterialEffectsEngine.h"
 
 // Gaudi Kernel
 #include "GaudiKernel/DataSvc.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McMaterialEffectsEngine.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McMaterialEffectsEngine.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McMaterialEffectsEngine.icc b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.icc
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McMaterialEffectsEngine.icc
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsEngine.icc
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsUpdator.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsUpdator.cxx
index 4297514fde3060937061969c4da12e9d1dc37eb7..3216f49aa9e2121be456fa3829ea08b91a21cd01 100755
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsUpdator.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsUpdator.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/McMaterialEffectsUpdator.h"
+#include "McMaterialEffectsUpdator.h"
 
 // Gaudi Kernel
 #include "GaudiKernel/IRndmGenSvc.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McMaterialEffectsUpdator.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsUpdator.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/McMaterialEffectsUpdator.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/McMaterialEffectsUpdator.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGaussianMixture.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGaussianMixture.cxx
index 4e1179dc45308117f50f46993399017036a6d36e..7603844b25baa1ef9a1b5c92ee3640faad79536b 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGaussianMixture.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGaussianMixture.cxx
@@ -9,7 +9,7 @@
 // Trk include
 #include "TrkGeometry/MaterialProperties.h"
 
-#include "ISF_FatrasTools/MultipleScatteringSamplerGaussianMixture.h"
+#include "MultipleScatteringSamplerGaussianMixture.h"
 
 #include "CLHEP/Random/RandGaussZiggurat.h"
 
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/MultipleScatteringSamplerGaussianMixture.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGaussianMixture.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/MultipleScatteringSamplerGaussianMixture.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGaussianMixture.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGeneralMixture.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGeneralMixture.cxx
index ea1e844267fbcad7cf836c477ed35b45c2c244ad..e0370add52c0570026f9f7fbf47cc09c83822d4c 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGeneralMixture.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGeneralMixture.cxx
@@ -9,7 +9,7 @@
 // Trk include
 #include "TrkGeometry/MaterialProperties.h"
 
-#include "ISF_FatrasTools/MultipleScatteringSamplerGeneralMixture.h"
+#include "MultipleScatteringSamplerGeneralMixture.h"
 #include "CLHEP/Random/RandGaussZiggurat.h"
 
 // static particle masses
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/MultipleScatteringSamplerGeneralMixture.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGeneralMixture.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/MultipleScatteringSamplerGeneralMixture.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerGeneralMixture.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerHighland.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerHighland.cxx
index be924a5c4a5f011835714ab7ffddaf55b219bdd4..4ba5f6613dde5f61eafce441ecfa876ac469e14d 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerHighland.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerHighland.cxx
@@ -10,7 +10,7 @@
 #include "TrkGeometry/MaterialProperties.h"
 #include "TrkExUtils/MaterialInteraction.h"
 
-#include "ISF_FatrasTools/MultipleScatteringSamplerHighland.h"
+#include "MultipleScatteringSamplerHighland.h"
 
 #include "CLHEP/Random/RandGaussZiggurat.h"
 
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/MultipleScatteringSamplerHighland.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerHighland.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/MultipleScatteringSamplerHighland.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/MultipleScatteringSamplerHighland.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx
index 0556e87b46ac46fb8f39710d8baf04210d138c62..68978e0f7eb48fd0d13b30b503faed1d2ea69bd5 100755
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/PhotonConversionTool.h"
+#include "PhotonConversionTool.h"
 
 // Gaudi Kernel
 #include "GaudiKernel/RndmGenerators.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/PhotonConversionTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/PhotonConversionTool.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx
index 68155a453ef17d890849781110f019dfa16f5ed6..18ffc3801b18d0497fb26aabfc967a55a7d399a0 100755
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/PhysicsValidationTool.h"
+#include "PhysicsValidationTool.h"
 
 // Tracking
 #include "TrkParameters/TrackParameters.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/PhysicsValidationTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/PhysicsValidationTool.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/ProcessSamplingTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/ProcessSamplingTool.cxx
index 0670b68872d0d1c464ec9b5bb01d650242aed7e5..c26dc4bb3749461d3ea76e4cdd7aca7b72b35c9b 100755
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/ProcessSamplingTool.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/ProcessSamplingTool.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/ProcessSamplingTool.h"
+#include "ProcessSamplingTool.h"
 
 // Tracking
 #include "TrkParameters/TrackParameters.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/ProcessSamplingTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/ProcessSamplingTool.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/ProcessSamplingTool.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/ProcessSamplingTool.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx
index 15d3c9cf1791dffe5bc248944d43f767b7e68cde..4cf9e151bff1f8cd2128613e4874744d77ea5988 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/TransportEngine.h"
+#include "TransportEngine.h"
 
 // Tracking
 #include "TrkTrack/Track.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/TransportEngine.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/TransportEngine.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx
index 1202f66962ecaaf8e5202e4cb5e4ec9e5bbc6f48..fcfdeeaf37af66d75bcedfcac76940ccc71b0368 100755
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasTools/TransportTool.h"
+#include "TransportTool.h"
 
 // Tracking
 #include "TrkTrack/Track.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/TransportTool.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasTools/ISF_FatrasTools/TransportTool.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/components/ISF_FatrasTools_entries.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/components/ISF_FatrasTools_entries.cxx
index f0e4cc717256c0f5025122b018679f852657ead1..66844392052c6a84e7a69fb85000e5d7d54dc769 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/components/ISF_FatrasTools_entries.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/components/ISF_FatrasTools_entries.cxx
@@ -1,17 +1,17 @@
-#include "ISF_FatrasTools/TransportTool.h"
-#include "ISF_FatrasTools/TransportEngine.h"
-#include "ISF_FatrasTools/McMaterialEffectsUpdator.h"
-#include "ISF_FatrasTools/McMaterialEffectsEngine.h"
-#include "ISF_FatrasTools/HadIntProcessorParametric.h"
-#include "ISF_FatrasTools/McEnergyLossUpdator.h"
-#include "ISF_FatrasTools/EnergyLossSamplerBetheHeitler.h"
-#include "ISF_FatrasTools/PhotonConversionTool.h"
-#include "ISF_FatrasTools/ProcessSamplingTool.h"
-#include "ISF_FatrasTools/PhysicsValidationTool.h"
+#include "../TransportTool.h"
+#include "../TransportEngine.h"
+#include "../McMaterialEffectsUpdator.h"
+#include "../McMaterialEffectsEngine.h"
+#include "../HadIntProcessorParametric.h"
+#include "../McEnergyLossUpdator.h"
+#include "../EnergyLossSamplerBetheHeitler.h"
+#include "../PhotonConversionTool.h"
+#include "../ProcessSamplingTool.h"
+#include "../PhysicsValidationTool.h"
 
-#include "ISF_FatrasTools/MultipleScatteringSamplerHighland.h"
-#include "ISF_FatrasTools/MultipleScatteringSamplerGaussianMixture.h"
-#include "ISF_FatrasTools/MultipleScatteringSamplerGeneralMixture.h"
+#include "../MultipleScatteringSamplerHighland.h"
+#include "../MultipleScatteringSamplerGaussianMixture.h"
+#include "../MultipleScatteringSamplerGeneralMixture.h"
 
 DECLARE_COMPONENT( iFatras::TransportTool )
 DECLARE_COMPONENT( iFatras::TransportEngine )
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt
index 5cf3a65ff979e1855261836adda5bf3e3a2131d8..8fc1f042a414fd4bdfe548997bbc525c0bd1056a 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt
@@ -7,19 +7,15 @@ atlas_subdir( ISF_FatrasToolsID )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
+                          GaudiKernel
+                          PRIVATE
                           Control/AthenaBaseComps
                           Control/AthenaKernel
                           Control/AthContainers
-                          DetectorDescription/Identifier
-                          GaudiKernel
-                          InnerDetector/InDetSimEvent
-                          Simulation/ISF/ISF_Fatras/ISF_FatrasInterfaces
-                          Tracking/TrkEvent/TrkParameters
-                          Tracking/TrkExtrapolation/TrkExInterfaces
-                          PRIVATE
                           Control/StoreGate
                           DetectorDescription/AtlasDetDescr
                           DetectorDescription/IdDictDetDescr
+                          DetectorDescription/Identifier
                           InnerDetector/InDetConditions/InDetConditionsSummaryService
                           InnerDetector/InDetConditions/TRT_ConditionsServices
                           InnerDetector/InDetDetDescr/InDetIdentifier
@@ -27,15 +23,19 @@ atlas_depends_on_subdirs( PUBLIC
                           InnerDetector/InDetRecEvent/InDetPrepRawData
                           InnerDetector/InDetRecEvent/InDetRIO_OnTrack
                           InnerDetector/InDetRecTools/SiClusterizationTool
+                          InnerDetector/InDetSimEvent
                           Simulation/ISF/ISF_Core/ISF_Event
                           Simulation/ISF/ISF_Core/ISF_Interfaces
                           Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel
+                          Simulation/ISF/ISF_Fatras/ISF_FatrasInterfaces
                           Tracking/TrkDetDescr/TrkDetElementBase
                           Tracking/TrkDetDescr/TrkSurfaces
                           Tracking/TrkEvent/TrkEventPrimitives
                           Tracking/TrkEvent/TrkMeasurementBase
+                          Tracking/TrkEvent/TrkParameters
                           Tracking/TrkEvent/TrkRIO_OnTrack
                           Tracking/TrkEvent/TrkTrack
+                          Tracking/TrkExtrapolation/TrkExInterfaces
                           Tracking/TrkExtrapolation/TrkExUtils
                           Tracking/TrkTools/TrkToolInterfaces )
 
@@ -50,6 +50,3 @@ atlas_add_component( ISF_FatrasToolsID
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS}
                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel AthContainers Identifier GaudiKernel InDetSimEvent ISF_FatrasInterfaces TrkParameters TrkExInterfaces StoreGateLib SGtests AtlasDetDescr IdDictDetDescr TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry InDetPrepRawData InDetRIO_OnTrack SiClusterizationToolLib ISF_Event ISF_Interfaces ISF_FatrasDetDescrModel TrkDetElementBase TrkSurfaces TrkEventPrimitives TrkMeasurementBase TrkRIO_OnTrack TrkTrack TrkExUtils TrkToolInterfaces )
 
-# Install files from the package:
-atlas_install_headers( ISF_FatrasToolsID )
-
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx
index 21e814fe76161da208c822b522ef40dfcec9ffa2..60a60761571a4332a982bf8955f4dcffe2953198 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasToolsID/HitCreatorSilicon.h"
+#include "HitCreatorSilicon.h"
 
 // ISF
 #include "ISF_Event/ISFParticle.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/ISF_FatrasToolsID/HitCreatorSilicon.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/ISF_FatrasToolsID/HitCreatorSilicon.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorTRT.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorTRT.cxx
index 4d3a050b5753cc477f3b6d69055866a256607503..4eff6c174dfae2862fa60e7c64518a44d6708c99 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorTRT.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorTRT.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasToolsID/HitCreatorTRT.h"
+#include "HitCreatorTRT.h"
 
 // Framework
 #include "GaudiKernel/ISvcLocator.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/ISF_FatrasToolsID/HitCreatorTRT.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorTRT.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/ISF_FatrasToolsID/HitCreatorTRT.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorTRT.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/SimHitCreatorID.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/SimHitCreatorID.cxx
index ec73b4705620dec6621e8f4e91825f27a627f8cd..a3ce49f010e00332aeb7b4e9f2f523fe6a03fd95 100755
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/SimHitCreatorID.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/SimHitCreatorID.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasToolsID/SimHitCreatorID.h"
+#include "SimHitCreatorID.h"
 
 // iFatras && ISF
 #include "ISF_FatrasInterfaces/IHitCreator.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/ISF_FatrasToolsID/SimHitCreatorID.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/SimHitCreatorID.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/ISF_FatrasToolsID/SimHitCreatorID.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/SimHitCreatorID.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/components/ISF_FatrasToolsID_entries.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/components/ISF_FatrasToolsID_entries.cxx
index 5f87ab8c189a50816c41249fdcfd59a5e3bdcaff..f9f71afc802fc9fdc30152a4ff1d3db37ea81fa4 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/components/ISF_FatrasToolsID_entries.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/components/ISF_FatrasToolsID_entries.cxx
@@ -1,6 +1,6 @@
-#include "ISF_FatrasToolsID/SimHitCreatorID.h"
-#include "ISF_FatrasToolsID/HitCreatorSilicon.h"
-#include "ISF_FatrasToolsID/HitCreatorTRT.h"
+#include "../SimHitCreatorID.h"
+#include "../HitCreatorSilicon.h"
+#include "../HitCreatorTRT.h"
 
 DECLARE_COMPONENT( iFatras::SimHitCreatorID )
 DECLARE_COMPONENT( iFatras::HitCreatorSilicon )
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/CMakeLists.txt
index 4813143033f1c074eec4818be2c2e26c8bb1fea9..aff51d5f82ef7dcf4cb9adc5079c2b76be16985b 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/CMakeLists.txt
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/CMakeLists.txt
@@ -7,21 +7,21 @@ atlas_subdir( ISF_FatrasToolsMS )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
+                          GaudiKernel
+                          PRIVATE
                           Control/AthenaBaseComps
                           Control/AthenaKernel
                           DetectorDescription/Identifier
-                          GaudiKernel
-                          MuonSpectrometer/MuonSimEvent
-                          Simulation/ISF/ISF_Fatras/ISF_FatrasInterfaces
-                          Tracking/TrkEvent/TrkParameters
-                          Tracking/TrkExtrapolation/TrkExInterfaces
-                          PRIVATE
                           MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry
                           MuonSpectrometer/MuonIdHelpers
                           MuonSpectrometer/MuonReconstruction/MuonRecTools/MuonTGRecTools
+                          MuonSpectrometer/MuonSimEvent
                           Simulation/ISF/ISF_Core/ISF_Event
                           Simulation/ISF/ISF_Core/ISF_Interfaces
-                          Tracking/TrkEvent/TrkTrack )
+                          Simulation/ISF/ISF_Fatras/ISF_FatrasInterfaces
+                          Tracking/TrkEvent/TrkParameters
+                          Tracking/TrkEvent/TrkTrack
+                          Tracking/TrkExtrapolation/TrkExInterfaces )
 
 # External dependencies:
 find_package( CLHEP )
@@ -33,6 +33,3 @@ atlas_add_component( ISF_FatrasToolsMS
                      INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS}
                      LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel Identifier GaudiKernel MuonSimEvent ISF_FatrasInterfaces TrkParameters TrkExInterfaces MuonReadoutGeometry MuonIdHelpersLib ISF_Event ISF_Interfaces TrkTrack )
 
-# Install files from the package:
-atlas_install_headers( ISF_FatrasToolsMS )
-
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx
index e4243da59403b599c736e1c460650ea5a1763a48..ebaf8b73d09492ae04ebdf8781b23758f38881a3 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.cxx
@@ -7,7 +7,7 @@
 ///////////////////////////////////////////////////////////////////
 
 // class header
-#include "ISF_FatrasToolsMS/SimHitCreatorMS.h"
+#include "SimHitCreatorMS.h"
 
 // ISF includes
 #include "ISF_Event/ISFParticle.h"
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/ISF_FatrasToolsMS/SimHitCreatorMS.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.h
similarity index 100%
rename from Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/ISF_FatrasToolsMS/SimHitCreatorMS.h
rename to Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/SimHitCreatorMS.h
diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/components/FatrasToolsMS_entries.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/components/FatrasToolsMS_entries.cxx
index bced6b2e84dcff8b2880145bb85d9508820f0bb1..825c110624358bf31840cd03d70301269f3482ad 100644
--- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/components/FatrasToolsMS_entries.cxx
+++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsMS/src/components/FatrasToolsMS_entries.cxx
@@ -1,4 +1,4 @@
-#include "ISF_FatrasToolsMS/SimHitCreatorMS.h"
+#include "../SimHitCreatorMS.h"
 
 DECLARE_COMPONENT( iFatras::SimHitCreatorMS )
 
diff --git a/Simulation/RunDependentSim/RunDependentSimData/share/configLumi_run310000.py b/Simulation/RunDependentSim/RunDependentSimData/share/configLumi_run310000.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ef4ed7b55e96f42b38eab14ecb9ee0e83fb6e69
--- /dev/null
+++ b/Simulation/RunDependentSim/RunDependentSimData/share/configLumi_run310000.py
@@ -0,0 +1,124 @@
+####################
+## File configLumi_run310000.py: autogenerated configuration file from command
+##../athena/Simulation/RunDependentSim/RunDependentSimComps/share/RunDepProfileGenerator.py -r 310000 -s 1550000000 -c 2000 -o configLumi_run310000.py -e {0.5:1,1.5:1,2.5:1,3.5:1,4.5:1,5.5:1,6.5:1,7.5:1,8.5:1,9.5:1,10.5:1,11.5:2,12.5:2,13.5:4,14.5:6,15.5:8,16.5:12,17.5:15,18.5:20,19.5:24,20.5:29,21.5:34,22.5:38,23.5:41,24.5:45,25.5:47,26.5:49,27.5:51,28.5:53,29.5:55,30.5:56,31.5:57,32.5:58,33.5:59,34.5:60,35.5:60,36.5:60,37.5:60,38.5:61,39.5:61,40.5:61,41.5:61,42.5:60,43.5:59,44.5:57,45.5:55,46.5:53,47.5:50,48.5:47,49.5:43,50.5:40,51.5:36,52.5:32,53.5:29,54.5:25,55.5:22,56.5:18,57.5:16,58.5:13,59.5:11,60.5:9,61.5:7,62.5:6,63.5:5,64.5:4,65.5:3,66.5:3,67.5:2,68.5:2,69.5:2,70.5:2,71.5:1,72.5:1,73.5:1,74.5:1,75.5:1,76.5:1,77.5:1,78.5:1,79.5:1,80.5:1,81.5:1,82.5:1,83.5:1,84.5:1,85.5:1,86.5:1,87.5:1,88.5:1,89.5:1,90.5:1,91.5:1,92.5:1,93.5:1,94.5:1,95.5:1,96.5:1,97.5:1,98.5:1,99.5:1}
+## Created on Thu Jul 12 17:10:50 2018
+####################
+#Run-dependent digi job configuration file.
+#RunDependentSimData/OverrideRunLBLumiDigitConfig.py
+
+#We need to be able to adjust for different dataset sizes.
+if not 'ScaleTaskLength' in dir():   ScaleTaskLength = 1
+_evts = lambda x: int(ScaleTaskLength * x)
+
+if not 'logging' in dir(): import logging
+digilog = logging.getLogger('Digi_trf')
+digilog.info('doing RunLumiOverride configuration from file.')
+JobMaker=[
+  {'run':310000, 'lb':1, 'starttstamp':1550000000, 'dt':0.000, 'evts':_evts(1), 'mu':0.500, 'force_new':False},
+  {'run':310000, 'lb':2, 'starttstamp':1550000060, 'dt':0.000, 'evts':_evts(1), 'mu':1.500, 'force_new':False},
+  {'run':310000, 'lb':3, 'starttstamp':1550000120, 'dt':0.000, 'evts':_evts(1), 'mu':2.500, 'force_new':False},
+  {'run':310000, 'lb':4, 'starttstamp':1550000180, 'dt':0.000, 'evts':_evts(1), 'mu':3.500, 'force_new':False},
+  {'run':310000, 'lb':5, 'starttstamp':1550000240, 'dt':0.000, 'evts':_evts(1), 'mu':4.500, 'force_new':False},
+  {'run':310000, 'lb':6, 'starttstamp':1550000300, 'dt':0.000, 'evts':_evts(1), 'mu':5.500, 'force_new':False},
+  {'run':310000, 'lb':7, 'starttstamp':1550000360, 'dt':0.000, 'evts':_evts(1), 'mu':6.500, 'force_new':False},
+  {'run':310000, 'lb':8, 'starttstamp':1550000420, 'dt':0.000, 'evts':_evts(1), 'mu':7.500, 'force_new':False},
+  {'run':310000, 'lb':9, 'starttstamp':1550000480, 'dt':0.000, 'evts':_evts(1), 'mu':8.500, 'force_new':False},
+  {'run':310000, 'lb':10, 'starttstamp':1550000540, 'dt':0.000, 'evts':_evts(1), 'mu':9.500, 'force_new':False},
+  {'run':310000, 'lb':11, 'starttstamp':1550000600, 'dt':0.000, 'evts':_evts(1), 'mu':10.500, 'force_new':False},
+  {'run':310000, 'lb':12, 'starttstamp':1550000660, 'dt':0.000, 'evts':_evts(2), 'mu':11.500, 'force_new':False},
+  {'run':310000, 'lb':13, 'starttstamp':1550000720, 'dt':0.000, 'evts':_evts(2), 'mu':12.500, 'force_new':False},
+  {'run':310000, 'lb':14, 'starttstamp':1550000780, 'dt':0.000, 'evts':_evts(4), 'mu':13.500, 'force_new':False},
+  {'run':310000, 'lb':15, 'starttstamp':1550000840, 'dt':0.000, 'evts':_evts(6), 'mu':14.500, 'force_new':False},
+  {'run':310000, 'lb':16, 'starttstamp':1550000900, 'dt':0.000, 'evts':_evts(8), 'mu':15.500, 'force_new':False},
+  {'run':310000, 'lb':17, 'starttstamp':1550000960, 'dt':0.000, 'evts':_evts(12), 'mu':16.500, 'force_new':False},
+  {'run':310000, 'lb':18, 'starttstamp':1550001020, 'dt':0.000, 'evts':_evts(15), 'mu':17.500, 'force_new':False},
+  {'run':310000, 'lb':19, 'starttstamp':1550001080, 'dt':0.000, 'evts':_evts(20), 'mu':18.500, 'force_new':False},
+  {'run':310000, 'lb':20, 'starttstamp':1550001140, 'dt':0.000, 'evts':_evts(24), 'mu':19.500, 'force_new':False},
+  {'run':310000, 'lb':21, 'starttstamp':1550001200, 'dt':0.000, 'evts':_evts(29), 'mu':20.500, 'force_new':False},
+  {'run':310000, 'lb':22, 'starttstamp':1550001260, 'dt':0.000, 'evts':_evts(34), 'mu':21.500, 'force_new':False},
+  {'run':310000, 'lb':23, 'starttstamp':1550001320, 'dt':0.000, 'evts':_evts(38), 'mu':22.500, 'force_new':False},
+  {'run':310000, 'lb':24, 'starttstamp':1550001380, 'dt':0.000, 'evts':_evts(41), 'mu':23.500, 'force_new':False},
+  {'run':310000, 'lb':25, 'starttstamp':1550001440, 'dt':0.000, 'evts':_evts(45), 'mu':24.500, 'force_new':False},
+  {'run':310000, 'lb':26, 'starttstamp':1550001500, 'dt':0.000, 'evts':_evts(47), 'mu':25.500, 'force_new':False},
+  {'run':310000, 'lb':27, 'starttstamp':1550001560, 'dt':0.000, 'evts':_evts(49), 'mu':26.500, 'force_new':False},
+  {'run':310000, 'lb':28, 'starttstamp':1550001620, 'dt':0.000, 'evts':_evts(51), 'mu':27.500, 'force_new':False},
+  {'run':310000, 'lb':29, 'starttstamp':1550001680, 'dt':0.000, 'evts':_evts(53), 'mu':28.500, 'force_new':False},
+  {'run':310000, 'lb':30, 'starttstamp':1550001740, 'dt':0.000, 'evts':_evts(55), 'mu':29.500, 'force_new':False},
+  {'run':310000, 'lb':31, 'starttstamp':1550001800, 'dt':0.000, 'evts':_evts(56), 'mu':30.500, 'force_new':False},
+  {'run':310000, 'lb':32, 'starttstamp':1550001860, 'dt':0.000, 'evts':_evts(57), 'mu':31.500, 'force_new':False},
+  {'run':310000, 'lb':33, 'starttstamp':1550001920, 'dt':0.000, 'evts':_evts(58), 'mu':32.500, 'force_new':False},
+  {'run':310000, 'lb':34, 'starttstamp':1550001980, 'dt':0.000, 'evts':_evts(59), 'mu':33.500, 'force_new':False},
+  {'run':310000, 'lb':35, 'starttstamp':1550002040, 'dt':0.000, 'evts':_evts(60), 'mu':34.500, 'force_new':False},
+  {'run':310000, 'lb':36, 'starttstamp':1550002100, 'dt':0.000, 'evts':_evts(60), 'mu':35.500, 'force_new':False},
+  {'run':310000, 'lb':37, 'starttstamp':1550002160, 'dt':0.000, 'evts':_evts(60), 'mu':36.500, 'force_new':False},
+  {'run':310000, 'lb':38, 'starttstamp':1550002220, 'dt':0.000, 'evts':_evts(60), 'mu':37.500, 'force_new':False},
+  {'run':310000, 'lb':39, 'starttstamp':1550002280, 'dt':0.000, 'evts':_evts(61), 'mu':38.500, 'force_new':False},
+  {'run':310000, 'lb':40, 'starttstamp':1550002340, 'dt':0.000, 'evts':_evts(61), 'mu':39.500, 'force_new':False},
+  {'run':310000, 'lb':41, 'starttstamp':1550002400, 'dt':0.000, 'evts':_evts(61), 'mu':40.500, 'force_new':False},
+  {'run':310000, 'lb':42, 'starttstamp':1550002460, 'dt':0.000, 'evts':_evts(61), 'mu':41.500, 'force_new':False},
+  {'run':310000, 'lb':43, 'starttstamp':1550002520, 'dt':0.000, 'evts':_evts(60), 'mu':42.500, 'force_new':False},
+  {'run':310000, 'lb':44, 'starttstamp':1550002580, 'dt':0.000, 'evts':_evts(59), 'mu':43.500, 'force_new':False},
+  {'run':310000, 'lb':45, 'starttstamp':1550002640, 'dt':0.000, 'evts':_evts(57), 'mu':44.500, 'force_new':False},
+  {'run':310000, 'lb':46, 'starttstamp':1550002700, 'dt':0.000, 'evts':_evts(55), 'mu':45.500, 'force_new':False},
+  {'run':310000, 'lb':47, 'starttstamp':1550002760, 'dt':0.000, 'evts':_evts(53), 'mu':46.500, 'force_new':False},
+  {'run':310000, 'lb':48, 'starttstamp':1550002820, 'dt':0.000, 'evts':_evts(50), 'mu':47.500, 'force_new':False},
+  {'run':310000, 'lb':49, 'starttstamp':1550002880, 'dt':0.000, 'evts':_evts(47), 'mu':48.500, 'force_new':False},
+  {'run':310000, 'lb':50, 'starttstamp':1550002940, 'dt':0.000, 'evts':_evts(43), 'mu':49.500, 'force_new':False},
+  {'run':310000, 'lb':51, 'starttstamp':1550003000, 'dt':0.000, 'evts':_evts(40), 'mu':50.500, 'force_new':False},
+  {'run':310000, 'lb':52, 'starttstamp':1550003060, 'dt':0.000, 'evts':_evts(36), 'mu':51.500, 'force_new':False},
+  {'run':310000, 'lb':53, 'starttstamp':1550003120, 'dt':0.000, 'evts':_evts(32), 'mu':52.500, 'force_new':False},
+  {'run':310000, 'lb':54, 'starttstamp':1550003180, 'dt':0.000, 'evts':_evts(29), 'mu':53.500, 'force_new':False},
+  {'run':310000, 'lb':55, 'starttstamp':1550003240, 'dt':0.000, 'evts':_evts(25), 'mu':54.500, 'force_new':False},
+  {'run':310000, 'lb':56, 'starttstamp':1550003300, 'dt':0.000, 'evts':_evts(22), 'mu':55.500, 'force_new':False},
+  {'run':310000, 'lb':57, 'starttstamp':1550003360, 'dt':0.000, 'evts':_evts(18), 'mu':56.500, 'force_new':False},
+  {'run':310000, 'lb':58, 'starttstamp':1550003420, 'dt':0.000, 'evts':_evts(16), 'mu':57.500, 'force_new':False},
+  {'run':310000, 'lb':59, 'starttstamp':1550003480, 'dt':0.000, 'evts':_evts(13), 'mu':58.500, 'force_new':False},
+  {'run':310000, 'lb':60, 'starttstamp':1550003540, 'dt':0.000, 'evts':_evts(11), 'mu':59.500, 'force_new':False},
+  {'run':310000, 'lb':61, 'starttstamp':1550003600, 'dt':0.000, 'evts':_evts(9), 'mu':60.500, 'force_new':False},
+  {'run':310000, 'lb':62, 'starttstamp':1550003660, 'dt':0.000, 'evts':_evts(7), 'mu':61.500, 'force_new':False},
+  {'run':310000, 'lb':63, 'starttstamp':1550003720, 'dt':0.000, 'evts':_evts(6), 'mu':62.500, 'force_new':False},
+  {'run':310000, 'lb':64, 'starttstamp':1550003780, 'dt':0.000, 'evts':_evts(5), 'mu':63.500, 'force_new':False},
+  {'run':310000, 'lb':65, 'starttstamp':1550003840, 'dt':0.000, 'evts':_evts(4), 'mu':64.500, 'force_new':False},
+  {'run':310000, 'lb':66, 'starttstamp':1550003900, 'dt':0.000, 'evts':_evts(3), 'mu':65.500, 'force_new':False},
+  {'run':310000, 'lb':67, 'starttstamp':1550003960, 'dt':0.000, 'evts':_evts(3), 'mu':66.500, 'force_new':False},
+  {'run':310000, 'lb':68, 'starttstamp':1550004020, 'dt':0.000, 'evts':_evts(2), 'mu':67.500, 'force_new':False},
+  {'run':310000, 'lb':69, 'starttstamp':1550004080, 'dt':0.000, 'evts':_evts(2), 'mu':68.500, 'force_new':False},
+  {'run':310000, 'lb':70, 'starttstamp':1550004140, 'dt':0.000, 'evts':_evts(2), 'mu':69.500, 'force_new':False},
+  {'run':310000, 'lb':71, 'starttstamp':1550004200, 'dt':0.000, 'evts':_evts(2), 'mu':70.500, 'force_new':False},
+  {'run':310000, 'lb':72, 'starttstamp':1550004260, 'dt':0.000, 'evts':_evts(1), 'mu':71.500, 'force_new':False},
+  {'run':310000, 'lb':73, 'starttstamp':1550004320, 'dt':0.000, 'evts':_evts(1), 'mu':72.500, 'force_new':False},
+  {'run':310000, 'lb':74, 'starttstamp':1550004380, 'dt':0.000, 'evts':_evts(1), 'mu':73.500, 'force_new':False},
+  {'run':310000, 'lb':75, 'starttstamp':1550004440, 'dt':0.000, 'evts':_evts(1), 'mu':74.500, 'force_new':False},
+  {'run':310000, 'lb':76, 'starttstamp':1550004500, 'dt':0.000, 'evts':_evts(1), 'mu':75.500, 'force_new':False},
+  {'run':310000, 'lb':77, 'starttstamp':1550004560, 'dt':0.000, 'evts':_evts(1), 'mu':76.500, 'force_new':False},
+  {'run':310000, 'lb':78, 'starttstamp':1550004620, 'dt':0.000, 'evts':_evts(1), 'mu':77.500, 'force_new':False},
+  {'run':310000, 'lb':79, 'starttstamp':1550004680, 'dt':0.000, 'evts':_evts(1), 'mu':78.500, 'force_new':False},
+  {'run':310000, 'lb':80, 'starttstamp':1550004740, 'dt':0.000, 'evts':_evts(1), 'mu':79.500, 'force_new':False},
+  {'run':310000, 'lb':81, 'starttstamp':1550004800, 'dt':0.000, 'evts':_evts(1), 'mu':80.500, 'force_new':False},
+  {'run':310000, 'lb':82, 'starttstamp':1550004860, 'dt':0.000, 'evts':_evts(1), 'mu':81.500, 'force_new':False},
+  {'run':310000, 'lb':83, 'starttstamp':1550004920, 'dt':0.000, 'evts':_evts(1), 'mu':82.500, 'force_new':False},
+  {'run':310000, 'lb':84, 'starttstamp':1550004980, 'dt':0.000, 'evts':_evts(1), 'mu':83.500, 'force_new':False},
+  {'run':310000, 'lb':85, 'starttstamp':1550005040, 'dt':0.000, 'evts':_evts(1), 'mu':84.500, 'force_new':False},
+  {'run':310000, 'lb':86, 'starttstamp':1550005100, 'dt':0.000, 'evts':_evts(1), 'mu':85.500, 'force_new':False},
+  {'run':310000, 'lb':87, 'starttstamp':1550005160, 'dt':0.000, 'evts':_evts(1), 'mu':86.500, 'force_new':False},
+  {'run':310000, 'lb':88, 'starttstamp':1550005220, 'dt':0.000, 'evts':_evts(1), 'mu':87.500, 'force_new':False},
+  {'run':310000, 'lb':89, 'starttstamp':1550005280, 'dt':0.000, 'evts':_evts(1), 'mu':88.500, 'force_new':False},
+  {'run':310000, 'lb':90, 'starttstamp':1550005340, 'dt':0.000, 'evts':_evts(1), 'mu':89.500, 'force_new':False},
+  {'run':310000, 'lb':91, 'starttstamp':1550005400, 'dt':0.000, 'evts':_evts(1), 'mu':90.500, 'force_new':False},
+  {'run':310000, 'lb':92, 'starttstamp':1550005460, 'dt':0.000, 'evts':_evts(1), 'mu':91.500, 'force_new':False},
+  {'run':310000, 'lb':93, 'starttstamp':1550005520, 'dt':0.000, 'evts':_evts(1), 'mu':92.500, 'force_new':False},
+  {'run':310000, 'lb':94, 'starttstamp':1550005580, 'dt':0.000, 'evts':_evts(1), 'mu':93.500, 'force_new':False},
+  {'run':310000, 'lb':95, 'starttstamp':1550005640, 'dt':0.000, 'evts':_evts(1), 'mu':94.500, 'force_new':False},
+  {'run':310000, 'lb':96, 'starttstamp':1550005700, 'dt':0.000, 'evts':_evts(1), 'mu':95.500, 'force_new':False},
+  {'run':310000, 'lb':97, 'starttstamp':1550005760, 'dt':0.000, 'evts':_evts(1), 'mu':96.500, 'force_new':False},
+  {'run':310000, 'lb':98, 'starttstamp':1550005820, 'dt':0.000, 'evts':_evts(1), 'mu':97.500, 'force_new':False},
+  {'run':310000, 'lb':99, 'starttstamp':1550005880, 'dt':0.000, 'evts':_evts(1), 'mu':98.500, 'force_new':False},
+  {'run':310000, 'lb':100, 'starttstamp':1550005940, 'dt':0.000, 'evts':_evts(1), 'mu':99.500, 'force_new':False},
+#--> end hiding
+]
+
+include('RunDependentSimData/configCommon.py')
+
+#cleanup python memory
+if not "RunDMC_testing_configuration" in dir():
+    del JobMaker
diff --git a/TestBeam/TBRec/src/CBNTAA_BeamInstrumentation.cxx b/TestBeam/TBRec/src/CBNTAA_BeamInstrumentation.cxx
old mode 100755
new mode 100644
index 9442df20423cdd21b1a2a4095c1616e988637ed1..32f0013dbdd2cd89cff0f76e6bf1bd6950ed4764
--- a/TestBeam/TBRec/src/CBNTAA_BeamInstrumentation.cxx
+++ b/TestBeam/TBRec/src/CBNTAA_BeamInstrumentation.cxx
@@ -2,10 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNTAA_BeamInstrumentation.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/INTupleSvc.h"
+#include "CBNTAA_BeamInstrumentation.h"
 
 #include "TBEvent/TBScintillatorCont.h"
 #include "TBEvent/TBBPCCont.h"
@@ -75,10 +72,6 @@ StatusCode CBNTAA_BeamInstrumentation::CBNT_initialize()
 {
   ATH_MSG_DEBUG ( "in initialize()" );
 
-  IToolSvc* toolSvc = nullptr;
-  ATH_CHECK( service( "ToolSvc",toolSvc  ) );
-
-
   const unsigned nScint=m_scint_names.size();  
   addBranch("Beam_sNames",m_scint_ntnames);
   for (unsigned i=0;i<nScint;i++) {
diff --git a/TestBeam/TBRec/TBRec/CBNTAA_BeamInstrumentation.h b/TestBeam/TBRec/src/CBNTAA_BeamInstrumentation.h
old mode 100755
new mode 100644
similarity index 93%
rename from TestBeam/TBRec/TBRec/CBNTAA_BeamInstrumentation.h
rename to TestBeam/TBRec/src/CBNTAA_BeamInstrumentation.h
index e426c5401ae52edabd116987415c3d701bee11ca..bc824fbb86c30274f0677b4f79c782769bb8e42a
--- a/TestBeam/TBRec/TBRec/CBNTAA_BeamInstrumentation.h
+++ b/TestBeam/TBRec/src/CBNTAA_BeamInstrumentation.h
@@ -2,11 +2,9 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNT_BEAM_H
-#define CBNT_BEAM_H
+#ifndef TBREC_CBNTAA_BEAMINSTRUMENTATION_H
+#define TBREC_CBNTAA_BEAMINSTRUMENTATION_H
 
-#include "GaudiKernel/NTuple.h"
-#include "GaudiKernel/SmartDataPtr.h"
 #include "CBNT_TBRecBase.h"
 #include <fstream>
 #include <string>
diff --git a/TestBeam/TBRec/src/CBNTAA_TBADCRaw.cxx b/TestBeam/TBRec/src/CBNTAA_TBADCRaw.cxx
old mode 100755
new mode 100644
index 9f222c13379d5b1dc0631d3208666bdefebc9a3d..736f13869e746fc555cd126910c5b40781043f12
--- a/TestBeam/TBRec/src/CBNTAA_TBADCRaw.cxx
+++ b/TestBeam/TBRec/src/CBNTAA_TBADCRaw.cxx
@@ -2,11 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNTAA_TBADCRaw.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/INTupleSvc.h"
-#include "GaudiKernel/MsgStream.h"
+#include "CBNTAA_TBADCRaw.h"
 
 #include "TBEvent/TBADCRawCont.h"
 #include <vector>
@@ -27,9 +23,6 @@ StatusCode CBNTAA_TBADCRaw::CBNT_initialize()
 {
   ATH_MSG_DEBUG ( "in initialize()" );
 
-  IToolSvc* toolSvc = nullptr;
-  ATH_CHECK( service( "ToolSvc",toolSvc  ) );
-
   addBranch("TBADCRaw",m_adc);
   return StatusCode::SUCCESS; 
   
diff --git a/TestBeam/TBRec/TBRec/CBNTAA_TBADCRaw.h b/TestBeam/TBRec/src/CBNTAA_TBADCRaw.h
old mode 100755
new mode 100644
similarity index 94%
rename from TestBeam/TBRec/TBRec/CBNTAA_TBADCRaw.h
rename to TestBeam/TBRec/src/CBNTAA_TBADCRaw.h
index 171d39abb1369df319abd835ce626ec9276bb6f1..836c4b8942472ca5ea5e560e629732597d8c820b
--- a/TestBeam/TBRec/TBRec/CBNTAA_TBADCRaw.h
+++ b/TestBeam/TBRec/src/CBNTAA_TBADCRaw.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNT_TBADCRAW_H
-#define CBNT_TBADCRAW_H
+#ifndef TBREC_CBNTAA_TBADCRAW_H
+#define TBREC_CBNTAA_TBADCRAW_H
 
 #include "GaudiKernel/NTuple.h"
 #include "GaudiKernel/SmartDataPtr.h"
diff --git a/TestBeam/TBRec/src/CBNTAA_TBInfo.cxx b/TestBeam/TBRec/src/CBNTAA_TBInfo.cxx
old mode 100755
new mode 100644
index 918e78476c12c1be3022349559bce0277066797e..413f1fbc2333191d60c8e0d64415f1a3be10cdd7
--- a/TestBeam/TBRec/src/CBNTAA_TBInfo.cxx
+++ b/TestBeam/TBRec/src/CBNTAA_TBInfo.cxx
@@ -2,15 +2,12 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNTAA_TBInfo.h"
+#include "CBNTAA_TBInfo.h"
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/ISvcLocator.h"
 #include "GaudiKernel/IToolSvc.h"
 
 #include "StoreGate/StoreGate.h"
 #include "StoreGate/StoreGateSvc.h"
-#include "StoreGate/DataHandle.h"
 
 #include "CaloGeoHelpers/CaloPhiRange.h"
 #include "TBCaloGeometry/TBCaloCoordinate.h"
diff --git a/TestBeam/TBRec/TBRec/CBNTAA_TBInfo.h b/TestBeam/TBRec/src/CBNTAA_TBInfo.h
old mode 100755
new mode 100644
similarity index 96%
rename from TestBeam/TBRec/TBRec/CBNTAA_TBInfo.h
rename to TestBeam/TBRec/src/CBNTAA_TBInfo.h
index b282f8d0853a315be0681726653685e2dc47fba3..3e06d50bcca46f11baae317fa533c7cc90bc5391
--- a/TestBeam/TBRec/TBRec/CBNTAA_TBInfo.h
+++ b/TestBeam/TBRec/src/CBNTAA_TBInfo.h
@@ -2,11 +2,10 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNTAA_TBInfo_H
-#define CBNTAA_TBInfo_H
+#ifndef TBREC_CBNTAA_TBINFO_H
+#define TBREC_CBNTAA_TBINFO_H
 
 #include "CBNT_TBRecBase.h"
-#include "GaudiKernel/NTuple.h"
 #include <vector>
 
 class TBCaloCoordinate;
diff --git a/TestBeam/TBRec/src/CBNTAA_TBScint.cxx b/TestBeam/TBRec/src/CBNTAA_TBScint.cxx
index bd7cf6c85603946fd5acab3bf45d30dd09d5695d..cbdec9f486709b68eeaa7af1aa425622298b47de 100644
--- a/TestBeam/TBRec/src/CBNTAA_TBScint.cxx
+++ b/TestBeam/TBRec/src/CBNTAA_TBScint.cxx
@@ -2,10 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNTAA_TBScint.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/INTupleSvc.h"
+#include "CBNTAA_TBScint.h"
 
 #include "LArG4TBSimEvent/LArG4H6FrontHitCollection.h"
 #include <fstream>
diff --git a/TestBeam/TBRec/TBRec/CBNTAA_TBScint.h b/TestBeam/TBRec/src/CBNTAA_TBScint.h
similarity index 92%
rename from TestBeam/TBRec/TBRec/CBNTAA_TBScint.h
rename to TestBeam/TBRec/src/CBNTAA_TBScint.h
index 7dac53375b140d8e33aa075fce558d5b778bc0c1..730afc207fe73b44404d870f15e42ebe7687c28f 100644
--- a/TestBeam/TBRec/TBRec/CBNTAA_TBScint.h
+++ b/TestBeam/TBRec/src/CBNTAA_TBScint.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNTAA_TBSCINT_H
-#define CBNTAA_TBSCINT_H
+#ifndef TBREC_CBNTAA_TBSCINT_H
+#define TBREC_CBNTAA_TBSCINT_H
 
 #include "GaudiKernel/NTuple.h"
 #include "GaudiKernel/SmartDataPtr.h"
diff --git a/TestBeam/TBRec/src/CBNTAA_TBTDCRaw.cxx b/TestBeam/TBRec/src/CBNTAA_TBTDCRaw.cxx
old mode 100755
new mode 100644
index 2bd9a1c9722a0d83f67ddc992b7e4a85e65a5952..c61cd95d7bdfce7111c75d54e5f90557279840df
--- a/TestBeam/TBRec/src/CBNTAA_TBTDCRaw.cxx
+++ b/TestBeam/TBRec/src/CBNTAA_TBTDCRaw.cxx
@@ -2,11 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNTAA_TBTDCRaw.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/INTupleSvc.h"
-
+#include "CBNTAA_TBTDCRaw.h"
 #include "TBEvent/TBTDCRawCont.h"
 #include <vector>
 
@@ -30,9 +26,6 @@ StatusCode CBNTAA_TBTDCRaw::CBNT_initialize()
 {
   ATH_MSG_DEBUG ( "in initialize()" );
 
-  IToolSvc* toolSvc = nullptr;
-  ATH_CHECK( service( "ToolSvc",toolSvc  ) );
-
   addBranch("TBTDCRaw",m_tdc);
   addBranch("TBTDCRaw_underThreshold",m_underThreshold);
 
diff --git a/TestBeam/TBRec/TBRec/CBNTAA_TBTDCRaw.h b/TestBeam/TBRec/src/CBNTAA_TBTDCRaw.h
old mode 100755
new mode 100644
similarity index 94%
rename from TestBeam/TBRec/TBRec/CBNTAA_TBTDCRaw.h
rename to TestBeam/TBRec/src/CBNTAA_TBTDCRaw.h
index 4f688a1c33804886cec2188009fdd7cf4e5588c9..9e7d267d68a2b0b488d26dae2fdbc48143c004ed
--- a/TestBeam/TBRec/TBRec/CBNTAA_TBTDCRaw.h
+++ b/TestBeam/TBRec/src/CBNTAA_TBTDCRaw.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNT_TBTDCRAW_H
-#define CBNT_TBTDCRAW_H
+#ifndef TBREC_CBNTAA_TBTDCRAW_H
+#define TBREC_CBNTAA_TBTDCRAW_H
 
 #include "GaudiKernel/NTuple.h"
 #include "GaudiKernel/SmartDataPtr.h"
diff --git a/TestBeam/TBRec/src/CBNTAA_TBTPValidation.cxx b/TestBeam/TBRec/src/CBNTAA_TBTPValidation.cxx
old mode 100755
new mode 100644
index ccc5cc79375f073ae2de2282de6e2171a2301d4b..2300e08b95f4f84f878281820e73eb554041c0b9
--- a/TestBeam/TBRec/src/CBNTAA_TBTPValidation.cxx
+++ b/TestBeam/TBRec/src/CBNTAA_TBTPValidation.cxx
@@ -2,10 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNTAA_TBTPValidation.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/INTupleSvc.h"
+#include "CBNTAA_TBTPValidation.h"
 
 #include "TBEvent/TBADCRawCont.h"
 #include "TBEvent/TBTDCRawCont.h"
@@ -231,9 +228,6 @@ StatusCode CBNTAA_TBTPValidation::CBNT_initialize()
 {
   ATH_MSG_DEBUG ( "in initialize()" );
 
-  IToolSvc* toolSvc = nullptr;
-  ATH_CHECK( service( "ToolSvc",toolSvc  ) );
-
   // TBADCRawCont
   addBranch("TBTPValid_TBADCRaw_m_adc",m_adc);
   addBranch("TBTPValid_TBADCRaw_tbDetectorName",m_tbDetectorName_TBADCRawCont);
diff --git a/TestBeam/TBRec/TBRec/CBNTAA_TBTPValidation.h b/TestBeam/TBRec/src/CBNTAA_TBTPValidation.h
old mode 100755
new mode 100644
similarity index 98%
rename from TestBeam/TBRec/TBRec/CBNTAA_TBTPValidation.h
rename to TestBeam/TBRec/src/CBNTAA_TBTPValidation.h
index 30386d7a3ce83497efab51c3800aeaa33eead862..0b620e90f3a92f2ccb033300994161bff1565478
--- a/TestBeam/TBRec/TBRec/CBNTAA_TBTPValidation.h
+++ b/TestBeam/TBRec/src/CBNTAA_TBTPValidation.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNTAA_TBTPVALIDATION_H
-#define CBNTAA_TBTPVALIDATION_H
+#ifndef TBREC_CBNTAA_TBTPVALIDATION_H
+#define TBREC_CBNTAA_TBTPVALIDATION_H
 
 #include "GaudiKernel/NTuple.h"
 #include "GaudiKernel/SmartDataPtr.h"
diff --git a/TestBeam/TBRec/src/CBNTAA_TBTrack.cxx b/TestBeam/TBRec/src/CBNTAA_TBTrack.cxx
index a4a623f1a64341df7dde4b89852f044ae421351b..c799eafd540bac97a53edaa397a13b890427e97d 100644
--- a/TestBeam/TBRec/src/CBNTAA_TBTrack.cxx
+++ b/TestBeam/TBRec/src/CBNTAA_TBTrack.cxx
@@ -2,16 +2,13 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNTAA_TBTrack.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/INTupleSvc.h"
+#include "CBNTAA_TBTrack.h"
 
 #include "TBEvent/TBEventInfo.h"
 #include "TBEvent/TBTrack.h"
+#include "PathResolver/PathResolver.h"
 #include <fstream>
 #include <string>
-#include "PathResolver/PathResolver.h"
 
 
 CBNTAA_TBTrack::CBNTAA_TBTrack(const std::string & name, ISvcLocator * pSvcLocator) :
@@ -33,9 +30,6 @@ CBNTAA_TBTrack::CBNTAA_TBTrack(const std::string & name, ISvcLocator * pSvcLocat
 StatusCode CBNTAA_TBTrack::CBNT_initialize() {
   ATH_MSG_DEBUG ( "in initialize()"  );
   
-  IToolSvc* toolSvc = nullptr;
-  ATH_CHECK( service("ToolSvc",toolSvc) );
-
   // Add beam track parameters
   addBranch("bm_x",      m_beam_coor_x,     "bm_x/f");
   addBranch("bm_y",      m_beam_coor_y,     "bm_y/f");
diff --git a/TestBeam/TBRec/TBRec/CBNTAA_TBTrack.h b/TestBeam/TBRec/src/CBNTAA_TBTrack.h
similarity index 95%
rename from TestBeam/TBRec/TBRec/CBNTAA_TBTrack.h
rename to TestBeam/TBRec/src/CBNTAA_TBTrack.h
index 42c0b919b73e9ea65b8a66f8f81bff3eefb51e76..6d46a2593869affb014b7e768a6ab6d67af1ea29 100644
--- a/TestBeam/TBRec/TBRec/CBNTAA_TBTrack.h
+++ b/TestBeam/TBRec/src/CBNTAA_TBTrack.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNTAA_TBTRACK_H
-#define CBNTAA_TBTRACK_H
+#ifndef TBREC_CBNTAA_TBTRACK_H
+#define TBREC_CBNTAA_TBTRACK_H
 
 #include "GaudiKernel/NTuple.h"
 #include "GaudiKernel/SmartDataPtr.h"
diff --git a/TestBeam/TBRec/src/CBNT_BeamInstrumentation.cxx b/TestBeam/TBRec/src/CBNT_BeamInstrumentation.cxx
old mode 100755
new mode 100644
index eeb0646b0ca3be728846d90394fdea682cd799f1..81313b272680391ec80647c5a8997e2d3c483056
--- a/TestBeam/TBRec/src/CBNT_BeamInstrumentation.cxx
+++ b/TestBeam/TBRec/src/CBNT_BeamInstrumentation.cxx
@@ -2,10 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNT_BeamInstrumentation.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/INTupleSvc.h"
+#include "CBNT_BeamInstrumentation.h"
 
 #include "TBEvent/TBScintillatorCont.h"
 #include "TBEvent/TBBPCCont.h"
diff --git a/TestBeam/TBRec/TBRec/CBNT_BeamInstrumentation.h b/TestBeam/TBRec/src/CBNT_BeamInstrumentation.h
old mode 100755
new mode 100644
similarity index 95%
rename from TestBeam/TBRec/TBRec/CBNT_BeamInstrumentation.h
rename to TestBeam/TBRec/src/CBNT_BeamInstrumentation.h
index 59ab41d2d181f72a2905c277d00f4ca4483030d1..c44a17a89069a5c75689164217ab616a0450167a
--- a/TestBeam/TBRec/TBRec/CBNT_BeamInstrumentation.h
+++ b/TestBeam/TBRec/src/CBNT_BeamInstrumentation.h
@@ -2,10 +2,9 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNT_BEAM_H
-#define CBNT_BEAM_H
+#ifndef TBREC_CBNT_BEAM_H
+#define TBREC_CBNT_BEAM_H
 
-#include "GaudiKernel/SmartDataPtr.h"
 #include "CBNT_TBRecBase.h"
 #include <fstream>
 #include <string>
diff --git a/TestBeam/TBRec/src/CBNT_CaloH6.cxx b/TestBeam/TBRec/src/CBNT_CaloH6.cxx
old mode 100755
new mode 100644
index 704b211d090ab6f7af9e66cfc7ffd7e6546dcfb9..1429de8253d324f421c85706df03d294253ca3e6
--- a/TestBeam/TBRec/src/CBNT_CaloH6.cxx
+++ b/TestBeam/TBRec/src/CBNT_CaloH6.cxx
@@ -12,15 +12,7 @@
 //#                                                   #
 //#####################################################
 
-#include "TBRec/CBNT_CaloH6.h"
-
-#include "GaudiKernel/SmartDataPtr.h"
-#include "GaudiKernel/INTupleSvc.h"
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/ListItem.h"
-
-#include "StoreGate/StoreGate.h"
-#include "StoreGate/StoreGateSvc.h" 
+#include "CBNT_CaloH6.h"
 
 #include "CaloIdentifier/CaloCell_ID.h"
 #include "CaloEvent/CaloCellContainer.h"
@@ -33,7 +25,6 @@
 
 #include "Identifier/Identifier.h"
 
-#include <list>
 
 CBNT_CaloH6::CBNT_CaloH6(const std::string & name, ISvcLocator * pSvcLocator) :
   CBNT_TBRecBase(name, pSvcLocator),
diff --git a/TestBeam/TBRec/TBRec/CBNT_CaloH6.h b/TestBeam/TBRec/src/CBNT_CaloH6.h
old mode 100755
new mode 100644
similarity index 96%
rename from TestBeam/TBRec/TBRec/CBNT_CaloH6.h
rename to TestBeam/TBRec/src/CBNT_CaloH6.h
index 633ddfcfc0fd330db3ab3a6767c46f3ec2368c0b..3bb767da063c80d3b46014ae1f29629bf3a73ee0
--- a/TestBeam/TBRec/TBRec/CBNT_CaloH6.h
+++ b/TestBeam/TBRec/src/CBNT_CaloH6.h
@@ -12,10 +12,9 @@
 //#                                                    #
 //######################################################
 
-#ifndef CBNT_CALOH6_H
-#define CBNT_CALOH6_H
+#ifndef TBREC_CBNT_CALOH6_H
+#define TBREC_CBNT_CALOH6_H
 
-#include "GaudiKernel/NTuple.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "CBNT_TBRecBase.h"
 
diff --git a/TestBeam/TBRec/src/CBNT_TBRecBase.cxx b/TestBeam/TBRec/src/CBNT_TBRecBase.cxx
index b2fd2501c5baf937c4e0b06cc33b4e7c64c68bd2..a78ea073161913655c40412b3f9bc255ca9f196a 100644
--- a/TestBeam/TBRec/src/CBNT_TBRecBase.cxx
+++ b/TestBeam/TBRec/src/CBNT_TBRecBase.cxx
@@ -2,10 +2,11 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNT_TBRecBase.h"
+#include "CBNT_TBRecBase.h"
 
 #include "LArIdentifier/LArOnlineID.h"
 #include "CaloIdentifier/CaloIdManager.h"
+#include "GaudiKernel/ITHistSvc.h"
 
 
 CBNT_TBRecBase::CBNT_TBRecBase(const std::string& name, ISvcLocator* pSvcLocator): 
diff --git a/TestBeam/TBRec/TBRec/CBNT_TBRecBase.h b/TestBeam/TBRec/src/CBNT_TBRecBase.h
similarity index 94%
rename from TestBeam/TBRec/TBRec/CBNT_TBRecBase.h
rename to TestBeam/TBRec/src/CBNT_TBRecBase.h
index e8c2e2fcfc9e6e743ed196e7a650d9384c6d09e9..4cf7ba0c65a490d460610a65f7380139b0337d1c 100644
--- a/TestBeam/TBRec/TBRec/CBNT_TBRecBase.h
+++ b/TestBeam/TBRec/src/CBNT_TBRecBase.h
@@ -3,12 +3,10 @@
 */
 
 //Dear emacs, this is -*-c++-*-
-#ifndef CBNT_TBRECBASE_H
-#define CBNT_TBRECBASE_H
+#ifndef TBREC_CBNT_TBRECBASE_H
+#define TBREC_CBNT_TBRECBASE_H
 
 #include "AthenaBaseComps/AthAlgorithm.h"
-//#include "GaudiKernel/NTuple.h"
-#include "GaudiKernel/ITHistSvc.h"
 #include "GaudiKernel/ToolHandle.h"
 
 #include "LArCabling/LArCablingService.h"
diff --git a/TestBeam/TBRec/src/CBNT_Timing.cxx b/TestBeam/TBRec/src/CBNT_Timing.cxx
old mode 100755
new mode 100644
index 52480759fefd47002e54bc38272bbfffe411b5ff..9136e9c703eb2f9fb1e0cfc19cd1f720e3272add
--- a/TestBeam/TBRec/src/CBNT_Timing.cxx
+++ b/TestBeam/TBRec/src/CBNT_Timing.cxx
@@ -2,11 +2,9 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNT_Timing.h"
+#include "CBNT_Timing.h"
 
 #include "CLHEP/Units/SystemOfUnits.h"
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/NTuple.h"
 
 #include "CaloEvent/CaloCell.h"
 #include "CaloEvent/CaloCellContainer.h"
diff --git a/TestBeam/TBRec/TBRec/CBNT_Timing.h b/TestBeam/TBRec/src/CBNT_Timing.h
old mode 100755
new mode 100644
similarity index 96%
rename from TestBeam/TBRec/TBRec/CBNT_Timing.h
rename to TestBeam/TBRec/src/CBNT_Timing.h
index 1cae276e107e89f92c3d97527fcc3da9e8e87c55..5ac2a4d31b2e218b7ce73c574ac83fcbba24cfbb
--- a/TestBeam/TBRec/TBRec/CBNT_Timing.h
+++ b/TestBeam/TBRec/src/CBNT_Timing.h
@@ -2,10 +2,9 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNT_TIMING_H
-#define CBNT_TIMING_H
+#ifndef TBREC_CBNT_TIMING_H
+#define TBREC_CBNT_TIMING_H
 
-#include "GaudiKernel/NTuple.h"
 #include "GaudiKernel/ToolHandle.h"
 #include "CBNT_TBRecBase.h"
 #include "CaloGeoHelpers/CaloSampling.h"
diff --git a/TestBeam/TBRec/src/CBNT_UpstreamMat.cxx b/TestBeam/TBRec/src/CBNT_UpstreamMat.cxx
old mode 100755
new mode 100644
index 12249dd71fc54085a4bbe2ff0dcf82ca1db19782..d0539d0fee9a03799a43ec74850b3e4ff081575f
--- a/TestBeam/TBRec/src/CBNT_UpstreamMat.cxx
+++ b/TestBeam/TBRec/src/CBNT_UpstreamMat.cxx
@@ -2,9 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/CBNT_UpstreamMat.h"
+#include "CBNT_UpstreamMat.h"
 
-#include "StoreGate/StoreGate.h"
 #include "StoreGate/StoreGateSvc.h"
 
 #include "GaudiKernel/MsgStream.h"
diff --git a/TestBeam/TBRec/TBRec/CBNT_UpstreamMat.h b/TestBeam/TBRec/src/CBNT_UpstreamMat.h
old mode 100755
new mode 100644
similarity index 89%
rename from TestBeam/TBRec/TBRec/CBNT_UpstreamMat.h
rename to TestBeam/TBRec/src/CBNT_UpstreamMat.h
index b1d901ce41bc29494771af2da99ae4bf156ac9de..74eba111a8ff4ca94685d9ec73394842fa1993f2
--- a/TestBeam/TBRec/TBRec/CBNT_UpstreamMat.h
+++ b/TestBeam/TBRec/src/CBNT_UpstreamMat.h
@@ -2,11 +2,10 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CBNT_UPSTREAMMAT_H
-#define CBNT_UPSTREAMMAT_H
+#ifndef TBREC_CBNT_UPSTREAMMAT_H
+#define TBREC_CBNT_UPSTREAMMAT_H
 
 #include "CBNT_TBRecBase.h"
-#include "GaudiKernel/NTuple.h"
 #include <string>
 
 class StoreGateSvc;
diff --git a/TestBeam/TBRec/src/ImpactInCalo.cxx b/TestBeam/TBRec/src/ImpactInCalo.cxx
old mode 100755
new mode 100644
index bab95c27e9239e2a281f60081207dc039d50dd0c..03019859034d309f15c1b2b8bf228788de59f8ad
--- a/TestBeam/TBRec/src/ImpactInCalo.cxx
+++ b/TestBeam/TBRec/src/ImpactInCalo.cxx
@@ -3,7 +3,7 @@
 */
 
 
-#include "TBRec/ImpactInCalo.h"
+#include "ImpactInCalo.h"
 #include <iostream>
 
 
diff --git a/TestBeam/TBRec/TBRec/ImpactInCalo.h b/TestBeam/TBRec/src/ImpactInCalo.h
old mode 100755
new mode 100644
similarity index 98%
rename from TestBeam/TBRec/TBRec/ImpactInCalo.h
rename to TestBeam/TBRec/src/ImpactInCalo.h
index 8a31996edf30736581835f2ed1badff04cb5773a..785ceb29310ba71047f021dd7a9558bb95d55c15
--- a/TestBeam/TBRec/TBRec/ImpactInCalo.h
+++ b/TestBeam/TBRec/src/ImpactInCalo.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef IMPACTINCALO_H
-#define IMPACTINCALO_H
+#ifndef TBREC_IMPACTINCALO_H
+#define TBREC_IMPACTINCALO_H
 /*************************************************************************
 	Package:
 	File: ImpactInCalo.h
diff --git a/TestBeam/TBRec/src/ImpactInCaloCollection.cxx b/TestBeam/TBRec/src/ImpactInCaloCollection.cxx
old mode 100755
new mode 100644
index 0f576382677747524c063618d6ee10b54c17837a..89fd871012496f7437717088f309811737ae312c
--- a/TestBeam/TBRec/src/ImpactInCaloCollection.cxx
+++ b/TestBeam/TBRec/src/ImpactInCaloCollection.cxx
@@ -3,8 +3,8 @@
 */
 
 
-#include "TBRec/ImpactInCaloCollection.h"
-#include "TBRec/ImpactInCalo.h"
+#include "ImpactInCaloCollection.h"
+#include "ImpactInCalo.h"
 
 void ImpactInCaloCollection::print() const{
 	ImpactInCaloCollection::const_iterator iter;
diff --git a/TestBeam/TBRec/TBRec/ImpactInCaloCollection.h b/TestBeam/TBRec/src/ImpactInCaloCollection.h
old mode 100755
new mode 100644
similarity index 80%
rename from TestBeam/TBRec/TBRec/ImpactInCaloCollection.h
rename to TestBeam/TBRec/src/ImpactInCaloCollection.h
index db872843c3c4cead73e7abe5ea7229da6483388e..5f4317b4396b011b37c18e330f7e07cb1395b9de
--- a/TestBeam/TBRec/TBRec/ImpactInCaloCollection.h
+++ b/TestBeam/TBRec/src/ImpactInCaloCollection.h
@@ -2,12 +2,12 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef IMPACTINCALOCOLLECTION_H
-#define IMPACTINCALOCOLLECTION_H
+#ifndef TBREC_IMPACTINCALOCOLLECTION_H
+#define TBREC_IMPACTINCALOCOLLECTION_H
 
 #include "AthContainers/DataVector.h"
 #include "AthenaKernel/CLASS_DEF.h"
-#include "TBRec/ImpactInCalo.h"
+#include "ImpactInCalo.h"
 
 //class ImpactInCalo;
 class ImpactInCaloCollection : public DataVector<ImpactInCalo> {
diff --git a/TestBeam/TBRec/src/TBAlgoSequencer.cxx b/TestBeam/TBRec/src/TBAlgoSequencer.cxx
old mode 100755
new mode 100644
index e446f1ea79aea8bd56ce220c69e7e9240022537d..f10becf0d506dece97304217cb0f12bff0fa2c8e
--- a/TestBeam/TBRec/src/TBAlgoSequencer.cxx
+++ b/TestBeam/TBRec/src/TBAlgoSequencer.cxx
@@ -3,14 +3,9 @@
 */
 
 
-#include "StoreGate/StoreGateSvc.h"
-
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Property.h"
+#include "TBAlgoSequencer.h"
 #include "GaudiKernel/ListItem.h"
 
-#include "TBRec/TBAlgoSequencer.h"
-
 #include <string>
 #include <map>
 #include <iostream>
diff --git a/TestBeam/TBRec/TBRec/TBAlgoSequencer.h b/TestBeam/TBRec/src/TBAlgoSequencer.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBAlgoSequencer.h
rename to TestBeam/TBRec/src/TBAlgoSequencer.h
diff --git a/TestBeam/TBRec/src/TBBPCRec.cxx b/TestBeam/TBRec/src/TBBPCRec.cxx
old mode 100755
new mode 100644
index 0afe4bd65ffb6f08db4cda9f4f87686cd61a123f..2d56d0015f4d972ddd1e4f6318f7cfb426341622
--- a/TestBeam/TBRec/src/TBBPCRec.cxx
+++ b/TestBeam/TBRec/src/TBBPCRec.cxx
@@ -3,9 +3,7 @@
 */
 
 
-#include "StoreGate/StoreGateSvc.h"
-
-#include "GaudiKernel/Property.h"
+#include "TBBPCRec.h"
 
 #include "PathResolver/PathResolver.h"
 
@@ -16,8 +14,6 @@
 #include <fstream>
 #include <math.h>
 
-#include "TBRec/TBBPCRec.h"
-
 // static const AlgFactory<TBBPCRec> s_factory;
 // const IAlgFactory& TBBPCRecFactory = s_factory;
 
diff --git a/TestBeam/TBRec/TBRec/TBBPCRec.h b/TestBeam/TBRec/src/TBBPCRec.h
old mode 100755
new mode 100644
similarity index 97%
rename from TestBeam/TBRec/TBRec/TBBPCRec.h
rename to TestBeam/TBRec/src/TBBPCRec.h
index 917f1ab88b7965ab366b2f52d69e9f3c89357442..76d12acd6643cbc1da61356b5411ade78ec951a5
--- a/TestBeam/TBRec/TBRec/TBBPCRec.h
+++ b/TestBeam/TBRec/src/TBBPCRec.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBREC_TBBPCREC
-#define TBREC_TBBPCREC
+#ifndef TBREC_TBBPCREC_H
+#define TBREC_TBBPCREC_H
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 // This algorithm controls event flow and reconstruction and monitoring      //
diff --git a/TestBeam/TBRec/src/TBBeamQuality.cxx b/TestBeam/TBRec/src/TBBeamQuality.cxx
old mode 100755
new mode 100644
index 8ae8c9ee36ad62dd462ccf60d6b45122134ee246..e3f49973828e8b4e1d0c67e4386e42bba71d7fd1
--- a/TestBeam/TBRec/src/TBBeamQuality.cxx
+++ b/TestBeam/TBRec/src/TBBeamQuality.cxx
@@ -13,18 +13,10 @@
 //#####################################################
                                  
 
-#include "GaudiKernel/Algorithm.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Property.h"
-#include "GaudiKernel/ListItem.h"
-
-#include "StoreGate/StoreGate.h"
-#include "StoreGate/StoreGateSvc.h"
+#include "TBBeamQuality.h"
+#include "TBBeamQualityTool.h"
 #include "TBEvent/TBEventInfo.h"
 
-#include "TBRec/TBBeamQualityTool.h"
-#include "TBRec/TBBeamQuality.h"
-
 
 TBBeamQuality::TBBeamQuality(const std::string& name,  
 			     ISvcLocator* pService)
diff --git a/TestBeam/TBRec/TBRec/TBBeamQuality.h b/TestBeam/TBRec/src/TBBeamQuality.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBBeamQuality.h
rename to TestBeam/TBRec/src/TBBeamQuality.h
diff --git a/TestBeam/TBRec/src/TBBeamQualityDoubleHitsTool.cxx b/TestBeam/TBRec/src/TBBeamQualityDoubleHitsTool.cxx
old mode 100755
new mode 100644
index ab71de0924b84534fe72a6c879847552b990b315..ece802cfa872e24a683c0aa5cb4c7106b839a661
--- a/TestBeam/TBRec/src/TBBeamQualityDoubleHitsTool.cxx
+++ b/TestBeam/TBRec/src/TBBeamQualityDoubleHitsTool.cxx
@@ -13,16 +13,10 @@
 //#####################################################
 
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-#include "GaudiKernel/AlgTool.h"
-
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/Property.h"
+#include "TBBeamQualityDoubleHitsTool.h"
 
 #include "TBEvent/TBScintillatorCont.h"
 #include "TBEvent/TBScintillator.h"
-#include "TBRec/TBBeamQualityDoubleHitsTool.h"
 
 #include <string>
 #include <ios>
diff --git a/TestBeam/TBRec/TBRec/TBBeamQualityDoubleHitsTool.h b/TestBeam/TBRec/src/TBBeamQualityDoubleHitsTool.h
old mode 100755
new mode 100644
similarity index 91%
rename from TestBeam/TBRec/TBRec/TBBeamQualityDoubleHitsTool.h
rename to TestBeam/TBRec/src/TBBeamQualityDoubleHitsTool.h
index e8edf152d21e26cd67a0eb87b46f493f59367fbb..b5a4492356a1276bca97801fb848c9f96f8dd3a0
--- a/TestBeam/TBRec/TBRec/TBBeamQualityDoubleHitsTool.h
+++ b/TestBeam/TBRec/src/TBBeamQualityDoubleHitsTool.h
@@ -12,10 +12,10 @@
 //# Last Modified: Feb 7/2005                         #
 //#####################################################
 
-#ifndef TBBEAMQUALITYDOUBLEHITSTOOL_H
-#define TBBEAMQUALITYDOUBLEHITSTOOL_H
+#ifndef TBREC_TBBEAMQUALITYDOUBLEHITSTOOL_H
+#define TBREC_TBBEAMQUALITYDOUBLEHITSTOOL_H
 
-#include "TBRec/TBBeamQualityTool.h"
+#include "TBBeamQualityTool.h"
 
 #include <string>
 #include <vector>
diff --git a/TestBeam/TBRec/src/TBBeamQualityEMFractionTool.cxx b/TestBeam/TBRec/src/TBBeamQualityEMFractionTool.cxx
old mode 100755
new mode 100644
index bbca3303ce25008adf6cfa4356adede13ab166c5..88d4fb110275e7bffd8aabaac356b5de0cfbf104
--- a/TestBeam/TBRec/src/TBBeamQualityEMFractionTool.cxx
+++ b/TestBeam/TBRec/src/TBBeamQualityEMFractionTool.cxx
@@ -12,23 +12,12 @@
 //#                                                   #
 //#####################################################
 
-#include "TBRec/TBBeamQualityEMFractionTool.h"
-
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-#include "GaudiKernel/AlgTool.h"
-
-#include "GaudiKernel/ListItem.h"
-#include "GaudiKernel/Property.h"
-
-#include "StoreGate/StoreGate.h"
-#include "StoreGate/StoreGateSvc.h" 
+#include "TBBeamQualityEMFractionTool.h"
 
 #include "CaloIdentifier/CaloCell_ID.h"
 #include "CaloEvent/CaloCellContainer.h"
 
 #include "Identifier/Identifier.h"
-#include <list>
 
 TBBeamQualityEMFractionTool::TBBeamQualityEMFractionTool(const std::string& name,
 							 const std::string& type,
diff --git a/TestBeam/TBRec/TBRec/TBBeamQualityEMFractionTool.h b/TestBeam/TBRec/src/TBBeamQualityEMFractionTool.h
old mode 100755
new mode 100644
similarity index 97%
rename from TestBeam/TBRec/TBRec/TBBeamQualityEMFractionTool.h
rename to TestBeam/TBRec/src/TBBeamQualityEMFractionTool.h
index a6cd7cddf2df004062071df4ae66cd76e0860df3..27c67b0191e661cf880c2e8c41f5500128831f31
--- a/TestBeam/TBRec/TBRec/TBBeamQualityEMFractionTool.h
+++ b/TestBeam/TBRec/src/TBBeamQualityEMFractionTool.h
@@ -15,7 +15,7 @@
 #ifndef TBBEAMQUALITYEMFRACTIONTOOL_H
 #define TBBEAMQUALITYEMFRACTIONTOOL_H
 
-#include "TBRec/TBBeamQualityTool.h"
+#include "TBBeamQualityTool.h"
 
 //#include "LArDetDescr/LArDetDescrManager.h"
 
diff --git a/TestBeam/TBRec/src/TBBeamQualityMC.cxx b/TestBeam/TBRec/src/TBBeamQualityMC.cxx
index 52479b4c2508ccf2c49d26125afe4c5769f160a1..e6aa098e864fbdbe408cced90b3a32bb3c778af2 100644
--- a/TestBeam/TBRec/src/TBBeamQualityMC.cxx
+++ b/TestBeam/TBRec/src/TBBeamQualityMC.cxx
@@ -2,17 +2,16 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/TBBeamQualityMC.h"
-#include "StoreGate/StoreGateSvc.h"
+#include "TBBeamQualityMC.h"
 
 #include "TBEvent/TBEventInfo.h"
 #include "TBEvent/TBTrack.h"
 #include "LArG4TBSimEvent/LArG4H6FrontHitCollection.h"
 #include "CaloEvent/CaloClusterContainer.h"
+#include "PathResolver/PathResolver.h"
 #include <fstream>
 #include <string>
 #include <math.h>
-#include "PathResolver/PathResolver.h"
 
 
 TBBeamQualityMC::TBBeamQualityMC(const std::string & name, ISvcLocator * pSvcLocator) :
diff --git a/TestBeam/TBRec/TBRec/TBBeamQualityMC.h b/TestBeam/TBRec/src/TBBeamQualityMC.h
old mode 100755
new mode 100644
similarity index 92%
rename from TestBeam/TBRec/TBRec/TBBeamQualityMC.h
rename to TestBeam/TBRec/src/TBBeamQualityMC.h
index 1caea4f57a7e0701a927f1c79a3797061f79c3fb..3b5ff9278c61f5c445c1bf6846beff28c54f4fba
--- a/TestBeam/TBRec/TBRec/TBBeamQualityMC.h
+++ b/TestBeam/TBRec/src/TBBeamQualityMC.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBBEAMQUALITYMC_H
-#define TBBEAMQUALITYMC_H
+#ifndef TBREC_TBBEAMQUALITYMC_H
+#define TBREC_TBBEAMQUALITYMC_H
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include <vector>
diff --git a/TestBeam/TBRec/src/TBBeamQualityMuonToolH6.cxx b/TestBeam/TBRec/src/TBBeamQualityMuonToolH6.cxx
old mode 100755
new mode 100644
index cabca65d2cdeaacda5b9b5c5e3625eb2673e61ff..1516c5b3f62fdc58ab7cabccfb3a596741bcc1c7
--- a/TestBeam/TBRec/src/TBBeamQualityMuonToolH6.cxx
+++ b/TestBeam/TBRec/src/TBBeamQualityMuonToolH6.cxx
@@ -12,17 +12,11 @@
 //# Last Modofied: Nov 18/2004                        #
 //##################################################### 
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-#include "GaudiKernel/AlgTool.h"
-
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/Property.h"
+#include "TBBeamQualityMuonToolH6.h"
 
 // TRIGGERS
 #include "TBEvent/TBTriggerPatternUnit.h"
 
-#include "TBRec/TBBeamQualityMuonToolH6.h"
 
 #include <string>
 #include <ios>
diff --git a/TestBeam/TBRec/TBRec/TBBeamQualityMuonToolH6.h b/TestBeam/TBRec/src/TBBeamQualityMuonToolH6.h
old mode 100755
new mode 100644
similarity index 91%
rename from TestBeam/TBRec/TBRec/TBBeamQualityMuonToolH6.h
rename to TestBeam/TBRec/src/TBBeamQualityMuonToolH6.h
index 577a6c80238292a2beaf424b9d5eb82142c06f19..a85f39c2b49f86c3da97dae62919316af801d939
--- a/TestBeam/TBRec/TBRec/TBBeamQualityMuonToolH6.h
+++ b/TestBeam/TBRec/src/TBBeamQualityMuonToolH6.h
@@ -12,10 +12,10 @@
 //# Last Modified: Nov 18/2004                        #
 //##################################################### 
 
-#ifndef TBBEAMQUALITYMUONTOOLH6_H
-#define TBBEAMQUALITYMUONTOOLH6_H
+#ifndef TBREC_TBBEAMQUALITYMUONTOOLH6_H
+#define TBREC_TBBEAMQUALITYMUONTOOLH6_H
 
-#include "TBRec/TBBeamQualityTool.h"
+#include "TBBeamQualityTool.h"
 
 #include <string>
 #include <vector>
diff --git a/TestBeam/TBRec/src/TBBeamQualityTool.cxx b/TestBeam/TBRec/src/TBBeamQualityTool.cxx
old mode 100755
new mode 100644
index dceb40f4e1e92cdcdc1e7f156997a044c05d1fc4..d05f6e2af113f9ea779dca43bc8b2d5973c529d2
--- a/TestBeam/TBRec/src/TBBeamQualityTool.cxx
+++ b/TestBeam/TBRec/src/TBBeamQualityTool.cxx
@@ -13,12 +13,7 @@
 //#####################################################
 
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
-#include "TBRec/TBBeamQualityTool.h"
+#include "TBBeamQualityTool.h"
 
 #include <string>
 #include <vector>
diff --git a/TestBeam/TBRec/TBRec/TBBeamQualityTool.h b/TestBeam/TBRec/src/TBBeamQualityTool.h
old mode 100755
new mode 100644
similarity index 94%
rename from TestBeam/TBRec/TBRec/TBBeamQualityTool.h
rename to TestBeam/TBRec/src/TBBeamQualityTool.h
index 6e57d18d2642f6004bcdd7b2e7bbf133ac748f5c..05c856c7a83731d13667bc8471df96bacd813296
--- a/TestBeam/TBRec/TBRec/TBBeamQualityTool.h
+++ b/TestBeam/TBRec/src/TBBeamQualityTool.h
@@ -12,8 +12,8 @@
 //# Last Modified: Nov 18/2004                        #
 //#####################################################
 
-#ifndef TBBEAMQUALITYTOOL_H
-#define TBBEAMQUALITYTOOL_H
+#ifndef TBREC_TBBEAMQUALITYTOOL_H
+#define TBREC_TBBEAMQUALITYTOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
 
diff --git a/TestBeam/TBRec/src/TBBeamQualityTrackingTool.cxx b/TestBeam/TBRec/src/TBBeamQualityTrackingTool.cxx
old mode 100755
new mode 100644
index d060cebbacd8432c0dc2469e9b7b49e80b4250df..2bd0968d5824120f5506dd9acbceb246dd95654f
--- a/TestBeam/TBRec/src/TBBeamQualityTrackingTool.cxx
+++ b/TestBeam/TBRec/src/TBBeamQualityTrackingTool.cxx
@@ -12,17 +12,9 @@
 //# Last Modified: Jun 30/2005                        #
 //##################################################### 
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-#include "GaudiKernel/AlgTool.h"
-
-#include "StoreGate/StoreGateSvc.h"
-#include "GaudiKernel/Property.h"
-
+#include "TBBeamQualityTrackingTool.h"
 #include "TBEvent/TBTrack.h"
 
-#include "TBRec/TBBeamQualityTrackingTool.h"
-
 #include <string>
 #include <ios>
 #include <algorithm>
diff --git a/TestBeam/TBRec/TBRec/TBBeamQualityTrackingTool.h b/TestBeam/TBRec/src/TBBeamQualityTrackingTool.h
old mode 100755
new mode 100644
similarity index 91%
rename from TestBeam/TBRec/TBRec/TBBeamQualityTrackingTool.h
rename to TestBeam/TBRec/src/TBBeamQualityTrackingTool.h
index 0f2e80a93fa73605a9f0874c35493326626fbdd0..e3db4890befba13b3d95aff1400a0695b03409e6
--- a/TestBeam/TBRec/TBRec/TBBeamQualityTrackingTool.h
+++ b/TestBeam/TBRec/src/TBBeamQualityTrackingTool.h
@@ -12,10 +12,10 @@
 //# Last Modified: Jun 30/2005                        #
 //##################################################### 
 
-#ifndef TBBEAMQUALITYTRACKINGTOOL_H
-#define TBBEAMQUALITYTRACKINGTOOL_H
+#ifndef TBREC_TBBEAMQUALITYTRACKINGTOOL_H
+#define TBREC_TBBEAMQUALITYTRACKINGTOOL_H
 
-#include "TBRec/TBBeamQualityTool.h"
+#include "TBBeamQualityTool.h"
 
 #include <string>
 #include <vector>
diff --git a/TestBeam/TBRec/src/TBCellContainerFillerTool.cxx b/TestBeam/TBRec/src/TBCellContainerFillerTool.cxx
index 2686f895e1c9d091a70988f5f6add8cd4c588022..46cbfa08febfadc0ac4f7e71947cedd85d9c8a5d 100644
--- a/TestBeam/TBRec/src/TBCellContainerFillerTool.cxx
+++ b/TestBeam/TBRec/src/TBCellContainerFillerTool.cxx
@@ -2,14 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/TBCellContainerFillerTool.h"
-
-#include "GaudiKernel/Service.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Property.h"
-#include "GaudiKernel/ListItem.h"
-
-#include "StoreGate/StoreGateSvc.h"
+#include "TBCellContainerFillerTool.h"
 
 #include "CaloEvent/CaloCellContainer.h"
 #include "CaloIdentifier/CaloCell_ID.h"
diff --git a/TestBeam/TBRec/TBRec/TBCellContainerFillerTool.h b/TestBeam/TBRec/src/TBCellContainerFillerTool.h
similarity index 92%
rename from TestBeam/TBRec/TBRec/TBCellContainerFillerTool.h
rename to TestBeam/TBRec/src/TBCellContainerFillerTool.h
index 1089b5c2c70bc44d1509958beedfabdbb74370e2..a9d19e210851ce3f263360b351568e81f417e95c 100644
--- a/TestBeam/TBRec/TBRec/TBCellContainerFillerTool.h
+++ b/TestBeam/TBRec/src/TBCellContainerFillerTool.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CALOREC_TBCellContainerFillerTool_H
-#define CALOREC_TBCellContainerFillerTool_H
+#ifndef TBREC_TBCELLCONTAINERFILLERTOOL_H
+#define TBREC_TBCELLCONTAINERFILLERTOOL_H
 
 #include "AthenaBaseComps/AthAlgTool.h"
 //#include "CaloUtils/ICaloCellMakerTool.h"
diff --git a/TestBeam/TBRec/src/TBCellNoiseCorrection.cxx b/TestBeam/TBRec/src/TBCellNoiseCorrection.cxx
index 4d1ad9683f4342e8526b6b2ae54b7a18ab7c0b72..b0732dda36d26d89977183cbc8a9f58d632d4afd 100644
--- a/TestBeam/TBRec/src/TBCellNoiseCorrection.cxx
+++ b/TestBeam/TBRec/src/TBCellNoiseCorrection.cxx
@@ -2,7 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/TBCellNoiseCorrection.h"
+#include "TBCellNoiseCorrection.h"
 
 #include "CaloDetDescr/CaloDetDescrElement.h"
 #include "CaloEvent/CaloCell.h"
@@ -10,8 +10,6 @@
 
 #include "PathResolver/PathResolver.h"
 
-#include "GaudiKernel/IIncidentSvc.h"
-#include "GaudiKernel/Incident.h"
 #include "CLHEP/Random/RandFlat.h"
 
 #include <TFile.h>
diff --git a/TestBeam/TBRec/TBRec/TBCellNoiseCorrection.h b/TestBeam/TBRec/src/TBCellNoiseCorrection.h
similarity index 95%
rename from TestBeam/TBRec/TBRec/TBCellNoiseCorrection.h
rename to TestBeam/TBRec/src/TBCellNoiseCorrection.h
index 8c650eb427815c0aa1dcea76a01ac4002615f157..b5c053e1e9b4c07d0e452fdf19c998088b407c46 100644
--- a/TestBeam/TBRec/TBRec/TBCellNoiseCorrection.h
+++ b/TestBeam/TBRec/src/TBCellNoiseCorrection.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBREC_TBCellNoiseCorrection_H
-#define TBREC_TBCellNoiseCorrection_H
+#ifndef TBREC_TBCELLNOISECORRECTION_H
+#define TBREC_TBCELLNOISECORRECTION_H
 /********************************************************************
 NAME:     TBCellNoiseCorrection.cxx
 PACKAGE:  offline/TestBeam/TBRec
diff --git a/TestBeam/TBRec/src/TBClusterMaker.cxx b/TestBeam/TBRec/src/TBClusterMaker.cxx
index 61927bfa32c4dbec685d3b621468726542cbbf84..68150d4599047bdf67ad4a8d277c115afc840ee0 100644
--- a/TestBeam/TBRec/src/TBClusterMaker.cxx
+++ b/TestBeam/TBRec/src/TBClusterMaker.cxx
@@ -2,14 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-// Gaudi
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/ListItem.h"
+#include "TBClusterMaker.h"
 
-#include "StoreGate/StoreGateSvc.h" 
 #include "CLHEP/Units/SystemOfUnits.h"
 #include "CaloDetDescr/CaloDetDescrManager.h"
 #include "CaloGeoHelpers/CaloPhiRange.h"
@@ -24,8 +18,7 @@
 #include "xAODCaloEvent/CaloClusterKineHelper.h"
 #include "CaloGeoHelpers/proxim.h"
 #include "CaloUtils/CaloClusterStoreHelper.h"
-
-#include "TBRec/TBClusterMaker.h"
+#include "GaudiKernel/ListItem.h"
 
 //#############################################################################
 
diff --git a/TestBeam/TBRec/TBRec/TBClusterMaker.h b/TestBeam/TBRec/src/TBClusterMaker.h
similarity index 98%
rename from TestBeam/TBRec/TBRec/TBClusterMaker.h
rename to TestBeam/TBRec/src/TBClusterMaker.h
index 24d42760d1fef0d45a8b9221946ac2a8d9edde86..324934822271451a7cbd1cb15bb3e2e7c790f0b4 100644
--- a/TestBeam/TBRec/TBRec/TBClusterMaker.h
+++ b/TestBeam/TBRec/src/TBClusterMaker.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBCLUSTERMAKER_H
-#define TBCLUSTERMAKER_H
+#ifndef TBREC_TBCLUSTERMAKER_H
+#define TBREC_TBCLUSTERMAKER_H
 /**
  * @class TBClusterMaker
  * @version \$Id: TBClusterMaker.h,v 1.2 2009-04-17 09:51:30 pavol Exp $
diff --git a/TestBeam/TBRec/src/TBDMContainerSplitter.cxx b/TestBeam/TBRec/src/TBDMContainerSplitter.cxx
index 488c26f6b073ad2f9a36f5ab58d37d707748fc43..efc9fe09836ec203d217340f35f200bca6d9df35 100644
--- a/TestBeam/TBRec/src/TBDMContainerSplitter.cxx
+++ b/TestBeam/TBRec/src/TBDMContainerSplitter.cxx
@@ -2,17 +2,11 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/ListItem.h"
+#include "TBDMContainerSplitter.h"
 
-#include "StoreGate/StoreGateSvc.h"
 #include "CaloDmDetDescr/CaloDmDescrManager.h"
 #include "CaloSimEvent/CaloCalibrationHitContainer.h"
 
-#include "TBRec/TBDMContainerSplitter.h"
-
 TBDMContainerSplitter::TBDMContainerSplitter(const std::string& name, 
 				   ISvcLocator* pSvcLocator) : 
   AthAlgorithm(name, pSvcLocator),
diff --git a/TestBeam/TBRec/TBRec/TBDMContainerSplitter.h b/TestBeam/TBRec/src/TBDMContainerSplitter.h
similarity index 92%
rename from TestBeam/TBRec/TBRec/TBDMContainerSplitter.h
rename to TestBeam/TBRec/src/TBDMContainerSplitter.h
index 43ebdf455f19c788b01ab78fe120c49fd6f15f70..eaaa0562ba0ae7b90447de80cb3525eaa0d273d6 100644
--- a/TestBeam/TBRec/TBRec/TBDMContainerSplitter.h
+++ b/TestBeam/TBRec/src/TBDMContainerSplitter.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBDMCONTAINERSPLITTER
-#define TBDMCONTAINERSPLITTER
+#ifndef TBREC_TBDMCONTAINERSPLITTER_H
+#define TBREC_TBDMCONTAINERSPLITTER_H
 
 // 
 // class TBDMContainerSplitter 
diff --git a/TestBeam/TBRec/src/TBECLArRawChannelBuilder.cxx b/TestBeam/TBRec/src/TBECLArRawChannelBuilder.cxx
index 0d1048456770b7ca3b8da50e756a9fdf762eee47..c5a1cf2a50b668aadd7238dbd4ca3caa6fdea2ef 100644
--- a/TestBeam/TBRec/src/TBECLArRawChannelBuilder.cxx
+++ b/TestBeam/TBRec/src/TBECLArRawChannelBuilder.cxx
@@ -2,8 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/TBECLArRawChannelBuilder.h"
-#include "StoreGate/StoreGateSvc.h"
+#include "TBECLArRawChannelBuilder.h"
 #include "CaloDetDescr/CaloDetDescrManager.h"
 #include "CaloIdentifier/CaloCell_ID.h"
 
diff --git a/TestBeam/TBRec/TBRec/TBECLArRawChannelBuilder.h b/TestBeam/TBRec/src/TBECLArRawChannelBuilder.h
similarity index 97%
rename from TestBeam/TBRec/TBRec/TBECLArRawChannelBuilder.h
rename to TestBeam/TBRec/src/TBECLArRawChannelBuilder.h
index b2313b2ceffc855b299429209d7318ae7bc736b2..348042fe0d2238bf9e94734ddce5fe2f70ad731c 100644
--- a/TestBeam/TBRec/TBRec/TBECLArRawChannelBuilder.h
+++ b/TestBeam/TBRec/src/TBECLArRawChannelBuilder.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBECLARRAWCHANNELBUILDER
-#define TBECLARRAWCHANNELBUILDER
+#ifndef TBREC_TBECLARRAWCHANNELBUILDER_H
+#define TBREC_TBECLARRAWCHANNELBUILDER_H
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
diff --git a/TestBeam/TBRec/src/TBEMECCellEtaCorrection.cxx b/TestBeam/TBRec/src/TBEMECCellEtaCorrection.cxx
index ffe7d59341207526f455b2d5bb029de752cd154f..eaeab8c89ae012bee1dfdf4475d0fab886c2ae87 100644
--- a/TestBeam/TBRec/src/TBEMECCellEtaCorrection.cxx
+++ b/TestBeam/TBRec/src/TBEMECCellEtaCorrection.cxx
@@ -2,7 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/TBEMECCellEtaCorrection.h"
+#include "TBEMECCellEtaCorrection.h"
 
 // INCLUDE LAr header files:
 
diff --git a/TestBeam/TBRec/TBRec/TBEMECCellEtaCorrection.h b/TestBeam/TBRec/src/TBEMECCellEtaCorrection.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBEMECCellEtaCorrection.h
rename to TestBeam/TBRec/src/TBEMECCellEtaCorrection.h
diff --git a/TestBeam/TBRec/src/TBEMECXTalkToyModel.cxx b/TestBeam/TBRec/src/TBEMECXTalkToyModel.cxx
old mode 100755
new mode 100644
index 7c06f6e901ed89a6922cca579781c337263771e7..59ea1221a4bd2bcadb877058ecb7149b10eba95a
--- a/TestBeam/TBRec/src/TBEMECXTalkToyModel.cxx
+++ b/TestBeam/TBRec/src/TBEMECXTalkToyModel.cxx
@@ -16,10 +16,7 @@ PURPOSE:  A simple toy model to simulate longitudinal cross-talk
 
 ********************************************************************/
 
-#include "TBRec/TBEMECXTalkToyModel.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
+#include "TBEMECXTalkToyModel.h"
 
 #include "CaloEvent/CaloCellContainer.h"
 #include "CaloEvent/CaloCell.h"
diff --git a/TestBeam/TBRec/TBRec/TBEMECXTalkToyModel.h b/TestBeam/TBRec/src/TBEMECXTalkToyModel.h
old mode 100755
new mode 100644
similarity index 94%
rename from TestBeam/TBRec/TBRec/TBEMECXTalkToyModel.h
rename to TestBeam/TBRec/src/TBEMECXTalkToyModel.h
index f4713b0031bb7cf83ff8c5a1bd4eb8d3b9de7bb4..18252de837f647f162b108ac69c82736a4682e36
--- a/TestBeam/TBRec/TBRec/TBEMECXTalkToyModel.h
+++ b/TestBeam/TBRec/src/TBEMECXTalkToyModel.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef CALOREC_TBEMECXTALKTOYMODEL_H
-#define CALOREC_TBEMECXTALKTOYMODEL_H
+#ifndef TBREC_TBEMECXTALKTOYMODEL_H
+#define TBREC_TBEMECXTALKTOYMODEL_H
 
 class StoreGateSvc; 
 #include "AthenaBaseComps/AthAlgTool.h"
diff --git a/TestBeam/TBRec/src/TBEventInfoStreamerTool.cxx b/TestBeam/TBRec/src/TBEventInfoStreamerTool.cxx
old mode 100755
new mode 100644
index 86c38d2b4abbb15bb608ba9e300609761a51b329..7476e2799fe80f9a50103a22f60a2bbd302dd42c
--- a/TestBeam/TBRec/src/TBEventInfoStreamerTool.cxx
+++ b/TestBeam/TBRec/src/TBEventInfoStreamerTool.cxx
@@ -2,12 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
-#include "TBRec/TBEventInfoStreamerTool.h"
+#include "TBEventInfoStreamerTool.h"
 #include "TBEvent/TBEventInfo.h"
 
 #include <string>
diff --git a/TestBeam/TBRec/TBRec/TBEventInfoStreamerTool.h b/TestBeam/TBRec/src/TBEventInfoStreamerTool.h
old mode 100755
new mode 100644
similarity index 94%
rename from TestBeam/TBRec/TBRec/TBEventInfoStreamerTool.h
rename to TestBeam/TBRec/src/TBEventInfoStreamerTool.h
index 0c5c8c820b932b2f4279ad04f0b8b440ee414fab..22a5590edd1a3ecd15a24ac7d3657024440997e1
--- a/TestBeam/TBRec/TBRec/TBEventInfoStreamerTool.h
+++ b/TestBeam/TBRec/src/TBEventInfoStreamerTool.h
@@ -5,7 +5,7 @@
 #ifndef TBREC_TBEVENTINFOSTREAMERTOOL_H
 #define TBREC_TBEVENTINFOSTREAMERTOOL_H
 
-#include "TBRec/TBEventStreamerTool.h"
+#include "TBEventStreamerTool.h"
 
 #include <string>
 #include <vector>
diff --git a/TestBeam/TBRec/src/TBEventStreamer.cxx b/TestBeam/TBRec/src/TBEventStreamer.cxx
old mode 100755
new mode 100644
index 5ae7572bb38679481e30a92cc34abbac43c0357d..e2c7c22986e2504a322d1e4eceb90bf667ac1851
--- a/TestBeam/TBRec/src/TBEventStreamer.cxx
+++ b/TestBeam/TBRec/src/TBEventStreamer.cxx
@@ -3,14 +3,8 @@
 */
 
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Property.h"
-#include "GaudiKernel/ListItem.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
-#include "TBRec/TBEventStreamerTool.h"
-#include "TBRec/TBEventStreamer.h"
+#include "TBEventStreamerTool.h"
+#include "TBEventStreamer.h"
 
 TBEventStreamer::TBEventStreamer(const std::string& name,
 				 ISvcLocator* pService)
diff --git a/TestBeam/TBRec/TBRec/TBEventStreamer.h b/TestBeam/TBRec/src/TBEventStreamer.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBEventStreamer.h
rename to TestBeam/TBRec/src/TBEventStreamer.h
diff --git a/TestBeam/TBRec/src/TBEventStreamerTool.cxx b/TestBeam/TBRec/src/TBEventStreamerTool.cxx
old mode 100755
new mode 100644
index c41587ca26943f304085dbe8f5898185682cd4d0..026db78245461d049173cc50d1197f041853e300
--- a/TestBeam/TBRec/src/TBEventStreamerTool.cxx
+++ b/TestBeam/TBRec/src/TBEventStreamerTool.cxx
@@ -2,13 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
-#include "TBRec/TBEventStreamerTool.h"
-
+#include "TBEventStreamerTool.h"
 #include <string>
 
 TBEventStreamerTool::TBEventStreamerTool(const std::string& name,
diff --git a/TestBeam/TBRec/TBRec/TBEventStreamerTool.h b/TestBeam/TBRec/src/TBEventStreamerTool.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBEventStreamerTool.h
rename to TestBeam/TBRec/src/TBEventStreamerTool.h
diff --git a/TestBeam/TBRec/src/TBExtrapolTrackToCaloTool.cxx b/TestBeam/TBRec/src/TBExtrapolTrackToCaloTool.cxx
old mode 100755
new mode 100644
index bec48ed2bbe19b4ddfda2dbc7530e96e5412f2a4..b8085890e1afe019634a0515f2fa4f3e627088d1
--- a/TestBeam/TBRec/src/TBExtrapolTrackToCaloTool.cxx
+++ b/TestBeam/TBRec/src/TBExtrapolTrackToCaloTool.cxx
@@ -8,10 +8,7 @@
 //
 //****************************************************************************
 
-#include "TBRec/TBExtrapolTrackToCaloTool.h"
-
-#include "GaudiKernel/Property.h"
-
+#include "TBExtrapolTrackToCaloTool.h"
 #include <vector>
 
 // Stuff needed for the extrapolation :
diff --git a/TestBeam/TBRec/TBRec/TBExtrapolTrackToCaloTool.h b/TestBeam/TBRec/src/TBExtrapolTrackToCaloTool.h
old mode 100755
new mode 100644
similarity index 99%
rename from TestBeam/TBRec/TBRec/TBExtrapolTrackToCaloTool.h
rename to TestBeam/TBRec/src/TBExtrapolTrackToCaloTool.h
index 7e09da8c5c382b2be9f37a95a96c767b89c44256..6da14524e866a8a6a7a45904153ab4934591d140
--- a/TestBeam/TBRec/TBRec/TBExtrapolTrackToCaloTool.h
+++ b/TestBeam/TBRec/src/TBExtrapolTrackToCaloTool.h
@@ -10,8 +10,8 @@
 //
 // ***************************************************************************
 
-#ifndef TRACKTOCALO_TBEXTRAPOLTRACKTOCALO_H
-#define TRACKTOCALO_TBEXTRAPOLTRACKTOCALO_H
+#ifndef TBREC_TBEXTRAPOLTRACKTOCALO_H
+#define TBREC_TBEXTRAPOLTRACKTOCALO_H
 
 //#include "ITrackToCalo/IExtrapolTrackToCaloTool.h"
 //#include "RecoToolInterfaces/IExtrapolateToCaloTool.h"
diff --git a/TestBeam/TBRec/src/TBLArRawChannelBuilder.cxx b/TestBeam/TBRec/src/TBLArRawChannelBuilder.cxx
old mode 100755
new mode 100644
index 4379693e1d1c8ffdf087f3bdcf7480eb0fee0a3a..647517b037bee55e57ba5bd33df32077bfe1acba
--- a/TestBeam/TBRec/src/TBLArRawChannelBuilder.cxx
+++ b/TestBeam/TBRec/src/TBLArRawChannelBuilder.cxx
@@ -2,8 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/TBLArRawChannelBuilder.h"
-#include "StoreGate/StoreGateSvc.h"
+#include "TBLArRawChannelBuilder.h"
 #include "LArIdentifier/LArOnlineID.h"
 
 #include <cmath>
diff --git a/TestBeam/TBRec/TBRec/TBLArRawChannelBuilder.h b/TestBeam/TBRec/src/TBLArRawChannelBuilder.h
old mode 100755
new mode 100644
similarity index 95%
rename from TestBeam/TBRec/TBRec/TBLArRawChannelBuilder.h
rename to TestBeam/TBRec/src/TBLArRawChannelBuilder.h
index be2e8cdc8e97221254e8a0d217f77d4ef607a55c..57ef0dbd68e7fdfabb3258d51ef7036b11ac89c0
--- a/TestBeam/TBRec/TBRec/TBLArRawChannelBuilder.h
+++ b/TestBeam/TBRec/src/TBLArRawChannelBuilder.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBLARRAWCHANNELBUILDER
-#define TBLARRAWCHANNELBUILDER
+#ifndef TBREC_TBLARRAWCHANNELBUILDER_H
+#define TBREC_TBLARRAWCHANNELBUILDER_H
 
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/IToolSvc.h"
diff --git a/TestBeam/TBRec/src/TBMWPCRec.cxx b/TestBeam/TBRec/src/TBMWPCRec.cxx
old mode 100755
new mode 100644
index 2303357e1030ba9394488a5fc70afd87fbdf6115..105c2df2b596b7aa299db2c215f47740cd46eb2d
--- a/TestBeam/TBRec/src/TBMWPCRec.cxx
+++ b/TestBeam/TBRec/src/TBMWPCRec.cxx
@@ -3,17 +3,7 @@
 */
 
 
-#include "StoreGate/StoreGateSvc.h"
-
-#include "GaudiKernel/Property.h"
-
-#include "TBRec/TBMWPCRec.h"
-
-// static const AlgFactory<TBMWPCRec> s_factory;
-// const IAlgFactory& TBMWPCRecFactory = s_factory;
-
-
-
+#include "TBMWPCRec.h"
 
 
 TBMWPCRec::TBMWPCRec(const std::string& name,
diff --git a/TestBeam/TBRec/TBRec/TBMWPCRec.h b/TestBeam/TBRec/src/TBMWPCRec.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBMWPCRec.h
rename to TestBeam/TBRec/src/TBMWPCRec.h
diff --git a/TestBeam/TBRec/src/TBNoiseWrite.cxx b/TestBeam/TBRec/src/TBNoiseWrite.cxx
index 266dadd64434298f3ae10db39bc07191cf5926b8..decaa9becc089d1737b5a5aad6bab4a9555a7cf3 100644
--- a/TestBeam/TBRec/src/TBNoiseWrite.cxx
+++ b/TestBeam/TBRec/src/TBNoiseWrite.cxx
@@ -8,24 +8,18 @@
 // author: A.Minaenko
 // date:  08/05/2008
 
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/ListItem.h"
+#include "TBNoiseWrite.h"
 
 #include "PathResolver/PathResolver.h"
 
 #include <TFile.h>
 #include <TTree.h>
 
-#include "StoreGate/StoreGate.h" 
 #include "CaloEvent/CaloCell.h"
 #include "CaloEvent/CaloCellContainer.h"
 
 #include "TBEvent/TBEventInfo.h"
 
-#include "TBRec/TBNoiseWrite.h"
-
 #include <fstream>
 
 TBNoiseWrite::TBNoiseWrite(const std::string& name, 
diff --git a/TestBeam/TBRec/TBRec/TBNoiseWrite.h b/TestBeam/TBRec/src/TBNoiseWrite.h
similarity index 97%
rename from TestBeam/TBRec/TBRec/TBNoiseWrite.h
rename to TestBeam/TBRec/src/TBNoiseWrite.h
index fbb90e524827ee4837592e640ac650baf965561e..417deb40991074019073b4a30f5b2cc649afae99 100644
--- a/TestBeam/TBRec/TBRec/TBNoiseWrite.h
+++ b/TestBeam/TBRec/src/TBNoiseWrite.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBNOISEWRITE
-#define TBNOISEWRITE
+#ifndef TBREC_TBNOISEWRITE_H
+#define TBREC_TBNOISEWRITE_H
 
 // 
 // class TBNoiseWrite 
diff --git a/TestBeam/TBRec/src/TBPartIDCherenkovMuTag.cxx b/TestBeam/TBRec/src/TBPartIDCherenkovMuTag.cxx
old mode 100755
new mode 100644
index ec5200ddf9d4446323af7e70e91a5f4cc2db21a0..2f66c7aad7a7067b22eb7a6497486402a1840cf3
--- a/TestBeam/TBRec/src/TBPartIDCherenkovMuTag.cxx
+++ b/TestBeam/TBRec/src/TBPartIDCherenkovMuTag.cxx
@@ -2,7 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "TBRec/TBPartIDCherenkovMuTag.h"
+#include "TBPartIDCherenkovMuTag.h"
 #include "TBEvent/TBIdentifiedParticle.h"
 #include "TBEvent/TBScintillatorCont.h"
 
diff --git a/TestBeam/TBRec/TBRec/TBPartIDCherenkovMuTag.h b/TestBeam/TBRec/src/TBPartIDCherenkovMuTag.h
old mode 100755
new mode 100644
similarity index 85%
rename from TestBeam/TBRec/TBRec/TBPartIDCherenkovMuTag.h
rename to TestBeam/TBRec/src/TBPartIDCherenkovMuTag.h
index fe7ced1a6f3c1617b4ae11a6ca55547ec0370096..af136d4cca5cae6dbfcb11b68b29251b4631f311
--- a/TestBeam/TBRec/TBRec/TBPartIDCherenkovMuTag.h
+++ b/TestBeam/TBRec/src/TBPartIDCherenkovMuTag.h
@@ -4,11 +4,10 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBPARTICLEIDCHERENKOVMUTAG
-#define TBPARTICLEIDCHERENKOVMUTAG
+#ifndef TBREC_TBPARTICLEIDCHERENKOVMUTAG_H
+#define TBREC_TBPARTICLEIDCHERENKOVMUTAG_H
 
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include "StoreGate/StoreGateSvc.h"
 
 class TBPartIDCherenkovMuTag : public AthAlgorithm
 {
diff --git a/TestBeam/TBRec/src/TBPatternUnitStreamerTool.cxx b/TestBeam/TBRec/src/TBPatternUnitStreamerTool.cxx
old mode 100755
new mode 100644
index c46375a0cd87f254f03dfba3149c59f15fbd6306..b7865f70450d4ac2261443c1e18918d2213f9a11
--- a/TestBeam/TBRec/src/TBPatternUnitStreamerTool.cxx
+++ b/TestBeam/TBRec/src/TBPatternUnitStreamerTool.cxx
@@ -2,21 +2,13 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-
-#include "StoreGate/StoreGateSvc.h"
+#include "TBPatternUnitStreamerTool.h"
 
 #include "TBEvent/TBTriggerPatternUnit.h"
 #include "TBEvent/TBEventInfo.h"
 
-#include "TBRec/TBPatternUnitStreamerTool.h"
-
 #include <string>
-
-//#include <iomanip>
 #include <ios>
-//#include <iomanip>
 
 TBPatternUnitStreamerTool::TBPatternUnitStreamerTool(const std::string& name,
 						     const std::string& type,
diff --git a/TestBeam/TBRec/TBRec/TBPatternUnitStreamerTool.h b/TestBeam/TBRec/src/TBPatternUnitStreamerTool.h
old mode 100755
new mode 100644
similarity index 98%
rename from TestBeam/TBRec/TBRec/TBPatternUnitStreamerTool.h
rename to TestBeam/TBRec/src/TBPatternUnitStreamerTool.h
index 867ed5241bd341082473a0c66de77f1313669fec..d82e35f54959c88bfcca6ab6910370e535280438
--- a/TestBeam/TBRec/TBRec/TBPatternUnitStreamerTool.h
+++ b/TestBeam/TBRec/src/TBPatternUnitStreamerTool.h
@@ -24,7 +24,7 @@
  * \date   June 20, 2004 - first implementation
  */
 
-#include "TBRec/TBEventStreamerTool.h"
+#include "TBEventStreamerTool.h"
 
 #include <string>
 #include <map>
diff --git a/TestBeam/TBRec/src/TBPatternUnitStreamerToolH8.cxx b/TestBeam/TBRec/src/TBPatternUnitStreamerToolH8.cxx
old mode 100755
new mode 100644
index 4dcbd680c33492576577356539fc8171bc608be7..687b3e0be329851a49eee30c534ce44f338c5be6
--- a/TestBeam/TBRec/src/TBPatternUnitStreamerToolH8.cxx
+++ b/TestBeam/TBRec/src/TBPatternUnitStreamerToolH8.cxx
@@ -2,20 +2,11 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
+#include "TBPatternUnitStreamerToolH8.h"
 #include "TBEvent/TBTriggerPatternUnit.h"
-
-#include "TBRec/TBPatternUnitStreamerToolH8.h"
-
 #include <string>
-
-//#include <iomanip>
 #include <ios>
-//#include <iomanip>
+
 
 TBPatternUnitStreamerToolH8::TBPatternUnitStreamerToolH8(
 						     const std::string& name,
diff --git a/TestBeam/TBRec/TBRec/TBPatternUnitStreamerToolH8.h b/TestBeam/TBRec/src/TBPatternUnitStreamerToolH8.h
old mode 100755
new mode 100644
similarity index 98%
rename from TestBeam/TBRec/TBRec/TBPatternUnitStreamerToolH8.h
rename to TestBeam/TBRec/src/TBPatternUnitStreamerToolH8.h
index 67555b208c15b8e5aea1a047e2122fa98f833c9b..e3a2c04af8b4839ee32afd5b0cb803ddfd2861dd
--- a/TestBeam/TBRec/TBRec/TBPatternUnitStreamerToolH8.h
+++ b/TestBeam/TBRec/src/TBPatternUnitStreamerToolH8.h
@@ -24,7 +24,7 @@
  * \date   July 28, 2004 - copy of TBPatternUnitStreamerTool adapted for H8
  */
 
-#include "TBRec/TBEventStreamerTool.h"
+#include "TBEventStreamerTool.h"
 
 #include <string>
 #include <map>
diff --git a/TestBeam/TBRec/src/TBPhaseRec.cxx b/TestBeam/TBRec/src/TBPhaseRec.cxx
old mode 100755
new mode 100644
index 2989133e8be1c153034c515ba5a93c9ae58fb349..f2c6cc12ac45a419e237bb80ff8c20a88342dd34
--- a/TestBeam/TBRec/src/TBPhaseRec.cxx
+++ b/TestBeam/TBRec/src/TBPhaseRec.cxx
@@ -3,15 +3,11 @@
 */
 
 
-#include "StoreGate/StoreGateSvc.h"
-
-#include "GaudiKernel/Property.h"
+#include "TBPhaseRec.h"
 
 #include "EventInfo/EventInfo.h"
 #include "EventInfo/EventID.h"
 
-#include "TBRec/TBPhaseRec.h"
-
 #include "TBEvent/TBTDCRaw.h"
 #include "TBEvent/TBTDCRawCont.h"
 #include "TBEvent/TBPhase.h"
diff --git a/TestBeam/TBRec/TBRec/TBPhaseRec.h b/TestBeam/TBRec/src/TBPhaseRec.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBPhaseRec.h
rename to TestBeam/TBRec/src/TBPhaseRec.h
diff --git a/TestBeam/TBRec/src/TBPhaseStreamerTool.cxx b/TestBeam/TBRec/src/TBPhaseStreamerTool.cxx
old mode 100755
new mode 100644
index 7d2f5f17bbfe26f92cdcf9ede29d85468f8c5923..27f74eb3c3daf72604b8fc44f24b3f28ac3e567e
--- a/TestBeam/TBRec/src/TBPhaseStreamerTool.cxx
+++ b/TestBeam/TBRec/src/TBPhaseStreamerTool.cxx
@@ -2,13 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-
-#include "StoreGate/StoreGateSvc.h"
+#include "TBPhaseStreamerTool.h"
 #include "TBEvent/TBPhase.h"
-#include "TBRec/TBPhaseStreamerTool.h"
-
 #include <string>
 #include <ios>
 
diff --git a/TestBeam/TBRec/TBRec/TBPhaseStreamerTool.h b/TestBeam/TBRec/src/TBPhaseStreamerTool.h
old mode 100755
new mode 100644
similarity index 96%
rename from TestBeam/TBRec/TBRec/TBPhaseStreamerTool.h
rename to TestBeam/TBRec/src/TBPhaseStreamerTool.h
index d916924a909b8419749e34d11f2e213fea1df73e..728162d3e8328685e2dabc7aa7cf8a2622347b53
--- a/TestBeam/TBRec/TBRec/TBPhaseStreamerTool.h
+++ b/TestBeam/TBRec/src/TBPhaseStreamerTool.h
@@ -19,7 +19,7 @@
  * \date   February 10, 2005 - first implementation
  */
 
-#include "TBRec/TBEventStreamerTool.h"
+#include "TBEventStreamerTool.h"
 
 #include <string>
 #include <map>
diff --git a/TestBeam/TBRec/src/TBPlaneTrackingAlgo.cxx b/TestBeam/TBRec/src/TBPlaneTrackingAlgo.cxx
old mode 100755
new mode 100644
index b2a1218bf8cbf532f21f37eef618c5562213fbc1..11c249d5b36b789151818c05d0557e05def2dce3
--- a/TestBeam/TBRec/src/TBPlaneTrackingAlgo.cxx
+++ b/TestBeam/TBRec/src/TBPlaneTrackingAlgo.cxx
@@ -2,11 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/StatusCode.h"
-
-#include "PathResolver/PathResolver.h"
-
-#include "TBRec/TBPlaneTrackingAlgo.h"
+#include "TBPlaneTrackingAlgo.h"
 #include "TBEvent/TBHitPlaneCont.h"
 #include "TBEvent/TBBPCCont.h"
 #include "TBEvent/TBHitPlane.h"
@@ -15,6 +11,7 @@
 
 #include "EventInfo/EventInfo.h"
 #include "EventInfo/EventID.h"
+#include "PathResolver/PathResolver.h"
 
 #include <vector>
 #include <iostream>
diff --git a/TestBeam/TBRec/TBRec/TBPlaneTrackingAlgo.h b/TestBeam/TBRec/src/TBPlaneTrackingAlgo.h
old mode 100755
new mode 100644
similarity index 97%
rename from TestBeam/TBRec/TBRec/TBPlaneTrackingAlgo.h
rename to TestBeam/TBRec/src/TBPlaneTrackingAlgo.h
index 1574c9380efcc9dbbb6dfc57d64e9a88e1607db5..711cb606a6b6a9ef774a884b3822ca181953bdd0
--- a/TestBeam/TBRec/TBRec/TBPlaneTrackingAlgo.h
+++ b/TestBeam/TBRec/src/TBPlaneTrackingAlgo.h
@@ -2,11 +2,10 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBPLANETRACKINGALGO_H
-#define TBPLANETRACKINGALGO_H
+#ifndef TBREC_TBPLANETRACKINGALGO_H
+#define TBREC_TBPLANETRACKINGALGO_H
 
 #include "AthenaBaseComps/AthAlgorithm.h"
-#include "StoreGate/StoreGateSvc.h"
 
 #include "TBEvent/TBHitPlaneCont.h"
 
diff --git a/TestBeam/TBRec/src/TBPreScalerStreamerTool.cxx b/TestBeam/TBRec/src/TBPreScalerStreamerTool.cxx
old mode 100755
new mode 100644
index 9a1a5317ab41fe400236079353cc3857baeb2357..d86120a46d874de44760e296cf54194cae7b5146
--- a/TestBeam/TBRec/src/TBPreScalerStreamerTool.cxx
+++ b/TestBeam/TBRec/src/TBPreScalerStreamerTool.cxx
@@ -2,13 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Service.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
-#include "TBRec/TBEventStreamerTool.h"
-#include "TBRec/TBPreScalerStreamerTool.h"
+#include "TBEventStreamerTool.h"
+#include "TBPreScalerStreamerTool.h"
 
 // already included in TBPreScalerStreamerTool.h
 //#include "CLHEP/Random/RanluxEngine.h"
diff --git a/TestBeam/TBRec/TBRec/TBPreScalerStreamerTool.h b/TestBeam/TBRec/src/TBPreScalerStreamerTool.h
old mode 100755
new mode 100644
similarity index 96%
rename from TestBeam/TBRec/TBRec/TBPreScalerStreamerTool.h
rename to TestBeam/TBRec/src/TBPreScalerStreamerTool.h
index 249ca9a609f0de26ff032f5670f1d569a0662518..56a18444425ecda2478ccb438d77583977a710ab
--- a/TestBeam/TBRec/TBRec/TBPreScalerStreamerTool.h
+++ b/TestBeam/TBRec/src/TBPreScalerStreamerTool.h
@@ -5,7 +5,7 @@
 #ifndef TBREC_TBPRESCALERSTREAMERTOOL_H
 #define TBREC_TBPRESCALERSTREAMERTOOL_H
 
-#include "TBRec/TBEventStreamerTool.h"
+#include "TBEventStreamerTool.h"
 
 // This is needed for migration to CLHEP 1.9
 // (Forward declarations of CLHEP classes will give rise to an error...)
diff --git a/TestBeam/TBRec/src/TBScintillatorRec.cxx b/TestBeam/TBRec/src/TBScintillatorRec.cxx
old mode 100755
new mode 100644
index e2e904f17769e60ee543caa9365e93dbf45cf075..114d5fe1a25f4bd73ad93a8bfeb663f9e61bd4b3
--- a/TestBeam/TBRec/src/TBScintillatorRec.cxx
+++ b/TestBeam/TBRec/src/TBScintillatorRec.cxx
@@ -3,19 +3,11 @@
 */
 
 
-#include "StoreGate/StoreGateSvc.h"
-
-#include "GaudiKernel/Property.h"
-
-#include "TBRec/TBScintillatorRec.h"
+#include "TBScintillatorRec.h"
 
 #include "TBEvent/TBScintillatorCont.h"
 #include "TBEvent/TBScintillatorRawCont.h"
 
-// static const AlgFactory<TBScintillatorRec> s_factory;
-// const IAlgFactory& TBScintillatorRecFactory = s_factory;
-
-
 
 TBScintillatorRec::TBScintillatorRec(const std::string& name,
 				 ISvcLocator* pSvcLocator) :
diff --git a/TestBeam/TBRec/TBRec/TBScintillatorRec.h b/TestBeam/TBRec/src/TBScintillatorRec.h
old mode 100755
new mode 100644
similarity index 95%
rename from TestBeam/TBRec/TBRec/TBScintillatorRec.h
rename to TestBeam/TBRec/src/TBScintillatorRec.h
index b0a63af49ebfd41223dfd18587c8e19966e10f6f..50e7ca3bf6700c0a28f96384b04001c3f366c290
--- a/TestBeam/TBRec/TBRec/TBScintillatorRec.h
+++ b/TestBeam/TBRec/src/TBScintillatorRec.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBREC_TBSCINTREC
-#define TBREC_TBSCINTREC
+#ifndef TBREC_TBSCINTREC_H
+#define TBREC_TBSCINTREC_H
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 // This algorithm controls event flow and reconstruction and monitoring      //
diff --git a/TestBeam/TBRec/src/TBTailCatcherRec.cxx b/TestBeam/TBRec/src/TBTailCatcherRec.cxx
old mode 100755
new mode 100644
index 262566a7185cfeb978191af83e32528eedbb9de4..cb87906e5bfbdbee081bf38f7e2be2d737d34329
--- a/TestBeam/TBRec/src/TBTailCatcherRec.cxx
+++ b/TestBeam/TBRec/src/TBTailCatcherRec.cxx
@@ -2,18 +2,9 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#define WTC_ADC_MAX 1024
-#include "StoreGate/StoreGateSvc.h"
-
-#include "GaudiKernel/Property.h"
-
-#include "TBRec/TBTailCatcherRec.h"
-
-// static const AlgFactory<TBObjectRecoAlgo> s_factory;
-// const IAlgFactory& TBObjectRecoAlgoFactory = s_factory;
-
-
+#include "TBTailCatcherRec.h"
 
+#define WTC_ADC_MAX 1024
 
 
 TBTailCatcherRec::TBTailCatcherRec(const std::string& name,
diff --git a/TestBeam/TBRec/TBRec/TBTailCatcherRec.h b/TestBeam/TBRec/src/TBTailCatcherRec.h
old mode 100755
new mode 100644
similarity index 94%
rename from TestBeam/TBRec/TBRec/TBTailCatcherRec.h
rename to TestBeam/TBRec/src/TBTailCatcherRec.h
index ebf776183fe5166db568e22c319975e5559160a8..37963627f0e2db3d2d4276bab06ab874925078d5
--- a/TestBeam/TBRec/TBRec/TBTailCatcherRec.h
+++ b/TestBeam/TBRec/src/TBTailCatcherRec.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBREC_TBTAILCATCHERREC
-#define TBREC_TBTAILCATCHERREC
+#ifndef TBREC_TBTAILCATCHERREC_H
+#define TBREC_TBTAILCATCHERREC_H
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 // This algorithm controls event flow and reconstruction and monitoring      //
diff --git a/TestBeam/TBRec/src/TBTrackInfoFromTag.cxx b/TestBeam/TBRec/src/TBTrackInfoFromTag.cxx
index 7ab588b3cd3ecbe959069408c15d1da414522222..05cc2ea64dff6fcc6d1c0e3ff799e2a5e3eb55e3 100644
--- a/TestBeam/TBRec/src/TBTrackInfoFromTag.cxx
+++ b/TestBeam/TBRec/src/TBTrackInfoFromTag.cxx
@@ -3,11 +3,7 @@
 */
 
 
-#include "StoreGate/StoreGateSvc.h"
-
-#include "GaudiKernel/Property.h"
-
-#include "TBRec/TBTrackInfoFromTag.h"
+#include "TBTrackInfoFromTag.h"
 
 
 // template functions for copying the contents of a 1- and 2-dim array into a vector
diff --git a/TestBeam/TBRec/TBRec/TBTrackInfoFromTag.h b/TestBeam/TBRec/src/TBTrackInfoFromTag.h
similarity index 95%
rename from TestBeam/TBRec/TBRec/TBTrackInfoFromTag.h
rename to TestBeam/TBRec/src/TBTrackInfoFromTag.h
index 733c980ca862e21f90be705d2261c1033f3909df..0b93269bc2d07923779d78e0c0a57180ea950d49 100644
--- a/TestBeam/TBRec/TBRec/TBTrackInfoFromTag.h
+++ b/TestBeam/TBRec/src/TBTrackInfoFromTag.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBTrackInfoFromTag_H
-#define TBTrackInfoFromTag_H
+#ifndef TBREC_TBTRACKINFOFROMTAG_H
+#define TBREC_TBTRACKINFOFROMTAG_H
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 // MWPC Reconstruction algorithm. Based on code for 2002 TestBeam            //
@@ -45,8 +45,8 @@ class TChain;
 class TFile;
 class TString;
 
-#include "TBRec/TileRec_h1000.h"
-#include "TBRec/TB_tree.h"
+#include "TileRec_h1000.h"
+#include "TB_tree.h"
 
 
 class TBTrackInfoFromTag : public AthAlgorithm
diff --git a/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx b/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx
old mode 100755
new mode 100644
index 718fafc34220695cbb93bc7f2625cc74923951e4..24600bfffc9922301bf7dec373be02d08beba544
--- a/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx
+++ b/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx
@@ -7,12 +7,10 @@
 //   Implementation file for class TBTrackToCaloAlg
 ///////////////////////////////////////////////////////////////////
 
-#include "TBRec/TBTrackToCaloAlg.h"
-#include "TBRec/TBExtrapolTrackToCaloTool.h"
+#include "TBTrackToCaloAlg.h"
+#include "TBExtrapolTrackToCaloTool.h"
 
 // Gaudi includes
-#include "StoreGate/StoreGate.h"
-#include "StoreGate/StoreGateSvc.h"
 #include "GaudiKernel/IToolSvc.h"
 
 // Tracking includes
@@ -37,7 +35,7 @@
 
 //#include "ITrackToCalo/IExtrapolTrackToCaloTool.h"
 //#include "RecoToolInterfaces/IExtrapolateToCaloTool.h"
-#include "TBRec/ImpactInCaloCollection.h"
+#include "ImpactInCaloCollection.h"
 #include "AthenaKernel/Units.h"
 
 
diff --git a/TestBeam/TBRec/TBRec/TBTrackToCaloAlg.h b/TestBeam/TBRec/src/TBTrackToCaloAlg.h
old mode 100755
new mode 100644
similarity index 98%
rename from TestBeam/TBRec/TBRec/TBTrackToCaloAlg.h
rename to TestBeam/TBRec/src/TBTrackToCaloAlg.h
index 708e4d6a59baf29b95f7b035fb6e38f27df311d4..d1091ab64ddc8ca8e7f2edb2e98b6ba8790938ad
--- a/TestBeam/TBRec/TBRec/TBTrackToCaloAlg.h
+++ b/TestBeam/TBRec/src/TBTrackToCaloAlg.h
@@ -10,8 +10,8 @@
 ///////////////////////////////////////////////////////////////////
 
 
-#ifndef TESTLARDETDESCR_TESTTRACKTOCALO_H
-#define TESTLARDETDESCR_TESTTRACKTOCALO_H
+#ifndef TBREC_TBTRACKTOCALOALG_H
+#define TBREC_TBTRACKTOCALOALG_H
 
 // Base class
 #include "AthenaBaseComps/AthAlgorithm.h"
diff --git a/TestBeam/TBRec/src/TBTree_CaloClusterH6.cxx b/TestBeam/TBRec/src/TBTree_CaloClusterH6.cxx
index d85bc684b62e5c3316a57258b5076fd4d6499fb4..9b0d22af30720a7b97855cf2637f2575a4f91fa9 100644
--- a/TestBeam/TBRec/src/TBTree_CaloClusterH6.cxx
+++ b/TestBeam/TBRec/src/TBTree_CaloClusterH6.cxx
@@ -7,8 +7,9 @@
 // author: A.Minaenko
 // date:  25/07/2006
 
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
+#include "TBTree_CaloClusterH6.h"
+#include "TBRec/TBH6RunHeader.h"
+
 #include "GaudiKernel/IToolSvc.h"
 #include "GaudiKernel/ListItem.h"
 
@@ -17,8 +18,6 @@
 #include <TFile.h>
 #include <TTree.h>
 
-#include "StoreGate/StoreGate.h" 
-
 #include "CaloDetDescr/CaloDetDescrManager.h"
 #include "CaloIdentifier/CaloCell_ID.h"
 #include "CaloIdentifier/CaloIdManager.h"
@@ -41,9 +40,6 @@
 #include "TBEvent/TBTrack.h"
 #include "TBEvent/TBTailCatcher.h"
 
-#include "TBRec/TBH6RunHeader.h"
-#include "TBRec/TBTree_CaloClusterH6.h"
-
 #include <fstream>
 
 TBTree_CaloClusterH6::TBTree_CaloClusterH6(const std::string& name, 
diff --git a/TestBeam/TBRec/TBRec/TBTree_CaloClusterH6.h b/TestBeam/TBRec/src/TBTree_CaloClusterH6.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBTree_CaloClusterH6.h
rename to TestBeam/TBRec/src/TBTree_CaloClusterH6.h
diff --git a/TestBeam/TBRec/src/TBXCryYTableRead.cxx b/TestBeam/TBRec/src/TBXCryYTableRead.cxx
index 907cd83f4f00397b0b28cd19a617f03a45c6e5eb..4b751997f8d5f26c33e6a5348138bbcb8aa56614 100644
--- a/TestBeam/TBRec/src/TBXCryYTableRead.cxx
+++ b/TestBeam/TBRec/src/TBXCryYTableRead.cxx
@@ -4,15 +4,9 @@
 
 // class TBXCryYTableRead 
 
-#include "GaudiKernel/ISvcLocator.h"
-#include "GaudiKernel/StatusCode.h"
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/IToolSvc.h"
-#include "GaudiKernel/ListItem.h"
+#include "TBXCryYTableRead.h"
 #include "PathResolver/PathResolver.h"
-#include "StoreGate/StoreGate.h" 
 #include "TBEvent/TBEventInfo.h"
-#include "TBRec/TBXCryYTableRead.h"
 #include <fstream>
 
 TBXCryYTableRead::TBXCryYTableRead(const std::string& name, 
diff --git a/TestBeam/TBRec/TBRec/TBXCryYTableRead.h b/TestBeam/TBRec/src/TBXCryYTableRead.h
similarity index 94%
rename from TestBeam/TBRec/TBRec/TBXCryYTableRead.h
rename to TestBeam/TBRec/src/TBXCryYTableRead.h
index 9cb58647db98135f0cf9b0817378bf97e067f3ec..b0e75692a5d7b208013c05e3a37200896d434a81 100644
--- a/TestBeam/TBRec/TBRec/TBXCryYTableRead.h
+++ b/TestBeam/TBRec/src/TBXCryYTableRead.h
@@ -2,8 +2,8 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#ifndef TBXCRYYTABLEREAD
-#define TBXCRYYTABLEREAD
+#ifndef TBREC_TBXCRYYTABLEREAD_H
+#define TBREC_TBXCRYYTABLEREAD_H
 // 
 // class TBXCryYTableRead 
 //
diff --git a/TestBeam/TBRec/src/TBXMLCaloCellWriterTool.cxx b/TestBeam/TBRec/src/TBXMLCaloCellWriterTool.cxx
old mode 100755
new mode 100644
index 9231fdb27274a4103e817a3a3403c6c5bc53109d..6c584eecfb5ff8d1a93fd347004fffa91e9e722d
--- a/TestBeam/TBRec/src/TBXMLCaloCellWriterTool.cxx
+++ b/TestBeam/TBRec/src/TBXMLCaloCellWriterTool.cxx
@@ -3,16 +3,17 @@
 */
 
 
+#include "TBXMLWriterToolBase.h"
+#include "TBXMLCaloCellWriterTool.h"
+#include "TBXMLWriter.h"
+
 #include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/AlgTool.h"
 
 #include "CLHEP/Units/SystemOfUnits.h"
 
 #include "Identifier/Identifier.h"
 #include "Identifier/IdentifierHash.h"
 
-#include "StoreGate/StoreGateSvc.h"
-
 #include "CaloDetDescr/CaloDetDescrManager.h"
 #include "CaloDetDescr/CaloDetDescrElement.h"
 
@@ -23,9 +24,6 @@
 #include "CaloEvent/CaloCell.h"
 #include "CaloEvent/CaloCellContainer.h"
 
-#include "TBRec/TBXMLWriterToolBase.h"
-#include "TBRec/TBXMLCaloCellWriterTool.h"
-#include "TBRec/TBXMLWriter.h"
 #include "boost/io/ios_state.hpp"
 
 #include <iostream>
diff --git a/TestBeam/TBRec/TBRec/TBXMLCaloCellWriterTool.h b/TestBeam/TBRec/src/TBXMLCaloCellWriterTool.h
old mode 100755
new mode 100644
similarity index 97%
rename from TestBeam/TBRec/TBRec/TBXMLCaloCellWriterTool.h
rename to TestBeam/TBRec/src/TBXMLCaloCellWriterTool.h
index 82d068682b2cd9436a93cd8b4acde619db9be1a6..c4afbb7d363a1dd2eb4199d795838f13da83d5e1
--- a/TestBeam/TBRec/TBRec/TBXMLCaloCellWriterTool.h
+++ b/TestBeam/TBRec/src/TBXMLCaloCellWriterTool.h
@@ -11,7 +11,7 @@
 #include "CaloIdentifier/CaloCell_ID.h"
 #include "CaloGeoHelpers/CaloSampling.h"
 
-#include "TBRec/TBXMLWriterToolBase.h"
+#include "TBXMLWriterToolBase.h"
 
 #include <iostream>
 #include <vector>
diff --git a/TestBeam/TBRec/src/TBXMLEventWriterTool.cxx b/TestBeam/TBRec/src/TBXMLEventWriterTool.cxx
old mode 100755
new mode 100644
index 5bf10c4353b2a35a4d45bf0e4b79911102952196..630320f320670a8547f10732fde7f3f8a2f22f43
--- a/TestBeam/TBRec/src/TBXMLEventWriterTool.cxx
+++ b/TestBeam/TBRec/src/TBXMLEventWriterTool.cxx
@@ -3,11 +3,9 @@
 */
 
 
-#include "GaudiKernel/AlgTool.h"
-
-#include "TBRec/TBXMLWriterToolBase.h"
-#include "TBRec/TBXMLEventWriterTool.h"
-#include "TBRec/TBXMLWriter.h"
+#include "TBXMLWriterToolBase.h"
+#include "TBXMLEventWriterTool.h"
+#include "TBXMLWriter.h"
 
 #include <string>
 
diff --git a/TestBeam/TBRec/TBRec/TBXMLEventWriterTool.h b/TestBeam/TBRec/src/TBXMLEventWriterTool.h
old mode 100755
new mode 100644
similarity index 96%
rename from TestBeam/TBRec/TBRec/TBXMLEventWriterTool.h
rename to TestBeam/TBRec/src/TBXMLEventWriterTool.h
index efb411e36497d7c44f31a5108bb77af75c85db01..2d54842ece1c967718f4507110c9aa32cf3488d6
--- a/TestBeam/TBRec/TBRec/TBXMLEventWriterTool.h
+++ b/TestBeam/TBRec/src/TBXMLEventWriterTool.h
@@ -8,7 +8,7 @@
 /// \brief writes out event header
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "TBRec/TBXMLWriterToolBase.h"
+#include "TBXMLWriterToolBase.h"
 
 #include <iostream>
 #include <string>
diff --git a/TestBeam/TBRec/src/TBXMLWriter.cxx b/TestBeam/TBRec/src/TBXMLWriter.cxx
old mode 100755
new mode 100644
index 99e03e8be4f47e494d632df6a16a687f16386eba..cb43e1baf02fa041c096ac9ff653fe5fffc4383b
--- a/TestBeam/TBRec/src/TBXMLWriter.cxx
+++ b/TestBeam/TBRec/src/TBXMLWriter.cxx
@@ -3,21 +3,15 @@
 */
 
 
-// Gaudi
-#include "GaudiKernel/MsgStream.h"
-#include "GaudiKernel/Property.h"
-#include "GaudiKernel/ListItem.h"
+#include "TBXMLWriterToolBase.h"
+#include "TBXMLWriter.h"
 
-// StoreGate services
-#include "StoreGate/StoreGateSvc.h"
 
 // event
 #include "EventInfo/EventInfo.h"
 #include "EventInfo/EventID.h"
 
-// TBRec includes
-#include "TBRec/TBXMLWriterToolBase.h"
-#include "TBRec/TBXMLWriter.h"
+#include "GaudiKernel/ListItem.h"
 
 #include <string>
 #include <vector>
diff --git a/TestBeam/TBRec/TBRec/TBXMLWriter.h b/TestBeam/TBRec/src/TBXMLWriter.h
similarity index 100%
rename from TestBeam/TBRec/TBRec/TBXMLWriter.h
rename to TestBeam/TBRec/src/TBXMLWriter.h
diff --git a/TestBeam/TBRec/src/TBXMLWriterToolBase.cxx b/TestBeam/TBRec/src/TBXMLWriterToolBase.cxx
old mode 100755
new mode 100644
index 78fcb75cbd41fdd539a6fc2dd0563bf99d5ded01..89d679c689ea9d0acb7e6fd0cb616062643cbe9b
--- a/TestBeam/TBRec/src/TBXMLWriterToolBase.cxx
+++ b/TestBeam/TBRec/src/TBXMLWriterToolBase.cxx
@@ -3,7 +3,7 @@
 */
 
 
-#include "TBRec/TBXMLWriterToolBase.h"
+#include "TBXMLWriterToolBase.h"
 
 #include <iostream>
 #include <string>
diff --git a/TestBeam/TBRec/TBRec/TBXMLWriterToolBase.h b/TestBeam/TBRec/src/TBXMLWriterToolBase.h
old mode 100755
new mode 100644
similarity index 97%
rename from TestBeam/TBRec/TBRec/TBXMLWriterToolBase.h
rename to TestBeam/TBRec/src/TBXMLWriterToolBase.h
index 88e2be4c8972176957a10bbe36c1cc2cdc0eb613..764fbc18ec09cdb0e951427715b7f13205dd5017
--- a/TestBeam/TBRec/TBRec/TBXMLWriterToolBase.h
+++ b/TestBeam/TBRec/src/TBXMLWriterToolBase.h
@@ -8,13 +8,8 @@
 /// \brief base class for XML writer tools for 2004 event display
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "GaudiKernel/MsgStream.h"
 #include "AthenaBaseComps/AthAlgTool.h"
-
-#include "StoreGate/StoreGateSvc.h"
-
 #include <iostream>
-
 #include <vector>
 #include <string>
 
diff --git a/TestBeam/TBRec/src/TB_tree.cxx b/TestBeam/TBRec/src/TB_tree.cxx
index f23ce3e28d66c3b7e8e562843a5e1b30fc1d4abf..5c2dcc1a8fe01bdf421a4ac230c503bd26d914b9 100644
--- a/TestBeam/TBRec/src/TB_tree.cxx
+++ b/TestBeam/TBRec/src/TB_tree.cxx
@@ -2,8 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#define TB_tree_cxx
-#include "TBRec/TB_tree.h"
+#include "TB_tree.h"
 
 TB_tree::TB_tree(TTree *tree)
   : fChain(0),
diff --git a/TestBeam/TBRec/TBRec/TB_tree.h b/TestBeam/TBRec/src/TB_tree.h
similarity index 99%
rename from TestBeam/TBRec/TBRec/TB_tree.h
rename to TestBeam/TBRec/src/TB_tree.h
index 67b1390cac686c8cb0892a5c112c88b47b01e349..c0c9c6a4b7768bc51896a3f413e1adb96d652234 100644
--- a/TestBeam/TBRec/TBRec/TB_tree.h
+++ b/TestBeam/TBRec/src/TB_tree.h
@@ -9,8 +9,8 @@
 // found on file: cbnt_RecExTB_Combined_1207_2102095.0.root
 //////////////////////////////////////////////////////////
 
-#ifndef TB_tree_h
-#define TB_tree_h
+#ifndef TBREC_TB_TREE_H
+#define TBREC_TB_TREE_H
 
 #include "AthenaKernel/CLASS_DEF.h"
 
diff --git a/TestBeam/TBRec/src/TileRec_h1000.cxx b/TestBeam/TBRec/src/TileRec_h1000.cxx
index 09db502f34c6aaf212969e5f9f536e0aef2d2073..c8ea33320a5847aee93aa0bba2a47aa83ed61750 100644
--- a/TestBeam/TBRec/src/TileRec_h1000.cxx
+++ b/TestBeam/TBRec/src/TileRec_h1000.cxx
@@ -2,8 +2,7 @@
   Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 */
 
-#define TileRec_h1000_cxx
-#include "TBRec/TileRec_h1000.h"
+#include "TileRec_h1000.h"
 
 TileRec_h1000::TileRec_h1000(TTree *tree)
   : fChain(0),
diff --git a/TestBeam/TBRec/TBRec/TileRec_h1000.h b/TestBeam/TBRec/src/TileRec_h1000.h
similarity index 99%
rename from TestBeam/TBRec/TBRec/TileRec_h1000.h
rename to TestBeam/TBRec/src/TileRec_h1000.h
index 3ab6f91eeb097a2d2f4584ede576cb6bfbe2eb9e..4c1e1a0e66476187332a42e039552871b89f4b1a 100644
--- a/TestBeam/TBRec/TBRec/TileRec_h1000.h
+++ b/TestBeam/TBRec/src/TileRec_h1000.h
@@ -9,8 +9,8 @@
 // found on file: cbnt_RecExTB_Combined_1207_2102095.0.root
 //////////////////////////////////////////////////////////
 
-#ifndef TileRec_h1000_h
-#define TileRec_h1000_h
+#ifndef TBREC_TILEREC_H1000_H
+#define TBREC_TILEREC_H1000_H
 
 #include "AthenaKernel/CLASS_DEF.h"
 
diff --git a/TestBeam/TBRec/src/components/TBRec_entries.cxx b/TestBeam/TBRec/src/components/TBRec_entries.cxx
index ad9244c6747758fab254200294956e6497d7159f..541cc7dd36462c69aa01f4a1a1793da5b9bbfd14 100644
--- a/TestBeam/TBRec/src/components/TBRec_entries.cxx
+++ b/TestBeam/TBRec/src/components/TBRec_entries.cxx
@@ -1,52 +1,52 @@
-#include "TBRec/TBAlgoSequencer.h"
+#include "../TBAlgoSequencer.h"
 
-#include "TBRec/TBXMLWriter.h"
-#include "TBRec/TBXMLEventWriterTool.h"
-#include "TBRec/TBXMLCaloCellWriterTool.h"
-#include "TBRec/TBBPCRec.h"
-#include "TBRec/TBMWPCRec.h"
-#include "TBRec/TBScintillatorRec.h"
-#include "TBRec/TBTailCatcherRec.h"
-#include "TBRec/TBPlaneTrackingAlgo.h"
-#include "TBRec/TBPhaseRec.h"
-#include "TBRec/TBLArRawChannelBuilder.h"
-#include "TBRec/TBECLArRawChannelBuilder.h"
-#include "TBRec/TBEventStreamer.h"
-#include "TBRec/TBPatternUnitStreamerTool.h"
-#include "TBRec/TBPatternUnitStreamerToolH8.h"
-#include "TBRec/TBEventInfoStreamerTool.h"
-#include "TBRec/TBPreScalerStreamerTool.h"
-#include "TBRec/CBNTAA_BeamInstrumentation.h"
-#include "TBRec/CBNTAA_TBADCRaw.h"
-#include "TBRec/CBNTAA_TBTDCRaw.h"
-#include "TBRec/CBNTAA_TBInfo.h"
-#include "TBRec/CBNTAA_TBTrack.h"
-#include "TBRec/CBNTAA_TBScint.h"
-#include "TBRec/CBNT_Timing.h"
-#include "TBRec/CBNT_CaloH6.h"
-#include "TBRec/CBNT_UpstreamMat.h"
-#include "TBRec/TBPartIDCherenkovMuTag.h"
-#include "TBRec/TBBeamQuality.h"
-#include "TBRec/TBBeamQualityTool.h"
-#include "TBRec/TBBeamQualityDoubleHitsTool.h"
-#include "TBRec/TBBeamQualityMuonToolH6.h"
-#include "TBRec/TBBeamQualityEMFractionTool.h"
-#include "TBRec/TBBeamQualityTrackingTool.h"
-#include "TBRec/TBPhaseStreamerTool.h"
-#include "TBRec/TBEMECCellEtaCorrection.h"
-#include "TBRec/TBClusterMaker.h"
-#include "TBRec/TBTree_CaloClusterH6.h"
-#include "TBRec/TBNoiseWrite.h"
-#include "TBRec/TBCellNoiseCorrection.h"
-#include "TBRec/TBCellContainerFillerTool.h"
-#include "TBRec/CBNTAA_TBTPValidation.h"
-#include "TBRec/TBTrackInfoFromTag.h"
-#include "TBRec/TBBeamQualityMC.h"
-#include "TBRec/TBXCryYTableRead.h"
-#include "TBRec/TBDMContainerSplitter.h"
-#include "TBRec/TBEMECXTalkToyModel.h"
-#include "TBRec/TBExtrapolTrackToCaloTool.h"
-#include "TBRec/TBTrackToCaloAlg.h"
+#include "../TBXMLWriter.h"
+#include "../TBXMLEventWriterTool.h"
+#include "../TBXMLCaloCellWriterTool.h"
+#include "../TBBPCRec.h"
+#include "../TBMWPCRec.h"
+#include "../TBScintillatorRec.h"
+#include "../TBTailCatcherRec.h"
+#include "../TBPlaneTrackingAlgo.h"
+#include "../TBPhaseRec.h"
+#include "../TBLArRawChannelBuilder.h"
+#include "../TBECLArRawChannelBuilder.h"
+#include "../TBEventStreamer.h"
+#include "../TBPatternUnitStreamerTool.h"
+#include "../TBPatternUnitStreamerToolH8.h"
+#include "../TBEventInfoStreamerTool.h"
+#include "../TBPreScalerStreamerTool.h"
+#include "../CBNTAA_BeamInstrumentation.h"
+#include "../CBNTAA_TBADCRaw.h"
+#include "../CBNTAA_TBTDCRaw.h"
+#include "../CBNTAA_TBInfo.h"
+#include "../CBNTAA_TBTrack.h"
+#include "../CBNTAA_TBScint.h"
+#include "../CBNT_Timing.h"
+#include "../CBNT_CaloH6.h"
+#include "../CBNT_UpstreamMat.h"
+#include "../TBPartIDCherenkovMuTag.h"
+#include "../TBBeamQuality.h"
+#include "../TBBeamQualityTool.h"
+#include "../TBBeamQualityDoubleHitsTool.h"
+#include "../TBBeamQualityMuonToolH6.h"
+#include "../TBBeamQualityEMFractionTool.h"
+#include "../TBBeamQualityTrackingTool.h"
+#include "../TBPhaseStreamerTool.h"
+#include "../TBEMECCellEtaCorrection.h"
+#include "../TBClusterMaker.h"
+#include "../TBTree_CaloClusterH6.h"
+#include "../TBNoiseWrite.h"
+#include "../TBCellNoiseCorrection.h"
+#include "../TBCellContainerFillerTool.h"
+#include "../CBNTAA_TBTPValidation.h"
+#include "../TBTrackInfoFromTag.h"
+#include "../TBBeamQualityMC.h"
+#include "../TBXCryYTableRead.h"
+#include "../TBDMContainerSplitter.h"
+#include "../TBEMECXTalkToyModel.h"
+#include "../TBExtrapolTrackToCaloTool.h"
+#include "../TBTrackToCaloAlg.h"
 
 DECLARE_COMPONENT( TBXMLWriter )
 DECLARE_COMPONENT( TBAlgoSequencer )
diff --git a/Tools/PyJobTransforms/python/trfArgClasses.py b/Tools/PyJobTransforms/python/trfArgClasses.py
index 54946e52ab2c38b5381e7fffbb8e13ee9ad9fb66..1ee21b953cbafbd22033b4534c265de1d7ce7337 100644
--- a/Tools/PyJobTransforms/python/trfArgClasses.py
+++ b/Tools/PyJobTransforms/python/trfArgClasses.py
@@ -21,7 +21,7 @@ msg = logging.getLogger(__name__)
 
 import PyJobTransforms.trfExceptions as trfExceptions
 
-from PyJobTransforms.trfFileUtils import athFileInterestingKeys, AthenaLiteFileInfo, NTUPEntries, HISTEntries, urlType, ROOTGetSize
+from PyJobTransforms.trfFileUtils import athFileInterestingKeys, AthenaLiteFileInfo, NTUPEntries, HISTEntries, PRWEntries, urlType, ROOTGetSize
 from PyJobTransforms.trfUtils import call, cliToKey
 from PyJobTransforms.trfExitCodes import trfExit as trfExit
 from PyJobTransforms.trfDecorators import timelimited
@@ -1578,14 +1578,26 @@ class argNTUPFile(argFile):
                                    'file_guid': self._generateGUID,
                                    'integrity': self._getIntegrity,
                                    })
-                
-        
+
+        if name and 'NTUP_PILEUP' in name:
+            self._metadataKeys.update({
+                                       'sumOfWeights': self._getNumberOfEvents,
+                                       })
+
     def _getNumberOfEvents(self, files):
         msg.debug('Retrieving event count for NTUP files {0}'.format(files))
         if self._treeNames is None:
-            msg.debug('treeNames is set to None - event count undefined for this NTUP')
             for fname in files:
-                self._fileMetadata[fname]['nentries'] = 'UNDEFINED'
+                # Attempt to treat this as a pileup reweighting file
+                myEntries = PRWEntries(fileName=fname)
+                if myEntries is not None:
+                    self._fileMetadata[fname]['nentries'] = myEntries
+                    if self.name and 'NTUP_PILEUP' in self.name:
+                        myEntries = PRWEntries(fileName=fname, integral=True)
+                        self._fileMetadata[fname]['sumOfWeights'] = myEntries
+                else:
+                    msg.debug('treeNames is set to None - event count undefined for this NTUP')
+                    self._fileMetadata[fname]['nentries'] = 'UNDEFINED'
         else:
             for fname in files:
                 try:
@@ -1718,6 +1730,70 @@ class argHepEvtAsciiFile(argFile):
                 msg.error('Event count for file {0} failed: {1!s}'.format(fname, e))
                 self._fileMetadata[fname]['nentries'] = None
                 
+## @brief LHE ASCII file 
+class argLHEFile(argFile):
+    def __init__(self, value=list(), io = 'output', type=None, splitter=',', runarg=True, multipleOK=None, name=None):
+        super(argLHEFile, self).__init__(value=value, io=io, type=type, splitter=splitter, runarg=runarg, multipleOK=multipleOK,
+                                           name=name)
+
+        self._metadataKeys.update({
+                'nentries': self._getNumberOfEvents,
+                'lheSumOfPosWeights': self._getWeightedEvents,
+                'lheSumOfNegWeights': 0,
+                })
+
+    def _getNumberOfEvents(self, files):
+        msg.debug('Retrieving event count for LHE file {0}'.format(files))
+        import tarfile
+        for fname in files:
+            # Attempt to treat this as a pileup reweighting file
+            try :
+                tar = tarfile.open(fname, "r:gz")
+                lhecount = 0
+                for untar in tar.getmembers():
+                    fileTXT = tar.extractfile(untar)
+                    if fileTXT is not None :
+                        lines = fileTXT.read()
+                        lhecount = lines.find('/event')
+
+                self._fileMetadata[fname]['nentries'] = lhecount
+            except :
+                msg.debug('Entries is set to None - event count undefined for this LHE')
+                self._fileMetadata[fname]['nentries'] = 'UNDEFINED'
+
+    def _getWeightedEvents(self, files):
+        msg.debug('Retrieving weight count for LHE file {0}'.format(files))
+        import tarfile
+        import re
+
+        for fname in files:
+            weightPos = 0
+            weightNeg = 0
+            try :
+                tar = tarfile.open(fname, "r:gz")
+                for untar in tar.getmembers():
+                    fileTXT = tar.extractfile(untar)
+                    next = False
+                    if fileTXT is not None :
+                        lines = fileTXT.readlines()
+                        for line in lines :
+                            if next :
+                                try :
+                                    w = float(re.sub(' +',' ',line).split(" ")[2])
+                                    if w > 0 : weightPos += w
+                                    else : weightNeg += abs(w)
+                                except :
+                                    pass
+                                next = False
+                            if "<event" in line :
+                                next = True
+
+                self._fileMetadata[fname]['lheSumOfPosWeights'] = weightPos
+                self._fileMetadata[fname]['lheSumOfNegWeights'] = weightNeg
+            except :
+                msg.debug('Entries is set to None - negative fraction count undefined for this LHE')
+                self._fileMetadata[fname]['lheSumOfPosWeights'] = 'UNDEFINED'
+                self._fileMetadata[fname]['lheSumOfNegWeights'] = 'UNDEFINED'
 
 ## @brief Base class for substep arguments
 #  @details Sets up a dictionary with {substep1: value1, substep2: value2, ...}
diff --git a/Tools/PyJobTransforms/python/trfArgs.py b/Tools/PyJobTransforms/python/trfArgs.py
index a8b8f1669209eb109c398d6a0d6fbf35f25bb3b8..e35e36141934c196796052144455c4b91b456a43 100644
--- a/Tools/PyJobTransforms/python/trfArgs.py
+++ b/Tools/PyJobTransforms/python/trfArgs.py
@@ -475,8 +475,8 @@ def addExtraDPDTypes(parser, pick=None, transform=None, multipleOK=False, NTUPMe
                 msg.debug('Adding DPD {0} ({1}, {2}, {3}, {4})'.format(dpd.name, dpd.type, dpd.substeps, dpd.treeNames, dpd.argclass))
                 # NTUPs are a bit special as they can take a treeName to count events
                 if issubclass(dpd.argclass, trfArgClasses.argNTUPFile):
-                    parser.add_argument('--output' + dpd.name + 'File', 
-                                        type=argFactory(dpd.argclass, multipleOK=multipleOK, type=dpd.type, treeNames=dpd.treeNames), 
+                    parser.add_argument('--output' + dpd.name + 'File',
+                                        type=argFactory(dpd.argclass, name=dpd.name.upper(), multipleOK=multipleOK, type=dpd.type, treeNames=dpd.treeNames), 
                                         group = 'Additional DPDs', metavar=dpd.name.upper(), 
                                         help=dpd.help if dpd.help else 'DPD output {0} file'.format(dpd.name))
                 else:
diff --git a/Tools/PyJobTransforms/python/trfFileUtils.py b/Tools/PyJobTransforms/python/trfFileUtils.py
index 0735647bc6e21510d2e6f66557ba577b448a30da..b76fba42e416069e581d1243ac69895b047b3b71 100644
--- a/Tools/PyJobTransforms/python/trfFileUtils.py
+++ b/Tools/PyJobTransforms/python/trfFileUtils.py
@@ -212,6 +212,48 @@ def NTUPEntries(fileName, treeNames):
     return numberOfEntries
 
 
+## @brief Determines number of entries in PRW file
+#  @param fileName Path to the PRW file.
+#  @param integral Returns sum of weights if true
+#  @return 
+#  - Number of entries.
+#  - Sum of weights if integral is true.
+#  - @c None if the determination failed.
+#  @note Use the PyCmt forking decorator to ensure that ROOT is run completely within 
+#  a child process and will not 'pollute' the parent python process with unthread-safe
+#  bits of code (otherwise strange hangs are observed on subsequent uses of ROOT)
+@_decos.forking
+def PRWEntries(fileName, integral=False):
+
+    root = import_root()
+
+    fname = root.TFile.Open(fileName, 'READ')
+
+    if not (isinstance(fname, root.TFile) and fname.IsOpen()):
+        return None
+
+    rundir = None
+
+    for key in fname.GetListOfKeys():
+        if key.GetName()=='PileupReweighting':
+            rundir = fname.Get('PileupReweighting')
+            break
+        # Not PRW...
+
+    if rundir is None: return None
+
+    total = 0
+    for key in rundir.GetListOfKeys():
+        if 'pileup' in key.GetName():
+            msg.debug('Working on file '+fileName+' histo '+key.GetName())
+            if integral:
+                total += rundir.Get(key.GetName()).Integral()
+            else:
+                total += rundir.Get(key.GetName()).GetEntries()
+        # Was not one of our histograms
+    return total
+
+
 ## @brief Get the size of a file via ROOT's TFile
 #  @details Use TFile.Open to retrieve a ROOT filehandle, which will
 #  deal with all non-posix filesystems. Return the GetSize() value.
diff --git a/Tracking/TrkDetDescr/TrkGeometry/CMakeLists.txt b/Tracking/TrkDetDescr/TrkGeometry/CMakeLists.txt
index 84207b9d4e21c743e0fec1fd9bbddc0bba18e50d..5fca33de8b83d15804b855b945748a459bf51b7a 100644
--- a/Tracking/TrkDetDescr/TrkGeometry/CMakeLists.txt
+++ b/Tracking/TrkDetDescr/TrkGeometry/CMakeLists.txt
@@ -9,9 +9,7 @@ atlas_subdir( TrkGeometry )
 atlas_depends_on_subdirs( PUBLIC
                           Control/AthenaBaseComps
                           Control/AthenaKernel
-                          Control/CLIDSvc
-                          Control/DataModel
-                          Control/SGTools
+                          Control/AthContainers
                           DetectorDescription/GeoPrimitives
                           GaudiKernel
                           Tracking/TrkDetDescr/TrkDetDescrUtils
@@ -34,12 +32,12 @@ atlas_add_library( TrkGeometry
                    PUBLIC_HEADERS TrkGeometry
                    INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS}
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel DataModel SGTools GeoPrimitives GaudiKernel TrkDetDescrUtils TrkGeometrySurfaces TrkSurfaces TrkVolumes TrkEventPrimitives TrkNeutralParameters TrkParameters
+                   LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel AthContainers GeoPrimitives GaudiKernel TrkDetDescrUtils TrkGeometrySurfaces TrkSurfaces TrkVolumes TrkEventPrimitives TrkNeutralParameters TrkParameters
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} EventPrimitives )
 
 atlas_add_dictionary( TrkGeometryDict
                       TrkGeometry/TrkGeometryDict.h
                       TrkGeometry/selection.xml
                       INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel DataModel SGTools GeoPrimitives GaudiKernel TrkDetDescrUtils TrkGeometrySurfaces TrkSurfaces TrkVolumes TrkEventPrimitives TrkNeutralParameters TrkParameters EventPrimitives TrkGeometry )
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel AthContainers GeoPrimitives GaudiKernel TrkDetDescrUtils TrkGeometrySurfaces TrkSurfaces TrkVolumes TrkEventPrimitives TrkNeutralParameters TrkParameters EventPrimitives TrkGeometry )
 
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ElementTable.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ElementTable.h
index bcaac9c8c7bc6a28e75cde19fc6c80628d2c97cc..1cc9007752daa57917b8c74e3f5b475997e0a3c6 100644
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ElementTable.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ElementTable.h
@@ -11,10 +11,10 @@
 
 
 #include "TrkGeometry/Material.h"
+#include "AthenaKernel/CLASS_DEF.h"
 #include <vector>
 #include <climits>
 #include <memory>
-#include "CLIDSvc/CLASS_DEF.h"
 
 class MsgStream;
 
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialCollection.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialCollection.h
index 65c444b465b931974b3e7109b1bd4c97a9318f15..84da1e882aecc3b026ae964bdff8fa3e8ac555ae 100644
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialCollection.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialCollection.h
@@ -11,8 +11,8 @@
 
 // Trk & Gaudi
 #include "TrkGeometry/LayerMaterialProperties.h"
-#include "DataModel/DataVector.h"
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthContainers/DataVector.h"
+#include "AthenaKernel/CLASS_DEF.h"
 
 namespace Trk {
 
@@ -22,4 +22,4 @@ namespace Trk {
 
 CLASS_DEF( Trk::LayerMaterialCollection, 1264846423, 1 )
 
-#endif
\ No newline at end of file
+#endif
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialMap.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialMap.h
index 179223b79331e640e6733cebf0823bc780c8c674..c7963b00ceea2b280b84a3efd27f01ba59e3ba3b 100644
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialMap.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/LayerMaterialMap.h
@@ -15,7 +15,7 @@
 #include "TrkDetDescrUtils/SharedObject.h"
 #include "TrkGeometry/LayerMaterialProperties.h"
 #include "TrkGeometry/ElementTable.h"
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthenaKernel/CLASS_DEF.h"
 
 namespace Trk {
           
@@ -101,4 +101,4 @@ CLASS_DEF( Trk::LayerMaterialMap, 142190734, 1 )
 
 // 142190734 Trk::LayerMaterialMap None
 
-#endif
\ No newline at end of file
+#endif
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/MaterialStepCollection.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/MaterialStepCollection.h
index 503e4f8d71c1174555eb77fa810a29f9309d1220..e48a456d3a5545ba82574c4be4d96103723c3512 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/MaterialStepCollection.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/MaterialStepCollection.h
@@ -10,8 +10,8 @@
 #define TRKGEOMETRY_MATERIALSTEPCOLLECTION_H
 
 #include "TrkGeometry/MaterialStep.h"
-#include "DataModel/DataVector.h"
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthContainers/DataVector.h"
+#include "AthenaKernel/CLASS_DEF.h"
  
 namespace Trk {
     typedef DataVector<Trk::MaterialStep> MaterialStepCollection;
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrackingGeometry.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrackingGeometry.h
index 03c2858d573fe94aba7f958cf9eafa4bf4bcb6da..965a66b9fdbcfc0344141ba13edd634c275852f3 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrackingGeometry.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrackingGeometry.h
@@ -15,7 +15,7 @@
 #include "TrkGeometry/TrackingVolume.h"
 #include "TrkDetDescrUtils/GeometrySignature.h"
 // CLASS DEF
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthenaKernel/CLASS_DEF.h"
 // STL
 #include <map>
 // ATH_MSG macros
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrkGeometryDict.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrkGeometryDict.h
index 943c52d56de477bf24bb45e2ee4564bdb5c2c8b0..3eed206381115b5586fdec9c8dc18471eb1e5640 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrkGeometryDict.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/TrkGeometryDict.h
@@ -7,7 +7,7 @@
 
 #include "TrkGeometry/MaterialStep.h"
 #include "TrkGeometry/Layer.h"
-#include "DataModel/DataVector.h"
+#include "AthContainers/DataVector.h"
 
 namespace TrkDetDetDescrPoolRegister {
      /** the standard vector of MaterialStep */
diff --git a/Tracking/TrkEvent/TrkCaloClusterROI/CMakeLists.txt b/Tracking/TrkEvent/TrkCaloClusterROI/CMakeLists.txt
index bbacb6928b0bfa02cfe747515d75f0c35bc96f92..1b2f586192be70447bdca08a62b7101f53b1b324 100644
--- a/Tracking/TrkEvent/TrkCaloClusterROI/CMakeLists.txt
+++ b/Tracking/TrkEvent/TrkCaloClusterROI/CMakeLists.txt
@@ -7,9 +7,8 @@ atlas_subdir( TrkCaloClusterROI )
 
 # Declare the package's dependencies:
 atlas_depends_on_subdirs( PUBLIC
-                          Control/CLIDSvc
-                          Control/DataModel
-                          Control/SGTools
+                          Control/AthContainers
+                          Control/AthenaKernel
                           DetectorDescription/GeoPrimitives
                           Event/EventPrimitives
                           PRIVATE
@@ -26,6 +25,6 @@ atlas_add_library( TrkCaloClusterROI
                    PUBLIC_HEADERS TrkCaloClusterROI
                    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} TrkSurfaces TrkEventPrimitives )
 
diff --git a/Tracking/TrkEvent/TrkCaloClusterROI/TrkCaloClusterROI/CaloClusterROI_Collection.h b/Tracking/TrkEvent/TrkCaloClusterROI/TrkCaloClusterROI/CaloClusterROI_Collection.h
index 15691e462e2dd2e15eb2164cb960d9c96c725dfe..76b28541c5454e77ba8598cc86d1e63b463758cc 100644
--- a/Tracking/TrkEvent/TrkCaloClusterROI/TrkCaloClusterROI/CaloClusterROI_Collection.h
+++ b/Tracking/TrkEvent/TrkCaloClusterROI/TrkCaloClusterROI/CaloClusterROI_Collection.h
@@ -6,8 +6,8 @@
 #define TRKCALOCLUSTERROI_COLLECTION_H
 
 
-#include "DataModel/DataVector.h"
-#include "CLIDSvc/CLASS_DEF.h"
+#include "AthContainers/DataVector.h"
+#include "AthenaKernel/CLASS_DEF.h"
 
 #include "TrkCaloClusterROI/CaloClusterROI.h"
 
diff --git a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.cxx b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.cxx
index 11687e7dc14ddde144834614e2c3a90f8d8e22ef..f7e96d53eb0aea8b89c39727e09b71b24ce471fb 100755
--- a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.cxx
+++ b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.cxx
@@ -57,8 +57,6 @@ TrigCaloCellMakerMT::TrigCaloCellMakerMT(const std::string& name, ISvcLocator* p
   : AthAlgorithm(name, pSvcLocator),
     m_counter(0),
     m_dataAccessSvc( "TrigCaloDataAccessSvc/TrigCaloDataAccessSvc", name ),
-    m_caloCellContainer(NULL),
-    m_trigCaloQuality(NULL),
     m_fullScanEnabled(false),
     m_trustRoiLimits(false),
     m_createRoiForID(false),
diff --git a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.h b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.h
index 196f733c96af740e9fae01ed77564601f7d4caed..87b1eee3d9dc010dd28181aed1f83ec5dd3d7218 100755
--- a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.h
+++ b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloCellMakerMT.h
@@ -65,7 +65,6 @@ class TrigCaloCellMakerMT : public AthAlgorithm {
   int m_neta, m_nphi;
 
   /** Prescale factor for persistency **/
-  unsigned int m_persistencyPSF;
   std::string  m_persistencyKey;  
   unsigned int m_counter;
 
@@ -112,14 +111,6 @@ class TrigCaloCellMakerMT : public AthAlgorithm {
       "output TrigCaloQuality"};
 
 
-  /** Produced Calorimeter Cell Container. */
-  CaloCellContainer* m_caloCellContainer;
-
-  
-  /** data preparation error */
-  //  unsigned int m_conversionError[6];
-  TrigCaloQuality * m_trigCaloQuality;
-
   //  double m_EtaL2, m_PhiL2;
   bool m_fullScanEnabled;
 
diff --git a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.cxx b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.cxx
index d284d1d363c9733883aa57914793691496818600..0dbb0a15a9311f30bab45a3ade09abbe64e9bfa5 100644
--- a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.cxx
+++ b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.cxx
@@ -59,8 +59,7 @@ class ISvcLocator;
 //
 TrigCaloClusterMakerMT::TrigCaloClusterMakerMT(const std::string& name, ISvcLocator* pSvcLocator)
   : AthAlgorithm(name, pSvcLocator),
-    m_pCaloClusterContainer(NULL),
-    m_pTrigCaloQuality(NULL)
+    m_pCaloClusterContainer(NULL)
 {
 
   // Eta and Phi size of the RoI window...
diff --git a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.h b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.h
index aeff6f449608571b282c6bc5334e98e337f3c82d..18ad1df9a59ec99d87695365c6298704bc62e98b 100644
--- a/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.h
+++ b/Trigger/TrigAlgorithms/TrigCaloRec/src/TrigCaloClusterMakerMT.h
@@ -58,7 +58,6 @@ class TrigCaloClusterMakerMT : public AthAlgorithm {
   std::vector<CaloClusterCollectionProcessor*> m_clusterMakerPointers;      //pointers to tools
   std::vector<CaloClusterProcessor*>           m_clusterCorrectionPointers; //pointers to tools
   xAOD::CaloClusterContainer* m_pCaloClusterContainer;
-  TrigCaloQuality*      m_pTrigCaloQuality;
 
 //   double m_Eta;
 //   double m_Phi;
diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaToolFactories.py b/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaToolFactories.py
index c1d7f42972897a9a57170933bb3a58ea464fb35c..3c3f60136a59946aef4711383cca7c53f5459f2a 100644
--- a/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaToolFactories.py
+++ b/Trigger/TrigAlgorithms/TrigEgammaRec/python/TrigEgammaToolFactories.py
@@ -136,12 +136,9 @@ TrigEMShowerBuilder = EMShowerBuilder.copyPublic(
 )
 
 from TriggerMenu.egamma.EgammaSliceFlags import EgammaSliceFlags
-from egammaMVACalib import egammaMVACalibConf 
 mlog.info("MVA version version %s"%EgammaSliceFlags.calibMVAVersion() )
 mlog.info("Cluster Correction version %s"%EgammaSliceFlags.clusterCorrectionVersion() )
 EgammaSliceFlags.calibMVAVersion.set_On()
-TrigEgammaMVACalibTool = PublicToolFactory(egammaMVACalibConf.egammaMVATool,name="TrigEgammaMVACalibTool",
-        folder=EgammaSliceFlags.calibMVAVersion(),use_layer_corrected = False)
 
 from TrigCaloRec.TrigCaloRecConf import TrigCaloClusterMaker
 
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h
index d44ff092a34e892cb8021e07e571d9b0f0fb1107..850ed18d98bd213822bbd8bbcc3d891768e8324b 100755
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavBaseTool.h
@@ -30,7 +30,6 @@
 #include "xAODCaloEvent/CaloClusterAuxContainer.h"
 #include "xAODJet/JetContainer.h"
 #include "xAODTrigger/EmTauRoIContainer.h"
-#include "egammaMVACalib/IegammaMVATool.h"
 #include "EgammaAnalysisInterfaces/IAsgElectronIsEMSelector.h"
 #include "EgammaAnalysisInterfaces/IAsgPhotonIsEMSelector.h"
 #include "EgammaAnalysisInterfaces/IAsgElectronLikelihoodTool.h"
@@ -39,7 +38,6 @@
 namespace Trig{
             class FeatureContainer;
 }
-class IegammaMVATool;
 
 class TrigEgammaNavBaseTool
 : public TrigEgammaAnalysisBaseTool,
diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h
index 27a7c801734a429928ecbdc59420a950b9072ee4..317521db5d47f6ac02bc32ebd26abb8ec1f37e78 100644
--- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h
+++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/TrigEgammaAnalysisTools/TrigEgammaNavTPBaseTool.h
@@ -29,7 +29,6 @@
 #include "xAODCaloEvent/CaloClusterAuxContainer.h"
 #include "xAODJet/JetContainer.h"
 #include "xAODTrigger/EmTauRoIContainer.h"
-#include "egammaMVACalib/IegammaMVATool.h"
 #include "EgammaAnalysisInterfaces/IAsgElectronIsEMSelector.h"
 #include "EgammaAnalysisInterfaces/IAsgPhotonIsEMSelector.h"
 #include "EgammaAnalysisInterfaces/IAsgElectronLikelihoodTool.h"
@@ -37,7 +36,6 @@
 namespace Trig{
             class FeatureContainer;
 }
-class IegammaMVATool;
 
 class TrigEgammaNavTPBaseTool
 : public TrigEgammaAnalysisBaseTool,
diff --git a/Trigger/TrigFTK/TrigFTKSim/share/skeleton.AOD_FTK_Creator.py b/Trigger/TrigFTK/TrigFTKSim/share/skeleton.AOD_FTK_Creator.py
index f295b0dd522df8985b5bf00dd83a4954be9a5c18..2b38375bd4513b1cbf96d2273a85950ae9a8dc0e 100755
--- a/Trigger/TrigFTK/TrigFTKSim/share/skeleton.AOD_FTK_Creator.py
+++ b/Trigger/TrigFTK/TrigFTKSim/share/skeleton.AOD_FTK_Creator.py
@@ -20,7 +20,11 @@ if hasattr(runArgs,"preInclude"):
 
 from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
 
-athenaCommonFlags.FilesInput = runArgs.inputRDO_FTKFile
+if hasattr(runArgs,"inputRDO_FTKFile"):
+    athenaCommonFlags.FilesInput = runArgs.inputRDO_FTKFile
+
+elif hasattr(runArgs,"inputBS_FTKFile"):
+    athenaCommonFlags.FilesInput = runArgs.inputBS_FTKFile
 
 if hasattr(runArgs,"maxEvents"):
     ftkLog.info("Setting number of events: %d" % runArgs.maxEvents)
diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFCaloCalibFex.h b/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFCaloCalibFex.h
index 03c7c966fa1269647453951194e2895e2a9755c1..f2c25b87b07713b0ff008d3410148058b7712c06 100755
--- a/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFCaloCalibFex.h
+++ b/Trigger/TrigHypothesis/TrigEgammaHypo/TrigEgammaHypo/TrigEFCaloCalibFex.h
@@ -32,8 +32,9 @@
 
 #include "xAODCaloEvent/CaloClusterContainer.h"
 #include "CaloUtils/CaloCellDetPos.h"
+#include "egammaInterfaces/IegammaMVASvc.h"
+
 class TrigCaloQuality;
-class IegammaMVATool;
 /**
  * \class TrigEFCaloCalibFex 
  * \brief TrigEFCaloCalibFex is a Trigger Fex Algorithm that retrieves the EF xAODCaloCluster
@@ -61,13 +62,13 @@ class TrigEFCaloCalibFex : public HLT::FexAlgo  {
   // to set Accept-All mode 
   bool m_acceptAll;
   bool m_applyMVACalib;
-  std::string m_egType;
+  int m_egType;
   std::string m_persKey; // Cluster container key
   xAOD::CaloClusterContainer* m_pCaloClusterContainer; //!<  pointer to CaloClusterContainer 
   
   CaloCellDetPos *m_caloCellDetPos;
   /** Handle to the MVA calibration Tool **/
-  ToolHandle<IegammaMVATool>  m_MVACalibTool;  
+  ServiceHandle<IegammaMVASvc>  m_MVACalibSvc {this, "MVACalibSvc", ""};  
 
   // Timers
   TrigTimer* m_totalTimer;
diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigEFCaloCalibFexConfig.py b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigEFCaloCalibFexConfig.py
index d3491d181dc22f8479e55e9c3f9c30c6ffe4f72e..a1c7447d7f4bbbd110e84c2aa62f2d2fb5c43e28 100644
--- a/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigEFCaloCalibFexConfig.py
+++ b/Trigger/TrigHypothesis/TrigEgammaHypo/python/TrigEFCaloCalibFexConfig.py
@@ -12,7 +12,9 @@ from AthenaCommon.SystemOfUnits import GeV, mm
 from AthenaCommon.AppMgr import ToolSvc
 from egammaRec.Factories import Factory, ToolFactory
 
-from TrigEgammaRec.TrigEgammaToolFactories import TrigEgammaMVACalibTool
+
+from egammaMVACalib.TrigEgammaMVACalibFactories import TrigEgammaMVASvc
+
 def configureTrigEFCaloCalibFexMonitoring(tool):
     
     from TrigEgammaHypo.TrigEFCaloHypoMonitoring import TrigEFCaloCalibFexValidationMonitoring, TrigEFCaloCalibFexOnlineMonitoring
@@ -23,11 +25,15 @@ def configureTrigEFCaloCalibFexMonitoring(tool):
 
     tool.AthenaMonTools = [ time, validation, online ]
 
+import cppyy
+cppyy.loadDictionary('xAODEgammaDict')
+from ROOT import xAOD
+
 TrigEFCaloCalibFex_Electron = Factory(TrigEgammaHypoConf.TrigEFCaloCalibFex, name = "TrigEFCaloCalibFex_Electron", doAdd=False, 
         AcceptAll = True,
         ApplyMVACalib = True,
-        MVACalibTool = TrigEgammaMVACalibTool,
-        egType = 'Electron',
+        MVACalibSvc = TrigEgammaMVASvc,
+        egType = xAOD.EgammaParameters.electron,
         ClusterContainerKey = 'TrigEFCaloCalibFex',
         postInit = [configureTrigEFCaloCalibFexMonitoring],
         )
@@ -35,8 +41,8 @@ TrigEFCaloCalibFex_Electron = Factory(TrigEgammaHypoConf.TrigEFCaloCalibFex, nam
 TrigEFCaloCalibFex_Photon = Factory(TrigEgammaHypoConf.TrigEFCaloCalibFex, name = "TrigEFCaloCalibFex_Photon", doAdd=False, 
         AcceptAll = True,
         ApplyMVACalib = True,
-        MVACalibTool = TrigEgammaMVACalibTool,
-        egType = 'Photon',
+        MVACalibSvc = TrigEgammaMVASvc,
+        egType = xAOD.EgammaParameters.unconvertedPhoton,
         ClusterContainerKey = 'TrigEFCaloCalibFex',
         postInit = [configureTrigEFCaloCalibFexMonitoring],
         )
diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFCaloCalibFex.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFCaloCalibFex.cxx
index 065eebc8689863f617f2b6da8f881686d638c1c9..0e29c02124f6194ff2042d637683387e3b824a25 100755
--- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFCaloCalibFex.cxx
+++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFCaloCalibFex.cxx
@@ -21,7 +21,6 @@
 #include "xAODCaloEvent/CaloClusterContainer.h"
 #include "CaloUtils/CaloClusterStoreHelper.h"
 #include "TrigCaloRec/TrigCaloQuality.h"
-#include "egammaMVACalib/IegammaMVATool.h"
 #include "xAODEgamma/EgammaEnums.h"
 
 class ISvcLocator;
@@ -32,8 +31,8 @@ TrigEFCaloCalibFex::TrigEFCaloCalibFex(const std::string & name, ISvcLocator* pS
 {
   // Read cuts - should probably get these from an xml file
   declareProperty( "AcceptAll",            m_acceptAll  = false );
-  declareProperty( "egType", m_egType = "Electron");
-  declareProperty("MVACalibTool", m_MVACalibTool);
+  declareProperty( "egType", m_egType = xAOD::EgammaParameters::electron);
+  //declareProperty("MVACalibSvc", m_MVACalibSvc);
   declareProperty("ApplyMVACalib", m_applyMVACalib=true);
   declareProperty("ClusterContainerKey", m_persKey="TrigEFCaloCalibFex");
   m_caloCellDetPos = new CaloCellDetPos();
@@ -72,19 +71,19 @@ HLT::ErrorCode TrigEFCaloCalibFex::hltInitialize()
   ATH_MSG_DEBUG("AcceptAll            = "	<< (m_acceptAll==true ? "True" : "False") ); 
   // Get the cluster correction tool
   
-  if(m_MVACalibTool.retrieve().isFailure()) {
-      ATH_MSG_ERROR("Failed to retrieve " << m_MVACalibTool);
+  if(m_MVACalibSvc.retrieve().isFailure()) {
+      ATH_MSG_ERROR("Failed to retrieve " << m_MVACalibSvc);
       m_applyMVACalib = false;
       return HLT::BAD_JOB_SETUP;
   }
   else {
-      ATH_MSG_DEBUG("Retrieved tool " << m_MVACalibTool);   
+      ATH_MSG_DEBUG("Retrieved service " << m_MVACalibSvc);   
   }
   
   
   if (timerSvc()){
    m_totalTimer  = addTimer("TrigEFCaloCalibFexTot");
-   m_toolTimer = addTimer("MVACalibTool");
+   m_toolTimer = addTimer("MVACalibSvc");
   }
   
   ATH_MSG_DEBUG("Initialization of TrigEFCaloHypo completed successfully");
@@ -259,7 +258,7 @@ HLT::ErrorCode TrigEFCaloCalibFex::hltExecute(const HLT::TriggerElement* inputTE
             ATH_MSG_DEBUG("Applying MVA Calib");
 
             if (timerSvc()) m_toolTimer->start();    
-            if(m_MVACalibTool->hltexecute(newClus,m_egType).isFailure())
+            if(m_MVACalibSvc->execute(*newClus,static_cast<xAOD::EgammaParameters::EgammaType>(m_egType)).isFailure())
                 ATH_MSG_DEBUG("MVACalib Fails");
             if (timerSvc()) m_toolTimer->stop();    
         }
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMufastHypoTool.h b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMufastHypoTool.h
index 6f0d9a00da5b0af477019216407d3d544c3c1fec..5a8292f8ffd80badd864da00b234ee617f5c7d3d 100644
--- a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMufastHypoTool.h
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMufastHypoTool.h
@@ -41,18 +41,20 @@ class TrigMufastHypoTool: public ::AthAlgTool {
     virtual ~TrigMufastHypoTool();
 
     struct MuonClusterInfo {
-    MuonClusterInfo( TrigCompositeUtils::Decision* d, const TrigRoiDescriptor* r, const xAOD::L2StandAloneMuon* c,
+    MuonClusterInfo( TrigCompositeUtils::Decision* d, 
+                     const TrigRoiDescriptor* r, 
+                     const xAOD::L2StandAloneMuon* f,
   		     const TrigCompositeUtils::Decision* previousDecision )
     : decision( d ), 
       roi( r ),
-      cluster( c ),
-      previousDecisionIDs(TrigCompositeUtils::decisionIDs( previousDecision ).begin(), 
-			  TrigCompositeUtils::decisionIDs( previousDecision ).end() )
+      muFast( f ),
+      previousDecisionIDs( TrigCompositeUtils::decisionIDs( previousDecision ).begin(), 
+			   TrigCompositeUtils::decisionIDs( previousDecision ).end() )
       {}
       
       TrigCompositeUtils::Decision* decision;
       const TrigRoiDescriptor* roi;
-      const xAOD::L2StandAloneMuon* cluster;
+      const xAOD::L2StandAloneMuon* muFast;
       const TrigCompositeUtils::DecisionIDContainer previousDecisionIDs;
     };
 
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoAlg.h b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoAlg.h
index 6c9450a151e504307a27131c7a7e6d41a14347b8..3cd7ad743d152343b6fe147adf384dd7afec9c7c 100644
--- a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoAlg.h
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoAlg.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "AthenaBaseComps/AthReentrantAlgorithm.h" 
+//#include "AthenaBaseComps/AthReentrantAlgorithm.h" 
 #include "StoreGate/ReadHandleKey.h"
 #include "StoreGate/WriteHandleKey.h"
 
@@ -16,6 +16,7 @@
 #include "AthViews/View.h"
 
 #include "TrigMuonHypo/TrigmuCombHypoTool.h"
+#include "DecisionHandling/HypoBase.h"
 
 class StoreGateSvc;
 class TriggerElement;
@@ -24,7 +25,7 @@ class TriggerElement;
 // --------------------------------------------------------------------------------
 
 class TrigmuCombHypoAlg
-   : public ::AthReentrantAlgorithm
+   : public ::HypoBase
 {
   public:
 
@@ -41,16 +42,7 @@ class TrigmuCombHypoAlg
     TrigmuCombHypoAlg(); 
     ToolHandleArray<TrigmuCombHypoTool> m_hypoTools {this, "HypoTools", {}, "Tools to perform selection"}; 
 
-    SG::WriteHandleKey<TrigCompositeUtils::DecisionContainer> m_decisionsKey{
-	this, "Decisions", "MuonL2CBDecisions", "Name of the decision objects produced by TrigmuCombHypo"};
-
-    SG::ReadHandleKey<TrigCompositeUtils::DecisionContainer> m_muonDecisionsKey{
-	this, "L2MuonFastDecisions", "L2MuonFastDecisions", "Name of the decisions objects to input from TrigMufastHypo"};
-
-    SG::ReadHandleKey< ViewContainer > m_viewsKey{
-	this, "ViewRoIs", "MUTrkViewRoIs", "Name of the views produced by EVCA"};
-
-    SG::ReadHandleKey<xAOD::L2CombinedMuonContainer> m_combinedKey{
+    SG::ReadHandleKey<xAOD::L2CombinedMuonContainer> m_muCombKey {
 	this, "MuonL2CBInfoFromMuCombAlg", "MuonL2CBInfo", "Name of the input data produced by muCombMT"};
 };
 
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoTool.h b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoTool.h
index d135e76be3b10d80c7888f8c93fe64b9fc64490f..f3c2d6b1688e61ff0f15e192eec5cc0c6ea1b789 100644
--- a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoTool.h
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigmuCombHypoTool.h
@@ -40,9 +40,20 @@ class TrigmuCombHypoTool: public ::AthAlgTool {
 		       const IInterface* parent );
 
     struct CombinedMuonInfo {
-      TrigCompositeUtils::Decision* decision; 
-      const xAOD::L2CombinedMuon* cluster;
-      const xAOD::L2StandAloneMuon* muon;
+    CombinedMuonInfo( TrigCompositeUtils::Decision* d, 
+                      const xAOD::L2CombinedMuon* c,
+                      const xAOD::L2StandAloneMuon* f,
+                      const TrigCompositeUtils::Decision* previousDecision )
+    : decision( d ),
+      muComb( c ),
+      muFast( f ),
+      previousDecisionIDs( TrigCompositeUtils::decisionIDs( previousDecision ).begin(),
+                           TrigCompositeUtils::decisionIDs( previousDecision ).end() )
+      {}
+
+      TrigCompositeUtils::Decision* decision;
+      const xAOD::L2CombinedMuon* muComb;
+      const xAOD::L2StandAloneMuon* muFast;
       const TrigCompositeUtils::DecisionIDContainer previousDecisionIDs;
     };
 
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py b/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py
index 4b2f376f583d2b2ed911c8342a74076a6f2f84dc..5af5cd4343e1a5012fc23933faaae928da8814ac 100755
--- a/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/python/testTrigMuonHypoConfig.py
@@ -413,6 +413,33 @@ def TrigMufastHypoToolFromName( thresholdHLT ):
     return tool
 
 
+def TrigmuCombHypoToolFromName( thresholdHLT ):	
+        
+    name = "TrigmuCombHypoTool"
+    config = TrigmuCombHypoConfig()
+    
+    # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX
+    bname = thresholdHLT.split('_') 
+    threshold = bname[1]
+    thresholds = config.decodeThreshold( threshold )
+    print "TrigmuCombHypoConfig: Decoded ", thresholdHLT, " to ", thresholds
+
+    tight = False
+    tool=config.ConfigurationHypoTool( thresholdHLT, thresholds, tight )
+    
+    # Setup MonTool for monitored variables in AthenaMonitoring package
+    TriggerFlags.enableMonitoring = ["Validation"]
+
+    try:
+            if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
+                tool.MonTool = TrigmuCombHypoMonitoring( name + "Monitoring_" + thresholdHLT ) 
+    except AttributeError:
+            tool.MonTool = ""
+            print name, ' Monitoring Tool failed'
+
+    return tool
+
+
 class TrigMufastHypoConfig():
 
     def decodeThreshold( self, threshold ):
@@ -484,44 +511,25 @@ class TrigMufastHypoConfig():
     
 
 
-# This class is copied from MucombHypoConfig.
-class TrigmuCombHypoConfig(TrigmuCombHypoAlg):
-
-    __slots__ = []
-
-    # thresholdHLT: name threshold, for example HLT_mu6 etc
-    def TrigmuCombHypoToolFromName( self, name, thresholdHLT ):
+class TrigmuCombHypoConfig():
 
-        from AthenaCommon.Constants import DEBUG
-        tool = TrigmuCombHypoTool( thresholdHLT )  
-        tool.OutputLevel = DEBUG
-
-        # Separete HLT_NmuX to bname[0]=HLT and bname[1]=NmuX
-        bname = thresholdHLT.split('_') 
-
-        threshold = bname[1]
-        thresholds = TrigMufastHypoConfig().decodeThreshold( threshold )
-        tight = False
-
-        TrigmuCombHypoConfig().ConfigrationHypoTool( name, thresholdHLT, thresholds, tight )
-        print """ Configration SUCCESS: Configure threshold """, threshold, """ at TrigmuCombHypoTool """
-
-        # Setup MonTool for monitored variables in AthenaMonitoring package
-        TriggerFlags.enableMonitoring = ["Validation"]
-
-        try:
-            if 'Validation' in TriggerFlags.enableMonitoring() or 'Online' in TriggerFlags.enableMonitoring() or 'Cosmic' in TriggerFlags.enableMonitoring():
-                tool.MonTool = TrigmuCombHypoMonitoring( name + "Monitoring_" + thresholdHLT ) 
-        except AttributeError:
-            tool.MonTool = ""
-            print name, ' Monitoring Tool failed'
+    def decodeThreshold( self, threshold ):
+        """ decodes the thresholds of the form mu6, 2mu6, ... """
+        print "decoding ", threshold
 
-        return tool
+        if threshold[0].isdigit():  # If the form is NmuX, return as list [X,X,X...N times...]
+            assert threshold[1:3] == "mu", "Two digit multiplicity not supported"
+            return [ threshold[3:] ] * int( threshold[0] )
+    
+        if threshold.count('mu') > 1:  # If theform is muXmuY, return as [X,Y]
+            return threshold.strip('mu').split('mu')
+    
+        # If the form is muX(inclusive), return as 1 element list
+        return [ threshold[2:] ]        
  
-    def ConfigrationHypoTool( self, name, thresholdHLT, thresholds, tight ):
+    def ConfigurationHypoTool( self, thresholdHLT, thresholds, tight ):
 
         tool = TrigmuCombHypoTool( thresholdHLT )
-        print 'MucombHypoConfig configured for threshold: ',thresholds
 
         datayear = "2017"
 
@@ -556,7 +564,7 @@ class TrigmuCombHypoConfig(TrigmuCombHypoAlg):
                 tool.MaxPtToApplyPik      = 25.
                 tool.MaxChi2IDPik         = 3.5
 
-        return thvaluename
+        return tool 
 
 
 class MufastHypoConfig(MufastHypo) :
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoAlg.cxx b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoAlg.cxx
index 2d99a0b409329e7a494a40862ae76f447d91f49f..b4f56f61103701722259b91e42443481e5fead11 100755
--- a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoAlg.cxx
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoAlg.cxx
@@ -115,7 +115,7 @@ StatusCode TrigMufastHypoAlg::execute_r( const EventContext& context ) const
     ATH_MSG_DEBUG("REGTEST: " << m_muFastKey.key() << " eta/phi = " << (*muonEL)->eta() << "/" << (*muonEL)->phi());
     ATH_MSG_DEBUG("REGTEST:  View = " << (*viewEL));
     ATH_MSG_DEBUG("REGTEST:  RoI  = eta/phi = " << (*roiEL)->eta() << "/" << (*roiEL)->phi());
-    ATH_MSG_DEBUG("Added view, roi, cluster, previous decision to new decision "<<counter <<" for view "<<view->name()  );
+    ATH_MSG_DEBUG("Added view, roi, feature, previous decision to new decision "<<counter <<" for view "<<view->name()  );
     counter++;
   }
 
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoTool.cxx b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoTool.cxx
index f1f9c3f9191673a3efda02fa2e29f190b72fee06..f40605c071015b52839d254f0df70a1c45d8d1ed 100755
--- a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigMufastHypoTool.cxx
@@ -120,7 +120,7 @@ bool TrigMufastHypoTool::decideOnSingleObject(TrigMufastHypoTool::MuonClusterInf
    }
 
    // Get xAOD::L2StandAloneMuon:
-   auto pMuon = input.cluster;
+   auto pMuon = input.muFast;
  
    if(!pMuon){
       result = false;
@@ -341,7 +341,7 @@ StatusCode TrigMufastHypoTool::multiplicitySelection(std::vector<TrigMufastHypoT
       auto notFromSameRoI = [&]( const HLT::Index1DVec& comb ) {
          std::set<const xAOD::L2StandAloneMuon*> setOfClusters;
          for ( auto index: comb ) {
-            setOfClusters.insert( toolInput[index].cluster );
+            setOfClusters.insert( toolInput[index].muFast );
          }
          return setOfClusters.size() == comb.size();
       };
@@ -359,7 +359,7 @@ StatusCode TrigMufastHypoTool::multiplicitySelection(std::vector<TrigMufastHypoT
 
    for ( auto idx: passingIndices ) {
       ATH_MSG_DEBUG("Muon event[" << idx << "] passes through Chain/ID " << m_decisionId 
-                    << " with pT = " << toolInput[idx].cluster->pt() << "GeV" );
+                    << " with pT = " << toolInput[idx].muFast->pt() << "GeV" );
       TrigCompositeUtils::addDecisionID( m_decisionId.numeric(), toolInput[idx].decision );
    }
 
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoAlg.cxx b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoAlg.cxx
index 2ac3137ad5669e31a353e50baeb45e7eaf5f1aaa..4f53a7f536fa2eaf8023c14c8eea5a5651895190 100644
--- a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoAlg.cxx
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoAlg.cxx
@@ -1,11 +1,12 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #include <math.h>
 
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/StatusCode.h"
+#include "AthLinks/ElementLink.h" 
 
 #include "DecisionHandling/TrigCompositeUtils.h"
 #include "xAODTrigMuon/L2StandAloneMuonContainer.h" 
@@ -19,10 +20,8 @@ using namespace TrigCompositeUtils;
 
 TrigmuCombHypoAlg::TrigmuCombHypoAlg( const std::string& name,
 				      ISvcLocator* pSvcLocator ) :
-  ::AthReentrantAlgorithm( name, pSvcLocator )
-{
-
-} 
+  ::HypoBase( name, pSvcLocator )
+{} 
 
 TrigmuCombHypoAlg::~TrigmuCombHypoAlg() 
 {}
@@ -35,14 +34,8 @@ StatusCode TrigmuCombHypoAlg::initialize()
   ATH_MSG_INFO ( "Initializing " << name() << "..." );
   ATH_CHECK(m_hypoTools.retrieve());
 
-  ATH_CHECK(m_decisionsKey.initialize());
-
-  ATH_CHECK(m_muonDecisionsKey.initialize());
-
-  ATH_CHECK(m_viewsKey.initialize());
-
-  renounce(m_combinedKey);
-  ATH_CHECK(m_combinedKey.initialize());
+  renounce(m_muCombKey);
+  ATH_CHECK(m_muCombKey.initialize());
 
   ATH_MSG_INFO( "Initialization completed successfully" );
   return StatusCode::SUCCESS;
@@ -63,93 +56,88 @@ StatusCode TrigmuCombHypoAlg::finalize()
 
 StatusCode TrigmuCombHypoAlg::execute_r(const EventContext& context) const
 {
-
+  // common for all Hypos, to move in the base class
   ATH_MSG_DEBUG("StatusCode TrigmuCombHypoAlg::execute_r start");
+  auto previousDecisionsHandle = SG::makeHandle( decisionInput(), context);
+  if ( not previousDecisionsHandle.isValid() ) {//implicit
+    ATH_MSG_DEBUG( "No implicit ReadHandles for previous decisions " << decisionInput().key() << ": is this expected?");
+    return StatusCode::SUCCESS;
+  }
+  ATH_MSG_DEBUG( "Running with " << previousDecisionsHandle->size() << " implicit ReadHandles for previous decisions");
 
-  // prepare decisions container
   auto decisions = std::make_unique<DecisionContainer>();
   auto aux = std::make_unique<DecisionAuxContainer>();
   decisions->setStore(aux.get());
-
-  // extract mapping of cluster pointer to an index in the cluster decision collection
-  auto clusterDecisionsHandle= SG::makeHandle( m_muonDecisionsKey, context );
-  std::map<const xAOD::L2StandAloneMuon*, size_t> clusterToIndexMap;
-
-  size_t clusterCounter = 0;
-  for (auto cluIter = clusterDecisionsHandle->begin(); cluIter != clusterDecisionsHandle->end(); ++cluIter) {
-    ATH_CHECK((*cluIter)->hasObjectLink("feature"));
-    const xAOD::L2StandAloneMuon* cluster = (*cluIter)->object<xAOD::L2StandAloneMuon>("feature");
-    clusterToIndexMap.insert(std::make_pair(cluster, clusterCounter));
- 
-    ++clusterCounter;
-  }
-  ATH_MSG_DEBUG( "Cluster ptr to decision map has size " << clusterToIndexMap.size() );
-
-  // prepare imput for tools  
-  std::vector<TrigmuCombHypoTool::CombinedMuonInfo> hypoToolInput;
-
-  // retrieve views created on l2muCombViewsCreator
-  auto viewsHandle = SG::makeHandle(m_viewsKey, context);
-  if (!viewsHandle.isValid()) {
-    ATH_MSG_ERROR("ReadHandle for ViewContainer key:" << m_viewsKey.key() << " is failed");
-    return StatusCode::FAILURE;
-  }
-
-  for (auto view: *viewsHandle) {
-    size_t muonCounter = 0;
-
-    // retrieve xAOD::CombinedMuonContaier created on muComb algorithm
-    auto muonHandle = SG::makeHandle(m_combinedKey, context);
-    ATH_CHECK(muonHandle.setProxyDict(view));
-    if(!muonHandle.isValid()) {
-      ATH_MSG_ERROR("ReadHandle for xAOD::L2CombinedMuonContainer key:" << m_combinedKey.key() << " is failed");
-      return StatusCode::FAILURE;
-    }
-
-    xAOD::L2CombinedMuonContainer::const_iterator muIter;
-    for (muIter = muonHandle->begin(); muIter != muonHandle->end(); ++muIter) {
-      auto d = newDecisionIn(decisions.get());
-      auto element = ElementLink<xAOD::L2CombinedMuonContainer>(view->name()+"_"+m_combinedKey.key(), muonCounter);
-      d->setObjectLink("feature", element);
-
-      // get muSATracks from xAOD::CombinedMuonContainer
-      auto clusterPtr = (*muIter)->muSATrack();
-      ATH_CHECK(clusterPtr != nullptr);
-
-      ATH_MSG_DEBUG("REGTEST: muSATrack pt in " << m_combinedKey.key() << " = " << clusterPtr->pt() << " GeV");
-      ATH_MSG_DEBUG("REGTEST: muSATrack eta/phi in " << m_combinedKey.key() << " = " << clusterPtr->eta() << "/" << clusterPtr->phi());
-      
-      ATH_MSG_DEBUG("REGTEST: muCBTrack pt in " << m_combinedKey.key() << " = " << (*muIter)->pt() << " GeV");
-      ATH_MSG_DEBUG("REGTEST: muCBTrack eta/phi in " << m_combinedKey.key() << " = " << (*muIter)->eta() << "/" << (*muIter)->phi());
-      
-      // now find matching cluster could use geometric matching 
-      // but in fact the cluster owned by the decision object and the cluster owned by the electron should be the same       
-      // since we have a map made in advance we can make use of the index lookup w/o the need for additional loop 
-      auto origCluster = clusterToIndexMap.find(clusterPtr);
-      ATH_CHECK(origCluster != clusterToIndexMap.end());
-      linkToPrevious(d, m_muonDecisionsKey.key(), origCluster->second);
-
-      // now we have DecisionObject ready to be passed to hypo tool. 
-      // it has link to electron, and decisions on clusters 
-      // we shall avoid calling the tools for chains which were already rejected on certain cluster, but this is left to hypo tools
-      DecisionIDContainer clusterDecisionIDs;
-      decisionIDs(clusterDecisionsHandle->at(origCluster->second), clusterDecisionIDs);
-      
-      auto el = TrigmuCombHypoTool::CombinedMuonInfo{d, *muIter, origCluster->first, clusterDecisionIDs}; 
-      hypoToolInput.emplace_back(el);
-    } 
-    ++muonCounter;
+  // end of common
+
+  std::vector<TrigmuCombHypoTool::CombinedMuonInfo> toolInput;
+  // loop over previous decisions
+  size_t counter = 0; 
+
+  for ( auto previousDecision: *previousDecisionsHandle )  {
+    // get L2MuonSA Feature
+    TrigCompositeUtils::LinkInfo<xAOD::L2StandAloneMuonContainer> linkInfo = 
+       TrigCompositeUtils::findLink<xAOD::L2StandAloneMuonContainer>(previousDecision, "feature");
+    ElementLink<xAOD::L2StandAloneMuonContainer> muFastLink = linkInfo.link;
+    ATH_CHECK( muFastLink.isValid() );        
+    const xAOD::L2StandAloneMuon* muFast = *muFastLink;
+
+    // get View
+    ATH_CHECK( previousDecision->hasObjectLink("view") );
+    auto viewEL = previousDecision->objectLink<ViewContainer>("view");
+    ATH_CHECK( viewEL.isValid() );
+    const SG::View* view_const = *viewEL;
+    SG::View* view = const_cast<SG::View*>(view_const); // CHECK THIS!
+    ATH_MSG_INFO("DEBUG: view name = " << view->name() );
+
+    // get info
+    auto muCombHandle = SG::makeHandle( m_muCombKey, context ); 
+    ATH_CHECK( muCombHandle.setProxyDict(view) );
+    ATH_CHECK( muCombHandle.isValid() );
+    ATH_MSG_DEBUG( "Muinfo handle size: " << muCombHandle->size() << "...");
+
+    auto muCombEL = ElementLink<xAOD::L2CombinedMuonContainer> ( view->name()+"_"+m_muCombKey.key(), 0 );
+    ATH_CHECK( muCombEL.isValid() );
+    const xAOD::L2CombinedMuon* muComb = *muCombEL;
+    
+    // create new decisions
+    auto newd = newDecisionIn( decisions.get() );
+
+    toolInput.emplace_back( TrigmuCombHypoTool::CombinedMuonInfo{ newd, muComb, muFast, previousDecision} );
+
+    // set objectLink
+    newd->setObjectLink( "feature", muCombEL );
+    TrigCompositeUtils::linkToPrevious( newd, decisionInput().key(), counter);
+
+    // DEBUG
+    auto muFastInfo = (*muCombEL)->muSATrack(); 
+    ATH_MSG_DEBUG("REGTEST: muSATrack pt in " << m_muCombKey.key() << " = " << muFastInfo->pt() << " GeV");
+    ATH_MSG_DEBUG("REGTEST: muSATrack eta/phi in " << m_muCombKey.key() << " = " << muFastInfo->eta() << "/" << muFastInfo->phi());
+    
+    ATH_MSG_DEBUG("REGTEST: muCBTrack pt in " << m_muCombKey.key() << " = " << (*muCombEL)->pt() << " GeV");
+    ATH_MSG_DEBUG("REGTEST: muCBTrack eta/phi in " << m_muCombKey.key() << " = " << (*muCombEL)->eta() << "/" << (*muCombEL)->phi());
+    ATH_MSG_DEBUG("Added view, features, previous decision to new decision "<<counter <<" for view "<<view->name()  );
+
+    counter++;
   }
-
-  // hypo tools
   for ( auto & tool: m_hypoTools ) {
     ATH_MSG_DEBUG("Go to " << tool);
-    ATH_CHECK( tool->decide( hypoToolInput ) );
+    ATH_CHECK( tool->decide( toolInput ) );
+  }
+  {// make output handle and debug, in the base class
+    auto outputHandle =  SG::makeHandle( decisionOutput(), context );
+    ATH_CHECK( outputHandle.record( std::move( decisions ), std::move( aux ) ) );
+    ATH_MSG_DEBUG( "Exit with " << outputHandle->size() << " decisions");
+    TrigCompositeUtils::DecisionIDContainer allPassingIDs;
+    if ( outputHandle.isValid() ) {
+      for ( auto decisionObject: *outputHandle ) {
+        TrigCompositeUtils::decisionIDs ( decisionObject, allPassingIDs );
+      }
+      for ( TrigCompositeUtils::DecisionID id: allPassingIDs ) {
+        ATH_MSG_DEBUG( " +++ " << HLT::Identifier( id ) );
+      }
+    }
   }
-
-  // recorded decision objects on TrigmuCombHypo
-  auto handle =  SG::makeHandle( m_decisionsKey, context );
-  ATH_CHECK( handle.record( std::move( decisions ), std::move( aux ) ) );
 
   ATH_MSG_DEBUG("StatusCode TrigmuCombHypoAlg::execute_r success");
   return StatusCode::SUCCESS;
diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoTool.cxx b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoTool.cxx
index b14eee2b91cd158f2ac3297506def9f1b1957266..325125a3740f20c40e7b9ae85a9b7746ee3269bb 100644
--- a/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoTool.cxx
+++ b/Trigger/TrigHypothesis/TrigMuonHypo/src/TrigmuCombHypoTool.cxx
@@ -104,7 +104,7 @@ bool TrigmuCombHypoTool::decideOnSingleObject(TrigmuCombHypoTool::CombinedMuonIn
  
    //Retrieve combined muon
    //xAOD::L2CombinedMuon
-   auto pMuon = input.cluster;
+   auto pMuon = input.muComb;
    if (!pMuon) {
       result = false;
       ATH_MSG_ERROR("Retrieval of xAOD::L2CombinedMuon from vector failed");
@@ -280,7 +280,7 @@ StatusCode TrigmuCombHypoTool::multiplicitySelection(std::vector<TrigmuCombHypoT
       auto notFromSameRoI = [&]( const HLT::Index1DVec& comb ) {
          std::set<const xAOD::L2CombinedMuon*> setOfClusters;
          for ( auto index: comb ) {
-            setOfClusters.insert( input[index].cluster );
+            setOfClusters.insert( input[index].muComb );
          }
          return setOfClusters.size() == comb.size();
       };
@@ -298,7 +298,7 @@ StatusCode TrigmuCombHypoTool::multiplicitySelection(std::vector<TrigmuCombHypoT
 
    for ( auto idx: passingIndices ) {
       ATH_MSG_DEBUG("Muon event[" << idx << "] passes through Chain/ID " << m_decisionId 
-                    << " with pT = " << input[idx].cluster->pt() << "GeV" );
+                    << " with pT = " << input[idx].muComb->pt() << "GeV" );
       TrigCompositeUtils::addDecisionID( m_decisionId.numeric(), input[idx].decision );
    }
 
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx
index b0c90cbb504504873c257af0991410137ef077ae..182baa214e3b8b3617802061b564195c9b3a89c2 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx
@@ -87,7 +87,7 @@ struct xAODGenerator {
 
 template<typename T>
 StatusCode  HLTEDMCreator::noMerge( ViewContainer const&, const SG::ReadHandleKey<T>&,
-				    EventContext const&, T &  ) const {
+				    EventContext const&, T & ) const {
   //  if we are called it means views merging is requested but Type T does not support it (i.e. missing copy c'tor)
   return StatusCode::FAILURE;
 
@@ -103,13 +103,91 @@ StatusCode  HLTEDMCreator::viewsMerge( ViewContainer const& views, const SG::Rea
   ViewHelper::ViewMerger merger( sg, msg() );
   merger.mergeViewCollection<type_in_container>( views, inViewKey, context, output );
 
-    return StatusCode::SUCCESS;
+  return StatusCode::SUCCESS;
 }
 
+ 
+StatusCode HLTEDMCreator::fixLinks( const ConstHandlesGroup< xAOD::TrigCompositeContainer >& handles ) const {
+
+  // Make a list of the collections we're going to mess with
+  std::set< std::string > remappedCollections;
+  for ( auto writeHandleKey : handles.out ) {
+
+    remappedCollections.insert( writeHandleKey.key() );
+  }
+
+  // Do the remapping
+  for ( auto writeHandleKey : handles.out ) {
+
+    SG::ReadHandle<xAOD::TrigCompositeContainer> readHandle( writeHandleKey.key() );
+
+    if ( readHandle.isValid() ) {
+
+      // Create a container for the remapped TCs
+      xAODGenerator<xAOD::TrigCompositeContainer, xAOD::TrigCompositeAuxContainer> output;
+      output.create();
+
+      // Examine each input TC
+      for ( auto inputDecision : *( readHandle.cptr() ) ) {
+
+        // Clone the TC (xAOD-style copy)
+        xAOD::TrigComposite * outputDecision = new xAOD::TrigComposite();
+        output.data->push_back( outputDecision );
+        *outputDecision = *inputDecision;
+
+        // Retrieve the link information for remapping
+        SG::AuxElement::Accessor< std::vector< uint32_t > > keyAccessor( "linkColKeys" );
+        SG::AuxElement::Accessor< std::vector< uint16_t > > offsetAccessor( "linkColIndices" );
+        std::vector< uint32_t > remappedKeys = keyAccessor( *outputDecision );
+        std::vector< uint16_t > remappedOffsets = offsetAccessor( *outputDecision );
+
+        // Search the linked collections for remapping
+        unsigned int const collectionTotal = inputDecision->linkColNames().size();
+        for ( unsigned int collectionIndex = 0; collectionIndex < collectionTotal; ++collectionIndex ) {
+
+          // Load identifiers
+          std::string const collectionName = inputDecision->linkColNames()[ collectionIndex ];
+          uint32_t const collectionKey = inputDecision->linkColKeys()[ collectionIndex ];
+          std::string const keyString = *( evtStore()->keyToString( collectionKey ) );
+          uint32_t const collectionClid = inputDecision->linkColClids()[ collectionIndex ];
+          uint16_t const collectionOffset = inputDecision->linkColIndices()[ collectionIndex ];
+
+          // Check for remapping in a merge
+          uint32_t newKey = 0;
+          size_t newOffset = 0;
+          bool isRemapped = evtStore()->tryELRemap( collectionKey, collectionOffset, newKey, newOffset);
+          if ( isRemapped ) {
+
+            ATH_MSG_DEBUG( "Remap link from " << *( evtStore()->keyToString( collectionKey ) ) << " to " << *( evtStore()->keyToString( newKey ) ) );
+            remappedKeys[ collectionIndex ] = newKey;
+            remappedOffsets[ collectionIndex ] = newOffset;
+          }
+
+          // If the link is to a collection modified in this method, will also need to be remapped
+          // WARNING: untested
+          if ( remappedCollections.find( keyString ) != remappedCollections.end() ) {
+
+            ATH_MSG_DEBUG( "Remap link to collection: " << keyString << " -> " << keyString << "_remap" );
+            remappedKeys[ collectionIndex ] = evtStore()->stringToKey( keyString + "_remap", collectionClid );
+          }
+        }
+
+        // Save the remaps
+        keyAccessor( *outputDecision ) = remappedKeys;
+        offsetAccessor( *outputDecision ) = remappedOffsets;
+      }
 
+      // Store the remapped TCs
+      SG::WriteHandle<xAOD::TrigCompositeContainer> writeHandle( writeHandleKey.key() + "_remap" );
+      output.record( writeHandle );
+    }
+  }
+
+  return StatusCode::SUCCESS;
+}
 
 template<typename T, typename G, typename M>
-StatusCode HLTEDMCreator::createIfMissing(  const EventContext& context, const  ConstHandlesGroup<T>& handles, G& generator, M merger) const {
+StatusCode HLTEDMCreator::createIfMissing( const EventContext& context, const ConstHandlesGroup<T>& handles, G& generator, M merger ) const {
 
   for ( auto writeHandleKey : handles.out ) {
     SG::ReadHandle<T> readHandle( writeHandleKey.key() );
@@ -175,6 +253,9 @@ StatusCode HLTEDMCreator::createOutput(const EventContext& context) const {
   CREATE_XAOD( TrigCaloClusterContainer, TrigCaloClusterAuxContainer )
   CREATE_XAOD( TrackParticleContainer, TrackParticleAuxContainer )
 
+  // After view collections are merged, need to update collection links
+  CHECK( fixLinks( ConstHandlesGroup<xAOD::TrigCompositeContainer>( m_TrigCompositeContainer, m_TrigCompositeContainerInViews, m_TrigCompositeContainerViews ) ) );
+
 #undef CREATE_XAOD
 #undef CREATE_XAOD_NO_MERGE
   return StatusCode::SUCCESS;
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h
index 81989eea315bc029a94afb47d59261d90c5f2b0d..b925cbeed651612430e5066fdf1b734ab5a7fde0 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h
@@ -123,7 +123,7 @@ class HLTEDMCreator: public extends<AthAlgTool, IHLTOutputTool>  {
     const SG::ReadHandleKeyArray< ViewContainer >& views;
   };
 
-  
+  StatusCode fixLinks( const ConstHandlesGroup< xAOD::TrigCompositeContainer >& handles ) const;
 
   template<typename T, typename G, typename M >
     StatusCode createIfMissing( const EventContext& context, const ConstHandlesGroup<T>& handles, 
diff --git a/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf b/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf
index a557dddb4db8cdde81eeacd54590fc092d613565..6ae7eeed32dcdfcc994619c48a4033e879c7930f 100644
--- a/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf
+++ b/Trigger/TrigValidation/TrigP1Test/Testing/TrigP1Test_ART.conf
@@ -865,3 +865,13 @@ test 182
   checkcount /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/ref/latest/HLT_physicsV7_FTK/trigp1test_HLT_physicsV7_FTK.root 1 HLT
   athena_cmd athenaHLT.py   -o HLT_physicsV7_FTK  -n 30 -f  /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/RAW_FTK.pool.root -c 'testPhysicsV7=True;HLTOutputLevel=INFO;doValidation=True;fpeAuditor=True;from TriggerJobOpts.TriggerFlags import TriggerFlags;TriggerFlags.doFTK=True' TriggerRelease/runHLT_standalone.py
   post_command chainDump.py -n -S
+
+test 183
+  name athenaHLT_LatestRun_MCV7
+  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"
+  post_command chainDump.py -n -S 
+
+
diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_athenaHLT_LatestRun_MCV7_build.sh b/Trigger/TrigValidation/TrigP1Test/test/test_athenaHLT_LatestRun_MCV7_build.sh
index 57256e037893e16ee3c43edc4dec7be52bd69a6e..58be93c4a906619d854a0c415216422c3a3b8560 100755
--- a/Trigger/TrigValidation/TrigP1Test/test/test_athenaHLT_LatestRun_MCV7_build.sh
+++ b/Trigger/TrigValidation/TrigP1Test/test/test_athenaHLT_LatestRun_MCV7_build.sh
@@ -9,12 +9,17 @@
 # art-include: master/AthenaP1
 # art-include: master/Athena
 
-export NAME="athenaHLT_LatestRun_MCV7_build"
+if [ -z ${TEST} ]; then
+  export TEST="TrigP1Test"
+fi
 
-timeout 40m 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"
+export NAME="athenaHLT_LatestRun_MCV7"
+export JOB_LOG="${NAME}.log"
+
+timeout 100m trigtest_ART.pl --cleardir --test ${NAME} --rundir ${NAME} --conf TrigP1Test_ART.conf | tee ${JOB_LOG}
 
 ATH_RETURN=${PIPESTATUS[0]}
 echo "art-result: ${ATH_RETURN} ${NAME}"
 
-timeout 10m exec_art_trigp1test_post.sh
+
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py b/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py
index 2e5752709e263f38c851c8443e8c611b254a8374..1d53dc39f23d940d1934b9a9c7e73b4128e02b73 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py
@@ -2,7 +2,7 @@
 from TrigUpgradeTest.HLTSignatureConfig import TestHypoTool, MuTestHypoTool, ElTestHypoTool
 from TrigEgammaHypo.TrigEgammaHypoConf import TrigL2CaloHypoToolInc, TrigL2CaloHypoToolMult, TrigL2ElectronHypoTool, TrigL2PhotonHypoTool 
 #from TrigEgammaHypo.TrigL2CaloHypoTool import *
-from TrigMuonHypo.TrigMuonHypoConf import TrigMufastHypoTool
+from TrigMuonHypo.TrigMuonHypoConf import TrigMufastHypoTool, TrigmuCombHypoTool
 from AthenaCommon.Constants import VERBOSE,INFO,DEBUG
 
 def createHypoTool(hypoToolClassName, hypoToolName):
@@ -47,3 +47,15 @@ def TrigMufastHypoToolConf(name):
     #hypotool= TrigMufastHypoConfig.TrigMufastHypoToolFromName(name)
     hypotool.OutputLevel = DEBUG
     return hypotool
+
+def TrigmuCombHypoToolConf(name):
+    from AthenaCommon.Constants import DEBUG
+    from TrigMuonHypo.testTrigMuonHypoConfig import TrigmuCombHypoToolFromName
+    print "in TrigmuCombHypoToolConf"
+    #TrigmuCombHypoToolFromName
+    hypotool= TrigmuCombHypoToolFromName(name)
+    #hypotool= TrigmuCombHypoConfig.TrigmuCombHypoToolFromName(name)
+    hypotool.OutputLevel = DEBUG
+    return hypotool
+
+   
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py b/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py
index e42bb300df71dc63e6fc85ec7629cdfefaaa870f..3385f7f9970c5c305727a5ce5301059e6b38a7ea 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/muMenuDefs.py
@@ -44,14 +44,13 @@ from AthenaCommon.CFElements import parOR, seqAND, seqOR, stepSeq
  
 
 doL2SA=True
-doL2CB=False
+doL2CB=True
 doEFSA=False
-TriggerFlags.doID=False
+TriggerFlags.doID=True
 
-# ===============================================================================================
-#               Setup PrepData                                                                    
-# ===============================================================================================
- 
+# ===========================================
+#          SET PREPARATOR DATA               
+# ===========================================
 ### Used the algorithms as Step2 "muComb step" ###
 if TriggerFlags.doID:
 
@@ -60,11 +59,11 @@ if TriggerFlags.doID:
   (viewAlgs, eventAlgs) = makeInDetAlgs()
 
   from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_Muon
-  theFTF = TrigFastTrackFinder_Muon()
-  theFTF.OutputLevel = DEBUG
-  theFTF.TracksName = "TrigFastTrackFinder_MuTracks"
-  theFTF.isRoI_Seeded = True
-  viewAlgs.append(theFTF)
+  theFTF_Muon = TrigFastTrackFinder_Muon()
+  theFTF_Muon.OutputLevel = DEBUG
+  #theFTF_Muon.TracksName = "TrigFastTrackFinder_MuTracks"
+  theFTF_Muon.isRoI_Seeded = True
+  viewAlgs.append(theFTF_Muon)
   
   ### A simple algorithm to confirm that data has been inherited from parent view ###
   ### Required to satisfy data dependencies                                       ###
@@ -91,7 +90,7 @@ if TriggerFlags.doMuon:
   from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithm
 
   if doL2SA:
-    l2MuViewNode = seqAND("l2MuViewNode")
+    l2MuViewNode = parOR("l2MuViewNode")
     l2MuViewsMaker = EventViewCreatorAlgorithm("l2MuViewsMaker", OutputLevel=DEBUG)
     l2MuViewsMaker.ViewFallThrough = True
     l2MuViewsMaker.RoIsLink = "initialRoI" # -||-
@@ -99,6 +98,7 @@ if TriggerFlags.doMuon:
     l2MuViewsMaker.Views = "MUViewRoIs"
     l2MuViewsMaker.ViewNodeName = l2MuViewNode.name()
 
+  ### It cannot be used because it has not yet been migrated for muon menu ###
   if doEFSA:
     efMuViewNode = AthSequencer("efMuViewNode", Sequential=False, ModeOR=False, StopOverride=False)
     efMuViewsMaker = EventViewCreatorAlgorithm("efMuViewsMaker", OutputLevel=DEBUG)
@@ -112,7 +112,7 @@ if TriggerFlags.doMuon:
     efMuViewsMaker.ViewNodeName = efMuViewNode.name()
 
   if doEFSA or doL2SA:
-    ### ==================== Data prepartion needed for the EF and L2 SA #######################333
+    ### ==================== Data prepartion needed for the EF and L2 SA ==================== ###
     ### CSC RDO data ###
     if muonRecFlags.doCSCs():
       from MuonCSC_CnvTools.MuonCSC_CnvToolsConf import Muon__CscROD_Decoder
@@ -294,22 +294,9 @@ if TriggerFlags.doMuon:
         efMuViewNode += MuonClusterAlg 
 
 
-  ### muon thresholds ###
-  testChains = ["HLT_mu6", "HLT_2mu6"]
-
-  ### set up L1RoIsFilter ###
-  from DecisionHandling.DecisionHandlingConf import RoRSeqFilter, DumpDecisions
-  filterL1RoIsAlg = RoRSeqFilter("filterL1RoIsAlg")
-  filterL1RoIsAlg.Input = ["MURoIDecisions"]
-  filterL1RoIsAlg.Output = ["FilteredMURoIDecisions"]
-  filterL1RoIsAlg.Chains = testChains
-  filterL1RoIsAlg.OutputLevel = DEBUG
-
-
-# ===============================================================================================
-#               Setup L2MuonSA
-# ===============================================================================================
- 
+# ===========================================
+#          SET L2MUONSA               
+# ===========================================
   if doL2SA:
     ### set up MuFastSteering ###
     from TrigL2MuonSA.TrigL2MuonSAConfig import TrigL2MuonSAMTConfig
@@ -327,7 +314,7 @@ if TriggerFlags.doMuon:
     muFastAlg.forID = "forID"
     muFastAlg.forMS = "forMS"
 
-    # set up MuFastHypo
+    ### set up MuFastHypo ###
     from TrigMuonHypo.TrigMuonHypoConf import TrigMufastHypoAlg
     trigMufastHypo = TrigMufastHypoAlg("L2MufastHypoAlg")
     trigMufastHypo.OutputLevel = DEBUG
@@ -336,7 +323,7 @@ if TriggerFlags.doMuon:
 
     l2muFast_HLTSequence = HLTRecoSequence("l2muFast_HLTSequence",
                                           Sequence=l2muFastSequence,
-                                          Maker=l2MuViewsMaker,                                         
+                                          Maker=l2MuViewsMaker,
                                           Seed="L1MU")
     
     muFastStep = MenuSequence("muFastStep",
@@ -344,30 +331,22 @@ if TriggerFlags.doMuon:
                                       Hypo=trigMufastHypo,
                                       HypoToolClassName="TrigMufastHypoToolConf")
 
-    
-# ===============================================================================================
-#               Setup muComb                                                                    
-# ===============================================================================================
- 
+# ===========================================
+#          SET L2MUCOMB
+# ===========================================
   if doL2CB:
-    ### RoRSeqFilter step2 ###
-    filterL2SAAlg = RoRSeqFilter("filterL2SAAlg")
-    filterL2SAAlg.Input = [trigMufastHypo.Decisions]
-    filterL2SAAlg.Output = ["Filtered"+trigMufastHypo.Decisions]
-    filterL2SAAlg.Chains = testChains
-    filterL2SAAlg.OutputLevel = DEBUG
-
-    l2muCombViewNode = AthSequencer("l2muCombViewNode", Sequential=False, ModeOR=False, StopOverride=False)
+    ### set up step2 ###
+    l2muCombViewNode = parOR("l2muCombViewNode")
     l2muCombViewsMaker = EventViewCreatorAlgorithm("l2muCombViewsMaker", OutputLevel=DEBUG)
     l2muCombViewsMaker.ViewFallThrough = True
- 
-    l2muCombViewsMaker.InputMakerInputDecisions = [ filterL2SAAlg.Output[0] ] # Output of TrigMufastHypo
-    l2muCombViewsMaker.InputMakerOutputDecisions = [ filterL2SAAlg.Output[0]+"Comb" ] # Output of TrigMufastHypo
     l2muCombViewsMaker.RoIsLink = "roi" # -||-
-    l2muCombViewsMaker.InViewRoIs = "MUTrkRoIs" # contract with the consumer
-    l2muCombViewsMaker.Views = "MUTrkViewRoIs"
+    #l2muCombViewsMaker.InViewRoIs = "MUTrkRoIs" # contract with the consumer
+    #l2muCombViewsMaker.Views = "MUTrkViewRoIs"
+    l2muCombViewsMaker.InViewRoIs = "EMIDRoIs" # contract with the consumer
+    l2muCombViewsMaker.Views = "EMCombViewRoIs"
     l2muCombViewsMaker.ViewNodeName = l2muCombViewNode.name()
 
+
     ### Define input data of Inner Detector algorithms  ###
     ### and Define EventViewNodes to run the algprithms ###
     TrackParticlesName = ""
@@ -379,12 +358,12 @@ if TriggerFlags.doMuon:
         viewAlg.roiCollectionName = l2muCombViewsMaker.InViewRoIs
       if viewAlg.name() == "InDetTrigTrackParticleCreatorAlg":
         TrackParticlesName = viewAlg.TrackParticlesName
-        viewAlg.TrackName = theFTF.TracksName
+        #viewAlg.TrackName = theFTF_Muon.TracksName
 
     ### please read out TrigmuCombMTConfig file ###
     ### and set up to run muCombMT algorithm    ###
     from TrigmuComb.TrigmuCombMTConfig import TrigmuCombMTConfig
-    muCombAlg = TrigmuCombMTConfig("Muon", theFTF.getName())
+    muCombAlg = TrigmuCombMTConfig("Muon", theFTF_Muon.getName())
     muCombAlg.OutputLevel = DEBUG
     muCombAlg.L2StandAloneMuonContainerName = muFastAlg.MuonL2SAInfo
     muCombAlg.TrackParticlesContainerName = TrackParticlesName
@@ -393,142 +372,145 @@ if TriggerFlags.doMuon:
     l2muCombViewNode += muCombAlg
 
     ### set up muCombHypo algorithm ###
-    from TrigMuonHypo.TrigMuonHypoConfig import TrigmuCombHypoConfig
-    trigmuCombHypo = TrigmuCombHypoConfig("L2muCombHypoAlg")
+    from TrigMuonHypo.TrigMuonHypoConf import TrigmuCombHypoAlg
+    #trigmuCombHypo = TrigmuCombHypoAlg("L2muCombHypoAlg") # avoid to have "Comb" string in the name due to HLTCFConfig.py. 
+    trigmuCombHypo = TrigmuCombHypoAlg("L2muHypoAlg")
     trigmuCombHypo.OutputLevel = DEBUG
-  
-    trigmuCombHypo.Decisions = "MuonL2CBDecisions"
-    trigmuCombHypo.L2MuonFastDecisions = trigMufastHypo.Decisions
-    trigmuCombHypo.ViewRoIs = l2muCombViewsMaker.Views
     trigmuCombHypo.MuonL2CBInfoFromMuCombAlg = muCombAlg.L2CombinedMuonContainerName 
   
-    trigmuCombHypo.HypoTools = [ trigmuCombHypo.TrigmuCombHypoToolFromName( "L2muCombHypoTool", c ) for c in testChains ] 
-  
-    muCombDecisionsDumper = DumpDecisions("muCombDecisionsDumper", OutputLevel=DEBUG, Decisions = trigmuCombHypo.Decisions )
- 
-    ### Define a Sequence to run for muComb ### 
-    l2muCombSequence = seqAND("l2muCombSequence", eventAlgs + [l2muCombViewsMaker, l2muCombViewNode, trigmuCombHypo ] )
-    muCombStep = stepSeq("muCombStep", filterL2SAAlg, [ l2muCombSequence,  muCombDecisionsDumper ] )
-
-
-# ===============================================================================================
-#               Setup EFMuonSA                                                                    
-# ===============================================================================================
-
-  if doEFSA:
- ### RoRSeqFilter step2 ###
-    filterEFSAAlg = RoRSeqFilter("filterEFSAAlg")
-    filterEFSAAlg.Input = [trigmuCombHypo.Decisions]
-    filterEFSAAlg.Output = ["Filtered"+trigmuCombHypo.Decisions]
-    filterEFSAAlg.Chains = testChains
-    filterEFSAAlg.OutputLevel = DEBUG
-    
-    from TrkDetDescrSvc.TrkDetDescrSvcConf import Trk__TrackingVolumesSvc
-    ServiceMgr += Trk__TrackingVolumesSvc("TrackingVolumesSvc",BuildVolumesFromTagInfo = False)
-
-    theSegmentFinder = CfgGetter.getPublicToolClone("MuonSegmentFinder","MooSegmentFinder")
-    theSegmentFinder.DoSummary=True
-    CfgGetter.getPublicTool("MuonLayerHoughTool").DoTruth=False
-    theSegmentFinderAlg=CfgMgr.MooSegmentFinderAlg( "MuonSegmentMaker",
-                                                    SegmentFinder=theSegmentFinder,
-                                                    MuonSegmentOutputLocation = "MooreSegments",
-                                                    UseCSC = muonRecFlags.doCSCs(),
-                                                    UseMDT = muonRecFlags.doMDTs(),
-                                                    UseRPC = muonRecFlags.doRPCs(),
-                                                    UseTGC = muonRecFlags.doTGCs(),
-                                                    doClusterTruth=False,
-                                                    UseTGCPriorBC = False,
-                                                    UseTGCNextBC  = False,
-                                                    doTGCClust = muonRecFlags.doTGCClusterSegmentFinding(),
-                                                    doRPCClust = muonRecFlags.doRPCClusterSegmentFinding(), OutputLevel=DEBUG )
-    
-
- 
-    theNCBSegmentFinderAlg=CfgMgr.MooSegmentFinderAlg( "MuonSegmentMaker_NCB",
-                                                       SegmentFinder = getPublicToolClone("MooSegmentFinder_NCB","MuonSegmentFinder",
-                                                                                          DoSummary=False,
-                                                                                          Csc2dSegmentMaker = getPublicToolClone("Csc2dSegmentMaker_NCB","Csc2dSegmentMaker",
-                                                                                                                                 segmentTool = getPublicToolClone("CscSegmentUtilTool_NCB",
-                                                                                                                                                                  "CscSegmentUtilTool",
-                                                                                                                                                                  TightenChi2 = False, 
-                                                                                                                                                                  IPconstraint=False)),
-                                                                                          Csc4dSegmentMaker = getPublicToolClone("Csc4dSegmentMaker_NCB","Csc4dSegmentMaker",
-                                                                                                                                 segmentTool = getPublicTool("CscSegmentUtilTool_NCB")),
-                                                                                          DoMdtSegments=False,DoSegmentCombinations=False,DoSegmentCombinationCleaning=False),
-                                                       MuonPatternCombinationLocation = "NCB_MuonHoughPatternCombinations", 
-                                                       MuonSegmentOutputLocation = "NCB_MuonSegments", 
-                                                       MuonSegmentCombinationOutputLocation = "NCB_MooreSegmentCombinations",
-                                                       UseCSC = muonRecFlags.doCSCs(),
-                                                       UseMDT = False,
-                                                       UseRPC = False,
-                                                       UseTGC = False,
-                                                       UseTGCPriorBC = False,
-                                                       UseTGCNextBC  = False,
-                                                       doTGCClust = False,
-                                                       doRPCClust = False)
-
-    from MuonRecExample.MuonStandalone import MuonTrackSteering
-    MuonTrackSteering.DoSummary=True
-    MuonTrackSteering.DoSummary=DEBUG
-    TrackBuilder = CfgMgr.MuPatTrackBuilder("MuPatTrackBuilder" )
-    TrackBuilder.TrackSteering=CfgGetter.getPublicToolClone("MuonTrackSteering", "MuonTrackSteering")
-
-    from AthenaCommon.Include import include
-    include("InDetBeamSpotService/BeamCondSvc.py" )        
-    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackParticleCnvAlg, xAODMaker__TrackCollectionCnvTool, xAODMaker__RecTrackParticleContainerCnvTool
-  
-    muonParticleCreatorTool = getPublicTool("MuonParticleCreatorTool")
-  
-    muonTrackCollectionCnvTool = xAODMaker__TrackCollectionCnvTool( name = "MuonTrackCollectionCnvTool", TrackParticleCreator = muonParticleCreatorTool )
-  
-    muonRecTrackParticleContainerCnvTool = xAODMaker__RecTrackParticleContainerCnvTool(name = "MuonRecTrackParticleContainerCnvTool", TrackParticleCreator = muonParticleCreatorTool )
- 
-    xAODTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg( name = "MuonStandaloneTrackParticleCnvAlg", 
-                                                              TrackParticleCreator = muonParticleCreatorTool,
-                                                              TrackCollectionCnvTool=muonTrackCollectionCnvTool,
-                                                              RecTrackParticleContainerCnvTool = muonRecTrackParticleContainerCnvTool,
-                                                              TrackContainerName = "MuonSpectrometerTracks",
-                                                              xAODTrackParticlesFromTracksContainerName = "MuonSpectrometerTrackParticles",
-                                                              ConvertTrackParticles = False,
-                                                              ConvertTracks = True)
-
+    l2muCombSequence = seqAND("l2muCombSequence", eventAlgs + [l2muCombViewsMaker, l2muCombViewNode ] )
 
-    thetrkbuilder = getPublicToolClone("CombinedMuonTrackBuilder_SA", "CombinedMuonTrackBuilder", MuonHoleRecovery="", CaloMaterialProvider='TMEF_TrkMaterialProviderTool')
 
-    theCandidateTool = getPublicToolClone("MuonCandidateTool_SA", "MuonCandidateTool", TrackBuilder=thetrkbuilder)
-    theMuonCandidateAlg=CfgMgr.MuonCombinedMuonCandidateAlg("MuonCandidateAlg",MuonCandidateTool=theCandidateTool)
-
-
-    thecreatortool= getPublicToolClone("MuonCreatorTool_SA", "MuonCreatorTool", ScatteringAngleTool="", CaloMaterialProvider='TMEF_TrkMaterialProviderTool', MuonSelectionTool="", FillTimingInformation=False, OutputLevel=DEBUG)
-
-    themuoncreatoralg = CfgMgr.MuonCreatorAlg("MuonCreatorAlg")
-    themuoncreatoralg.MuonCreatorTool=thecreatortool
-    themuoncreatoralg.CreateSAmuons=True
-    themuoncreatoralg.ClusterContainerName=""
-
-    #Algorithms to views
-    efMuViewNode += theSegmentFinderAlg
-#    efMuViewNode += theNCBSegmentFinderAlg #The configuration still needs some sorting out for this so disabled for now.
-    efMuViewNode += TrackBuilder
-    efMuViewNode += xAODTrackParticleCnvAlg
-    efMuViewNode += theMuonCandidateAlg
-    efMuViewNode += themuoncreatoralg
-
-    #Setup MS-only hypo
-    from TrigMuonHypo.TrigMuonHypoConfig import TrigMuonEFMSonlyHypoConfig
-    trigMuonEFSAHypo = TrigMuonEFMSonlyHypoConfig("MuonEFSAHypoAlg")
-    trigMuonEFSAHypo.OutputLevel = DEBUG
-
-    trigMuonEFSAHypo.ViewRoIs = efMuViewsMaker.Views
-    trigMuonEFSAHypo.MuonDecisions = "Muons"
-    trigMuonEFSAHypo.RoIs = efMuViewsMaker.InViewRoIs
-    trigMuonEFSAHypo.Decisions = "EFMuonSADecisions"
-    trigMuonEFSAHypo.L1Decisions = efMuViewsMaker.InputMakerInputDecisions[0]
-
-    trigMuonEFSAHypo.HypoTools = [ trigMuonEFSAHypo.TrigMuonEFMSonlyHypoToolFromName( "TrigMuonEFMSonlyHypoTool", c ) for c in testChains ] 
+    l2muComb_HLTSequence = HLTRecoSequence("l2muComb_HLTSequence",
+                                          Sequence=l2muCombSequence,
+                                          Maker=l2muCombViewsMaker,
+                                          Seed="L1MU")
 
-    muonEFSADecisionsDumper = DumpDecisions("muonEFSADecisionsDumper", OutputLevel=DEBUG, Decisions = trigMuonEFSAHypo.Decisions )
-    muonEFSAStep = seqAND("muonEFSAStep", [filterEFSAAlg, efMuViewsMaker, efMuViewNode, trigMuonEFSAHypo, muonEFSADecisionsDumper])
+    muCombStep = MenuSequence("muCombStep", 
+                                      recoSeqList=[l2muComb_HLTSequence],
+                                      Hypo=trigmuCombHypo,
+                                      HypoToolClassName="TrigmuCombHypoToolConf")
+
+
+# ===========================================
+#          SET EFMUON
+# ===========================================
+  ### It cannot be used because it has not yet been migrated for muon menu ###
+
+#  if doEFSA:
+# ### RoRSeqFilter step2 ###
+#    filterEFSAAlg = RoRSeqFilter("filterEFSAAlg")
+#    filterEFSAAlg.Input = [trigmuCombHypo.Decisions]
+#    filterEFSAAlg.Output = ["Filtered"+trigmuCombHypo.Decisions]
+#    filterEFSAAlg.Chains = testChains
+#    filterEFSAAlg.OutputLevel = DEBUG
+#    
+#    from TrkDetDescrSvc.TrkDetDescrSvcConf import Trk__TrackingVolumesSvc
+#    ServiceMgr += Trk__TrackingVolumesSvc("TrackingVolumesSvc",BuildVolumesFromTagInfo = False)
+#
+#    theSegmentFinder = CfgGetter.getPublicToolClone("MuonSegmentFinder","MooSegmentFinder")
+#    theSegmentFinder.DoSummary=True
+#    CfgGetter.getPublicTool("MuonLayerHoughTool").DoTruth=False
+#    theSegmentFinderAlg=CfgMgr.MooSegmentFinderAlg( "MuonSegmentMaker",
+#                                                    SegmentFinder=theSegmentFinder,
+#                                                    MuonSegmentOutputLocation = "MooreSegments",
+#                                                    UseCSC = muonRecFlags.doCSCs(),
+#                                                    UseMDT = muonRecFlags.doMDTs(),
+#                                                    UseRPC = muonRecFlags.doRPCs(),
+#                                                    UseTGC = muonRecFlags.doTGCs(),
+#                                                    doClusterTruth=False,
+#                                                    UseTGCPriorBC = False,
+#                                                    UseTGCNextBC  = False,
+#                                                    doTGCClust = muonRecFlags.doTGCClusterSegmentFinding(),
+#                                                    doRPCClust = muonRecFlags.doRPCClusterSegmentFinding(), OutputLevel=DEBUG )
+#    
+#
+# 
+#    theNCBSegmentFinderAlg=CfgMgr.MooSegmentFinderAlg( "MuonSegmentMaker_NCB",
+#                                                       SegmentFinder = getPublicToolClone("MooSegmentFinder_NCB","MuonSegmentFinder",
+#                                                                                          DoSummary=False,
+#                                                                                          Csc2dSegmentMaker = getPublicToolClone("Csc2dSegmentMaker_NCB","Csc2dSegmentMaker",
+#                                                                                                                                 segmentTool = getPublicToolClone("CscSegmentUtilTool_NCB",
+#                                                                                                                                                                  "CscSegmentUtilTool",
+#                                                                                                                                                                  TightenChi2 = False, 
+#                                                                                                                                                                  IPconstraint=False)),
+#                                                                                          Csc4dSegmentMaker = getPublicToolClone("Csc4dSegmentMaker_NCB","Csc4dSegmentMaker",
+#                                                                                                                                 segmentTool = getPublicTool("CscSegmentUtilTool_NCB")),
+#                                                                                          DoMdtSegments=False,DoSegmentCombinations=False,DoSegmentCombinationCleaning=False),
+#                                                       MuonPatternCombinationLocation = "NCB_MuonHoughPatternCombinations", 
+#                                                       MuonSegmentOutputLocation = "NCB_MuonSegments", 
+#                                                       MuonSegmentCombinationOutputLocation = "NCB_MooreSegmentCombinations",
+#                                                       UseCSC = muonRecFlags.doCSCs(),
+#                                                       UseMDT = False,
+#                                                       UseRPC = False,
+#                                                       UseTGC = False,
+#                                                       UseTGCPriorBC = False,
+#                                                       UseTGCNextBC  = False,
+#                                                       doTGCClust = False,
+#                                                       doRPCClust = False)
+#
+#    from MuonRecExample.MuonStandalone import MuonTrackSteering
+#    MuonTrackSteering.DoSummary=True
+#    MuonTrackSteering.DoSummary=DEBUG
+#    TrackBuilder = CfgMgr.MuPatTrackBuilder("MuPatTrackBuilder" )
+#    TrackBuilder.TrackSteering=CfgGetter.getPublicToolClone("MuonTrackSteering", "MuonTrackSteering")
+#
+#    from AthenaCommon.Include import include
+#    include("InDetBeamSpotService/BeamCondSvc.py" )        
+#    from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackParticleCnvAlg, xAODMaker__TrackCollectionCnvTool, xAODMaker__RecTrackParticleContainerCnvTool
+#  
+#    muonParticleCreatorTool = getPublicTool("MuonParticleCreatorTool")
+#  
+#    muonTrackCollectionCnvTool = xAODMaker__TrackCollectionCnvTool( name = "MuonTrackCollectionCnvTool", TrackParticleCreator = muonParticleCreatorTool )
+#  
+#    muonRecTrackParticleContainerCnvTool = xAODMaker__RecTrackParticleContainerCnvTool(name = "MuonRecTrackParticleContainerCnvTool", TrackParticleCreator = muonParticleCreatorTool )
+# 
+#    xAODTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg( name = "MuonStandaloneTrackParticleCnvAlg", 
+#                                                              TrackParticleCreator = muonParticleCreatorTool,
+#                                                              TrackCollectionCnvTool=muonTrackCollectionCnvTool,
+#                                                              RecTrackParticleContainerCnvTool = muonRecTrackParticleContainerCnvTool,
+#                                                              TrackContainerName = "MuonSpectrometerTracks",
+#                                                              xAODTrackParticlesFromTracksContainerName = "MuonSpectrometerTrackParticles",
+#                                                              ConvertTrackParticles = False,
+#                                                              ConvertTracks = True)
+#
+#
+#    thetrkbuilder = getPublicToolClone("CombinedMuonTrackBuilder_SA", "CombinedMuonTrackBuilder", MuonHoleRecovery="", CaloMaterialProvider='TMEF_TrkMaterialProviderTool')
+#
+#    theCandidateTool = getPublicToolClone("MuonCandidateTool_SA", "MuonCandidateTool", TrackBuilder=thetrkbuilder)
+#    theMuonCandidateAlg=CfgMgr.MuonCombinedMuonCandidateAlg("MuonCandidateAlg",MuonCandidateTool=theCandidateTool)
+#
+#
+#    thecreatortool= getPublicToolClone("MuonCreatorTool_SA", "MuonCreatorTool", ScatteringAngleTool="", CaloMaterialProvider='TMEF_TrkMaterialProviderTool', MuonSelectionTool="", FillTimingInformation=False, OutputLevel=DEBUG)
+#
+#    themuoncreatoralg = CfgMgr.MuonCreatorAlg("MuonCreatorAlg")
+#    themuoncreatoralg.MuonCreatorTool=thecreatortool
+#    themuoncreatoralg.CreateSAmuons=True
+#    themuoncreatoralg.ClusterContainerName=""
+#
+#    #Algorithms to views
+#    efMuViewNode += theSegmentFinderAlg
+##    efMuViewNode += theNCBSegmentFinderAlg #The configuration still needs some sorting out for this so disabled for now.
+#    efMuViewNode += TrackBuilder
+#    efMuViewNode += xAODTrackParticleCnvAlg
+#    efMuViewNode += theMuonCandidateAlg
+#    efMuViewNode += themuoncreatoralg
+#
+#    #Setup MS-only hypo
+#    from TrigMuonHypo.TrigMuonHypoConfig import TrigMuonEFMSonlyHypoConfig
+#    trigMuonEFSAHypo = TrigMuonEFMSonlyHypoConfig("MuonEFSAHypoAlg")
+#    trigMuonEFSAHypo.OutputLevel = DEBUG
+#
+#    trigMuonEFSAHypo.ViewRoIs = efMuViewsMaker.Views
+#    trigMuonEFSAHypo.MuonDecisions = "Muons"
+#    trigMuonEFSAHypo.RoIs = efMuViewsMaker.InViewRoIs
+#    trigMuonEFSAHypo.Decisions = "EFMuonSADecisions"
+#    trigMuonEFSAHypo.L1Decisions = efMuViewsMaker.InputMakerInputDecisions[0]
+#
+#    trigMuonEFSAHypo.HypoTools = [ trigMuonEFSAHypo.TrigMuonEFMSonlyHypoToolFromName( "TrigMuonEFMSonlyHypoTool", c ) for c in testChains ] 
+#
+#    muonEFSADecisionsDumper = DumpDecisions("muonEFSADecisionsDumper", OutputLevel=DEBUG, Decisions = trigMuonEFSAHypo.Decisions )
+#    muonEFSAStep = seqAND("muonEFSAStep", [filterEFSAAlg, efMuViewsMaker, efMuViewNode, trigMuonEFSAHypo, muonEFSADecisionsDumper])
 
 
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/checkESD.py b/Trigger/TrigValidation/TrigUpgradeTest/share/checkESD.py
index 1d55a43d506938e48373ab421a8c34d9483f5de5..edba516eedf20a3af581134029dbb74665d9e97c 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/checkESD.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/checkESD.py
@@ -13,8 +13,10 @@ checker.doDumpTrigCompsiteNavigation    = True
 checker.doDumpStoreGate                 = True
 # this list was obtained by: checkxAOD.py myESD.pool.root  | grep Composite | tr -s " "| cut -d" " -f10 | awk '{print "\""$1"\""}' | tr "\n" "," > f
 # Note that now there is also a flag to look at all of them at runtime. We may want to move to this in the future.
-checker.dumpTrigCompositeContainers     =  [ "FilteredEMRoIDecisions", "L2CaloLinks", "L2ElectronLinks", "EgammaCaloDecisions", "FilteredEgammaCaloDecisions", "filterCaloRoIsAlg",  "ElectronL2Decisions", "MuonL2Decisions", "METRoIDecisions", "MURoIDecisions", "HLTChainsResult",
-"JRoIDecisions", "MonitoringSummaryStep1", "RerunEMRoIDecisions", "RerunMURoIDecisions", "TAURoIDecisions", "EMRoIDecisions"  ]
+tcContainers  =  [ "FilteredEMRoIDecisions", "L2CaloLinks", "L2ElectronLinks", "EgammaCaloDecisions", "FilteredEgammaCaloDecisions", "filterCaloRoIsAlg",  "ElectronL2Decisions", "MuonL2Decisions", "METRoIDecisions", "MURoIDecisions", "HLTChainsResult", "JRoIDecisions", "MonitoringSummaryStep1", "RerunEMRoIDecisions", "RerunMURoIDecisions", "TAURoIDecisions", "EMRoIDecisions"  ]
+
+for container in tcContainers:
+  checker.dumpTrigCompositeContainers += [ container + "_remap" ]
 
 from AthenaCommon.AppMgr import topSequence
 topSequence += checker
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py b/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py
index 04d2da725c2a6c17cbe155fc5cd669a6ea632b3d..f5627867c56bed7653a6bfe15802167dd87f428b 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/egamma.withViews.py
@@ -212,12 +212,10 @@ step0r = parOR("step0r", [ egammaCaloStepRR ])
 summary = TriggerSummaryAlg( "TriggerSummaryAlg" )
 summary.InputDecision = "HLTChains"
 summary.FinalDecisions = [ "ElectronL2Decisions", "MuonL2Decisions" ]
-from TrigOutputHandling.TrigOutputHandlingConf import HLTEDMCreator
-edmCreator = HLTEDMCreator()
-edmCreator.TrigCompositeContainer = [ "L2ElectronLinks", "filterCaloRoIsAlg", "EgammaCaloDecisions","ElectronL2Decisions", "MuonL2Decisions", "EMRoIDecisions", "METRoIDecisions", "MURoIDecisions", "HLTChainsResult",
-"JRoIDecisions", "MonitoringSummaryStep1", "RerunEMRoIDecisions", "RerunMURoIDecisions", "TAURoIDecisions", "L2CaloLinks", "FilteredEMRoIDecisions", "FilteredEgammaCaloDecisions"  ]
 
+from TrigOutputHandling.TrigOutputHandlingConf import HLTEDMCreator
 egammaViewsMerger = HLTEDMCreator("egammaViewsMerger")
+egammaViewsMerger.TrigCompositeContainer = [ "L2ElectronLinks", "filterCaloRoIsAlg", "EgammaCaloDecisions","ElectronL2Decisions", "MuonL2Decisions", "EMRoIDecisions", "METRoIDecisions", "MURoIDecisions", "HLTChainsResult", "JRoIDecisions", "MonitoringSummaryStep1", "RerunEMRoIDecisions", "RerunMURoIDecisions", "TAURoIDecisions", "L2CaloLinks", "FilteredEMRoIDecisions", "FilteredEgammaCaloDecisions" ]
 
 egammaViewsMerger.TrackParticleContainerViews = [ l2ElectronViewsMaker.Views ]
 egammaViewsMerger.TrackParticleContainerInViews = [ TrackParticlesName ]
@@ -236,7 +234,7 @@ egammaViewsMerger.OutputLevel = VERBOSE
 
 svcMgr.StoreGateSvc.OutputLevel = VERBOSE
 
-summary.OutputTools = [ edmCreator, egammaViewsMerger ]
+summary.OutputTools = [ egammaViewsMerger ]
 
 
 summary.OutputLevel = DEBUG
@@ -266,8 +264,8 @@ topSequence.remove( StreamESD )
 def addTC(name):   
    StreamESD.ItemList += [ "xAOD::TrigCompositeContainer#"+name, "xAOD::TrigCompositeAuxContainer#"+name+"Aux." ]
 
-for tc in edmCreator.TrigCompositeContainer:
-   addTC( tc )
+for tc in egammaViewsMerger.TrigCompositeContainer:
+   addTC( tc + "_remap" )
 
 addTC("HLTSummary")
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/mu.menu.py b/Trigger/TrigValidation/TrigUpgradeTest/share/mu.menu.py
index a4309746227ef0741b18fbf0510828174bd09ab0..cb9bca0d6c7b50ff5140f02209456100e8237f85 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/mu.menu.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/mu.menu.py
@@ -83,23 +83,29 @@ if  TriggerFlags.doMuon==True:
 
     # menu
     from TrigUpgradeTest.MenuComponents import Chain, ChainStep
-    from TrigUpgradeTest.muMenuDefs import muFastStep, doL2SA, doL2CB, doEFSA
+    from TrigUpgradeTest.muMenuDefs import muFastStep, muCombStep, doL2SA, doL2CB, doEFSA
 
     MenuChains  = []
 
     
     if TriggerFlags.doID==False:
-        if doL2SA==True and doL2CB==False and doEFSA==False:           
+        if doL2SA==True  and doL2CB==False and doEFSA==False:           
             MenuChains += [Chain(name='HLT_mu6', Seed="L1_MU6",  ChainSteps=[ChainStep("Step1_mufast", [muFastStep]) ])]
-            MenuChains += [Chain(name='HLT_2mu6', Seed="L1_MU6",  ChainSteps=[ChainStep("Step1_mufast", [muFastStep]) ])]
-        if doEFSA==True and doL2SA==False and doL2CB==False:
+            MenuChains += [Chain(name='HLT_2mu6', Seed="L1_MU6", ChainSteps=[ChainStep("Step1_mufast", [muFastStep]) ])]
+        if doL2SA==False and doL2CB==False and doEFSA==True: 
             MenuChains += [Chain(name='HLT_mu6', Seed="L1_MU6",  ChainSteps=[ChainStep("Step1_mufast", [muFastStep]) ])]
+            MenuChains += [Chain(name='HLT_2mu6', Seed="L1_MU6", ChainSteps=[ChainStep("Step1_mufast", [muFastStep]) ])]
     elif TriggerFlags.doID==True:    
-        if doL2SA==True and doL2CB==True and doEFSA==False:
-            MenuChains += [Chain(name='HLT_mu6', Seed="L1_MU6",  ChainSteps=[ChainStep("Step1_mufast", [muFastStep]) ])]
-        if doL2SA==True and doEFSA==True and doL2CB==True:
-            MenuChains += [Chain(name='HLT_mu6', Seed="L1_MU6",  ChainSteps=[ChainStep("Step1_mufast", [muFastStep]) ])]
-            
+        if doL2SA==True  and doL2CB==True  and doEFSA==False:
+            MenuChains += [Chain(name='HLT_mu6', Seed="L1_MU6",  ChainSteps=[ChainStep("Step1_mufast", [muFastStep]),
+                                                                             ChainStep("Step2_muComb", [muCombStep]) ])]
+            MenuChains += [Chain(name='HLT_2mu6', Seed="L1_MU6", ChainSteps=[ChainStep("Step1_mufast", [muFastStep]),
+                                                                             ChainStep("Step2_muComb", [muCombStep]) ])]
+        if doL2SA==True  and doL2CB==True  and doEFSA==True:
+            MenuChains += [Chain(name='HLT_mu6', Seed="L1_MU6",  ChainSteps=[ChainStep("Step1_mufast", [muFastStep]),
+                                                                             ChainStep("Step2_muComb", [muCombStep]) ])]
+            MenuChains += [Chain(name='HLT_2mu6', Seed="L1_MU6", ChainSteps=[ChainStep("Step1_mufast", [muFastStep]),
+                                                                             ChainStep("Step2_muComb", [muCombStep]) ])]           
     
     
             
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/mu.withViews.py b/Trigger/TrigValidation/TrigUpgradeTest/share/mu.withViews.py
index 4e607cd9b05914f91f6da1f2d9c216bb19ee55b1..2b46bca8a237eb8d604f67fb1d5b1f909135336c 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/share/mu.withViews.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/share/mu.withViews.py
@@ -424,16 +424,14 @@ if TriggerFlags.doMuon:
     ### set up muCombHypo algorithm ###
     from TrigMuonHypo.TrigMuonHypoConfig import TrigmuCombHypoConfig
     trigmuCombHypo = TrigmuCombHypoConfig("L2muCombHypoAlg")
-    trigmuCombHypo.OutputLevel = DEBUG
-  
-    trigmuCombHypo.Decisions = "MuonL2CBDecisions"
-    trigmuCombHypo.L2MuonFastDecisions = trigMufastHypo.HypoOutputDecisions
-    trigmuCombHypo.ViewRoIs = l2muCombViewsMaker.Views
+    trigmuCombHypo.OutputLevel = DEBUG 
+    trigmuCombHypo.HypoOutputDecisions = "MuonL2CBDecisions"
+    trigmuCombHypo.HypoInputDecisions = l2muCombViewsMaker.InputMakerOutputDecisions[0]
     trigmuCombHypo.MuonL2CBInfoFromMuCombAlg = muCombAlg.L2CombinedMuonContainerName 
-  
     trigmuCombHypo.HypoTools = [ trigmuCombHypo.TrigmuCombHypoToolFromName( "L2muCombHypoTool", c ) for c in testChains ] 
   
-    muCombDecisionsDumper = DumpDecisions("muCombDecisionsDumper", OutputLevel=DEBUG, Decisions = trigmuCombHypo.Decisions )
+    # set the dumper
+    muCombDecisionsDumper = DumpDecisions("muCombDecisionsDumper", OutputLevel=DEBUG, Decisions = trigmuCombHypo.HypoOutputDecisions )
  
     ### Define a Sequence to run for muComb ### 
     l2muCombSequence = seqAND("l2muCombSequence", eventAlgs + [l2muCombViewsMaker, l2muCombViewNode, trigmuCombHypo ] )
@@ -447,8 +445,8 @@ if TriggerFlags.doMuon:
   if doEFSA:
  ### RoRSeqFilter step2 ###
     filterEFSAAlg = RoRSeqFilter("filterEFSAAlg")
-    filterEFSAAlg.Input = [trigmuCombHypo.Decisions]
-    filterEFSAAlg.Output = ["Filtered"+trigmuCombHypo.Decisions]
+    filterEFSAAlg.Input = [trigmuCombHypo.HypoOutputDecisions]
+    filterEFSAAlg.Output = ["Filtered"+trigmuCombHypo.HypoOutputDecisions]
     filterEFSAAlg.Chains = testChains
     filterEFSAAlg.OutputLevel = DEBUG
     
@@ -605,7 +603,7 @@ if TriggerFlags.doMuon==True and TriggerFlags.doID==True:
     from DecisionHandling.DecisionHandlingConf import TriggerSummaryAlg 
     summary = TriggerSummaryAlg( "TriggerSummaryAlg" ) 
     summary.InputDecision = "HLTChains" 
-    summary.FinalDecisions = [ trigmuCombHypo.Decisions ]
+    summary.FinalDecisions = [ trigmuCombHypo.HypoOutputDecisions ]
     summary.OutputLevel = DEBUG 
     step0 = parOR("step0", [ muFastStep ] )
     step1 = parOR("step1", [ muCombStep ] )
@@ -613,7 +611,7 @@ if TriggerFlags.doMuon==True and TriggerFlags.doID==True:
 
     mon = TriggerSummaryAlg( "TriggerMonitoringAlg" ) 
     mon.InputDecision = "HLTChains" 
-    mon.FinalDecisions = [ trigmuCombHypo.Decisions, "WhateverElse" ] 
+    mon.FinalDecisions = [ trigmuCombHypo.HypoOutputDecisions, "WhateverElse" ] 
     mon.HLTSummary = "MonitoringSummary" 
     mon.OutputLevel = DEBUG 
     hltTop = seqOR( "hltTop", [ HLTsteps, mon] )