diff --git a/Control/AthenaMonitoring/python/AthenaMonitoringCfg.py b/Control/AthenaMonitoring/python/AthenaMonitoringCfg.py
index 847c4c80b85ded16ce28b84ceb6c494f975c87a8..048cc1561fcb0876dc94bf5c6d0d58cc77de9eef 100644
--- a/Control/AthenaMonitoring/python/AthenaMonitoringCfg.py
+++ b/Control/AthenaMonitoring/python/AthenaMonitoringCfg.py
@@ -79,6 +79,11 @@ def AthenaMonitoringCfg(flags):
         info('Set up Jet monitoring')
         from JetMonitoring.JetMonitoringStandard import standardJetMonitoring
         result.merge(standardJetMonitoring(flags))
+        #Need to create links between global FE, created in jet finding, and other objects
+        #MET monitoring will need these in some workflows (but not in tier0ESD)
+        if flags.DQ.Environment != 'tier0ESD':
+            from eflowRec.PFCfg import PFGlobalFlowElementLinkingCfg
+            result.merge(PFGlobalFlowElementLinkingCfg(flags))
         
     if flags.DQ.Steering.doJetInputsMon:
         info('Set up Jet Inputs monitoring')
@@ -158,4 +163,4 @@ def AthenaMonitoringPostprocessingCfg(flags):
         ppa.FileKey = ((flags.DQ.FileKey + '/') if not flags.DQ.FileKey.endswith('/')
                     else flags.DQ.FileKey)
     result.addEventAlgo(ppa, "AthEndSeq")
-    return result
\ No newline at end of file
+    return result
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/CMakeLists.txt b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/CMakeLists.txt
index b6d907a977252db20baacd60ac378cbad4815007..a79dc0c5395e61b72bd0e15cb96be0afcf72fb21 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/CMakeLists.txt
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/CMakeLists.txt
@@ -1,24 +1,22 @@
-################################################################################
-# Package: MdtCalibT0
-################################################################################
+# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 
 # Declare the package name:
 atlas_subdir( MdtCalibT0 )
 
 # External dependencies:
-find_package( ROOT COMPONENTS Graf Minuit Core Tree MathCore Hist RIO pthread MathMore Minuit2 Matrix Physics HistPainter Rint RooFitCore RooFit Graf3d Gpad Html Postscript Gui GX11TTF GX11 )
+find_package( Boost )
+find_package( ROOT COMPONENTS Core Graf Hist MathCore MathMore Minuit RIO Tree )
 
 # Component(s) in the package:
 atlas_add_library( MdtCalibT0
                    src/*.cxx
                    PUBLIC_HEADERS MdtCalibT0
                    INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${ROOT_LIBRARIES} MdtCalibData MuonCalibStandAloneBaseLib
-                   PRIVATE_LINK_LIBRARIES MuonCalibEventBase MuonCalibIdentifier )
+                   PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS}
+                   LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaKernel GaudiKernel MdtCalibData MdtCalibInterfacesLib MuonCalibStandAloneBaseLib
+                   PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} CxxUtils MuonCalibEventBase MuonCalibIdentifier MuonCalibStl )
 
 atlas_add_dictionary( MdtCalibT0Dict
                       MdtCalibT0/ReflexHeaders.h
                       MdtCalibT0/selection.xml
-                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} MdtCalibData MuonCalibStandAloneBaseLib MuonCalibEventBase MuonCalibIdentifier MdtCalibT0 )
-
+                      LINK_LIBRARIES MdtCalibT0 )
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/MdtCalibT0/ATLAS_CHECK_THREAD_SAFETY b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/MdtCalibT0/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..67c86329e94baf28de5f30aa011e777fd8a0aa5d
--- /dev/null
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/MdtCalibT0/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/MdtCalibT0/HistogramId.h b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/MdtCalibT0/HistogramId.h
index 23d9ecb217e8e1e244d386051cfaa1cdd83092d6..69d33f46f11735f55818936661ff746504382855 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/MdtCalibT0/HistogramId.h
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/MdtCalibT0/HistogramId.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef HistogramId_H
@@ -46,13 +46,13 @@ namespace MuonCalib {
         /** get numberic id */
         inline int getIdInt() const { return m_id.second; }
         /** get ascii histogram name */
-        inline const std::string &HistogramName() const { return s_histogram_names[m_id]; }
+        inline const std::string &HistogramName() const { return m_histogram_name; }
 
     private:
         //! integer identity - value depends on the sort_by argument of the Initialize-Function
         std::pair<int, int> m_id;
-        //! ascii histogram names
-        static std::map<std::pair<int, int>, std::string> s_histogram_names;
+        //! ascii histogram name
+        std::string m_histogram_name;
     };
 
 }  // namespace MuonCalib
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/HistogramId.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/HistogramId.cxx
index c130d8759b02ebe7707c7cf3221cc386a63323ea..eada9346ba135a058bbccc670e403262beb2f428 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/HistogramId.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/HistogramId.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "MdtCalibT0/HistogramId.h"
@@ -15,8 +15,6 @@
 
 namespace MuonCalib {
 
-    std::map<std::pair<int, int>, std::string> HistogramId ::s_histogram_names;
-
     void HistogramId::Initialize(const MuonFixedId &id, int sort_by) {
         m_id.first = sort_by;
         static const unsigned int kStationNameShift = 24;
@@ -64,34 +62,32 @@ namespace MuonCalib {
             }
         }
         // create histogram name
-        if (s_histogram_names[m_id] == "") {
-            std::ostringstream os;
-            if (m_id.second == -999999) {
-                os << "Summary";
-            } else {
-                // chamber name
-                os << id.stationNumberToFixedStationString(id.stationName()) << "_eta";
-                if (id.eta() < 0)
-                    os << "C";
-                else
-                    os << "A";
-                os << std::abs(id.eta()) << "_phi" << id.phi();
-                // multilayer name
-                if (sort_by != CHAMBER) os << "_ml" << id.mdtMultilayer();
-                // layer name
-                if (sort_by != CHAMBER && sort_by != MULTILAYER && sort_by != MEZZ_CARD) os << "_ly" << id.mdtTubeLayer();
-                // tube name
-                if (sort_by == TUBE) os << "_tb" << id.mdtTube();
-                // mezz-id
-                if (sort_by == MEZZ_CARD) { os << "_mez" << (id.mdtMezzanine() % 100); }
-                // numeric_id
-                os << "_num" << m_id.second << "_" << sort_by;
-            }
-            // store
-            s_histogram_names[m_id] = os.str();
-            MsgStream log(Athena::getMessageSvc(), "HistogramId");
-            log << MSG::INFO << sort_by << " " << s_histogram_names[m_id] << endmsg;
+        std::ostringstream os;
+        if (m_id.second == -999999) {
+            os << "Summary";
+        } else {
+            // chamber name
+            os << id.stationNumberToFixedStationString(id.stationName()) << "_eta";
+            if (id.eta() < 0)
+                os << "C";
+            else
+                os << "A";
+            os << std::abs(id.eta()) << "_phi" << id.phi();
+            // multilayer name
+            if (sort_by != CHAMBER) os << "_ml" << id.mdtMultilayer();
+            // layer name
+            if (sort_by != CHAMBER && sort_by != MULTILAYER && sort_by != MEZZ_CARD) os << "_ly" << id.mdtTubeLayer();
+            // tube name
+            if (sort_by == TUBE) os << "_tb" << id.mdtTube();
+            // mezz-id
+            if (sort_by == MEZZ_CARD) { os << "_mez" << (id.mdtMezzanine() % 100); }
+            // numeric_id
+            os << "_num" << m_id.second << "_" << sort_by;
         }
+        // store
+        m_histogram_name = os.str();
+        MsgStream log(Athena::getMessageSvc(), "HistogramId");
+        log << MSG::INFO << sort_by << " " << m_histogram_name << endmsg;
     }
 
 }  // namespace MuonCalib
diff --git a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/T0MTHistos.cxx b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/T0MTHistos.cxx
index e59dbfec26b37ce4d15cf5c9d1c1329261270a16..c5651ed657d560439c27fd3d12298f31f761bd9a 100644
--- a/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/T0MTHistos.cxx
+++ b/MuonSpectrometer/MuonCalib/MdtCalib/MdtCalibT0/src/T0MTHistos.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "MdtCalibT0/T0MTHistos.h"
@@ -7,16 +7,29 @@
 #include <cmath>
 
 #include "AthenaKernel/getMessageSvc.h"
+#include "CxxUtils/checker_macros.h"
 #include "GaudiKernel/MsgStream.h"
 #include "MdtCalibT0/MTT0PatternRecognition.h"
 #include "MdtCalibT0/MTTmaxPatternRecognition.h"
 #include "TDirectory.h"
 #include "TLine.h"
-#include "TRandom.h"
+#include "TRandom3.h"
 #include "list"
+#include "boost/thread/tss.hpp"
 
 namespace MuonCalib {
 
+    TRandom3* getTLSRandomGen()
+    {
+        static boost::thread_specific_ptr<TRandom3> rnd ATLAS_THREAD_SAFE;
+        TRandom3* random = rnd.get();
+        if (!random) {
+            random = new TRandom3();
+            rnd.reset(random);
+        }
+        return random;
+    }
+
     /** The fermi function to be fitted at the rising edge of the spectrum */
     inline Double_t mt_t0_fermi(Double_t *x, Double_t *par) {
         // more convenient parameters
@@ -293,8 +306,9 @@ namespace MuonCalib {
         snprintf(scramhistname, 100, "%s_scram", m_time->GetName());
         std::unique_ptr<TH1F> scramhist = std::make_unique<TH1F>(scramhistname, "scrambled histogram", m_time->GetSize() - 2,
                                                                  m_time->GetXaxis()->GetXmin(), m_time->GetXaxis()->GetXmax());
+
         for (int binnr = 0; binnr < m_time->GetSize(); binnr++) {
-            scramhist->SetBinContent(binnr, m_time->GetBinContent(binnr) + gRandom->Gaus(0, m_time->GetBinError(binnr)));
+            scramhist->SetBinContent(binnr, m_time->GetBinContent(binnr) + getTLSRandomGen()->Gaus(0, m_time->GetBinError(binnr)));
             scramhist->SetBinError(binnr, m_time->GetBinError(binnr) * 1.41421356);
             if (scramhist->GetBinContent(binnr) < 0) scramhist->SetBinContent(binnr, 0);
         }
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommon.py
index 7bff6588af607c6e2f2d4a0a08d4a84e90b4d20e..d690ab3165294b1dd9f53303bd76bc14105d4dad 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommon.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommon.py
@@ -76,6 +76,16 @@ jetList = [AntiKt4EMTopo_deriv,
 
 addDAODJets(jetList,DerivationFrameworkJob)
 
+#We also need to build links between the newly created jet constituents (GlobalFE)
+#and electrons,photons,muons and taus
+from AthenaConfiguration.AllConfigFlags import ConfigFlags
+from AthenaConfiguration.ComponentAccumulator import CAtoGlobalWrapper
+from eflowRec.PFCfg import PFGlobalFlowElementLinkingCfg
+CAtoGlobalWrapper(PFGlobalFlowElementLinkingCfg,ConfigFlags)
+#AOD do not have calorimeter cells for CaloCalTopoCluster, so we have to use 
+#this special setting for the muon-FE links.
+DerivationFrameworkJob.PFMuonGlobalFlowElementAssoc.m_UseMuonTopoClusters=True
+
 # Special rho definition for PFlow jets
 addSidebandEventShape(sequence=DerivationFrameworkJob)
 # Event cleaning flags
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommonConfig.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommonConfig.py
index 65c157429fa288474a55a39474468c9b79e57079..abf4fad44e378f6afbaeea5432c6d872fa9545f1 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommonConfig.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PhysCommonConfig.py
@@ -70,6 +70,13 @@ def PhysCommonAugmentationsCfg(ConfigFlags,**kwargs):
     from DerivationFrameworkTau.TauCommonConfig import (AddDiTauLowPtCfg, AddTauWPDecorationCfg, AddMuonRemovalTauAODReRecoAlgCfg)
     from DerivationFrameworkJetEtMiss.METCommonConfig import METCommonCfg 
     acc.merge(JetCommonCfg(ConfigFlags))
+    #We also need to build links between the newly created jet constituents (GlobalFE)
+    #and electrons,photons,muons and taus
+    from eflowRec.PFCfg import PFGlobalFlowElementLinkingCfg
+    acc.merge(PFGlobalFlowElementLinkingCfg(ConfigFlags))
+    #AOD do not have calorimeter cells for CaloCalTopoCluster, so we have to use 
+    #this special setting for the muon-FE links.
+    acc.getEventAlgo("PFMuonGlobalFlowElementAssoc").m_UseMuonTopoClusters=True
     acc.merge(AddDiTauLowPtCfg(ConfigFlags, prefix = 'PhysCommon'))
     acc.merge(AddMuonRemovalTauAODReRecoAlgCfg(ConfigFlags, prefix = 'PhysCommon'))
     acc.merge(AddTauWPDecorationCfg(ConfigFlags, prefix = 'PhysCommon', evetoFixTag="v1"))
diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagAugmenterTool.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagAugmenterTool.h
index da0a26d0adddd88dc348feaf30836d568c8e006b..959a642a4dbc568672bf2513ef06749e568cf0b9 100644
--- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagAugmenterTool.h
+++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagAugmenterTool.h
@@ -32,6 +32,7 @@ namespace FlavorTagDiscriminants {
     std::string m_flipTagConfig;
     std::string m_trackAssociator;
     std::unique_ptr<BTagJetAugmenter> m_aug; //!
+    bool m_useIpxd;
   };
 
 }
diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h
index 6556baccdd57bd14053ba04f6ce5edc83ed08321..69ae17cc9d96c40b848c6c5a26f9fd29f0d7dd58 100644
--- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h
+++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h
@@ -16,8 +16,11 @@ class BTagJetAugmenter
 {
 public:
   typedef FlavorTagDiscriminants::FlipTagConfig FlipTagConfig;
-  BTagJetAugmenter(const std::string& associator = "BTagTrackToJetAssociator",
-                   FlipTagConfig flip = FlipTagConfig::STANDARD);
+
+  BTagJetAugmenter(const std::string associator = "BTagTrackToJetAssociator",
+                   FlipTagConfig flip = FlipTagConfig::STANDARD,
+                   bool useIpxd = false);
+
   ~BTagJetAugmenter();
   BTagJetAugmenter(BTagJetAugmenter&&);
   void augmentJfDr(const xAOD::BTagging &btag) const;
@@ -101,6 +104,7 @@ private:
   AE::Decorator<float> m_avg_trk_flightDirRelEta;
 
   FlipTagConfig m_flipConfig;
+  bool m_useIpxd;
 
 };
 
diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagAugmenterTool.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagAugmenterTool.cxx
index d56c314da4e4a854412f4ed77bc20711cf7a6b00..4d20198818577fed11c691b45f3a54f6a37dee47 100644
--- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagAugmenterTool.cxx
+++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagAugmenterTool.cxx
@@ -10,17 +10,20 @@ namespace FlavorTagDiscriminants {
   BTagAugmenterTool::BTagAugmenterTool(const std::string& name):
     asg::AsgTool(name),
     m_flipTagConfig("STANDARD"),
-    m_aug(nullptr)
+    m_aug(nullptr),
+    m_useIpxd(false)
   {
     declareProperty("flipTagConfig", m_flipTagConfig);
     declareProperty("trackAssociator", m_trackAssociator);
+    declareProperty("useIpxd", m_useIpxd);
   }
   BTagAugmenterTool::~BTagAugmenterTool() {}
 
   StatusCode BTagAugmenterTool::initialize() {
     m_aug.reset(
       new BTagJetAugmenter(m_trackAssociator,
-        flipTagConfigFromString(m_flipTagConfig)));
+                           flipTagConfigFromString(m_flipTagConfig),
+                           m_useIpxd));
     return StatusCode::SUCCESS;
   }
 
diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx
index dba33e9fff664e98636a5c5551de3eb66bdc9f4f..2f760145645cef9024a10acb942b94b5a49f9ac6 100644
--- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx
+++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx
@@ -56,7 +56,10 @@ namespace {
 
 }
 
-BTagJetAugmenter::BTagJetAugmenter(const std::string& associator, FlavorTagDiscriminants::FlipTagConfig f):
+
+BTagJetAugmenter::BTagJetAugmenter(const std::string associator,
+                                   FlavorTagDiscriminants::FlipTagConfig f,
+                                   bool useIpxd):
   m_jetLink("jetLink"),
   m_pt_uncalib("pt_btagJes"),
   m_eta_uncalib("eta_btagJes"),
@@ -107,7 +110,8 @@ BTagJetAugmenter::BTagJetAugmenter(const std::string& associator, FlavorTagDiscr
   m_min_trk_flightDirRelEta(jfSvNew(f) + "_minimumAllJetTrackRelativeEta"),
   m_max_trk_flightDirRelEta(jfSvNew(f) + "_maximumAllJetTrackRelativeEta"),
   m_avg_trk_flightDirRelEta(jfSvNew(f) + "_averageAllJetTrackRelativeEta"),
-  m_flipConfig(f)
+  m_flipConfig(f),
+  m_useIpxd(useIpxd)
 {
 }
 
@@ -232,21 +236,23 @@ void BTagJetAugmenter::augmentBtagJes(const xAOD::BTagging &btag,
 
 void BTagJetAugmenter::augment(const xAOD::BTagging &btag) const {
 
-  if (m_ip2d_weightBOfTracks(btag).size() > 0) {
-    m_ip2d_isDefaults(btag) = 0;
-  } else {
-    m_ip2d_isDefaults(btag) = 1;
-  }
-  m_ip2d_nTrks(btag) = m_ip2d_weightBOfTracks(btag).size();
+  if (m_useIpxd) {
+    if (m_ip2d_weightBOfTracks(btag).size() > 0) {
+      m_ip2d_isDefaults(btag) = 0;
+    } else {
+      m_ip2d_isDefaults(btag) = 1;
+    }
+    m_ip2d_nTrks(btag) = m_ip2d_weightBOfTracks(btag).size();
 
-  if (m_ip3d_weightBOfTracks(btag).size() > 0) {
-    m_ip3d_isDefaults(btag) = 0;
-  } else {
-    m_ip3d_isDefaults(btag) = 1;
-  }
+    if (m_ip3d_weightBOfTracks(btag).size() > 0) {
+      m_ip3d_isDefaults(btag) = 0;
+    } else {
+      m_ip3d_isDefaults(btag) = 1;
+    }
 
-  m_ip3d_nTrks(btag) = m_ip3d_weightBOfTracks(btag).size();
-  augmentIpRatios(btag);
+    m_ip3d_nTrks(btag) = m_ip3d_weightBOfTracks(btag).size();
+    augmentIpRatios(btag);
+  }
 
   m_jf_isDefaults(btag) = jfIsDefaults(btag);
   augmentJfDr(btag);
diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/python/BTagJetAugmenterAlgConfig.py b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/python/BTagJetAugmenterAlgConfig.py
index 0e79cd2de42dab0617b38ae0e731b07f2d229b69..e8132997b0eb8f451823f42dbbfa678843689d34 100644
--- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/python/BTagJetAugmenterAlgConfig.py
+++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/python/BTagJetAugmenterAlgConfig.py
@@ -9,10 +9,13 @@ def BTagJetAugmenterAlgCfg(ConfigFlags, BTagCollection, Associator,  TrackCollec
     flip_config = 'FLIP_SIGN' if doFlipTagger else 'STANDARD'
     name+=("_"+flip_config)
 
+    useIpxd = bool({'IP3D','IP2D'} & set(ConfigFlags.BTagging.taggerList))
+
     btagAug = CompFactory.FlavorTagDiscriminants.BTagAugmenterTool(
         name=name,
         flipTagConfig=flip_config,
         trackAssociator=Associator,
+        useIpxd=useIpxd,
     )
 
     decorAlg = CompFactory.FlavorTagDiscriminants.BTagDecoratorAlg(
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py b/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
index 2809b80c4f5f497242657ecd537eca2cfd92787d..09180d52180a0b16a872a855c2f65c19aed96c9e 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/python/SV1TagConfig.py
@@ -27,19 +27,25 @@ def SV1TagCfg( flags, name = 'SV1Tag', scheme = '', useBTagFlagsDefaults = True,
         options['xAODBaseName'] = 'SV1Flip'
     else:
         options['xAODBaseName'] = 'SV1'
-    if useBTagFlagsDefaults:
+
+    if flags.BTagging.SaveSV1Probabilities:
         likelihood = acc.popToolsAndMerge(NewLikelihoodToolCfg(flags, 'SV1NewLikelihoodTool', 'SV1', scheme))
-        defaults = { 'Runmodus'                         : flags.BTagging.RunModus,
-                     'referenceType'                    : flags.BTagging.ReferenceType,
-                     'jetPtMinRef'                      : flags.BTagging.JetPtMinRef,
-                     'SaveProbabilities'                : flags.BTagging.SaveSV1Probabilities,
-                     'SVAlgType'                        : 'SV1',
-                     'jetCollectionList'                : [], #used only in reference mode
-                     'SecVxFinderName'                  : 'SV1',
-                     'UseCHypo'                         : True,
-                     'LikelihoodTool'                   : likelihood }
-        for option in defaults:
-            options.setdefault(option, defaults[option])
+    else:
+        likelihood = None
+
+    defaults = {
+        'Runmodus'           : flags.BTagging.RunModus,
+        'referenceType'      : flags.BTagging.ReferenceType,
+        'jetPtMinRef'        : flags.BTagging.JetPtMinRef,
+        'SaveProbabilities'  : flags.BTagging.SaveSV1Probabilities,
+        'SVAlgType'          : 'SV1',
+        'jetCollectionList'  : [], #used only in reference mode
+        'SecVxFinderName'    : 'SV1',
+        'UseCHypo'           : True,
+        'LikelihoodTool'     : likelihood
+    }
+    for option in defaults:
+        options.setdefault(option, defaults[option])
     acc.setPrivateTools(CompFactory.Analysis.SVTag(**options))
 
     return acc
diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/src/SVTag.cxx b/PhysicsAnalysis/JetTagging/JetTagTools/src/SVTag.cxx
index 5c62f13ab15c020b0c69a2eea42f9a19d92f2680..a7b4e077680c410925c2a863ecf3cc10ac4b0a0f 100644
--- a/PhysicsAnalysis/JetTagging/JetTagTools/src/SVTag.cxx
+++ b/PhysicsAnalysis/JetTagging/JetTagTools/src/SVTag.cxx
@@ -22,7 +22,7 @@
 #include <string>
 
 #include "GeoPrimitives/GeoPrimitivesHelpers.h"
- 
+
 namespace Analysis
 {
 
@@ -78,9 +78,9 @@ namespace Analysis
       m_histoHelper = new HistoHelperRoot(myHistoSvc);
       m_histoHelper->setCheckOverflows(m_checkOverflows);
     } else ATH_MSG_ERROR("#BTAG#" << name() << ": HistoSvc could NOT bo loaded.");
-  
+
     /** configure likelihood: */
-    if( m_runModus == "analysis" && m_SVmode != "SV0" ) {
+    if( m_runModus == "analysis" && m_SVmode != "SV0" && m_save_probabilities) {
       if ( m_likelihoodTool.retrieve().isFailure() ) {
         ATH_MSG_FATAL("#BTAG# Failed to retrieve tool " << m_likelihoodTool);
         return StatusCode::FAILURE;
@@ -98,40 +98,40 @@ namespace Analysis
     if (m_runModus=="reference" && m_SVmode!="SV0") {
       //
       // Book the histos
-      // 
+      //
       ATH_MSG_VERBOSE("#BTAG# Booking histos...");
       std::vector<double> xb;
       double xbi[10] = {1., 2., 3., 4., 5., 6., 8., 10., 20., 50.};
       for(uint ijc=0;ijc<m_jetCollectionList.size();ijc++) {
-      
-	for(uint ih=0;ih<m_hypotheses.size();ih++) {
-	  // SV1
-	  if (m_SVmode == "SV1") {
-	    std::string hDir = "/RefFile/SV1/"+m_jetCollectionList[ijc]+"/"+m_hypotheses[ih]+"/";
-	    m_histoHelper->bookHisto(hDir+"N2T", "Number of Good Two Track Vertices",9,xbi);
-	    m_histoHelper->bookHisto(hDir+"N2TEffSV1", "Number of Good Two Track Vertices",9,xbi);
-	    m_histoHelper->bookHisto(hDir+"N2TNormSV1", "Number of Good Two Track Vertices",30,0.,30.);
-	    m_histoHelper->bookHisto(hDir+"BidimME", "(E fraction)**0.7 vs Mass/(Mass+1)" ,50,0.218261406,1.,50,0.,1.);
-	    m_histoHelper->bookHisto(hDir+"DRJPVSV", "DeltaR between jet axis and (PV,SV) axis",100,0.,0.5);
-	  } else if (m_SVmode == "SV2") {
-	    std::string hDir = "/RefFile/SV2/"+m_jetCollectionList[ijc]+"/"+m_hypotheses[ih]+"/";
-	    // SV2
-	    m_histoHelper->bookHisto(hDir+"N2TEffSV2", "Number of Good Two Track Vertices",9,xbi);
-	    m_histoHelper->bookHisto(hDir+"N2TNormSV2", "Number of Good Two Track Vertices",30,0.,30.);
+
+        for(uint ih=0;ih<m_hypotheses.size();ih++) {
+          // SV1
+          if (m_SVmode == "SV1") {
+            std::string hDir = "/RefFile/SV1/"+m_jetCollectionList[ijc]+"/"+m_hypotheses[ih]+"/";
+            m_histoHelper->bookHisto(hDir+"N2T", "Number of Good Two Track Vertices",9,xbi);
+            m_histoHelper->bookHisto(hDir+"N2TEffSV1", "Number of Good Two Track Vertices",9,xbi);
+            m_histoHelper->bookHisto(hDir+"N2TNormSV1", "Number of Good Two Track Vertices",30,0.,30.);
+            m_histoHelper->bookHisto(hDir+"BidimME", "(E fraction)**0.7 vs Mass/(Mass+1)" ,50,0.218261406,1.,50,0.,1.);
+            m_histoHelper->bookHisto(hDir+"DRJPVSV", "DeltaR between jet axis and (PV,SV) axis",100,0.,0.5);
+          } else if (m_SVmode == "SV2") {
+            std::string hDir = "/RefFile/SV2/"+m_jetCollectionList[ijc]+"/"+m_hypotheses[ih]+"/";
+            // SV2
+            m_histoHelper->bookHisto(hDir+"N2TEffSV2", "Number of Good Two Track Vertices",9,xbi);
+            m_histoHelper->bookHisto(hDir+"N2TNormSV2", "Number of Good Two Track Vertices",30,0.,30.);
             if(m_usePtSV2)m_histoHelper->bookHisto(hDir+"TridimMENPt","ln(Pt) vs (E fraction)**0.7 vs Mass/(Mass+1)",20,0.,1.,20,0.,1.,6,0.,4.8);
             else          m_histoHelper->bookHisto(hDir+"TridimMEN2T"," ln(N) vs (E fraction)**0.7 vs Mass/(Mass+1)",20,0.,1.,20,0.,1.,7,0.,3.8);
-	    if(ih==0) {
-	      // Control with SV2
-	      hDir = "/RefFile/SV2/"+m_jetCollectionList[ijc]+"/controlSV/";
-	      m_histoHelper->bookHisto(hDir+"eta","eta",60,-3.,3.);
-	      m_histoHelper->bookHisto(hDir+"phi","phi",64,-3.2,3.2);
-	      m_histoHelper->bookHisto(hDir+"pt","pt",50,0.,300.);
-	    }
-	  }
-	}
+            if(ih==0) {
+              // Control with SV2
+              hDir = "/RefFile/SV2/"+m_jetCollectionList[ijc]+"/controlSV/";
+              m_histoHelper->bookHisto(hDir+"eta","eta",60,-3.,3.);
+              m_histoHelper->bookHisto(hDir+"phi","phi",64,-3.2,3.2);
+              m_histoHelper->bookHisto(hDir+"pt","pt",50,0.,300.);
+            }
+          }
+        }
       }
       m_histoHelper->print();
-    }  
+    }
 
     // Check if this instance of tagger is a flipped one:
     std::string iname( this->name().substr(8) );
@@ -141,15 +141,15 @@ namespace Analysis
       ATH_MSG_INFO("#BTAG# This instance of tagger has a flipped configuration. DRJPVSV computation will be adjusted.");
     }
 
-    //Conversion to GeV    
-    m_c_mom   = 1000.; 
+    //Conversion to GeV
+    m_c_mom   = 1000.;
     //
     m_expos = 0.7;
-                   
-    m_nbjet = 0;   
+
+    m_nbjet = 0;
     m_ncjet = 0;
     m_nljet = 0;
-    return StatusCode::SUCCESS;                       
+    return StatusCode::SUCCESS;
   }
 
 
@@ -157,8 +157,8 @@ namespace Analysis
   {
     if( m_runModus == "reference" ) {
       ATH_MSG_INFO("#BTAG# Number of jets used for calibration for reference "
-	   << m_refType << " : #b= " << m_nbjet << " #light= " << m_nljet  << " #charm= " << m_ncjet 
-	  );
+     << m_refType << " : #b= " << m_nbjet << " #light= " << m_nljet  << " #charm= " << m_ncjet
+    );
     }
     return StatusCode::SUCCESS;
   }
@@ -177,19 +177,19 @@ namespace Analysis
     /* The jet */
     double jeteta = jetToTag.eta(), jetphi = jetToTag.phi(), jetpt = jetToTag.pt();
     ATH_MSG_VERBOSE("#BTAG# Jet properties : eta = " << jeteta
-		    << " phi = " << jetphi << " pT  = " <<jetpt/m_c_mom);
+                    << " phi = " << jetphi << " pT  = " <<jetpt/m_c_mom);
 
     // Fill control histograms
     if (m_runModus=="reference" && m_SVmode == "SV2") {
       if (fabs(jeteta) <= 2.5) {
-	m_histoHelper->fillHisto("/RefFile/SV2/"+author+"/controlSV/eta",(double)jeteta);
-	m_histoHelper->fillHisto("/RefFile/SV2/"+author+"/controlSV/phi",(double)jetphi);
-	m_histoHelper->fillHisto("/RefFile/SV2/"+author+"/controlSV/pt",(double)jetpt/m_c_mom);
+        m_histoHelper->fillHisto("/RefFile/SV2/"+author+"/controlSV/eta",(double)jeteta);
+        m_histoHelper->fillHisto("/RefFile/SV2/"+author+"/controlSV/phi",(double)jetphi);
+        m_histoHelper->fillHisto("/RefFile/SV2/"+author+"/controlSV/pt",(double)jetpt/m_c_mom);
       }
     }
     //
-    // Get the SV info 
-    // 
+    // Get the SV info
+    //
     float    ambtot = -1., xratio = -1., distnrm = 0., drJPVSV = 0., Lxy = -100., L3d = -100.;
     int NSVPair = -1;
     float distnrmCorr=0.;
@@ -199,8 +199,8 @@ namespace Analysis
     std::vector< ElementLink< xAOD::VertexContainer > > myVertices;
     // don't check the following status
     BTag.variable<std::vector<ElementLink<xAOD::VertexContainer> > >(m_secVxFinderName, "vertices", myVertices);
-      // BTag.auxdata<std::vector<ElementLink<xAOD::VertexContainer> > >(m_secVxFinderName+"_vertices");
-        
+    // BTag.auxdata<std::vector<ElementLink<xAOD::VertexContainer> > >(m_secVxFinderName+"_vertices");
+
     if (myVertices.size()>0) {
 
       status &= BTag.variable<float>(m_secVxFinderName, "masssvx", ambtot);// mass in MeV
@@ -211,66 +211,66 @@ namespace Analysis
       if (!status) {
         ATH_MSG_WARNING("Error retrieving variables for SV finder name " << m_secVxFinderName << ", result will be incorrect!");
       }
-          
+
       // DR between Jet axis and PV-SV axis
       // For the time being computed only for Single Vertex...
       if (myVertices[0].isValid()) {
-	// if (myVertices[0]!=0) {
-	const xAOD::Vertex* firstVertex = *(myVertices[0]);
-	
-	//FIXME ugly hack to get a Amg::Vector3D out of a CLHEP::HepLorentzVector
-	Amg::Vector3D jetDir(jetToTag.p4().Px(),jetToTag.p4().Py(),jetToTag.p4().Pz());
-	const Amg::Vector3D PVposition = priVtx.position();
-	const Amg::Vector3D position = firstVertex->position();
-	Amg::Vector3D PvSvDir( position.x() - PVposition.x(),
-			       position.y() - PVposition.y(),
-			       position.z() - PVposition.z() );
-	double drJPVSV_1 = Amg::deltaR(jetDir,PvSvDir);
-	drJPVSV = drJPVSV_1;
-	// for flipped taggers, use -jet direction:
-	double drJPVSV_2 = Amg::deltaR(-jetDir, PvSvDir); // for negative tags
-	if ( m_isFlipped ) drJPVSV = drJPVSV_2; // for negative tags
-	ATH_MSG_VERBOSE("#BTAG# DRJPVSV regular="<<drJPVSV_1<<" flipped="<<drJPVSV_2<<" chosen="<<drJPVSV);
-	
-	Lxy=sqrt(pow(PvSvDir(0,0),2)+pow(PvSvDir(1,0),2));
-	L3d=sqrt(pow(PvSvDir(0,0),2)+pow(PvSvDir(1,0),2)+pow(PvSvDir(2,0),2));
+        // if (myVertices[0]!=0) {
+        const xAOD::Vertex* firstVertex = *(myVertices[0]);
+
+        //FIXME ugly hack to get a Amg::Vector3D out of a CLHEP::HepLorentzVector
+        Amg::Vector3D jetDir(jetToTag.p4().Px(),jetToTag.p4().Py(),jetToTag.p4().Pz());
+        const Amg::Vector3D PVposition = priVtx.position();
+        const Amg::Vector3D position = firstVertex->position();
+        Amg::Vector3D PvSvDir( position.x() - PVposition.x(),
+                               position.y() - PVposition.y(),
+                               position.z() - PVposition.z() );
+        double drJPVSV_1 = Amg::deltaR(jetDir,PvSvDir);
+        drJPVSV = drJPVSV_1;
+        // for flipped taggers, use -jet direction:
+        double drJPVSV_2 = Amg::deltaR(-jetDir, PvSvDir); // for negative tags
+        if ( m_isFlipped ) drJPVSV = drJPVSV_2; // for negative tags
+        ATH_MSG_VERBOSE("#BTAG# DRJPVSV regular="<<drJPVSV_1<<" flipped="<<drJPVSV_2<<" chosen="<<drJPVSV);
+
+        Lxy=sqrt(pow(PvSvDir(0,0),2)+pow(PvSvDir(1,0),2));
+        L3d=sqrt(pow(PvSvDir(0,0),2)+pow(PvSvDir(1,0),2)+pow(PvSvDir(2,0),2));
       }else{
-	ATH_MSG_VERBOSE("#BTAG# No secondary vertex.");
+        ATH_MSG_VERBOSE("#BTAG# No secondary vertex.");
       }
-      
+
       std::vector<const xAOD::Vertex*> vecVertices;
       const std::vector<ElementLink<xAOD::VertexContainer> >::const_iterator verticesEnd = myVertices.end();
       for (std::vector<ElementLink<xAOD::VertexContainer> >::const_iterator verticesIter = myVertices.begin();
-	   verticesIter != verticesEnd; ++verticesIter) {
-	if (!verticesIter->isValid()) {
-	  ATH_MSG_WARNING("#BTAG# Secondary vertex from InDetVKalVxInJetFinder has zero pointer. Skipping... ");
-	  continue;
-	}
-	vecVertices.push_back(**verticesIter);
+           verticesIter != verticesEnd; ++verticesIter) {
+        if (!verticesIter->isValid()) {
+          ATH_MSG_WARNING("#BTAG# Secondary vertex from InDetVKalVxInJetFinder has zero pointer. Skipping... ");
+          continue;
+        }
+        vecVertices.push_back(**verticesIter);
       }
-      
+
       if (myVertices[0].isValid()) {
-	const xAOD::Vertex* myVert  = *myVertices[0];
+        const xAOD::Vertex* myVert  = *myVertices[0];
         distnrm=get3DSignificance(priVtx, vecVertices,
                                   Amg::Vector3D(jetToTag.p4().Px(),jetToTag.p4().Py(),jetToTag.p4().Pz()));
-	ATH_MSG_VERBOSE("#BTAG# SVX x = " << myVert->position().x() << " y = " << myVert->position().y() << " z = " << myVert->position().z());
+        ATH_MSG_VERBOSE("#BTAG# SVX x = " << myVert->position().x() << " y = " << myVert->position().y() << " z = " << myVert->position().z());
         distnrmCorr=get3DSignificanceCorr(priVtx, vecVertices,
-                                  Amg::Vector3D(jetToTag.p4().Px(),jetToTag.p4().Py(),jetToTag.p4().Pz()));
+                                          Amg::Vector3D(jetToTag.p4().Px(),jetToTag.p4().Py(),jetToTag.p4().Pz()));
       } else {
-	ATH_MSG_VERBOSE("#BTAG# No vertex. Cannot calculate normalized distance.");
-	distnrm=0.;
+        ATH_MSG_VERBOSE("#BTAG# No vertex. Cannot calculate normalized distance.");
+        distnrm=0.;
       }
-      
+
       ATH_MSG_VERBOSE("#BTAG# The SVX prop. sign3d: " << distnrm);
       ATH_MSG_VERBOSE("#BTAG# Svx Mass = "<< ambtot << " Svx E frac = " << xratio << " NGood2TrackVertices = " << NSVPair);
     } else {
       //keepInfoPlus = false;
       ATH_MSG_VERBOSE("#BTAG# No SVx !");
     }
-    
+
 
     /* Give information to the info class. */
-    // define Info name based on tagger instance name 
+    // define Info name based on tagger instance name
     // (remove ToolSvc. in front and Tag inside name):
     std::string iname(name().substr(8));
     std::string instanceName(iname);
@@ -282,36 +282,38 @@ namespace Analysis
       instanceName += posfix;
     }
 //AA: Move to filling xAOD::BTagging
+    // note that this block is filling things other than likelihood,
+    // it should not be conditional on m_save_probabilities
     if (m_runModus=="analysis") {
-      // -- fill extended info class ... 
+      // -- fill extended info class ...
 
       if (m_xAODBaseName == "SV0") // just to be clear, specify enum explicitely
-	{
-	  BTag.setTaggerInfo(distnrm, xAOD::BTagInfo::SV0_normdist);
-	  BTag.setSV0_significance3D(distnrm);
-	}
+      {
+        BTag.setTaggerInfo(distnrm, xAOD::BTagInfo::SV0_normdist);
+        BTag.setSV0_significance3D(distnrm);
+      }
       else if (m_xAODBaseName == "SV1")
-	{
-	  BTag.setTaggerInfo(distnrmCorr, xAOD::BTagInfo::SV1_normdist);
-	  BTag.setVariable<float>(m_xAODBaseName, "significance3d", distnrm);
-	  BTag.setVariable<float>(m_xAODBaseName, "correctSignificance3d", distnrmCorr);
-	  BTag.setVariable<float>(m_xAODBaseName, "deltaR", drJPVSV);
-	  BTag.setVariable<float>(m_xAODBaseName, "Lxy", Lxy);
-	  BTag.setVariable<float>(m_xAODBaseName, "L3d", L3d);
-	}
+      {
+        BTag.setTaggerInfo(distnrmCorr, xAOD::BTagInfo::SV1_normdist);
+        BTag.setVariable<float>(m_xAODBaseName, "significance3d", distnrm);
+        BTag.setVariable<float>(m_xAODBaseName, "correctSignificance3d", distnrmCorr);
+        BTag.setVariable<float>(m_xAODBaseName, "deltaR", drJPVSV);
+        BTag.setVariable<float>(m_xAODBaseName, "Lxy", Lxy);
+        BTag.setVariable<float>(m_xAODBaseName, "L3d", L3d);
+      }
       else{
-	BTag.setVariable<float>(m_xAODBaseName, "normdist", distnrm);
-	if (m_xAODBaseName.find("SV1")!=std::string::npos) {
-	  BTag.setVariable<float>(m_xAODBaseName, "significance3d", distnrm);
-	  BTag.setVariable<float>(m_xAODBaseName, "correctSignificance3d", distnrmCorr);
-	  BTag.setVariable<float>(m_xAODBaseName, "deltaR", drJPVSV);
-	  BTag.setVariable<float>(m_xAODBaseName, "Lxy", Lxy);
-	  BTag.setVariable<float>(m_xAODBaseName, "L3d", L3d);
-	}
+        BTag.setVariable<float>(m_xAODBaseName, "normdist", distnrm);
+        if (m_xAODBaseName.find("SV1")!=std::string::npos) {
+          BTag.setVariable<float>(m_xAODBaseName, "significance3d", distnrm);
+          BTag.setVariable<float>(m_xAODBaseName, "correctSignificance3d", distnrmCorr);
+          BTag.setVariable<float>(m_xAODBaseName, "deltaR", drJPVSV);
+          BTag.setVariable<float>(m_xAODBaseName, "Lxy", Lxy);
+          BTag.setVariable<float>(m_xAODBaseName, "L3d", L3d);
+        }
       }
 
-    }
-    
+    } // end "analysis" mode block
+
 
     /* For SV1 & SV2, compute the weight (analysis) or fill histograms (reference) */
     ATH_MSG_VERBOSE("#BTAG# SV mode = " << m_SVmode);
@@ -322,143 +324,141 @@ namespace Analysis
       float trfJetPt=log(jetToTag.pt()/20000.); if(trfJetPt<0.)trfJetPt=0.01; if(trfJetPt>4.8)trfJetPt=4.79;
       std::string pref = "";
       if (m_runModus=="reference") {
-	if (jetpt >= m_pTjetmin && fabs(jeteta) <= 2.5) {
-	  int label = xAOD::jetFlavourLabel(&jetToTag);
-	  double deltaRtoClosestB = 999.;//, deltaRtoClosestC = 999.;
-	  if (jetToTag.getAttribute("TruthLabelDeltaR_B",deltaRtoClosestB)) {
-	    ATH_MSG_VERBOSE("#BTAG# label found : " << label);
-	    // for purification: require no b or c quark closer than dR=m_purificationDeltaR
-	    double deltaRtoClosestC;
-	    jetToTag.getAttribute("TruthLabelDeltaR_C", deltaRtoClosestC);//mcTrueInfo->deltaRMinTo("C");
-	    double deltaRmin = deltaRtoClosestB < deltaRtoClosestC ? deltaRtoClosestB : deltaRtoClosestC;
-
-	    if ( (    "B"==m_refType &&   5==label ) ||  // b-jets    
-		 ( "UDSG"==m_refType &&   0==label ) ||  // light jets
-		 (  "ALL"==m_refType && // all jets: b + purified light jets
-		    ( 5==label || 4==label || ( 0==label && deltaRmin > m_purificationDeltaR ) ) )
-		 ) {
-	      if (5==label) {
-		pref = m_hypotheses[0];
-		m_nbjet++;
-	      } else if (0==label) {
-		pref = m_hypotheses[1];
-		m_nljet++;
-	      } else if (4==label && m_useCHypo) {
-		pref = m_hypotheses[2];
-		m_ncjet++;
-	      }
-	    }
-	    if (pref == "B" || pref == "C" || pref == "U") {
-	      std::string hDir = "/RefFile/"+m_SVmode+"/"+author+"/"+pref+"/";
-	      //std::cout<<"SVTAG tag histohelper: " << m_histoHelper << std::endl;
-	      //m_histoHelper->print();
-	      if (m_SVmode == "SV1") m_histoHelper->fillHisto(hDir+"N2TNormSV1",(float)NSVPair);
-	      if (m_SVmode == "SV2") m_histoHelper->fillHisto(hDir+"N2TNormSV2",(float)NSVPair);
-	      if (NSVPair > 0 && ambtot > 0.) {
-		if (xratiop == 1.) xratiop = 0.999999;  //This is not an overflow...
-		if (m_SVmode == "SV1") {
-		  m_histoHelper->fillHisto(hDir+"N2T",(float)NSVPair);
-		  m_histoHelper->fillHisto(hDir+"N2TEffSV1",(float)NSVPair);
-		  m_histoHelper->fillHisto(hDir+"BidimME",ambtotp,xratiop);
-		  m_histoHelper->fillHisto(hDir+"DRJPVSV",(float)drJPVSV);
-		}
-		if (m_SVmode == "SV2") {
-		  m_histoHelper->fillHisto(hDir+"N2TEffSV2",(float)NSVPair);
+        if (jetpt >= m_pTjetmin && fabs(jeteta) <= 2.5) {
+          int label = xAOD::jetFlavourLabel(&jetToTag);
+          double deltaRtoClosestB = 999.;//, deltaRtoClosestC = 999.;
+          if (jetToTag.getAttribute("TruthLabelDeltaR_B",deltaRtoClosestB)) {
+            ATH_MSG_VERBOSE("#BTAG# label found : " << label);
+            // for purification: require no b or c quark closer than dR=m_purificationDeltaR
+            double deltaRtoClosestC;
+            jetToTag.getAttribute("TruthLabelDeltaR_C", deltaRtoClosestC);//mcTrueInfo->deltaRMinTo("C");
+            double deltaRmin = deltaRtoClosestB < deltaRtoClosestC ? deltaRtoClosestB : deltaRtoClosestC;
+
+            if ( (    "B"==m_refType &&   5==label ) ||  // b-jets
+                 ( "UDSG"==m_refType &&   0==label ) ||  // light jets
+                 (  "ALL"==m_refType && // all jets: b + purified light jets
+                    ( 5==label || 4==label || ( 0==label && deltaRmin > m_purificationDeltaR ) ) )
+              ) {
+              if (5==label) {
+                pref = m_hypotheses[0];
+                m_nbjet++;
+              } else if (0==label) {
+                pref = m_hypotheses[1];
+                m_nljet++;
+              } else if (4==label && m_useCHypo) {
+                pref = m_hypotheses[2];
+                m_ncjet++;
+              }
+            }
+            if (pref == "B" || pref == "C" || pref == "U") {
+              std::string hDir = "/RefFile/"+m_SVmode+"/"+author+"/"+pref+"/";
+              //std::cout<<"SVTAG tag histohelper: " << m_histoHelper << std::endl;
+              //m_histoHelper->print();
+              if (m_SVmode == "SV1") m_histoHelper->fillHisto(hDir+"N2TNormSV1",(float)NSVPair);
+              if (m_SVmode == "SV2") m_histoHelper->fillHisto(hDir+"N2TNormSV2",(float)NSVPair);
+              if (NSVPair > 0 && ambtot > 0.) {
+                if (xratiop == 1.) xratiop = 0.999999;  //This is not an overflow...
+                if (m_SVmode == "SV1") {
+                  m_histoHelper->fillHisto(hDir+"N2T",(float)NSVPair);
+                  m_histoHelper->fillHisto(hDir+"N2TEffSV1",(float)NSVPair);
+                  m_histoHelper->fillHisto(hDir+"BidimME",ambtotp,xratiop);
+                  m_histoHelper->fillHisto(hDir+"DRJPVSV",(float)drJPVSV);
+                }
+                if (m_SVmode == "SV2") {
+                  m_histoHelper->fillHisto(hDir+"N2TEffSV2",(float)NSVPair);
                   if(m_usePtSV2)m_histoHelper->fillHisto(hDir+"TridimMENPt",ambtotp,xratiop,trfJetPt);
-		  else          m_histoHelper->fillHisto(hDir+"TridimMEN2T",ambtotp,xratiop,log((float)NSVPair));
-		}
-	      }
-	    }
-	  } else {
-	    ATH_MSG_ERROR("#BTAG# No TruthInfo ! Cannot run in reference mode !");
-	    return StatusCode::FAILURE;
-	  }
-	}
-      } else if (m_runModus=="analysis") {
-	std::vector<double> probi;
-	// access efficiencies:
-	double effb = m_likelihoodTool->getEff(m_hypotheses[0], author+"#N2T", m_SVmode);
-	double effu = m_likelihoodTool->getEff(m_hypotheses[1], author+"#N2T", m_SVmode);
-	double effc = 1.e9;
-	if(m_useCHypo){
-	  effc = m_likelihoodTool->getEff(m_hypotheses[2], author+"#N2T", m_SVmode);
-	}
-	ATH_MSG_DEBUG( "#BTAG#  EFF b,u,c= " << effb << " " << effu << " " << effc);
-	if (NSVPair>0 && ambtot > 0.) {
-	  std::vector<Slice> nslices;
-	  AtomicProperty atom2(ambtotp,"SecVtx Transformed Mass");
-	  AtomicProperty atom3(xratiop,"SecVtx Transformed Energy Fraction");
-	  if (m_SVmode == "SV1") {
-	    AtomicProperty atom1(NSVPair,"Number of Two Track Vertices");
-	    std::string compoName(author+"#");
-	    Composite compo1(compoName+"N2T");
-	    Composite compo2(compoName+"BidimME");
-	    compo1.atoms.push_back(atom1);
-	    compo2.atoms.push_back(atom2);
-	    compo2.atoms.push_back(atom3);
-	    Slice slice1("SV1");
-	    slice1.composites.push_back(compo1);
-	    slice1.composites.push_back(compo2);
-	    if(m_useDRJPVSV) {
-	      AtomicProperty atom4(drJPVSV,"DeltaR between jet axis and (PV,SV) axis"); 
-	      Composite compo3(compoName+"DRJPVSV");
-	      compo3.atoms.push_back(atom4);
-	      slice1.composites.push_back(compo3);
-	    }
-	    nslices.push_back(slice1);
-	  } else if (m_SVmode == "SV2") {
-	    std::string compoName(author+"#");
-	    Slice slice1("SV2");
-	    if(m_usePtSV2){ 
-	      AtomicProperty atom1(trfJetPt,"log(JetPt/2e4)");
-	      Composite compo(compoName+"TridimMENPt");
-	      compo.atoms.push_back(atom2);
-	      compo.atoms.push_back(atom3);
-	      compo.atoms.push_back(atom1);
-	      Composite compo1(compoName+"N2TEffSV2");
-	      AtomicProperty atom4(NSVPair,"Number of Two Track Vertices");
-	      compo1.atoms.push_back(atom4);
-	      slice1.composites.push_back(compo);
-	      slice1.composites.push_back(compo1);
-	    }else{ 
-	      AtomicProperty atom1(log((float)NSVPair),"log(Number of Two Track Vertices)");
-	      Composite compo(compoName+"TridimMEN2T");
-	      compo.atoms.push_back(atom2);
-	      compo.atoms.push_back(atom3);
-	      compo.atoms.push_back(atom1);
-	      slice1.composites.push_back(compo);
+                  else          m_histoHelper->fillHisto(hDir+"TridimMEN2T",ambtotp,xratiop,log((float)NSVPair));
+                }
+              }
             }
-	    nslices.push_back(slice1);
-	  }
-	  probi = m_likelihoodTool->calculateLikelihood(nslices);
-	  ATH_MSG_DEBUG( "#BTAG#  WEIGHT: pb, pu, pc= " 
-			 << probi[0] << " " << probi[1] << " " << probi[2]);
-	  if (probi.size() >= 2) {
-	    probi[0] *= effb;
-	    probi[1] *= effu;
-	    if(m_useCHypo){
-	      probi[2] *= effc;
-	    }
-	  } else {
-	    ATH_MSG_ERROR("#BTAG# Missing number in jet probabilities ! "<<probi.size());
-	  }
-	} else {
-	  // The SV weight is computed even if there is only one or no track !
-	  // It may seem a little bit weird... 
-	  probi.push_back((1.-effb));
-	  probi.push_back((1.-effu));
-	  if(m_useCHypo){
-	    probi.push_back((1.-effc));
-	  }
-	}
-
-  if (m_save_probabilities) {
-	BTag.setVariable<float>(m_xAODBaseName, "pb", probi[0]);
-	BTag.setVariable<float>(m_xAODBaseName, "pu", probi[1]);
-	if (m_useCHypo) BTag.setVariable<float>(m_xAODBaseName, "pc", probi[2]);
-  }
- 	
-      }
+          } else {
+            ATH_MSG_ERROR("#BTAG# No TruthInfo ! Cannot run in reference mode !");
+            return StatusCode::FAILURE;
+          }
+        }
+      } else if (m_runModus=="analysis" && m_save_probabilities) {
+        std::vector<double> probi;
+        // access efficiencies:
+        double effb = m_likelihoodTool->getEff(m_hypotheses[0], author+"#N2T", m_SVmode);
+        double effu = m_likelihoodTool->getEff(m_hypotheses[1], author+"#N2T", m_SVmode);
+        double effc = 1.e9;
+        if(m_useCHypo){
+          effc = m_likelihoodTool->getEff(m_hypotheses[2], author+"#N2T", m_SVmode);
+        }
+        ATH_MSG_DEBUG( "#BTAG#  EFF b,u,c= " << effb << " " << effu << " " << effc);
+        if (NSVPair>0 && ambtot > 0.) {
+          std::vector<Slice> nslices;
+          AtomicProperty atom2(ambtotp,"SecVtx Transformed Mass");
+          AtomicProperty atom3(xratiop,"SecVtx Transformed Energy Fraction");
+          if (m_SVmode == "SV1") {
+            AtomicProperty atom1(NSVPair,"Number of Two Track Vertices");
+            std::string compoName(author+"#");
+            Composite compo1(compoName+"N2T");
+            Composite compo2(compoName+"BidimME");
+            compo1.atoms.push_back(atom1);
+            compo2.atoms.push_back(atom2);
+            compo2.atoms.push_back(atom3);
+            Slice slice1("SV1");
+            slice1.composites.push_back(compo1);
+            slice1.composites.push_back(compo2);
+            if(m_useDRJPVSV) {
+              AtomicProperty atom4(drJPVSV,"DeltaR between jet axis and (PV,SV) axis");
+              Composite compo3(compoName+"DRJPVSV");
+              compo3.atoms.push_back(atom4);
+              slice1.composites.push_back(compo3);
+            }
+            nslices.push_back(slice1);
+          } else if (m_SVmode == "SV2") {
+            std::string compoName(author+"#");
+            Slice slice1("SV2");
+            if(m_usePtSV2){
+              AtomicProperty atom1(trfJetPt,"log(JetPt/2e4)");
+              Composite compo(compoName+"TridimMENPt");
+              compo.atoms.push_back(atom2);
+              compo.atoms.push_back(atom3);
+              compo.atoms.push_back(atom1);
+              Composite compo1(compoName+"N2TEffSV2");
+              AtomicProperty atom4(NSVPair,"Number of Two Track Vertices");
+              compo1.atoms.push_back(atom4);
+              slice1.composites.push_back(compo);
+              slice1.composites.push_back(compo1);
+            }else{
+              AtomicProperty atom1(log((float)NSVPair),"log(Number of Two Track Vertices)");
+              Composite compo(compoName+"TridimMEN2T");
+              compo.atoms.push_back(atom2);
+              compo.atoms.push_back(atom3);
+              compo.atoms.push_back(atom1);
+              slice1.composites.push_back(compo);
+            }
+            nslices.push_back(slice1);
+          }
+          probi = m_likelihoodTool->calculateLikelihood(nslices);
+          ATH_MSG_DEBUG( "#BTAG#  WEIGHT: pb, pu, pc= "
+                         << probi[0] << " " << probi[1] << " " << probi[2]);
+          if (probi.size() >= 2) {
+            probi[0] *= effb;
+            probi[1] *= effu;
+            if(m_useCHypo){
+              probi[2] *= effc;
+            }
+          } else {
+            ATH_MSG_ERROR("#BTAG# Missing number in jet probabilities ! "<<probi.size());
+          }
+        } else {
+          // The SV weight is computed even if there is only one or no track !
+          // It may seem a little bit weird...
+          probi.push_back((1.-effb));
+          probi.push_back((1.-effu));
+          if(m_useCHypo){
+            probi.push_back((1.-effc));
+          }
+        }
+
+        BTag.setVariable<float>(m_xAODBaseName, "pb", probi[0]);
+        BTag.setVariable<float>(m_xAODBaseName, "pu", probi[1]);
+        if (m_useCHypo) BTag.setVariable<float>(m_xAODBaseName, "pc", probi[2]);
+
+      } // end analysis mode
 
       /* For SV0, put the signed 3D Lxy significance: */
     } else {
@@ -469,7 +469,7 @@ namespace Analysis
     }
 
     ATH_MSG_VERBOSE("#BTAG# SVTag Finalizing... ");
-  
+
     return StatusCode::SUCCESS;
   }
 
@@ -484,12 +484,12 @@ namespace Analysis
   }
 
   double SVTag::get3DSignificance(const xAOD::Vertex& priVertex,
-				  std::vector<const xAOD::Vertex*>& secVertex,
-				  const Amg::Vector3D jetDirection) const {
+          std::vector<const xAOD::Vertex*>& secVertex,
+          const Amg::Vector3D jetDirection) const {
   // double SVTag::get3DSignificance(const Trk::RecVertex & priVertex,
   //                                 std::vector<const Trk::RecVertex* > & secVertex,
   //                                 const Amg::Vector3D jetDirection) {
-    
+
     std::vector<Amg::Vector3D> positions;
     std::vector<AmgSymMatrix(3)> weightMatrices;
 
@@ -498,17 +498,17 @@ namespace Analysis
     for (std::vector<const xAOD::Vertex*>::const_iterator secIter = secVertex.begin();
          secIter != secEnd; ++secIter)
       {
-	// Amg::Vector3D position = (*secIter)->position();
-	// Amg::Vector3D position;
-	// position[0]=(*secIter)->position().x();
-	// position[1]=(*secIter)->position().y();
-	// position[2]=(*secIter)->position().z();
-	// positions.push_back(position);
-	positions.push_back((*secIter)->position());
-      
-	weightMatrices.push_back((*secIter)->covariancePosition().inverse());
+  // Amg::Vector3D position = (*secIter)->position();
+  // Amg::Vector3D position;
+  // position[0]=(*secIter)->position().x();
+  // position[1]=(*secIter)->position().y();
+  // position[2]=(*secIter)->position().z();
+  // positions.push_back(position);
+  positions.push_back((*secIter)->position());
+
+  weightMatrices.push_back((*secIter)->covariancePosition().inverse());
       }
- 
+
     // If multiple secondary vertices were reconstructed, then a common (weighted) position will be used
     // in the signed decay length significance calculation
 
@@ -520,9 +520,9 @@ namespace Analysis
     for (std::vector<const xAOD::Vertex*>::const_iterator secIter = secVertex.begin();
          secIter != secEnd; ++secIter) {
 
-	weightTimesPosition+=(weightMatrices[count])*positions[count];
-	sumWeights+=(weightMatrices[count]);
-	++count;
+  weightTimesPosition+=(weightMatrices[count])*positions[count];
+  sumWeights+=(weightMatrices[count]);
+  ++count;
     }
 
     // now we have the sum of the weights, let's invert this matrix to get the mean covariance matrix
@@ -534,14 +534,14 @@ namespace Analysis
 //      ATH_MSG_ERROR("#BTAG# Could not invert sum of sec vtx matrices");
 //      return 0.;
 //    }
-    bool invertible; 
-    AmgSymMatrix(3) meanCovariance; 
+    bool invertible;
+    AmgSymMatrix(3) meanCovariance;
     meanCovariance.setZero();
-    sumWeights.computeInverseWithCheck(meanCovariance, invertible); 
-    if (! invertible) { 
+    sumWeights.computeInverseWithCheck(meanCovariance, invertible);
+    if (! invertible) {
        ATH_MSG_WARNING("#BTAG# Could not invert sum of sec vtx matrices");
-    return 0.; 
-    } 
+    return 0.;
+    }
 
     // calculate the weighted mean secondary vertex position
     Amg::Vector3D meanPosition=meanCovariance*weightTimesPosition;
@@ -549,7 +549,7 @@ namespace Analysis
     // add the mean covariance matrix of the secondary vertices to that of the primary vertex
     // this is the covariance matrix for the decay length
     AmgSymMatrix(3) covariance = meanCovariance + priVertex.covariancePosition();
-    
+
     // ********
     // Calculate the signed decay length significance
     // ********
@@ -557,36 +557,36 @@ namespace Analysis
     double Lx = meanPosition[0]-priVertex.position().x();
     double Ly = meanPosition[1]-priVertex.position().y();
     double Lz = meanPosition[2]-priVertex.position().z();
-    
+
     const double decaylength = sqrt(Lx*Lx + Ly*Ly + Lz*Lz);
     if(decaylength==0.)return 0.;  //Safety
     const double inv_decaylength = 1. / decaylength;
-    
+
     double dLdLx = Lx * inv_decaylength;
     double dLdLy = Ly * inv_decaylength;
     double dLdLz = Lz * inv_decaylength;
     double decaylength_err2 =     dLdLx*dLdLx*covariance(0,0) +
-				  dLdLy*dLdLy*covariance(1,1) +
-				  dLdLz*dLdLz*covariance(2,2) +
-				  2.*dLdLx*dLdLy*covariance(0,1) +
-				  2.*dLdLx*dLdLz*covariance(0,2) +
-				  2.*dLdLy*dLdLz*covariance(1,2);
+          dLdLy*dLdLy*covariance(1,1) +
+          dLdLz*dLdLz*covariance(2,2) +
+          2.*dLdLx*dLdLy*covariance(0,1) +
+          2.*dLdLx*dLdLz*covariance(0,2) +
+          2.*dLdLy*dLdLz*covariance(1,2);
     if(decaylength_err2<=0.)return 0.;  //Something is wrong
     double decaylength_err = sqrt(decaylength_err2);
-   
+
     double decaylength_significance = 0.;
     if (decaylength_err != 0.) decaylength_significance = decaylength/decaylength_err;
 
     // get sign from projection on jet axis
     double L_proj_jetDir = jetDirection.x()*Lx + jetDirection.y()*Ly + jetDirection.z()*Lz;
     if (L_proj_jetDir < 0.) decaylength_significance *= -1.;
-    
+
     return decaylength_significance;
   }
 
   double SVTag::get3DSignificanceCorr(const xAOD::Vertex& priVertex,
-				  std::vector<const xAOD::Vertex*>& secVertex,
-				  const Amg::Vector3D jetDirection) const {
+          std::vector<const xAOD::Vertex*>& secVertex,
+          const Amg::Vector3D jetDirection) const {
 
     std::vector<double> Sig3D(0);
     bool success=true;
diff --git a/Reconstruction/MET/METReconstruction/Root/METAssociator.cxx b/Reconstruction/MET/METReconstruction/Root/METAssociator.cxx
index 5c7e7d8e2d20d50b54e847fca9c2cfc4b93a316f..5ce9904a8aafc8ff93f158c5ac87c8ec3a55517f 100755
--- a/Reconstruction/MET/METReconstruction/Root/METAssociator.cxx
+++ b/Reconstruction/MET/METReconstruction/Root/METAssociator.cxx
@@ -71,8 +71,8 @@ namespace met {
     declareProperty( "UseFELinks",         m_useFELinks = false                  ); 
     declareProperty( "NeutralPFOLinksKey", m_neutralPFOLinksKey = "neutralpfoLinks"); 
     declareProperty( "ChargedPFOLinksKey", m_chargedPFOLinksKey = "chargedpfoLinks"); 
-    declareProperty( "NeutralFELinksKey",  m_neutralFELinksKey  = "neutralFELinks"); 
-    declareProperty( "ChargedFELinksKey",  m_chargedFELinksKey  = "chargedFELinks"); 
+    declareProperty( "NeutralFELinksKey",  m_neutralFELinksKey  = "neutralGlobalFELinks"); 
+    declareProperty( "ChargedFELinksKey",  m_chargedFELinksKey  = "chargedGlobalFELinks"); 
   }
 
   // Destructor
diff --git a/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedReconstructionConfig.py b/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedReconstructionConfig.py
index 28ca04c5eb136eb6bd7915faf6f2bb127fd274ad..02f0eea3ddeecbccb2af31b8940a97d99b2a980f 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedReconstructionConfig.py
+++ b/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedReconstructionConfig.py
@@ -513,8 +513,12 @@ def CombinedMuonOutputCfg(flags):
 
     # FIXME! Next two lines are hack to remove derivation framework variables that are added by DRAW building and are supposed to be transient
     wp_decors = ["DFCommonMuonsTight", "DFCommonGoodMuon", "DFCommonMuonsMedium",
-                 "DFCommonMuonsLoose", "InnerDetectorPt", "MuonSpectrometerPt"]
-    excludedMuonAuxData = ".-"+".-".join(iso_vars+wp_decors)
+                 "DFCommonMuonsLoose", "InnerDetectorPt", "MuonSpectrometerPt"]    
+    #Remove GlobalFELinks and related variables - these are links between FlowElement (FE) containers created in jet finding and muons. 
+    #Since these transient FE containers are not in the ESD/AOD, we should not write out these links.
+    gpf_vars=[ "chargedGlobalFELinks", "neutralGlobalFELinks", "muon_efrac_matched_GlobalFE", "deltaR_muon_clus_GlobalFEalg"]
+    excludedMuonAuxData = ".-"+".-".join(iso_vars+wp_decors+gpf_vars)
+
     aod_items += ["xAOD::MuonAuxContainer#MuonsAux" + excludedMuonAuxData]
     aod_items += ["xAOD::MuonAuxContainer#MuonsLRTAux" + excludedMuonAuxData]
 
diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombined_OutputItemsAOD.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombined_OutputItemsAOD.py
index 419087096bf2a110f24eb5d26f19e9d0d513f35d..98ac8e064ede6d84cb8d8593f816bd91d32d4739 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombined_OutputItemsAOD.py
+++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/share/MuonCombined_OutputItemsAOD.py
@@ -30,7 +30,10 @@ if DetFlags.detdescr.Calo_on(): # FIXME - check if the objects below still make
 if DetFlags.detdescr.Muon_on():
    excludedAuxData = '-clusterAssociation'
    common_flags = [ "DFCommonMuonsTight", "DFCommonGoodMuon","DFCommonMuonsMedium", "DFCommonMuonsLoose", "InnerDetectorPt", "MuonSpectrometerPt" ]
-   excludedMuonAuxData = ".-"+".-".join(iso_vars() + common_flags)
+   #Also remove GlobalFELinks and associated variables - these are links between FlowElement (FE) containers created in jet finding and muons. Since these transient FE containers are not in the AOD, 
+   # we should not write out these links or variables
+   gpf_vars = ["chargedGlobalFELinks","neutralGlobalFELinks","deltaR_muon_clus_GlobalFEalg","muon_efrac_matched_GlobalFE"]
+   excludedMuonAuxData = ".-"+".-".join(iso_vars() + common_flags + gpf_vars)
    # Adding the xAOD content by default
    track_particles = GetCombinedTrackParticles()[0]
    for trk_cont in track_particles:
diff --git a/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py b/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py
index 0eb59a9ef2f1810b8507e697ad632156424bf60c..beff39a2fe052c7f70624e3285292b6580a9aced 100755
--- a/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py
+++ b/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py
@@ -177,8 +177,15 @@ if recAlgs.doEFlow() and jobproperties.eflowRecFlags.usePFFlowElementAssoc:
         from eflowRec.PFCfg import PFTauFlowElementLinkingCfg
         CAtoGlobalWrapper(PFTauFlowElementLinkingCfg,ConfigFlags)        
     except Exception:
-        treatException("Could not set up tau-FE links")
+        treatException("Could not set up tau-FE links")    
 
+#Links to/from global FE containers created during jet finding
+if(jetOK):
+    try:
+        from eflowRec.PFCfg import PFGlobalFlowElementLinkingCfg
+        CAtoGlobalWrapper(PFGlobalFlowElementLinkingCfg,ConfigFlags)
+    except Exception:
+        treatException("Could not setup PFGlobalFlowElementAssoc Algorithms")
 #
 # functionality : Missing Et
 #
diff --git a/Reconstruction/RecJobTransforms/python/RecoSteering.py b/Reconstruction/RecJobTransforms/python/RecoSteering.py
index 0ab8dec4b5b9d80cc8c68d359181a5f91290a906..c1f9d2f0f21a1783692e7bcbb53052112aac585c 100644
--- a/Reconstruction/RecJobTransforms/python/RecoSteering.py
+++ b/Reconstruction/RecJobTransforms/python/RecoSteering.py
@@ -136,6 +136,10 @@ def RecoSteering(flags):
     if flags.Reco.EnableJet:
         from JetRecConfig.JetRecoSteering import JetRecoSteeringCfg
         acc.merge(JetRecoSteeringCfg(flags))
+        #We also need to build links between the newly created jet constituents (GlobalFE)
+        #and electrons,photons,muons and taus
+        from eflowRec.PFCfg import PFGlobalFlowElementLinkingCfg
+        acc.merge(PFGlobalFlowElementLinkingCfg(flags))
         log.info("---------- Configured jets")
 
     # btagging
diff --git a/Reconstruction/eflowRec/python/PFCfg.py b/Reconstruction/eflowRec/python/PFCfg.py
index 24f8e2ca78e46837b55c413885c26586a088396b..4a5efe95b06e26fe716c20756985c42f964a55ca 100644
--- a/Reconstruction/eflowRec/python/PFCfg.py
+++ b/Reconstruction/eflowRec/python/PFCfg.py
@@ -168,10 +168,12 @@ def getLCNeutralFlowElementCreatorAlgorithm(inputFlags,neutralFlowElementOutputN
     
     return LCFlowElementNeutralCreatorAlgorithm 
 
-def getEGamFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False,doTCC=False):
+def getEGamFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False,doTCC=False,useGlobal=False,algName=""):
 
     PFEGamFlowElementLinkerAlgorithmFactory=CompFactory.PFEGamFlowElementAssoc
-    PFEGamFlowElementLinkerAlgorithm=PFEGamFlowElementLinkerAlgorithmFactory("PFEGamFlowElementAssoc")
+    if (algName == ""):
+        algName = "PFEGamFlowElementAssoc"
+    PFEGamFlowElementLinkerAlgorithm=PFEGamFlowElementLinkerAlgorithmFactory(algName)
 
     #set an an alternate name if needed
     #this uses some gaudi core magic, namely that you can change the name of the handle as it is a callable attribute, despite the attribute not being explicitly listed in the header
@@ -240,17 +242,44 @@ def getEGamFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_
         PFEGamFlowElementLinkerAlgorithm.ChargedFEPhotonDecorKey="TrackCaloClustersCharged.TCC_PhotonLinks"
         PFEGamFlowElementLinkerAlgorithm.NeutralFEPhotonDecorKey="TrackCaloClustersNeutral.TCC_PhotonLinks"
         
+    if(useGlobal):
+        # ReadHandles to change
+        PFEGamFlowElementLinkerAlgorithm.JetEtMissNeutralFlowElementContainer="GlobalNeutralParticleFlowObjects"
+        PFEGamFlowElementLinkerAlgorithm.JetEtMissChargedFlowElementContainer="GlobalChargedParticleFlowObjects"
+        
+        #Now to change the writeHandles
+        # first the Electron -> FE links
+        EL_NFE_Link=str(PFEGamFlowElementLinkerAlgorithm.ElectronNeutralFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.ElectronNeutralFEDecorKey=EL_NFE_Link.replace("FELinks","GlobalFELinks")
+        EL_CFE_Link=str(PFEGamFlowElementLinkerAlgorithm.ElectronChargedFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.ElectronChargedFEDecorKey=EL_CFE_Link.replace("FELinks","GlobalFELinks")
+        #then the converse case (FE -> Electron)
+        
+        PFEGamFlowElementLinkerAlgorithm.ChargedFEElectronDecorKey="GlobalChargedParticleFlowObjects.GlobalFE_ElectronLinks"
+        PFEGamFlowElementLinkerAlgorithm.NeutralFEElectronDecorKey="GlobalNeutralParticleFlowObjects.GLobalFE_ElectronLinks"
+        
+
+        # first the Photon -> FE links
+        PH_NFE_Link=str(PFEGamFlowElementLinkerAlgorithm.PhotonNeutralFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.PhotonNeutralFEDecorKey=PH_NFE_Link.replace("FELinks","GlobalFELinks")
+        PH_CFE_Link=str(PFEGamFlowElementLinkerAlgorithm.PhotonChargedFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.PhotonChargedFEDecorKey=PH_CFE_Link.replace("FELinks","GlobalFELinks")
+        #then the converse case (FE -> Photons)
         
+        PFEGamFlowElementLinkerAlgorithm.ChargedFEPhotonDecorKey="GlobalChargedParticleFlowObjects.TCC_PhotonLinks"
+        PFEGamFlowElementLinkerAlgorithm.NeutralFEPhotonDecorKey="GlobalNeutralParticleFlowObjects.TCC_PhotonLinks"
         
         
         
     return PFEGamFlowElementLinkerAlgorithm
 
-def getMuonFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",LinkNeutralFEClusters=True,useMuonTopoClusters=False,AODTest=False,doTCC=False):
+def getMuonFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",LinkNeutralFEClusters=True,useMuonTopoClusters=False,AODTest=False,doTCC=False,useGlobal=False,algName=""):
     
 
     PFMuonFlowElementLinkerAlgorithmFactory=CompFactory.PFMuonFlowElementAssoc
-    PFMuonFlowElementLinkerAlgorithm=PFMuonFlowElementLinkerAlgorithmFactory("PFMuonFlowElementAssoc")
+    if (algName == ""):
+        algName="PFMuonFlowElementAssoc"
+    PFMuonFlowElementLinkerAlgorithm=PFMuonFlowElementLinkerAlgorithmFactory(algName)
 
     #set an an alternate name if needed
     #this uses some gaudi core magic, namely that you can change the name of the handle as it is a callable attribute, despite the attribute not being explicitly listed in the header as such
@@ -308,6 +337,24 @@ def getMuonFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_
         PFMuonFlowElementLinkerAlgorithm.MuonContainer_muon_efrac_matched_FE="Muons.muon_efrac_matched_TCC"
         # this is because the algorithm adds this debug container which we don't need 
         PFMuonFlowElementLinkerAlgorithm.MuonContainer_ClusterInfo_deltaR="Muons.deltaR_muon_clus_TCCalg"
+
+    if(useGlobal):
+        PFMuonFlowElementLinkerAlgorithm.JetEtMissChargedFlowElementContainer="GlobalChargedParticleFlowObjects"
+        PFMuonFlowElementLinkerAlgorithm.JetEtMissNeutralFlowElementContainer="GlobalNeutralParticleFlowObjects"
+
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_chargedFELinks="Muons.chargedGlobalFELinks"
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_neutralFELinks="Muons.neutralGlobalFELinks"
+
+        PFMuonFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer_FE_MuonLinks="GlobalNeutralParticleFlowObjects.GlobalFE_MuonLinks"
+        PFMuonFlowElementLinkerAlgorithm.JetETMissChargedFlowElements_FE_MuonLinks="GlobalChargedParticleFlowObjects.GlobalFE_MuonLinks"
+
+        PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_nMatchedMuons="GlobalNeutralParticleFlowObjects.GlobalFE_nMatchedMuons"
+        PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_FE_efrac_matched_muon="GlobalNeutralParticleFlowObjects.GlobalFE_efrac_matched_muon"
+
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_muon_efrac_matched_FE="Muons.muon_efrac_matched_GlobalFE"
+        # this is because the algorithm adds this debug container which we don't need 
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_ClusterInfo_deltaR="Muons.deltaR_muon_clus_GlobalFEalg"
+
     if(LinkNeutralFEClusters):
         if (doTCC or AODTest):
             # since the cells are deleted on AOD, if you try to run the link between NFE and Muon on AOD, it will crash. Terminate to catch this.
@@ -324,10 +371,13 @@ def getMuonFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_
 
 
 
-def getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False,doTCC=False) :
+def getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False,doTCC=False,useGlobal=False,algName=""):
 
     PFTauFlowElementLinkerAlgorithmFactory=CompFactory.PFTauFlowElementAssoc
-    PFTauFlowElementLinkerAlgorithm=PFTauFlowElementLinkerAlgorithmFactory("PFTauFlowElementAssoc")
+    if(algName == ""):
+        algName = "PFTauFlowElementAssoc"
+
+    PFTauFlowElementLinkerAlgorithm=PFTauFlowElementLinkerAlgorithmFactory(algName)
 
     #set an an alternate name if needed
     #this uses some gaudi core magic, namely that you can change the name of the handle as it is a callable attribute, despite the attribute not being explicitly listed in the header
@@ -362,6 +412,16 @@ def getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_F
          
          PFTauFlowElementLinkerAlgorithm.NeutralFETauDecorKey="TrackCaloClustersNeutral.TCC_TauLinks"
          PFTauFlowElementLinkerAlgorithm.ChargedFETauDecorKey="TrackCaloClustersCharged.TCC_TauLinks"
+    #This allows to set the links on the global particle flow containers created by JetPFlowSelectionAlg in JetRecTools
+    if(useGlobal):
+        PFTauFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer="GlobalNeutralParticleFlowObjects"
+        PFTauFlowElementLinkerAlgorithm.JetETMissChargedFlowElementContainer="GlobalChargedParticleFlowObjects"
+
+        PFTauFlowElementLinkerAlgorithm.TauNeutralFEDecorKey="TauJets.neutralGlobalFELinks"
+        PFTauFlowElementLinkerAlgorithm.TauChargedFEDecorKey="TauJets.chargedGlobalFELinks"
+
+        PFTauFlowElementLinkerAlgorithm.NeutralFETauDecorKey="GlobalNeutralParticleFlowObjects.GlobalFE_TauLinks"
+        PFTauFlowElementLinkerAlgorithm.ChargedFETauDecorKey="GlobalChargedParticleFlowObjects.GlobalFE_TauLinks"
 
     return PFTauFlowElementLinkerAlgorithm
 
@@ -386,12 +446,18 @@ def getOfflinePFAlgorithm(inputFlags):
     result.addEventAlgo(PFAlgorithm)
     return result
 
-def PFTauFlowElementLinkingCfg(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False):
+def PFTauFlowElementLinkingCfg(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False,doTCC=False,useGlobal=False,algName=""):
     result=ComponentAccumulator()
     
-    result.addEventAlgo(getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name,charged_FE_cont_name,AODTest))
+    result.addEventAlgo(getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name,charged_FE_cont_name,AODTest,doTCC,useGlobal,algName))
 
     return result
 
+def PFGlobalFlowElementLinkingCfg(inputFlags):
+    result=ComponentAccumulator()
+    result.addEventAlgo(getTauFlowElementAssocAlgorithm(inputFlags,useGlobal=True,algName="PFTauGlobalFlowElementAssoc"))
+    result.addEventAlgo(getMuonFlowElementAssocAlgorithm(inputFlags,useGlobal=True,algName="PFMuonGlobalFlowElementAssoc"))  
+    result.addEventAlgo(getEGamFlowElementAssocAlgorithm(inputFlags,useGlobal=True,algName="PFEGamGlobalFlowElementAssoc"))
+    return result
 
 
diff --git a/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx b/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx
index ce5ea4f9e539f93b00f32469b643d7f7e5cdd9fa..fd2f4cbb0ffc299af0999769a6bc8633e6b789c7 100644
--- a/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx
+++ b/Reconstruction/eflowRec/src/PFMuonFlowElementAssoc.cxx
@@ -159,22 +159,21 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const {
         for (const xAOD::FlowElement* FE : *NeutralFEmuonWriteDecorHandle) {
             int nMatchedFE = 0;
             // get the index of the cluster corresponding to the Neutral FlowElements
-            size_t FEclusterindex = FE->otherObjects().at(0)->index();
+            ATH_MSG_DEBUG("P1");
+            const xAOD::IParticle* otherObject = FE->otherObjects().at(0);
+            //This is expected to happen for low energy FE - sometimes the linked cluster has E < 0 and 
+            //is thinned away in the AOD
+            if (!otherObject){
+                ATH_MSG_DEBUG("No linked cluster for Neutral FE with E, eta and phi" << FE->e() << ", " << FE->eta() << " and " << FE->phi());
+                continue;
+            }
+            size_t FEclusterindex = otherObject->index();
 
             // FE->otherObjects returns a vector of IParticles. We only want the first one
             const xAOD::IParticle* FE_Iparticle = FE->otherObjects().at(0);
-            // dynamic cast to CaloCluster
-            const xAOD::CaloCluster* FE_cluster = dynamic_cast<const xAOD::CaloCluster*>(FE_Iparticle);  // cast to CaloCluster
 
-            // retrieve the link to cells
-            const CaloClusterCellLink* CellLink = FE_cluster->getCellLinks();
-            // build the iterator(s) for the looping over the elements inside the CellLink
-            if (!CellLink && !m_UseMuonTopoClusters) {  // safety check if no celll link and we're doing the cell based matching only
-                ATH_MSG_WARNING("Flow Element cluster link is nullptr");
-                continue;
-            }
-            CaloClusterCellLink::const_iterator FE_FirstCell = CellLink->begin();
-            CaloClusterCellLink::const_iterator FE_LastCell = CellLink->end();
+            // dynamic cast to CaloCluster
+            const xAOD::CaloCluster* FE_cluster = dynamic_cast<const xAOD::CaloCluster*>(FE_Iparticle);  // cast to CaloCluster            
 
             // debug for Negative energy cluster
 
@@ -198,8 +197,10 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const {
                     // get the linker to the topo clusters
                     const std::vector<ElementLink<xAOD::CaloClusterContainer>>& linksToTopoClusters = acc_constClusterLinks(*cluster);
                     for (const ElementLink<xAOD::CaloClusterContainer>& TopoClusterLink : linksToTopoClusters) {
+                         //This is expected to happen for low energy cluster - sometimes the linked cluster has E < 0 and 
+                        //is thinned away in the AOD
                         if (!TopoClusterLink.isValid()) {
-                            ATH_MSG_WARNING("Muon Calo cluster's TopoCluster link not found, skip");
+                            ATH_MSG_DEBUG("Muon Calo cluster's TopoCluster link not found, skip");
                             continue;
                         }
                         const xAOD::CaloCluster* MuonTopoCluster = *TopoClusterLink;  // de-ref the link to get the topo-cluster
@@ -209,7 +210,7 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const {
                             // index() is the unique index of the muon in the muon container
                             FEMuonLinks.emplace_back(*muonReadHandle, muon->index());
                             // index() is the unique index of the cFlowElement in the cFlowElementcontaine
-                            muonNeutralFEVec.at(muon->index()).push_back(FlowElementLink_t(*NeutralFEReadHandle, FE->index()));
+                            muonNeutralFEVec.at(muon->index()).push_back(FlowElementLink_t(*NeutralFEReadHandle, FE->index()));            
                             ATH_MSG_VERBOSE("Got a match between NFE and Muon");
                             nMatchedFE++;  // count number of matches between FE and muons
                             if (neg_E_cluster) ATH_MSG_ERROR("Muon cluster matched to negative E topocluster from FE");
@@ -221,6 +222,17 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const {
                     // Retrieve cells in both the FE cluster and muon cluster
                     // Define the link as where at least one calo cell is shared between the FE cluster and the Muon Cluster
 
+                    // retrieve the link to cells
+                    const CaloClusterCellLink* CellLink = FE_cluster->getCellLinks();
+                    // build the iterator(s) for the looping over the elements inside the CellLink
+                    if (!CellLink && !m_UseMuonTopoClusters) {  // safety check if no celll link and we're doing the cell based matching only
+                       ATH_MSG_WARNING("Flow Element cluster link is nullptr");
+                        continue;
+                    }
+
+                    CaloClusterCellLink::const_iterator FE_FirstCell = CellLink->begin();
+                    CaloClusterCellLink::const_iterator FE_LastCell = CellLink->end();
+
                     // retrieve cells associated to Muon cluster
                     const CaloClusterCellLink* Muon_Clus_CellLink = cluster->getCellLinks();
                     if (!Muon_Clus_CellLink) {
@@ -283,7 +295,6 @@ StatusCode PFMuonFlowElementAssoc::execute(const EventContext& ctx) const {
                     }
 
                 }  // end of calocluster specific block
-
                 // loop over caloclusters
             }  // loop over muons
             NeutralFEmuon_nMatches_WriteDecorHandle(*FE) = nMatchedFE;
diff --git a/Reconstruction/eflowRec/src/PFTauFlowElementAssoc.cxx b/Reconstruction/eflowRec/src/PFTauFlowElementAssoc.cxx
index 5e678744050b769b324dd4605d36d7d8e2fd96dd..5cebbca217d1584fd99c4b4d5dc260f892239f97 100644
--- a/Reconstruction/eflowRec/src/PFTauFlowElementAssoc.cxx
+++ b/Reconstruction/eflowRec/src/PFTauFlowElementAssoc.cxx
@@ -77,8 +77,9 @@ StatusCode PFTauFlowElementAssoc::execute(const EventContext &ctx) const {
 
     // Loop over the taus
     for (const xAOD::TauJet* tau : *tauNeutralFEWriteDecorHandle) {
-      // Skip taus that won't be written to AOD
-      if(!acc_passThinning(*tau)) continue;
+      // Skip taus that won't be written to AOD - first check the variable exists
+      // because older ESD and any AOD used as input do not have this variable.
+      if(acc_passThinning.isAvailable(*tau) && !acc_passThinning(*tau)) continue;
       // Get tau vertex
       const xAOD::Vertex* tauVertex = tau->vertex();
       // Get the clusters associated to the tau
@@ -125,7 +126,9 @@ StatusCode PFTauFlowElementAssoc::execute(const EventContext &ctx) const {
 
     // Loop over the taus
     for (const xAOD::TauJet* tau : *tauChargedFEWriteDecorHandle) {
-      if(!acc_passThinning(*tau)) continue;
+      // Skip taus that won't be written to AOD - first check the variable exists                                                                                                                                                                                              
+      // because older ESD and any AOD used as input do not have this variable. 
+      if(acc_passThinning.isAvailable(*tau) && !acc_passThinning(*tau)) continue;
       // Get tau tracks associated to the tau
       std::vector<const xAOD::TauTrack*> tauTracks = tau->tracks();
       for (const auto *tauTrack : tauTracks) {
diff --git a/Reconstruction/egamma/egammaConfig/python/egammaConfigFlags.py b/Reconstruction/egamma/egammaConfig/python/egammaConfigFlags.py
index cef6eb8539bc27cbac39ba6068a4a154f1341602..e2b35a0727924a2306397fef29de68115fb0d21e 100644
--- a/Reconstruction/egamma/egammaConfig/python/egammaConfigFlags.py
+++ b/Reconstruction/egamma/egammaConfig/python/egammaConfigFlags.py
@@ -91,7 +91,9 @@ def createEgammaConfigFlags():
                  '-topoetconeCorrBitset')
 
     egcf.addFlag("Egamma.Keys.Output.Electrons", 'Electrons')
-    egcf.addFlag("Egamma.Keys.Output.ElectronsSuppESD", '')
+    #Remove GlobalFELinks - these are links between FlowElement (FE) containers created in jet finding and electrons/photons. Since these transient FE containers are not in the ESD/AOD, we should not write out these links.
+    gpf_vars='-chargedGlobalFELinks.-neutralGlobalFELinks.'
+    egcf.addFlag("Egamma.Keys.Output.ElectronsSuppESD", gpf_vars)
     egcf.addFlag("Egamma.Keys.Output.ElectronsSuppAOD",
                  lambda prevFlags: (
                      prevFlags.Egamma.Keys.Output.ElectronsSuppESD +
@@ -116,7 +118,7 @@ def createEgammaConfigFlags():
                      prevFlags.Egamma.Keys.Output.ForwardClustersSuppESD))
 
     egcf.addFlag("Egamma.Keys.Output.Photons", 'Photons')
-    egcf.addFlag("Egamma.Keys.Output.PhotonsSuppESD", '')
+    egcf.addFlag("Egamma.Keys.Output.PhotonsSuppESD", gpf_vars)
     egcf.addFlag("Egamma.Keys.Output.PhotonsSuppAOD",
                  lambda prevFlags: (
                      prevFlags.Egamma.Keys.Output.PhotonsSuppESD +
diff --git a/Reconstruction/egamma/egammaRec/python/egammaKeys.py b/Reconstruction/egamma/egammaRec/python/egammaKeys.py
index 0231a3ae783aec6db36fd3725243d198a9a41bf4..41cc7e5d3c9fd09f6925994b4789ebc6b83313f2 100644
--- a/Reconstruction/egamma/egammaRec/python/egammaKeys.py
+++ b/Reconstruction/egamma/egammaRec/python/egammaKeys.py
@@ -18,8 +18,11 @@ class egammaKeysDict:
     ShowerShapesSuppress = '.-e033.-e011.-e333.-e335.-e337.-e377'
     PhotonisemSuppress = '.-isEMLoose.-isEMTight'
     ElectronisemSupress = '.-isEMLHLoose.-isEMLHTight.-isEMLHMedium.-isEMLoose.-isEMMultiLepton.-isEMMedium.-isEMTight'
-    ElectronSuppress = ShowerShapesSuppress + ElectronisemSupress + '.-EgammaCovarianceMatrix'
-    PhotonSuppress = ShowerShapesSuppress + PhotonisemSuppress
+    #When we run jet finding we create links between global FE and electrons/photons
+    #Global FE do not go into the ESD/AOD, so we suppress the links to them here
+    GlobalPFlowSuppress = '.-chargedGlobalFELinks.-neutralGlobalFELinks'
+    ElectronSuppress = ShowerShapesSuppress + ElectronisemSupress + '.-EgammaCovarianceMatrix' + GlobalPFlowSuppress
+    PhotonSuppress = ShowerShapesSuppress + PhotonisemSuppress + GlobalPFlowSuppress
     FwdElectronisemSupress = '.-isEMTight.-isEMMedium.-isEMLoose'
     isovar_suppress = "-" + ".-".join(iso_vars())
     egisovar_suppress = isovar_suppress + '.-ptconeCorrBitset.-ptconecoreTrackPtrCorrection.-topoetconeCorrBitset'
@@ -47,7 +50,7 @@ class egammaKeysDict:
         Electron=[
             'xAOD::ElectronContainer',
             'Electrons',
-            egisovar_suppress,
+            egisovar_suppress + GlobalPFlowSuppress,
             ElectronSuppress],
         EgammaRec=['egammaRecContainer',
                    'egammaRecCollection',
@@ -68,7 +71,7 @@ class egammaKeysDict:
                     '-SisterCluster', ''],
         Photon=['xAOD::PhotonContainer',
                 'Photons',
-                phisovar_suppress,
+                phisovar_suppress + GlobalPFlowSuppress,
                 PhotonSuppress],
         TrackParticle=[
             'xAOD::TrackParticleContainer',
diff --git a/Reconstruction/tauRec/python/TauConfig.py b/Reconstruction/tauRec/python/TauConfig.py
index 7605b2263155b1c01f96cf0d0f7e3df3f2a218af..7414928bc7133c7e4882ddde405d7850c36b4329 100755
--- a/Reconstruction/tauRec/python/TauConfig.py
+++ b/Reconstruction/tauRec/python/TauConfig.py
@@ -221,10 +221,12 @@ def TauOutputCfg(flags):
     TauESDList = list(TauAODList)
 
     # add AOD specific
-    TauAODList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters.-mu.-nVtxPU.-ABS_ETA_LEAD_TRACK.-TAU_ABSDELTAPHI.-TAU_ABSDELTAETA.-absipSigLeadTrk.-passThinning" ]
+    #Also remove GlobalFELinks - these are links between FlowElement (FE) containers created in jet finding and taus. Since these transient FE containers are not in the AOD, we should not write out these links.
+    TauAODList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters.-mu.-nVtxPU.-ABS_ETA_LEAD_TRACK.-TAU_ABSDELTAPHI.-TAU_ABSDELTAETA.-absipSigLeadTrk.-passThinning.-chargedGlobalFELinks.-neutralGlobalFELinks" ]
 
     # addEOD specific
-    TauESDList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters" ]
+    #Also remove GlobalFELinks - these are links between FlowElement (FE) containers created in jet finding and taus. Since these transient FE containers are not in the AOD, we should not write out these links.
+    TauESDList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters.-chargedGlobalFELinks.-neutralGlobalFELinks" ]
     TauESDList += [ "xAOD::PFOContainer#TauChargedParticleFlowObjects" ]
     TauESDList += [ "xAOD::PFOAuxContainer#TauChargedParticleFlowObjectsAux." ]
 
diff --git a/Reconstruction/tauRec/share/TauAODList.py b/Reconstruction/tauRec/share/TauAODList.py
index 67e03866f3be3472750ee6de2f6d03129e37173a..38f07b395373c075bb90041bc77469d9bc1107e6 100644
--- a/Reconstruction/tauRec/share/TauAODList.py
+++ b/Reconstruction/tauRec/share/TauAODList.py
@@ -14,7 +14,8 @@ TauAODList = []
 # Taus
 #------------------------------------------------------------------------------
 TauAODList += [ "xAOD::TauJetContainer#TauJets" ]
-TauAODList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters.-mu.-nVtxPU.-ABS_ETA_LEAD_TRACK.-TAU_ABSDELTAPHI.-TAU_ABSDELTAETA.-absipSigLeadTrk.-passThinning" ]
+#Also remove GlobalFELinks - these are links between FlowElement (FE) containers created in jet finding and taus. Since these transient FE containers are not in the AOD, we should not write out these links.
+TauAODList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters.-mu.-nVtxPU.-ABS_ETA_LEAD_TRACK.-TAU_ABSDELTAPHI.-TAU_ABSDELTAETA.-absipSigLeadTrk.-passThinning.-chargedGlobalFELinks.-neutralGlobalFELinks" ]
 
 #------------------------------------------------------------------------------
 # Tau tracks
diff --git a/Reconstruction/tauRec/share/TauESDList.py b/Reconstruction/tauRec/share/TauESDList.py
index 2d04f1c40f04c30d322db4527a59d74b91ad8eba..defe2a52354d595666d670a5c338111e611e4ffc 100644
--- a/Reconstruction/tauRec/share/TauESDList.py
+++ b/Reconstruction/tauRec/share/TauESDList.py
@@ -14,7 +14,8 @@ TauESDList = []
 # Taus
 #------------------------------------------------------------------------------
 TauESDList += [ "xAOD::TauJetContainer#TauJets" ]
-TauESDList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters" ]
+#Also remove GlobalFELinks - these are links between FlowElement (FE) containers created in jet finding and taus. Since these transient FE containers are not in the AOD, we should not write out these links.
+TauESDList += [ "xAOD::TauJetAuxContainer#TauJetsAux.-VertexedClusters.-chargedGlobalFELinks.-neutralGlobalFELinks" ]
 
 #------------------------------------------------------------------------------
 # Tau tracks
diff --git a/TileCalorimeter/TileGeoModel/TileGeoModel/TileDetectorTool.h b/TileCalorimeter/TileGeoModel/TileGeoModel/TileDetectorTool.h
index 2ef53f80569783de0cb91c75bcf7dabdfebf340d..78df496dc69ac5b0460cd7048088b04e97dec597 100755
--- a/TileCalorimeter/TileGeoModel/TileGeoModel/TileDetectorTool.h
+++ b/TileCalorimeter/TileGeoModel/TileGeoModel/TileDetectorTool.h
@@ -13,16 +13,16 @@
 class StoreGateSvc;
 class TileDetDescrManager;
 
-class TileDetectorTool final : public GeoModelTool 
+class TileDetectorTool final : public GeoModelTool
 {
  public:
 
-  TileDetectorTool(const std::string& type, 
-           const std::string& name, 
-           const IInterface* parent);
+  TileDetectorTool(const std::string& type,
+                   const std::string& name,
+                   const IInterface* parent);
 
   virtual ~TileDetectorTool() override final;
-  
+
   virtual StatusCode create() override final;
   virtual StatusCode clear() override final;
 
@@ -44,4 +44,4 @@ class TileDetectorTool final : public GeoModelTool
   TileDetDescrManager* m_manager;
 };
 
-#endif 
+#endif
diff --git a/TileCalorimeter/TileGeoModel/TileGeoModel/TileSwitches.h b/TileCalorimeter/TileGeoModel/TileGeoModel/TileSwitches.h
index 8818d44dbc08d307e93d81367c24cc9ecc48fdaf..f11ec6274ac579c0cf499612310ee02ac8b62275 100644
--- a/TileCalorimeter/TileGeoModel/TileGeoModel/TileSwitches.h
+++ b/TileCalorimeter/TileGeoModel/TileGeoModel/TileSwitches.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef TILESWITCHES_h
@@ -13,7 +13,8 @@
 
 class TileSwitches
 {
-public:
+ public:
+
   /** Setup defaults */
   TileSwitches(bool tb=false, bool pl=true) :
           testBeam(tb),
diff --git a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx
index ccc7e03ec4fe62d9466b4115412f6f6012b87235..2121b6a131a047a905fbc62d6307c11f43dedf2d 100755
--- a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx
+++ b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx
@@ -29,7 +29,7 @@
 
 #include "GeoGenericFunctions/AbsFunction.h"
 #include "GeoGenericFunctions/Variable.h"
-#include "GeoModelKernel/GeoXF.h" 
+#include "GeoModelKernel/GeoXF.h"
 #include "GeoModelKernel/GeoSerialTransformer.h"
 
 #include "GeoModelInterfaces/StoredMaterialManager.h"
@@ -41,7 +41,7 @@
 #include <stdexcept>
 #include <iostream>
 #include <iomanip>
-#include <algorithm> 
+#include <algorithm>
 #include <cmath>
 #include <string>
 
@@ -50,36 +50,39 @@
 using namespace GeoGenfun;
 using namespace GeoXF;
 
+
 // Constructor:
 TileAtlasFactory::TileAtlasFactory(StoreGateSvc *pDetStore,
                                    TileDetDescrManager *manager,
                                    const TileSwitches & switches,
                                    MsgStream *log,
-				                   bool fullGeo)
-  : m_detectorStore(pDetStore)
-  , m_detectorManager(manager)
-  , m_log(log) 
-  , m_switches(switches)
-  , m_verbose(log->level()<=MSG::VERBOSE) 
-  , m_fullGeo(fullGeo)
+                                   bool fullGeo)
+        : m_detectorStore(pDetStore)
+        , m_detectorManager(manager)
+        , m_log(log)
+        , m_switches(switches)
+        , m_verbose(log->level()<=MSG::VERBOSE)
+        , m_fullGeo(fullGeo)
 {
   m_switches.testBeam = false;
 }
-  
-// Destructor: 
-TileAtlasFactory::~TileAtlasFactory(){}
-  
+
+
+// Destructor:
+TileAtlasFactory::~TileAtlasFactory() {}
+
+
 // Creation of geometry:
-void TileAtlasFactory::create(GeoPhysVol *world)  
-{ 
+void TileAtlasFactory::create(GeoPhysVol *world)
+{
   // Global geometri definition for debugging
   bool  Filling = true;
   bool  EBC = true /* Negative */, BAR = true /* Barrel */, EBA = true /* Positive */;
   int   NcpFrom = 1, NcpPlus = 63; // Default is all [1-63]
- 
+
   //int   NcpFrom = 34, NcpPlus = 29; // ext.barrel, special
 
-  double deltaPhi = 360./64; // we know apriory that 64 modules makes full cylinder 
+  double deltaPhi = 360./64; // we know apriory that 64 modules makes full cylinder
   double AnglMin = (NcpFrom-1)*deltaPhi*Gaudi::Units::deg, AnglMax = (NcpPlus+1)*deltaPhi*Gaudi::Units::deg;
 
   // phi range of modules with special C10
@@ -92,10 +95,9 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
   // -------- -------- MATERIAL MANAGER -------- ----------
   StoredMaterialManager* theMaterialManager = nullptr;
-  if (StatusCode::SUCCESS != m_detectorStore->retrieve(theMaterialManager, "MATERIALS")) 
-  {  
-    (*m_log) << MSG::ERROR << "Could not find Material Manager MATERIALS" << endmsg; 
-    return; 
+  if (StatusCode::SUCCESS != m_detectorStore->retrieve(theMaterialManager, "MATERIALS")) {
+    (*m_log) << MSG::ERROR << "Could not find Material Manager MATERIALS" << endmsg;
+    return;
   }
   const GeoMaterial* matAir = theMaterialManager->getMaterial("std::Air");
   const GeoMaterial* matIron = theMaterialManager->getMaterial("std::Iron");
@@ -106,19 +108,19 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   TileGeoSectionBuilder* sectionBuilder = new TileGeoSectionBuilder(theMaterialManager,dbManager,m_switches,m_log);
 
   double DzSaddleSupport = 0, RadiusSaddle = 0;
-  if (dbManager->BoolSaddle())
-    {(*m_log) << MSG::INFO << " Tile Geometry with Saddle supports, starting from TileCal-CSC-02 xxx"<< endmsg;
+  if (dbManager->BoolSaddle()) {
+    (*m_log) << MSG::INFO << " Tile Geometry with Saddle supports, starting from TileCal-CSC-02 xxx"<< endmsg;
 
-     dbManager->SetCurrentSaddle(0);
+    dbManager->SetCurrentSaddle(0);
 
-     DzSaddleSupport = dbManager->DzSaddleSupport()*Gaudi::Units::cm;
-     RadiusSaddle = dbManager->RadiusSaddle()*Gaudi::Units::cm;
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG << " DzSaddleSupport()= "<<DzSaddleSupport<<" RadiusSaddle= "<<RadiusSaddle
-		<< endmsg;
-    }
+    DzSaddleSupport = dbManager->DzSaddleSupport()*Gaudi::Units::cm;
+    RadiusSaddle = dbManager->RadiusSaddle()*Gaudi::Units::cm;
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG << " DzSaddleSupport()= "<<DzSaddleSupport<<" RadiusSaddle= "<<RadiusSaddle
+               << endmsg;
+  }
 
-  if(m_log->level()<=MSG::DEBUG)
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) <<MSG::DEBUG << "TileAtlasFactory. addPlates = " <<m_switches.addPlatesToCell<<endmsg;
   // -------- -------- CUT BUILDER  -------- ----------
   //TileGeoCutBuilder* CutBuilder = new TileGeoCutBuilder(theMaterialManager,dbManager,m_log);
@@ -129,7 +131,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   GeoPhysVol *pvTileEnvelopeBarrel =0, *pvTileEnvelopePosEndcap =0, *pvTileEnvelopeNegEndcap =0;
 
   // radius for minimization overlap volumes
-  double rless   =0.15; // 150 [mkm] 
+  double rless   =0.15; // 150 [mkm]
 
   double dzITC1 =0, rMinITC1 =0, rMaxITC1 =0;
   double dzITC2 =0, rMinITC2 =0, rMaxITC2 =0;
@@ -149,7 +151,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   double PhiMin[]   = {+360.0,+360.0,+360.0,+360.0,+360.0,+360.0};
   double RInMin[]   = {99999.9,99999.9,99999.9,99999.9,99999.9,99999.9};
   double ROutMax[]  = {0.0,0.0,0.0,0.0,0.0,0.0};
-  double FingerRmax  =0;
+  double FingerRmax = 0;
   //unsigned int ienv_size = 6;
 
   // set default finger length
@@ -157,7 +159,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   double BFingerLengthNeg =0;
   double BFingerLengthPos =0;
 
-  // Barrel finger 
+  // Barrel finger
   dbManager->SetCurrentTifg(1);
   BFingerLength  = BFingerLengthNeg  = BFingerLengthPos  = dbManager->TIFGdz()*Gaudi::Units::cm;
 
@@ -165,26 +167,25 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   double EBFingerLengthNeg =0;
   double EBFingerLengthPos =0;
 
-  // EBarrel finger 
+  // EBarrel finger
   dbManager->SetCurrentTifg(2);
   EBFingerLength = EBFingerLengthNeg = EBFingerLengthPos = dbManager->TIFGdz()*Gaudi::Units::cm;
 
   int n_env = dbManager->GetNumberOfEnv();
-  
+
   //std::cerr <<std::cout.setf(std::ios::right)<<std::setiosflags(std::ios::fixed)<<std::setw(9)<<std::setprecision(2);
 
-  if(m_log->level()<=MSG::DEBUG)
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG << "n_env " << n_env << endmsg;
 
-  for(int i = 0; i < n_env ; ++i)
-  {
+  for (int i = 0; i < n_env ; ++i) {
     dbManager->SetCurrentEnvByIndex(i);
     int Type = dbManager->GetEnvType();
 
     /*
-    if (Type == 1) BAR = true;
-    if (Type == 2) EBC = true; 
-    if (Type == 3) EBA = true;
+      if (Type == 1) BAR = true;
+      if (Type == 2) EBC = true;
+      if (Type == 3) EBA = true;
     */
 
     ZLength  [Type] = dbManager->GetEnvZLength()*Gaudi::Units::cm;
@@ -195,16 +196,16 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     ROutMax  [Type] = std::max(ROutMax[Type],dbManager->GetEnvRout()*Gaudi::Units::cm);
     FingerRmax         = std::max(FingerRmax,dbManager->GetEnvRout()*Gaudi::Units::cm);
 
-    //std::cout << "# Type " <<Type<< " ZLength " <<ZLength [Type]<< " EnvDZPos "<<EnvDZPos [Type]<< "\n"; 
+    //std::cout << "# Type " <<Type<< " ZLength " <<ZLength [Type]<< " EnvDZPos "<<EnvDZPos [Type]<< "\n";
   }
 
   //
-  // recalculate length of positive barrel finger length if Ext.Barrel is present 
+  // recalculate length of positive barrel finger length if Ext.Barrel is present
   //
 
   double PosDelta =0;
   PosDelta = EnvDZPos[3] - EnvDZPos[1];
-  if(m_log->level()<=MSG::DEBUG)
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG <<" BFingerLengthPos "<<BFingerLengthPos<<" PosDelta "<<PosDelta;
   if (fabs(PosDelta) < fabs(EBFingerLength - BFingerLength) ) {
     BFingerLengthPos += PosDelta;
@@ -217,12 +218,12 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   }
 
   //
-  // recalculate length of negative barrel finger length if Ext.Barrel is present 
+  // recalculate length of negative barrel finger length if Ext.Barrel is present
   //
 
   double NegDelta =0;
   NegDelta = (-EnvDZPos[2] + EnvDZPos[1]); // negative shift - bigger finger
-  if(m_log->level()<=MSG::DEBUG)
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG <<" BFingerLengthNeg "<<BFingerLengthNeg<<" NegDelta "<<NegDelta;
   if (fabs(NegDelta) < fabs(EBFingerLength - BFingerLength) ) {
     BFingerLengthNeg += NegDelta;
@@ -260,7 +261,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       rMinE4neg = rMinE4sp;
     }
   }
-  
+
   /** setfinger length */
   double BFingerRmin=0, EFingerRmin=0;
   dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
@@ -273,70 +274,70 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
 
   //
-  // Central Barrel 
+  // Central Barrel
   //
 
-  // Z planes 
+  // Z planes
   double endCentralBarrel = ZLength[1]/2 - BFingerLength; // nominal position of end plate
   double endEnvelopeNeg = endCentralBarrel + BFingerLengthNeg;
   double endEnvelopePos = endCentralBarrel + BFingerLengthPos;
 
-  // R minimal 
+  // R minimal
   double rminBarrel = RInMin[1];
-    
+
   // R maximal
   double rmaxTotal = ROutMax[1];
-    
+
   GeoPcon* tileEnvPconeBarrel = new GeoPcon(PhiMin[1]*Gaudi::Units::deg, PhiMax[1]*Gaudi::Units::deg);
 
-   tileEnvPconeBarrel->addPlane(-endEnvelopeNeg,                   BFingerRmin,             rmaxTotal);
-   tileEnvPconeBarrel->addPlane(-endCentralBarrel-DzSaddleSupport, BFingerRmin,             rmaxTotal);
-  if (dbManager->BoolSaddle())
-  {tileEnvPconeBarrel->addPlane(-endCentralBarrel-DzSaddleSupport, BFingerRmin-RadiusSaddle,rmaxTotal);
-   tileEnvPconeBarrel->addPlane(-endCentralBarrel,                 BFingerRmin-RadiusSaddle,rmaxTotal);
+  tileEnvPconeBarrel->addPlane(-endEnvelopeNeg,                   BFingerRmin,             rmaxTotal);
+  tileEnvPconeBarrel->addPlane(-endCentralBarrel-DzSaddleSupport, BFingerRmin,             rmaxTotal);
+  if (dbManager->BoolSaddle()) {
+    tileEnvPconeBarrel->addPlane(-endCentralBarrel-DzSaddleSupport, BFingerRmin-RadiusSaddle,rmaxTotal);
+    tileEnvPconeBarrel->addPlane(-endCentralBarrel,                 BFingerRmin-RadiusSaddle,rmaxTotal);
   }
-   tileEnvPconeBarrel->addPlane(-endCentralBarrel,                 rminBarrel,              rmaxTotal);
-   tileEnvPconeBarrel->addPlane( endCentralBarrel,                 rminBarrel,              rmaxTotal);
-  if (dbManager->BoolSaddle())
-  {tileEnvPconeBarrel->addPlane( endCentralBarrel,                 BFingerRmin-RadiusSaddle,rmaxTotal);
-   tileEnvPconeBarrel->addPlane( endCentralBarrel+DzSaddleSupport, BFingerRmin-RadiusSaddle,rmaxTotal);
+  tileEnvPconeBarrel->addPlane(-endCentralBarrel,                 rminBarrel,              rmaxTotal);
+  tileEnvPconeBarrel->addPlane( endCentralBarrel,                 rminBarrel,              rmaxTotal);
+  if (dbManager->BoolSaddle()) {
+    tileEnvPconeBarrel->addPlane( endCentralBarrel,                 BFingerRmin-RadiusSaddle,rmaxTotal);
+    tileEnvPconeBarrel->addPlane( endCentralBarrel+DzSaddleSupport, BFingerRmin-RadiusSaddle,rmaxTotal);
   }tileEnvPconeBarrel->addPlane( endCentralBarrel+DzSaddleSupport, BFingerRmin,             rmaxTotal);
-   tileEnvPconeBarrel->addPlane( endEnvelopePos,                   BFingerRmin,             rmaxTotal);
+  tileEnvPconeBarrel->addPlane( endEnvelopePos,                   BFingerRmin,             rmaxTotal);
 
   lvTileEnvelopeBarrel = new GeoLogVol("TileCentralBarrel",tileEnvPconeBarrel,matAir);
   pvTileEnvelopeBarrel = new GeoPhysVol(lvTileEnvelopeBarrel);
 
   //
-  // Pos Ext. Barrel 
-  // 
+  // Pos Ext. Barrel
+  //
 
-  // Z planes 
+  // Z planes
   double PosEndBarrelFinger = ZLength[1]/2; // nominal end of barrel finger
   double PosEndITC = PosEndBarrelFinger + ZLength[5];
   double PosEndExBarrelFinger = PosEndITC + ZLength[3];
   double PosEndExBarrel = PosEndExBarrelFinger - EBFingerLengthPos;
 
-  if(m_log->level()<=MSG::DEBUG) {
-    (*m_log) << MSG::DEBUG 
-	     << " EBPos EnvDZPos[3] " << EnvDZPos[3] << " ZLength[5] " <<ZLength[5]<<"+"<<ZLength[3]
-	     << " = " << ZLength[3]+ZLength[5] << " EBFingerLengthPos = " <<EBFingerLengthPos
-	     <<endmsg;
-    
+  if (m_log->level()<=MSG::DEBUG) {
+    (*m_log) << MSG::DEBUG
+             << " EBPos EnvDZPos[3] " << EnvDZPos[3] << " ZLength[5] " <<ZLength[5]<<"+"<<ZLength[3]
+             << " = " << ZLength[3]+ZLength[5] << " EBFingerLengthPos = " <<EBFingerLengthPos
+             <<endmsg;
+
     (*m_log) << MSG::DEBUG << " PosEndBarrelFinger = " << PosEndBarrelFinger
-	     << " PosEndITC = " << PosEndITC
-	     << " PosEndExBarrel = " << PosEndExBarrel
-	     << " PosEndExtBarrelFinger = " << PosEndExBarrelFinger
-	     << endmsg;
+             << " PosEndITC = " << PosEndITC
+             << " PosEndExBarrel = " << PosEndExBarrel
+             << " PosEndExtBarrelFinger = " << PosEndExBarrelFinger
+             << endmsg;
   }
 
   dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
   double PosEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
   double corr = PosEndITC - PosEndITC1;
   if (fabs(corr)>0.01) {
-     (*m_log) << MSG::WARNING
-              << "Discrepancy between TileGlobals and TILB tables in GeoModel DB "
-              << PosEndITC << " != " << PosEndITC1 << "; take this into account" 
-              <<endmsg;
+    (*m_log) << MSG::WARNING
+             << "Discrepancy between TileGlobals and TILB tables in GeoModel DB "
+             << PosEndITC << " != " << PosEndITC1 << "; take this into account"
+             <<endmsg;
   }
 
   //double beginITC1   = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
@@ -354,16 +355,16 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     PosBeginGap = PosBeginCrack + 0.9 * Gaudi::Units::cm;
     PosEndGap   = PosBeginGap + GapWidth;
   }
-  
-  if(m_log->level()<=MSG::DEBUG)
+
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG << " PosBeginITC2  = " << PosBeginITC2
-	     << " PosBeginGap  = " << PosBeginGap
-	     << " PosEndGap  = " << PosEndGap
-	     << " PosBeginCrack  = " << PosBeginCrack
-	     << " PosEndCrack  = " << PosEndCrack
-	     << endmsg;
-  
-  // R minimals 
+             << " PosBeginGap  = " << PosBeginGap
+             << " PosEndGap  = " << PosEndGap
+             << " PosBeginCrack  = " << PosBeginCrack
+             << " PosEndCrack  = " << PosEndCrack
+             << endmsg;
+
+  // R minimals
   dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
   double PosRminITC1  = dbManager->TILBrminimal()*Gaudi::Units::cm;
   dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
@@ -372,22 +373,22 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   double PosRminCrack = rMinE4pos*Gaudi::Units::cm;
 
   double PosRminExt = RInMin[3];
-    
+
   // R maximal
   double PosRmaxTotal = ROutMax[3];
 
-  if(m_log->level()<=MSG::DEBUG)
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG
              << " PosRminITC1 = "  << PosRminITC1
              << " PosRminITC2 = "  << PosRminITC
              << " PosRminCrack = " << PosRminCrack
              << " PosRminExt = "   << PosRminExt
              << " PosRmaxTotal = " << PosRmaxTotal
-	     << endmsg;
+             << endmsg;
 
   GeoPcon* tileEnvPconePosEndcap = new GeoPcon(PhiMin[3]*Gaudi::Units::deg, PhiMax[3]*Gaudi::Units::deg);
 
-  // Positive Endcap 
+  // Positive Endcap
   tileEnvPconePosEndcap->addPlane(PosEndBarrelFinger,             PosRminITC1,              PosRmaxTotal);
   tileEnvPconePosEndcap->addPlane(PosBeginITC2,                   PosRminITC1,              PosRmaxTotal);
   tileEnvPconePosEndcap->addPlane(PosBeginITC2,                   PosRminITC,               PosRmaxTotal);
@@ -396,8 +397,8 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   tileEnvPconePosEndcap->addPlane(PosEndCrack,                    PosRminCrack,             PosRmaxTotal);
   tileEnvPconePosEndcap->addPlane(PosEndCrack,                    PosRminExt,               PosRmaxTotal);
   tileEnvPconePosEndcap->addPlane(PosEndExBarrel,                 PosRminExt,               PosRmaxTotal);
-  if (dbManager->BoolSaddle())
-  { tileEnvPconePosEndcap->addPlane(PosEndExBarrel,                 EFingerRmin-RadiusSaddle, PosRmaxTotal);
+  if (dbManager->BoolSaddle()) {
+    tileEnvPconePosEndcap->addPlane(PosEndExBarrel,                 EFingerRmin-RadiusSaddle, PosRmaxTotal);
     tileEnvPconePosEndcap->addPlane(PosEndExBarrel+DzSaddleSupport, EFingerRmin-RadiusSaddle, PosRmaxTotal);
   }
   tileEnvPconePosEndcap->addPlane(PosEndExBarrel+DzSaddleSupport, EFingerRmin,              PosRmaxTotal);
@@ -408,7 +409,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
   //
   // Neg Ex Barrel
-  // 
+  //
 
   // Z planes
   double NegEndBarrelFinger = ZLength[1]/2; // nominal end of barrel finger
@@ -416,17 +417,17 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   double NegEndExtBarrelFinger = NegEndITC + ZLength[2];
   double NegEndExBarrel = NegEndExtBarrelFinger - EBFingerLengthNeg;
 
-  if(m_log->level()<=MSG::DEBUG) {
-    (*m_log) << MSG::DEBUG 
-	     << " EBNeg EnvDZPos[2] " << EnvDZPos[2] << " ZLength[4] " <<ZLength[4]<<"+"<<ZLength[2]
-	     << " = " << ZLength[2]+ZLength[4] << " EBFingerLengthNeg = " <<EBFingerLengthNeg
-	     <<endmsg;
-    
+  if (m_log->level()<=MSG::DEBUG) {
+    (*m_log) << MSG::DEBUG
+             << " EBNeg EnvDZPos[2] " << EnvDZPos[2] << " ZLength[4] " <<ZLength[4]<<"+"<<ZLength[2]
+             << " = " << ZLength[2]+ZLength[4] << " EBFingerLengthNeg = " <<EBFingerLengthNeg
+             <<endmsg;
+
     (*m_log) << MSG::DEBUG << " NegEndBarrelFinger = " << NegEndBarrelFinger
-	     << " NegEndITC = " << NegEndITC
-	     << " NegEndExBarrel = " << NegEndExBarrel
-	     << " NegEndExtBarrelFinger = " << NegEndExtBarrelFinger
-	     << endmsg;
+             << " NegEndITC = " << NegEndITC
+             << " NegEndExBarrel = " << NegEndExBarrel
+             << " NegEndExtBarrelFinger = " << NegEndExtBarrelFinger
+             << endmsg;
   }
 
   dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
@@ -435,9 +436,9 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
   if (fabs(corr)>0.01) { (*m_log) << MSG::WARNING
                                   << "Discrepancy between TileGlobals and TILB tables in GeoModel DB "
-                                  << NegEndITC << " != " << NegEndITC1 << "; take this into account" 
+                                  << NegEndITC << " != " << NegEndITC1 << "; take this into account"
                                   << endmsg;
-    }
+  }
   //double NegBeginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
   dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
   double NegBeginITC2   = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
@@ -453,16 +454,16 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     NegBeginGap = NegBeginCrack + 0.9 * Gaudi::Units::cm;
     NegEndGap = NegBeginGap + GapWidth;
   }
-  
-  if(m_log->level()<=MSG::DEBUG)
+
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG << " NegBeginITC2  = " << NegBeginITC2
-	     << " NegBeginGap  = " << NegBeginGap
-	     << " NegEndGap  = " << NegEndGap
-	     << " NegBeginCrack  = " << NegBeginCrack
-	     << " NegEndCrack  = " << NegEndCrack
-	     << endmsg;
+             << " NegBeginGap  = " << NegBeginGap
+             << " NegEndGap  = " << NegEndGap
+             << " NegBeginCrack  = " << NegBeginCrack
+             << " NegEndCrack  = " << NegEndCrack
+             << endmsg;
 
-  // R minimals 
+  // R minimals
   dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
   double NegRminITC1 = dbManager->TILBrminimal()*Gaudi::Units::cm;
   dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
@@ -472,26 +473,26 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
 
   double NegRminExt = RInMin[2];
-    
-  // R maximal 
+
+  // R maximal
   double NegRmaxTotal = ROutMax[2];
 
-  if(m_log->level()<=MSG::DEBUG)
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG
              << " NegRminITC1 = "  << NegRminITC1
              << " NegRminITC2 = "  << NegRminITC
              << " NegRminCrack = " << NegRminCrack
              << " NegRminExt = "   << NegRminExt
              << " NegRmaxTotal = " << NegRmaxTotal
-	     << endmsg;
+             << endmsg;
 
   GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(PhiMin[2]*Gaudi::Units::deg, PhiMax[2]*Gaudi::Units::deg);
 
-  // Negative Endcap 
+  // Negative Endcap
   tileEnvPconeNegEndcap->addPlane(-NegEndExtBarrelFinger,          EFingerRmin,              NegRmaxTotal);
   tileEnvPconeNegEndcap->addPlane(-NegEndExBarrel-DzSaddleSupport, EFingerRmin,              NegRmaxTotal);
-  if (dbManager->BoolSaddle())
-  { tileEnvPconeNegEndcap->addPlane(-NegEndExBarrel-DzSaddleSupport, EFingerRmin-RadiusSaddle, NegRmaxTotal);
+  if (dbManager->BoolSaddle()) {
+    tileEnvPconeNegEndcap->addPlane(-NegEndExBarrel-DzSaddleSupport, EFingerRmin-RadiusSaddle, NegRmaxTotal);
     tileEnvPconeNegEndcap->addPlane(-NegEndExBarrel,                 EFingerRmin-RadiusSaddle, NegRmaxTotal);
   }
   tileEnvPconeNegEndcap->addPlane(-NegEndExBarrel,                 NegRminExt,               NegRmaxTotal);
@@ -507,13 +508,13 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   pvTileEnvelopeNegEndcap = new GeoPhysVol(lvTileEnvelopeNegEndcap);
 
   // --------------- Configure Section Builder for the Reco geometry --------------------
-  if(!m_fullGeo) {
+  if (!m_fullGeo) {
     // Central barrel part
     dbManager->SetCurrentSectionByNumber(1);
-    
-    dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() 
-	      - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) 
-		 -  dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1));
+
+    dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2()
+              - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac())
+                 -  dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1));
 
     // TODO: apparently, the value set with the call below is not used: it seems m_barrelPeriodThickness is recomputed inside the GeoSectionBuilder's code; so, the call below is probably useless...
     sectionBuilder->setBarrelPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*Gaudi::Units::cm);
@@ -522,18 +523,16 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     // Ext barrel part
     dbManager->SetCurrentSectionByNumber(2);
 
-    dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() 
-	      - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
+    dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2()
+              - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
 
     // TODO: apparently, the value set with the call below is not used: it seems m_extendedPeriodThickness is recomputed inside the GeoSectionBuilder's code; so, the call below is probably useless...
     sectionBuilder->setExtendedPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*Gaudi::Units::cm);
   }
 
-  GeoPhysVol *pvBarrelMother{nullptr},     *pvFingerMotherNeg{nullptr}, *pvFingerMotherPos{nullptr}, 
-             *pvSaddleMotherNeg{nullptr},  *pvSaddleMotherPos{nullptr};
+  GeoPhysVol *pvBarrelMother{nullptr},     *pvFingerMotherNeg{nullptr}, *pvFingerMotherPos{nullptr}, *pvSaddleMotherNeg{nullptr},  *pvSaddleMotherPos{nullptr};
   GeoPhysVol *pvEBarrelMotherNeg{nullptr}, *pvEBarrelMotherPos{nullptr};
-  GeoPhysVol *pvEFingerMotherNeg{nullptr}, *pvEFingerMotherPos{nullptr},
-             *pvESaddleMotherNeg{nullptr}, *pvESaddleMotherPos{nullptr};
+  GeoPhysVol *pvEFingerMotherNeg{nullptr}, *pvEFingerMotherPos{nullptr}, *pvESaddleMotherNeg{nullptr}, *pvESaddleMotherPos{nullptr};
   GeoPhysVol *pvITCMotherNeg{nullptr},     *pvITCMotherPos{nullptr};
   GeoPhysVol *pvGapMotherNeg{nullptr},     *pvGapMotherPos{nullptr};
   GeoPhysVol *pvCrackMotherNeg{nullptr},   *pvCrackMotherPos{nullptr};
@@ -542,8 +541,8 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   GeoPhysVol *pvEBarrelModuleMotherPos{nullptr}, *pvEBarrelModuleMotherNeg{nullptr};
 
   /*
-  GeoPhysVol *pvTmp_EBarrelModuleMotherPos =0,*pvTmL_EBarrelModuleMotherPos =0,*pvTmR_EBarrelModuleMotherPos =0;
-  GeoPhysVol *pvTmp_EBarrelModuleMotherNeg =0,*pvTmL_EBarrelModuleMotherNeg =0,*pvTmR_EBarrelModuleMotherNeg =0;
+    GeoPhysVol *pvTmp_EBarrelModuleMotherPos =0,*pvTmL_EBarrelModuleMotherPos =0,*pvTmR_EBarrelModuleMotherPos =0;
+    GeoPhysVol *pvTmp_EBarrelModuleMotherNeg =0,*pvTmL_EBarrelModuleMotherNeg =0,*pvTmR_EBarrelModuleMotherNeg =0;
   */
 
   //GeoCutVolAction *action1 =0, *action2 =0, *action3 =0;
@@ -566,185 +565,186 @@ void TileAtlasFactory::create(GeoPhysVol *world)
   GeoLogVol  *lvIrUp =0, *lvIrDw =0, *lvIron3 =0, *lvIron2 =0, *lvIron1 =0, *lvIrBox =0;
   GeoPhysVol *pvIrUp =0, *pvIrDw =0, *pvIron3 =0, *pvIron2 =0, *pvIron1 =0, *pvIrBox =0;
 
-  if(m_fullGeo) {
+  if (m_fullGeo) {
 
     // ext. barrel Cuts description
     if (dbManager->BoolCuts()) {
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG << " Tile Geometry with Ext.Barrel CutOuts and Iron plates, starting form TileCal-CSC-01"
-		 << endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG << " Tile Geometry with Ext.Barrel CutOuts and Iron plates, starting form TileCal-CSC-01"
+                 << endmsg;
 
-      volname = "CutB"; dbManager->SetCurrentCuts(volname); 
-      PosXcut = dbManager->CutsXpos(); 
-      PosYcut = dbManager->CutsYpos(); 
+      volname = "CutB"; dbManager->SetCurrentCuts(volname);
+      PosXcut = dbManager->CutsXpos();
+      PosYcut = dbManager->CutsYpos();
       modl_length = 4*dbManager->CutsDX1();
 
       // Inert materials, CutB1
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("CutB1", false, 1, dX1,dX2,dY1,dY2,dZ1);
       GeoTrd* CutB1 = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
       //const GeoShape& CutB = *CutB1;
       CutB = CutB1;
 
-      // Inert materials which are in cuts, special modules 
-      // Materials are in cuting region, up Iron plate 
-      volname = "IrUp"; dbManager->SetCurrentCuts(volname); 
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      // Inert materials which are in cuts, special modules
+      // Materials are in cuting region, up Iron plate
+      volname = "IrUp"; dbManager->SetCurrentCuts(volname);
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("IrUp", false, 1,dX1,dX2,dY1,dY2,dZ1);
       GeoTrd* IrUp = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
       lvIrUp = new GeoLogVol("IrUp",IrUp,matIron);
-      pvIrUp = new GeoPhysVol(lvIrUp); 
-      
-      // Materials are in cuting region, down Iron plate 
-      volname = "IrDw"; dbManager->SetCurrentCuts(volname); 
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      pvIrUp = new GeoPhysVol(lvIrUp);
+
+      // Materials are in cuting region, down Iron plate
+      volname = "IrDw"; dbManager->SetCurrentCuts(volname);
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("IrDw", false, 1, dX1,dX2,dY1,dY2,dZ1);
       GeoTrd* IrDw = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
       lvIrDw = new GeoLogVol("IrDw",IrDw,matIron);
-      pvIrDw = new GeoPhysVol(lvIrDw); 
+      pvIrDw = new GeoPhysVol(lvIrDw);
 
       // Materials are in cuting region, 1up Iron plate
       volname = "Cut1up"; dbManager->SetCurrentCuts(volname); //>>
       PosY =  dbManager->CutsYpos();
 
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("Cut1up", false, 1, dX1,dX2,dY1,dY2,dZ1);
-      GeoTrd* Cut1up = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);     
+      GeoTrd* Cut1up = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
 
       volname = "Cut2down"; dbManager->SetCurrentCuts(volname); //>>
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ2 = dbManager->CutsDZ1(); 
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ2 = dbManager->CutsDZ1();
 
       checking("Cut2down", false, 1, dX1,dX2,dY1,dY2,dZ2);
       GeoTrd* Cut1down = new GeoTrd(dX1,dX2,dY1,dY2,dZ2);
- 
+
       GeoTrf::Translate3D yPosA(0.,0.,-dZ1-dZ2);
-      
+
       const GeoShapeUnion& CutA1 = Cut1up->add(*Cut1down<<yPosA);
       CutA = &CutA1;
 
-    /*                               |----------> X
-                  |---------------------------------------|     (Xdown, -Ydown)
-                  |                                   (3) |
-                  |---------------------------------------| (2) (Xdown, -Ymiddle) 
-                 /                 CutA                    \
-                |-------------------------------------------| (1) (Xup,   -Yup)
-                                                            
-      GeoSimplePolygonBrep *BREP = new GeoSimplePolygonBrep(length/2);
-      BREP->addVertex( Xup,   -Yup    );  
-      BREP->addVertex( Xdown, -Ymiddle);  
-      BREP->addVertex( Xdown, -Ydown  );  
-      BREP->addVertex(-Xdown, -Ydown  );  
-      BREP->addVertex(-Xdown, -Ymiddle);  
-      BREP->addVertex(-Xup,   -Yup    );  
-      const GeoShape& ShapeCut2 = *BREP;
-     */
-      
-      // Inert materials which are in cuts, special modules 
+      /*
+          |----------> X
+          |---------------------------------------|     (Xdown, -Ydown)
+          |                                   (3) |
+          |---------------------------------------| (2) (Xdown, -Ymiddle)
+          /                 CutA                    \
+          |-------------------------------------------| (1) (Xup,   -Yup)
+
+          GeoSimplePolygonBrep *BREP = new GeoSimplePolygonBrep(length/2);
+          BREP->addVertex( Xup,   -Yup    );
+          BREP->addVertex( Xdown, -Ymiddle);
+          BREP->addVertex( Xdown, -Ydown  );
+          BREP->addVertex(-Xdown, -Ydown  );
+          BREP->addVertex(-Xdown, -Ymiddle);
+          BREP->addVertex(-Xup,   -Yup    );
+          const GeoShape& ShapeCut2 = *BREP;
+      */
+
+      // Inert materials which are in cuts, special modules
       // Materials are in cuting region, down Iron plate (3)
       volname = "Iron3"; dbManager->SetCurrentCuts(volname); //>>
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("Iron3", false, 1, dX1,dX2,dY1,dY2,dZ1);
       GeoTrd* Iron3 = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
       lvIron3 = new GeoLogVol("Iron3",Iron3,matIron);
-      pvIron3 = new GeoPhysVol(lvIron3); 
-      
+      pvIron3 = new GeoPhysVol(lvIron3);
+
       // Materials are in cuting region, down Iron plate (2)
       volname = "Iron2"; dbManager->SetCurrentCuts(volname); //>>
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("Iron2", false, 1, dX1,dX2,dY1,dY2,dZ1);
       GeoTrd* Iron2 = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
       lvIron2 = new GeoLogVol("Iron2",Iron2,matIron);
-      pvIron2 = new GeoPhysVol(lvIron2); 
-      
+      pvIron2 = new GeoPhysVol(lvIron2);
+
       // Materials are in cuting region, down Iron plate (1)
       volname = "Iron1"; dbManager->SetCurrentCuts(volname); //>>
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("Iron1", false, 1, dX1,dX2,dY1,dY2,dZ1);
       GeoTrd* Iron1 = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
       lvIron1 = new GeoLogVol("Iron1",Iron1,matIron);
-      pvIron1 = new GeoPhysVol(lvIron1); 
+      pvIron1 = new GeoPhysVol(lvIron1);
 
       // Materials are in cuting region, Heavy Iron Box
       volname = "IrBox"; dbManager->SetCurrentCuts(volname); //>>
-      dX1 = dbManager->CutsDX1(); 
-      dX2 = dbManager->CutsDX2(); 
-      dY1 = dbManager->CutsDY1(); 
-      dY2 = dbManager->CutsDY2(); 
-      dZ1 = dbManager->CutsDZ1(); 
+      dX1 = dbManager->CutsDX1();
+      dX2 = dbManager->CutsDX2();
+      dY1 = dbManager->CutsDY1();
+      dY2 = dbManager->CutsDY2();
+      dZ1 = dbManager->CutsDZ1();
 
       checking("IrBox", false, 1, dX1,dX2,dY1,dY2,dZ1);
       GeoTrd* IrBox = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
       lvIrBox = new GeoLogVol("IrBox",IrBox,matIron);
-      pvIrBox = new GeoPhysVol(lvIrBox); 
-
-    /*                                           |<-->|----- |Xdown - Xup|
-                                 (Xdown,-Ymiddle)    /|   ^ 
-                                                    / |   |
-                                 (Xup,             /  |   |   CutB
-                  |----------> X                  |   |   |
-                                 (Xup,-Yup)       |   |   |
-                                                   \  |   |
-                                                    \ |   |- |Ydown - Ymiddle|
-                                 (Xdown,-Ydown)      \|  ---
-      (Ydown+|Ydown-Ymiddle|/2)-Yup 
-      Y position = Ydown+|Ydown-Ymiddle|/2
-
-      GeoSimplePolygonBrep *BREP = new GeoSimplePolygonBrep(length/4);
-      BREP->addVertex( Xup,   -Yup    );
-      BREP->addVertex( Xdown, -Ydown  );
-      BREP->addVertex( Xdown, -Ymiddle);
-      BREP->addVertex(-Xdown, -Ymiddle);    
-      BREP->addVertex(-Xdown, -Ydown  );   
-      BREP->addVertex(-Xup,   -Yup    );   
-      const GeoShape& ShapeCut1 = *BREP;
-    */
+      pvIrBox = new GeoPhysVol(lvIrBox);
+
+      /*
+          |<-->|----- |Xdown - Xup|
+          (Xdown,-Ymiddle)    /|   ^
+          / |   |
+          (Xup,             /  |   |   CutB
+          |----------> X                  |   |   |
+          (Xup,-Yup)       |   |   |
+          \  |   |
+          \ |   |- |Ydown - Ymiddle|
+          (Xdown,-Ydown)      \|  ---
+          (Ydown+|Ydown-Ymiddle|/2)-Yup
+          Y position = Ydown+|Ydown-Ymiddle|/2
+
+          GeoSimplePolygonBrep *BREP = new GeoSimplePolygonBrep(length/4);
+          BREP->addVertex( Xup,   -Yup    );
+          BREP->addVertex( Xdown, -Ydown  );
+          BREP->addVertex( Xdown, -Ymiddle);
+          BREP->addVertex(-Xdown, -Ymiddle);
+          BREP->addVertex(-Xdown, -Ydown  );
+          BREP->addVertex(-Xup,   -Yup    );
+          const GeoShape& ShapeCut1 = *BREP;
+      */
     } // end if,  BoolCuts
   }
 
   int NumberOfEnv = dbManager->GetNumberOfEnv();
   MLOG(DEBUG) << "NumberOfEnv: " << NumberOfEnv << endmsg;
 
-  for(int EnvCounter = 0; EnvCounter < NumberOfEnv ; ++EnvCounter)
-  { // Loop over Envelopes
+  for (int EnvCounter = 0; EnvCounter < NumberOfEnv ; ++EnvCounter) { // Loop over Envelopes
 
     dbManager->SetCurrentEnvByIndex(EnvCounter);
     int EnvType = dbManager->GetEnvType();
@@ -752,34 +752,33 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     int NumberOfMod = dbManager->GetEnvNModules();
 
     // Break for debugging
-    //if(EnvType != 3) continue;
+    //if (EnvType != 3) continue;
 
-    if(m_log->level()<=MSG::DEBUG)
-      (*m_log) << MSG::DEBUG << " EnvCounter " << EnvCounter << " EnvType " << EnvType 
-	       << " EnvNModules " << NumberOfMod << endmsg;
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG << " EnvCounter " << EnvCounter << " EnvType " << EnvType
+               << " EnvNModules " << NumberOfMod << endmsg;
 
-    if(EnvType == 1) 
-     {
+    if (EnvType == 1) {
       // nominal position of end plate
       zEndSection = ZLength[1]/2 - BFingerLength;
 
       GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*Gaudi::Units::cm,
-					   dbManager->GetEnvRout()*Gaudi::Units::cm,
-					   zEndSection,
-					   AnglMin, AnglMax);
+                                           dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                           zEndSection,
+                                           AnglMin, AnglMax);
 
-      GeoTubs* barrelMother = GeneralMother;      
+      GeoTubs* barrelMother = GeneralMother;
       GeoLogVol* lvBarrelMother = new GeoLogVol("Barrel",barrelMother,matAir);
       pvBarrelMother = new GeoPhysVol(lvBarrelMother);
 
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG << "Barrel envelope parameters: " 
-		 << " Length=" << zEndSection
-		 << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm
-		 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
-		 << endmsg;
-      
-      // Envelopes for two barrel fingers, positive finger 
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG << "Barrel envelope parameters: "
+                 << " Length=" << zEndSection
+                 << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm
+                 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
+                 << endmsg;
+
+      // Envelopes for two barrel fingers, positive finger
       GeoTubs* fingerMotherPos = new GeoTubs(BFingerRmin,
                                              dbManager->GetEnvRout()*Gaudi::Units::cm,
                                              BFingerLengthPos/2,
@@ -788,98 +787,96 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       GeoLogVol* lvFingerMotherPos = new GeoLogVol("FingerPos",fingerMotherPos,matAir);
       pvFingerMotherPos = new GeoPhysVol(lvFingerMotherPos);
 
-      if (dbManager->BoolSaddle())
-       { // Envelopes for barrel saddle supports, positive
-         GeoTubs* SaddleMotherPos = new GeoTubs(BFingerRmin-RadiusSaddle,
-                                                BFingerRmin,
-                                                DzSaddleSupport/2,
-                                                AnglMin, AnglMax);
-
-         GeoLogVol* lvSaddleMotherPos = new GeoLogVol("SaddlePos",SaddleMotherPos,matAir);
-         pvSaddleMotherPos = new GeoPhysVol(lvSaddleMotherPos);
-       }
-
-       // Negative finger
-       GeoTubs* fingerMotherNeg = new GeoTubs(BFingerRmin,
-                                              dbManager->GetEnvRout()*Gaudi::Units::cm,
-                                              BFingerLengthNeg/2,
-                                              AnglMin, AnglMax);
-
-       GeoLogVol* lvFingerMotherNeg = new GeoLogVol("FingerNeg",fingerMotherNeg,matAir);
-       pvFingerMotherNeg = new GeoPhysVol(lvFingerMotherNeg);
-
-       if(m_log->level()<=MSG::DEBUG)
-	 (*m_log) << MSG::DEBUG << "Barrel finger envelope parameters: " 
-		  << " length Pos/Neg=" << BFingerLengthPos << "/" << BFingerLengthNeg
-		  << " Rmin=" << BFingerRmin << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
-		  << endmsg;
-
-       // Envelopes for two barrel saddle supports, positive
-       if (dbManager->BoolSaddle())
-        {          GeoTubs* SaddleMotherNeg = new GeoTubs(BFingerRmin-RadiusSaddle,
-                                                          BFingerRmin,
-                                                          DzSaddleSupport/2,
-                                                          AnglMin, AnglMax);
-
-         GeoLogVol* lvSaddleMotherNeg = new GeoLogVol("SaddleNeg",SaddleMotherNeg,matAir);
-         pvSaddleMotherNeg = new GeoPhysVol(lvSaddleMotherNeg);
-        }
-     }
-    
-    if(EnvType == 3) {   
+      if (dbManager->BoolSaddle()) { // Envelopes for barrel saddle supports, positive
+        GeoTubs* SaddleMotherPos = new GeoTubs(BFingerRmin-RadiusSaddle,
+                                               BFingerRmin,
+                                               DzSaddleSupport/2,
+                                               AnglMin, AnglMax);
 
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG <<" EBarrelPos DZ "<<(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2<< endmsg;
+        GeoLogVol* lvSaddleMotherPos = new GeoLogVol("SaddlePos",SaddleMotherPos,matAir);
+        pvSaddleMotherPos = new GeoPhysVol(lvSaddleMotherPos);
+      }
+
+      // Negative finger
+      GeoTubs* fingerMotherNeg = new GeoTubs(BFingerRmin,
+                                             dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                             BFingerLengthNeg/2,
+                                             AnglMin, AnglMax);
 
-      checking("EBarrel (+)", false, 0, 
+      GeoLogVol* lvFingerMotherNeg = new GeoLogVol("FingerNeg",fingerMotherNeg,matAir);
+      pvFingerMotherNeg = new GeoPhysVol(lvFingerMotherNeg);
+
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG << "Barrel finger envelope parameters: "
+                 << " length Pos/Neg=" << BFingerLengthPos << "/" << BFingerLengthNeg
+                 << " Rmin=" << BFingerRmin << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
+                 << endmsg;
+
+      // Envelopes for two barrel saddle supports, positive
+      if (dbManager->BoolSaddle()) {
+        GeoTubs* SaddleMotherNeg = new GeoTubs(BFingerRmin-RadiusSaddle,
+                                               BFingerRmin,
+                                               DzSaddleSupport/2,
+                                               AnglMin, AnglMax);
+
+        GeoLogVol* lvSaddleMotherNeg = new GeoLogVol("SaddleNeg",SaddleMotherNeg,matAir);
+        pvSaddleMotherNeg = new GeoPhysVol(lvSaddleMotherNeg);
+      }
+    }
+
+    if (EnvType == 3) {
+
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" EBarrelPos DZ "<<(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2<< endmsg;
+
+      checking("EBarrel (+)", false, 0,
                dbManager->GetEnvRin()*Gaudi::Units::cm,dbManager->GetEnvRout()*Gaudi::Units::cm,
                AnglMin,AnglMax,(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2);
 
       GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*Gaudi::Units::cm,
-					   dbManager->GetEnvRout()*Gaudi::Units::cm,
-					   (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2,
-					   AnglMin, AnglMax);
+                                           dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                           (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2,
+                                           AnglMin, AnglMax);
 
       GeoTubs* ebarrelMotherPos = GeneralMother;
       GeoLogVol* lvEBarrelMotherPos = new GeoLogVol("EBarrel",ebarrelMotherPos,matAir);
       pvEBarrelMotherPos = new GeoPhysVol(lvEBarrelMotherPos);
 
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG << "Positive ext.barrel envelope parameters: " 
-		 << " length=" << (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLength)
-		 << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm
-		 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
-		 << endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG << "Positive ext.barrel envelope parameters: "
+                 << " length=" << (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLength)
+                 << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm
+                 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
+                 << endmsg;
 
       // Envelope for finger separately
-      checking("EBarrel (+)", false, 0, 
+      checking("EBarrel (+)", false, 0,
                EFingerRmin,dbManager->GetEnvRout()*Gaudi::Units::cm,
                AnglMin,AnglMax, EBFingerLength/2);
 
       GeoTubs* fingerMother = new GeoTubs(EFingerRmin,
-					  dbManager->GetEnvRout()*Gaudi::Units::cm,
-					  EBFingerLength/2,
-					  AnglMin, AnglMax);
+                                          dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                          EBFingerLength/2,
+                                          AnglMin, AnglMax);
 
       GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir);
       pvEFingerMotherPos = new GeoPhysVol(lvEFingerMother);
 
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG << "Positive ext.barrel finger envelope parameters: " 
-		 << " length=" << EBFingerLength
-		 << " Rmin=" << EFingerRmin
-		 << " Rmax=" << (dbManager->GetEnvRout())*Gaudi::Units::cm
-		 << endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG << "Positive ext.barrel finger envelope parameters: "
+                 << " length=" << EBFingerLength
+                 << " Rmin=" << EFingerRmin
+                 << " Rmax=" << (dbManager->GetEnvRout())*Gaudi::Units::cm
+                 << endmsg;
 
-      if (dbManager->BoolSaddle())
-      { //Envelopes for two barrel saddle supports, positive
-        checking("ESaddle (+)", false, 0, 
-	         EFingerRmin-RadiusSaddle,EFingerRmin,AnglMin,AnglMax, DzSaddleSupport/2);
+      if (dbManager->BoolSaddle()) { //Envelopes for two barrel saddle supports, positive
+        checking("ESaddle (+)", false, 0,
+                 EFingerRmin-RadiusSaddle,EFingerRmin,AnglMin,AnglMax, DzSaddleSupport/2);
 
         GeoTubs* ESaddleMother = new GeoTubs(EFingerRmin-RadiusSaddle,
-	                                     EFingerRmin,
-					     DzSaddleSupport/2,
-					     AnglMin, AnglMax);
+                                             EFingerRmin,
+                                             DzSaddleSupport/2,
+                                             AnglMin, AnglMax);
 
         GeoLogVol* lvESaddleMother = new GeoLogVol("ESaddlePos",ESaddleMother,matAir);
         pvESaddleMotherPos = new GeoPhysVol(lvESaddleMother);
@@ -887,59 +884,58 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     }
 
     // Negative Ext.Barrel
-    if(EnvType == 2) { 
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG <<" EBarrelNeg DZ "<<(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2<< endmsg;
+    if (EnvType == 2) {
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" EBarrelNeg DZ "<<(dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2<< endmsg;
 
       GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*Gaudi::Units::cm,
-					   dbManager->GetEnvRout()*Gaudi::Units::cm,
-					   (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2,
-					   AnglMin, AnglMax);
+                                           dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                           (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2,
+                                           AnglMin, AnglMax);
 
       GeoTubs* ebarrelMotherNeg = GeneralMother;
-      GeoLogVol* lvEBarrelMotherNeg = new GeoLogVol("EBarrel",ebarrelMotherNeg,matAir);  
+      GeoLogVol* lvEBarrelMotherNeg = new GeoLogVol("EBarrel",ebarrelMotherNeg,matAir);
       pvEBarrelMotherNeg = new GeoPhysVol(lvEBarrelMotherNeg);
-      
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG << "Nevative ext.barrel envelope parameters: " 
-		 << " length=" << (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLength)
-		 << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm
-		 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
-		 << endmsg;
+
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG << "Nevative ext.barrel envelope parameters: "
+                 << " length=" << (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLength)
+                 << " Rmin=" << dbManager->GetEnvRin()*Gaudi::Units::cm
+                 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
+                 << endmsg;
 
       // Envelope for finger separately
       GeoTubs* fingerMother = new GeoTubs(EFingerRmin,
-					  dbManager->GetEnvRout()*Gaudi::Units::cm,
-					  EBFingerLengthNeg/2,
-					  AnglMin, AnglMax);
-      
+                                          dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                          EBFingerLengthNeg/2,
+                                          AnglMin, AnglMax);
+
       GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir);
       pvEFingerMotherNeg = new GeoPhysVol(lvEFingerMother);
 
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG <<"Negative ext.barrel finger envelope parameters: " 
-		 << " length=" << EBFingerLengthNeg
-		 << " Rmin=" << EFingerRmin
-		 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
-		 << endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<"Negative ext.barrel finger envelope parameters: "
+                 << " length=" << EBFingerLengthNeg
+                 << " Rmin=" << EFingerRmin
+                 << " Rmax=" << dbManager->GetEnvRout()*Gaudi::Units::cm
+                 << endmsg;
 
-      if (dbManager->BoolSaddle())
-      { //Envelopes for Ext. barrel saddle supports, positive 
-        checking("ESaddle (-)", false, 0, 
-	       EFingerRmin-RadiusSaddle,EFingerRmin,AnglMin,AnglMax, DzSaddleSupport/2);
+      if (dbManager->BoolSaddle()) { //Envelopes for Ext. barrel saddle supports, positive
+        checking("ESaddle (-)", false, 0,
+                 EFingerRmin-RadiusSaddle,EFingerRmin,AnglMin,AnglMax, DzSaddleSupport/2);
 
         GeoTubs* ESaddleMother = new GeoTubs(EFingerRmin-RadiusSaddle,
-	                                     EFingerRmin,
-					     DzSaddleSupport/2,
-					     AnglMin, AnglMax);
+                                             EFingerRmin,
+                                             DzSaddleSupport/2,
+                                             AnglMin, AnglMax);
 
         GeoLogVol* lvESaddleMother = new GeoLogVol("ESaddlePos",ESaddleMother,matAir);
         pvESaddleMotherNeg = new GeoPhysVol(lvESaddleMother);
       }
     }
-    
+
     // ITC Positive
-    if(EnvType == 5) {
+    if (EnvType == 5) {
 
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
 
@@ -950,15 +946,15 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
 
       rMinITC1 = dbManager->TILBrminimal();
-      rMaxITC1 = dbManager->TILErmam(); 
+      rMaxITC1 = dbManager->TILErmam();
       dzITC1   = dbManager->TILBdzmodul();
-      
-      (*m_log) << MSG::INFO << " Positive ITC envelope parameters: PLUG1 " 
+
+      (*m_log) << MSG::INFO << " Positive ITC envelope parameters: PLUG1 "
                <<" Rmin= "<<rMinITC1*Gaudi::Units::cm<<" Rmax= "<<rMaxITC1*Gaudi::Units::cm<<" dzITC1= "<<dzITC1/2*Gaudi::Units::cm<< endmsg;
       (*m_log) << MSG::INFO << "                                   PLUG2 "
                <<" Rmin= "<<rMinITC2*Gaudi::Units::cm<<" Rmax= "<<rMaxITC2*Gaudi::Units::cm<<" dzITC2= "<<dzITC2/2*Gaudi::Units::cm<< endmsg;
 
-      checking("ITC itcWheel1 (+)", false, 0, 
+      checking("ITC itcWheel1 (+)", false, 0,
                rMinITC1*Gaudi::Units::cm,rMaxITC1*Gaudi::Units::cm, AnglMin,AnglMax, dzITC1/2*Gaudi::Units::cm);
 
       GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*Gaudi::Units::cm,
@@ -973,7 +969,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
                                        rMaxITC2*Gaudi::Units::cm,
                                        dzITC2/2*Gaudi::Units::cm,
                                        AnglMin, AnglMax);
-      
+
       Z = ( dzITC1 - dzITC2)/2*Gaudi::Units::cm;
       GeoTrf::Translate3D itcWheel2OffsetPos(0.,0., Z);
 
@@ -987,13 +983,13 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       // Gap Positive
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
 
-      checking("Gap (+)", false, 0, 
-              dbManager->TILBrminimal()*Gaudi::Units::cm,
-              dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
-              AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
+      checking("Gap (+)", false, 0,
+               dbManager->TILBrminimal()*Gaudi::Units::cm,
+               dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+               AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
 
       GeoTubs* GapMotherPos = new GeoTubs(dbManager->TILBrminimal()*Gaudi::Units::cm,
-	                                  dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+                                          dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
                                           dbManager->TILBdzmodul()/2*Gaudi::Units::cm,
                                           AnglMin, AnglMax);
 
@@ -1003,22 +999,22 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       // Crack Positive
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
 
-      checking("Crack (+)", spE4, 0, 
-              rMinE4pos*Gaudi::Units::cm,
-              dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
-              AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
+      checking("Crack (+)", spE4, 0,
+               rMinE4pos*Gaudi::Units::cm,
+               dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+               AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
 
       GeoTubs* crackMotherPos = new GeoTubs(rMinE4pos*Gaudi::Units::cm,
-				            dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
-				            dbManager->TILBdzmodul()/2*Gaudi::Units::cm,
+                                            dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+                                            dbManager->TILBdzmodul()/2*Gaudi::Units::cm,
                                             AnglMin, AnglMax);
-    
+
       GeoLogVol* lvCrackMotherPos = new GeoLogVol("Crack",crackMotherPos,matAir);
       pvCrackMotherPos = new GeoPhysVol(lvCrackMotherPos);
 
-    } 
+    }
     // ITC Negative
-    if(EnvType == 4) { 
+    if (EnvType == 4) {
 
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
 
@@ -1031,13 +1027,13 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       rMinITC1 = dbManager->TILBrminimal();
       rMaxITC1 = dbManager->TILErmam();
       dzITC1   = dbManager->TILBdzmodul();
-      
-      (*m_log) << MSG::INFO << " Negative ITC envelope parameters: PLUG1 " 
+
+      (*m_log) << MSG::INFO << " Negative ITC envelope parameters: PLUG1 "
                <<" Rmin= "<<rMinITC1*Gaudi::Units::cm<<" Rmax= "<<rMaxITC1*Gaudi::Units::cm<<" dzITC1= "<<dzITC1/2*Gaudi::Units::cm<<endmsg;
       (*m_log) << MSG::INFO << "                                   PLUG2 "
                <<" Rmin= "<<rMinITC2*Gaudi::Units::cm<<" Rmax= "<<rMaxITC2*Gaudi::Units::cm<<" dzITC2= "<<dzITC2/2*Gaudi::Units::cm<<endmsg;
 
-      checking("ITC itcWheel1 (-)", false, 0, 
+      checking("ITC itcWheel1 (-)", false, 0,
                rMinITC1*Gaudi::Units::cm,rMaxITC1*Gaudi::Units::cm, AnglMin,AnglMax, dzITC1/2*Gaudi::Units::cm);
 
       GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*Gaudi::Units::cm,
@@ -1066,13 +1062,13 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       // Gap Negative
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
 
-      checking("Gap (-)", false, 1, 
-              dbManager->TILBrminimal()*Gaudi::Units::cm,
-              dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
-              AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
+      checking("Gap (-)", false, 1,
+               dbManager->TILBrminimal()*Gaudi::Units::cm,
+               dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+               AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
 
       GeoTubs* GapMotherNeg = new GeoTubs(dbManager->TILBrminimal()*Gaudi::Units::cm,
-	                                  dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+                                          dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
                                           dbManager->TILBdzmodul()/2*Gaudi::Units::cm,
                                           AnglMin, AnglMax);
 
@@ -1081,1349 +1077,1343 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       // Crack Negative
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
-  
-      checking("Crack (-)", spE4, 0, 
-              rMinE4neg*Gaudi::Units::cm,
-              dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
-              AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
+
+      checking("Crack (-)", spE4, 0,
+               rMinE4neg*Gaudi::Units::cm,
+               dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+               AnglMin,AnglMax, dbManager->TILBdzmodul()/2*Gaudi::Units::cm);
 
       GeoTubs* crackMotherNeg = new GeoTubs(rMinE4neg*Gaudi::Units::cm,
-				            dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
-				            dbManager->TILBdzmodul()/2*Gaudi::Units::cm,
+                                            dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2*Gaudi::Units::deg),
+                                            dbManager->TILBdzmodul()/2*Gaudi::Units::cm,
                                             AnglMin, AnglMax);
-    
+
       GeoLogVol* lvCrackMotherNeg = new GeoLogVol("Crack",crackMotherNeg,matAir);
       pvCrackMotherNeg = new GeoPhysVol(lvCrackMotherNeg);
 
     }
-    
-    if(m_fullGeo) {   
 
-    // ModuleNumber[NumberOfMod] array for independent of positrion numeration
-    int ModuleIndex[64];
-    for(int i=0; i < NumberOfMod; i++){
-      ModuleIndex[i] = i+1;
-    }
+    if (m_fullGeo) {
 
-    // the main loop around all phi modules position
-    int ModuleNcp =0;
+      // ModuleNumber[NumberOfMod] array for independent of positrion numeration
+      int ModuleIndex[64];
+      for (int i=0; i < NumberOfMod; i++) {
+        ModuleIndex[i] = i+1;
+      }
 
-    GeoTransform* yrotMod = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg));
-    yrotMod->ref();
-    GeoTransform* XYrtMod = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg) * GeoTrf::RotateY3D(90*Gaudi::Units::deg));
-    XYrtMod->ref();
+      // the main loop around all phi modules position
+      int ModuleNcp =0;
 
-    for(int ModCounter = 0; ModCounter < NumberOfMod; ModCounter++){
+      GeoTransform* yrotMod = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg));
+      yrotMod->ref();
+      GeoTransform* XYrtMod = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg) * GeoTrf::RotateY3D(90*Gaudi::Units::deg));
+      XYrtMod->ref();
 
-      ModuleNcp = ModuleIndex[ModCounter];
+      for (int ModCounter = 0; ModCounter < NumberOfMod; ModCounter++) {
 
-      // General rotation and transformations
-      double phi = (double(ModuleNcp-1) + 0.5)*deltaPhi;
-      double ph1 = (double(ModuleNcp-1))*deltaPhi;
+        ModuleNcp = ModuleIndex[ModCounter];
 
-      GeoTransform* zrotMod = new GeoTransform(GeoTrf::RotateZ3D(phi*Gaudi::Units::deg));
-      zrotMod->ref();
-      GeoTransform* zrotSaddle =  new GeoTransform(GeoTrf::RotateZ3D(ph1*Gaudi::Units::deg));
-      zrotSaddle->ref();
+        // General rotation and transformations
+        double phi = (double(ModuleNcp-1) + 0.5)*deltaPhi;
+        double ph1 = (double(ModuleNcp-1))*deltaPhi;
 
-      dbManager->SetCurrentModuleByIndex(ModuleNcp-1);
-      int ModType = dbManager->GetModType();
-      int ModFingpattern = dbManager->TILBfingpattern(); 
+        GeoTransform* zrotMod = new GeoTransform(GeoTrf::RotateZ3D(phi*Gaudi::Units::deg));
+        zrotMod->ref();
+        GeoTransform* zrotSaddle =  new GeoTransform(GeoTrf::RotateZ3D(ph1*Gaudi::Units::deg));
+        zrotSaddle->ref();
 
-      // Debuging code for cuted modules
-      if(!(ModuleNcp>=NcpFrom && ModuleNcp<=NcpFrom+NcpPlus)) continue;
+        dbManager->SetCurrentModuleByIndex(ModuleNcp-1);
+        int ModType = dbManager->GetModType();
+        int ModFingpattern = dbManager->TILBfingpattern();
 
-      // special Modules with Cuts
-      //if(ModuleNcp<35 || ModuleNcp>62) continue; if(ModuleNcp>37 && ModuleNcp<60) continue;
+        // Debuging code for cuted modules
+        if (!(ModuleNcp>=NcpFrom && ModuleNcp<=NcpFrom+NcpPlus)) continue;
 
-      // Saddle Supports
-      //if(ModuleNcp<39 || ModuleNcp>58) continue; if(ModuleNcp>42 && ModuleNcp<55) continue;
-      
-      if(m_log->level()<=MSG::DEBUG)
-	(*m_log) << MSG::DEBUG <<" ModuleNcp= "<< ModuleNcp <<" ModType "<< ModType <<" Phi "<< phi << endmsg;
+        // special Modules with Cuts
+        //if (ModuleNcp<35 || ModuleNcp>62) continue; if (ModuleNcp>37 && ModuleNcp<60) continue;
 
-      //
-      // ------------------- BARREL BLOCKS ------------------------ 
-      //    
- 
-      if( EnvType == 1 ) { // normal barrel module or module zero 
-
-	dbManager->SetCurrentSectionByNumber(ModType);
-
-        thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm; 
-        heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-        dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-       
-        dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() 
-               - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) 
-               -  dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1));
-        
-        GeoTrd* barrelModuleMother = new GeoTrd(thicknessWedgeMother/2,
-                                                thicknessWedgeMother/2,
-                                                dy1WedgeMother,
-                                                dy2WedgeMother,
-                                                heightWedgeMother/2);
-       
-        GeoLogVol* lvBarrelModuleMother = new GeoLogVol("BarrelModule",barrelModuleMother,matAir);
-        GeoPhysVol* pvBarrelModuleMother = new GeoPhysVol(lvBarrelModuleMother);
-       
-        // Fill the section
-	if(Filling){ 
-	  sectionBuilder->fillSection(pvBarrelModuleMother, 1,
-				      dbManager->TILBrmaximal(),
-				      dbManager->TILBrminimal(),
-				      dzGlue,
-				      deltaPhi); 
-	}
-       
-        GeoTransform* xtraMod = new GeoTransform(GeoTrf::TranslateX3D(
-                                    (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm));
-
-        pvBarrelMother->add(zrotMod);
-        pvBarrelMother->add(xtraMod);
-        pvBarrelMother->add(XYrtMod);
-
-        pvBarrelMother->add(new GeoIdentifierTag(ModuleNcp));
-        pvBarrelMother->add(pvBarrelModuleMother);
-       
-        // --------------------------BARREL FINGERS MAKING---------------------------- 
-       
-	dbManager->SetCurrentTifg(1);  // Barrel finger 
-        zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2;
-
-        heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax())*Gaudi::Units::cm;
-        dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg)*Gaudi::Units::cm;
-        dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg)*Gaudi::Units::cm;
-
-	// Finger Positive, positioning (only Left ModFingpattern == 10) 
-	if ( ModFingpattern != 10 ) {
-	  GeoTrd* fingerModuleMotherPos = new GeoTrd(BFingerLengthPos/2,
-						     BFingerLengthPos/2,
-						     dy1WedgeMother,
-						     dy2WedgeMother,
-						     heightWedgeMother/2);
-	  
-	  GeoLogVol* lvFingerModuleMotherPos = new GeoLogVol("FingerModule",fingerModuleMotherPos,matAir);
-	  GeoPhysVol* pvFingerModuleMotherPos = new GeoPhysVol(lvFingerModuleMotherPos);
-
-	  if(Filling)
-	    sectionBuilder->fillFinger(pvFingerModuleMotherPos, 1,
-				       dbManager->TILErmax(),
-				       dbManager->TILBrmax(),
-				       deltaPhi,
-				       m_switches.testBeam,
-				       ModuleNcp,
-				       BFingerLengthPos*(1./Gaudi::Units::cm)); 
-
-	  GeoTransform* xtraModFingerPos  = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
-
-          //(*m_log) << MSG::DEBUG << "R  Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg;
- 
-          pvFingerMotherPos->add(zrotMod);
-          pvFingerMotherPos->add(xtraModFingerPos);
-          pvFingerMotherPos->add(XYrtMod);
-
-          pvFingerMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-          pvFingerMotherPos->add(pvFingerModuleMotherPos);
-	} 
-       
-        // Finger Negative, positioning (only Left ModFingpattern == 01) 
-        if ( ModFingpattern != 1 ) {
-
-	  GeoTrd* fingerModuleMotherNeg = new GeoTrd(BFingerLengthNeg/2,
-						     BFingerLengthNeg/2,
-						     dy1WedgeMother,
-						     dy2WedgeMother,
-						     heightWedgeMother/2);
-	  
-	  GeoLogVol* lvFingerModuleMotherNeg = new GeoLogVol("FingerModule",fingerModuleMotherNeg,matAir);
-	  GeoPhysVol* pvFingerModuleMotherNeg = new GeoPhysVol(lvFingerModuleMotherNeg);
-
-	  if(Filling)
-	    sectionBuilder->fillFinger(pvFingerModuleMotherNeg, 1,
-				       dbManager->TILErmax(),
-				       dbManager->TILBrmax(),
-				       deltaPhi,
-				       m_switches.testBeam,
-				       ModuleNcp*100,
-				       BFingerLengthNeg*(1./Gaudi::Units::cm));
-
-	  GeoTransform* xtraModFingerNeg  = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
-
-          // (*m_log) << MSG::DEBUG << "L  Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg;
-
-          pvFingerMotherNeg->add(zrotMod);
-          pvFingerMotherNeg->add(xtraModFingerNeg);
-          pvFingerMotherNeg->add(yrotMod);
-
-          pvFingerMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-          pvFingerMotherNeg->add(pvFingerModuleMotherNeg);
-        }
-       
-        // --------------------------BARREL SADDLE MAKING----------------------------
-        if (dbManager->BoolSaddle())
-        { if ( (ModuleNcp >=40 && ModuleNcp <=41) || (ModuleNcp >=56 && ModuleNcp <=57) )
-	  { 
-            GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle,
-                                                BFingerRmin,
-                                                DzSaddleSupport/2,
-                                                0.,deltaPhi*Gaudi::Units::deg);
-     
-            GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron);
-            GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule);
-       
-            pvSaddleMotherPos->add(zrotSaddle);
-            pvSaddleMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-            pvSaddleMotherPos->add(pvSaddleModule); 
-
-            pvSaddleMotherNeg->add(zrotSaddle);
-            pvSaddleMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-            pvSaddleMotherNeg->add(pvSaddleModule); 
+        // Saddle Supports
+        //if (ModuleNcp<39 || ModuleNcp>58) continue; if (ModuleNcp>42 && ModuleNcp<55) continue;
+
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG <<" ModuleNcp= "<< ModuleNcp <<" ModType "<< ModType <<" Phi "<< phi << endmsg;
+
+        //
+        // ------------------- BARREL BLOCKS ------------------------
+        //
+
+        if ( EnvType == 1 ) { // normal barrel module or module zero
+
+          dbManager->SetCurrentSectionByNumber(ModType);
+
+          thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
+          heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+          dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+          dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+          dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2()
+                    - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac())
+                       -  dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1));
+
+          GeoTrd* barrelModuleMother = new GeoTrd(thicknessWedgeMother/2,
+                                                  thicknessWedgeMother/2,
+                                                  dy1WedgeMother,
+                                                  dy2WedgeMother,
+                                                  heightWedgeMother/2);
+
+          GeoLogVol* lvBarrelModuleMother = new GeoLogVol("BarrelModule",barrelModuleMother,matAir);
+          GeoPhysVol* pvBarrelModuleMother = new GeoPhysVol(lvBarrelModuleMother);
+
+          // Fill the section
+          if (Filling) {
+            sectionBuilder->fillSection(pvBarrelModuleMother, 1,
+                                        dbManager->TILBrmaximal(),
+                                        dbManager->TILBrminimal(),
+                                        dzGlue,
+                                        deltaPhi);
           }
-         }
-      }
 
-      //------------------- Extended Barrel Module Positive ----------------------------------------------------------
+          GeoTransform* xtraMod = new GeoTransform(GeoTrf::TranslateX3D(
+                                                       (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm));
 
-      if (EnvType == 3) {
+          pvBarrelMother->add(zrotMod);
+          pvBarrelMother->add(xtraMod);
+          pvBarrelMother->add(XYrtMod);
 
-	dbManager->SetCurrentSectionByNumber(ModType);
+          pvBarrelMother->add(new GeoIdentifierTag(ModuleNcp));
+          pvBarrelMother->add(pvBarrelModuleMother);
 
-        // Mother module 
-        thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
-        heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-        dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
-        dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() 
-                - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*
-                  dbManager->TILBnperiod());
-        
-        double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm;
+          // --------------------------BARREL FINGERS MAKING----------------------------
 
-        checking("EBarrelModule (+)", false, 1, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+          dbManager->SetCurrentTifg(1);  // Barrel finger
+          zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2;
 
-        GeoTrd* ebarrelModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
-                                                    thicknessWedgeMother/2,
-                                                    dy1WedgeMother,
-                                                    dy2WedgeMother,
-                                                    heightWedgeMother/2);
+          heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax())*Gaudi::Units::cm;
+          dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg)*Gaudi::Units::cm;
+          dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg)*Gaudi::Units::cm;
+
+          // Finger Positive, positioning (only Left ModFingpattern == 10)
+          if ( ModFingpattern != 10 ) {
+            GeoTrd* fingerModuleMotherPos = new GeoTrd(BFingerLengthPos/2,
+                                                       BFingerLengthPos/2,
+                                                       dy1WedgeMother,
+                                                       dy2WedgeMother,
+                                                       heightWedgeMother/2);
+
+            GeoLogVol* lvFingerModuleMotherPos = new GeoLogVol("FingerModule",fingerModuleMotherPos,matAir);
+            GeoPhysVol* pvFingerModuleMotherPos = new GeoPhysVol(lvFingerModuleMotherPos);
+
+            if (Filling)
+              sectionBuilder->fillFinger(pvFingerModuleMotherPos, 1,
+                                         dbManager->TILErmax(),
+                                         dbManager->TILBrmax(),
+                                         deltaPhi,
+                                         m_switches.testBeam,
+                                         ModuleNcp,
+                                         BFingerLengthPos*(1./Gaudi::Units::cm));
+
+            GeoTransform* xtraModFingerPos  = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
+
+            //(*m_log) << MSG::DEBUG << "R  Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg;
+
+            pvFingerMotherPos->add(zrotMod);
+            pvFingerMotherPos->add(xtraModFingerPos);
+            pvFingerMotherPos->add(XYrtMod);
+
+            pvFingerMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+            pvFingerMotherPos->add(pvFingerModuleMotherPos);
+          }
+
+          // Finger Negative, positioning (only Left ModFingpattern == 01)
+          if ( ModFingpattern != 1 ) {
+
+            GeoTrd* fingerModuleMotherNeg = new GeoTrd(BFingerLengthNeg/2,
+                                                       BFingerLengthNeg/2,
+                                                       dy1WedgeMother,
+                                                       dy2WedgeMother,
+                                                       heightWedgeMother/2);
+
+            GeoLogVol* lvFingerModuleMotherNeg = new GeoLogVol("FingerModule",fingerModuleMotherNeg,matAir);
+            GeoPhysVol* pvFingerModuleMotherNeg = new GeoPhysVol(lvFingerModuleMotherNeg);
+
+            if (Filling)
+              sectionBuilder->fillFinger(pvFingerModuleMotherNeg, 1,
+                                         dbManager->TILErmax(),
+                                         dbManager->TILBrmax(),
+                                         deltaPhi,
+                                         m_switches.testBeam,
+                                         ModuleNcp*100,
+                                         BFingerLengthNeg*(1./Gaudi::Units::cm));
+
+            GeoTransform* xtraModFingerNeg  = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
+
+            // (*m_log) << MSG::DEBUG << "L  Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg;
 
-        if (!dbManager->BoolCuts())
-	 { 
-	   if(m_log->level()<=MSG::DEBUG)
-	     (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
+            pvFingerMotherNeg->add(zrotMod);
+            pvFingerMotherNeg->add(xtraModFingerNeg);
+            pvFingerMotherNeg->add(yrotMod);
 
-           lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",ebarrelModuleMotherPos,matAir);
-           pvEBarrelModuleMotherPos = new GeoPhysVol(lvEBarrelModuleMotherPos);
+            pvFingerMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+            pvFingerMotherNeg->add(pvFingerModuleMotherNeg);
+          }
+
+          // --------------------------BARREL SADDLE MAKING----------------------------
+          if (dbManager->BoolSaddle()) {
+            if ( (ModuleNcp >=40 && ModuleNcp <=41) || (ModuleNcp >=56 && ModuleNcp <=57) ) {
+              GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle,
+                                                  BFingerRmin,
+                                                  DzSaddleSupport/2,
+                                                  0.,deltaPhi*Gaudi::Units::deg);
+
+              GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron);
+              GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule);
+
+              pvSaddleMotherPos->add(zrotSaddle);
+              pvSaddleMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+              pvSaddleMotherPos->add(pvSaddleModule);
+
+              pvSaddleMotherNeg->add(zrotSaddle);
+              pvSaddleMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+              pvSaddleMotherNeg->add(pvSaddleModule);
+            }
+          }
+        }
 
-         } else {
+        //------------------- Extended Barrel Module Positive ----------------------------------------------------------
 
-           //gdb
-	  if(m_log->level()<=MSG::DEBUG)
-	    (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
- 
-           double PoZ2 =0, PoZ1 =0, thicknessEndPlate =dbManager->TILBdzend1()*Gaudi::Units::cm;
+        if (EnvType == 3) {
 
-           PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2;
-           PoZ2 = PoZ1 + modl_length/4;
+          dbManager->SetCurrentSectionByNumber(ModType);
 
-           if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62))
-	    { GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
-                                        * GeoTrf::Translate3D(-PoZ2,0.,-PosY);
- 
-              if (ModuleNcp>=60 && ModuleNcp<=62)
-	       { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
-                                          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
-                                          * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut);
+          // Mother module
+          thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
+          heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+          dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+          dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
 
-                 // Cuting of module (Left)
-                 const GeoShape& TmL_EBarrelModuleMotherPos = ebarrelModuleMotherPos->subtract((*CutA)<<TransCut2).
-                                                                                      subtract((*CutB)<<TransCutL);
+          dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2()
+                    - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))
+              / (4.* dbManager->TILBnperiod());
 
-                 lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",&TmL_EBarrelModuleMotherPos,matAir);
+          double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm;
+
+          checking("EBarrelModule (+)", false, 1,
+                   thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+          GeoTrd* ebarrelModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
+                                                      thicknessWedgeMother/2,
+                                                      dy1WedgeMother,
+                                                      dy2WedgeMother,
+                                                      heightWedgeMother/2);
 
-               } else if (ModuleNcp>=35 && ModuleNcp<=37) 
-	       { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
-                                          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
-                                          * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
+          if (!dbManager->BoolCuts()) {
+            if (m_log->level()<=MSG::DEBUG)
+              (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
 
-                 // Cuting of module (Right)
-                 const GeoShape& TmR_EBarrelModuleMotherPos = ebarrelModuleMotherPos->subtract((*CutA)<<TransCut2).
-                                                                                      subtract((*CutB)<<TransCutR);
+            lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",ebarrelModuleMotherPos,matAir);
+            pvEBarrelModuleMotherPos = new GeoPhysVol(lvEBarrelModuleMotherPos);
 
-                 lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",&TmR_EBarrelModuleMotherPos,matAir);
-	       }
+          } else {
+
+            //gdb
+            if (m_log->level()<=MSG::DEBUG)
+              (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
+
+            double PoZ2 =0, PoZ1 =0, thicknessEndPlate =dbManager->TILBdzend1()*Gaudi::Units::cm;
+
+            PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2;
+            PoZ2 = PoZ1 + modl_length/4;
+
+            if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) {
+              GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
+                  * GeoTrf::Translate3D(-PoZ2,0.,-PosY);
+
+              if (ModuleNcp>=60 && ModuleNcp<=62) {
+                GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut);
+
+                // Cuting of module (Left)
+                const GeoShape& TmL_EBarrelModuleMotherPos = ebarrelModuleMotherPos->subtract((*CutA)<<TransCut2).
+                    subtract((*CutB)<<TransCutL);
+
+                lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",&TmL_EBarrelModuleMotherPos,matAir);
+
+              } else if (ModuleNcp>=35 && ModuleNcp<=37) {
+                GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
+
+                // Cuting of module (Right)
+                const GeoShape& TmR_EBarrelModuleMotherPos = ebarrelModuleMotherPos->subtract((*CutA)<<TransCut2).
+                    subtract((*CutB)<<TransCutR);
+
+                lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",&TmR_EBarrelModuleMotherPos,matAir);
+              }
 
               pvEBarrelModuleMotherPos = new GeoPhysVol(lvEBarrelModuleMotherPos);
 
-	    } else {
+            } else {
               lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",ebarrelModuleMotherPos,matAir);
               pvEBarrelModuleMotherPos = new GeoPhysVol(lvEBarrelModuleMotherPos);
             } // end special modules
-	 } // end if, BoolCuts()
-
-        // Fill the section
-        if(Filling){
-	  sectionBuilder->fillSection(pvEBarrelModuleMotherPos, 2,
-                                      dbManager->TILBrmaximal(),
-                                      dbManager->TILBrminimal(),
-                                      dzGlue,
-                                      deltaPhi,
-                                      ModuleNcp);
-	}
-
-        GeoTransform* xtraModPos = new GeoTransform(GeoTrf::TranslateX3D(Radius));
-
-        pvEBarrelMotherPos->add(zrotMod);
-        pvEBarrelMotherPos->add(xtraModPos);
-        pvEBarrelMotherPos->add(XYrtMod);
-
-        pvEBarrelMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-        pvEBarrelMotherPos->add(pvEBarrelModuleMotherPos);
-
-        /*
-        if (!dbManager->BoolCuts())
-	 { pvEBarrelMotherPos->add(pvEBarrelModuleMotherPos);
-           (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
-
-         } else {
-
-           (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
- 
-           double PoZ2 =0, PoZ1 =0;
-           double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
-
-           PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2;
-           PoZ2 = modl_length/4 + PoZ1;
-
-           if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62))
-	    { GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
-                                        * GeoTrf::Translate3D(-PoZ2,0.,-PosY);
- 
-              // Cuting of pvEBarrelModuleMotherPos (-)
-              GeoCutVolAction action1(*CutA, TransCut2);
-              pvEBarrelModuleMotherPos->apply(&action1);
-              pvTmp_EBarrelModuleMotherPos = action1.getPV();
-              pvEBarrelModuleMotherPos->unref(); // Cleaning useless volume
-
-              if (ModuleNcp>=60 && ModuleNcp<=62)
-	       { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
-                                          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
-                                          * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut);
-
-                 // Cuting of pvEBarrelModuleMotherPos (Left)
-                 GeoCutVolAction action2(*CutB, TransCutL);
-                 pvTmp_EBarrelModuleMotherPos->apply(&action2);
-                 pvTmL_EBarrelModuleMotherPos = action2.getPV();
-                 pvTmp_EBarrelModuleMotherPos->unref();// Cleaning useless volume
-
-                 pvEBarrelMotherPos->add(pvTmL_EBarrelModuleMotherPos);
-
-               } else if (ModuleNcp>=35 && ModuleNcp<=37) 
-	       { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
-                                          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
-                                          * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
-
-                 // Cuting of pvEBarrelModuleMotherPos (Right)
-                 GeoCutVolAction action3(*CutB, TransCutR);
-                 pvTmp_EBarrelModuleMotherPos->apply(&action3);
-                 pvTmR_EBarrelModuleMotherPos = action3.getPV();
-                 pvTmp_EBarrelModuleMotherPos->unref();// Cleaning useless volume
- 
-                 pvEBarrelMotherPos->add(pvTmR_EBarrelModuleMotherPos);
-	       }
-	    } 	
-            else  
-            { pvEBarrelMotherPos->add(pvEBarrelModuleMotherPos);
-            } // end special modules
+          } // end if, BoolCuts()
+
+          // Fill the section
+          if (Filling) {
+            sectionBuilder->fillSection(pvEBarrelModuleMotherPos, 2,
+                                        dbManager->TILBrmaximal(),
+                                        dbManager->TILBrminimal(),
+                                        dzGlue,
+                                        deltaPhi,
+                                        ModuleNcp);
+          }
+
+          GeoTransform* xtraModPos = new GeoTransform(GeoTrf::TranslateX3D(Radius));
+
+          pvEBarrelMotherPos->add(zrotMod);
+          pvEBarrelMotherPos->add(xtraModPos);
+          pvEBarrelMotherPos->add(XYrtMod);
+
+          pvEBarrelMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+          pvEBarrelMotherPos->add(pvEBarrelModuleMotherPos);
+
+          /*
+            if (!dbManager->BoolCuts()) {
               pvEBarrelMotherPos->add(pvEBarrelModuleMotherPos);
-         } // end if, BoolCuts()
-	*/  
-
-        //--------------------------EBARREL FINGERS MAKING------------------------------
-  
-        dbManager->SetCurrentTifg(2);  //barrel efinger (small)
-        
-        // Trd - one finger mother
-        thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm;
-        heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
-        dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
-        checking("EFingerModule (+)", false,  1, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-        GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2,
-                                                 thicknessWedgeMother/2,
-                                                 dy1WedgeMother,
-                                                 dy2WedgeMother,
-                                                 heightWedgeMother/2);
-        
-        GeoLogVol* lvEFingerModuleMother = new GeoLogVol("EFingerModule",efingerModuleMother,matAir);
-        GeoPhysVol* pvEFingerModuleMother = new GeoPhysVol(lvEFingerModuleMother);
-        
-        // Fill the section
-        if (Filling)
-         { sectionBuilder->fillFinger(pvEFingerModuleMother, 2,
-                                      dbManager->TILErmax(),
-                                      dbManager->TILBrmax(),
-                                      deltaPhi,
-                                      m_switches.testBeam,
-                                      ModuleNcp);
-	 }
-        GeoTransform* xtraModFingerPos  = new GeoTransform(GeoTrf::TranslateX3D(
-                                              (dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
-        pvEFingerMotherPos->add(zrotMod);
-        pvEFingerMotherPos->add(xtraModFingerPos);
-        pvEFingerMotherPos->add(XYrtMod);
-
-        pvEFingerMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-        pvEFingerMotherPos->add(pvEFingerModuleMother);
-
-        // --------------------------BARREL SADDLE MAKING----------------------------
-        if (dbManager->BoolSaddle())
-        { if ( (ModuleNcp >=39 && ModuleNcp <=42) || (ModuleNcp >=55 && ModuleNcp <=58) )
-	  { 
-            GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle,
-                                                BFingerRmin,
-                                                DzSaddleSupport/2,
-                                                0.,deltaPhi*Gaudi::Units::deg);
-     
-            GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron);
-            GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule);
-
-            pvESaddleMotherPos->add(zrotSaddle);
-            pvESaddleMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-            pvESaddleMotherPos->add(pvSaddleModule); 
+              (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
+
+            } else {
+
+              (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
+
+              double PoZ2 =0, PoZ1 =0;
+              double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
+
+              PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2;
+              PoZ2 = modl_length/4 + PoZ1;
+
+              if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) {
+                GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
+                  * GeoTrf::Translate3D(-PoZ2,0.,-PosY);
+
+                // Cuting of pvEBarrelModuleMotherPos (-)
+                GeoCutVolAction action1(*CutA, TransCut2);
+                pvEBarrelModuleMotherPos->apply(&action1);
+                pvTmp_EBarrelModuleMotherPos = action1.getPV();
+                pvEBarrelModuleMotherPos->unref(); // Cleaning useless volume
+
+                if (ModuleNcp>=60 && ModuleNcp<=62) {
+                  GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut);
+
+                  // Cuting of pvEBarrelModuleMotherPos (Left)
+                  GeoCutVolAction action2(*CutB, TransCutL);
+                  pvTmp_EBarrelModuleMotherPos->apply(&action2);
+                  pvTmL_EBarrelModuleMotherPos = action2.getPV();
+                  pvTmp_EBarrelModuleMotherPos->unref();// Cleaning useless volume
+
+                  pvEBarrelMotherPos->add(pvTmL_EBarrelModuleMotherPos);
+
+                } else if (ModuleNcp>=35 && ModuleNcp<=37) {
+                  GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
+
+                  // Cuting of pvEBarrelModuleMotherPos (Right)
+                  GeoCutVolAction action3(*CutB, TransCutR);
+                  pvTmp_EBarrelModuleMotherPos->apply(&action3);
+                  pvTmR_EBarrelModuleMotherPos = action3.getPV();
+                  pvTmp_EBarrelModuleMotherPos->unref();// Cleaning useless volume
+
+                  pvEBarrelMotherPos->add(pvTmR_EBarrelModuleMotherPos);
+                }
+              } else {
+                pvEBarrelMotherPos->add(pvEBarrelModuleMotherPos);
+              } // end special modules
+              pvEBarrelMotherPos->add(pvEBarrelModuleMotherPos);
+            } // end if, BoolCuts()
+          */
+
+          //--------------------------EBARREL FINGERS MAKING------------------------------
+
+          dbManager->SetCurrentTifg(2);  //barrel efinger (small)
+
+          // Trd - one finger mother
+          thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm;
+          heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
+          dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+          dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+          checking("EFingerModule (+)", false,  1,
+                   thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+          GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2,
+                                                   thicknessWedgeMother/2,
+                                                   dy1WedgeMother,
+                                                   dy2WedgeMother,
+                                                   heightWedgeMother/2);
+
+          GeoLogVol* lvEFingerModuleMother = new GeoLogVol("EFingerModule",efingerModuleMother,matAir);
+          GeoPhysVol* pvEFingerModuleMother = new GeoPhysVol(lvEFingerModuleMother);
+
+          // Fill the section
+          if (Filling) {
+            sectionBuilder->fillFinger(pvEFingerModuleMother, 2,
+                                       dbManager->TILErmax(),
+                                       dbManager->TILBrmax(),
+                                       deltaPhi,
+                                       m_switches.testBeam,
+                                       ModuleNcp);
           }
-         }
-
-      } // end if (EnvType == 3)
-      
-      //------------------- Extended Barrel Module Negative ----------------------------------------------------------
- 
-      if (EnvType == 2) {
-
-	dbManager->SetCurrentSectionByNumber(ModType);
-
-        // Mother module
-        thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
-        heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-        dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
-        dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() 
-                - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() 
-                + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
-  
-        double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm;
-
-        checking("EBarrelModule (-)", false, 1, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-        GeoTrd* ebarrelModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
-                                                    thicknessWedgeMother/2,
-                                                    dy1WedgeMother,
-                                                    dy2WedgeMother,
-                                                    heightWedgeMother/2);
-        
-         if (!dbManager->BoolCuts())
-	 { 
-	   if(m_log->level()<=MSG::DEBUG)
-	     (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
-
-           lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",ebarrelModuleMotherNeg,matAir);
-           pvEBarrelModuleMotherNeg = new GeoPhysVol(lvEBarrelModuleMotherNeg);
-
-         } else {
-
-           //gdb
-	   if(m_log->level()<=MSG::DEBUG)
-	     (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
- 
-           double PoZ2 =0, PoZ1 =0, thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
-
-           PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2;
-           PoZ2 = PoZ1 + modl_length/4;
-
-           if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62))
-	    { GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius) 
-                                        * GeoTrf::RotateX3D((phi-90)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
-                                        * GeoTrf::Translate3D(-PoZ2,0,-PosY);
- 
-              if (ModuleNcp>=60 && ModuleNcp<=62)
-	       { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
-                                          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
-                                          * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut);
-
-                 // Cuting of module (Left)
-                 const GeoShape& TmL_EBarrelModuleMotherNeg = ebarrelModuleMotherNeg->subtract((*CutA)<<TransCut2).
-                                                                                      subtract((*CutB)<<TransCutL);
-
-                 lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",&TmL_EBarrelModuleMotherNeg,matAir);
-
-               } else if (ModuleNcp>=35 && ModuleNcp<=37)
-	       { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
-                                          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
-                                          * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
-
-                 // Cuting of module (Right)
-                 const GeoShape& TmR_EBarrelModuleMotherNeg = ebarrelModuleMotherNeg->subtract((*CutA)<<TransCut2).
-                                                                                      subtract((*CutB)<<TransCutR);
-
-                 lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",&TmR_EBarrelModuleMotherNeg,matAir);
-	       }
+          GeoTransform* xtraModFingerPos  = new GeoTransform(GeoTrf::TranslateX3D(
+                                                                 (dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
+          pvEFingerMotherPos->add(zrotMod);
+          pvEFingerMotherPos->add(xtraModFingerPos);
+          pvEFingerMotherPos->add(XYrtMod);
+
+          pvEFingerMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+          pvEFingerMotherPos->add(pvEFingerModuleMother);
+
+          // --------------------------BARREL SADDLE MAKING----------------------------
+          if (dbManager->BoolSaddle()) {
+            if ( (ModuleNcp >=39 && ModuleNcp <=42) || (ModuleNcp >=55 && ModuleNcp <=58) ) {
+              GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle,
+                                                  BFingerRmin,
+                                                  DzSaddleSupport/2,
+                                                  0.,deltaPhi*Gaudi::Units::deg);
+
+              GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron);
+              GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule);
+
+              pvESaddleMotherPos->add(zrotSaddle);
+              pvESaddleMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+              pvESaddleMotherPos->add(pvSaddleModule);
+            }
+          }
+
+        } // end if (EnvType == 3)
+
+        //------------------- Extended Barrel Module Negative ----------------------------------------------------------
+
+        if (EnvType == 2) {
+
+          dbManager->SetCurrentSectionByNumber(ModType);
+
+          // Mother module
+          thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
+          heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+          dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+          dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+          dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2()
+                    - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast()
+                                                   + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
+
+          double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * Gaudi::Units::cm;
+
+          checking("EBarrelModule (-)", false, 1,
+                   thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+          GeoTrd* ebarrelModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
+                                                      thicknessWedgeMother/2,
+                                                      dy1WedgeMother,
+                                                      dy2WedgeMother,
+                                                      heightWedgeMother/2);
+
+          if (!dbManager->BoolCuts()) {
+            if (m_log->level()<=MSG::DEBUG)
+              (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
+
+            lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",ebarrelModuleMotherNeg,matAir);
+            pvEBarrelModuleMotherNeg = new GeoPhysVol(lvEBarrelModuleMotherNeg);
+
+          } else {
+
+            //gdb
+            if (m_log->level()<=MSG::DEBUG)
+              (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
+
+            double PoZ2 =0, PoZ1 =0, thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
+
+            PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthNeg)/2;
+            PoZ2 = PoZ1 + modl_length/4;
+
+            if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) {
+              GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius)
+                  * GeoTrf::RotateX3D((phi-90)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
+                  * GeoTrf::Translate3D(-PoZ2,0,-PosY);
+
+              if (ModuleNcp>=60 && ModuleNcp<=62) {
+                GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut);
+
+                // Cuting of module (Left)
+                const GeoShape& TmL_EBarrelModuleMotherNeg = ebarrelModuleMotherNeg->subtract((*CutA)<<TransCut2).
+                    subtract((*CutB)<<TransCutL);
+
+                lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",&TmL_EBarrelModuleMotherNeg,matAir);
+
+              } else if (ModuleNcp>=35 && ModuleNcp<=37) {
+                GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
+
+                // Cuting of module (Right)
+                const GeoShape& TmR_EBarrelModuleMotherNeg = ebarrelModuleMotherNeg->subtract((*CutA)<<TransCut2).
+                    subtract((*CutB)<<TransCutR);
+
+                lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",&TmR_EBarrelModuleMotherNeg,matAir);
+              }
 
               pvEBarrelModuleMotherNeg = new GeoPhysVol(lvEBarrelModuleMotherNeg);
 
-	    } else {
+            } else {
               lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",ebarrelModuleMotherNeg,matAir);
               pvEBarrelModuleMotherNeg = new GeoPhysVol(lvEBarrelModuleMotherNeg);
             } // end special modules
-	 } // end if, BoolCuts()
-
-        // Fill the section
-        if (Filling)
-         {sectionBuilder->fillSection(pvEBarrelModuleMotherNeg, 2,
-                                      dbManager->TILBrmaximal(),
-                                      dbManager->TILBrminimal(),
-                                      dzGlue,
-                                      deltaPhi,
-                                      ModuleNcp,
-				      0.,true);
-         }
-
-        GeoTransform* xtraModNeg = new GeoTransform(GeoTrf::TranslateX3D(Radius));
-
-        pvEBarrelMotherNeg->add(zrotMod);
-        pvEBarrelMotherNeg->add(xtraModNeg);
-        pvEBarrelMotherNeg->add(yrotMod);
-
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-        pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
-
-        /*
-        if (!dbManager->BoolCuts()) 
-         { pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
-           (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
-
-         } else {
-           (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
-
-           double PoZ2 =0, PoZ1 =0;
-           double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
-
-           PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2;
-           PoZ2 = modl_length/4 + PoZ1;
-
-          if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62))
-	   { GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius) 
-                                       * GeoTrf::RotateX3D((phi-90)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)   
-                                       * GeoTrf::Translate3D(-PoZ2,0.,-PosY);
-
-             // Cuting of pvEBarrelModuleMotherNeg (-)
-             GeoCutVolAction action1(*CutA, TransCut2);
-             pvEBarrelModuleMotherNeg->apply(&action1);
-             pvTmp_EBarrelModuleMotherNeg = action1.getPV();
-             pvEBarrelModuleMotherNeg->unref(); // Cleaning useless volume
-
-             if (ModuleNcp>=60 && ModuleNcp<=62)
-	      { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
-                                         * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
-                                         * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut);
-
-                // Cuting of pvEBarrelModuleMotherNeg (Left)
-                GeoCutVolAction action2(*CutB, TransCutL);
-                pvTmp_EBarrelModuleMotherNeg->apply(&action2);
-                pvTmL_EBarrelModuleMotherNeg = action2.getPV();
-                pvTmp_EBarrelModuleMotherNeg->unref();// Cleaning useless volume
-
-                pvEBarrelMotherNeg->add(pvTmL_EBarrelModuleMotherNeg);
-
-              } else if (ModuleNcp>=35 && ModuleNcp<=37) 
-	      { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
-                                         * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
-                                         * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
-
-                // Cuting of pvEBarrelModuleMotherNeg (Right)
-                GeoCutVolAction action3(*CutB, TransCutR);
-                pvTmp_EBarrelModuleMotherNeg->apply(&action3);
-                pvTmR_EBarrelModuleMotherNeg = action3.getPV();
-                pvTmp_EBarrelModuleMotherNeg->unref();// Cleaning useless volume
-
-                pvEBarrelMotherNeg->add(pvTmR_EBarrelModuleMotherNeg);
-              }
-	   } else  
-           { pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
-           } // end special modules
-             pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
-	} // end if, BoolCuts()
-        */
-
-        //--------------------------EBARREL FINGERS MAKING------------------------------
-        
-        dbManager->SetCurrentTifg(2);  //barrel efinger (small)
-        
-        //zEndSection = extOffset + dbManager->TILBdzmodul()/2 + dbManager->TILEzshift();
-
-        // Trd - one finger mother
-        thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm;
-        heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
-        dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
-        checking("EFingerModule (-)", false, 1, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-        GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2,
-                                                 thicknessWedgeMother/2,
-                                                 dy1WedgeMother,
-                                                 dy2WedgeMother,
-                                                 heightWedgeMother/2);
-        
-        GeoLogVol* lvEFingerModuleMother = new GeoLogVol("EFingerModule",efingerModuleMother,matAir);
-        GeoPhysVol* pvEFingerModuleMother = new GeoPhysVol(lvEFingerModuleMother);
-        
-        // Fill the section
-        if (Filling)
-         { sectionBuilder->fillFinger(pvEFingerModuleMother, 2,
-                                      dbManager->TILErmax(),
-                                      dbManager->TILBrmax(),
-                                      deltaPhi,
-                                      m_switches.testBeam,
-                                      ModuleNcp*100);
-         }
-        GeoTransform* xtraModFingerNeg  = new GeoTransform(GeoTrf::TranslateX3D(
-                                              (dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
-        pvEFingerMotherNeg->add(zrotMod);
-        pvEFingerMotherNeg->add(xtraModFingerNeg); 
-        pvEFingerMotherNeg->add(yrotMod);
-
-        pvEFingerMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-        pvEFingerMotherNeg->add(pvEFingerModuleMother);
-
-        // --------------------------BARREL SADDLE MAKING----------------------------
-        if (dbManager->BoolSaddle())
-        { if ( (ModuleNcp >=39 && ModuleNcp <=42) || (ModuleNcp >=55 && ModuleNcp <=58) )
-	  { 
-            GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle,
-                                                BFingerRmin,
-                                                DzSaddleSupport/2,
-                                                0.,deltaPhi*Gaudi::Units::deg);
-     
-            GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron);
-            GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule);
-
-            pvESaddleMotherNeg->add(zrotSaddle);
-            pvESaddleMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-            pvESaddleMotherNeg->add(pvSaddleModule); 
+          } // end if, BoolCuts()
+
+          // Fill the section
+          if (Filling) {
+            sectionBuilder->fillSection(pvEBarrelModuleMotherNeg, 2,
+                                        dbManager->TILBrmaximal(),
+                                        dbManager->TILBrminimal(),
+                                        dzGlue,
+                                        deltaPhi,
+                                        ModuleNcp,
+                                        0.,true);
           }
-         }
-
-      } // end if (EnvType == 2)
-
-      //------------------- D4/C10/Gap/Crack
-
-      if((EnvType == 4) || (EnvType == 5)){
-
-        int Id4 = ModType%100;
-        int Ic10 = (ModType/100)%100;
-        int Igap = (ModType/10000)%100;
-        int Icrack = (ModType/1000000)%100;
-
-        bool Ifd4    = ( Id4 != 0);
-        bool Ifc10   = ( Ic10 != 0);
-        bool Ifgap   = ( Igap != 0);
-        bool Ifcrack = ( Icrack != 0);
-
-	bool Ifspecialgirder = (Id4 == 7);
-
-	if(m_log->level()<=MSG::DEBUG)
-	  (*m_log) << MSG::DEBUG <<" ITC : EnvType "<<EnvType<<" Size = "<<dbManager->GetModTypeSize()
-		   <<" Ncp= "<<ModuleNcp<<"  D4 "<<Id4<<" specialflag = "<<Ifspecialgirder<<" C10 "<<Ic10<<" Gap "<<Igap<<" Crack "<<Icrack
-		   << endmsg;
-
-        if (Ifc10) 
-         { dbManager->SetCurrentSectionByNumber(Ic10); // TILE_PLUG2
-           rMinITC2 = dbManager->TILBrminimal();
-           rMaxITC2 = dbManager->TILBrmaximal();
-           dzITC2   = dbManager->TILBdzmodul();
-         } else { 
-	   if(m_log->level()<=MSG::DEBUG)
-	     (*m_log) << MSG::DEBUG <<" C10 unavailable "<<endmsg;
-         }
-
-        if (Ifd4) 
-         { dbManager->SetCurrentSectionByNumber(Id4); // TILE_PLUG1
-           rMinITC1 = dbManager->TILBrminimal();
-           rMaxITC1 = dbManager->TILBrmaximal();
-           dzITC1   = dbManager->TILBdzmodul();
-	   if (Ifspecialgirder) {
-             if(m_log->level()<=MSG::DEBUG)
-               (*m_log) << MSG::DEBUG <<" dzITC1 changed from "<<dzITC1<<" to "<<dbManager->TILBdzgir()<<endmsg;
-	     dzITC1 = dbManager->TILBdzgir();
-           }
-         } else
-         { (*m_log) << MSG::INFO <<" D4 unavailable "<<endmsg;
-	   dzITC1 = 9.485; //sb [Gaudi::Units::cm]
-         }
-
-        bool specialC10 = (Ifd4 && Ifc10 && rMaxITC2 < rMinITC1);
-        if (specialC10) {
-          rMaxITC2 = rMinITC1; // for special C10 make outer radius equal to inner radius of D4
-        }
-        
-        //------------------- ITC BLOCKS Negative --------------------------------    
-	if (EnvType == 4) {
 
-          // Common mother for ITC1/2 modules
-          if (Ifd4 || Ifc10) {
+          GeoTransform* xtraModNeg = new GeoTransform(GeoTrf::TranslateX3D(Radius));
 
-            //  The first sub shape
-            thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
-            heightWedgeMother = (rMaxITC1 - rMinITC1) * Gaudi::Units::cm;
-            dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-            dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+          pvEBarrelMotherNeg->add(zrotMod);
+          pvEBarrelMotherNeg->add(xtraModNeg);
+          pvEBarrelMotherNeg->add(yrotMod);
 
-            checking("ITCModule tcModuleSub1Neg (-) ", false, 1, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+          pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
 
-            GeoTrd* itcModuleSub1Neg = new GeoTrd(thicknessWedgeMother/2,
-  	                                          thicknessWedgeMother/2,
-                                                  dy1WedgeMother,
-                                                  dy2WedgeMother,
-                                                  heightWedgeMother/2);
-            // The second sub shape
-            thicknessWedgeMother = dzITC2 * Gaudi::Units::cm;
-            heightWedgeMother    = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm;
-            dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-            dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+          /*
+            if (!dbManager->BoolCuts()) {
+              pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
+              (*m_log) << MSG::DEBUG << " BoolCuts NO "<< dbManager->BoolCuts() << endmsg;
 
-            checking("ITCModule itcModuleSub2Neg (-)", false, 1, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+            } else {
+              (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg;
 
-            GeoTrd* itcModuleSub2Neg = new GeoTrd(thicknessWedgeMother/2,
-	                                          thicknessWedgeMother/2,
-                                                  dy1WedgeMother,
-                                                  dy2WedgeMother,
-                                                  heightWedgeMother/2 );
-
-            X = (dzITC1 - dzITC2)/2*Gaudi::Units::cm; 
-            Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*Gaudi::Units::cm;
-	    if(m_log->level()<=MSG::DEBUG)
-	      (*m_log) << MSG::DEBUG <<"  ITCModule Negative, position X= "<<X<<" Z= "<<Z<< endmsg;
-
-            GeoTrf::Translate3D itcModule_SubShiftNeg(X, 0., Z);
-            const GeoShapeUnion& itcModuleMotherNeg = itcModuleSub1Neg->add(*itcModuleSub2Neg<<itcModule_SubShiftNeg);
-
-            GeoTrf::Translate3D itcModuleSubShiftNeg(X, 0., Z);
-
-            GeoLogVol* lvITCModuleMotherNeg = new GeoLogVol("ITCModule",&itcModuleMotherNeg,matAir);
-            GeoPhysVol* pvITCModuleMotherNeg = new GeoPhysVol(lvITCModuleMotherNeg);
-
-            //Mother volume for ITC1
-            //In plug1 it's necessary to produce GeoShapeUnion for mother volume that is composed by two parts:
-            // 1. Mother for absorber and girder
-            // 2. Mother for frontplate (since it's short)
-          
-            // The D4, PLUG1
-            dbManager->SetCurrentSectionByNumber(Id4);
-
-            thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
-            heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * Gaudi::Units::cm;
-            dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-            dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-	    // ps changes dzITC1 -> dzmodul
-            Glue =  dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2();
-            NbPeriod = dbManager->TILBnperiod();
-
-	    if(m_log->level()<=MSG::DEBUG)
-	      (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzITC1= "<<dzITC1
-                     <<" TILBdzend1= "<<dbManager->TILBdzend1()
-	             <<" TILBdzend2= "<<dbManager->TILBdzend2()
-                     <<endmsg; 
-
-            if (NbPeriod > 6)
-             { dzGlue = (Glue - 2*NbPeriod * (dbManager->TILBdzmast() + dbManager->TILBdzspac())) / (4.*NbPeriod);
-             }  else {
-               dzGlue = (Glue - (2*(NbPeriod-1) * (dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac())) / (4.*(NbPeriod-1));
-             }
-
-	    if(m_log->level()<=MSG::DEBUG)
-	      (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzGlue= "<<dzGlue<<" NbPeriod= "<<NbPeriod
-		       <<" TILBdzmast= "<<dbManager->TILBdzmast()<<" TILBdzspac= "<<dbManager->TILBdzspac()
-		       <<endmsg; 
-
-            if (dzGlue <= 0.)
-             { (*m_log) << MSG::WARNING <<"  Plug1Module warning: "<<" dzGlue= "<<dzGlue 
-	                <<endmsg;
-             }
-
-            checking("Plug1Module plug1SubMotherNeg (-)", false, 2, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-            GeoTrd* plug1SubMotherNeg = new GeoTrd(thicknessWedgeMother/2,
+              double PoZ2 =0, PoZ1 =0;
+              double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
+
+              PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*Gaudi::Units::cm- EBFingerLengthPos)/2;
+              PoZ2 = modl_length/4 + PoZ1;
+
+              if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) {
+                GeoTrf::Transform3D  TransCut2 = GeoTrf::TranslateZ3D(-Radius)
+                  * GeoTrf::RotateX3D((phi-90)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
+                  * GeoTrf::Translate3D(-PoZ2,0.,-PosY);
+
+                // Cuting of pvEBarrelModuleMotherNeg (-)
+                GeoCutVolAction action1(*CutA, TransCut2);
+                pvEBarrelModuleMotherNeg->apply(&action1);
+                pvTmp_EBarrelModuleMotherNeg = action1.getPV();
+                pvEBarrelModuleMotherNeg->unref(); // Cleaning useless volume
+
+                if (ModuleNcp>=60 && ModuleNcp<=62) {
+                  GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut);
+
+                  // Cuting of pvEBarrelModuleMotherNeg (Left)
+                  GeoCutVolAction action2(*CutB, TransCutL);
+                  pvTmp_EBarrelModuleMotherNeg->apply(&action2);
+                  pvTmL_EBarrelModuleMotherNeg = action2.getPV();
+                  pvTmp_EBarrelModuleMotherNeg->unref();// Cleaning useless volume
+
+                  pvEBarrelMotherNeg->add(pvTmL_EBarrelModuleMotherNeg);
+
+                } else if (ModuleNcp>=35 && ModuleNcp<=37) {
+                  GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius)
+                    * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(-phi*Gaudi::Units::deg)
+                    * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
+
+                  // Cuting of pvEBarrelModuleMotherNeg (Right)
+                  GeoCutVolAction action3(*CutB, TransCutR);
+                  pvTmp_EBarrelModuleMotherNeg->apply(&action3);
+                  pvTmR_EBarrelModuleMotherNeg = action3.getPV();
+                  pvTmp_EBarrelModuleMotherNeg->unref();// Cleaning useless volume
+
+                  pvEBarrelMotherNeg->add(pvTmR_EBarrelModuleMotherNeg);
+                }
+              } else {
+                pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
+              } // end special modules
+              pvEBarrelMotherNeg->add(pvEBarrelModuleMotherNeg);
+            } // end if, BoolCuts()
+          */
+
+          //--------------------------EBARREL FINGERS MAKING------------------------------
+
+          dbManager->SetCurrentTifg(2);  //barrel efinger (small)
+
+          //zEndSection = extOffset + dbManager->TILBdzmodul()/2 + dbManager->TILEzshift();
+
+          // Trd - one finger mother
+          thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm;
+          heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
+          dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+          dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+          checking("EFingerModule (-)", false, 1,
+                   thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+          GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2,
                                                    thicknessWedgeMother/2,
                                                    dy1WedgeMother,
                                                    dy2WedgeMother,
                                                    heightWedgeMother/2);
-            //Second submother for frontplate
-            double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap
-            thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * Gaudi::Units::cm;
-	    if(m_log->level()<=MSG::DEBUG)
-              if (specialC10)
-                (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg;
-          
-            GeoLogVol *lvPlug1ModuleMotherNeg=0;
-            if (thicknessWedgeMother > rless)
-             { 
-               heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-               dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-               dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
-               checking("Plug1Module plug2SubMotherNeg (-)", false, 2, 
-                   thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
 
-               GeoTrd* plug2SubMotherNeg = new GeoTrd(thicknessWedgeMother/2,
+          GeoLogVol* lvEFingerModuleMother = new GeoLogVol("EFingerModule",efingerModuleMother,matAir);
+          GeoPhysVol* pvEFingerModuleMother = new GeoPhysVol(lvEFingerModuleMother);
+
+          // Fill the section
+          if (Filling) {
+            sectionBuilder->fillFinger(pvEFingerModuleMother, 2,
+                                       dbManager->TILErmax(),
+                                       dbManager->TILBrmax(),
+                                       deltaPhi,
+                                       m_switches.testBeam,
+                                       ModuleNcp*100);
+          }
+          GeoTransform* xtraModFingerNeg  = new GeoTransform(GeoTrf::TranslateX3D(
+                                                                 (dbManager->TILErmax() + dbManager->TILBrmax())/2*Gaudi::Units::cm));
+          pvEFingerMotherNeg->add(zrotMod);
+          pvEFingerMotherNeg->add(xtraModFingerNeg);
+          pvEFingerMotherNeg->add(yrotMod);
+
+          pvEFingerMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+          pvEFingerMotherNeg->add(pvEFingerModuleMother);
+
+          // --------------------------BARREL SADDLE MAKING----------------------------
+          if (dbManager->BoolSaddle()) {
+            if ( (ModuleNcp >=39 && ModuleNcp <=42) || (ModuleNcp >=55 && ModuleNcp <=58) ) {
+              GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle,
+                                                  BFingerRmin,
+                                                  DzSaddleSupport/2,
+                                                  0.,deltaPhi*Gaudi::Units::deg);
+
+              GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron);
+              GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule);
+
+              pvESaddleMotherNeg->add(zrotSaddle);
+              pvESaddleMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+              pvESaddleMotherNeg->add(pvSaddleModule);
+            }
+          }
+
+        } // end if (EnvType == 2)
+
+        //------------------- D4/C10/Gap/Crack
+
+        if ((EnvType == 4) || (EnvType == 5)) {
+
+          int Id4 = ModType%100;
+          int Ic10 = (ModType/100)%100;
+          int Igap = (ModType/10000)%100;
+          int Icrack = (ModType/1000000)%100;
+
+          bool Ifd4    = ( Id4 != 0);
+          bool Ifc10   = ( Ic10 != 0);
+          bool Ifgap   = ( Igap != 0);
+          bool Ifcrack = ( Icrack != 0);
+
+          bool Ifspecialgirder = (Id4 == 7);
+
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG <<" ITC : EnvType "<<EnvType<<" Size = "<<dbManager->GetModTypeSize()
+                     <<" Ncp= "<<ModuleNcp<<"  D4 "<<Id4<<" specialflag = "<<Ifspecialgirder<<" C10 "<<Ic10<<" Gap "<<Igap<<" Crack "<<Icrack
+                     << endmsg;
+
+          if (Ifc10) {
+            dbManager->SetCurrentSectionByNumber(Ic10); // TILE_PLUG2
+            rMinITC2 = dbManager->TILBrminimal();
+            rMaxITC2 = dbManager->TILBrmaximal();
+            dzITC2   = dbManager->TILBdzmodul();
+          } else {
+            if (m_log->level()<=MSG::DEBUG)
+              (*m_log) << MSG::DEBUG <<" C10 unavailable "<<endmsg;
+          }
+
+          if (Ifd4) {
+            dbManager->SetCurrentSectionByNumber(Id4); // TILE_PLUG1
+            rMinITC1 = dbManager->TILBrminimal();
+            rMaxITC1 = dbManager->TILBrmaximal();
+            dzITC1   = dbManager->TILBdzmodul();
+            if (Ifspecialgirder) {
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<" dzITC1 changed from "<<dzITC1<<" to "<<dbManager->TILBdzgir()<<endmsg;
+              dzITC1 = dbManager->TILBdzgir();
+            }
+          } else {
+            (*m_log) << MSG::INFO <<" D4 unavailable "<<endmsg;
+            dzITC1 = 9.485; //sb [Gaudi::Units::cm]
+          }
+
+          bool specialC10 = (Ifd4 && Ifc10 && rMaxITC2 < rMinITC1);
+          if (specialC10) {
+            rMaxITC2 = rMinITC1; // for special C10 make outer radius equal to inner radius of D4
+          }
+
+          //------------------- ITC BLOCKS Negative --------------------------------
+          if (EnvType == 4) {
+
+            // Common mother for ITC1/2 modules
+            if (Ifd4 || Ifc10) {
+
+              //  The first sub shape
+              thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
+              heightWedgeMother = (rMaxITC1 - rMinITC1) * Gaudi::Units::cm;
+              dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+              checking("ITCModule tcModuleSub1Neg (-) ", false, 1,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+              GeoTrd* itcModuleSub1Neg = new GeoTrd(thicknessWedgeMother/2,
+                                                    thicknessWedgeMother/2,
+                                                    dy1WedgeMother,
+                                                    dy2WedgeMother,
+                                                    heightWedgeMother/2);
+              // The second sub shape
+              thicknessWedgeMother = dzITC2 * Gaudi::Units::cm;
+              heightWedgeMother    = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm;
+              dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+              checking("ITCModule itcModuleSub2Neg (-)", false, 1,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+              GeoTrd* itcModuleSub2Neg = new GeoTrd(thicknessWedgeMother/2,
+                                                    thicknessWedgeMother/2,
+                                                    dy1WedgeMother,
+                                                    dy2WedgeMother,
+                                                    heightWedgeMother/2 );
+
+              X = (dzITC1 - dzITC2)/2*Gaudi::Units::cm;
+              Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*Gaudi::Units::cm;
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  ITCModule Negative, position X= "<<X<<" Z= "<<Z<< endmsg;
+
+              GeoTrf::Translate3D itcModule_SubShiftNeg(X, 0., Z);
+              const GeoShapeUnion& itcModuleMotherNeg = itcModuleSub1Neg->add(*itcModuleSub2Neg<<itcModule_SubShiftNeg);
+
+              GeoTrf::Translate3D itcModuleSubShiftNeg(X, 0., Z);
+
+              GeoLogVol* lvITCModuleMotherNeg = new GeoLogVol("ITCModule",&itcModuleMotherNeg,matAir);
+              GeoPhysVol* pvITCModuleMotherNeg = new GeoPhysVol(lvITCModuleMotherNeg);
+
+              //Mother volume for ITC1
+              //In plug1 it's necessary to produce GeoShapeUnion for mother volume that is composed by two parts:
+              // 1. Mother for absorber and girder
+              // 2. Mother for frontplate (since it's short)
+
+              // The D4, PLUG1
+              dbManager->SetCurrentSectionByNumber(Id4);
+
+              thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
+              heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * Gaudi::Units::cm;
+              dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              // ps changes dzITC1 -> dzmodul
+              Glue =  dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2();
+              NbPeriod = dbManager->TILBnperiod();
+
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzITC1= "<<dzITC1
+                         <<" TILBdzend1= "<<dbManager->TILBdzend1()
+                         <<" TILBdzend2= "<<dbManager->TILBdzend2()
+                         <<endmsg;
+
+              if (NbPeriod > 6) {
+                dzGlue = (Glue - 2*NbPeriod * (dbManager->TILBdzmast() + dbManager->TILBdzspac())) / (4.*NbPeriod);
+              } else {
+                dzGlue = (Glue - (2*(NbPeriod-1) * (dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac())) / (4.*(NbPeriod-1));
+              }
+
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzGlue= "<<dzGlue<<" NbPeriod= "<<NbPeriod
+                         <<" TILBdzmast= "<<dbManager->TILBdzmast()<<" TILBdzspac= "<<dbManager->TILBdzspac()
+                         <<endmsg;
+
+              if (dzGlue <= 0.) {
+                (*m_log) << MSG::WARNING <<"  Plug1Module warning: "<<" dzGlue= "<<dzGlue
+                         <<endmsg;
+              }
+
+              checking("Plug1Module plug1SubMotherNeg (-)", false, 2,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+              GeoTrd* plug1SubMotherNeg = new GeoTrd(thicknessWedgeMother/2,
+                                                     thicknessWedgeMother/2,
+                                                     dy1WedgeMother,
+                                                     dy2WedgeMother,
+                                                     heightWedgeMother/2);
+              //Second submother for frontplate
+              double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap
+              thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * Gaudi::Units::cm;
+              if (m_log->level()<=MSG::DEBUG)
+                if (specialC10)
+                  (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg;
+
+              GeoLogVol *lvPlug1ModuleMotherNeg=0;
+              if (thicknessWedgeMother > rless) {
+                heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+                dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+                dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+                checking("Plug1Module plug2SubMotherNeg (-)", false, 2,
+                         thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+                GeoTrd* plug2SubMotherNeg = new GeoTrd(thicknessWedgeMother/2,
+                                                       thicknessWedgeMother/2,
+                                                       dy1WedgeMother,
+                                                       dy2WedgeMother,
+                                                       heightWedgeMother/2);
+
+                GeoTrf::Translate3D plug1SubOffsetNeg(-dzITC2Bis*Gaudi::Units::cm/2, 0.,
+                                                      (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2);
+
+                const GeoShapeUnion& plug1ModuleMotherNeg =
+                    plug1SubMotherNeg->add(*plug2SubMotherNeg<<plug1SubOffsetNeg);
+
+                lvPlug1ModuleMotherNeg = new GeoLogVol("Plug1Module",&plug1ModuleMotherNeg,matAir);
+              } else {
+                lvPlug1ModuleMotherNeg = new GeoLogVol("Plug1Module",plug1SubMotherNeg,matAir);
+              }
+
+              GeoPhysVol* pvPlug1ModuleMotherNeg = new GeoPhysVol(lvPlug1ModuleMotherNeg);
+
+              // Fill the section
+              if (Filling) {
+                sectionBuilder->fillSection(pvPlug1ModuleMotherNeg, 3,
+                                            dbManager->TILBrmaximal(),
+                                            (thicknessWedgeMother > rless) ? dbManager->TILBrminimal() : dbManager->TILBrmin(),
+                                            dzGlue,
+                                            deltaPhi,
+                                            ModuleNcp,
+                                            dzITC2Bis);
+              }
+
+              Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2;
+              GeoTransform* tfPlug1ModuleMotherNeg = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z));
+
+              pvITCModuleMotherNeg->add(tfPlug1ModuleMotherNeg);
+              pvITCModuleMotherNeg->add(pvPlug1ModuleMotherNeg);
+
+              //Mother volume for ITC2
+              if (Ifc10) {
+
+                // TILE_PLUG2
+                dbManager->SetCurrentSectionByNumber(Ic10);
+
+                thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
+                heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+                dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+                dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+                if (dbManager->TILBnperiod() > 1) {
+                  dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2()
+                            - ((dbManager->TILBnperiod()-1)*2*(dbManager->TILBdzmast() + dbManager->TILBdzspac())
+                               + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1));
+                } else {
+                  dzGlue = 0; // add for special missing C10 modules
+                }
+
+                checking("Plug2Module (-)", false, 2,
+                         thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+                GeoTrd* plug2ModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
+                                                          thicknessWedgeMother/2,
+                                                          dy1WedgeMother,
+                                                          dy2WedgeMother,
+                                                          heightWedgeMother/2);
+
+                GeoLogVol* lvPlug2ModuleMotherNeg = new GeoLogVol("Plug2Module",plug2ModuleMotherNeg,matAir);
+                GeoPhysVol* pvPlug2ModuleMotherNeg = new GeoPhysVol(lvPlug2ModuleMotherNeg);
+
+                // Fill the section
+                if (Filling) {
+                  sectionBuilder->fillSection(pvPlug2ModuleMotherNeg, Ic10,
+                                              dbManager->TILBrmaximal(),
+                                              dbManager->TILBrminimal(),
+                                              dzGlue,
+                                              deltaPhi);
+                }
+
+                // TILE_PLUG1, D4
+                if (Ifd4) {
+                  dbManager->SetCurrentSectionByNumber(Id4);
+
+                  GeoTransform* tfPlug2ModuleMotherNeg = new GeoTransform(itcModuleSubShiftNeg);
+
+                  pvITCModuleMotherNeg->add(tfPlug2ModuleMotherNeg);
+                  pvITCModuleMotherNeg->add(pvPlug2ModuleMotherNeg);
+                }
+              }//if C10
+
+              double zShift = 0;
+              NbPeriod = dbManager->TILBnperiod();
+              //          Z = (dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm;
+              // ps Zshift calculated from length of volumes rather than modules (account for special modules)
+              //
+              Z = (dzITC1 - dzITC2)/2*Gaudi::Units::cm;
+
+              if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./Gaudi::Units::cm);
+
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  ITCModule Negative, position X= "<<X<<" Z= "<<Z
+                         <<" zStandard= "<<zITCStandard<< " zShift= " <<zShift
+                         <<endmsg;
+
+              GeoTransform* xtraITCNeg = new GeoTransform(GeoTrf::TranslateX3D(
+                                                              (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
+              GeoTransform* ztraITCNeg = new GeoTransform(GeoTrf::TranslateZ3D(zShift*Gaudi::Units::cm));
+
+              pvITCMotherNeg->add(zrotMod);
+              pvITCMotherNeg->add(xtraITCNeg);
+              pvITCMotherNeg->add(ztraITCNeg);
+              pvITCMotherNeg->add(yrotMod);
+
+              pvITCMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+              pvITCMotherNeg->add(pvITCModuleMotherNeg);
+
+            }//if (Ifd4 || Ifc10)
+
+            //-------------------------- G A P Negative ---------------------------------
+            if (Ifgap) {
+
+              // TILE_PLUG3
+              dbManager->SetCurrentSectionByNumber(Igap);
+
+              // Trd - module mother
+              thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
+              heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+              dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+              dzGlue = 0.;
+
+              checking("GapModule (-)", false, 2,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+              GeoTrd* gapModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
                                                       thicknessWedgeMother/2,
                                                       dy1WedgeMother,
                                                       dy2WedgeMother,
                                                       heightWedgeMother/2);
-    
-               GeoTrf::Translate3D plug1SubOffsetNeg(-dzITC2Bis*Gaudi::Units::cm/2, 0.,
-                                               (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2);
-    
-               const GeoShapeUnion& plug1ModuleMotherNeg = 
-                                    plug1SubMotherNeg->add(*plug2SubMotherNeg<<plug1SubOffsetNeg);
-
-               lvPlug1ModuleMotherNeg = new GeoLogVol("Plug1Module",&plug1ModuleMotherNeg,matAir);
-	     } else
-	     { lvPlug1ModuleMotherNeg = new GeoLogVol("Plug1Module",plug1SubMotherNeg,matAir);
-             }
-
-            GeoPhysVol* pvPlug1ModuleMotherNeg = new GeoPhysVol(lvPlug1ModuleMotherNeg);
-        
-            // Fill the section
-            if (Filling)
-             { sectionBuilder->fillSection(pvPlug1ModuleMotherNeg, 3,
-                                           dbManager->TILBrmaximal(),
-                                           (thicknessWedgeMother > rless) ? dbManager->TILBrminimal() : dbManager->TILBrmin(),
-                                           dzGlue,
-                                           deltaPhi,
-                                           ModuleNcp,
-                                           dzITC2Bis); 
-             }
-        
-            Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2;
-            GeoTransform* tfPlug1ModuleMotherNeg = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z));
-
-            pvITCModuleMotherNeg->add(tfPlug1ModuleMotherNeg);
-            pvITCModuleMotherNeg->add(pvPlug1ModuleMotherNeg);
-      
-            //Mother volume for ITC2
-            if (Ifc10) {  
-
-              // TILE_PLUG2
-              dbManager->SetCurrentSectionByNumber(Ic10);
 
+              GeoLogVol* lvGapModuleMotherNeg = new GeoLogVol("GapModule",gapModuleMotherNeg,matAir);
+              GeoPhysVol* pvGapModuleMotherNeg = new GeoPhysVol(lvGapModuleMotherNeg);
+
+              // Fill the section
+              if (Filling) {
+                sectionBuilder->fillSection(pvGapModuleMotherNeg, 5,  // probably better to have Igap instead of 5
+                                            dbManager->TILBrmaximal(),
+                                            dbManager->TILBrminimal(),
+                                            dzGlue,
+                                            deltaPhi);
+              }
+
+              // Module position inside mother
+              GeoTransform* xtraGapNeg = new GeoTransform(GeoTrf::TranslateX3D(
+                                                              (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
+              pvGapMotherNeg->add(zrotMod);
+              pvGapMotherNeg->add(xtraGapNeg);
+              pvGapMotherNeg->add(yrotMod);
+
+              pvGapMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+              pvGapMotherNeg->add(pvGapModuleMotherNeg);
+            }
+
+            //-------------------------- Crack Negative ---------------------------------
+            if (Ifcrack) {
+
+              // TILE_PLUG4
+              dbManager->SetCurrentSectionByNumber(Icrack);
+
+              // mother
               thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
               heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
               dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
               dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
 
-              if (dbManager->TILBnperiod() > 1)
-               { dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() 
-                        - ((dbManager->TILBnperiod()-1)*2*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) 
-                        + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1));
-               } else { dzGlue = 0; // add for special missing C10 modules
-               }
+              dzGlue = 0.;
 
-              checking("Plug2Module (-)", false, 2, 
-                   thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+              checking("CrackModule (-)", spE4, 2,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
 
-              GeoTrd* plug2ModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
+              GeoTrd* crackModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
                                                         thicknessWedgeMother/2,
                                                         dy1WedgeMother,
                                                         dy2WedgeMother,
                                                         heightWedgeMother/2);
-    
-              GeoLogVol* lvPlug2ModuleMotherNeg = new GeoLogVol("Plug2Module",plug2ModuleMotherNeg,matAir);
-              GeoPhysVol* pvPlug2ModuleMotherNeg = new GeoPhysVol(lvPlug2ModuleMotherNeg);
-    
+
+              GeoLogVol* lvCrackModuleMotherNeg = new GeoLogVol("CrackModule",crackModuleMotherNeg,matAir);
+              GeoPhysVol* pvCrackModuleMotherNeg = new GeoPhysVol(lvCrackModuleMotherNeg);
+
               // Fill the section
-              if (Filling)
-	       { sectionBuilder->fillSection(pvPlug2ModuleMotherNeg, Ic10,
-                                             dbManager->TILBrmaximal(),
-                                             dbManager->TILBrminimal(),
-                                             dzGlue,
-                                             deltaPhi);
-               }
-
-              // TILE_PLUG1, D4        
-              if (Ifd4) {
-                dbManager->SetCurrentSectionByNumber(Id4);
-
-                GeoTransform* tfPlug2ModuleMotherNeg = new GeoTransform(itcModuleSubShiftNeg);
-
-                pvITCModuleMotherNeg->add(tfPlug2ModuleMotherNeg);
-                pvITCModuleMotherNeg->add(pvPlug2ModuleMotherNeg); 
+              if (Filling) {
+                sectionBuilder->fillSection(pvCrackModuleMotherNeg, 6,
+                                            dbManager->TILBrmaximal(),
+                                            dbManager->TILBrminimal(),
+                                            dzGlue,
+                                            deltaPhi);
               }
-            }//if C10
+              // Module position inside mother
+              GeoTransform* xtraCrackNeg = new GeoTransform(GeoTrf::TranslateX3D(
+                                                                (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
+              pvCrackMotherNeg->add(zrotMod);
+              pvCrackMotherNeg->add(xtraCrackNeg);
+              pvCrackMotherNeg->add(yrotMod);
 
-          double zShift = 0;
-          NbPeriod = dbManager->TILBnperiod();
-	  //          Z = (dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm;
-	  // ps Zshift calculated from length of volumes rather than modules (account for special modules) 
-	  //
-          Z = (dzITC1 - dzITC2)/2*Gaudi::Units::cm;
+              pvCrackMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
+              pvCrackMotherNeg->add(pvCrackModuleMotherNeg);
 
-          if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./Gaudi::Units::cm);
+            }
+          }
 
-	  if(m_log->level()<=MSG::DEBUG)
-	    (*m_log) << MSG::DEBUG <<"  ITCModule Negative, position X= "<<X<<" Z= "<<Z
-		     <<" zStandard= "<<zITCStandard<< " zShift= " <<zShift
-		     <<endmsg;
+          //-------------------------------------- ITC BLOCKS Positive --------------------------------------
+          if (EnvType == 5) {
 
-          GeoTransform* xtraITCNeg = new GeoTransform(GeoTrf::TranslateX3D(
-                                         (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
-	  GeoTransform* ztraITCNeg = new GeoTransform(GeoTrf::TranslateZ3D(zShift*Gaudi::Units::cm));
+            // Common mother for ITC1/2 modules
+            if (Ifd4 || Ifc10) {
 
-          pvITCMotherNeg->add(zrotMod);
-          pvITCMotherNeg->add(xtraITCNeg);
-          pvITCMotherNeg->add(ztraITCNeg);
-          pvITCMotherNeg->add(yrotMod);
+              // The first sub shape
+              thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
+              heightWedgeMother = (rMaxITC1 - rMinITC1) * Gaudi::Units::cm;
+              dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
 
-          pvITCMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-	  pvITCMotherNeg->add(pvITCModuleMotherNeg);
+              checking("ITCModule itcModuleSub2Pos (+)", false, 1,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
 
-	}//if(Ifd4 || Ifc10)
+              GeoTrd* itcModuleSub1Pos = new GeoTrd(thicknessWedgeMother/2,
+                                                    thicknessWedgeMother/2,
+                                                    dy1WedgeMother        ,
+                                                    dy2WedgeMother        ,
+                                                    heightWedgeMother/2  );
+              // The second sub shape
+              thicknessWedgeMother = dzITC2 * Gaudi::Units::cm;
+              heightWedgeMother    = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm;
+              dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
 
-        //-------------------------- G A P Negative ---------------------------------
-        if (Ifgap) {
+              checking("ITCModule itcModuleSub2Pos (+)", false, 1,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
 
-          // TILE_PLUG3
-          dbManager->SetCurrentSectionByNumber(Igap); 
+              GeoTrd* itcModuleSub2Pos = new GeoTrd(thicknessWedgeMother/2,
+                                                    thicknessWedgeMother/2,
+                                                    dy1WedgeMother        ,
+                                                    dy2WedgeMother        ,
+                                                    heightWedgeMother/2  );
 
-          // Trd - module mother
-          thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
-          heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-          dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              X = (dzITC1 - dzITC2)/2*Gaudi::Units::cm;
+              Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*Gaudi::Units::cm;
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  ITCModule Positive, position X= "<<X<<" Z= "<<Z<< endmsg;
 
-          dzGlue = 0.;
+              GeoTrf::Translate3D itcModule_SubShiftPos(X, 0., Z);
+              const GeoShapeUnion& itcModuleMotherPos = itcModuleSub1Pos->add(*itcModuleSub2Pos<<itcModule_SubShiftPos);
 
-          checking("GapModule (-)", false, 2, 
-               thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+              GeoTrf::Translate3D itcModuleSubShiftPos(X, 0., Z);
 
-          GeoTrd* gapModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
-	                                          thicknessWedgeMother/2,
-                                                  dy1WedgeMother,
-					          dy2WedgeMother,
-					          heightWedgeMother/2);
+              GeoLogVol* lvITCModuleMotherPos = new GeoLogVol("ITCModule",&itcModuleMotherPos,matAir);
+              GeoPhysVol* pvITCModuleMotherPos = new GeoPhysVol(lvITCModuleMotherPos);
 
-          GeoLogVol* lvGapModuleMotherNeg = new GeoLogVol("GapModule",gapModuleMotherNeg,matAir);
-          GeoPhysVol* pvGapModuleMotherNeg = new GeoPhysVol(lvGapModuleMotherNeg);
+              // Mother volume for ITC1
+              // In plug1 it's necessary to produce GeoShapeUnion for mother volume that is composed by two parts:
+              // 1. Mother for absorber and girder
+              // 2. Mother for frontplate (since it's short)
 
-          // Fill the section
-          if (Filling)
-            { sectionBuilder->fillSection(pvGapModuleMotherNeg, 5,  // probably better to have Igap instead of 5
-					 dbManager->TILBrmaximal(),
-					 dbManager->TILBrminimal(),
-					 dzGlue,
-					 deltaPhi);
-           }
-
-          // Module position inside mother
-          GeoTransform* xtraGapNeg = new GeoTransform(GeoTrf::TranslateX3D(
-                                         (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
-          pvGapMotherNeg->add(zrotMod);
-          pvGapMotherNeg->add(xtraGapNeg);
-          pvGapMotherNeg->add(yrotMod);
-
-          pvGapMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-	  pvGapMotherNeg->add(pvGapModuleMotherNeg); 
-       	}
-
-        //-------------------------- Crack Negative ---------------------------------
-        if (Ifcrack) {
-
-          // TILE_PLUG4
-          dbManager->SetCurrentSectionByNumber(Icrack);
-
-          // mother
-          thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
-          heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-          dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
-          dzGlue = 0.;
-
-          checking("CrackModule (-)", spE4, 2, 
-               thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-          GeoTrd* crackModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2,
-					            thicknessWedgeMother/2,
-						    dy1WedgeMother,
-						    dy2WedgeMother,
-						    heightWedgeMother/2);
-    
-          GeoLogVol* lvCrackModuleMotherNeg = new GeoLogVol("CrackModule",crackModuleMotherNeg,matAir);
-          GeoPhysVol* pvCrackModuleMotherNeg = new GeoPhysVol(lvCrackModuleMotherNeg);
-    
-          // Fill the section
-          if (Filling)
-           { sectionBuilder->fillSection(pvCrackModuleMotherNeg, 6,
-					 dbManager->TILBrmaximal(),
-					 dbManager->TILBrminimal(),
-					 dzGlue,
-					 deltaPhi);
-           }
-          // Module position inside mother
-          GeoTransform* xtraCrackNeg = new GeoTransform(GeoTrf::TranslateX3D(
-                                           (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
-          pvCrackMotherNeg->add(zrotMod);
-          pvCrackMotherNeg->add(xtraCrackNeg);
-          pvCrackMotherNeg->add(yrotMod);
-
-          pvCrackMotherNeg->add(new GeoIdentifierTag(ModuleNcp));
-	  pvCrackMotherNeg->add(pvCrackModuleMotherNeg); 
+              // The D4, PLUG1
+              dbManager->SetCurrentSectionByNumber(Id4);
 
-        }
-      }
+              thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
+              dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * Gaudi::Units::cm;
+
+              // ps changes dzITC1 -> dzmodul
+              Glue =  dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2();
+              NbPeriod = dbManager->TILBnperiod();
+
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzITC1= "<<dzITC1
+                         <<" TILBdzend1= "<<dbManager->TILBdzend1()
+                         <<" TILBdzend2= "<<dbManager->TILBdzend2()
+                         <<endmsg;
+
+              if (NbPeriod > 6) {
+                dzGlue = (Glue - 2*NbPeriod * (dbManager->TILBdzmast() + dbManager->TILBdzspac())) / (4.*NbPeriod);
+              } else {
+                dzGlue = (Glue - (2*(NbPeriod-1) * (dbManager->TILBdzmast() + dbManager->TILBdzspac())
+                                  + dbManager->TILBdzspac())) / (4.*(NbPeriod-1));
+              }
 
-      //-------------------------------------- ITC BLOCKS Positive --------------------------------------    
-      if(EnvType == 5) {
-
-        // Common mother for ITC1/2 modules  
-        if(Ifd4 || Ifc10) {
-
-          // The first sub shape
-          thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
-          heightWedgeMother = (rMaxITC1 - rMinITC1) * Gaudi::Units::cm;
-          dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-
-          checking("ITCModule itcModuleSub2Pos (+)", false, 1,
-	        thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-          GeoTrd* itcModuleSub1Pos = new GeoTrd(thicknessWedgeMother/2,
-	                                        thicknessWedgeMother/2,
-                                                dy1WedgeMother        ,
-                                                dy2WedgeMother        ,
-                                                heightWedgeMother/2  );
-          // The second sub shape
-          thicknessWedgeMother = dzITC2 * Gaudi::Units::cm;
-          heightWedgeMother    = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm;
-          dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-
-          checking("ITCModule itcModuleSub2Pos (+)", false, 1,
-	        thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-          GeoTrd* itcModuleSub2Pos = new GeoTrd(thicknessWedgeMother/2,
-	                                        thicknessWedgeMother/2,
-                                                dy1WedgeMother        ,
-                                                dy2WedgeMother        ,
-                                                heightWedgeMother/2  );
-
-          X = (dzITC1 - dzITC2)/2*Gaudi::Units::cm; 
-          Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*Gaudi::Units::cm;
-	  if(m_log->level()<=MSG::DEBUG)
-	    (*m_log) << MSG::DEBUG <<"  ITCModule Positive, position X= "<<X<<" Z= "<<Z<< endmsg;
-
-          GeoTrf::Translate3D itcModule_SubShiftPos(X, 0., Z);
-          const GeoShapeUnion& itcModuleMotherPos = itcModuleSub1Pos->add(*itcModuleSub2Pos<<itcModule_SubShiftPos);
-
-          GeoTrf::Translate3D itcModuleSubShiftPos(X, 0., Z);
-
-          GeoLogVol* lvITCModuleMotherPos = new GeoLogVol("ITCModule",&itcModuleMotherPos,matAir);
-          GeoPhysVol* pvITCModuleMotherPos = new GeoPhysVol(lvITCModuleMotherPos);
-
-          // Mother volume for ITC1 
-          // In plug1 it's necessary to produce GeoShapeUnion for mother volume that is composed by two parts:
-          // 1. Mother for absorber and girder 
-          // 2. Mother for frontplate (since it's short) 
-        
-          // The D4, PLUG1
-          dbManager->SetCurrentSectionByNumber(Id4);
-
-          thicknessWedgeMother = dzITC1 * Gaudi::Units::cm;
-          dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * Gaudi::Units::cm;
-
-	  // ps changes dzITC1 -> dzmodul
-	  Glue =  dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2();
-          NbPeriod = dbManager->TILBnperiod();
-
-	  if(m_log->level()<=MSG::DEBUG)
-	    (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzITC1= "<<dzITC1
-		     <<" TILBdzend1= "<<dbManager->TILBdzend1()
-		     <<" TILBdzend2= "<<dbManager->TILBdzend2()
-		     <<endmsg; 
-
-          if (NbPeriod > 6)
-           { dzGlue = (Glue - 2*NbPeriod * (dbManager->TILBdzmast() + dbManager->TILBdzspac())) / (4.*NbPeriod);
-           } else {
-             dzGlue = (Glue - (2*(NbPeriod-1) * (dbManager->TILBdzmast() + dbManager->TILBdzspac()) 
-                      + dbManager->TILBdzspac())) / (4.*(NbPeriod-1));
-           }
-
-	  if(m_log->level()<=MSG::DEBUG)
-	    (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzGlue= "<<dzGlue<<" NbPeriod= "<<NbPeriod
-		     <<" TILBdzmast= "<<dbManager->TILBdzmast()<<" TILBdzspac= "<<dbManager->TILBdzspac()
-		     <<endmsg; 
-
-          if (dzGlue <= 0.)
-             {(*m_log) << MSG::WARNING <<"  Plug1Module warning: "<<" dzGlue= "<<dzGlue 
-	               <<endmsg;
-             }
-
-          checking("Plug1Module plug1SubMotherPos (+)", false, 2, 
-              thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-        
-          GeoTrd* plug1SubMotherPos = new GeoTrd(thicknessWedgeMother/2,
-                                                 thicknessWedgeMother/2,
-                                                 dy1WedgeMother        ,
-                                                 dy2WedgeMother        , 
-                                                 heightWedgeMother/2   );
-
-          //Second submother C10, PLUG2
-          double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap
-          thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * Gaudi::Units::cm;
-          if(m_log->level()<=MSG::DEBUG)
-            if (specialC10)
-              (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg;
-
-          GeoLogVol *lvPlug1ModuleMotherPos=0;
-          if (thicknessWedgeMother > rless)
-           { 
-             heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-             dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-             dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-
-             checking("Plug1Module plug2SubMotherPos (+)", false, 2, 
-                 thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-             GeoTrd* plug2SubMotherPos = new GeoTrd(thicknessWedgeMother/2,
-                                                    thicknessWedgeMother/2,
-                                                    dy1WedgeMother        ,
-                                                    dy2WedgeMother        ,
-                                                    heightWedgeMother/2   );
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  Plug1Module : Glue= "<<Glue<<" dzGlue= "<<dzGlue<<" NbPeriod= "<<NbPeriod
+                         <<" TILBdzmast= "<<dbManager->TILBdzmast()<<" TILBdzspac= "<<dbManager->TILBdzspac()
+                         <<endmsg;
 
-             GeoTrf::Translate3D plug1SubOffsetPos(-dzITC2Bis/2*Gaudi::Units::cm, 0.,
-                                        (dbManager->TILBrminimal()-dbManager->TILBrmaximal())/2*Gaudi::Units::cm);
-        
-             const GeoShapeUnion& plug1ModuleMotherPos = plug1SubMotherPos->add(*plug2SubMotherPos<<plug1SubOffsetPos);
+              if (dzGlue <= 0.) {
+                (*m_log) << MSG::WARNING <<"  Plug1Module warning: "<<" dzGlue= "<<dzGlue
+                         <<endmsg;
+              }
 
-             lvPlug1ModuleMotherPos = new GeoLogVol("Plug1Module",&plug1ModuleMotherPos,matAir);
-	   } else
-	   { lvPlug1ModuleMotherPos = new GeoLogVol("Plug1Module",plug1SubMotherPos,matAir);
-           }
+              checking("Plug1Module plug1SubMotherPos (+)", false, 2,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+              GeoTrd* plug1SubMotherPos = new GeoTrd(thicknessWedgeMother/2,
+                                                     thicknessWedgeMother/2,
+                                                     dy1WedgeMother        ,
+                                                     dy2WedgeMother        ,
+                                                     heightWedgeMother/2   );
+
+              //Second submother C10, PLUG2
+              double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap
+              thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * Gaudi::Units::cm;
+              if (m_log->level()<=MSG::DEBUG)
+                if (specialC10)
+                  (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg;
+
+              GeoLogVol *lvPlug1ModuleMotherPos=0;
+              if (thicknessWedgeMother > rless) {
+                heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+                dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+                dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+                checking("Plug1Module plug2SubMotherPos (+)", false, 2,
+                         thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+                GeoTrd* plug2SubMotherPos = new GeoTrd(thicknessWedgeMother/2,
+                                                       thicknessWedgeMother/2,
+                                                       dy1WedgeMother        ,
+                                                       dy2WedgeMother        ,
+                                                       heightWedgeMother/2   );
+
+                GeoTrf::Translate3D plug1SubOffsetPos(-dzITC2Bis/2*Gaudi::Units::cm, 0.,
+                                                      (dbManager->TILBrminimal()-dbManager->TILBrmaximal())/2*Gaudi::Units::cm);
+
+                const GeoShapeUnion& plug1ModuleMotherPos = plug1SubMotherPos->add(*plug2SubMotherPos<<plug1SubOffsetPos);
+
+                lvPlug1ModuleMotherPos = new GeoLogVol("Plug1Module",&plug1ModuleMotherPos,matAir);
+              } else {
+                lvPlug1ModuleMotherPos = new GeoLogVol("Plug1Module",plug1SubMotherPos,matAir);
+              }
 
-          GeoPhysVol* pvPlug1ModuleMotherPos = new GeoPhysVol(lvPlug1ModuleMotherPos);
-        
-          // Fill the section
-	  if (Filling)
-	    { sectionBuilder->fillSection(pvPlug1ModuleMotherPos, 3,
-                                         dbManager->TILBrmaximal(),
-                                         (thicknessWedgeMother > rless) ? dbManager->TILBrminimal() : dbManager->TILBrmin(),
-                                         dzGlue,
-                                         deltaPhi,
-					 ModuleNcp,
-                                         dzITC2Bis);
-           }
-        
-          Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2;
-          GeoTransform* tfPlug1ModuleMotherPos = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z));
-
-          pvITCModuleMotherPos->add(tfPlug1ModuleMotherPos);
-          pvITCModuleMotherPos->add(pvPlug1ModuleMotherPos);
-
-          //Mother volume for ITC2 Positive
-          if (Ifc10) { 
-
-            // TILE_PLUG2, C10
-            dbManager->SetCurrentSectionByNumber(Ic10); 
-
-            thicknessWedgeMother = dzITC2 * Gaudi::Units::cm;
-            heightWedgeMother    = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm;
-            dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-            dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-
-            if (dbManager->TILBnperiod() > 1)
-             { dzGlue = (dzITC2 - dbManager->TILBdzend1() - dbManager->TILBdzend2() 
-                      - ((dbManager->TILBnperiod()-1)*2*(dbManager->TILBdzmast() 
-                      + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4*(dbManager->TILBnperiod()-1));
-             } else {  dzGlue = 0; // add for special missing C10 modules
-             }
-
-            checking("Plug2Module (+)", false, 2,
-	        thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-            GeoTrd* plug2ModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
+              GeoPhysVol* pvPlug1ModuleMotherPos = new GeoPhysVol(lvPlug1ModuleMotherPos);
+
+              // Fill the section
+              if (Filling) {
+                sectionBuilder->fillSection(pvPlug1ModuleMotherPos, 3,
+                                            dbManager->TILBrmaximal(),
+                                            (thicknessWedgeMother > rless) ? dbManager->TILBrminimal() : dbManager->TILBrmin(),
+                                            dzGlue,
+                                            deltaPhi,
+                                            ModuleNcp,
+                                            dzITC2Bis);
+              }
+
+              Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2;
+              GeoTransform* tfPlug1ModuleMotherPos = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z));
+
+              pvITCModuleMotherPos->add(tfPlug1ModuleMotherPos);
+              pvITCModuleMotherPos->add(pvPlug1ModuleMotherPos);
+
+              //Mother volume for ITC2 Positive
+              if (Ifc10) {
+
+                // TILE_PLUG2, C10
+                dbManager->SetCurrentSectionByNumber(Ic10);
+
+                thicknessWedgeMother = dzITC2 * Gaudi::Units::cm;
+                heightWedgeMother    = (rMaxITC2 - rMinITC2) * Gaudi::Units::cm;
+                dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+                dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+                if (dbManager->TILBnperiod() > 1) {
+                  dzGlue = (dzITC2 - dbManager->TILBdzend1() - dbManager->TILBdzend2()
+                            - ((dbManager->TILBnperiod()-1)*2*(dbManager->TILBdzmast()
+                                                               + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4*(dbManager->TILBnperiod()-1));
+                } else {
+                  dzGlue = 0; // add for special missing C10 modules
+                }
+
+                checking("Plug2Module (+)", false, 2,
+                         thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+                GeoTrd* plug2ModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
+                                                          thicknessWedgeMother/2,
+                                                          dy1WedgeMother,
+                                                          dy2WedgeMother,
+                                                          heightWedgeMother/2);
+
+                GeoLogVol* lvPlug2ModuleMotherPos = new GeoLogVol("Plug2Module",plug2ModuleMotherPos,matAir);
+                GeoPhysVol* pvPlug2ModuleMotherPos = new GeoPhysVol(lvPlug2ModuleMotherPos);
+
+                // Fill the section
+                if (Filling) {
+                  sectionBuilder->fillSection(pvPlug2ModuleMotherPos, Ic10,
+                                              dbManager->TILBrmaximal(),
+                                              dbManager->TILBrminimal(),
+                                              dzGlue,
+                                              deltaPhi);
+                }
+
+                // TILE_PLUG1, D4
+                if ((Ifd4)) {
+                  dbManager->SetCurrentSectionByNumber(Id4);
+
+                  GeoTransform* tfPlug2ModuleMotherPos = new GeoTransform(itcModuleSubShiftPos);
+
+                  pvITCModuleMotherPos->add(tfPlug2ModuleMotherPos);
+                  pvITCModuleMotherPos->add(pvPlug2ModuleMotherPos);
+                }
+              }//if C10
+
+              double zShift = 0;
+              NbPeriod = dbManager->TILBnperiod();
+              //ps          Z = (dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm;
+              Z = (dzITC1 - dzITC2)/2*Gaudi::Units::cm;
+
+              if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./Gaudi::Units::cm);
+
+              if (m_log->level()<=MSG::DEBUG)
+                (*m_log) << MSG::DEBUG <<"  ITCModule Positive, position X= "<<X<<" Z= "<<Z
+                         <<" zStandard= "<<zITCStandard<< " zShift= " <<zShift
+                         <<endmsg;
+
+              GeoTransform* xtraITCPos = new GeoTransform(GeoTrf::TranslateX3D(
+                                                              (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
+              GeoTransform* ztraITCPos = new GeoTransform(GeoTrf::TranslateZ3D(zShift*Gaudi::Units::cm));
+
+              pvITCMotherPos->add(zrotMod);
+              pvITCMotherPos->add(xtraITCPos);
+              pvITCMotherPos->add(ztraITCPos);
+              pvITCMotherPos->add(XYrtMod);
+
+              pvITCMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+              pvITCMotherPos->add(pvITCModuleMotherPos);
+
+            }//if (Ifd4 || Ifc10)
+
+
+            //-------------------------- G A P Positive ---------------------------------
+            if (Ifgap) {
+
+              // TILE_PLUG3
+              dbManager->SetCurrentSectionByNumber(Igap);
+
+              // Mother
+              thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
+              heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+              dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+
+              dzGlue = 0;
+
+              checking("Plug2Module (+)", false, 2,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+
+              GeoTrd* gapModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
                                                       thicknessWedgeMother/2,
                                                       dy1WedgeMother,
                                                       dy2WedgeMother,
                                                       heightWedgeMother/2);
-        
-            GeoLogVol* lvPlug2ModuleMotherPos = new GeoLogVol("Plug2Module",plug2ModuleMotherPos,matAir);
-            GeoPhysVol* pvPlug2ModuleMotherPos = new GeoPhysVol(lvPlug2ModuleMotherPos);
-        
-            // Fill the section
-            if (Filling)
-	     { sectionBuilder->fillSection(pvPlug2ModuleMotherPos, Ic10,
-                                           dbManager->TILBrmaximal(),
-                                           dbManager->TILBrminimal(),
-                                           dzGlue,
-                                           deltaPhi);
-             }
-         
-            // TILE_PLUG1, D4
-            if ((Ifd4)) {
-              dbManager->SetCurrentSectionByNumber(Id4);
-
-              GeoTransform* tfPlug2ModuleMotherPos = new GeoTransform(itcModuleSubShiftPos);
 
-              pvITCModuleMotherPos->add(tfPlug2ModuleMotherPos);
-              pvITCModuleMotherPos->add(pvPlug2ModuleMotherPos);
-            } 
-          }//if C10
+              GeoLogVol* lvGapModuleMotherPos = new GeoLogVol("GapModule",gapModuleMotherPos,matAir);
+              GeoPhysVol* pvGapModuleMotherPos = new GeoPhysVol(lvGapModuleMotherPos);
 
-          double zShift = 0;
-          NbPeriod = dbManager->TILBnperiod();
-	  //ps          Z = (dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm;
-          Z = (dzITC1 - dzITC2)/2*Gaudi::Units::cm;
-
-          if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./Gaudi::Units::cm);
+              // Fill the section
+              if (Filling) {
+                sectionBuilder->fillSection(pvGapModuleMotherPos, 5,
+                                            dbManager->TILBrmaximal(),
+                                            dbManager->TILBrminimal(),
+                                            dzGlue,
+                                            deltaPhi);
+              }
 
-	  if(m_log->level()<=MSG::DEBUG)
-	    (*m_log) << MSG::DEBUG <<"  ITCModule Positive, position X= "<<X<<" Z= "<<Z
-		     <<" zStandard= "<<zITCStandard<< " zShift= " <<zShift
-		     <<endmsg;
+              // Module position inside mother
+              GeoTransform* xtraGapPos = new GeoTransform(GeoTrf::TranslateX3D(
+                                                              (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
+              pvGapMotherPos->add(zrotMod);
+              pvGapMotherPos->add(xtraGapPos);
+              pvGapMotherPos->add(XYrtMod);
 
-	  GeoTransform* xtraITCPos = new GeoTransform(GeoTrf::TranslateX3D(
-                                        (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
-	  GeoTransform* ztraITCPos = new GeoTransform(GeoTrf::TranslateZ3D(zShift*Gaudi::Units::cm));
+              pvGapMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+              pvGapMotherPos->add(pvGapModuleMotherPos);
+            }
 
-          pvITCMotherPos->add(zrotMod);
-          pvITCMotherPos->add(xtraITCPos);
-          pvITCMotherPos->add(ztraITCPos);
-          pvITCMotherPos->add(XYrtMod);
+            //-------------------------- Crack Positive ---------------------------------
+            if (Ifcrack) {
 
-	  pvITCMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-          pvITCMotherPos->add(pvITCModuleMotherPos);
+              // TILE_PLUG4
+              dbManager->SetCurrentSectionByNumber(Icrack);
 
-        }//if(Ifd4 || Ifc10)
+              // Trd - module mother
+              thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
+              heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
+              dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
 
+              dzGlue = 0.;
 
-        //-------------------------- G A P Positive ---------------------------------
-        if (Ifgap) {
+              checking("CrackModule (+)", spE4, 2,
+                       thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
 
-          // TILE_PLUG3
-          dbManager->SetCurrentSectionByNumber(Igap); 
+              GeoTrd* crackModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
+                                                        thicknessWedgeMother/2,
+                                                        dy1WedgeMother,
+                                                        dy2WedgeMother,
+                                                        heightWedgeMother/2);
 
-          // Mother
-          thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
-          heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-          dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
+              GeoLogVol* lvCrackModuleMotherPos = new GeoLogVol("CrackModule",crackModuleMotherPos,matAir);
+              GeoPhysVol* pvCrackModuleMotherPos = new GeoPhysVol(lvCrackModuleMotherPos);
 
-          dzGlue = 0;
+              // Fill the section
+              if (Filling) {
+                sectionBuilder->fillSection(pvCrackModuleMotherPos, 6,
+                                            dbManager->TILBrmaximal(),
+                                            dbManager->TILBrminimal(),
+                                            dzGlue,
+                                            deltaPhi);
+              }
 
-          checking("Plug2Module (+)", false, 2,
-              thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
+              // Module position inside mother
+              GeoTransform* xtraCrackPos = new GeoTransform(GeoTrf::TranslateX3D(
+                                                                (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
+              pvCrackMotherPos->add(zrotMod);
+              pvCrackMotherPos->add(xtraCrackPos);
+              pvCrackMotherPos->add(XYrtMod);
 
-          GeoTrd* gapModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
-	                                          thicknessWedgeMother/2,
-                                                  dy1WedgeMother,
-					          dy2WedgeMother,
-					          heightWedgeMother/2);
+              pvCrackMotherPos->add(new GeoIdentifierTag(ModuleNcp));
+              pvCrackMotherPos->add(pvCrackModuleMotherPos);
 
-          GeoLogVol* lvGapModuleMotherPos = new GeoLogVol("GapModule",gapModuleMotherPos,matAir);
-          GeoPhysVol* pvGapModuleMotherPos = new GeoPhysVol(lvGapModuleMotherPos);
+            }
+          }
 
-          // Fill the section
-          if (Filling)
-           { sectionBuilder->fillSection(pvGapModuleMotherPos, 5,
-                                         dbManager->TILBrmaximal(),
-                                         dbManager->TILBrminimal(),
-                                         dzGlue,
-                                         deltaPhi);
-           }
-
-          // Module position inside mother
-          GeoTransform* xtraGapPos = new GeoTransform(GeoTrf::TranslateX3D(
-                                         (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
-          pvGapMotherPos->add(zrotMod);
-          pvGapMotherPos->add(xtraGapPos);
-          pvGapMotherPos->add(XYrtMod);
-
-          pvGapMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-	  pvGapMotherPos->add(pvGapModuleMotherPos); 
-       	} 
-
-        //-------------------------- Crack Positive ---------------------------------
-        if (Ifcrack) {
-
-          // TILE_PLUG4
-          dbManager->SetCurrentSectionByNumber(Icrack); 
-
-          // Trd - module mother
-          thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
-          heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
-          dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-          dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
-          dzGlue = 0.;
-    
-          checking("CrackModule (+)", spE4, 2, 
-               thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2);
-
-          GeoTrd* crackModuleMotherPos = new GeoTrd(thicknessWedgeMother/2,
-					            thicknessWedgeMother/2,
-						    dy1WedgeMother,
-						    dy2WedgeMother,
-						    heightWedgeMother/2);
-    
-          GeoLogVol* lvCrackModuleMotherPos = new GeoLogVol("CrackModule",crackModuleMotherPos,matAir);
-          GeoPhysVol* pvCrackModuleMotherPos = new GeoPhysVol(lvCrackModuleMotherPos);
-    
-          // Fill the section
-          if (Filling)
-           { sectionBuilder->fillSection(pvCrackModuleMotherPos, 6,
-                                         dbManager->TILBrmaximal(),
-                                         dbManager->TILBrminimal(),
-                                         dzGlue,
-                                         deltaPhi);
-           }
-    
-          // Module position inside mother
-          GeoTransform* xtraCrackPos = new GeoTransform(GeoTrf::TranslateX3D(
-                                          (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*Gaudi::Units::cm));
-          pvCrackMotherPos->add(zrotMod);
-          pvCrackMotherPos->add(xtraCrackPos);
-          pvCrackMotherPos->add(XYrtMod);
-
-          pvCrackMotherPos->add(new GeoIdentifierTag(ModuleNcp));
-	  pvCrackMotherPos->add(pvCrackModuleMotherPos); 
+        } // if (EnvType == 4 || EnvType == 5)
 
-        }
-      } 
+        zrotMod->unref();
+        zrotSaddle->unref();
+      }// ModCounter, end
 
-      } // if(EnvType == 4 || EnvType == 5)
 
-      zrotMod->unref();
-      zrotSaddle->unref();
-    }// ModCounter, end
-    
-    
 
-    yrotMod->unref();
-    XYrtMod->unref();
+      yrotMod->unref();
+      XYrtMod->unref();
 
     }
 
@@ -2438,7 +2428,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     double ztrans =0;
     dbManager->SetCurrentEnvByType(EnvType);
 
-    if(EnvType == 1) { 
+    if (EnvType == 1) {
 
       GeoTransform* tfBarrelMother;
 
@@ -2449,12 +2439,12 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       (*m_log) << MSG::INFO <<" Positioning barrel with translation "<<ztrans*Gaudi::Units::cm<< endmsg;
 
-      GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel"); 
+      GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel");
 
       pvTileEnvelopeBarrel->add(tfBarrelMother);
       pvTileEnvelopeBarrel->add(ntBarrelModuleMother);
       pvTileEnvelopeBarrel->add(pvBarrelMother);
-      
+
       GeoTransform* tfFingerMotherPos;
 
       ztrans = (dbManager->GetEnvZLength()*Gaudi::Units::cm/2 - BFingerLengthPos/2 + PosDelta)*(1./Gaudi::Units::cm);
@@ -2469,8 +2459,8 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       pvTileEnvelopeBarrel->add(ntFingerMotherPos);
       pvTileEnvelopeBarrel->add(pvFingerMotherPos);
 
-      if (dbManager->BoolSaddle())
-      { GeoTransform* tfSaddleMotherPos;
+      if (dbManager->BoolSaddle()) {
+        GeoTransform* tfSaddleMotherPos;
 
         ztrans = (dbManager->GetEnvZLength()*Gaudi::Units::cm/2 - BFingerLengthPos + DzSaddleSupport/2 + PosDelta)*(1./Gaudi::Units::cm);
 
@@ -2496,10 +2486,10 @@ void TileAtlasFactory::create(GeoPhysVol *world)
       GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg");
       pvTileEnvelopeBarrel->add(tfFingerMotherNeg);
       pvTileEnvelopeBarrel->add(ntFingerMotherNeg);
-      pvTileEnvelopeBarrel->add(pvFingerMotherNeg); 
+      pvTileEnvelopeBarrel->add(pvFingerMotherNeg);
 
-      if (dbManager->BoolSaddle())
-      { GeoTransform* tfSaddleMotherNeg;
+      if (dbManager->BoolSaddle()) {
+        GeoTransform* tfSaddleMotherNeg;
 
         ztrans = (-dbManager->GetEnvZLength()*Gaudi::Units::cm/2 + BFingerLengthNeg - DzSaddleSupport/2 - NegDelta)*(1./Gaudi::Units::cm);
 
@@ -2511,12 +2501,12 @@ void TileAtlasFactory::create(GeoPhysVol *world)
         pvTileEnvelopeBarrel->add(ntSaddleMotherNeg);
         pvTileEnvelopeBarrel->add(pvSaddleMotherNeg);
       }
-    } 
+    }
 
-    //  
+    //
     //----------------------------------------- EBarrel Positive -----------------------------------------------------
 
-    if(EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger
+    if (EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger
 
       dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
       double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
@@ -2526,159 +2516,159 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       //--------------------------------------------------------------------------------------------------------------
       // CutA in Tile (Positive) (close center)
-      if(m_fullGeo) {
-      if (dbManager->BoolCuts()){
-
-        // Iron1, down
-        volname = "Iron1"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-	if(m_log->level()<=MSG::DEBUG)
-	  (*m_log) << MSG::DEBUG << " Iron1: " << dxIron << " " << dyIron << endmsg;
-
-        GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) 
-	                                       * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherPos->add(tfIron1);
-        pvEBarrelMotherPos->add(new GeoIdentifierTag(1));
-        pvEBarrelMotherPos->add(pvIron1);
-
-                      tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2) 
-					       * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherPos->add(tfIron1);
-        pvEBarrelMotherPos->add(pvIron1);
-
-        // Iron2, middle
-        volname = "Iron2"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-	if(m_log->level()<=MSG::DEBUG)
-	  (*m_log) << MSG::DEBUG << " Iron2: " << dxIron << " " << dyIron << endmsg;
-
-        GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) 
-	                      * GeoTrf::RotateZ3D(-84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherPos->add(tfIron2);
-        pvEBarrelMotherPos->add(new GeoIdentifierTag(2));
-        pvEBarrelMotherPos->add(pvIron2);
-
-                      tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) 
-	                      * GeoTrf::RotateZ3D(84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherPos->add(tfIron2);
-        pvEBarrelMotherPos->add(pvIron2);
-
-        // Iron3, middle 
-        volname = "Iron3"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-	if(m_log->level()<=MSG::DEBUG)
-	  (*m_log) << MSG::DEBUG << " Iron3: " << dxIron << " " << dyIron << endmsg;
-
-        GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) 
-	                      * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherPos->add(tfIron3);
-        pvEBarrelMotherPos->add(new GeoIdentifierTag(3));
-        pvEBarrelMotherPos->add(pvIron3);
-
-                      tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) 
-	                      * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherPos->add(tfIron3);
-        pvEBarrelMotherPos->add(pvIron3);
-
-        // Heavy Iron Box 
-        volname = "IrBox"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-
-        GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) 
-					       * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherPos->add(tfIrBoxL);
-        pvEBarrelMotherPos->add(new GeoIdentifierTag(4));
-        pvEBarrelMotherPos->add(pvIrBox);
-
-        GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2)
-                                                * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherPos->add(tfIrBoxR);
-        pvEBarrelMotherPos->add(pvIrBox);
-
-        // CutB in Tile (Positive) (outer center) 
-        volname = "IrUp"; dbManager->SetCurrentCuts(volname); //>>
-        dxIr = dbManager->CutsXpos();
-	dyIr = dbManager->CutsYpos();
-	if(m_log->level()<=MSG::DEBUG)
-	  (*m_log) << MSG::DEBUG << " IrUp: " <<dxIr<< " " <<dyIr<< endmsg;
-
-        GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) 
-		             * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherPos->add(tfIrUp);
-        pvEBarrelMotherPos->add(new GeoIdentifierTag(5));
-        pvEBarrelMotherPos->add(pvIrUp);
-
-                      tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,-PoZ1) 
-		             * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherPos->add(tfIrUp);
-        pvEBarrelMotherPos->add(pvIrUp);
-
-        // CutB in Tile (Positive) (outer center) 
-        volname = "IrDw"; dbManager->SetCurrentCuts(volname); //>>
-        dxIr = dbManager->CutsXpos();
-	dyIr = dbManager->CutsYpos();
-	if(m_log->level()<=MSG::DEBUG)
-	  (*m_log) << MSG::DEBUG << " IrDw: " <<dxIr<< " " <<dyIr<< endmsg;
-
-        GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) 
-		             * GeoTrf::RotateZ3D(70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherPos->add(tfIrDw);
-        pvEBarrelMotherPos->add(new GeoIdentifierTag(6));
-        pvEBarrelMotherPos->add(pvIrDw);
-
-                      tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) 
-		             * GeoTrf::RotateZ3D(-70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-
-        pvEBarrelMotherPos->add(tfIrDw);
-        pvEBarrelMotherPos->add(pvIrDw);
-      } // end if BoolCuts
+      if (m_fullGeo) {
+        if (dbManager->BoolCuts()) {
+
+          // Iron1, down
+          volname = "Iron1"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG << " Iron1: " << dxIron << " " << dyIron << endmsg;
+
+          GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2)
+                                                   * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherPos->add(tfIron1);
+          pvEBarrelMotherPos->add(new GeoIdentifierTag(1));
+          pvEBarrelMotherPos->add(pvIron1);
+
+          tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2)
+                                     * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherPos->add(tfIron1);
+          pvEBarrelMotherPos->add(pvIron1);
+
+          // Iron2, middle
+          volname = "Iron2"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG << " Iron2: " << dxIron << " " << dyIron << endmsg;
+
+          GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2)
+                                                   * GeoTrf::RotateZ3D(-84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherPos->add(tfIron2);
+          pvEBarrelMotherPos->add(new GeoIdentifierTag(2));
+          pvEBarrelMotherPos->add(pvIron2);
+
+          tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2)
+                                     * GeoTrf::RotateZ3D(84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherPos->add(tfIron2);
+          pvEBarrelMotherPos->add(pvIron2);
+
+          // Iron3, middle
+          volname = "Iron3"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG << " Iron3: " << dxIron << " " << dyIron << endmsg;
+
+          GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2)
+                                                   * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherPos->add(tfIron3);
+          pvEBarrelMotherPos->add(new GeoIdentifierTag(3));
+          pvEBarrelMotherPos->add(pvIron3);
+
+          tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2)
+                                     * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherPos->add(tfIron3);
+          pvEBarrelMotherPos->add(pvIron3);
+
+          // Heavy Iron Box
+          volname = "IrBox"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+
+          GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2)
+                                                    * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherPos->add(tfIrBoxL);
+          pvEBarrelMotherPos->add(new GeoIdentifierTag(4));
+          pvEBarrelMotherPos->add(pvIrBox);
+
+          GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2)
+                                                    * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherPos->add(tfIrBoxR);
+          pvEBarrelMotherPos->add(pvIrBox);
+
+          // CutB in Tile (Positive) (outer center)
+          volname = "IrUp"; dbManager->SetCurrentCuts(volname); //>>
+          dxIr = dbManager->CutsXpos();
+          dyIr = dbManager->CutsYpos();
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG << " IrUp: " <<dxIr<< " " <<dyIr<< endmsg;
+
+          GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                                  * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1)
+                                                  * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherPos->add(tfIrUp);
+          pvEBarrelMotherPos->add(new GeoIdentifierTag(5));
+          pvEBarrelMotherPos->add(pvIrUp);
+
+          tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                    * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,-PoZ1)
+                                    * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherPos->add(tfIrUp);
+          pvEBarrelMotherPos->add(pvIrUp);
+
+          // CutB in Tile (Positive) (outer center)
+          volname = "IrDw"; dbManager->SetCurrentCuts(volname); //>>
+          dxIr = dbManager->CutsXpos();
+          dyIr = dbManager->CutsYpos();
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG << " IrDw: " <<dxIr<< " " <<dyIr<< endmsg;
+
+          GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                                  * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1)
+                                                  * GeoTrf::RotateZ3D(70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherPos->add(tfIrDw);
+          pvEBarrelMotherPos->add(new GeoIdentifierTag(6));
+          pvEBarrelMotherPos->add(pvIrDw);
+
+          tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                    * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,-PoZ1)
+                                    * GeoTrf::RotateZ3D(-70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+
+          pvEBarrelMotherPos->add(tfIrDw);
+          pvEBarrelMotherPos->add(pvIrDw);
+        } // end if BoolCuts
       }
       //--------------------------------------------------------------------------------------------------------------
       // Ext.Barrel
-      ztrans = (PosEndCrack + (dbManager->GetEnvZLength()*Gaudi::Units::cm - EBFingerLengthPos)/2 + 19.5)*(1./Gaudi::Units::cm); 
+      ztrans = (PosEndCrack + (dbManager->GetEnvZLength()*Gaudi::Units::cm - EBFingerLengthPos)/2 + 19.5)*(1./Gaudi::Units::cm);
 
-      GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * 
-                                             GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
+      GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *
+                                                          GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
 
-      (*m_log) << MSG::INFO <<" Positioning positive ext.barrel with translation "<< ztrans*Gaudi::Units::cm << endmsg; 
+      (*m_log) << MSG::INFO <<" Positioning positive ext.barrel with translation "<< ztrans*Gaudi::Units::cm << endmsg;
 
       //
       GeoNameTag* ntEBarrelMotherPos = new GeoNameTag("EBarrelPos");
       pvTileEnvelopePosEndcap->add(tfEBarrelMotherPos);
-      pvTileEnvelopePosEndcap->add(ntEBarrelMotherPos); 
+      pvTileEnvelopePosEndcap->add(ntEBarrelMotherPos);
       pvTileEnvelopePosEndcap->add(new GeoIdentifierTag(3));
       pvTileEnvelopePosEndcap->add(pvEBarrelMotherPos);
       //
 
       //--------------------------------------------------------------------------------------------------------------
-      // Finger 
-      ztrans = (PosEndExBarrel + EBFingerLengthPos/2)*(1./Gaudi::Units::cm); 
+      // Finger
+      ztrans = (PosEndExBarrel + EBFingerLengthPos/2)*(1./Gaudi::Units::cm);
 
-      GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * 
+      GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *
                                                           GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
 
       (*m_log) << MSG::INFO <<" Positioning positive ext.barrel finger with translation ztrans= "<<ztrans*Gaudi::Units::cm<<endmsg;
 
       GeoNameTag* ntEFingerMotherPos = new GeoNameTag("TileEFingerPos");
 
-      pvTileEnvelopePosEndcap->add(tfEFingerMotherPos); 
+      pvTileEnvelopePosEndcap->add(tfEFingerMotherPos);
       pvTileEnvelopePosEndcap->add(ntEFingerMotherPos);
-      pvTileEnvelopePosEndcap->add(pvEFingerMotherPos); 
+      pvTileEnvelopePosEndcap->add(pvEFingerMotherPos);
 
       //--------------------------------------------------------------------------------------------------------------
       // Ext. Saddle Support
-      if (dbManager->BoolSaddle())
-      { ztrans = (PosEndExBarrel + DzSaddleSupport/2)*(1./Gaudi::Units::cm); 
+      if (dbManager->BoolSaddle()) {
+        ztrans = (PosEndExBarrel + DzSaddleSupport/2)*(1./Gaudi::Units::cm);
 
-        GeoTransform* tfESaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * 
+        GeoTransform* tfESaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *
                                                             GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
 
         (*m_log) << MSG::INFO <<" Positioning positive ext.barrel saddle with translation ztrans= "<<ztrans*Gaudi::Units::cm
@@ -2686,9 +2676,9 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
         GeoNameTag* ntESaddleMotherPos = new GeoNameTag("TileESaddlePos");
 
-        pvTileEnvelopePosEndcap->add(tfESaddleMotherPos); 
-        pvTileEnvelopePosEndcap->add(ntESaddleMotherPos); 
-        pvTileEnvelopePosEndcap->add(pvESaddleMotherPos); 
+        pvTileEnvelopePosEndcap->add(tfESaddleMotherPos);
+        pvTileEnvelopePosEndcap->add(ntESaddleMotherPos);
+        pvTileEnvelopePosEndcap->add(pvESaddleMotherPos);
       }
 
     }
@@ -2696,7 +2686,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
     //----------------------------------------- EBarrel Negative -----------------------------------------------------
     //
-    if(EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger
+    if (EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger
 
       dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
       double thicknessEndPlate = dbManager->TILBdzend1()*Gaudi::Units::cm;
@@ -2706,120 +2696,120 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       //*>------------------------------------------------------------------------------------------------------
       // LArPart in Tile (Negative) (close center)
-      if(m_fullGeo) {
-      if (dbManager->BoolCuts()){
-        // Iron1, down
-        volname = "Iron1"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-
-        GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2) 
-					       * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherNeg->add(tfIron1);
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(1));
-        pvEBarrelMotherNeg->add(pvIron1);
-
-                      tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2)
-					       * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherNeg->add(tfIron1);
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(2));
-        pvEBarrelMotherNeg->add(pvIron1);
-
-        // Iron2, middle
-        volname = "Iron2"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-
-        GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) 
-	                      * GeoTrf::RotateZ3D(-84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherNeg->add(tfIron2);
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(2));
-        pvEBarrelMotherNeg->add(pvIron2);
-
-                      tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2)
-                              * GeoTrf::RotateZ3D(84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherNeg->add(tfIron2);
-        pvEBarrelMotherNeg->add(pvIron2);
-
-        // Iron3, middle 
-        volname = "Iron3"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-
-        GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) 
-	                      * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherNeg->add(tfIron3);
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(3));
-        pvEBarrelMotherNeg->add(pvIron3); 
-
-                      tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2)
-                              * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherNeg->add(tfIron3);
-        pvEBarrelMotherNeg->add(pvIron3);
-
-        // Heavy Iron Box
-        volname = "IrBox"; dbManager->SetCurrentCuts(volname); //>>
-        dxIron = dbManager->CutsXpos();
-	dyIron = dbManager->CutsYpos();
-        GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2)
-                               * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherNeg->add(tfIrBoxL); 
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(4));
-        pvEBarrelMotherNeg->add(pvIrBox); 
-
-        GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2)
-		               * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherNeg->add(tfIrBoxR);
-        pvEBarrelMotherNeg->add(pvIrBox);
-
-        // LArPart in Tile (Positive) (outer center) 
-        volname = "IrUp"; dbManager->SetCurrentCuts(volname); //>>
-        dxIr = dbManager->CutsXpos();
-	dyIr = dbManager->CutsYpos();
-
-        GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) 
-		             * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherNeg->add(tfIrUp);
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(5));
-        pvEBarrelMotherNeg->add(pvIrUp);
-
-                      tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,PoZ1) 
-		             * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
-        pvEBarrelMotherNeg->add(tfIrUp);
-        pvEBarrelMotherNeg->add(pvIrUp);
-
-        // CutB in Tile (Positive) (outer center) 
-        volname = "IrDw"; dbManager->SetCurrentCuts(volname); //>>
-        dxIr = dbManager->CutsXpos();
-	dyIr = dbManager->CutsYpos();
-
-        GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) 
-		             * GeoTrf::RotateZ3D(70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-        pvEBarrelMotherNeg->add(tfIrDw);
-        pvEBarrelMotherNeg->add(new GeoIdentifierTag(6));
-        pvEBarrelMotherNeg->add(pvIrDw);
-
-                      tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) 
-                             * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,PoZ1) 
-		             * GeoTrf::RotateZ3D(-70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
-
-        pvEBarrelMotherNeg->add(tfIrDw);
-        pvEBarrelMotherNeg->add(pvIrDw);
-      } // end if BoolCuts
+      if (m_fullGeo) {
+        if (dbManager->BoolCuts()) {
+          // Iron1, down
+          volname = "Iron1"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+
+          GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2)
+                                                   * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherNeg->add(tfIron1);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(1));
+          pvEBarrelMotherNeg->add(pvIron1);
+
+          tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2)
+                                     * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherNeg->add(tfIron1);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(2));
+          pvEBarrelMotherNeg->add(pvIron1);
+
+          // Iron2, middle
+          volname = "Iron2"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+
+          GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2)
+                                                   * GeoTrf::RotateZ3D(-84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherNeg->add(tfIron2);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(2));
+          pvEBarrelMotherNeg->add(pvIron2);
+
+          tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2)
+                                     * GeoTrf::RotateZ3D(84.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherNeg->add(tfIron2);
+          pvEBarrelMotherNeg->add(pvIron2);
+
+          // Iron3, middle
+          volname = "Iron3"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+
+          GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2)
+                                                   * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherNeg->add(tfIron3);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(3));
+          pvEBarrelMotherNeg->add(pvIron3);
+
+          tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2)
+                                     * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherNeg->add(tfIron3);
+          pvEBarrelMotherNeg->add(pvIron3);
+
+          // Heavy Iron Box
+          volname = "IrBox"; dbManager->SetCurrentCuts(volname); //>>
+          dxIron = dbManager->CutsXpos();
+          dyIron = dbManager->CutsYpos();
+          GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2)
+                                                    * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherNeg->add(tfIrBoxL);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(4));
+          pvEBarrelMotherNeg->add(pvIrBox);
+
+          GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2)
+                                                    * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherNeg->add(tfIrBoxR);
+          pvEBarrelMotherNeg->add(pvIrBox);
+
+          // LArPart in Tile (Positive) (outer center)
+          volname = "IrUp"; dbManager->SetCurrentCuts(volname); //>>
+          dxIr = dbManager->CutsXpos();
+          dyIr = dbManager->CutsYpos();
+
+          GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                                  * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1)
+                                                  * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherNeg->add(tfIrUp);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(5));
+          pvEBarrelMotherNeg->add(pvIrUp);
+
+          tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                    * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,PoZ1)
+                                    * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Right
+          pvEBarrelMotherNeg->add(tfIrUp);
+          pvEBarrelMotherNeg->add(pvIrUp);
+
+          // CutB in Tile (Positive) (outer center)
+          volname = "IrDw"; dbManager->SetCurrentCuts(volname); //>>
+          dxIr = dbManager->CutsXpos();
+          dyIr = dbManager->CutsYpos();
+
+          GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                                  * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1)
+                                                  * GeoTrf::RotateZ3D(70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+          pvEBarrelMotherNeg->add(tfIrDw);
+          pvEBarrelMotherNeg->add(new GeoIdentifierTag(6));
+          pvEBarrelMotherNeg->add(pvIrDw);
+
+          tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)
+                                    * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,PoZ1)
+                                    * GeoTrf::RotateZ3D(-70.*Gaudi::Units::deg) * GeoTrf::RotateX3D(90.*Gaudi::Units::deg) * GeoTrf::RotateZ3D(90.*Gaudi::Units::deg)); // Left
+
+          pvEBarrelMotherNeg->add(tfIrDw);
+          pvEBarrelMotherNeg->add(pvIrDw);
+        } // end if BoolCuts
       }
       //
       //*>------------------------------------------------------------------------------------------------------
       // Ext.Barrel
       ztrans = (-NegEndCrack - (dbManager->GetEnvZLength()*Gaudi::Units::cm - EBFingerLengthNeg)/2 - 19.5)*(1./Gaudi::Units::cm);
 
-      GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * 
-                                             GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
+      GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *
+                                                          GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
 
       (*m_log) << MSG::INFO <<" Positioning negative ext.barrel with translation ztrans "<<ztrans*Gaudi::Units::cm<<endmsg;
-      
+
       GeoNameTag* ntEBarrelMotherNeg = new GeoNameTag("EBarrelNeg");
 
       pvTileEnvelopeNegEndcap->add(tfEBarrelMotherNeg);
@@ -2829,10 +2819,10 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       //*>------------------------------------------------------------------------------------------------------
       // Finger
-      ztrans = (-NegEndExBarrel - EBFingerLengthPos/2)*(1./Gaudi::Units::cm); 
+      ztrans = (-NegEndExBarrel - EBFingerLengthPos/2)*(1./Gaudi::Units::cm);
 
-      GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * 
-                                             GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
+      GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *
+                                                          GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
 
       (*m_log) << MSG::INFO <<" Positioning negative ext.barrel finger with translation ztrans= "<<ztrans*Gaudi::Units::cm<< endmsg;
 
@@ -2844,18 +2834,18 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       //*>------------------------------------------------------------------------------------------------------
       // Ext. Saddle Support
-      if (dbManager->BoolSaddle())
-      { ztrans = (-NegEndExBarrel - DzSaddleSupport/2)*(1./Gaudi::Units::cm); 
+      if (dbManager->BoolSaddle()) {
+        ztrans = (-NegEndExBarrel - DzSaddleSupport/2)*(1./Gaudi::Units::cm);
 
-        GeoTransform* tfESaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * 
-                                               GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
+        GeoTransform* tfESaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *
+                                                            GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
 
         (*m_log) << MSG::INFO <<" Positioning negative ext.barrel saddle with translation ztrans= "<<ztrans*Gaudi::Units::cm
                  << endmsg;
 
         GeoNameTag* ntESaddleMotherNeg = new GeoNameTag("TileESaddleNeg");
 
-        pvTileEnvelopeNegEndcap->add(tfESaddleMotherNeg); 
+        pvTileEnvelopeNegEndcap->add(tfESaddleMotherNeg);
         pvTileEnvelopeNegEndcap->add(ntESaddleMotherNeg);
         pvTileEnvelopeNegEndcap->add(pvESaddleMotherNeg);
       }
@@ -2865,7 +2855,7 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     // ---------------------------------------- ITC Positive -----------------------------------------------------
     //
 
-    if(EnvType == 5) { // positive ITC attached to positive ext.barrel
+    if (EnvType == 5) { // positive ITC attached to positive ext.barrel
 
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
 
@@ -2873,11 +2863,11 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       //std::cout <<" ztrans "<<ztrans<<" PosEndBarrelFinger/Gaudi::Units::cm "<<PosEndBarrelFinger/Gaudi::Units::cm
       //          <<" dbManager->TILBdzmodul()/2*Gaudi::Units::cm"<<dbManager->TILBdzmodul()/2<<"\n";
-      
+
       (*m_log) << MSG::INFO <<" Positioning positive ITC with translation "<<ztrans*Gaudi::Units::cm<< endmsg;
 
-      GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * 
-                                         GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
+      GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) *
+                                                      GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
 
       GeoNameTag* ntITCMotherPos = new GeoNameTag("ITCPos");
 
@@ -2890,8 +2880,8 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       (*m_log) << MSG::INFO <<" Positioning positive Gap with translation "<<ztrans*Gaudi::Units::cm<<endmsg;
 
-      GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* 
-                                         GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
+      GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*
+                                                      GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
 
       GeoNameTag* ntGapMotherPos = new GeoNameTag("GapPos");
 
@@ -2905,34 +2895,34 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       (*m_log) << MSG::INFO <<" Positioning positive Crack with translation "<<ztrans*Gaudi::Units::cm<<endmsg;
 
-      GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* 
-                                         GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
- 
+      GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*
+                                                        GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
+
       GeoNameTag* ntCrackMotherPos = new GeoNameTag("CrackPos");
 
       pvTileEnvelopePosEndcap->add(tfCrackMotherPos);
       pvTileEnvelopePosEndcap->add(ntCrackMotherPos);
       pvTileEnvelopePosEndcap->add(pvCrackMotherPos);
-      }
-    
+    }
+
     //
     // ---------------------------------------- ITC Negative -----------------------------------------------------
     //
 
     // negative ITC attached to negative ext.barrel
-    if(EnvType == 4) { 
+    if (EnvType == 4) {
 
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
       ztrans = -NegEndBarrelFinger*(1./Gaudi::Units::cm) - dbManager->TILBdzmodul()/2;
 
       (*m_log) << MSG::INFO <<" Positioning negative ITC with translation "<<ztrans*Gaudi::Units::cm<<endmsg;
 
-      GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* 
-                                         GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
+      GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*
+                                                      GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
 
       GeoNameTag* ntITCMotherNeg = new GeoNameTag("ITCNeg");
 
-      pvTileEnvelopeNegEndcap->add(tfITCMotherNeg); 
+      pvTileEnvelopeNegEndcap->add(tfITCMotherNeg);
       pvTileEnvelopeNegEndcap->add(ntITCMotherNeg);
       pvTileEnvelopeNegEndcap->add(pvITCMotherNeg);
 
@@ -2941,14 +2931,14 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       (*m_log) << MSG::INFO <<" Positioning negative Gap with translation "<<ztrans*Gaudi::Units::cm<<endmsg;
 
-      GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* 
-                                         GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
+      GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*
+                                                      GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
 
       GeoNameTag* ntGapMotherNeg = new GeoNameTag("GapNeg");
 
       pvTileEnvelopeNegEndcap->add(tfGapMotherNeg);
       pvTileEnvelopeNegEndcap->add(ntGapMotherNeg);
-      pvTileEnvelopeNegEndcap->add(pvGapMotherNeg); 
+      pvTileEnvelopeNegEndcap->add(pvGapMotherNeg);
 
       // Crack
       dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
@@ -2956,8 +2946,8 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 
       (*m_log) << MSG::INFO <<" Positioning negative Crack with translation "<<ztrans*Gaudi::Units::cm<<endmsg;
 
-      GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)* 
-                                           GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
+      GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm)*
+                                                        GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*Gaudi::Units::deg));
 
       GeoNameTag* ntCrackMotherNeg = new GeoNameTag("CrackNeg");
 
@@ -2968,79 +2958,78 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     }
   }  // EnvCounter, end
 
-     //
-     // creating Descriptiors and CaloDetDescrElements 
-     // 
-     (*m_log) << MSG::DEBUG << "Creating descriptors for " << dbManager->GetNumberOfEnv() << " envelopes..." << endmsg;
-
-     int nModulesInSection[6] = {0,0,0,0,0,0};
-     double zShiftInSection[6] = {0.0,0.0,0.0,0.0,0.0,0.0,};
-
-
-     for(int EnvCounter = 0; EnvCounter < dbManager->GetNumberOfEnv(); ++EnvCounter){ //Loop over Envelopes
-
-       dbManager->SetCurrentEnvByIndex(EnvCounter);
-       int EnvType = dbManager->GetEnvType();
-       int NumberOfMod = dbManager->GetEnvNModules();
-       double Zshift = dbManager->GetEnvZShift()*Gaudi::Units::cm;
-
-       if(m_log->level()<=MSG::DEBUG)
-	 (*m_log) << MSG::DEBUG 
-		  << " EnvCounter is " << EnvCounter
-		  << " EnvType is " << EnvType
-		  << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm"
-		  << endmsg;
-
-       // Central barrel 
-       if(EnvType == 1 || EnvType == 0) { 
-         nModulesInSection[0] = nModulesInSection[1] = NumberOfMod;
-         zShiftInSection[0] = zShiftInSection[1] = Zshift;
-       } else if(EnvType < 6) {
-         nModulesInSection[EnvType] = NumberOfMod;
-         zShiftInSection[EnvType] = Zshift;
-       }
-     }
-
-   const TileID* tileID = m_detectorManager->get_id();
- 
-   unsigned int dete[6] = {TILE_REGION_CENTRAL,TILE_REGION_CENTRAL,TILE_REGION_EXTENDED,TILE_REGION_EXTENDED,
-                           TILE_REGION_GAP,TILE_REGION_GAP};
-   int side[6] = {0,1,0,1,0,1};
-  
-
-   (*m_log) << MSG::DEBUG << "Loop over Tile detector regions, and call computeCellDim() when needed..." << endmsg; 
-   for (int ii=0; ii<6; ++ii) {
-     
-     (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << endmsg; 
-     
-     if (ii%2 == 0) {
-        (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << " --> calling computeCellDim()..." << endmsg; 
-        sectionBuilder->computeCellDim(m_detectorManager, dete[ii],
-                                       m_switches.addPlatesToCell,
-                                       zShiftInSection[ii+1], // zShiftPos
-                                       zShiftInSection[ii]);  // zShiftNeg
-     }
-     
-     (*m_log) << MSG::DEBUG << "calling fillDescriptor()..." << endmsg; 
-     TileDetDescriptor* descriptor = new TileDetDescriptor();
-     sectionBuilder->fillDescriptor(descriptor, dete[ii], side[ii],
-                                    m_switches.testBeam,        // set to false - ATLAS geometry
-                                    m_switches.addPlatesToCell, // add front/end plates to cell volume
-                                    nModulesInSection[ii],   // 0-64 modules
-                                    zShiftInSection[ii]);    // Z-shift
-     
-     (*m_log) << MSG::DEBUG << "Get an Identifier for the region and add it to the detectorManager..." << endmsg; 
-     Identifier idRegion = tileID->region_id(ii);
-     descriptor->set(idRegion);
-     m_detectorManager->add(descriptor); 
-     m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
-   }
-
-  // --------- ----------- --------- -------- ------ --------- ------- ---------- 
+  //
+  // creating Descriptiors and CaloDetDescrElements
+  //
+  (*m_log) << MSG::DEBUG << "Creating descriptors for " << dbManager->GetNumberOfEnv() << " envelopes..." << endmsg;
+
+  int nModulesInSection[6] = {0,0,0,0,0,0};
+  double zShiftInSection[6] = {0.0,0.0,0.0,0.0,0.0,0.0,};
+
+
+  for (int EnvCounter = 0; EnvCounter < dbManager->GetNumberOfEnv(); ++EnvCounter) { //Loop over Envelopes
+
+    dbManager->SetCurrentEnvByIndex(EnvCounter);
+    int EnvType = dbManager->GetEnvType();
+    int NumberOfMod = dbManager->GetEnvNModules();
+    double Zshift = dbManager->GetEnvZShift()*Gaudi::Units::cm;
+
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG
+               << " EnvCounter is " << EnvCounter
+               << " EnvType is " << EnvType
+               << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm"
+               << endmsg;
+
+    // Central barrel
+    if (EnvType == 1 || EnvType == 0) {
+      nModulesInSection[0] = nModulesInSection[1] = NumberOfMod;
+      zShiftInSection[0] = zShiftInSection[1] = Zshift;
+    } else if (EnvType < 6) {
+      nModulesInSection[EnvType] = NumberOfMod;
+      zShiftInSection[EnvType] = Zshift;
+    }
+  }
+
+  const TileID* tileID = m_detectorManager->get_id();
+
+  unsigned int dete[6] = {TILE_REGION_CENTRAL,TILE_REGION_CENTRAL,TILE_REGION_EXTENDED,TILE_REGION_EXTENDED,
+                          TILE_REGION_GAP,TILE_REGION_GAP};
+  int side[6] = {0,1,0,1,0,1};
+
+
+  (*m_log) << MSG::DEBUG << "Loop over Tile detector regions, and call computeCellDim() when needed..." << endmsg;
+  for (int ii=0; ii<6; ++ii) {
+
+    (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << endmsg;
+
+    if (ii%2 == 0) {
+      (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << " --> calling computeCellDim()..." << endmsg;
+      sectionBuilder->computeCellDim(m_detectorManager, dete[ii],
+                                     m_switches.addPlatesToCell,
+                                     zShiftInSection[ii+1], // zShiftPos
+                                     zShiftInSection[ii]);  // zShiftNeg
+    }
+
+    (*m_log) << MSG::DEBUG << "calling fillDescriptor()..." << endmsg;
+    TileDetDescriptor* descriptor = new TileDetDescriptor();
+    sectionBuilder->fillDescriptor(descriptor, dete[ii], side[ii],
+                                   m_switches.testBeam,        // set to false - ATLAS geometry
+                                   m_switches.addPlatesToCell, // add front/end plates to cell volume
+                                   nModulesInSection[ii],   // 0-64 modules
+                                   zShiftInSection[ii]);    // Z-shift
+
+    (*m_log) << MSG::DEBUG << "Get an Identifier for the region and add it to the detectorManager..." << endmsg;
+    Identifier idRegion = tileID->region_id(ii);
+    descriptor->set(idRegion);
+    m_detectorManager->add(descriptor);
+    m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
+  }
+
+  // --------- ----------- --------- -------- ------ --------- ------- ----------
   GeoNameTag *nTag = new GeoNameTag("Tile");
 
-  if(BAR)
-  {
+  if (BAR) {
     world->add(nTag);
 
     // Top transform for the Central barrel
@@ -3060,11 +3049,10 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     world->add(pvTileEnvelopeBarrel);
     m_detectorManager->addTreeTop(pvTileEnvelopeBarrel);
   }
- 
-  if(EBA)
-  {
+
+  if (EBA) {
     world->add(nTag);
- 
+
     // Top transform for the Positive endcap
     dbManager->SetCurrentEnvByType(3);
     GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi());
@@ -3082,9 +3070,8 @@ void TileAtlasFactory::create(GeoPhysVol *world)
     world->add(pvTileEnvelopePosEndcap);
     m_detectorManager->addTreeTop(pvTileEnvelopePosEndcap);
   }
- 
-  if(EBC)
-  {
+
+  if (EBC) {
     world->add(nTag);
 
     // Top transform for the Negative endcap
@@ -3114,25 +3101,24 @@ void TileAtlasFactory::create(GeoPhysVol *world)
 // Checking geometry dimensions for all directions
 
 void TileAtlasFactory::checking(const std::string& Name, bool print, int level,
-                                double X1, double X2, double Y1, double Y2, double Z) 
+                                double X1, double X2, double Y1, double Y2, double Z)
 {
   double rless = .150; //150 [mkm]
   std::string Step[8] = {" ","  ","   ","    ","     ","      ","       ","        "};
 
-  if (print)
-   {
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG <<Step[level]<<Name<<"-"<<level
-		<<" dX1,dX2= "<<X1<<","<<X2<<" dY1,dY2= "<<Y1<<","<<Y2<<",dZ= "<<Z
-		<<endmsg;
-   }
-  if (X1 < rless && X2 < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, X1 or X2<0 "<<endmsg;
-   }
-  if (Y1 < rless && Y2 < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Y1 or Y2<0 "<<endmsg;
-   }
-  if (Z < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Z<0   "<<endmsg;
-   } 
-} 
+  if (print) {
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG <<Step[level]<<Name<<"-"<<level
+               <<" dX1,dX2= "<<X1<<","<<X2<<" dY1,dY2= "<<Y1<<","<<Y2<<",dZ= "<<Z
+               <<endmsg;
+  }
+  if (X1 < rless && X2 < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, X1 or X2<0 "<<endmsg;
+  }
+  if (Y1 < rless && Y2 < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Y1 or Y2<0 "<<endmsg;
+  }
+  if (Z < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Z<0   "<<endmsg;
+  }
+}
diff --git a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.h b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.h
index 568ab488a464aa6688b97fb05a7d896148673294..d8df7d52d885d492bee9ca1e7236352a16424770 100755
--- a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.h
+++ b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.h
@@ -21,17 +21,18 @@
 class MsgStream;
 class StoreGateSvc;
 
+
 class TileAtlasFactory : public GeoVDetectorFactory
 {
-public:
-  
+ public:
+
   /** Constructor */
   TileAtlasFactory(StoreGateSvc *pDetStore, TileDetDescrManager *manager,
                    const TileSwitches & switches, MsgStream *log, bool fullGeo);
-  
+
   /** Destructor */
   ~TileAtlasFactory();
-  
+
   /** Creation of Tile geometry */
   virtual void create(GeoPhysVol *world);
 
@@ -45,14 +46,14 @@ public:
       @param X1,X2,Y1,Y2,DZ - checking variables
   */
   void checking(const std::string& VolumeName, bool print, int level,
-                double X1, double X2, double Y1, double Y2, double Z); 
+                double X1, double X2, double Y1, double Y2, double Z);
+
+ private:
 
-private:  
-  
   /** Detector pointer to Store Gate service */
   StoreGateSvc              *m_detectorStore;
 
-  /** Detector pointer to TileDetDescrManager */  
+  /** Detector pointer to TileDetDescrManager */
   TileDetDescrManager       *m_detectorManager;
 
   /** Get message SVC */
@@ -69,4 +70,3 @@ private:
 };
 
 #endif
-
diff --git a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx
index 697a233431d090ba708f055c7486a55a2a8e3cb3..4bc44db3ea2e4e4623d318ada27978b6bf71bd20 100755
--- a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx
+++ b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "TileDetectorFactory.h"
@@ -34,34 +34,33 @@
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/SystemOfUnits.h"
 
-#include <stdexcept>
-#include <iostream>
-
 using namespace GeoGenfun;
 using namespace GeoXF;
-   
+
 
 // Constructor:
 TileDetectorFactory::TileDetectorFactory(StoreGateSvc *pDetStore,
                                          TileDetDescrManager *manager,
                                          const TileSwitches & switches,
                                          MsgStream *log)
-  : m_detectorStore(pDetStore)
-  , m_detectorManager(manager)
-  , m_log(log)
-  , m_switches(switches)
-  , m_verbose(log->level()<=MSG::VERBOSE)
+        : m_detectorStore(pDetStore)
+        , m_detectorManager(manager)
+        , m_log(log)
+        , m_switches(switches)
+        , m_verbose(log->level()<=MSG::VERBOSE)
 {
   m_switches.testBeam = false;
 }
-  
+
+
 // Destructor:
 TileDetectorFactory::~TileDetectorFactory()
 {
 }
-  
+
+
 // Creation of geometry:
-void TileDetectorFactory::create(GeoPhysVol *world) 
+void TileDetectorFactory::create(GeoPhysVol *world)
 {
   (*m_log) << MSG::INFO <<" Entering TileDetectorFactory::create()" << endmsg;
 
@@ -77,10 +76,9 @@ void TileDetectorFactory::create(GeoPhysVol *world)
 
   // -------- -------- MATERIAL MANAGER -------- ----------
   StoredMaterialManager* theMaterialManager = nullptr;
-  if (StatusCode::SUCCESS != m_detectorStore->retrieve(theMaterialManager, "MATERIALS")) 
-  { 
-    (*m_log) << MSG::ERROR << "Could not find Material Manager MATERIALS" << endmsg; 
-    return; 
+  if (StatusCode::SUCCESS != m_detectorStore->retrieve(theMaterialManager, "MATERIALS")) {
+    (*m_log) << MSG::ERROR << "Could not find Material Manager MATERIALS" << endmsg;
+    return;
   }
   const GeoMaterial* matAir = theMaterialManager->getMaterial("std::Air");
 
@@ -89,7 +87,7 @@ void TileDetectorFactory::create(GeoPhysVol *world)
   TileGeoSectionBuilder* sectionBuilder = new TileGeoSectionBuilder(theMaterialManager,dbManager,m_switches,m_log);
 
   // --------------- TILE  -------  TILE  --------- TILE ---------- TILE ------------
-  // Envelope creation. 
+  // Envelope creation.
   // Building three tree tops for standard setup and only one for commissioning
   GeoLogVol *lvTileEnvelopeBarrel = 0, *lvTileEnvelopePosEndcap = 0, *lvTileEnvelopeNegEndcap = 0;
   GeoPhysVol *pvTileEnvelopeBarrel = 0, *pvTileEnvelopePosEndcap = 0, *pvTileEnvelopeNegEndcap = 0;
@@ -97,8 +95,7 @@ void TileDetectorFactory::create(GeoPhysVol *world)
   bool globalsExist = dbManager->GetNumberOfEnv()!=0;
   int ModuleNcp =0;
 
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL))
-  {
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL)) {
     // Z planes
     dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
     double endCentralBarrel = dbManager->TILBdzmodul()/2.*Gaudi::Units::cm;
@@ -118,10 +115,10 @@ void TileDetectorFactory::create(GeoPhysVol *world)
 
     // Offsets
     /* sb
-    double shiftSec1 = (beginCrack + endCentralBarrel)/2.;
-    double shiftSec2 = (endCrack + beginCrack)/2.;
-    double shiftSec3 = (endExtendedBarrel + endCrack)/2.;
-    double shiftSec4 = (endTile + endExtendedBarrel)/2.;
+       double shiftSec1 = (beginCrack + endCentralBarrel)/2.;
+       double shiftSec2 = (endCrack + beginCrack)/2.;
+       double shiftSec3 = (endExtendedBarrel + endCrack)/2.;
+       double shiftSec4 = (endTile + endExtendedBarrel)/2.;
     */
 
     // R minimals
@@ -136,10 +133,10 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
     double rminExtended = dbManager->TILBrminimal()*Gaudi::Units::cm;
     double rminFinger = dbManager->TILBrmax()*Gaudi::Units::cm;
-    
+
     // R maximal
     double rmaxTotal = dbManager->TILErmam()*Gaudi::Units::cm;
-    
+
     GeoPcon* tileEnvPconeBarrel    = new GeoPcon(0, 360*Gaudi::Units::deg);
     GeoPcon* tileEnvPconePosEndcap = new GeoPcon(0, 360*Gaudi::Units::deg);
     GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(0, 360*Gaudi::Units::deg);
@@ -155,7 +152,7 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     tileEnvPconeNegEndcap->addPlane(-beginITC2,rminITC,rmaxTotal);
     tileEnvPconeNegEndcap->addPlane(-beginITC2,rminITC1,rmaxTotal);
     tileEnvPconeNegEndcap->addPlane(-endBarrelFinger,rminITC1,rmaxTotal);
-    // Barrel 
+    // Barrel
 
     tileEnvPconeBarrel->addPlane(-endBarrelFinger,rminFinger,rmaxTotal);
     tileEnvPconeBarrel->addPlane(-endCentralBarrel,rminFinger,rmaxTotal);
@@ -185,20 +182,18 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     pvTileEnvelopeNegEndcap = new GeoPhysVol(lvTileEnvelopeNegEndcap);
 
     /*
-    const GeoShape& bbqEnvelope = ((*tileEnvPconeBarrel)<<GeoTrf::TranslateX3D(1000.)).
+      const GeoShape& bbqEnvelope = ((*tileEnvPconeBarrel)<<GeoTrf::TranslateX3D(1000.)).
       add(((*tileEnvPconePosEndcap)<<GeoTrf::TranslateZ3D(0.))).
       add(((*tileEnvPconeNegEndcap)<<GeoTrf::TranslateZ3D(0.)));
-    lvTileEnvelope = new GeoLogVol("Tile",&bbqEnvelope,matAir);
-    pvTileEnvelope = new GeoPhysVol(lvTileEnvelope);
+      lvTileEnvelope = new GeoLogVol("Tile",&bbqEnvelope,matAir);
+      pvTileEnvelope = new GeoPhysVol(lvTileEnvelope);
 
-    pvTileEnvelope->add(new GeoTransform(GeoTrf::TranslateX3D(1000.)));
-    pvTileEnvelope->add(pvTileEnvelopeBarrel);
-    pvTileEnvelope->add(pvTileEnvelopePosEndcap);
-    pvTileEnvelope->add(pvTileEnvelopeNegEndcap);
+      pvTileEnvelope->add(new GeoTransform(GeoTrf::TranslateX3D(1000.)));
+      pvTileEnvelope->add(pvTileEnvelopeBarrel);
+      pvTileEnvelope->add(pvTileEnvelopePosEndcap);
+      pvTileEnvelope->add(pvTileEnvelopeNegEndcap);
     */
-  }
-  else
-  {
+  } else {
     dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
     dbManager->SetCurrentTifg(1);
 
@@ -209,10 +204,10 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     // R minimals
     double rminBarrel = dbManager->TILBrminimal()*Gaudi::Units::cm;
     double rminFinger = dbManager->TILBrmax()*Gaudi::Units::cm;
-    
+
     // R maximal
     double rmaxTotal = dbManager->TILErmam()*Gaudi::Units::cm;
-    
+
     GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*Gaudi::Units::deg);
     tileEnvPconeBarrel->addPlane(-endEnvelope,rminFinger,rmaxTotal);
     tileEnvPconeBarrel->addPlane(-endCentralBarrel,rminFinger,rmaxTotal);
@@ -236,12 +231,11 @@ void TileDetectorFactory::create(GeoPhysVol *world)
   //------------------------------- B A R R E L --------------------------------------
   // Tube - barrel mother
 
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL))
-  {
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL)) {
 
     GeoTube* barrelMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm,
-					dbManager->TILErmam()*Gaudi::Units::cm,
-					dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
+                                        dbManager->TILErmam()*Gaudi::Units::cm,
+                                        dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
 
     GeoLogVol* lvBarrelMother = new GeoLogVol("Barrel",barrelMother,matAir);
     GeoFullPhysVol* pvBarrelMother = new GeoFullPhysVol(lvBarrelMother);
@@ -255,47 +249,46 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1));
 
     GeoTrd* barrelModuleMother = new GeoTrd(thicknessWedgeMother/2.,
-					    thicknessWedgeMother/2.,
-					    dy1WedgeMother,
-					    dy2WedgeMother,
-					    heightWedgeMother/2.);
-    
+                                            thicknessWedgeMother/2.,
+                                            dy1WedgeMother,
+                                            dy2WedgeMother,
+                                            heightWedgeMother/2.);
+
     GeoLogVol* lvBarrelModuleMother = new GeoLogVol("BarrelModule",barrelModuleMother,matAir);
     GeoPhysVol* pvBarrelModuleMother = new GeoPhysVol(lvBarrelModuleMother);
 
     // Fill the section
     sectionBuilder->fillSection(pvBarrelModuleMother,
-    				1,
-    				dbManager->TILBrmaximal(),
-    				dbManager->TILBrminimal(),
-    				dzGlue,
-    				deltaPhi);
+                                1,
+                                dbManager->TILBrmaximal(),
+                                dbManager->TILBrminimal(),
+                                dzGlue,
+                                deltaPhi);
 /*
-  // Position N barrel modules inside barrel mother
-  for (j=0; j<dbManager->TILEnmodul(); j++)
-  {
-    phi = j*deltaPhi;
-
-    GeoTransform* zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(phi*Gaudi::Units::deg));
-    GeoTransform* xtransMod = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2. * cm));
-    GeoTransform* yrotateMod = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg));
-
-    pvBarrelMother->add(zrotateMod);
-    pvBarrelMother->add(xtransMod);
-    pvBarrelMother->add(yrotateMod);
-    pvBarrelMother->add(pvBarrelModuleMother);
-  }
+// Position N barrel modules inside barrel mother
+for (j=0; j<dbManager->TILEnmodul(); j++) {
+phi = j*deltaPhi;
+
+GeoTransform* zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(phi*Gaudi::Units::deg));
+GeoTransform* xtransMod = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2. * cm));
+GeoTransform* yrotateMod = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg));
+
+pvBarrelMother->add(zrotateMod);
+pvBarrelMother->add(xtransMod);
+pvBarrelMother->add(yrotateMod);
+pvBarrelMother->add(pvBarrelModuleMother);
+}
 */
 
     // --- Using the parameterization -----
     TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
     GeoSerialTransformer* stBarrelModuleMother = new GeoSerialTransformer(pvBarrelModuleMother,
-									  &xfBarrelModuleMother,
-									  dbManager->TILEnmodul());
+                                                                          &xfBarrelModuleMother,
+                                                                          dbManager->TILEnmodul());
 
     pvBarrelMother->add(new GeoSerialIdentifier(1));
     pvBarrelMother->add(stBarrelModuleMother);
-    
+
     GeoNameTag* ntBarrelMother = new GeoNameTag("TileBarrel");
     pvTileEnvelopeBarrel->add(ntBarrelMother);
     pvTileEnvelopeBarrel->add(pvBarrelMother);
@@ -303,48 +296,46 @@ void TileDetectorFactory::create(GeoPhysVol *world)
 
   int nModules;
   float zShift;
-  
-  if(globalsExist)
-  {
+
+  if (globalsExist) {
     dbManager->SetCurrentEnvByType(1);
     nModules=dbManager->GetEnvNModules();
     zShift=dbManager->GetEnvZShift()*Gaudi::Units::cm;
 
-    sectionBuilder->computeCellDim(m_detectorManager, 
+    sectionBuilder->computeCellDim(m_detectorManager,
                                    TILE_REGION_CENTRAL,
                                    m_switches.addPlatesToCell,
                                    zShift,  // shift for positive eta (normally zero)
                                    zShift); // shift for negative eta is the same
-  } else 
-  {
+  } else {
     nModules=dbManager->TILEnmodul();
     zShift=0.0;
-    // do not compute cell volumes for old setups (before DC3), 
+    // do not compute cell volumes for old setups (before DC3),
     // because cell-size table might be missing in DB
   }
-  
+
   // -- Readout
   // Create two descriptor objects corresponding to positive and negative half of central barrel
   TileDetDescriptor* descriptor = new TileDetDescriptor();
 
   sectionBuilder->fillDescriptor(descriptor,
-                                 TILE_REGION_CENTRAL,  
+                                 TILE_REGION_CENTRAL,
                                  negSide,
                                  m_switches.testBeam,
                                  m_switches.addPlatesToCell,
                                  nModules,
                                  zShift);
-    
+
   Identifier idRegion = tileID->region_id(nregion++);
   descriptor->set(idRegion);
 
-  m_detectorManager->add(descriptor); 
+  m_detectorManager->add(descriptor);
   m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
-  
+
   descriptor = new TileDetDescriptor();
 
   sectionBuilder->fillDescriptor(descriptor,
-                                 TILE_REGION_CENTRAL,  
+                                 TILE_REGION_CENTRAL,
                                  posSide,
                                  m_switches.testBeam,
                                  m_switches.addPlatesToCell,
@@ -353,19 +344,18 @@ void TileDetectorFactory::create(GeoPhysVol *world)
 
   idRegion = tileID->region_id(nregion++);
   descriptor->set(idRegion);
-  
-  m_detectorManager->add(descriptor); 
+
+  m_detectorManager->add(descriptor);
   m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
 
   //-------------------------- E X T E N D E D   B A R R E L ---------------------------------
   // Tube - barrel mother
 
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL))
-  {
-  
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL)) {
+
     GeoTube* ebarrelMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm,
-					 dbManager->TILErmam()*Gaudi::Units::cm,
-					 dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
+                                         dbManager->TILErmam()*Gaudi::Units::cm,
+                                         dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
 
     GeoLogVol* lvEBarrelMother = new GeoLogVol("EBarrel",ebarrelMother,matAir);
     GeoFullPhysVol* pvEBarrelMotherPos = new GeoFullPhysVol(lvEBarrelMother);
@@ -378,41 +368,41 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
 
     dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
-    
+
     GeoTrd* ebarrelModuleMother = new GeoTrd(thicknessWedgeMother/2.,
-					     thicknessWedgeMother/2.,
-					     dy1WedgeMother,
-					     dy2WedgeMother,
-					     heightWedgeMother/2.);
+                                             thicknessWedgeMother/2.,
+                                             dy1WedgeMother,
+                                             dy2WedgeMother,
+                                             heightWedgeMother/2.);
 
     GeoLogVol* lvEBarrelModuleMother = new GeoLogVol("EBarrelModule",ebarrelModuleMother,matAir);
     GeoPhysVol* pvEBarrelModuleMother = new GeoPhysVol(lvEBarrelModuleMother);
-    
+
     // Fill the section
     sectionBuilder->fillSection(pvEBarrelModuleMother,
-    				2,
-    				dbManager->TILBrmaximal(),
-    				dbManager->TILBrminimal(),
-    				dzGlue,
-    				deltaPhi);
+                                2,
+                                dbManager->TILBrmaximal(),
+                                dbManager->TILBrminimal(),
+                                dzGlue,
+                                deltaPhi);
 
     // --- Position N modules inside mother (positive/negative) -----
     TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
     TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
 
     GeoSerialTransformer* stEBarrelModuleMotherPos = new GeoSerialTransformer(pvEBarrelModuleMother,
-									      &xfEBarrelModuleMotherPos,
-									      dbManager->TILEnmodul());
+                                                                              &xfEBarrelModuleMotherPos,
+                                                                              dbManager->TILEnmodul());
 
-    pvEBarrelMotherPos->add(new GeoSerialIdentifier(1));						    
+    pvEBarrelMotherPos->add(new GeoSerialIdentifier(1));
     pvEBarrelMotherPos->add(stEBarrelModuleMotherPos);
 
 
     GeoSerialTransformer* stEBarrelModuleMotherNeg = new GeoSerialTransformer(pvEBarrelModuleMother,
-									      &xfEBarrelModuleMotherNeg,
-									      dbManager->TILEnmodul());
+                                                                              &xfEBarrelModuleMotherNeg,
+                                                                              dbManager->TILEnmodul());
 
-    pvEBarrelMotherNeg->add(new GeoSerialIdentifier(1));						    
+    pvEBarrelMotherNeg->add(new GeoSerialIdentifier(1));
     pvEBarrelMotherNeg->add(stEBarrelModuleMotherNeg);
 
 
@@ -422,7 +412,7 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     pvTileEnvelopePosEndcap->add(ntEBarrelMotherPos);
     pvTileEnvelopePosEndcap->add(pvEBarrelMotherPos);
 
-    
+
     GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm));
     GeoNameTag* ntEBarrelMotherNeg = new GeoNameTag("TileEBarrelNeg");
     pvTileEnvelopeNegEndcap->add(tfEBarrelMotherNeg);
@@ -432,9 +422,8 @@ void TileDetectorFactory::create(GeoPhysVol *world)
 
   int nModulesNeg,nModulesPos;
   float zShiftNeg,zShiftPos;
-  
-  if(globalsExist)
-  {
+
+  if (globalsExist) {
     dbManager->SetCurrentEnvByType(2);
     nModulesNeg=dbManager->GetEnvNModules();
     zShiftNeg=dbManager->GetEnvZShift()*Gaudi::Units::cm;
@@ -447,53 +436,51 @@ void TileDetectorFactory::create(GeoPhysVol *world)
                                    m_switches.addPlatesToCell,
                                    zShiftPos,  // shift for positive eta
                                    zShiftNeg); // shift for negative eta
-  } else
-  {
+  } else {
     nModulesPos=nModulesNeg=dbManager->TILEnmodul();
     zShiftPos=zShiftNeg=dbManager->TILEzshift()*Gaudi::Units::cm;
-    // do not compute cell volumes for old setups (before DC3), 
+    // do not compute cell volumes for old setups (before DC3),
     // because cell-size table might be missing in DB
   }
-  
+
   // -- Readout
   // Create two descriptor objects corresponding to positive and negative half of extended barrel
   descriptor = new TileDetDescriptor();
 
   sectionBuilder->fillDescriptor(descriptor,
-                                 TILE_REGION_EXTENDED,   
+                                 TILE_REGION_EXTENDED,
                                  negSide,
                                  m_switches.testBeam,
                                  m_switches.addPlatesToCell,
                                  nModulesNeg,
                                  zShiftNeg);
-  
+
   idRegion = tileID->region_id(nregion++);
   descriptor->set(idRegion);
-  
-  m_detectorManager->add(descriptor); 
+
+  m_detectorManager->add(descriptor);
   m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
-  
+
   descriptor = new TileDetDescriptor();
 
   sectionBuilder->fillDescriptor(descriptor,
-                                 TILE_REGION_EXTENDED,   
+                                 TILE_REGION_EXTENDED,
                                  posSide,
                                  m_switches.testBeam,
                                  m_switches.addPlatesToCell,
                                  nModulesPos,
                                  zShiftPos);
-  
+
   idRegion = tileID->region_id(nregion++);
   descriptor->set(idRegion);
-  
-  m_detectorManager->add(descriptor); 
+
+  m_detectorManager->add(descriptor);
   m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
 
   //-------------------------- I T C ---------------------------------
   // Tube - barrel mother
 
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2))
-  {
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2)) {
     //sb double rMinITC = dbManager->TILBrminimal();
     double rMinITC2 = dbManager->TILBrminimal();
     double rMaxITC2 = dbManager->TILBrmaximal();
@@ -502,8 +489,8 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
 
     GeoTube* itcWheel1 = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm,
-				     dbManager->TILErmam()*Gaudi::Units::cm,
-				     dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
+                                     dbManager->TILErmam()*Gaudi::Units::cm,
+                                     dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
 
     GeoTube* itcWheel2 = new GeoTube(rMinITC2*Gaudi::Units::cm,rMaxITC2*Gaudi::Units::cm,dzITC2/2.*Gaudi::Units::cm);
     GeoTrf::Translate3D itcWheel2OffsetPos(0.,0.,(dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm);
@@ -527,10 +514,10 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     dy2WedgeMother = dbManager->TILBrmaximal()* tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
 
     GeoTrd* itcModuleSub1 = new GeoTrd(thicknessWedgeMother/2.,
-				       thicknessWedgeMother/2.,
-				       dy1WedgeMother,
-				       dy2WedgeMother,
-				       heightWedgeMother/2.);
+                                       thicknessWedgeMother/2.,
+                                       dy1WedgeMother,
+                                       dy2WedgeMother,
+                                       heightWedgeMother/2.);
 
     // -- second sub shape
     thicknessWedgeMother = dzITC2 * Gaudi::Units::cm;
@@ -539,14 +526,14 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     dy2WedgeMother = rMaxITC2* tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
 
     GeoTrd* itcModuleSub2 = new GeoTrd(thicknessWedgeMother/2.,
-				       thicknessWedgeMother/2.,
-				       dy1WedgeMother,
-				       dy2WedgeMother,
-				       heightWedgeMother/2.);
+                                       thicknessWedgeMother/2.,
+                                       dy1WedgeMother,
+                                       dy2WedgeMother,
+                                       heightWedgeMother/2.);
 
     GeoTrf::Translate3D itcModuleSubShift ((dbManager->TILBdzmodul()-dzITC2)/2*Gaudi::Units::cm,
-				      0.,
-				      ((rMinITC2+rMaxITC2)-(dbManager->TILBrmaximal()+dbManager->TILBrminimal()))/2.*Gaudi::Units::cm);
+                                           0.,
+                                           ((rMinITC2+rMaxITC2)-(dbManager->TILBrmaximal()+dbManager->TILBrminimal()))/2.*Gaudi::Units::cm);
 
     const GeoShapeUnion& itcModuleMother = itcModuleSub1->add(*itcModuleSub2<<itcModuleSubShift);
 
@@ -557,85 +544,85 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     //In plug1 it's necessary to produce GeoShapeUnion for mother volume that is composed by two parts:
     // 1. Mother for absorber and girder
     // 2. Mother for frontplate (since it's short)
-    
+
     //First submother
     thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
     heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * Gaudi::Units::cm;
     dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
     dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
+
     dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
-    
+
     GeoTrd* plug1SubMother = new GeoTrd(thicknessWedgeMother/2.,
-					thicknessWedgeMother/2.,
-					dy1WedgeMother,
-					dy2WedgeMother,
-					heightWedgeMother/2.);
+                                        thicknessWedgeMother/2.,
+                                        dy1WedgeMother,
+                                        dy2WedgeMother,
+                                        heightWedgeMother/2.);
 
     //Second submother
     thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * Gaudi::Units::cm;
     heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
     dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
     dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
+
     GeoTrd* plug2SubMother = new GeoTrd(thicknessWedgeMother/2.,
-					thicknessWedgeMother/2.,
-					dy1WedgeMother,
-					dy2WedgeMother,
-					heightWedgeMother/2.);
-    
+                                        thicknessWedgeMother/2.,
+                                        dy1WedgeMother,
+                                        dy2WedgeMother,
+                                        heightWedgeMother/2.);
+
     GeoTrf::Translate3D plug1SubOffset(-dzITC2*Gaudi::Units::cm/2.,
-				  0.,
-				  (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.);
-    
+                                       0.,
+                                       (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.);
+
     const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset);
     GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir);
     GeoPhysVol* pvPlug1ModuleMother = new GeoPhysVol(lvPlug1ModuleMother);
-    
+
     // Fill the section
     sectionBuilder->fillSection(pvPlug1ModuleMother, 3,
-    				dbManager->TILBrmaximal(),
-    				dbManager->TILBrminimal(),
-    				dzGlue,
-    				deltaPhi, ModuleNcp,
-    				dzITC2);
-    
+                                dbManager->TILBrmaximal(),
+                                dbManager->TILBrminimal(),
+                                dzGlue,
+                                deltaPhi, ModuleNcp,
+                                dzITC2);
+
     GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0.,
-									0.,
-									(dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2.));
-    
+                                                                             0.,
+                                                                             (dbManager->TILBrmin()-dbManager->TILBrminimal())*Gaudi::Units::cm/2.));
+
     pvITCModuleMother->add(tfPlug1ModuleMother);
     pvITCModuleMother->add(pvPlug1ModuleMother);
-    
+
     //Mother volume for ITC2
     dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
-    
+
     thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
     heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
     dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
     dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
 
     dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1));
-    
+
     GeoTrd* plug2ModuleMother = new GeoTrd(thicknessWedgeMother/2.,
-					   thicknessWedgeMother/2.,
-					   dy1WedgeMother,
-					   dy2WedgeMother,
-					   heightWedgeMother/2.);
-    
+                                           thicknessWedgeMother/2.,
+                                           dy1WedgeMother,
+                                           dy2WedgeMother,
+                                           heightWedgeMother/2.);
+
     GeoLogVol* lvPlug2ModuleMother = new GeoLogVol("Plug2Module",plug2ModuleMother,matAir);
     GeoPhysVol* pvPlug2ModuleMother = new GeoPhysVol(lvPlug2ModuleMother);
-    
+
     // Fill the section
     sectionBuilder->fillSection(pvPlug2ModuleMother,
-    				4,
-    				dbManager->TILBrmaximal(),
-    				dbManager->TILBrminimal(),
-    				dzGlue,
-    				deltaPhi);
-    
+                                4,
+                                dbManager->TILBrmaximal(),
+                                dbManager->TILBrminimal(),
+                                dzGlue,
+                                deltaPhi);
+
     dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
-    
+
     GeoTransform* tfPlug2ModuleMother = new GeoTransform(itcModuleSubShift);
 
     pvITCModuleMother->add(tfPlug2ModuleMother);
@@ -646,25 +633,25 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
 
     GeoSerialTransformer* stITCModuleMotherPos = new GeoSerialTransformer(pvITCModuleMother,
-									  &xfITCModuleMotherPos,
-									  dbManager->TILEnmodul());
+                                                                          &xfITCModuleMotherPos,
+                                                                          dbManager->TILEnmodul());
     pvITCMotherPos->add(new GeoSerialIdentifier(1));
     pvITCMotherPos->add(stITCModuleMotherPos);
-    
+
     GeoSerialTransformer* stITCModuleMotherNeg = new GeoSerialTransformer(pvITCModuleMother,
-									  &xfITCModuleMotherNeg,
-									  dbManager->TILEnmodul());
+                                                                          &xfITCModuleMotherNeg,
+                                                                          dbManager->TILEnmodul());
     pvITCMotherNeg->add(new GeoSerialIdentifier(1));
     pvITCMotherNeg->add(stITCModuleMotherNeg);
-    
-    
+
+
     GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*Gaudi::Units::cm));
     GeoNameTag* ntITCMotherPos = new GeoNameTag("TileITCPos");
     pvTileEnvelopePosEndcap->add(tfITCMotherPos);
     pvTileEnvelopePosEndcap->add(ntITCMotherPos);
     pvTileEnvelopePosEndcap->add(pvITCMotherPos);
 
-    
+
     GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm));
     GeoNameTag* ntITCMotherNeg = new GeoNameTag("TileITCNeg");
     pvTileEnvelopeNegEndcap->add(tfITCMotherNeg);
@@ -674,11 +661,10 @@ void TileDetectorFactory::create(GeoPhysVol *world)
   //-------------------------- G A P ---------------------------------
   // Tube - gap mother
 
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3))
-  {
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3)) {
     GeoTube* gapMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm,
-				     dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2.*Gaudi::Units::deg),
-				     dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
+                                     dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2.*Gaudi::Units::deg),
+                                     dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
 
     GeoLogVol* lvGapMother = new GeoLogVol("Gap",gapMother,matAir);
     GeoFullPhysVol* pvGapMotherPos = new GeoFullPhysVol(lvGapMother);
@@ -693,46 +679,46 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     dzGlue = 0.;
 
     GeoTrd* gapModuleMother = new GeoTrd(thicknessWedgeMother/2.,
-					 thicknessWedgeMother/2.,
-					 dy1WedgeMother,
-					 dy2WedgeMother,
-					 heightWedgeMother/2.);
+                                         thicknessWedgeMother/2.,
+                                         dy1WedgeMother,
+                                         dy2WedgeMother,
+                                         heightWedgeMother/2.);
 
     GeoLogVol* lvGapModuleMother = new GeoLogVol("GapModule",gapModuleMother,matAir);
     GeoPhysVol* pvGapModuleMother = new GeoPhysVol(lvGapModuleMother);
 
     // Fill the section
     sectionBuilder->fillSection(pvGapModuleMother,
-    				5,
-    				dbManager->TILBrmaximal(),
-    				dbManager->TILBrminimal(),
-    				dzGlue,
-    				deltaPhi);
+                                5,
+                                dbManager->TILBrmaximal(),
+                                dbManager->TILBrminimal(),
+                                dzGlue,
+                                deltaPhi);
 
     // --- Position N modules inside mother (positive/negative) -----
     TRANSFUNCTION xfGapModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
     TRANSFUNCTION xfGapModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-    
+
     GeoSerialTransformer* stGapModuleMotherPos = new GeoSerialTransformer(pvGapModuleMother,
-									  &xfGapModuleMotherPos,
-									  dbManager->TILEnmodul());
+                                                                          &xfGapModuleMotherPos,
+                                                                          dbManager->TILEnmodul());
     pvGapMotherPos->add(new GeoSerialIdentifier(1));
     pvGapMotherPos->add(stGapModuleMotherPos);
-    
+
     GeoSerialTransformer* stGapModuleMotherNeg = new GeoSerialTransformer(pvGapModuleMother,
-									  &xfGapModuleMotherNeg,
-									  dbManager->TILEnmodul());
+                                                                          &xfGapModuleMotherNeg,
+                                                                          dbManager->TILEnmodul());
     pvGapMotherNeg->add(new GeoSerialIdentifier(1));
     pvGapMotherNeg->add(stGapModuleMotherNeg);
 
-    
+
     GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*Gaudi::Units::cm));
     GeoNameTag* ntGapMotherPos = new GeoNameTag("TileGapPos");
     pvTileEnvelopePosEndcap->add(tfGapMotherPos);
     pvTileEnvelopePosEndcap->add(ntGapMotherPos);
     pvTileEnvelopePosEndcap->add(pvGapMotherPos);
-    
-    
+
+
     GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm));
     GeoNameTag* ntGapMotherNeg = new GeoNameTag("TileGapNeg");
     pvTileEnvelopeNegEndcap->add(tfGapMotherNeg);
@@ -740,8 +726,7 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     pvTileEnvelopeNegEndcap->add(pvGapMotherNeg);
   }
 
-  if(globalsExist)
-  {
+  if (globalsExist) {
     dbManager->SetCurrentEnvByType(4);
     nModulesNeg=dbManager->GetEnvNModules();
     zShiftNeg=dbManager->GetEnvZShift()*Gaudi::Units::cm;
@@ -754,14 +739,13 @@ void TileDetectorFactory::create(GeoPhysVol *world)
                                    m_switches.addPlatesToCell,
                                    zShiftPos,  // shift for positive eta
                                    zShiftNeg); // shift for negative eta
-  } else
-  {
+  } else {
     nModulesPos=nModulesNeg=dbManager->TILEnmodul();
     zShiftPos=zShiftNeg=dbManager->TILEzshift()*Gaudi::Units::cm;
-    // do not compute cell volumes for old setups (before DC3), 
+    // do not compute cell volumes for old setups (before DC3),
     // because cell-size table might be missing in DB
   }
-  
+
   // -- Readout
   // Create two descriptor objects corresponding to positive and negative half of gap/crack
   descriptor = new TileDetDescriptor();
@@ -773,11 +757,11 @@ void TileDetectorFactory::create(GeoPhysVol *world)
                                  m_switches.addPlatesToCell,
                                  nModulesNeg,
                                  zShiftNeg);
-  
+
   idRegion = tileID->region_id(nregion++);
   descriptor->set(idRegion);
 
-  m_detectorManager->add(descriptor); 
+  m_detectorManager->add(descriptor);
   m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
 
   descriptor = new TileDetDescriptor();
@@ -793,71 +777,70 @@ void TileDetectorFactory::create(GeoPhysVol *world)
   idRegion = tileID->region_id(nregion++);
   descriptor->set(idRegion);
 
-  m_detectorManager->add(descriptor); 
+  m_detectorManager->add(descriptor);
   m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
 
   //-------------------------- C R A C K ---------------------------------
   // Tube - crack mother
-  
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4))
-  {
+
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4)) {
     GeoTube* crackMother = new GeoTube(dbManager->TILBrminimal()*Gaudi::Units::cm,
-				       dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2.*Gaudi::Units::deg),
-				       dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
-    
+                                       dbManager->TILBrmaximal()*Gaudi::Units::cm/cos(deltaPhi/2.*Gaudi::Units::deg),
+                                       dbManager->TILBdzmodul()/2.*Gaudi::Units::cm);
+
     GeoLogVol* lvCrackMother = new GeoLogVol("Crack",crackMother,matAir);
     GeoFullPhysVol* pvCrackMotherPos = new GeoFullPhysVol(lvCrackMother);
     GeoFullPhysVol* pvCrackMotherNeg = new GeoFullPhysVol(lvCrackMother);
-    
+
     // Trd - module mother
     thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
     heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
     dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
     dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
+
     dzGlue = 0.;
-    
+
     GeoTrd* crackModuleMother = new GeoTrd(thicknessWedgeMother/2.,
-					   thicknessWedgeMother/2.,
-					   dy1WedgeMother,
-					   dy2WedgeMother,
-					   heightWedgeMother/2.);
-    
+                                           thicknessWedgeMother/2.,
+                                           dy1WedgeMother,
+                                           dy2WedgeMother,
+                                           heightWedgeMother/2.);
+
     GeoLogVol* lvCrackModuleMother = new GeoLogVol("CrackModule",crackModuleMother,matAir);
     GeoPhysVol* pvCrackModuleMother = new GeoPhysVol(lvCrackModuleMother);
-    
+
     // Fill the section
     sectionBuilder->fillSection(pvCrackModuleMother,
-    				6,
-    				dbManager->TILBrmaximal(),
-    				dbManager->TILBrminimal(),
-    				dzGlue,
-    				deltaPhi);
-    
+                                6,
+                                dbManager->TILBrmaximal(),
+                                dbManager->TILBrminimal(),
+                                dzGlue,
+                                deltaPhi);
+
     // --- Position N modules inside mother (positive/negative) -----
     TRANSFUNCTION xfCrackModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
     TRANSFUNCTION xfCrackModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-    
+
     GeoSerialTransformer* stCrackModuleMotherPos = new GeoSerialTransformer(pvCrackModuleMother,
-									    &xfCrackModuleMotherPos,
-									    dbManager->TILEnmodul());
+                                                                            &xfCrackModuleMotherPos,
+                                                                            dbManager->TILEnmodul());
     pvCrackMotherPos->add(new GeoSerialIdentifier(1));
     pvCrackMotherPos->add(stCrackModuleMotherPos);
-    
+
     GeoSerialTransformer* stCrackModuleMotherNeg = new GeoSerialTransformer(pvCrackModuleMother,
-									    &xfCrackModuleMotherNeg,
-									    dbManager->TILEnmodul());
+                                                                            &xfCrackModuleMotherNeg,
+                                                                            dbManager->TILEnmodul());
     pvCrackMotherNeg->add(new GeoSerialIdentifier(1));
     pvCrackMotherNeg->add(stCrackModuleMotherNeg);
-    
-    
+
+
     GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*Gaudi::Units::cm));
     GeoNameTag* ntCrackMotherPos = new GeoNameTag("TileCrackPos");
     pvTileEnvelopePosEndcap->add(tfCrackMotherPos);
     pvTileEnvelopePosEndcap->add(ntCrackMotherPos);
     pvTileEnvelopePosEndcap->add(pvCrackMotherPos);
-    
-    
+
+
     GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*Gaudi::Units::cm));
     GeoNameTag* ntCrackMotherNeg = new GeoNameTag("TileCrackNeg");
     pvTileEnvelopeNegEndcap->add(tfCrackMotherNeg);
@@ -870,22 +853,21 @@ void TileDetectorFactory::create(GeoPhysVol *world)
   //------------------------- B A R R E L  F I N G E R  ----------------------------
   // Tube - finger mother
 
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL) &&
-     dbManager->SetCurrentTifg(1))
-  {
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL) &&
+      dbManager->SetCurrentTifg(1)) {
 
     zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2.;
 
     GeoTube* fingerMother = new GeoTube(dbManager->TILBrmax()*Gaudi::Units::cm,
-					dbManager->TILErmam()*Gaudi::Units::cm,
-					dbManager->TIFGdz()/2.*Gaudi::Units::cm);
-    
+                                        dbManager->TILErmam()*Gaudi::Units::cm,
+                                        dbManager->TIFGdz()/2.*Gaudi::Units::cm);
+
     GeoLogVol* lvFingerMother = new GeoLogVol("Finger",fingerMother,matAir);
     GeoFullPhysVol* pvFingerMotherPos = new GeoFullPhysVol(lvFingerMother);
     GeoFullPhysVol* pvFingerMotherNeg = new GeoFullPhysVol(lvFingerMother);
-    
+
     // Trd - one finger mother
-    //    if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1))
+    //    if (dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1))
     //      thicknessWedgeMother = (dbManager->TILBzoffset() - dbManager->TILBdzmodul()/2. + dbManager->TILEzshift() - zEndSection) * Gaudi::Units::cm;
     //    else
     thicknessWedgeMother = dbManager->TIFGdz()*Gaudi::Units::cm;
@@ -894,50 +876,50 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
     dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
     dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
+
     GeoTrd* fingerModuleMother = new GeoTrd(thicknessWedgeMother/2.,
-					    thicknessWedgeMother/2.,
-					    dy1WedgeMother,
-					    dy2WedgeMother,
-					    heightWedgeMother/2.);
-    
+                                            thicknessWedgeMother/2.,
+                                            dy1WedgeMother,
+                                            dy2WedgeMother,
+                                            heightWedgeMother/2.);
+
     GeoLogVol* lvFingerModuleMother = new GeoLogVol("FingerModule",fingerModuleMother,matAir);
     GeoPhysVol* pvFingerModuleMother = new GeoPhysVol(lvFingerModuleMother);
 
     // Fill the section
     sectionBuilder->fillFinger(pvFingerModuleMother, 1,
-			       dbManager->TILErmax(),
-			       dbManager->TILBrmax(),
-			       deltaPhi,
-			       m_switches.testBeam,
-			       ModuleNcp,
-			       thicknessWedgeMother*(1./Gaudi::Units::cm));
-    
+                               dbManager->TILErmax(),
+                               dbManager->TILBrmax(),
+                               deltaPhi,
+                               m_switches.testBeam,
+                               ModuleNcp,
+                               thicknessWedgeMother*(1./Gaudi::Units::cm));
+
     // --- Position N modules inside mother (positive/negative) -----
     TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
     TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
 
     GeoSerialTransformer* stFingerModuleMotherPos = new GeoSerialTransformer(pvFingerModuleMother,
-									     &xfFingerModuleMotherPos,
-									     dbManager->TILEnmodul());
+                                                                             &xfFingerModuleMotherPos,
+                                                                             dbManager->TILEnmodul());
 
     pvFingerMotherPos->add(new GeoSerialIdentifier(1));
     pvFingerMotherPos->add(stFingerModuleMotherPos);
-  
+
     GeoSerialTransformer* stFingerModuleMotherNeg = new GeoSerialTransformer(pvFingerModuleMother,
-									     &xfFingerModuleMotherNeg,
-									     dbManager->TILEnmodul());
+                                                                             &xfFingerModuleMotherNeg,
+                                                                             dbManager->TILEnmodul());
     pvFingerMotherNeg->add(new GeoSerialIdentifier(1));
     pvFingerMotherNeg->add(stFingerModuleMotherNeg);
-    
-    
+
+
     GeoTransform* tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*Gaudi::Units::cm));
     GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos");
     pvTileEnvelopeBarrel->add(tfFingerMotherPos);
     pvTileEnvelopeBarrel->add(ntFingerMotherPos);
     pvTileEnvelopeBarrel->add(pvFingerMotherPos);
 
-    
+
     GeoTransform* tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*Gaudi::Units::cm));
     GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg");
     pvTileEnvelopeBarrel->add(tfFingerMotherNeg);
@@ -948,67 +930,66 @@ void TileDetectorFactory::create(GeoPhysVol *world)
   //------------------------- E X T E N D E D  F I N G E R  ----------------------------
   // Tube - finger mother
 
-  if(dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL) &&
-     dbManager->SetCurrentTifg(2))
-  {
+  if (dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL) &&
+      dbManager->SetCurrentTifg(2)) {
 
     zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2. + dbManager->TILEzshift();
 
     GeoTube* efingerMother = new GeoTube(dbManager->TILBrmax()*Gaudi::Units::cm,
-					 dbManager->TILErmam()*Gaudi::Units::cm,
-					 dbManager->TIFGdz()/2.*Gaudi::Units::cm);
+                                         dbManager->TILErmam()*Gaudi::Units::cm,
+                                         dbManager->TIFGdz()/2.*Gaudi::Units::cm);
 
     GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",efingerMother,matAir);
     GeoFullPhysVol* pvEFingerMotherPos = new GeoFullPhysVol(lvEFingerMother);
     GeoFullPhysVol* pvEFingerMotherNeg = new GeoFullPhysVol(lvEFingerMother);
-    
+
     // Trd - one finger mother
     thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm;
     heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
     dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
     dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-    
+
     GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2.,
-					     thicknessWedgeMother/2.,
-					     dy1WedgeMother,
-					     dy2WedgeMother,
-					     heightWedgeMother/2.);
+                                             thicknessWedgeMother/2.,
+                                             dy1WedgeMother,
+                                             dy2WedgeMother,
+                                             heightWedgeMother/2.);
 
     GeoLogVol* lvEFingerModuleMother = new GeoLogVol("EFingerModule",efingerModuleMother,matAir);
     GeoPhysVol* pvEFingerModuleMother = new GeoPhysVol(lvEFingerModuleMother);
 
     // Fill the section
     sectionBuilder->fillFinger(pvEFingerModuleMother,
-			       2,
-			       dbManager->TILErmax(),
-			       dbManager->TILBrmax(),
-			       deltaPhi,
-			       m_switches.testBeam);
+                               2,
+                               dbManager->TILErmax(),
+                               dbManager->TILBrmax(),
+                               deltaPhi,
+                               m_switches.testBeam);
 
     // --- Position N modules inside mother (positive/negative) -----
     TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
     TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-    
+
     GeoSerialTransformer* stEFingerModuleMotherPos = new GeoSerialTransformer(pvEFingerModuleMother,
-									      &xfEFingerModuleMotherPos,
-									      dbManager->TILEnmodul());
+                                                                              &xfEFingerModuleMotherPos,
+                                                                              dbManager->TILEnmodul());
     pvEFingerMotherPos->add(new GeoSerialIdentifier(1));
     pvEFingerMotherPos->add(stEFingerModuleMotherPos);
-    
+
     GeoSerialTransformer* stEFingerModuleMotherNeg = new GeoSerialTransformer(pvEFingerModuleMother,
-									      &xfEFingerModuleMotherNeg,
-									      dbManager->TILEnmodul());
+                                                                              &xfEFingerModuleMotherNeg,
+                                                                              dbManager->TILEnmodul());
     pvEFingerMotherNeg->add(new GeoSerialIdentifier(1));
     pvEFingerMotherNeg->add(stEFingerModuleMotherNeg);
-    
-    
+
+
     GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*Gaudi::Units::cm));
     GeoNameTag* ntEFingerMotherPos = new GeoNameTag("TileEFingerPos");
     pvTileEnvelopePosEndcap->add(tfEFingerMotherPos);
     pvTileEnvelopePosEndcap->add(ntEFingerMotherPos);
     pvTileEnvelopePosEndcap->add(pvEFingerMotherPos);
 
-    
+
     GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*Gaudi::Units::cm));
     GeoNameTag* ntEFingerMotherNeg = new GeoNameTag("TileEFingerNeg");
     pvTileEnvelopeNegEndcap->add(tfEFingerMotherNeg);
@@ -1016,15 +997,13 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     pvTileEnvelopeNegEndcap->add(pvEFingerMotherNeg);
   }
 
-  // --------- ----------- --------- -------- ------ --------- ------- ---------- 
+  // --------- ----------- --------- -------- ------ --------- ------- ----------
   GeoNameTag *nTag = new GeoNameTag("Tile");
 
-  if(pvTileEnvelopeBarrel)
-  {
+  if (pvTileEnvelopeBarrel) {
     world->add(nTag);
 
-    if(globalsExist)
-    {
+    if (globalsExist) {
       // Top transform for the central barrel
       dbManager->SetCurrentEnvByType(1);
       GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi());
@@ -1039,12 +1018,10 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     m_detectorManager->addTreeTop(pvTileEnvelopeBarrel);
   }
 
-  if(pvTileEnvelopePosEndcap)
-  {
+  if (pvTileEnvelopePosEndcap) {
     world->add(nTag);
 
-    if(globalsExist)
-    {
+    if (globalsExist) {
       // Top transform for the positive endcap
       dbManager->SetCurrentEnvByType(3);
       GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi());
@@ -1059,12 +1036,10 @@ void TileDetectorFactory::create(GeoPhysVol *world)
     m_detectorManager->addTreeTop(pvTileEnvelopePosEndcap);
   }
 
-  if(pvTileEnvelopeNegEndcap)
-  {
+  if (pvTileEnvelopeNegEndcap) {
     world->add(nTag);
 
-    if(globalsExist)
-    {
+    if (globalsExist) {
       // Top transform for the positive endcap
       dbManager->SetCurrentEnvByType(2);
       GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi());
@@ -1081,4 +1056,3 @@ void TileDetectorFactory::create(GeoPhysVol *world)
 
   delete sectionBuilder;
 }
-
diff --git a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.h b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.h
index 5274585007c7d7cbffeb8467feac2a5f86133d27..6c83ed20dae5d4d29cebd2c671d457a8a295c8e9 100755
--- a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.h
+++ b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 /**
@@ -23,28 +23,28 @@ class StoreGateSvc;
 
 class TileDetectorFactory : public GeoVDetectorFactory
 {
-public:
-  
+ public:
+
   /** Constructor */
-  TileDetectorFactory(StoreGateSvc *pDetStore, TileDetDescrManager * manager, 
+  TileDetectorFactory(StoreGateSvc *pDetStore, TileDetDescrManager * manager,
                       const TileSwitches & switches, MsgStream *log);
-  
+
   /** Destructor */
   ~TileDetectorFactory();
-  
+
   /** Creation of Tile geometry */
   virtual void create(GeoPhysVol *world);
 
   /** Access function to TileDetDescr geometry data */
   virtual const TileDetDescrManager * getDetectorManager() const { return m_detectorManager; }
 
-private:  
-  
+ private:
+
   /** Detector pointer to Store Gate service */
   StoreGateSvc              *m_detectorStore;
 
-  /** Detector pointer to TileDetDescrManager */  
-  TileDetDescrManager       *m_detectorManager;  
+  /** Detector pointer to TileDetDescrManager */
+  TileDetDescrManager       *m_detectorManager;
 
   /** Get message SVC */
   MsgStream                 *m_log;
@@ -57,4 +57,3 @@ private:
 };
 
 #endif
-
diff --git a/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.cxx b/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.cxx
index 20efaaf0737a67ad401b7ce0d2bed50be98262fd..fce8f0540fa5ba255b11b4ff2dcae9aa659cedf9 100755
--- a/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.cxx
+++ b/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.cxx
@@ -12,7 +12,6 @@
 
 #include "TileDetectorFactoryLite.h"
 #include "TileGeoSectionBuilder.h"
-#include "TileGeoCutBuilder.h"
 #include "TileDetDescr/TileDetDescrManager.h"
 #include "TileDetDescr/TileDddbManager.h"
 #include "TileDetDescr/TileDetDescriptor.h"
@@ -24,8 +23,6 @@
 #include "StoreGate/StoreGateSvc.h"
 
 #include "GaudiKernel/MsgStream.h"
-#include "AthenaKernel/getMessageSvc.h" // needed for 'Athena::getMessageSvc()'
-
 #include "GaudiKernel/SystemOfUnits.h"
 
 #include "RDBAccessSvc/IRDBAccessSvc.h"
@@ -33,170 +30,166 @@
 #include "RDBAccessSvc/IRDBRecord.h"
 
 #include <stdexcept>
-#include <iostream>
-#include <iomanip>
-#include <algorithm> 
-#include <cmath>
 #include <string>
 
 #define MLOG(x)   if (m_log->level()<=MSG::x) *m_log << MSG::x
 
+
 // Constructor:
 TileDetectorFactoryLite::TileDetectorFactoryLite(StoreGateSvc */*pDetStore*/,
-                                   TileDetDescrManager *manager,
-                                   GeoModelIO::ReadGeoModel* /*sqliteReader*/, 
-                                   IRDBAccessSvc* paramsSvc,
-                                   const TileSwitches & switches,
-                                   MsgStream *log,
-                                   bool /*fullGeo*/)
-      : m_detectorManager(manager)
-      , m_paramsSvc(paramsSvc)
-      , m_switches(switches)
-      , m_log(log)
-      , m_verbose(log->level()<=MSG::VERBOSE) 
+                                                 TileDetDescrManager *manager,
+                                                 GeoModelIO::ReadGeoModel* /*sqliteReader*/,
+                                                 IRDBAccessSvc* paramsSvc,
+                                                 const TileSwitches & switches,
+                                                 MsgStream *log,
+                                                 bool /*fullGeo*/)
+        : m_detectorManager(manager)
+        , m_paramsSvc(paramsSvc)
+        , m_switches(switches)
+        , m_log(log)
+        , m_verbose(log->level()<=MSG::VERBOSE)
 {
   m_switches.testBeam = false;
 }
-      
-// Destructor: 
-TileDetectorFactoryLite::~TileDetectorFactoryLite(){}
-      
+
+
+// Destructor:
+TileDetectorFactoryLite::~TileDetectorFactoryLite() {}
+
+
 // Creation of geometry:
-void TileDetectorFactoryLite::create(GeoPhysVol *world)  
-{ 
-    (*m_log) << MSG::INFO <<" Entering TileDetectorFactoryLite::create()" << endmsg;
-
-    // -------- -------- MATERIAL MANAGER -------- ----------
-    // TODO: fix this, doesn't get access at runtime!!
-    StoredMaterialManager* theMaterialManager = nullptr; // dummy matManager, only used to instantiate a 'sectionBuilder'
-
-    // -------- -------- DB MANAGER -------- ----------
-    TileDddbManager* dbManager = m_detectorManager->getDbManager();
-    
-    // -------- -------- SECTION BUILDER  -------- ----------
-    TileGeoSectionBuilder* sectionBuilder = new TileGeoSectionBuilder(theMaterialManager,dbManager,m_switches,m_log);
-
-
-    // --- Get data from SQLite
-    (*m_log) << MSG::INFO << "Getting auxiliary data from SQLite..." << endmsg;
-    // get table
-    IRDBRecordset_ptr tileReadoutDataRecordSet = m_paramsSvc->getRecordsetPtr("TileReadoutData", "", "");
-    (*m_log) << MSG::DEBUG << "data rows in the 'TileReadoutData' RecordSet: " << tileReadoutDataRecordSet->size() << endmsg;
-    // get data
-    double barrelPeriodThickness = 0., extendedPeriodThickness = 0.;
-    if (tileReadoutDataRecordSet->size()>0) {
-         if ( (*tileReadoutDataRecordSet)[0]->getString("NAME") == "barrelPeriodThickness" ) {
-             barrelPeriodThickness = (*tileReadoutDataRecordSet)[0]->getDouble("VALUE");
-         } else {
-             std::string errMsg = "barrelPeriodThickness not found in position [0] in the TileReadoutData' RecordSet!!!";
-             (*m_log) << MSG::ERROR << errMsg << endmsg;
-             throw std::runtime_error(errMsg);
-         }
-         if ( (*tileReadoutDataRecordSet)[1]->getString("NAME") == "extendedPeriodThickness" ) {
-             extendedPeriodThickness = (*tileReadoutDataRecordSet)[1]->getDouble("VALUE");
-         } else {
-             std::string errMsg = "extendedPeriodThickness not found in position [1] in the TileReadoutData' RecordSet!!!";
-             (*m_log) << MSG::ERROR << errMsg << endmsg;
-             throw std::runtime_error(errMsg);
-         }
+void TileDetectorFactoryLite::create(GeoPhysVol *world)
+{
+  (*m_log) << MSG::INFO <<" Entering TileDetectorFactoryLite::create()" << endmsg;
+
+  // -------- -------- MATERIAL MANAGER -------- ----------
+  // TODO: fix this, doesn't get access at runtime!!
+  StoredMaterialManager* theMaterialManager = nullptr; // dummy matManager, only used to instantiate a 'sectionBuilder'
+
+  // -------- -------- DB MANAGER -------- ----------
+  TileDddbManager* dbManager = m_detectorManager->getDbManager();
+
+  // -------- -------- SECTION BUILDER  -------- ----------
+  TileGeoSectionBuilder* sectionBuilder = new TileGeoSectionBuilder(theMaterialManager,dbManager,m_switches,m_log);
+
+
+  // --- Get data from SQLite
+  (*m_log) << MSG::INFO << "Getting auxiliary data from SQLite..." << endmsg;
+  // get table
+  IRDBRecordset_ptr tileReadoutDataRecordSet = m_paramsSvc->getRecordsetPtr("TileReadoutData", "", "");
+  (*m_log) << MSG::DEBUG << "data rows in the 'TileReadoutData' RecordSet: " << tileReadoutDataRecordSet->size() << endmsg;
+  // get data
+  double barrelPeriodThickness = 0., extendedPeriodThickness = 0.;
+  if (tileReadoutDataRecordSet->size()>0) {
+    if ( (*tileReadoutDataRecordSet)[0]->getString("NAME") == "barrelPeriodThickness" ) {
+      barrelPeriodThickness = (*tileReadoutDataRecordSet)[0]->getDouble("VALUE");
+    } else {
+      std::string errMsg = "barrelPeriodThickness not found in position [0] in the TileReadoutData' RecordSet!!!";
+      (*m_log) << MSG::ERROR << errMsg << endmsg;
+      throw std::runtime_error(errMsg);
+    }
+    if ( (*tileReadoutDataRecordSet)[1]->getString("NAME") == "extendedPeriodThickness" ) {
+      extendedPeriodThickness = (*tileReadoutDataRecordSet)[1]->getDouble("VALUE");
     } else {
-        std::string errorMsg = "The 'TileReadoutData' recordSet is empty!!!";
-        (*m_log) << MSG::FATAL << errorMsg << endmsg;
-        throw std::runtime_error(errorMsg);
+      std::string errMsg = "extendedPeriodThickness not found in position [1] in the TileReadoutData' RecordSet!!!";
+      (*m_log) << MSG::ERROR << errMsg << endmsg;
+      throw std::runtime_error(errMsg);
     }
-    (*m_log) << MSG::DEBUG << "barrelPeriodThickness: " << barrelPeriodThickness << ", extendedPeriodThickness: " << extendedPeriodThickness << endmsg;
-
-    // set data used to build the readout geometry
-    sectionBuilder->setBarrelPeriodThickness(barrelPeriodThickness);
-    sectionBuilder->setExtendedPeriodThickness(extendedPeriodThickness);
-    
-    
-     //
-     // creating Descriptors and CaloDetDescrElements 
-     // 
-
-     int nModulesInSection[6] = {0,0,0,0,0,0};
-     double zShiftInSection[6] = {0.0,0.0,0.0,0.0,0.0,0.0,};
-
-     int NumberOfEnv = dbManager->GetNumberOfEnv();
-     MLOG(DEBUG) << "NumberOfEnv: " << NumberOfEnv << endmsg;
-
-     for(int EnvCounter = 0; EnvCounter < NumberOfEnv; ++EnvCounter){ //Loop over Envelopes
-
-       dbManager->SetCurrentEnvByIndex(EnvCounter);
-       int EnvType = dbManager->GetEnvType();
-       int NumberOfMod = dbManager->GetEnvNModules();
-       double Zshift = dbManager->GetEnvZShift()*Gaudi::Units::cm;
-
-       if(m_log->level()<=MSG::DEBUG)
-     (*m_log) << MSG::DEBUG 
-          << " EnvCounter is " << EnvCounter
-          << " EnvType is " << EnvType
-          << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm"
-          << endmsg;
-
-       // Central barrel 
-       if(EnvType == 1 || EnvType == 0) { 
-         nModulesInSection[0] = nModulesInSection[1] = NumberOfMod;
-         zShiftInSection[0] = zShiftInSection[1] = Zshift;
-       } else if(EnvType < 6) {
-         nModulesInSection[EnvType] = NumberOfMod;
-         zShiftInSection[EnvType] = Zshift;
-       }
-     }
-
-
-    // Build Regions
-    const TileID* tileID = m_detectorManager->get_id();
-
-    unsigned int dete[6] = {TILE_REGION_CENTRAL,TILE_REGION_CENTRAL,
-                            TILE_REGION_EXTENDED,TILE_REGION_EXTENDED,
-                            TILE_REGION_GAP,TILE_REGION_GAP};
-    int side[6] = {0,1,0,1,0,1};
-
-   (*m_log) << MSG::DEBUG << "Loop over Tile detector regions, and call computeCellDim() when needed..." << endmsg; 
-    for (int ii=0; ii<6; ++ii) {
-
-        (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << endmsg; 
-        
-        if (ii%2 == 0) {
-            (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << " --> calling computeCellDim()..." << endmsg; 
-            sectionBuilder->computeCellDim(m_detectorManager, dete[ii],
-                    m_switches.addPlatesToCell,
-                    zShiftInSection[ii+1], // zShiftPos
-                    zShiftInSection[ii]);  // zShiftNeg
-        }
-
-        (*m_log) << MSG::DEBUG << "Get TileDetDescriptor and call fillDescriptor()..." << endmsg; 
-        TileDetDescriptor* descriptor = new TileDetDescriptor();
-        sectionBuilder->fillDescriptor(descriptor, dete[ii], side[ii],
-                m_switches.testBeam,      // set to false - ATLAS geometry
-                m_switches.addPlatesToCell, // add front/end plates to cell volume
-                nModulesInSection[ii],   // 0-64 modules
-                zShiftInSection[ii]);    // Z-shift
-
-        (*m_log) << MSG::DEBUG << "Get an Identifier for the region and add it to the detectorManager..." << endmsg; 
-        Identifier idRegion = tileID->region_id(ii);
-        descriptor->set(idRegion);
-        m_detectorManager->add(descriptor); 
-        m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor)); 
+  } else {
+    std::string errorMsg = "The 'TileReadoutData' recordSet is empty!!!";
+    (*m_log) << MSG::FATAL << errorMsg << endmsg;
+    throw std::runtime_error(errorMsg);
+  }
+  (*m_log) << MSG::DEBUG << "barrelPeriodThickness: " << barrelPeriodThickness << ", extendedPeriodThickness: " << extendedPeriodThickness << endmsg;
+
+  // set data used to build the readout geometry
+  sectionBuilder->setBarrelPeriodThickness(barrelPeriodThickness);
+  sectionBuilder->setExtendedPeriodThickness(extendedPeriodThickness);
+
+
+  //
+  // creating Descriptors and CaloDetDescrElements
+  //
+
+  int nModulesInSection[6] = {0,0,0,0,0,0};
+  double zShiftInSection[6] = {0.0,0.0,0.0,0.0,0.0,0.0,};
+
+  int NumberOfEnv = dbManager->GetNumberOfEnv();
+  MLOG(DEBUG) << "NumberOfEnv: " << NumberOfEnv << endmsg;
+
+  for (int EnvCounter = 0; EnvCounter < NumberOfEnv; ++EnvCounter) { //Loop over Envelopes
+
+    dbManager->SetCurrentEnvByIndex(EnvCounter);
+    int EnvType = dbManager->GetEnvType();
+    int NumberOfMod = dbManager->GetEnvNModules();
+    double Zshift = dbManager->GetEnvZShift()*Gaudi::Units::cm;
+
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG
+               << " EnvCounter is " << EnvCounter
+               << " EnvType is " << EnvType
+               << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm"
+               << endmsg;
+
+    // Central barrel
+    if (EnvType == 1 || EnvType == 0) {
+      nModulesInSection[0] = nModulesInSection[1] = NumberOfMod;
+      zShiftInSection[0] = zShiftInSection[1] = Zshift;
+    } else if (EnvType < 6) {
+      nModulesInSection[EnvType] = NumberOfMod;
+      zShiftInSection[EnvType] = Zshift;
     }
+  }
 
 
-    // Set geometry Tree Tops
-    GeoVolumeCursor cursor(world);
-    while(!cursor.atEnd()) {
-        std::string volName = cursor.getName();
-        //std::cout << "volName: " << volName << "\n";
-        if(volName.compare(0,4,"Tile")==0) {
-            (*m_log) << MSG::DEBUG << "Adding vol '" << volName << "' to detManager" << endmsg;
-            m_detectorManager->addTreeTop(GeoPVLink(cursor.getVolume().operator->()));
-        }
-        cursor.next();
-    }
+  // Build Regions
+  const TileID* tileID = m_detectorManager->get_id();
 
-    (*m_log) << MSG::DEBUG << "Tile geometry from SQLite has been created." << endmsg;
+  unsigned int dete[6] = {TILE_REGION_CENTRAL,TILE_REGION_CENTRAL,
+                          TILE_REGION_EXTENDED,TILE_REGION_EXTENDED,
+                          TILE_REGION_GAP,TILE_REGION_GAP};
+  int side[6] = {0,1,0,1,0,1};
 
-}
+  (*m_log) << MSG::DEBUG << "Loop over Tile detector regions, and call computeCellDim() when needed..." << endmsg;
+  for (int ii=0; ii<6; ++ii) {
 
+    (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << endmsg;
 
+    if (ii%2 == 0) {
+      (*m_log) << MSG::DEBUG << "ii: " << ii << ", region: " << dete[ii] << " --> calling computeCellDim()..." << endmsg;
+      sectionBuilder->computeCellDim(m_detectorManager, dete[ii],
+                                     m_switches.addPlatesToCell,
+                                     zShiftInSection[ii+1], // zShiftPos
+                                     zShiftInSection[ii]);  // zShiftNeg
+    }
+
+    (*m_log) << MSG::DEBUG << "Get TileDetDescriptor and call fillDescriptor()..." << endmsg;
+    TileDetDescriptor* descriptor = new TileDetDescriptor();
+    sectionBuilder->fillDescriptor(descriptor, dete[ii], side[ii],
+                                   m_switches.testBeam,      // set to false - ATLAS geometry
+                                   m_switches.addPlatesToCell, // add front/end plates to cell volume
+                                   nModulesInSection[ii],   // 0-64 modules
+                                   zShiftInSection[ii]);    // Z-shift
+
+    (*m_log) << MSG::DEBUG << "Get an Identifier for the region and add it to the detectorManager..." << endmsg;
+    Identifier idRegion = tileID->region_id(ii);
+    descriptor->set(idRegion);
+    m_detectorManager->add(descriptor);
+    m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
+  }
+
+
+  // Set geometry Tree Tops
+  GeoVolumeCursor cursor(world);
+  while (!cursor.atEnd()) {
+    std::string volName = cursor.getName();
+    if (volName.compare(0,4,"Tile")==0) {
+      (*m_log) << MSG::DEBUG << "Adding vol '" << volName << "' to detManager" << endmsg;
+      m_detectorManager->addTreeTop(GeoPVLink(cursor.getVolume().operator->()));
+    }
+    cursor.next();
+  }
+
+  (*m_log) << MSG::DEBUG << "Tile geometry from SQLite has been created." << endmsg;
+
+}
diff --git a/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.h b/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.h
index e32a8ba48aaa25121b6b3b18747fd89e121afa7d..95f158da49bdea841fc151652fceb8def0f3f686 100755
--- a/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.h
+++ b/TileCalorimeter/TileGeoModel/src/TileDetectorFactoryLite.h
@@ -7,17 +7,17 @@
  *
  * @class TileDetectorFactoryLite
  *
- * @brief Definition of the TileDetectorFactoryLite class. 
- * The TileDetectorFactoryLite is invoked by the TileDetectorTool when the GeoModel 
+ * @brief Definition of the TileDetectorFactoryLite class.
+ * The TileDetectorFactoryLite is invoked by the TileDetectorTool when the GeoModel
  * description of Tile calorimeter is built from the SQLite database
  * It also builds readout geometry (coming soon).
  *
  * @author Riccardo Maria BIANCHI <riccardo.maria.bianchi@cern.ch> , Aug 2021
  *
- * Updates: 
+ * Updates:
  * - Riccardo Maria BIANCHI <riccardo.maria.bianchi@cern.ch>, Oct 2021
  * - Riccardo Maria BIANCHI <riccardo.maria.bianchi@cern.ch>, Dec 2021
- *   Moved code to use Switches, for instance for 'addPlatesToCell' or 'testBeam' 
+ *   Moved code to use Switches, for instance for 'addPlatesToCell' or 'testBeam'
  * - Riccardo Maria BIANCHI <riccardo.maria.bianchi@cern.ch>, Jan 2022
  *   Added the build of the Readout geometry
  */
@@ -40,30 +40,29 @@ namespace GeoModelIO {
 
 class TileDetectorFactoryLite : public GeoVDetectorFactory
 {
-public:
-  
+ public:
+
   /** Constructor */
-  TileDetectorFactoryLite(StoreGateSvc *pDetStore, 
-                          TileDetDescrManager *manager, 
+  TileDetectorFactoryLite(StoreGateSvc *pDetStore,
+                          TileDetDescrManager *manager,
                           GeoModelIO::ReadGeoModel* sqliteReader,
                           IRDBAccessSvc* rdbaccess,
                           const TileSwitches & switches,
-                          MsgStream *log, 
+                          MsgStream *log,
                           bool fullGeo);
-  
+
   /** Destructor */
   ~TileDetectorFactoryLite();
-  
+
   /** Creation of Tile geometry */
   virtual void create(GeoPhysVol *world);
 
   /** Access function to TileDetDescr geometry data */
   virtual const TileDetDescrManager * getDetectorManager() const { return m_detectorManager; }
 
+ private:
 
-private:  
-  
-  /** Detector pointer to TileDetDescrManager */  
+  /** Detector pointer to TileDetDescrManager */
   TileDetDescrManager       *m_detectorManager;
 
   /** Pointer to an instance of the RDBAccessSvc to get parameters from the SQLite file */
@@ -71,7 +70,7 @@ private:
 
   /** all switches */
   TileSwitches m_switches;
-  
+
   /** Get message SVC */
   MsgStream                 *m_log;
 
@@ -80,4 +79,3 @@ private:
 };
 
 #endif
-
diff --git a/TileCalorimeter/TileGeoModel/src/TileDetectorTool.cxx b/TileCalorimeter/TileGeoModel/src/TileDetectorTool.cxx
index 09482f2e0bcfd4efa19bcc287a1f5d1e4471e208..5d0e55fc1160e20f4150a3a541001abb0dbfcf6c 100755
--- a/TileCalorimeter/TileGeoModel/src/TileDetectorTool.cxx
+++ b/TileCalorimeter/TileGeoModel/src/TileDetectorTool.cxx
@@ -14,14 +14,13 @@
 #include "TileTBFactory.h"
 #include "TileDetectorFactoryLite.h"
 
-#include "TileDetDescr/TileDetDescrManager.h" 
+#include "TileDetDescr/TileDetDescrManager.h"
 #include "TileDetDescr/TileDddbManager.h"
 #include "TileConditions/TileCablingService.h"
 
 #include "CaloIdentifier/TileID.h"
 #include "TileIdentifier/TileHWID.h"
 #include "CaloIdentifier/CaloCell_ID.h"
-#include "CaloDetDescr/CaloDetDescrElement.h"
 
 #include "GeoModelInterfaces/IGeoModelSvc.h"
 #include "GeoModelUtilities/GeoModelExperiment.h"
@@ -29,8 +28,6 @@
 #include "GaudiKernel/MsgStream.h"
 #include "StoreGate/StoreGateSvc.h"
 #include "RDBAccessSvc/IRDBAccessSvc.h"
-#include "RDBAccessSvc/IRDBRecordset.h"
-#include "RDBAccessSvc/IRDBRecord.h"
 
 #include "GeoModelRead/ReadGeoModel.h"
 
@@ -39,16 +36,15 @@
 #include "SGTools/DataProxy.h"
 
 
-
-TileDetectorTool::TileDetectorTool(const std::string& type, 
-                   const std::string& name, 
-                   const IInterface* parent):
-  GeoModelTool(type, name, parent),
-  m_switches(false,true),
-  m_not_locked(true),
-  m_useNewFactory(true),
-  m_geometryConfig("FULL"),
-  m_manager(0)
+TileDetectorTool::TileDetectorTool(const std::string& type,
+                                   const std::string& name,
+                                   const IInterface* parent)
+        : GeoModelTool(type, name, parent)
+        , m_switches(false,true)
+        , m_not_locked(true)
+        , m_useNewFactory(true)
+        , m_geometryConfig("FULL")
+        , m_manager(0)
 {
   declareProperty("UseNewFactory", m_useNewFactory);
   declareProperty("GeometryConfig",m_geometryConfig);
@@ -61,28 +57,30 @@ TileDetectorTool::TileDetectorTool(const std::string& type,
   declareProperty("CsTube",m_switches.csTube);
 }
 
+
 TileDetectorTool::~TileDetectorTool()
 {
 }
 
+
 void TileDetectorTool::setSwitch(int & param, int value, const char * name)
 {
-    if (param < 0) {
-      param = value;
-      ATH_MSG_INFO(name << " parameter from database is: " << param);
+  if (param < 0) {
+    param = value;
+    ATH_MSG_INFO(name << " parameter from database is: " << param);
+  } else {
+    if (param != value) {
+      ATH_MSG_WARNING("Overriding " << name << " value from DB by value from jobOptions, using "
+                      << param << " instead of " << value);
     } else {
-      if (param != value) {
-        ATH_MSG_WARNING("Overriding " << name << " value from DB by value from jobOptions, using "
-                        << param << " instead of " << value);
-      } else {
-        ATH_MSG_INFO(name << " parameter from jobOptions is: " << param);
-      }
+      ATH_MSG_INFO(name << " parameter from jobOptions is: " << param);
     }
+  }
 }
 
 
 StatusCode TileDetectorTool::create()
-{ 
+{
   MsgStream log(msgSvc(), name());
   ATH_MSG_INFO(" Entering TileDetectorTool::create()");
 
@@ -92,26 +90,24 @@ StatusCode TileDetectorTool::create()
 
   std::string atlasVersion = geoModel->atlasVersion();
   std::string tileVersion = geoModel->tileVersionOverride();
- 
+
   std::string versionTag = tileVersion.empty()? atlasVersion : tileVersion;
   std::string versionNode = tileVersion.empty()? "ATLAS" : "TileCal";
- 
-  if(versionTag == "AUTO")
-  {
+
+  if (versionTag == "AUTO") {
     versionTag = "TileCal-00";
-    versionNode = "TileCal";    
+    versionNode = "TileCal";
   }
   if (atlasVersion.compare(0,9,"ATLAS-CTB") == 0 || tileVersion.compare(0,6,"TileTB") == 0) {
     ATH_MSG_INFO("CTB geometry detected: " << atlasVersion  << " " << tileVersion);
     m_switches.testBeam = true;
   }
-  
+
   //Locate the top level experiment node
   GeoModelExperiment* theExpt = nullptr;
   CHECK( detStore()->retrieve(theExpt, "ATLAS") );
 
-  if ( 0 == m_detector )
-  {
+  if ( 0 == m_detector ) {
     // Get the detector configuration.
     ServiceHandle<IGeoDbTagSvc> geoDbTag("GeoDbTagSvc",name());
     ATH_CHECK(geoDbTag.retrieve());
@@ -119,7 +115,7 @@ StatusCode TileDetectorTool::create()
     // Get the 'new' accessSvc to get parameters / DB data from the DD SQLite input file.
     ServiceHandle<IRDBAccessSvc> accessSvc(geoDbTag->getParamSvcName(),name());
     ATH_CHECK(accessSvc.retrieve());
-    
+
     // Get the SQLite reader, if specified in the jobOption
     GeoModelIO::ReadGeoModel* sqliteReader = geoDbTag->getSqliteReader();
 
@@ -147,46 +143,42 @@ StatusCode TileDetectorTool::create()
     setSwitch(m_switches.csTube, dbManager->csTube(), "CsTube");
 
     m_not_locked = false;
-    
+
     GeoPhysVol *world=&*theExpt->getPhysVol();
-    
+
     // build the geometry from the standalone SQLite file
     if (sqliteReader) {
-        TileDetectorFactoryLite theTileFactoryLite(detStore().operator->(), 
-                m_manager, 
-                sqliteReader,
-                accessSvc.operator->(),
-                m_switches,
-                &log,
-                true);
-        theTileFactoryLite.create(world);
-    } 
-    // build the geometry from the Oracle-based GeometryDB
-    else {
-        if(m_switches.testBeam)
-        {
-          // TileTBFactory is not thread-safe. But since this code should only be
-          // ever called once (and this is "only" for test beam geometry), we use
-          // this rather ugly hack to silence the thread-checker warnings:
-          [[maybe_unused]] static const bool do_once ATLAS_THREAD_SAFE = [&]() ATLAS_NOT_THREAD_SAFE {
-            TileCablingService::getInstance_nc()->setTestBeam(true);
-            TileTBFactory theTileTBFactory = TileTBFactory(detStore().operator->(),m_manager,m_switches,&log);
-            theTileTBFactory.create(world);
-            return true;
-          }();
-        }
-        else if (m_useNewFactory)
-        {
-            TileAtlasFactory theTileFactory(detStore().operator->(),m_manager,m_switches,&log,m_geometryConfig=="FULL");
-            theTileFactory.create(world);
-        }
-        else
-        {
-            TileDetectorFactory theTileFactory(detStore().operator->(),m_manager,m_switches,&log);
-            theTileFactory.create(world);
-        }
+      TileDetectorFactoryLite theTileFactoryLite(detStore().operator->(),
+                                                 m_manager,
+                                                 sqliteReader,
+                                                 accessSvc.operator->(),
+                                                 m_switches,
+                                                 &log,
+                                                 true);
+      theTileFactoryLite.create(world);
+    } else {
+      // build the geometry from the Oracle-based GeometryDB
+      if (m_switches.testBeam) {
+        // TileTBFactory is not thread-safe. But since this code should only be
+        // ever called once (and this is "only" for test beam geometry), we use
+        // this rather ugly hack to silence the thread-checker warnings:
+        [[maybe_unused]] static const bool do_once ATLAS_THREAD_SAFE = [&]() ATLAS_NOT_THREAD_SAFE {
+          TileCablingService::getInstance_nc()->setTestBeam(true);
+          TileTBFactory theTileTBFactory = TileTBFactory(detStore().operator->(),m_manager,m_switches,&log);
+          theTileTBFactory.create(world);
+          return true;
+        }();
+
+      } else if (m_useNewFactory) {
+        TileAtlasFactory theTileFactory(detStore().operator->(),m_manager,m_switches,&log,m_geometryConfig=="FULL");
+        theTileFactory.create(world);
+
+      } else {
+        TileDetectorFactory theTileFactory(detStore().operator->(),m_manager,m_switches,&log);
+        theTileFactory.create(world);
+      }
     } // end of building the geometry from the GeometryDB
-   ATH_MSG_DEBUG( "The Tile raw geometry has been built.");
+    ATH_MSG_DEBUG( "The Tile raw geometry has been built.");
 
     CHECK( createElements() );
 
@@ -196,26 +188,28 @@ StatusCode TileDetectorTool::create()
 
     // For reco jobs: release DB manager. Cannot do it here for simulation jobs, they
     // release DB manager as part of global GeoModel release
-    if(m_geometryConfig=="RECO")
+    if (m_geometryConfig=="RECO")
       m_manager->releaseDbManager();
 
     return StatusCode::SUCCESS;
-  
+
   }
 
   return StatusCode::FAILURE;
 }
 
+
 StatusCode TileDetectorTool::clear()
 {
   SG::DataProxy* proxy = detStore()->proxy(ClassID_traits<TileDetDescrManager>::ID(),m_manager->getName());
-  if(proxy) {
+  if (proxy) {
     proxy->reset();
     m_manager = 0;
   }
   return StatusCode::SUCCESS;
 }
 
+
 StatusCode TileDetectorTool::initIds()
 {
   const TileID* tileID;
@@ -233,12 +227,11 @@ StatusCode TileDetectorTool::initIds()
 
   // instantiate Cabling Svc to initialize pointers to helpers there
   const TileCablingService * cabling = TileCablingService::getInstance();
-  if(cabling==0)
-  {
+  if (cabling==0) {
     ATH_MSG_ERROR("Could not get instance of TileCablingService");
     return StatusCode::FAILURE;
   }
-  
+
   return StatusCode::SUCCESS;
 }
 
diff --git a/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx b/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx
index 2af93b987e012decea1ac80fd489050d317d4e81..6dc778653b22d9adbc7969b5db04b09bc5ba5aa0 100755
--- a/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx
+++ b/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx
@@ -6,56 +6,29 @@
 #include "TileDetDescr/TileDetDescrManager.h"
 #include "TileDetDescr/TileDddbManager.h"
 #include "TileDetDescr/TileDetDescriptor.h"
-#include "TileDetDescr/TileCellDim.h"
 
-#include "GeoModelKernel/GeoTube.h"
-#include "GeoModelKernel/GeoTrd.h"
-#include "GeoModelKernel/GeoShapeUnion.h"
-#include "GeoModelKernel/GeoShapeShift.h"
-#include "GeoModelKernel/GeoMaterial.h"
-#include "GeoModelKernel/GeoLogVol.h"
 #include "GeoModelKernel/GeoPhysVol.h"
-#include "GeoModelKernel/GeoNameTag.h"
 #include "GeoModelKernel/GeoTransform.h"
-#include "GeoModelKernel/GeoSerialIdentifier.h"
-#include "GeoModelKernel/GeoIdentifierTag.h"
-#include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
-
-#include "GeoGenericFunctions/AbsFunction.h"
-#include "GeoGenericFunctions/Variable.h"
-#include "GeoModelKernel/GeoXF.h"
-#include "GeoModelKernel/GeoSerialTransformer.h"
 
 #include "GaudiKernel/MsgStream.h"
 
-#include <stdexcept>
-#include <iostream>
-#include <assert.h>
 
 TileGeoCutBuilder::TileGeoCutBuilder(StoredMaterialManager* /*matManager*/,
-				     TileDddbManager * /*pDbManager*/,
+                                     TileDddbManager * /*pDbManager*/,
                                      MsgStream * log)
-  : m_log(log)
+        : m_log(log)
 {
 }
 
+
 TileGeoCutBuilder::~TileGeoCutBuilder()
 {
 }
 
-void TileGeoCutBuilder::MakeCut(GeoPhysVol*&   mother, 
-			        int            number)
-{ // overlap precision
-  /*
-  double rless =.150; // 150 [mkm]
-
-  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-  // Obtain required materials - Air and Iron
-  const GeoMaterial* matAir = theMaterialManager->getMaterial("std::Air");
-  const GeoMaterial* matIron = theMaterialManager->getMaterial("std::Iron");
-  */
 
+void TileGeoCutBuilder::MakeCut(GeoPhysVol*&   mother,
+                                int            number)
+{
   GeoTransform* tfTmp = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
   mother->add(tfTmp);
 
@@ -63,35 +36,33 @@ void TileGeoCutBuilder::MakeCut(GeoPhysVol*&   mother,
 }
 
 
-// Checking geometry dimensions for all direction
+// Checking geometry dimensions for all directions
 
 void TileGeoCutBuilder::checking(const std::string& Name, bool print, int level,
-                                 double X1, double X2, double Y1, double Y2, double Z) 
+                                 double X1, double X2, double Y1, double Y2, double Z)
 {
   double rless = .005; // 5 [mkm]
   std::string Step[8] = {" ",
-                        "  ",
-                        "   ",
-                        "    ",
-                        "     ",
-                        "      ",
-                        "       ",
-                        "        "};
-  if (print)
-   {
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG <<Step[level]<<Name<<"-"<<level
-		<<" dX1,dX2= "<<X1<<","<<X2<<" dY1,dY2= "<<Y1<<","<<Y2<<",dZ= "<<Z
-		<<endmsg;
-   }
-  if (X1 < rless && X2 < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, X1 or X2<0 "<<endmsg;
-   }
-  if (Y1 < rless && Y2 < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Y1 or Y2<0 "<<endmsg;
-   }
-  if (Z < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Z<0   "<<endmsg;
-   } 
+                         "  ",
+                         "   ",
+                         "    ",
+                         "     ",
+                         "      ",
+                         "       ",
+                         "        "};
+  if (print) {
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG <<Step[level]<<Name<<"-"<<level
+               <<" dX1,dX2= "<<X1<<","<<X2<<" dY1,dY2= "<<Y1<<","<<Y2<<",dZ= "<<Z
+               <<endmsg;
+  }
+  if (X1 < rless && X2 < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, X1 or X2<0 "<<endmsg;
+  }
+  if (Y1 < rless && Y2 < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Y1 or Y2<0 "<<endmsg;
+  }
+  if (Z < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Z<0   "<<endmsg;
+  }
 }
-
diff --git a/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.h b/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.h
index 210bc19edd042cd5ad5280cf76132df698f8d667..60141119bddb9a4c8e2120958960c3c5349c859e 100755
--- a/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.h
+++ b/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.h
@@ -23,9 +23,10 @@ class TileDetDescriptor;
 class TileDetDescrManager;
 
 
-class TileGeoCutBuilder   
+class TileGeoCutBuilder
 {
  public:
+
   /** Constructor */
   TileGeoCutBuilder(StoredMaterialManager* matManager,
                     TileDddbManager* pDbManager,
@@ -36,8 +37,8 @@ class TileGeoCutBuilder
 
   /** Section parameters are the following:
       @param sec_number Number of sector
-      @param tile_rmax  Maximal radius 
-      @param rminb      Minimal radius 
+      @param tile_rmax  Maximal radius
+      @param rminb      Minimal radius
       @param dzglue     Glue gap along dZ
       @param delta_phi  Delta Phi
       @param zlen_itc2  Length for ITC2 only
@@ -46,11 +47,11 @@ class TileGeoCutBuilder
                int                      number);
 
   void checking(const std::string& VolumeName, bool print, int level,
-                double X1, double X2, double Y1, double Y2, double Z); 
+                double X1, double X2, double Y1, double Y2, double Z);
 
  private:
+
   MsgStream *                           m_log;
 };
 
 #endif // not TILEGEOMODEL_TILEGEOCUTBUILDER_H
-
diff --git a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx
index ee764ad3e351b538a0f26eec1d09bf8c1a70918d..47ed2cb928c2008fc07244369614b00f7d4aec00 100755
--- a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx
+++ b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx
@@ -37,11 +37,7 @@
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/SystemOfUnits.h"
 
-#include <stdexcept>
 #include <iostream>
-#include <limits>
-#include <cmath>
-#include <cstddef>
 
 #include <assert.h>
 
@@ -49,49 +45,52 @@
 
 using namespace GeoGenfun;
 using namespace GeoXF;
-  
+
+
 TileGeoSectionBuilder::TileGeoSectionBuilder(StoredMaterialManager* matManager,
-                         TileDddbManager * pDbManager,
+                                             TileDddbManager * pDbManager,
                                              const TileSwitches & switches,
                                              MsgStream * log)
-  : m_theMaterialManager(matManager)
-  , m_dbManager(pDbManager)
-  , m_log(log)
-  , m_switches(switches)
-  , m_barrelPeriodThickness(0.)
-  , m_barrelGlue(0.)
-  , m_extendedPeriodThickness(0.)
-  , m_verbose(log->level()<=MSG::VERBOSE)
-  , m_matLArServices(0)
-  , m_matIronHalfDens(0)
-  , m_additionalIronLayer(0.027)
+        : m_theMaterialManager(matManager)
+        , m_dbManager(pDbManager)
+        , m_log(log)
+        , m_switches(switches)
+        , m_barrelPeriodThickness(0.)
+        , m_barrelGlue(0.)
+        , m_extendedPeriodThickness(0.)
+        , m_verbose(log->level()<=MSG::VERBOSE)
+                                                        , m_matLArServices(0)
+                                                        , m_matIronHalfDens(0)
+                                                        , m_additionalIronLayer(0.027)
 {
 }
 
+
 TileGeoSectionBuilder::~TileGeoSectionBuilder()
 {
 }
 
+
 void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
-                        int                      sec_number,
-                        double                   tile_rmax,
-                        double                   rminb,
-                        double                   dzglue,
-                        double                   delta_phi,
+                                        int                      sec_number,
+                                        double                   tile_rmax,
+                                        double                   rminb,
+                                        double                   dzglue,
+                                        double                   delta_phi,
                                         int                      ModuleNcp,
-                        double                   zlen_itc2,
-                    bool                     neg)
+                                        double                   zlen_itc2,
+                                        bool                     neg)
 {
   (*m_log) << MSG::DEBUG <<" TileGeoSectionBuilder::fillSection ModuleNcp= "<<ModuleNcp<< endmsg;
 
   double tan_delta_phi_2 = tan(delta_phi/2*Gaudi::Units::deg);
-  
+
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
   // Obtain required materials - Air and Iron
 
   const GeoMaterial* matAir = m_theMaterialManager->getMaterial("std::Air");
   const GeoMaterial* matIron = (m_switches.steel) ? m_theMaterialManager->getMaterial("tile::Steel")
-                                                  : m_theMaterialManager->getMaterial("std::Iron");
+      : m_theMaterialManager->getMaterial("std::Iron");
   const GeoMaterial* matAluminium = 0;
 
   // -----------------------------------------------------------------------------------------------------------------
@@ -101,17 +100,17 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
   std::string volname ="";
 
   // Cuting positioning
-  float PosXcut =0., PosYcut =0., PosY =0., Rmore =0.; 
+  float PosXcut =0., PosYcut =0., PosY =0., Rmore =0.;
   float Radius =0., YcorA =0., YcorB =0., lenPla =0., Blia =0.;
 
-  // General rotation and transformations 
+  // General rotation and transformations
   float phi = (double(ModuleNcp-1) + 0.5)*delta_phi;
 
   // Special module flag
   int SideFl = 1;
   if (ModuleNcp>=35 && ModuleNcp<=37) SideFl = -1;
 
-  GeoTrf::Transform3D TransCut2(GeoTrf::Transform3D::Identity()); 
+  GeoTrf::Transform3D TransCut2(GeoTrf::Transform3D::Identity());
   GeoTrf::Transform3D TransCutL(GeoTrf::Transform3D::Identity());
   GeoTrf::Transform3D TransCutR(GeoTrf::Transform3D::Identity());
 
@@ -119,104 +118,103 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
   GeoShape *CutB{nullptr};
 
   // ext. barrel Cuts description
-  if (sec_number==2 && m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)))
-   { 
-      volname = "CutB"; m_dbManager->SetCurrentCuts(volname); 
-      PosXcut = m_dbManager->CutsXpos(); 
-      PosYcut = m_dbManager->CutsYpos();
-      Rmore   = 0.8*Gaudi::Units::cm;
-
-      // Inert materials, CutB1
-      dX1 = m_dbManager->CutsDX1()+Rmore; 
-      dX2 = m_dbManager->CutsDX2()+Rmore; 
-      dY1 = m_dbManager->CutsDY1()+Rmore; 
-      dY2 = m_dbManager->CutsDY2()+Rmore; 
-      dZ1 = m_dbManager->CutsDZ1(); 
-
-      checking("CutB1", false, 1, dX1,dX2,dY1,dY2,dZ1);
-      GeoTrd* CutB1 = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
-      //const GeoShape& CutB = *CutB1;
-      CutB = CutB1;
-
-      // Materials are in cuting region, 1up Iron plate
-      volname = "Cut1up"; m_dbManager->SetCurrentCuts(volname); //>>
-      PosY =  m_dbManager->CutsYpos();
-
-      dX1 = m_dbManager->CutsDX1()+Rmore; 
-      dX2 = m_dbManager->CutsDX2()+Rmore; 
-      dY1 = m_dbManager->CutsDY1(); 
-      dY2 = m_dbManager->CutsDY2(); 
-      dZ1 = m_dbManager->CutsDZ1(); 
-
-      checking("Cut1up", false, 1, dX1,dX2,dY1,dY2,dZ1);
-      GeoTrd* Cut1up = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);     
-
-      volname = "Cut2down"; m_dbManager->SetCurrentCuts(volname); //>>
-      dX1 = m_dbManager->CutsDX1()+Rmore; 
-      dX2 = m_dbManager->CutsDX2()+Rmore; 
-      dY1 = m_dbManager->CutsDY1(); 
-      dY2 = m_dbManager->CutsDY2(); 
-      dZ2 = m_dbManager->CutsDZ1(); 
-
-      checking("Cut2down", false, 1, dX1,dX2,dY1,dY2,dZ2);
-      GeoTrd* Cut1down = new GeoTrd(dX1,dX2,dY1,dY2,dZ2);
- 
-      GeoTrf::Translate3D yPosA(0.,0.,-dZ1-dZ2);
-
-      const GeoShapeUnion& CutA1 = Cut1up->add(*Cut1down<<yPosA);
-      CutA = &CutA1;
-      
-      Radius = (m_dbManager->TILBrmaximal() + m_dbManager->TILBrminimal())/2 * Gaudi::Units::cm; 
-
-      if (ModuleNcp==35||ModuleNcp==62) { YcorA = 5*Gaudi::Units::cm;   YcorB = 5*Gaudi::Units::cm; lenPla =0.8*Gaudi::Units::cm, Blia = 17.4*Gaudi::Units::cm;}  
-      if (ModuleNcp==36||ModuleNcp==61) { YcorA = 6.5*Gaudi::Units::cm; YcorB = 6*Gaudi::Units::cm; lenPla =1.7*Gaudi::Units::cm; Blia = 16.9*Gaudi::Units::cm;} 
-      if (ModuleNcp==37||ModuleNcp==60) { YcorA = 8*Gaudi::Units::cm;   YcorB = 9*Gaudi::Units::cm; lenPla =2.8*Gaudi::Units::cm; Blia = 16.4*Gaudi::Units::cm;} 
-
-      TransCut2 = GeoTrf::TranslateZ3D(-Radius) 
-    * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg) 
-    * GeoTrf::Translate3D(0.1*Gaudi::Units::cm,SideFl*17.5*Gaudi::Units::cm,-PosY+YcorA); 
-
-      // For modules on the side C apply extra transformation
-      // which implements ReflectZ(0)
-      if(neg) {
-    GeoTrf::Vector3D ptTmp = TransCut2*GeoTrf::Vector3D(0.,0.,0.);
-    TransCut2 = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCut2;
-      }
+  if (sec_number==2 && m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62))) {
+    volname = "CutB"; m_dbManager->SetCurrentCuts(volname);
+    PosXcut = m_dbManager->CutsXpos();
+    PosYcut = m_dbManager->CutsYpos();
+    Rmore   = 0.8*Gaudi::Units::cm;
 
-      if (ModuleNcp>=60 && ModuleNcp<=62) {   
-    TransCutL = GeoTrf::TranslateZ3D(-Radius) 
-      * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) 
-      * GeoTrf::Translate3D(-1.4*Gaudi::Units::cm,PosYcut+YcorB,-PosXcut-Blia); 
+    // Inert materials, CutB1
+    dX1 = m_dbManager->CutsDX1()+Rmore;
+    dX2 = m_dbManager->CutsDX2()+Rmore;
+    dY1 = m_dbManager->CutsDY1()+Rmore;
+    dY2 = m_dbManager->CutsDY2()+Rmore;
+    dZ1 = m_dbManager->CutsDZ1();
 
-    // ReflectZ for C side
-    if(neg) {
-      GeoTrf::Vector3D ptTmp = TransCutL*GeoTrf::Vector3D(0.,0.,0.);
-      TransCutL = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCutL;
-    }
-      } else if (ModuleNcp>=35 && ModuleNcp<=37)  { 
-    TransCutR = GeoTrf::TranslateZ3D(-Radius) 
-      * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg) 
-      * GeoTrf::Translate3D(-1.4*Gaudi::Units::cm,PosYcut+YcorB,PosXcut+Blia)  
-      * GeoTrf::RotateY3D(180*Gaudi::Units::deg); 
-    // ReflectZ for C side
-    if(neg) {
-      GeoTrf::Vector3D ptTmp = TransCutR*GeoTrf::Vector3D(0.,0.,0.);
-      TransCutR = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCutR;
+    checking("CutB1", false, 1, dX1,dX2,dY1,dY2,dZ1);
+    GeoTrd* CutB1 = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
+    //const GeoShape& CutB = *CutB1;
+    CutB = CutB1;
+
+    // Materials are in cuting region, 1up Iron plate
+    volname = "Cut1up"; m_dbManager->SetCurrentCuts(volname); //>>
+    PosY =  m_dbManager->CutsYpos();
+
+    dX1 = m_dbManager->CutsDX1()+Rmore;
+    dX2 = m_dbManager->CutsDX2()+Rmore;
+    dY1 = m_dbManager->CutsDY1();
+    dY2 = m_dbManager->CutsDY2();
+    dZ1 = m_dbManager->CutsDZ1();
+
+    checking("Cut1up", false, 1, dX1,dX2,dY1,dY2,dZ1);
+    GeoTrd* Cut1up = new GeoTrd(dX1,dX2,dY1,dY2,dZ1);
+
+    volname = "Cut2down"; m_dbManager->SetCurrentCuts(volname); //>>
+    dX1 = m_dbManager->CutsDX1()+Rmore;
+    dX2 = m_dbManager->CutsDX2()+Rmore;
+    dY1 = m_dbManager->CutsDY1();
+    dY2 = m_dbManager->CutsDY2();
+    dZ2 = m_dbManager->CutsDZ1();
+
+    checking("Cut2down", false, 1, dX1,dX2,dY1,dY2,dZ2);
+    GeoTrd* Cut1down = new GeoTrd(dX1,dX2,dY1,dY2,dZ2);
+
+    GeoTrf::Translate3D yPosA(0.,0.,-dZ1-dZ2);
+
+    const GeoShapeUnion& CutA1 = Cut1up->add(*Cut1down<<yPosA);
+    CutA = &CutA1;
+
+    Radius = (m_dbManager->TILBrmaximal() + m_dbManager->TILBrminimal())/2 * Gaudi::Units::cm;
+
+    if (ModuleNcp==35||ModuleNcp==62) { YcorA = 5*Gaudi::Units::cm;   YcorB = 5*Gaudi::Units::cm; lenPla =0.8*Gaudi::Units::cm, Blia = 17.4*Gaudi::Units::cm;}
+    if (ModuleNcp==36||ModuleNcp==61) { YcorA = 6.5*Gaudi::Units::cm; YcorB = 6*Gaudi::Units::cm; lenPla =1.7*Gaudi::Units::cm; Blia = 16.9*Gaudi::Units::cm;}
+    if (ModuleNcp==37||ModuleNcp==60) { YcorA = 8*Gaudi::Units::cm;   YcorB = 9*Gaudi::Units::cm; lenPla =2.8*Gaudi::Units::cm; Blia = 16.4*Gaudi::Units::cm;}
+
+    TransCut2 = GeoTrf::TranslateZ3D(-Radius)
+        * GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
+        * GeoTrf::Translate3D(0.1*Gaudi::Units::cm,SideFl*17.5*Gaudi::Units::cm,-PosY+YcorA);
+
+    // For modules on the side C apply extra transformation
+    // which implements ReflectZ(0)
+    if (neg) {
+      GeoTrf::Vector3D ptTmp = TransCut2*GeoTrf::Vector3D(0.,0.,0.);
+      TransCut2 = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCut2;
     }
+
+    if (ModuleNcp>=60 && ModuleNcp<=62) {
+      TransCutL = GeoTrf::TranslateZ3D(-Radius)
+          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
+          * GeoTrf::Translate3D(-1.4*Gaudi::Units::cm,PosYcut+YcorB,-PosXcut-Blia);
+
+      // ReflectZ for C side
+      if (neg) {
+        GeoTrf::Vector3D ptTmp = TransCutL*GeoTrf::Vector3D(0.,0.,0.);
+        TransCutL = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCutL;
+      }
+
+    } else if (ModuleNcp>=35 && ModuleNcp<=37) {
+      TransCutR = GeoTrf::TranslateZ3D(-Radius)
+          * GeoTrf::RotateY3D(180*Gaudi::Units::deg) * GeoTrf::RotateX3D(phi*Gaudi::Units::deg)
+          * GeoTrf::Translate3D(-1.4*Gaudi::Units::cm,PosYcut+YcorB,PosXcut+Blia)
+          * GeoTrf::RotateY3D(180*Gaudi::Units::deg);
+      // ReflectZ for C side
+      if (neg) {
+        GeoTrf::Vector3D ptTmp = TransCutR*GeoTrf::Vector3D(0.,0.,0.);
+        TransCutR = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*Gaudi::Units::deg)*TransCutR;
       }
-      
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: CutA and CutB Ok"<< endmsg;
-   } // end if,  BoolCuts
+    }
+
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG <<" _fillSection: CutA and CutB Ok"<< endmsg;
+  } // end if,  BoolCuts
 
   //---------------------Girder-----------------------------------------
- 
+
   int Id4 = m_dbManager->GetModType()%100;
   double thicknessGirderMother = 0.0;
-  double specialModuleZShift = 0.0; 
+  double specialModuleZShift = 0.0;
 
-  if (m_dbManager->TILBngirder() > 0)
-  {
+  if (m_dbManager->TILBngirder() > 0) {
     // Mother volume for girder
     thicknessGirderMother = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*Gaudi::Units::cm;
     // special module with special girder
@@ -230,19 +228,18 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
     //     std::cout <<"\t\t PS Girder Module = "<<ModuleNcp<< std::endl;
     //     std::cout <<"\t\t PS thicknessGirderMother = "<<thicknessGirderMother<< std::endl;
     //ps account for special ITC modules 14,15,18,19
-    if  ((Id4 == 7) && (sec_number == 3))
-      {
-    specialModuleZShift = 0.5*Gaudi::Units::cm*(m_dbManager->TILBdzgir() - m_dbManager->TILBdzmodul());
-      }
+    if  ((Id4 == 7) && (sec_number == 3)) {
+      specialModuleZShift = 0.5*Gaudi::Units::cm*(m_dbManager->TILBdzgir() - m_dbManager->TILBdzmodul());
+    }
     //
-    checking("GirderMother", false, 3, 
-        thicknessGirderMother/2,thicknessGirderMother/2,dy1GirderMother,dy2GirderMother,heightGirderMother/2);
+    checking("GirderMother", false, 3,
+             thicknessGirderMother/2,thicknessGirderMother/2,dy1GirderMother,dy2GirderMother,heightGirderMother/2);
 
     GeoTrd* girderMother = new GeoTrd(thicknessGirderMother/2,
-                      thicknessGirderMother/2,
-                      dy1GirderMother,
-                      dy2GirderMother,
-                      heightGirderMother/2);
+                                      thicknessGirderMother/2,
+                                      dy1GirderMother,
+                                      dy2GirderMother,
+                                      heightGirderMother/2);
 
     GeoLogVol* lvGirderMother = new GeoLogVol("GirderMother",girderMother,matAir);
     GeoPhysVol* pvGirderMother = new GeoPhysVol(lvGirderMother);
@@ -255,17 +252,17 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
     GeoTransform* tfGirderMother = 0;
 
-    if(sec_number==3)
+    if (sec_number==3)
       tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*Gaudi::Units::cm/2, 0.,
-                               (m_dbManager->TILBrmax()-m_dbManager->TILBrmin())*Gaudi::Units::cm/2));
+                                                            (m_dbManager->TILBrmax()-m_dbManager->TILBrmin())*Gaudi::Units::cm/2));
     else
       tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*Gaudi::Units::cm/2, 0.,
-                               (m_dbManager->TILBrmax()-rminb)*Gaudi::Units::cm/2));
+                                                            (m_dbManager->TILBrmax()-rminb)*Gaudi::Units::cm/2));
 
     mother->add(tfGirderMother);
-    mother->add(pvGirderMother); 
+    mother->add(pvGirderMother);
 
-    if(m_log->level()<=MSG::DEBUG)
+    if (m_log->level()<=MSG::DEBUG)
       (*m_log) << MSG::DEBUG <<" _fillSection: GirderMother Ok "<< endmsg;
 
   } // End Girder
@@ -275,47 +272,43 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
   double rless =.150; // 150 [mkm]
   int NbPeriod =0;
 
-  if(m_dbManager->TILBdrfront() > 0)
-  {
-    if(sec_number==3)
-    {
+  if (m_dbManager->TILBdrfront() > 0) {
+    if (sec_number==3) {
       //ITC coverplate
       thicknessFrontPlate = (m_dbManager->TILBdzmodul() - zlen_itc2)*Gaudi::Units::cm;
 
-      if (thicknessFrontPlate > rless)
-       {
-         heightFrontPlate = m_dbManager->TILBdrfront()*Gaudi::Units::cm;
-         dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
-         dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
-
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG <<"   FrontPlateSh dX1,dX2= "<<thicknessFrontPlate/2<<", "<<thicknessFrontPlate/2
-            <<" dY1,dY2= "<<dy1FrontPlate<<" "<<dy2FrontPlate<<" dZ= "<<heightFrontPlate/2
-            << endmsg;
-
-         GeoTrd* frontPlateSh = new GeoTrd(thicknessFrontPlate/2,
-                                   thicknessFrontPlate/2,
-                       dy1FrontPlate,
-                       dy2FrontPlate,
-                       heightFrontPlate/2);
-
-         GeoLogVol* lvFrontPlateSh = new GeoLogVol("FrontPlateSh",frontPlateSh,matIron);
-         GeoPhysVol* pvFrontPlateSh = new GeoPhysVol(lvFrontPlateSh);
-         GeoTransform* tfFrontPlateSh = new GeoTransform(GeoTrf::Translate3D(
-                    -m_dbManager->TILBdzmodul()/2*Gaudi::Units::cm+thicknessFrontPlate/2, 0., 
-                    (rminb - tile_rmax)/2*Gaudi::Units::cm)); 
-
-         mother->add(tfFrontPlateSh);
-         mother->add(pvFrontPlateSh);
-       } else {
-    if(m_log->level()<=MSG::DEBUG)
-      (*m_log) << MSG::DEBUG <<"   FrontPlateSh was lost "<< endmsg;
-       }
-    }
-    else if (sec_number==2 && (m_dbManager->BoolCuts() &&  
-                  ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) ))
-    { 
+      if (thicknessFrontPlate > rless) {
+        heightFrontPlate = m_dbManager->TILBdrfront()*Gaudi::Units::cm;
+        dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+        dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG <<"   FrontPlateSh dX1,dX2= "<<thicknessFrontPlate/2<<", "<<thicknessFrontPlate/2
+                   <<" dY1,dY2= "<<dy1FrontPlate<<" "<<dy2FrontPlate<<" dZ= "<<heightFrontPlate/2
+                   << endmsg;
+
+        GeoTrd* frontPlateSh = new GeoTrd(thicknessFrontPlate/2,
+                                          thicknessFrontPlate/2,
+                                          dy1FrontPlate,
+                                          dy2FrontPlate,
+                                          heightFrontPlate/2);
 
+        GeoLogVol* lvFrontPlateSh = new GeoLogVol("FrontPlateSh",frontPlateSh,matIron);
+        GeoPhysVol* pvFrontPlateSh = new GeoPhysVol(lvFrontPlateSh);
+        GeoTransform* tfFrontPlateSh = new GeoTransform(GeoTrf::Translate3D(
+                                                            -m_dbManager->TILBdzmodul()/2*Gaudi::Units::cm+thicknessFrontPlate/2, 0.,
+                                                            (rminb - tile_rmax)/2*Gaudi::Units::cm));
+
+        mother->add(tfFrontPlateSh);
+        mother->add(pvFrontPlateSh);
+
+      } else {
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG <<"   FrontPlateSh was lost "<< endmsg;
+      }
+
+    } else if (sec_number==2 && (m_dbManager->BoolCuts() &&
+                                 ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) )) {
 
       std::string volname ="";
       double dXCutA = 0, dXCutB = 0;
@@ -323,45 +316,43 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       volname = "Cut1up"; m_dbManager->SetCurrentCuts(volname);
       dXCutA = m_dbManager->CutsDX1();
 
-      volname = "CutB"; m_dbManager->SetCurrentCuts(volname); 
-      dXCutB = m_dbManager->CutsDX1(); 
-      
+      volname = "CutB"; m_dbManager->SetCurrentCuts(volname);
+      dXCutB = m_dbManager->CutsDX1();
+
       thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*Gaudi::Units::cm;
       heightFrontPlate = m_dbManager->TILBdrfront()*Gaudi::Units::cm;
       dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
       dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
 
       GeoTrd* frontPlate = new GeoTrd(thicknessFrontPlate/2 -(dXCutA+dXCutB),
-                      thicknessFrontPlate/2 -(dXCutA+dXCutB),
+                                      thicknessFrontPlate/2 -(dXCutA+dXCutB),
                                       dy1FrontPlate,
-                      dy2FrontPlate,
-                      heightFrontPlate/2);
+                                      dy2FrontPlate,
+                                      heightFrontPlate/2);
 
       // Cuting of Plate
       /*
-      GeoTrf::Transform3D  TCu2 = GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
-                           * GeoTrf::Translate3D(thicknessFrontPlate/2-dXCutA,0,0); 
-      GeoTransform* TCu = new GeoTransform(TCu2);
+        GeoTrf::Transform3D  TCu2 = GeoTrf::RotateX3D((90-phi)*Gaudi::Units::deg) * GeoTrf::RotateY3D(180*Gaudi::Units::deg)
+        * GeoTrf::Translate3D(thicknessFrontPlate/2-dXCutA,0,0);
+        GeoTransform* TCu = new GeoTransform(TCu2);
 
-      const GeoShape &tmp_frontPlate = frontPlate->subtract((*CutA)<<TCu2);
-                                                  .subtract((*CutB)<<TransCutL); 
+        const GeoShape &tmp_frontPlate = frontPlate->subtract((*CutA)<<TCu2);
+        .subtract((*CutB)<<TransCutL);
       */
 
-      GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron); 
-      GeoPhysVol* pvFrontPlate = new GeoPhysVol(lvFrontPlate); 
+      GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron);
+      GeoPhysVol* pvFrontPlate = new GeoPhysVol(lvFrontPlate);
       GeoTransform* tfFrontPlate = new GeoTransform(GeoTrf::Translate3D(
-            (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*Gaudi::Units::cm+ dXCutB, 0.,
-                    (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*Gaudi::Units::cm));
+                                                        (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*Gaudi::Units::cm+ dXCutB, 0.,
+                                                        (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*Gaudi::Units::cm));
 
       mother->add(tfFrontPlate);
       mother->add(pvFrontPlate);
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG<<" _fillSection: FrontPlate Cut Ok "<< endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG<<" _fillSection: FrontPlate Cut Ok "<< endmsg;
 
-    }
-    else
-    {
+    } else {
       //Ordinary frontplate
       thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*Gaudi::Units::cm;
       heightFrontPlate = m_dbManager->TILBdrfront()*Gaudi::Units::cm;
@@ -369,16 +360,16 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
 
       GeoTrd* frontPlate = new GeoTrd(thicknessFrontPlate/2,
-                      thicknessFrontPlate/2,
-                      dy1FrontPlate,
-                      dy2FrontPlate,
-                      heightFrontPlate/2);
+                                      thicknessFrontPlate/2,
+                                      dy1FrontPlate,
+                                      dy2FrontPlate,
+                                      heightFrontPlate/2);
 
-      GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron); 
+      GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron);
       GeoPhysVol* pvFrontPlate = new GeoPhysVol(lvFrontPlate);
       GeoTransform* tfFrontPlate = new GeoTransform(GeoTrf::Translate3D(
-                    (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*Gaudi::Units::cm, 0.,
-                    (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*Gaudi::Units::cm));
+                                                        (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*Gaudi::Units::cm, 0.,
+                                                        (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*Gaudi::Units::cm));
 
       mother->add(tfFrontPlate);
       mother->add(pvFrontPlate);
@@ -388,297 +379,277 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
   //--------------------End Plates--------------------------------------
   double dy1EndPlate, dy2EndPlate, thicknessEndPlate, heightEndPlate;
 
-  //VARIABLES FOR END PLATE HOLE  
+  //VARIABLES FOR END PLATE HOLE
   double heightEPHole = m_dbManager->TILBflangex()*Gaudi::Units::cm;
   double dyEPHole = m_dbManager->TILBflangex()*Gaudi::Units::cm/2;
 
-  // ps . shifts for end plates in cutout regions 
-  GeoTrf::Transform3D cutOutTransformation(GeoTrf::Transform3D::Identity()); 
+  // ps . shifts for end plates in cutout regions
+  GeoTrf::Transform3D cutOutTransformation(GeoTrf::Transform3D::Identity());
   //first endplate
   GeoTransform* tfEndPlateSh{nullptr};
 
-  if (m_dbManager->TILBdzend1() > 0)
-  {
-    if (m_dbManager->TILBdzend() < m_dbManager->TILBdzend1())
-    {
- 
+  if (m_dbManager->TILBdzend1() > 0) {
+    if (m_dbManager->TILBdzend() < m_dbManager->TILBdzend1()) {
+
       //Short endplate
       dy1EndPlate = rminb * tan_delta_phi_2 * Gaudi::Units::cm;
       dy2EndPlate = m_dbManager->TILBrmax() * tan_delta_phi_2 * Gaudi::Units::cm;
       thicknessEndPlate = m_dbManager->TILBdzend1() * Gaudi::Units::cm;
       heightEndPlate = (m_dbManager->TILBrmax() - rminb) * Gaudi::Units::cm;
       //
-      // creating standart endplate. It is the same for 
+      // creating standart endplate. It is the same for
       // both standard mosules and modules with cuts
       //
-      GeoTrd* endPlateSh = new GeoTrd(thicknessEndPlate/2, 
-                      thicknessEndPlate/2,
-                      dy1EndPlate,
-                      dy2EndPlate,
-                      heightEndPlate/2);
-      GeoLogVol* lvEndPlateSh = 0; 
-      
-      //      if ( sec_number==2 && ( (ModuleNcp==37)||( ModuleNcp==60) ) ) 
-      if (sec_number==2 && ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) ) 
-    {//Short endplate Cut-outs
+      GeoTrd* endPlateSh = new GeoTrd(thicknessEndPlate/2,
+                                      thicknessEndPlate/2,
+                                      dy1EndPlate,
+                                      dy2EndPlate,
+                                      heightEndPlate/2);
+      GeoLogVol* lvEndPlateSh = 0;
+
+      // if ( sec_number==2 && ( (ModuleNcp==37)||( ModuleNcp==60) ) )
+      if (sec_number==2 && ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) ) { // Short endplate Cut-outs
+
+        //
+        //  shape for the cutted part
+        //
+        GeoTrd* endPlateShCut = new GeoTrd(thicknessEndPlate,
+                                           thicknessEndPlate,
+                                           heightEndPlate/2.,
+                                           heightEndPlate/2.,
+                                           dy2EndPlate);
+
+
+        double rotationAngle ;
+        double shiftCutPlate ;
+        int rotationSign = 1;
+        if (ModuleNcp > 50) rotationSign *= -1;
+        if ( neg ) rotationSign *= -1;
+
+
+        if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) ) {
+          rotationAngle = (180.0 - 25.3125 )* Gaudi::Units::deg ;  // ATLLEMS_0003 0004
+          shiftCutPlate =  38.7 * Gaudi::Units::mm;
+
+          cutOutTransformation =
+              GeoTrf::Translate3D(0,0, -heightEndPlate/2.) *
+              GeoTrf::RotateX3D(  90 * Gaudi::Units::deg ) *
+              GeoTrf::Translate3D(0.,0., -rotationSign * (dy2EndPlate + shiftCutPlate ) ) *
+              GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
+
+          const GeoShape & endPlateShCutted3760 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ;
+          lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3760) , matIron);
+
+        } else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) ) {
+          rotationAngle = - ( 116.4832 - 90. )* Gaudi::Units::deg ;  // ATLLEMS_0005 0006
+          shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1448.4 * Gaudi::Units::mm);
+
+          cutOutTransformation =
+              GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *
+              GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate + 0.5*dy2EndPlate*(1.- std::cos(rotationAngle*Gaudi::Units::rad)))  ) *
+              GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
+
+          const GeoShape & endPlateShCutted3661 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ;
+          lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3661) , matIron);
+
+        } else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) ) {
+          rotationAngle = - ( 104.0625 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0007 0008
+          shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1534.6 * Gaudi::Units::mm);
+
+          cutOutTransformation =
+              GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *
+              GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *
+              GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
+
+          const GeoShape & endPlateShCutted3562 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ;
+          lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3562) , matIron);
 
-    //
-    //  shape for the cutted part
-    //
-    GeoTrd* endPlateShCut = new GeoTrd(thicknessEndPlate, 
-                       thicknessEndPlate,
-                       heightEndPlate/2.,
-                       heightEndPlate/2.,
-                       dy2EndPlate);
-
-    
-    double rotationAngle ;
-    double shiftCutPlate ;
-    int rotationSign = 1;
-    if (ModuleNcp > 50) rotationSign *= -1;
-    if ( neg ) rotationSign *= -1;
-
-
-    if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) )
-      {
-        rotationAngle = (180.0 - 25.3125 )* Gaudi::Units::deg ;  // ATLLEMS_0003 0004
-        shiftCutPlate =  38.7 * Gaudi::Units::mm;
-
-        cutOutTransformation = 
-          GeoTrf::Translate3D(0,0, -heightEndPlate/2.) *  
-          GeoTrf::RotateX3D(  90 * Gaudi::Units::deg ) *
-          GeoTrf::Translate3D(0.,0., -rotationSign * (dy2EndPlate + shiftCutPlate ) ) *
-          GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
-        
-        const GeoShape & endPlateShCutted3760 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ;        
-        lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3760) , matIron);
-      }
-    else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) )
-      {
-        rotationAngle = - ( 116.4832 - 90. )* Gaudi::Units::deg ;  // ATLLEMS_0005 0006
-        shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1448.4 * Gaudi::Units::mm);
-
-        cutOutTransformation = 
-          GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *  
-          GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate + 0.5*dy2EndPlate*(1.- std::cos(rotationAngle*Gaudi::Units::rad)))  ) *  
-          GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
+        } else {
+          (*m_log) << MSG::ERROR <<" TileGeoSectionBuilder::fillSection . Wrong Module in cut-out region. ModuleNcp= "<<ModuleNcp<< endmsg;
+          lvEndPlateSh = new GeoLogVol("EndPlateSh", endPlateSh , matIron);
+        }
 
-        const GeoShape & endPlateShCutted3661 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ;        
-        lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3661) , matIron);
-      }
-    else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) )
-      {
-        rotationAngle = - ( 104.0625 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0007 0008
-        shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1534.6 * Gaudi::Units::mm);
-        
-        cutOutTransformation = 
-          GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *  
-          GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *  
-          GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
-        
-        const GeoShape & endPlateShCutted3562 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ;        
-        lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3562) , matIron);
-      }
-    else
-      {
-        (*m_log) << MSG::ERROR <<" TileGeoSectionBuilder::fillSection . Wrong Module in cut-out region. ModuleNcp= "<<ModuleNcp<< endmsg;   
+      } else {
         lvEndPlateSh = new GeoLogVol("EndPlateSh", endPlateSh , matIron);
       }
 
-    
-    } 
-      else 
-    {
-      lvEndPlateSh = new GeoLogVol("EndPlateSh", endPlateSh , matIron);
-    }
-      
 
 
 
       // const GeoShape & endPlateShFinal = (endPlateSh->subtract( (*CutB)<<TransCutL ) );
-      //subtract((*CutB)<<TransCutL); 
+      //subtract((*CutB)<<TransCutL);
 
       GeoPhysVol* pvEndPlateSh = new GeoPhysVol(lvEndPlateSh);
 
       tfEndPlateSh = new GeoTransform(GeoTrf::Translate3D(
-                             specialModuleZShift + 
-                             (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0.,
-                             (m_dbManager->TILBrmax() - tile_rmax)*Gaudi::Units::cm/2));
+                                          specialModuleZShift +
+                                          (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0.,
+                                          (m_dbManager->TILBrmax() - tile_rmax)*Gaudi::Units::cm/2));
       tfEndPlateSh->ref();
-      
+
       mother->add(tfEndPlateSh);
       mother->add(pvEndPlateSh);
       tfEndPlateSh->unref();
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: ext.barrel EndPlateSh Ok "<< endmsg;
-    }
-    else
-    {
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" _fillSection: ext.barrel EndPlateSh Ok "<< endmsg;
+
+    } else {
       //Ordinary endplate
       dy1EndPlate = rminb * tan_delta_phi_2 * Gaudi::Units::cm;
       dy2EndPlate = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm;
       thicknessEndPlate = m_dbManager->TILBdzend1() * Gaudi::Units::cm;
-      heightEndPlate = (tile_rmax-rminb)*Gaudi::Units::cm; 
+      heightEndPlate = (tile_rmax-rminb)*Gaudi::Units::cm;
 
       GeoTrd* endPlate1 = new GeoTrd(thicknessEndPlate/2,
-                     thicknessEndPlate/2,
-                     dy1EndPlate,
-                     dy2EndPlate,
-                     heightEndPlate/2);  
+                                     thicknessEndPlate/2,
+                                     dy1EndPlate,
+                                     dy2EndPlate,
+                                     heightEndPlate/2);
 
       GeoLogVol* lvEndPlate1 = new GeoLogVol("EndPlate1",endPlate1,matIron);
       GeoPhysVol* pvEndPlate1 = new GeoPhysVol(lvEndPlate1);
 
       //Position air hole
-      if (m_dbManager->TILBflangex() > 0.)
-      {
-    GeoTrd* epHole1 = new GeoTrd (thicknessEndPlate/2,
-                      thicknessEndPlate/2,
-                      dyEPHole,
-                      dyEPHole,
-                      heightEPHole/2);
-
-    GeoLogVol* lvEPHole1 = new GeoLogVol("EPHole1",epHole1,matAir);
-    GeoPhysVol* pvEPHole1 = new GeoPhysVol(lvEPHole1);
-    GeoTransform* tfEPHole1 = new GeoTransform(GeoTrf::Translate3D(0.,0.,
-                                      (m_dbManager->TILBflangey()-(tile_rmax + rminb)/2)*Gaudi::Units::cm));
-    pvEndPlate1->add(tfEPHole1);
-    pvEndPlate1->add(pvEPHole1);
+      if (m_dbManager->TILBflangex() > 0.) {
+        GeoTrd* epHole1 = new GeoTrd (thicknessEndPlate/2,
+                                      thicknessEndPlate/2,
+                                      dyEPHole,
+                                      dyEPHole,
+                                      heightEPHole/2);
+
+        GeoLogVol* lvEPHole1 = new GeoLogVol("EPHole1",epHole1,matAir);
+        GeoPhysVol* pvEPHole1 = new GeoPhysVol(lvEPHole1);
+        GeoTransform* tfEPHole1 = new GeoTransform(GeoTrf::Translate3D(0.,0.,
+                                                                       (m_dbManager->TILBflangey()-(tile_rmax + rminb)/2)*Gaudi::Units::cm));
+        pvEndPlate1->add(tfEPHole1);
+        pvEndPlate1->add(pvEPHole1);
       }
 
       GeoTransform* tfEndPlate1 = new GeoTransform(GeoTrf::Translate3D(
-                                      (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0., 0.));
+                                                       (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0., 0.));
       mother->add(tfEndPlate1);
-      mother->add(pvEndPlate1);  
+      mother->add(pvEndPlate1);
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: Ordinary EndPlateSh Ok "<< endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" _fillSection: Ordinary EndPlateSh Ok "<< endmsg;
     }
   }
 
   //second endplate
   GeoTransform* tfEndPlate2{nullptr};
 
-  if (m_dbManager->TILBdzend2() > 0)
-  {
-      //Short endplate Cut-outs
-      double radShift =lenPla;
-      double rminbT=rminb + radShift;
+  if (m_dbManager->TILBdzend2() > 0) {
+    //Short endplate Cut-outs
+    double radShift =lenPla;
+    double rminbT=rminb + radShift;
 
-      dy1EndPlate = rminb * tan_delta_phi_2 * Gaudi::Units::cm;
-      dy2EndPlate = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm;
-      thicknessEndPlate = m_dbManager->TILBdzend2() * Gaudi::Units::cm;
-      heightEndPlate = (tile_rmax-rminb) * Gaudi::Units::cm;
-
-
-      GeoLogVol* lvEndPlate2 = 0;
-      GeoTrd* endPlate2 = new GeoTrd(thicknessEndPlate/2,
-                     thicknessEndPlate/2,
-                     dy1EndPlate,
-                     dy2EndPlate,
-                     heightEndPlate/2);  
-      
-      tfEndPlate2 = new GeoTransform(GeoTrf::Translate3D(
-                            (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0., 0.));
-      tfEndPlate2->ref();
-      
-      if (sec_number==2 && ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) ) 
-    {//Short endplate Cut-outs
-      
-      GeoTrd* endPlate2Cut = new GeoTrd(thicknessEndPlate, 
-                        thicknessEndPlate,
-                        heightEndPlate/2.,
-                        heightEndPlate/2.,
-                        dy2EndPlate);
+    dy1EndPlate = rminb * tan_delta_phi_2 * Gaudi::Units::cm;
+    dy2EndPlate = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm;
+    thicknessEndPlate = m_dbManager->TILBdzend2() * Gaudi::Units::cm;
+    heightEndPlate = (tile_rmax-rminb) * Gaudi::Units::cm;
+
+
+    GeoLogVol* lvEndPlate2 = 0;
+    GeoTrd* endPlate2 = new GeoTrd(thicknessEndPlate/2,
+                                   thicknessEndPlate/2,
+                                   dy1EndPlate,
+                                   dy2EndPlate,
+                                   heightEndPlate/2);
+
+    tfEndPlate2 = new GeoTransform(GeoTrf::Translate3D(
+                                       (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0., 0.));
+    tfEndPlate2->ref();
+
+    if (sec_number==2 && ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) ) { // Short endplate Cut-outs
+
+      GeoTrd* endPlate2Cut = new GeoTrd(thicknessEndPlate,
+                                        thicknessEndPlate,
+                                        heightEndPlate/2.,
+                                        heightEndPlate/2.,
+                                        dy2EndPlate);
       double rotationAngle ;
       double shiftCutPlate ;
       int rotationSign = 1;
       if (ModuleNcp > 50) rotationSign *= -1;
-      if ( neg ) rotationSign *= -1;      
-      
-      if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) )
-        {
-          rotationAngle = - ( 115.3125 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0011 0012
-          shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1364.0 * Gaudi::Units::mm);
-          
-          cutOutTransformation = 
-        GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *  
-        GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *  
-        GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
-          
-          const GeoShape & endPlate2Cutted3760 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ;     
-          lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3760) , matIron);
-        }
-      else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) )
-        {
-          rotationAngle = - ( 109.6875 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0009 0010
-          shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1464.0 * Gaudi::Units::mm);
-          
-          cutOutTransformation = 
-        GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *  
-        GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *  
-        GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
-          
-          const GeoShape & endPlate2Cutted3661 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ;     
-          lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3661) , matIron);
-        }
-      else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) )
-        {
-          rotationAngle = - ( 104.0625 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0009 0010
-          shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - ( 1915.0 -385.0 )* Gaudi::Units::mm); // girder is subtracted (no drawing)
-          
-          cutOutTransformation = 
-        GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *  
-        GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *  
-        GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
-          
-          const GeoShape & endPlate2Cutted3562 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ;     
-          lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3562) , matIron);
-        }
-      
+      if ( neg ) rotationSign *= -1;
+
+      if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) ) {
+        rotationAngle = - ( 115.3125 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0011 0012
+        shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1364.0 * Gaudi::Units::mm);
+
+        cutOutTransformation =
+            GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *
+            GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *
+            GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
+
+        const GeoShape & endPlate2Cutted3760 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ;
+        lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3760) , matIron);
+
+      } else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) ) {
+        rotationAngle = - ( 109.6875 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0009 0010
+        shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - 1464.0 * Gaudi::Units::mm);
+
+        cutOutTransformation =
+            GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *
+            GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *
+            GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
+
+        const GeoShape & endPlate2Cutted3661 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ;
+        lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3661) , matIron);
+
+      } else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) ) {
+        rotationAngle = - ( 104.0625 - 90.0 )* Gaudi::Units::deg ;  // ATLLEMS_0009 0010
+        shiftCutPlate =  ( ( m_dbManager->TILBrmax() - rminb )*Gaudi::Units::cm - ( 1915.0 -385.0 )* Gaudi::Units::mm); // girder is subtracted (no drawing)
+
+        cutOutTransformation =
+            GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) *
+            GeoTrf::Translate3D( 0, 0,  - (dy2EndPlate  - shiftCutPlate) ) *
+            GeoTrf::RotateX3D( rotationSign * rotationAngle ) ;
+
+        const GeoShape & endPlate2Cutted3562 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ;
+        lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3562) , matIron);
+      }
+
       //         dy1EndPlate = rminbT * tan_delta_phi_2 * Gaudi::Units::cm;
       //         dy2EndPlate = tile_rmax * tan_delta_phi_2 * Gaudi::Units::cm;
       //         thicknessEndPlate = m_dbManager->TILBdzend2() * Gaudi::Units::cm;
       //         heightEndPlate = (tile_rmax - rminbT) * Gaudi::Units::cm;
-      
+
       //         tfEndPlate2 = new GeoTransform(GeoTrf::Translate3D(
       //                                       (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*Gaudi::Units::cm/2, 0, radShift/2*Gaudi::Units::cm));
-      
-    }
-      else
-    {
+
+    } else {
       lvEndPlate2 = new GeoLogVol("EndPlate2",endPlate2,matIron);
     }
-      
-      GeoPhysVol* pvEndPlate2 = new GeoPhysVol(lvEndPlate2);
-      
-      //Position air hole
-      if (m_dbManager->TILBflangex() > 0)
-      {
-        dyEPHole = m_dbManager->TILBflangex()*Gaudi::Units::cm/2;
-
-    GeoTrd* epHole2 = new GeoTrd (thicknessEndPlate/2,
-                      thicknessEndPlate/2,
-                      dyEPHole,
-                      dyEPHole,
-                      heightEPHole/2);
-
-    GeoLogVol* lvEPHole2 = new GeoLogVol("EPHole2",epHole2,matAir);
-    GeoPhysVol* pvEPHole2 = new GeoPhysVol(lvEPHole2);
-    GeoTransform* tfEPHole2 = new GeoTransform(GeoTrf::Translate3D(0.,0.,
-                                      (m_dbManager->TILBflangey()-(tile_rmax + rminbT)/2)*Gaudi::Units::cm));
-    pvEndPlate2->add(tfEPHole2);
-    pvEndPlate2->add(pvEPHole2);
-      }
 
-      mother->add(tfEndPlate2);
-      mother->add(pvEndPlate2);
-      tfEndPlate2->unref();
-      
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: EndPlate2 Ok "<< endmsg;
-     
+    GeoPhysVol* pvEndPlate2 = new GeoPhysVol(lvEndPlate2);
+
+    //Position air hole
+    if (m_dbManager->TILBflangex() > 0) {
+      dyEPHole = m_dbManager->TILBflangex()*Gaudi::Units::cm/2;
+
+      GeoTrd* epHole2 = new GeoTrd (thicknessEndPlate/2,
+                                    thicknessEndPlate/2,
+                                    dyEPHole,
+                                    dyEPHole,
+                                    heightEPHole/2);
+
+      GeoLogVol* lvEPHole2 = new GeoLogVol("EPHole2",epHole2,matAir);
+      GeoPhysVol* pvEPHole2 = new GeoPhysVol(lvEPHole2);
+      GeoTransform* tfEPHole2 = new GeoTransform(GeoTrf::Translate3D(0.,0.,
+                                                                     (m_dbManager->TILBflangey()-(tile_rmax + rminbT)/2)*Gaudi::Units::cm));
+      pvEndPlate2->add(tfEPHole2);
+      pvEndPlate2->add(pvEPHole2);
+    }
+
+    mother->add(tfEndPlate2);
+    mother->add(pvEndPlate2);
+    tfEndPlate2->unref();
+
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG <<" _fillSection: EndPlate2 Ok "<< endmsg;
+
   } // End Plates
 
   //---------------------------------------------------Absorber--------------------------------------------------------
@@ -687,23 +658,22 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
   double dy1Absorber = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
   double dy2Absorber = (m_dbManager->TILBrmax()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
 
-  checking("Absorber", true, 3, 
-      thicknessAbsorber/2,thicknessAbsorber/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+  checking("Absorber", true, 3,
+           thicknessAbsorber/2,thicknessAbsorber/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
 
   //----------------------------- Absorber -------------------------------------------------------------------
   double thicknessPeriod =0, thicknessAbsorber1 =0, thicknessAbsorber2 =0, thicknessAbsorber3 =0;
-  double PosAbsor1 =0, PosAbsor2 =0, PosAbsor3 =0; 
+  double PosAbsor1 =0, PosAbsor2 =0, PosAbsor3 =0;
   int nA1 =32, nA2 = 0, nA3 =16;
 
   GeoTrd *absorber{nullptr}, *absorber1{nullptr}, *absorber3{nullptr};
   GeoLogVol *lvAbsorber{nullptr}, *lvAbsorber1{nullptr}, *lvAbsorber3{nullptr};
   GeoPhysVol *pvAbsorber{nullptr}, *pvAbsorber1{nullptr}, *pvAbsorber3{nullptr};
   GeoPhysVol *pvTmp_Absorber1{nullptr}, *pvTmp_Absorber3{nullptr};
-  
+
   // Perform different actions depending on sections
-  switch (sec_number)
-  {
-  case 2:
+  switch (sec_number) {
+    case 2:
     {
       //Extended barrel - consists of ordinary periods of type 1 only
       thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
@@ -712,31 +682,31 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       nA2 = m_dbManager->TILBnperiod() - (nA1+nA3);
 
       thicknessAbsorber1 = nA1*thicknessPeriod;
-      PosAbsor1 = thicknessAbsorber/2 - thicknessAbsorber1/2; 
+      PosAbsor1 = thicknessAbsorber/2 - thicknessAbsorber1/2;
 
       thicknessAbsorber2 = nA2*thicknessPeriod;
-      PosAbsor2 = thicknessAbsorber/2 - thicknessAbsorber1 - thicknessAbsorber2/2; 
+      PosAbsor2 = thicknessAbsorber/2 - thicknessAbsorber1 - thicknessAbsorber2/2;
 
       thicknessAbsorber3 = nA3*thicknessPeriod;
-      PosAbsor3 = thicknessAbsorber/2 - thicknessAbsorber1 - thicknessAbsorber2 - thicknessAbsorber3/2; 
+      PosAbsor3 = thicknessAbsorber/2 - thicknessAbsorber1 - thicknessAbsorber2 - thicknessAbsorber3/2;
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" Number of periods per Module: N= "<<nA1+nA2+nA3 
-         << " Middle absorber, numbers of periods = "<<nA2
-         << endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" Number of periods per Module: N= "<<nA1+nA2+nA3
+                 << " Middle absorber, numbers of periods = "<<nA2
+                 << endmsg;
 
       // First Cut-out part
       absorber1 = new GeoTrd(thicknessAbsorber1/2, thicknessAbsorber1/2,
-                dy1Absorber, dy2Absorber,
-                heightAbsorber/2); 
+                             dy1Absorber, dy2Absorber,
+                             heightAbsorber/2);
 
       lvAbsorber1 = new GeoLogVol("Absorber",absorber1,matIron);
       pvAbsorber1 = new GeoPhysVol(lvAbsorber1);
 
       // absorber without Cut-out, middle part
       absorber = new GeoTrd(thicknessAbsorber2/2, thicknessAbsorber2/2,
-                dy1Absorber, dy2Absorber,
-                heightAbsorber/2); 
+                            dy1Absorber, dy2Absorber,
+                            heightAbsorber/2);
 
       lvAbsorber = new GeoLogVol("Absorber",absorber,matIron);
       pvAbsorber = new GeoPhysVol(lvAbsorber);
@@ -744,40 +714,40 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       //
       // Second Cut-out part
       absorber3 = new GeoTrd(thicknessAbsorber3/2, thicknessAbsorber3/2,
-                dy1Absorber, dy2Absorber,
-                heightAbsorber/2);
+                             dy1Absorber, dy2Absorber,
+                             heightAbsorber/2);
 
       lvAbsorber3 = new GeoLogVol("Absorber",absorber3,matIron);
       pvAbsorber3 = new GeoPhysVol(lvAbsorber3);
       //
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: Ex.Barrel pvAbsorber 1,3 Ok "<< endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" _fillSection: Ex.Barrel pvAbsorber 1,3 Ok "<< endmsg;
 
       break;
     }
-  default:
-    { 
+    default:
+    {
       absorber = new GeoTrd(thicknessAbsorber/2, thicknessAbsorber/2,
-                dy1Absorber, dy2Absorber,
-                heightAbsorber/2); 
+                            dy1Absorber, dy2Absorber,
+                            heightAbsorber/2);
 
       if (m_dbManager->TILBnperiod() > 1) {
-          lvAbsorber = new GeoLogVol("Absorber",absorber,matIron);
+        lvAbsorber = new GeoLogVol("Absorber",absorber,matIron);
       } else {
-          // make C10special/Gap/Crack absorber volume from Air, Aluminium will be in period
-          lvAbsorber = new GeoLogVol("Absorber",absorber,matAir);
+        // make C10special/Gap/Crack absorber volume from Air, Aluminium will be in period
+        lvAbsorber = new GeoLogVol("Absorber",absorber,matAir);
       }
       pvAbsorber = new GeoPhysVol(lvAbsorber);
-      
-      if(m_log->level()<=MSG::DEBUG) {
-          if (m_dbManager->TILBnperiod() > 1) {
-              (*m_log) << MSG::DEBUG <<" _fillSection: default pvAbsorber  Ok "<< endmsg;
-          } else {
-              (*m_log) << MSG::DEBUG <<" _fillSection: special pvAbsorber made from Air  Ok "<< endmsg;
-          }
+
+      if (m_log->level()<=MSG::DEBUG) {
+        if (m_dbManager->TILBnperiod() > 1) {
+          (*m_log) << MSG::DEBUG <<" _fillSection: default pvAbsorber  Ok "<< endmsg;
+        } else {
+          (*m_log) << MSG::DEBUG <<" _fillSection: special pvAbsorber made from Air  Ok "<< endmsg;
+        }
       }
-      
+
       break;
     }
   }
@@ -797,9 +767,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
   GeoTransform* tfAbsorberChild = 0;
 
   // Perform different actions depending on sections
-  switch (sec_number)
-  {
-  case 1:
+  switch (sec_number) {
+    case 1:
     {
       //Barrel section
       //Divide absorber volume on two parts: first filled with
@@ -807,20 +776,20 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
       //First division
       thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
-      MLOG(DEBUG) << "BARREL Section -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac() 
+      MLOG(DEBUG) << "BARREL Section -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac()
                   << ", dzglue: " << dzglue << " ==> thicknessPeriod: " << thicknessPeriod << endmsg;
 
       m_barrelPeriodThickness = thicknessPeriod;
       m_barrelGlue = dzglue*Gaudi::Units::cm;
 
-      checking("Period 0", false, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+      checking("Period 0", false, 4,
+               thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
 
       period = new GeoTrd(thicknessPeriod/2,
-              thicknessPeriod/2, 
-              dy1Absorber,
-              dy2Absorber,
-              heightAbsorber/2);
+                          thicknessPeriod/2,
+                          dy1Absorber,
+                          dy2Absorber,
+                          heightAbsorber/2);
 
       lvPeriod = new GeoLogVol("Period",period,matIron);
       pvPeriod = new GeoPhysVol(lvPeriod);
@@ -834,10 +803,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
       thicknessAbsorberChild = thicknessPeriod*(m_dbManager->TILBnperiod()-1);
       absorberChild = new GeoTrd(thicknessAbsorberChild/2,
-                 thicknessAbsorberChild/2,
-                 dy1Absorber,
-                 dy2Absorber,
-                 heightAbsorber/2);
+                                 thicknessAbsorberChild/2,
+                                 dy1Absorber,
+                                 dy2Absorber,
+                                 heightAbsorber/2);
       lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
       pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
 
@@ -848,8 +817,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
                                     (thicknessAbsorberChild - thicknessAbsorber)/2);
 
       stPeriod = new GeoSerialTransformer(pvPeriod,
-                      &xfReplica1,
-                      m_dbManager->TILBnperiod()-1);
+                                          &xfReplica1,
+                                          m_dbManager->TILBnperiod()-1);
 
       pvAbsorberChild->add(new GeoSerialIdentifier(0));
       pvAbsorberChild->add(stPeriod);
@@ -862,14 +831,14 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       //Second division
       thicknessPeriod = (m_dbManager->TILBdzmast() + 2.*m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
 
-      checking("Period 1", false, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+      checking("Period 1", false, 4,
+               thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
 
       period = new GeoTrd(thicknessPeriod/2,
-              thicknessPeriod/2,
-              dy1Absorber,
-              dy2Absorber,
-              heightAbsorber/2);
+                          thicknessPeriod/2,
+                          dy1Absorber,
+                          dy2Absorber,
+                          heightAbsorber/2);
       lvPeriod = new GeoLogVol("Period",period,matIron);
       pvPeriod = new GeoPhysVol(lvPeriod);
 
@@ -882,10 +851,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
       thicknessAbsorberChild = thicknessPeriod;
       absorberChild = new GeoTrd(thicknessAbsorberChild/2,
-                 thicknessAbsorberChild/2,
-                 dy1Absorber,
-                 dy2Absorber,
-                 heightAbsorber/2);
+                                 thicknessAbsorberChild/2,
+                                 dy1Absorber,
+                                 dy2Absorber,
+                                 heightAbsorber/2);
       lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
       pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
 
@@ -906,21 +875,21 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
       break;
     }
-  case 2:
+    case 2:
     {
       //Extended barrel - consists of ordinary periods of type 1 only
       thicknessPeriod = 2. * (m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue) * Gaudi::Units::cm;
-      MLOG(DEBUG) << "EXTENDED BARREL Section -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac() 
+      MLOG(DEBUG) << "EXTENDED BARREL Section -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac()
                   << ", dzglue: " << dzglue << " ==> thicknessPeriod: " << thicknessPeriod << endmsg;
 
-      checking("Period 2", false, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+      checking("Period 2", false, 4,
+               thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
 
       period = new GeoTrd(thicknessPeriod/2,
-              thicknessPeriod/2,
-              dy1Absorber,
-              dy2Absorber,
-              heightAbsorber/2);
+                          thicknessPeriod/2,
+                          dy1Absorber,
+                          dy2Absorber,
+                          heightAbsorber/2);
       lvPeriod = new GeoLogVol("Period",period,matIron);
       pvPeriod = new GeoPhysVol(lvPeriod);
 
@@ -946,21 +915,19 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       pvAbsorber1->add(stPeriod);
       //
 
-      if (m_dbManager->BoolCuts())
-       { 
-         if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62))
-          {
-            // Cuting of (-)
-            GeoCutVolAction action1(*CutA, TransCut2);
-            pvAbsorber1->apply(&action1);
-            pvTmp_Absorber1 = action1.getPV();
-            //
-        if(m_log->level()<=MSG::DEBUG)
-          (*m_log) << MSG::DEBUG <<" _fillSection: CutA Ok "<< endmsg;
-         } // end special modules
+      if (m_dbManager->BoolCuts()) {
+        if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) {
+          // Cuting of (-)
+          GeoCutVolAction action1(*CutA, TransCut2);
+          pvAbsorber1->apply(&action1);
+          pvTmp_Absorber1 = action1.getPV();
+          //
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG <<" _fillSection: CutA Ok "<< endmsg;
+        } // end special modules
       } // end if, BoolCuts()
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: Absorber1 Ok "<< endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" _fillSection: Absorber1 Ok "<< endmsg;
 
       // middle partr of absorber
       GENFUNCTION periodPos2 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorber2)/2;
@@ -973,8 +940,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       pvAbsorber->add(new GeoSerialIdentifier(nA1));
       pvAbsorber->add(stPeriod);
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: pvAbsorber Ok "<< endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" _fillSection: pvAbsorber Ok "<< endmsg;
 
       // second partr of absorber
       //
@@ -988,184 +955,182 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       pvAbsorber3->add(new GeoSerialIdentifier(nA1+nA2));
       pvAbsorber3->add(stPeriod);
 
-        if (m_dbManager->BoolCuts())
-     {
-       if (ModuleNcp>=60 && ModuleNcp<=62) {
-         // Cuting of pvEBarrelModuleMotherPos (Left)
-         //
-         GeoCutVolAction action2(*CutB, TransCutL);
-         pvAbsorber3->apply(&action2);
-         pvTmp_Absorber3 = action2.getPV();
-         if(m_log->level()<=MSG::DEBUG)
-           (*m_log) << MSG::DEBUG <<" _fillSection: CutB L Ok "<< endmsg;
-       } else if (ModuleNcp>=35 && ModuleNcp<=37) { 
-         // Cuting of pvEBarrelModuleMotherPos (Right)
-         //
-         GeoCutVolAction action3(*CutB, TransCutR);
-         pvAbsorber3->apply(&action3);
-         pvTmp_Absorber3 = action3.getPV();
-         if(m_log->level()<=MSG::DEBUG)
-           (*m_log) << MSG::DEBUG <<" _fillSection: CutB R Ok "<< endmsg;
-       }
-         } // end if, BoolCuts()
-        if(m_log->level()<=MSG::DEBUG) {
-            (*m_log) << MSG::DEBUG <<" _fillSection: Absorber3 Ok "<< endmsg;
+      if (m_dbManager->BoolCuts()) {
+        if (ModuleNcp>=60 && ModuleNcp<=62) {
+          // Cuting of pvEBarrelModuleMotherPos (Left)
+          //
+          GeoCutVolAction action2(*CutB, TransCutL);
+          pvAbsorber3->apply(&action2);
+          pvTmp_Absorber3 = action2.getPV();
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG <<" _fillSection: CutB L Ok "<< endmsg;
+
+        } else if (ModuleNcp>=35 && ModuleNcp<=37) {
+          // Cuting of pvEBarrelModuleMotherPos (Right)
+          //
+          GeoCutVolAction action3(*CutB, TransCutR);
+          pvAbsorber3->apply(&action3);
+          pvTmp_Absorber3 = action3.getPV();
+          if (m_log->level()<=MSG::DEBUG)
+            (*m_log) << MSG::DEBUG <<" _fillSection: CutB R Ok "<< endmsg;
         }
+      } // end if, BoolCuts()
+      if (m_log->level()<=MSG::DEBUG) {
+        (*m_log) << MSG::DEBUG <<" _fillSection: Absorber3 Ok "<< endmsg;
+      }
 
       break;
     }
-  case 3:
+    case 3:
     {
       //Plug Section 1 - consists of ordinary periods of type 3
       // ps plug1 special module
-      if ((m_dbManager->TILBsection() == 7)||(m_dbManager->TILBsection() == 8))
-    {
-      //Divide absorber volume on two parts: first filled with
-      //nrOfPeriods-1 ordinary period of type 1 and second with one special period of type 4
-      
-      //First division
-      thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
-      MLOG(DEBUG) << "PLUG Section 1 -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac() 
-                  << ", dzglue: " << dzglue << " ==> thicknessPeriod: " << thicknessPeriod << endmsg;
-      
-      checking("Period 3 (ITC1 special)", true, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
-      
-      period = new GeoTrd(thicknessPeriod/2,
-                  thicknessPeriod/2,
-                  dy1Absorber,
-                  dy2Absorber,
-                  heightAbsorber/2);
-      lvPeriod = new GeoLogVol("Period",period,matIron);
-      pvPeriod = new GeoPhysVol(lvPeriod);
-      
-      fillPeriod(pvPeriod,
-             thicknessPeriod*(1./Gaudi::Units::cm),
-             dzglue,
-             tan_delta_phi_2,
-             1); // 1-period type
-      
-      thicknessAbsorberChild = thicknessPeriod*(m_dbManager->TILBnperiod()-1);
+      if ((m_dbManager->TILBsection() == 7)||(m_dbManager->TILBsection() == 8)) {
+        //Divide absorber volume on two parts: first filled with
+        //nrOfPeriods-1 ordinary period of type 1 and second with one special period of type 4
+
+        //First division
+        thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
+        MLOG(DEBUG) << "PLUG Section 1 -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac()
+                    << ", dzglue: " << dzglue << " ==> thicknessPeriod: " << thicknessPeriod << endmsg;
+
+        checking("Period 3 (ITC1 special)", true, 4,
+                 thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+
+        period = new GeoTrd(thicknessPeriod/2,
+                            thicknessPeriod/2,
+                            dy1Absorber,
+                            dy2Absorber,
+                            heightAbsorber/2);
+        lvPeriod = new GeoLogVol("Period",period,matIron);
+        pvPeriod = new GeoPhysVol(lvPeriod);
+
+        fillPeriod(pvPeriod,
+                   thicknessPeriod*(1./Gaudi::Units::cm),
+                   dzglue,
+                   tan_delta_phi_2,
+                   1); // 1-period type
+
+        thicknessAbsorberChild = thicknessPeriod*(m_dbManager->TILBnperiod()-1);
+
+        absorberChild = new GeoTrd(thicknessAbsorberChild/2,
+                                   thicknessAbsorberChild/2,
+                                   dy1Absorber,
+                                   dy2Absorber,
+                                   heightAbsorber/2);
+        lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
+        pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
+
+        // Place periods into Absorber Child like G4 replica
+        GENFUNCTION periodPosITC1sp = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorberChild)/2;
+        TRANSFUNCTION xfReplicaITC1sp = Pow(GeoTrf::TranslateX3D(1.),periodPosITC1sp);
+        if (m_verbose) checktransfunc(thicknessAbsorberChild,thicknessPeriod,m_dbManager->TILBnperiod()-1,
+                                      (thicknessAbsorberChild - thicknessAbsorber)/2);
+
+        stPeriod = new GeoSerialTransformer(pvPeriod,
+                                            &xfReplicaITC1sp,
+                                            m_dbManager->TILBnperiod()-1);
+
+        pvAbsorberChild->add(new GeoSerialIdentifier(0));
+        pvAbsorberChild->add(stPeriod);
+
+        // Place absorber child
+        tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.));
+        pvAbsorber->add(tfAbsorberChild);
+        pvAbsorber->add(pvAbsorberChild);
+        //
+        //Second division
+        //
+        thicknessPeriod = m_dbManager->TILBdzspac()*Gaudi::Units::cm;
+
+        checking("Period 5 (ITC1 special)", true, 4,
+                 thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+
+        period = new GeoTrd(thicknessPeriod/2,
+                            thicknessPeriod/2,
+                            dy1Absorber,
+                            dy2Absorber,
+                            heightAbsorber/2);
+        lvPeriod = new GeoLogVol("Period",period,matIron);
+        pvPeriod = new GeoPhysVol(lvPeriod);
+
+        fillPeriod(pvPeriod,
+                   thicknessPeriod*(1./Gaudi::Units::cm),
+                   dzglue,
+                   tan_delta_phi_2,
+                   4); // 4-period type
+
+        thicknessAbsorberChild = thicknessPeriod;
+        absorberChild = new GeoTrd(thicknessAbsorberChild/2,
+                                   thicknessAbsorberChild/2,
+                                   dy1Absorber,
+                                   dy2Absorber,
+                                   heightAbsorber/2);
+        lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
+        pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
+
+        if (m_verbose) checktransfunc(thicknessAbsorberChild,thicknessPeriod,1,
+                                      (-thicknessAbsorberChild + thicknessAbsorber)/2);
+
+        // Place period in the absorber child
+        tfPeriod = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
+        pvAbsorberChild->add(new GeoIdentifierTag(m_dbManager->TILBnperiod()-1));
+        pvAbsorberChild->add(tfPeriod);
+        pvAbsorberChild->add(pvPeriod);
+
+        // Place absorber child
+        tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.));
+        pvAbsorber->add(tfAbsorberChild);
+        pvAbsorber->add(pvAbsorberChild);
+
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (ITC plug special) Ok "<< endmsg;
 
-      absorberChild = new GeoTrd(thicknessAbsorberChild/2,
-                     thicknessAbsorberChild/2,
-                     dy1Absorber,
-                     dy2Absorber,
-                     heightAbsorber/2);
-      lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
-      pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
-      
-      // Place periods into Absorber Child like G4 replica
-      GENFUNCTION periodPosITC1sp = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorberChild)/2;
-      TRANSFUNCTION xfReplicaITC1sp = Pow(GeoTrf::TranslateX3D(1.),periodPosITC1sp);
-          if (m_verbose) checktransfunc(thicknessAbsorberChild,thicknessPeriod,m_dbManager->TILBnperiod()-1,
-                                        (thicknessAbsorberChild - thicknessAbsorber)/2);
-      
-      stPeriod = new GeoSerialTransformer(pvPeriod,
-                          &xfReplicaITC1sp,
-                          m_dbManager->TILBnperiod()-1);
-      
-      pvAbsorberChild->add(new GeoSerialIdentifier(0));
-      pvAbsorberChild->add(stPeriod);
-      
-      // Place absorber child
-      tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.));
-      pvAbsorber->add(tfAbsorberChild);
-      pvAbsorber->add(pvAbsorberChild);
-      //
-      //Second division
-      //
-      thicknessPeriod = m_dbManager->TILBdzspac()*Gaudi::Units::cm;
-      
-      checking("Period 5 (ITC1 special)", true, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
-      
-      period = new GeoTrd(thicknessPeriod/2,
-                  thicknessPeriod/2,
-                  dy1Absorber,
-                  dy2Absorber,
-                  heightAbsorber/2);
-      lvPeriod = new GeoLogVol("Period",period,matIron);
-      pvPeriod = new GeoPhysVol(lvPeriod);
-      
-      fillPeriod(pvPeriod,
-             thicknessPeriod*(1./Gaudi::Units::cm),
-             dzglue,
-             tan_delta_phi_2,
-             4); // 4-period type
-      
-      thicknessAbsorberChild = thicknessPeriod;
-      absorberChild = new GeoTrd(thicknessAbsorberChild/2,
-                     thicknessAbsorberChild/2,
-                     dy1Absorber,
-                     dy2Absorber,
-                     heightAbsorber/2);
-      lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
-      pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
-      
-          if (m_verbose) checktransfunc(thicknessAbsorberChild,thicknessPeriod,1,
-                                        (-thicknessAbsorberChild + thicknessAbsorber)/2);
-
-      // Place period in the absorber child
-      tfPeriod = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
-      pvAbsorberChild->add(new GeoIdentifierTag(m_dbManager->TILBnperiod()-1));
-      pvAbsorberChild->add(tfPeriod);
-      pvAbsorberChild->add(pvPeriod);
-      
-      // Place absorber child
-      tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.));
-      pvAbsorber->add(tfAbsorberChild);
-      pvAbsorber->add(pvAbsorberChild);
-      
-      if(m_log->level()<=MSG::DEBUG)
-        (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (ITC plug special) Ok "<< endmsg;
-    }
-      else
-    {
-      thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
-      
-      checking("Period 3", true, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
-      
-      period = new GeoTrd(thicknessPeriod/2,
-                  thicknessPeriod/2,
-                  dy1Absorber,
-                  dy2Absorber,
-                  heightAbsorber/2);
-      lvPeriod = new GeoLogVol("Period",period,matIron);
-      pvPeriod = new GeoPhysVol(lvPeriod);
-      
-      fillPeriod(pvPeriod,
-             thicknessPeriod*(1./Gaudi::Units::cm),
-             dzglue,
-             tan_delta_phi_2,
-             3); // 3-period type
-      
-      // Place periods into Absorber like G4 replica
-      GENFUNCTION periodPos3 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorber)/2;
-      TRANSFUNCTION xfReplica3 = Pow(GeoTrf::TranslateX3D(1.),periodPos3);
-          if (m_verbose) checktransfunc(thicknessAbsorber,thicknessPeriod,m_dbManager->TILBnperiod(),0.0);
-      
-      //ps      if( (m_dbManager->TILBsection()==7 || m_dbManager->TILBsection()==8) && m_dbManager->SCNTitem()==302) 
-      //      if( m_dbManager->TILBsection()==7  && m_dbManager->SCNTitem() == 302) 
-      //        NbPeriod = m_dbManager->TILBnperiod() - 1;
-      //      else
+      } else {
+        thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
+
+        checking("Period 3", true, 4,
+                 thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+
+        period = new GeoTrd(thicknessPeriod/2,
+                            thicknessPeriod/2,
+                            dy1Absorber,
+                            dy2Absorber,
+                            heightAbsorber/2);
+        lvPeriod = new GeoLogVol("Period",period,matIron);
+        pvPeriod = new GeoPhysVol(lvPeriod);
+
+        fillPeriod(pvPeriod,
+                   thicknessPeriod*(1./Gaudi::Units::cm),
+                   dzglue,
+                   tan_delta_phi_2,
+                   3); // 3-period type
+
+        // Place periods into Absorber like G4 replica
+        GENFUNCTION periodPos3 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorber)/2;
+        TRANSFUNCTION xfReplica3 = Pow(GeoTrf::TranslateX3D(1.),periodPos3);
+        if (m_verbose) checktransfunc(thicknessAbsorber,thicknessPeriod,m_dbManager->TILBnperiod(),0.0);
+
+        //ps    if ( (m_dbManager->TILBsection()==7 || m_dbManager->TILBsection()==8) && m_dbManager->SCNTitem()==302)
+        //      if ( m_dbManager->TILBsection()==7  && m_dbManager->SCNTitem() == 302)
+        //        NbPeriod = m_dbManager->TILBnperiod() - 1;
+        //      else
         NbPeriod = m_dbManager->TILBnperiod();
 
-      if(m_log->level()<=MSG::DEBUG)
-        (*m_log) << MSG::DEBUG <<" SCNTitem= "<<m_dbManager->SCNTitem()<<"    NbPeriod= "<<NbPeriod<< endmsg;
-      stPeriod = new GeoSerialTransformer(pvPeriod,
-                          &xfReplica3, 
-                          NbPeriod);//sbb
-      
-      pvAbsorber->add(new GeoSerialIdentifier(0));
-      pvAbsorber->add(stPeriod);
-      if(m_log->level()<=MSG::DEBUG)
-        (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (case 3) Ok "<< endmsg;
-    }
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG <<" SCNTitem= "<<m_dbManager->SCNTitem()<<"    NbPeriod= "<<NbPeriod<< endmsg;
+        stPeriod = new GeoSerialTransformer(pvPeriod,
+                                            &xfReplica3,
+                                            NbPeriod);//sbb
+
+        pvAbsorber->add(new GeoSerialIdentifier(0));
+        pvAbsorber->add(stPeriod);
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (case 3) Ok "<< endmsg;
+      }
       break;
     }
-  case 4:
+    case 4:
     {
       //Plug Section 2
       //Divide absorber volume on two parts: first filled with
@@ -1173,17 +1138,17 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
       //First division
       thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*Gaudi::Units::cm;
-      MLOG(DEBUG) << "PLUG Section 2 -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac() 
+      MLOG(DEBUG) << "PLUG Section 2 -- m_dbManager->TILBdzmast(): " << m_dbManager->TILBdzmast() << ", m_dbManager->TILBdzspac(): " << m_dbManager->TILBdzspac()
                   << ", dzglue: " << dzglue << " ==> thicknessPeriod: " << thicknessPeriod << endmsg;
 
-      checking("Period 4", true, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+      checking("Period 4", true, 4,
+               thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
 
       period = new GeoTrd(thicknessPeriod/2,
-              thicknessPeriod/2,
-              dy1Absorber,
-              dy2Absorber,
-              heightAbsorber/2);
+                          thicknessPeriod/2,
+                          dy1Absorber,
+                          dy2Absorber,
+                          heightAbsorber/2);
       lvPeriod = new GeoLogVol("Period",period,matIron);
       pvPeriod = new GeoPhysVol(lvPeriod);
 
@@ -1196,10 +1161,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
       thicknessAbsorberChild = thicknessPeriod*(m_dbManager->TILBnperiod()-1);
       absorberChild = new GeoTrd(thicknessAbsorberChild/2,
-                 thicknessAbsorberChild/2,
-                 dy1Absorber,
-                 dy2Absorber,
-                 heightAbsorber/2);
+                                 thicknessAbsorberChild/2,
+                                 dy1Absorber,
+                                 dy2Absorber,
+                                 heightAbsorber/2);
       lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
       pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
 
@@ -1210,8 +1175,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
                                     (thicknessAbsorberChild - thicknessAbsorber)/2);
 
       stPeriod = new GeoSerialTransformer(pvPeriod,
-                      &xfReplica1,
-                      m_dbManager->TILBnperiod()-1);
+                                          &xfReplica1,
+                                          m_dbManager->TILBnperiod()-1);
 
       pvAbsorberChild->add(new GeoSerialIdentifier(0));
       pvAbsorberChild->add(stPeriod);
@@ -1224,14 +1189,14 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       //Second division
       thicknessPeriod = m_dbManager->TILBdzspac()*Gaudi::Units::cm;
 
-      checking("Period 5", true, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+      checking("Period 5", true, 4,
+               thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
 
       period = new GeoTrd(thicknessPeriod/2,
-              thicknessPeriod/2,
-              dy1Absorber,
-              dy2Absorber,
-              heightAbsorber/2);
+                          thicknessPeriod/2,
+                          dy1Absorber,
+                          dy2Absorber,
+                          heightAbsorber/2);
       lvPeriod = new GeoLogVol("Period",period,matIron);
       pvPeriod = new GeoPhysVol(lvPeriod);
 
@@ -1243,10 +1208,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
       thicknessAbsorberChild = thicknessPeriod;
       absorberChild = new GeoTrd(thicknessAbsorberChild/2,
-                 thicknessAbsorberChild/2,
-                 dy1Absorber,
-                 dy2Absorber,
-                 heightAbsorber/2);
+                                 thicknessAbsorberChild/2,
+                                 dy1Absorber,
+                                 dy2Absorber,
+                                 heightAbsorber/2);
       lvAbsorberChild = new GeoLogVol("AbsorberChild",absorberChild,matAir);
       pvAbsorberChild = new GeoPhysVol(lvAbsorberChild);
 
@@ -1264,43 +1229,44 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       pvAbsorber->add(tfAbsorberChild);
       pvAbsorber->add(pvAbsorberChild);
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (case 4) Ok "<< endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (case 4) Ok "<< endmsg;
       break;
     }
-  default:
+    default:
     {
       // C10_missing/Gap/Crack 5,6,14,15,16
 
-      if ((m_dbManager->TILBsection()==5)||(m_dbManager->TILBsection()==6)) //Gap/Crack
-    m_dbManager->SetCurrentScin(100*m_dbManager->TILBsection() + 1);
-      else if ((m_dbManager->TILBsection()==14) || (m_dbManager->TILBsection()==15) || (m_dbManager->TILBsection()==16)) 
-    m_dbManager->SetCurrentScin(m_dbManager->TILBcurscint());
-      else 
-      {
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillSection: Unexpected section = "
+      if ((m_dbManager->TILBsection()==5)||(m_dbManager->TILBsection()==6)) { // Gap/Crack
+        m_dbManager->SetCurrentScin(100*m_dbManager->TILBsection() + 1);
+
+      } else if ((m_dbManager->TILBsection()==14) || (m_dbManager->TILBsection()==15) || (m_dbManager->TILBsection()==16)) {
+        m_dbManager->SetCurrentScin(m_dbManager->TILBcurscint());
+
+      } else {
+        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillSection: Unexpected section = "
                  << m_dbManager->TILBsection() << " for Gap/Crack" << endmsg;
-    return;
+        return;
       }
 
       thicknessPeriod = thicknessAbsorber; // the same as absorber, but made from Aluminium
       MLOG(DEBUG) << "DEFAULT Section -- thicknessAbsorber: " << thicknessAbsorber << " ==> thicknessPeriod: " << thicknessPeriod << endmsg;
 
-      checking("Period 6", true, 4, 
-           thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
+      checking("Period 6", true, 4,
+               thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2);
 
       double dy1Period = m_dbManager->TILBflangex()/2.*Gaudi::Units::cm; // correct size from the drawings
       double dy2Period = m_dbManager->TILBflangey()/2.*Gaudi::Units::cm; // correct size from the drawings
       if (dy1Period <= 0.0 || dy2Period <= 0.0 || dy1Period > dy1Absorber || dy2Period > dy2Absorber || dy1Period >= dy2Period ) {
-          dy1Period = dy1Absorber;
-          dy2Period = dy2Absorber;
+        dy1Period = dy1Absorber;
+        dy2Period = dy2Absorber;
       }
 
       period = new GeoTrd(thicknessPeriod/2,
-              thicknessPeriod/2,
-              dy1Period,
-              dy2Period,
-              heightAbsorber/2);
+                          thicknessPeriod/2,
+                          dy1Period,
+                          dy2Period,
+                          heightAbsorber/2);
       if (!matAluminium) matAluminium = m_theMaterialManager->getMaterial("std::Aluminium");
       lvPeriod = new GeoLogVol("Period",period,matAluminium); // note - aluminium period inside air absorber here
       pvPeriod = new GeoPhysVol(lvPeriod);
@@ -1319,8 +1285,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
       pvAbsorber->add(tfPeriod);
       pvAbsorber->add(pvPeriod);
 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (case default) Ok "<< endmsg;
+      if (m_log->level()<=MSG::DEBUG)
+        (*m_log) << MSG::DEBUG <<" _fillSection: Absorber (case default) Ok "<< endmsg;
       break;
     }
   }
@@ -1331,67 +1297,64 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
   double dXAbsorber = (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2());
   double dZAbsorber = (m_dbManager->TILBrmax() - tile_rmax);
 
-  if (sec_number==3)
-    { 
-      // ps specialModuleZShift
-      tfAbsorber = new GeoTransform(GeoTrf::Translate3D( specialModuleZShift + dXAbsorber*Gaudi::Units::cm/2, 0., dZAbsorber*Gaudi::Units::cm/2));
-      mother->add(tfAbsorber);
-      mother->add(pvAbsorber);
+  if (sec_number==3) {
+    // ps specialModuleZShift
+    tfAbsorber = new GeoTransform(GeoTrf::Translate3D( specialModuleZShift + dXAbsorber*Gaudi::Units::cm/2, 0., dZAbsorber*Gaudi::Units::cm/2));
+    mother->add(tfAbsorber);
+    mother->add(pvAbsorber);
+
+  } else if (sec_number==2) {
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG << " _fillsection  Ex.barrel in "<< endmsg;
+
+    tfAbsorber1 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor1, 0.,
+                                                       (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2));
+    mother->add(tfAbsorber1);
+    if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) {
+      mother->add(pvTmp_Absorber1);
+      pvAbsorber1->ref(); pvAbsorber1->unref();
+    } else {
+      mother->add(pvAbsorber1);
+    }
+
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG << " _fillsection  ext.barrel pvAbsorber1 Ok"<< endmsg;
+
+    tfAbsorber  = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor2, 0.,
+                                                       (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2));
+    mother->add(tfAbsorber);
+    mother->add(pvAbsorber);
+
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG << " _fillsection  ext.barrel pvAbsorber Ok"<< endmsg;
+
+    tfAbsorber3 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor3, 0.,
+                                                       (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2));
+    mother->add(tfAbsorber3);
+    if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) {
+      mother->add(pvTmp_Absorber3);
+      pvAbsorber3->ref(); pvAbsorber3->unref();
+    } else {
+      mother->add(pvAbsorber3);
     }
-  else if (sec_number==2)
-    { 
-      if(m_log->level()<=MSG::DEBUG)
-    (*m_log) << MSG::DEBUG << " _fillsection  Ex.barrel in "<< endmsg;
- 
-     tfAbsorber1 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor1, 0.,
-                                   (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2)); 
-     mother->add(tfAbsorber1);
-     if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) { 
-       mother->add(pvTmp_Absorber1);
-       pvAbsorber1->ref(); pvAbsorber1->unref();
-     } else {
-       mother->add(pvAbsorber1);
-     }
-
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG << " _fillsection  ext.barrel pvAbsorber1 Ok"<< endmsg;
-
-     tfAbsorber  = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor2, 0.,
-                                    (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2));  
-     mother->add(tfAbsorber);
-     mother->add(pvAbsorber);
-
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG << " _fillsection  ext.barrel pvAbsorber Ok"<< endmsg;
-
-     tfAbsorber3 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2 - PosAbsor3, 0.,  
-                                    (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2));                
-     mother->add(tfAbsorber3);
-     if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) {
-       mother->add(pvTmp_Absorber3);
-       pvAbsorber3->ref(); pvAbsorber3->unref();
-     } else {
-       mother->add(pvAbsorber3);
-     }
-
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG << " _fillsection  ext.barrel pvAbsorber3 Ok"<< endmsg;
-   }
-  else                                           
-   { 
-     tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2, 0.,
-                                   (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2));
-     mother->add(tfAbsorber);
-     mother->add(pvAbsorber);
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG << " _fillsection other pvAbsorber Ok"<< endmsg;
-   }
-
-  if(CutA) {
+
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG << " _fillsection  ext.barrel pvAbsorber3 Ok"<< endmsg;
+
+  } else {
+    tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*Gaudi::Units::cm/2, 0.,
+                                                      (dZAbsorber + m_dbManager->TILBrmin() - rminb)*Gaudi::Units::cm/2));
+    mother->add(tfAbsorber);
+    mother->add(pvAbsorber);
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG << " _fillsection other pvAbsorber Ok"<< endmsg;
+  }
+
+  if (CutA) {
     CutA->ref();
     CutA->unref();
   }
-  if(CutB) {
+  if (CutB) {
     CutB->ref();
     CutB->unref();
   }
@@ -1400,16 +1363,16 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*&             mother,
 
 
 void TileGeoSectionBuilder::fillGirder(GeoPhysVol*&             mother,
-                       double                   tile_rmax,
-                       double                   tilb_rmax,
-                       double                   tan_delta_phi_2,
-                       double                   thickness)
+                                       double                   tile_rmax,
+                                       double                   tilb_rmax,
+                                       double                   tan_delta_phi_2,
+                                       double                   thickness)
 {
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
   // Obtain required materials - Iron, Aluminium and electronic boards
 
   const GeoMaterial* matIron = (m_switches.steel) ? m_theMaterialManager->getMaterial("tile::Steel")
-                                                  : m_theMaterialManager->getMaterial("std::Iron");
+      : m_theMaterialManager->getMaterial("std::Iron");
   const GeoMaterial* matAluminium = m_theMaterialManager->getMaterial("std::Aluminium");
   const GeoMaterial* matElBoard = m_theMaterialManager->getMaterial("tile::SiO2CondEpox");
 
@@ -1424,11 +1387,10 @@ void TileGeoSectionBuilder::fillGirder(GeoPhysVol*&             mother,
   int j;
 
   //if (m_dbManager->TILBsection()==8)
-  //  CurrentGird = 801;                  //Prototype module 
+  //  CurrentGird = 801;                  //Prototype module
   // ps  commented out  old geometry
-  
-  for (j = CurrentGird; j < (CurrentGird + m_dbManager->TILBngirder()); j++)
-  {
+
+  for (j = CurrentGird; j < (CurrentGird + m_dbManager->TILBngirder()); j++) {
     m_dbManager->SetCurrentGird(j);
     double elementRC = m_dbManager->TIGRrc();
     double elementSizeInR = m_dbManager->TIGRdr();
@@ -1436,78 +1398,75 @@ void TileGeoSectionBuilder::fillGirder(GeoPhysVol*&             mother,
     double elementOffsetInY = m_dbManager->TIGRoff();
 
     double dy1GirderElement, dy2GirderElement;
-    if (elementSizeInY >0)
-    {
+    if (elementSizeInY >0) {
       dy1GirderElement = elementSizeInY/2;
       dy2GirderElement = elementSizeInY/2;
-    }
-    else
-    {
+    } else {
       dy1GirderElement = (elementRC - elementSizeInR/2) * tan_delta_phi_2;
       dy2GirderElement = (elementRC + elementSizeInR/2) * tan_delta_phi_2;
     }
 
     girderElement = new GeoTrd(thickness/2*Gaudi::Units::cm,
-                   thickness/2*Gaudi::Units::cm,
-                   dy1GirderElement*Gaudi::Units::cm,
-                   dy2GirderElement*Gaudi::Units::cm,
-                   elementSizeInR/2*Gaudi::Units::cm);
+                               thickness/2*Gaudi::Units::cm,
+                               dy1GirderElement*Gaudi::Units::cm,
+                               dy2GirderElement*Gaudi::Units::cm,
+                               elementSizeInR/2*Gaudi::Units::cm);
 
-    switch(m_dbManager->TIGRmaterial())
-    {
-    case 1:                    //Iron
+    switch(m_dbManager->TIGRmaterial()) {
+      case 1:                    //Iron
       {
-    lvGirderElement = new GeoLogVol("GirderIron",girderElement,matIron);
+        lvGirderElement = new GeoLogVol("GirderIron",girderElement,matIron);
         break;
       }
-    case 2:                    //Aluminium
+      case 2:                    //Aluminium
       {
-    lvGirderElement = new GeoLogVol("GirderAluminium",girderElement,matAluminium);
+        lvGirderElement = new GeoLogVol("GirderAluminium",girderElement,matAluminium);
         break;
       }
-    case 3:                    //Electronics
+      case 3:                    //Electronics
       {
-    lvGirderElement = new GeoLogVol("GirderElectronics",girderElement,matElBoard);
+        lvGirderElement = new GeoLogVol("GirderElectronics",girderElement,matElBoard);
         break;
       }
-    default:
+      default:
       {
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::FillGirder: unknown material = "
+        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::FillGirder: unknown material = "
                  << m_dbManager->TIGRmaterial() << endmsg;
-    return;
+        return;
       }
     }
 
     pvGirderElement = new GeoPhysVol(lvGirderElement);
     tfGirderElement = new GeoTransform(GeoTrf::Translate3D(0.,
-                              elementOffsetInY*Gaudi::Units::cm,
-                              (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
+                                                           elementOffsetInY*Gaudi::Units::cm,
+                                                           (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
     mother->add(tfGirderElement);
     mother->add(pvGirderElement);
   }
 }
 
+
 void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
-                       int                      sec_number,
-                       double                   tile_rmax,
-                       double                   tilb_rmax,
-                       double                   /* delta_phi */,
-                       bool                     testbeam,
-                       int                      ModuleNcp,
-                       double                   corrected_dz)
+                                       int                      sec_number,
+                                       double                   tile_rmax,
+                                       double                   tilb_rmax,
+                                       double                   /* delta_phi */,
+                                       bool                     testbeam,
+                                       int                      ModuleNcp,
+                                       double                   corrected_dz)
 {
   bool boolNeg = false;
 
-  if (ModuleNcp > 99)
-   { ModuleNcp = ModuleNcp/100;
-     boolNeg = true;
-   }
+  if (ModuleNcp > 99) {
+    ModuleNcp = ModuleNcp/100;
+    boolNeg = true;
+  }
 
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
   // Obtain required materials - Iron, Aluminium and electronic boards
 
   const GeoMaterial* matIron = (m_switches.steel) ? m_theMaterialManager->getMaterial("tile::Steel")
-                                                  : m_theMaterialManager->getMaterial("std::Iron");
+      : m_theMaterialManager->getMaterial("std::Iron");
   const GeoMaterial* matAluminium = m_theMaterialManager->getMaterial("std::Aluminium");
   const GeoMaterial* matElBoard = m_theMaterialManager->getMaterial("tile::SiO2CondEpox");
 
@@ -1521,28 +1480,28 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
   const GeoMaterial *iron       = m_theMaterialManager->getMaterial("std::Iron");
   const GeoMaterial *shieldSteel = m_theMaterialManager->getMaterial("shield::ShieldSteel");
   const GeoMaterial *matRubber = m_theMaterialManager->getMaterial("std::Rubber")!=nullptr
-    ? m_theMaterialManager->getMaterial("std::Rubber")
-    : m_theMaterialManager->getMaterial("sct::Rubber");
+      ? m_theMaterialManager->getMaterial("std::Rubber")
+      : m_theMaterialManager->getMaterial("sct::Rubber");
 
   // m_matLArServices
-  if (m_matLArServices == 0)
-   { m_matLArServices = new GeoMaterial("LArServices", 2.5*GeoModelKernelUnits::gram/Gaudi::Units::cm3);
-     m_matLArServices->add(shieldSteel, 0.20);
-     m_matLArServices->add(copper, 0.60);
-     m_matLArServices->add(matRubber, 0.10);
-     m_matLArServices->add(air, 0.10);
-     m_matLArServices->lock();
-   }
+  if (m_matLArServices == 0) {
+    m_matLArServices = new GeoMaterial("LArServices", 2.5*GeoModelKernelUnits::gram/Gaudi::Units::cm3);
+    m_matLArServices->add(shieldSteel, 0.20);
+    m_matLArServices->add(copper, 0.60);
+    m_matLArServices->add(matRubber, 0.10);
+    m_matLArServices->add(air, 0.10);
+    m_matLArServices->lock();
+  }
 
   // m_matIronHalfDens
-  if (m_matIronHalfDens == 0)
-   { m_matIronHalfDens = new GeoMaterial("LArIronBox", 4.5*GeoModelKernelUnits::gram/Gaudi::Units::cm3);
-     m_matIronHalfDens->add(shieldSteel, 0.80);
-     m_matIronHalfDens->add(matRubber, 0.10);
-     m_matIronHalfDens->add(copper, 0.10);
-     m_matIronHalfDens->lock();
-   }
- 
+  if (m_matIronHalfDens == 0) {
+    m_matIronHalfDens = new GeoMaterial("LArIronBox", 4.5*GeoModelKernelUnits::gram/Gaudi::Units::cm3);
+    m_matIronHalfDens->add(shieldSteel, 0.80);
+    m_matIronHalfDens->add(matRubber, 0.10);
+    m_matIronHalfDens->add(copper, 0.10);
+    m_matIronHalfDens->lock();
+  }
+
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
   GeoTrd* fingerElementTrd = 0;
@@ -1550,7 +1509,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
 
   GeoBox *fingerCablesL{nullptr}, *fingerCablesR{nullptr};
   GeoPhysVol *pvFingerElement = 0, *pvFingerCablesL{nullptr}, *pvFingerCablesR{nullptr};
-  GeoLogVol *lvFingerElement = 0, *lvFingerCablesL{nullptr}, *lvFingerCablesR{nullptr}; 
+  GeoLogVol *lvFingerElement = 0, *lvFingerCablesL{nullptr}, *lvFingerCablesR{nullptr};
   GeoTransform* tfFingerElement = 0, *tfFingerCables{nullptr};
 
   GeoTransform* ZrotateMod = 0;
@@ -1565,8 +1524,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
   double AirVolumeShift = 0.0;
   double AirVolumeSize = corrected_dz;
 
-  for (j = CurrentTicg; j < (CurrentTicg + m_dbManager->TIFGnelem()); j++)
-  {
+  for (j = CurrentTicg; j < (CurrentTicg + m_dbManager->TIFGnelem()); j++) {
     m_dbManager->SetCurrentTicg(j);
     double elementRC = m_dbManager->TICGrc();
     double elementHeight = m_dbManager->TICGdr();
@@ -1576,89 +1534,87 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
     double elementDz = m_dbManager->TICGdz();
     double elementZPozition = m_dbManager->TICGzc();
 
-    if(corrected_dz > 0.) {
+    if (corrected_dz > 0.) {
       if (j-CurrentTicg==0) { // take air volume size from first element
         AirVolumeShift = (elementDz-corrected_dz)/2 - elementZPozition;
         AirVolumeSize = elementDz;
-    if(m_log->level()<=MSG::DEBUG) {
-      (*m_log) << MSG::DEBUG << "TileFinger: OldAirVolumeCenter ="<<elementZPozition << endmsg;
-      (*m_log) << MSG::DEBUG << "TileFinger: NewAirVolumeCenter ="<<elementZPozition+AirVolumeShift << endmsg;
-      (*m_log) << MSG::DEBUG << "TileFinger: AirVolumeShift ="<< AirVolumeShift << endmsg;
-      (*m_log) << MSG::DEBUG << "TileFinger: AirVolumeSize ="<< AirVolumeSize << endmsg;
-    }
+        if (m_log->level()<=MSG::DEBUG) {
+          (*m_log) << MSG::DEBUG << "TileFinger: OldAirVolumeCenter ="<<elementZPozition << endmsg;
+          (*m_log) << MSG::DEBUG << "TileFinger: NewAirVolumeCenter ="<<elementZPozition+AirVolumeShift << endmsg;
+          (*m_log) << MSG::DEBUG << "TileFinger: AirVolumeShift ="<< AirVolumeShift << endmsg;
+          (*m_log) << MSG::DEBUG << "TileFinger: AirVolumeSize ="<< AirVolumeSize << endmsg;
+        }
       }
+
       if (elementZPozition*2-AirVolumeSize<-0.01) { // compare with zero with 0.1 Gaudi::Units::mm precision
         elementZPozition += AirVolumeShift; // shift all volumes keeping size
+
       } else { // resize finger cover with shims attached to it
-    if(m_log->level()<=MSG::DEBUG)
-      (*m_log) << MSG::DEBUG << "TileFinger: OldCoverThickness ="<<elementDz << endmsg;
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG << "TileFinger: OldCoverThickness ="<<elementDz << endmsg;
         elementDz = corrected_dz - AirVolumeSize;
-    if(m_log->level()<=MSG::DEBUG) {
-      (*m_log) << MSG::DEBUG << "TileFinger: NewCoverThickness ="<<elementDz << endmsg;
-      (*m_log) << MSG::DEBUG << "TileFinger: OldCoverCenter ="<<elementZPozition << endmsg;
-    }
+        if (m_log->level()<=MSG::DEBUG) {
+          (*m_log) << MSG::DEBUG << "TileFinger: NewCoverThickness ="<<elementDz << endmsg;
+          (*m_log) << MSG::DEBUG << "TileFinger: OldCoverCenter ="<<elementZPozition << endmsg;
+        }
         elementZPozition = (corrected_dz-elementDz)/2;
-    if(m_log->level()<=MSG::DEBUG)
-      (*m_log) << MSG::DEBUG << "TileFinger: NewCoverCenter ="<<elementZPozition << endmsg;
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG << "TileFinger: NewCoverCenter ="<<elementZPozition << endmsg;
       }
     }
-    
-    switch(m_dbManager->TICGmaterial())
-    {
-    case 1:
+
+    switch(m_dbManager->TICGmaterial()) {
+      case 1:
       {
-    currentMaterial = matIron;
-    currentName = "FingerIron";
-    break;
+        currentMaterial = matIron;
+        currentName = "FingerIron";
+        break;
       }
-    case 2:
+      case 2:
       {
-    currentMaterial = matAluminium;
-    currentName = "FingerAluminum";
-    break;
+        currentMaterial = matAluminium;
+        currentName = "FingerAluminum";
+        break;
       }
-    case 3:
+      case 3:
       {
-    currentMaterial = matElBoard;
-    currentName = "FingerElectronics";
-    break;
+        currentMaterial = matElBoard;
+        currentName = "FingerElectronics";
+        break;
       }
-    default:
+      default:
       {
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillFinger: unexpected material = "
+        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillFinger: unexpected material = "
                  << m_dbManager->TICGmaterial() << " for finger element" << endmsg;
-    return;
+        return;
       }
     }
 
-    if(m_dbManager->TICGshape()==1)
-    {
+    if (m_dbManager->TICGshape()==1) {
       fingerElementTrd = new GeoTrd(elementDz/2*Gaudi::Units::cm,
-                    elementDz/2*Gaudi::Units::cm,
-                    elementDy1/2*Gaudi::Units::cm,
-                    elementDy2/2*Gaudi::Units::cm,
-                    elementHeight/2*Gaudi::Units::cm);
+                                    elementDz/2*Gaudi::Units::cm,
+                                    elementDy1/2*Gaudi::Units::cm,
+                                    elementDy2/2*Gaudi::Units::cm,
+                                    elementHeight/2*Gaudi::Units::cm);
       lvFingerElement = new GeoLogVol(currentName,fingerElementTrd,currentMaterial);
-    }
-    else if(m_dbManager->TICGshape()==2)
-    {
- 
+
+    } else if (m_dbManager->TICGshape()==2) {
+
       fingerElementTrap = new GeoTrap(elementDz/2*Gaudi::Units::cm,
-                      0.,
-                      0.,
-                      elementHeight/2*Gaudi::Units::cm,
-                      elementDy2/2*Gaudi::Units::cm,
-                      elementDy1/2*Gaudi::Units::cm,
-                      atan((elementDy1-elementDy2)/(2.*elementHeight)),
-                      elementHeight/2*Gaudi::Units::cm,
-                      elementDy2/2*Gaudi::Units::cm,
-                      elementDy1/2*Gaudi::Units::cm,
-                      atan((elementDy1-elementDy2)/(2.*elementHeight)));
- 
+                                      0.,
+                                      0.,
+                                      elementHeight/2*Gaudi::Units::cm,
+                                      elementDy2/2*Gaudi::Units::cm,
+                                      elementDy1/2*Gaudi::Units::cm,
+                                      atan((elementDy1-elementDy2)/(2.*elementHeight)),
+                                      elementHeight/2*Gaudi::Units::cm,
+                                      elementDy2/2*Gaudi::Units::cm,
+                                      elementDy1/2*Gaudi::Units::cm,
+                                      atan((elementDy1-elementDy2)/(2.*elementHeight)));
+
       lvFingerElement = new GeoLogVol(currentName,fingerElementTrap,currentMaterial);
-    }    
-    else
-    {
+
+    } else {
       (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillFinger: unexpected shape = "
                << m_dbManager->TICGshape() << " for finger element" << endmsg;
       return;
@@ -1667,16 +1623,14 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
 
     pvFingerElement = new GeoPhysVol(lvFingerElement);
     tfFingerElement = new GeoTransform(GeoTrf::Translate3D(elementZPozition*Gaudi::Units::cm,
-                              elementOffset*Gaudi::Units::cm,
-                              (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
+                                                           elementOffset*Gaudi::Units::cm,
+                                                           (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
 
     mother->add(tfFingerElement);
-    if (m_dbManager->TICGshape()==2)
-    {
-      if(elementOffset<0)
-      {
-    ZrotateMod = new GeoTransform(GeoTrf::RotateZ3D(180*Gaudi::Units::deg));
-    mother->add(ZrotateMod); 
+    if (m_dbManager->TICGshape()==2) {
+      if (elementOffset<0) {
+        ZrotateMod = new GeoTransform(GeoTrf::RotateZ3D(180*Gaudi::Units::deg));
+        mother->add(ZrotateMod);
       }
 
       zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(90*Gaudi::Units::deg));
@@ -1695,12 +1649,13 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
 
   int Isector =0, LRflag =0;
 
-  if ((ModuleNcp/4 - (float)ModuleNcp/4) != 0) Isector = (int)ModuleNcp/4;
-  else 
-   {Isector = (int)ModuleNcp/4-1;
-   }
+  if ((ModuleNcp/4 - (float)ModuleNcp/4) != 0) {
+    Isector = (int)ModuleNcp/4;
+  } else {
+    Isector = (int)ModuleNcp/4-1;
+  }
   LRflag = ModuleNcp-4*Isector;
-  
+
   m_dbManager->SetCurrentTicg(CurrentTicg);
 
   double elementRC = m_dbManager->TICGrc();
@@ -1716,39 +1671,40 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
   rightMaterial = leftMaterial = m_matLArServices;
   rightName = leftName = "LArCables";
 
-  if (LRflag == 1)
-    { dZright = elementDz, dXright = 35;
-      dZsaddleR = 0;
-      rightMaterial = m_matIronHalfDens;
-      rightName = "LArService";
-
-    } else if (LRflag == 4) 
-    { dZleft = elementDz, dXleft = 35;
-      dZsaddleL = 0;
-      leftMaterial = m_matIronHalfDens;
-      leftName = "LArService";
+  if (LRflag == 1) {
+    dZright = elementDz, dXright = 35;
+    dZsaddleR = 0;
+    rightMaterial = m_matIronHalfDens;
+    rightName = "LArService";
+
+  } else if (LRflag == 4) {
+    dZleft = elementDz, dXleft = 35;
+    dZsaddleL = 0;
+    leftMaterial = m_matIronHalfDens;
+    leftName = "LArService";
+  }
+
+  if (sec_number == 1) {
+    if ( (ModuleNcp >=40 && ModuleNcp <=41) || (ModuleNcp >=56 && ModuleNcp <=57) ) {
+      dZright = dZleft = 8.5;
+      dZsaddleL = dZsaddleR = 13.7;
+      rightMaterial = leftMaterial = iron;
+      rightName = leftName = "BarrelSaddleSupport";
     }
 
-  if (sec_number == 1)
-   { if ( (ModuleNcp >=40 && ModuleNcp <=41) || (ModuleNcp >=56 && ModuleNcp <=57) ) 
-     { dZright = dZleft = 8.5;
-       dZsaddleL = dZsaddleR = 13.7;
-       rightMaterial = leftMaterial = iron;
-       rightName = leftName = "BarrelSaddleSupport";
-     }
-   } else 
-   { if ( (ModuleNcp >=39 && ModuleNcp <=42) || (ModuleNcp >=55 && ModuleNcp <=58) ) 
-     { dZright = dZleft = 8.5;
-       dZsaddleR = dZsaddleL = 13.7;
-       rightMaterial = leftMaterial = iron;
-       rightName = leftName = "ExtBarrelSaddleSupport";
-     }
-   } 
-
-  if(m_log->level()<=MSG::DEBUG)
+  } else {
+    if ( (ModuleNcp >=39 && ModuleNcp <=42) || (ModuleNcp >=55 && ModuleNcp <=58) ) {
+      dZright = dZleft = 8.5;
+      dZsaddleR = dZsaddleL = 13.7;
+      rightMaterial = leftMaterial = iron;
+      rightName = leftName = "ExtBarrelSaddleSupport";
+    }
+  }
+
+  if (m_log->level()<=MSG::DEBUG)
     (*m_log) << MSG::DEBUG << " Finger : number= "<<sec_number<<" ModuleNcp = " <<ModuleNcp<< " Sector= "<< Isector
-         << " LRflag= " << LRflag <<" Neg "<< boolNeg 
-         << endmsg;
+             << " LRflag= " << LRflag <<" Neg "<< boolNeg
+             << endmsg;
 
   GeoTransform *rotateY = new GeoTransform(GeoTrf::RotateY3D(90*Gaudi::Units::deg));
   GeoTransform *rotateZ = new GeoTransform(GeoTrf::RotateZ3D(3*Gaudi::Units::deg));
@@ -1766,60 +1722,61 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*&             mother,
 
   double YpoFinger =0;
 
-  if (boolNeg)
-    { YpoFinger = -elementOffset+5.4; 
-    } else
-    { YpoFinger = elementOffset-5.4;  
-    }
+  if (boolNeg) {
+    YpoFinger = -elementOffset+5.4;
+  } else {
+    YpoFinger = elementOffset-5.4;
+  }
 
   tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*Gaudi::Units::cm +0.5*Gaudi::Units::cm -dZsaddleL*Gaudi::Units::cm,
-                                               YpoFinger*Gaudi::Units::cm,
-                                   (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
+                                                        YpoFinger*Gaudi::Units::cm,
+                                                        (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
   mother->add(tfFingerCables);
 
   // inversion for negativ fingers, Left
-  if (boolNeg)
-    { mother->add(rotateY);
-      mother->add(rotateZm);
-     } else
-    { mother->add(rotateY);
-      mother->add(rotateZ);
-    }
+  if (boolNeg) {
+    mother->add(rotateY);
+    mother->add(rotateZm);
+  } else {
+    mother->add(rotateY);
+    mother->add(rotateZ);
+  }
 
   mother->add(new GeoIdentifierTag(ModuleNcp));
-  mother->add(pvFingerCablesL); 
+  mother->add(pvFingerCablesL);
 
-  if (boolNeg)
-    { YpoFinger = elementOffset-5.4;
-    } else
-    { YpoFinger = -elementOffset+5.4;
-    }
+  if (boolNeg) {
+    YpoFinger = elementOffset-5.4;
+  } else {
+    YpoFinger = -elementOffset+5.4;
+  }
 
   tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*Gaudi::Units::cm +0.5*Gaudi::Units::cm -dZsaddleR*Gaudi::Units::cm,
-                                               YpoFinger*Gaudi::Units::cm,
-                                               (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
+                                                        YpoFinger*Gaudi::Units::cm,
+                                                        (elementRC-(tilb_rmax + tile_rmax)/2)*Gaudi::Units::cm));
   mother->add(tfFingerCables);
 
   // inversion for negativ fingers, Right
-  if (boolNeg)
-    { mother->add(rotateY);
-      mother->add(rotateZ);
-     } else
-    { mother->add(rotateY);
-      mother->add(rotateZm);
-    }
+  if (boolNeg) {
+    mother->add(rotateY);
+    mother->add(rotateZ);
+  } else {
+    mother->add(rotateY);
+    mother->add(rotateZm);
+  }
 
   mother->add(new GeoIdentifierTag(ModuleNcp));
   mother->add(pvFingerCablesR);
   // m_matLArServices->unref();
-  // m_matIronHalfDens->unref(); 
+  // m_matIronHalfDens->unref();
 }
 
+
 void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
-                       double                    thickness,
-                       double                    dzglue,
-                       double                    tan_delta_phi_2,
-                       int                       period_type,
+                                       double                    thickness,
+                                       double                    dzglue,
+                                       double                    tan_delta_phi_2,
+                                       int                       period_type,
                                        GeoTrd *                  period)
 {
   int j;
@@ -1849,38 +1806,32 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
   // Determine the number of first scintillator depending on the section type
-  if (m_dbManager->TILBsection() >= 7 && m_dbManager->TILBcurscint() == 0)
-  {
+  if (m_dbManager->TILBsection() >= 7 && m_dbManager->TILBcurscint() == 0) {
     CurrentScin = 101;    //special modules for testbeam identical to normal barrel module
-  }
-  else 
-  {
-    if (m_dbManager->TILBcurscint()>0)
-    {
+  } else {
+    if (m_dbManager->TILBcurscint()>0) {
       CurrentScin = m_dbManager->TILBcurscint();
-    }
-    else
-    {
+    } else {
       CurrentScin = 100*m_dbManager->TILBsection()+1;
     }
   }
 
   // special EB modules with cut-outs
-  if (m_dbManager->TILBsection()>=26 && m_dbManager->TILBsection()<=38 && m_dbManager->TILBcurscint() == 0) 
-  { //ps shortcut. Should be read from DB later on.
+  if (m_dbManager->TILBsection()>=26 && m_dbManager->TILBsection()<=38 && m_dbManager->TILBcurscint() == 0) {
+    //ps shortcut. Should be read from DB later on.
     CurrentScin = 100*2 + 1;
   }
 
   int zpShift = 1;
   // special EB modules with small D4 cell
-  if (m_dbManager->TILBsection()>=7 && m_dbManager->TILBsection()<=8 && m_dbManager->TILBcurscint() == 301) 
-  { //ps fix. Should put curscint = 1301 in DB and zpShift will not be needed
+  if (m_dbManager->TILBsection()>=7 && m_dbManager->TILBsection()<=8 && m_dbManager->TILBcurscint() == 301) {
+    //ps fix. Should put curscint = 1301 in DB and zpShift will not be needed
     zpShift = -1;
   }
-  
+
   (*m_log) << MSG::VERBOSE <<"     TILBsection= "<<m_dbManager->TILBsection()<<endmsg;
-  (*m_log) << MSG::VERBOSE <<"     CurrentScin= "<<CurrentScin<<" TILBcurscint= "<<m_dbManager->TILBcurscint() 
-                           << " - " << m_dbManager->TILBcurscint()+m_dbManager->TILBnscin()-1 <<endmsg;
+  (*m_log) << MSG::VERBOSE <<"     CurrentScin= "<<CurrentScin<<" TILBcurscint= "<<m_dbManager->TILBcurscint()
+           << " - " << m_dbManager->TILBcurscint()+m_dbManager->TILBnscin()-1 <<endmsg;
   (*m_log) << MSG::VERBOSE <<"     period_type= "<<period_type <<endmsg;
 
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -1931,95 +1882,91 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
     double dy2Glue = (m_dbManager->TILBrmax() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
     double heightGlue2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*Gaudi::Units::cm/2.;
 
-    checking("Glue 0", false, 4, 
+    checking("Glue 0", false, 4,
              dzglue2,dzglue2,dy1Glue,dy2Glue,heightGlue2);
 
     glue = new GeoTrd(dzglue2,dzglue2,dy1Glue,dy2Glue,heightGlue2);
 
-  //Cs tubes in mother volume and holes in glue
-  if (m_switches.csTube) {
-    for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-    {
-      idTag = new GeoIdentifierTag(j-CurrentScin);
-      m_dbManager->SetCurrentScin(j);
-
-      double off0 = m_dbManager->SCNTrc()*Gaudi::Units::cm - heightMother2;
-      double off  = m_dbManager->SCNTdr()/2.*Gaudi::Units::cm - csTubeOffCorr;
-
-      GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg);
-      GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg);
-
-      // air around iron rod, around Cs tube and inside Cs tube
-      GeoShape *air1 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg);
-      GeoShape *air2 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg);
-      GeoShape *air3 = new GeoTubs(0.,      csTubeInnerR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg);
-
-      GeoLogVol * lvAir1 = new GeoLogVol("CsTubeAir1",air1,matAir);
-      GeoLogVol * lvAir2 = new GeoLogVol("CsTubeAir2",air2,matAir);
-      GeoLogVol * lvAir3 = new GeoLogVol("CsTubeAir3",air3,matAir);
-      GeoPhysVol * pvAir1 = new GeoPhysVol(lvAir1);
-      GeoPhysVol * pvAir2 = new GeoPhysVol(lvAir2);
-      GeoPhysVol * pvAir3 = new GeoPhysVol(lvAir3);
-
-      GeoTransform* tftube1 = new GeoTransform(tfHole1);
-      GeoTransform* tftube2 = new GeoTransform(tfHole2);
-      GeoTransform* tftube3 = new GeoTransform(tfHole2);
-
-      mother->add(tftube1);
-      mother->add(pvAir1);
-      mother->add(tftube2);
-      mother->add(pvAir2);
-      mother->add(tftube3);
-      mother->add(pvAir3);
+    //Cs tubes in mother volume and holes in glue
+    if (m_switches.csTube) {
+      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
+        idTag = new GeoIdentifierTag(j-CurrentScin);
+        m_dbManager->SetCurrentScin(j);
 
-      //Holes in Glue
-      if (glue) {
-        glue = makeHoles(glue, csHoleR, dzglue2, off, off0);
+        double off0 = m_dbManager->SCNTrc()*Gaudi::Units::cm - heightMother2;
+        double off  = m_dbManager->SCNTdr()/2.*Gaudi::Units::cm - csTubeOffCorr;
+
+        GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg);
+        GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*Gaudi::Units::deg);
+
+        // air around iron rod, around Cs tube and inside Cs tube
+        GeoShape *air1 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg);
+        GeoShape *air2 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg);
+        GeoShape *air3 = new GeoTubs(0.,      csTubeInnerR, thicknessMother2, 0.,360.0 * Gaudi::Units::deg);
+
+        GeoLogVol * lvAir1 = new GeoLogVol("CsTubeAir1",air1,matAir);
+        GeoLogVol * lvAir2 = new GeoLogVol("CsTubeAir2",air2,matAir);
+        GeoLogVol * lvAir3 = new GeoLogVol("CsTubeAir3",air3,matAir);
+        GeoPhysVol * pvAir1 = new GeoPhysVol(lvAir1);
+        GeoPhysVol * pvAir2 = new GeoPhysVol(lvAir2);
+        GeoPhysVol * pvAir3 = new GeoPhysVol(lvAir3);
+
+        GeoTransform* tftube1 = new GeoTransform(tfHole1);
+        GeoTransform* tftube2 = new GeoTransform(tfHole2);
+        GeoTransform* tftube3 = new GeoTransform(tfHole2);
+
+        mother->add(tftube1);
+        mother->add(pvAir1);
+        mother->add(tftube2);
+        mother->add(pvAir2);
+        mother->add(tftube3);
+        mother->add(pvAir3);
+
+        //Holes in Glue
+        if (glue) {
+          glue = makeHoles(glue, csHoleR, dzglue2, off, off0);
+        }
       }
     }
-  }
     lvGlue = new GeoLogVol("Glue",glue,matGlue);
     pvGlue = new GeoPhysVol(lvGlue);
   }
-  
-  switch(period_type)
-  {
-  case 1:
+
+  switch(period_type) {
+    case 1:
     {
       //Ordinary period in Barrel and Extended barrel - /spacer/glue/master/glue/spacer/glue/master/glue
 
       //Glue layer
-      if (glue)
-      {
+      if (glue) {
         if (m_verbose)
-            printdouble("      glue position = ",(-3.*dzglue/2-m_dbManager->TILBdzmast())*Gaudi::Units::cm);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D((-3.*dzglue/2-m_dbManager->TILBdzmast())*Gaudi::Units::cm,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",(-3.*dzglue/2-m_dbManager->TILBdzmast())*Gaudi::Units::cm);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D((-3.*dzglue/2-m_dbManager->TILBdzmast())*Gaudi::Units::cm,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
 
         if (m_verbose)
-            printdouble("      glue position = ",-dzglue/2*Gaudi::Units::cm);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D(-dzglue/2*Gaudi::Units::cm,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",-dzglue/2*Gaudi::Units::cm);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D(-dzglue/2*Gaudi::Units::cm,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
 
         if (m_verbose)
-            printdouble("      glue position = ",(dzglue/2+m_dbManager->TILBdzspac())*Gaudi::Units::cm);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue/2+m_dbManager->TILBdzspac())*Gaudi::Units::cm,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",(dzglue/2+m_dbManager->TILBdzspac())*Gaudi::Units::cm);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue/2+m_dbManager->TILBdzspac())*Gaudi::Units::cm,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
 
         if (m_verbose)
-            printdouble("      glue position = ",(thickness-dzglue)/2*Gaudi::Units::cm);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D((thickness-dzglue)/2*Gaudi::Units::cm,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",(thickness-dzglue)/2*Gaudi::Units::cm);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D((thickness-dzglue)/2*Gaudi::Units::cm,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
       }
 
-      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-      {
-    idTag = new GeoIdentifierTag(j-CurrentScin);
-    m_dbManager->SetCurrentScin(j);
+      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
+        idTag = new GeoIdentifierTag(j-CurrentScin);
+        m_dbManager->SetCurrentScin(j);
 
         scintiHeight = m_dbManager->SCNTdr();
         scintiRC = m_dbManager->SCNTrc();
@@ -2030,57 +1977,57 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
         scintiDeltaInPhi = (m_switches.uShape > 0) ? 0.0 : m_dbManager->SCNTdphi();
 
         thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ?
-                           (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
+            (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
         if (m_switches.glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness);
 
         // create wrapper
         heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm;
         dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) *
-                     tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+                      tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
         dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) *
-                     tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+                      tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
 
-        checking("Wrapper 0", true, 5, 
-            thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
+        checking("Wrapper 0", true, 5,
+                 thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
 
-    wrapper = new GeoTrd(thicknessWrapper/2,
-                 thicknessWrapper/2,
-                 dy1Wrapper,
-                 dy2Wrapper,
-                 heightWrapper/2);
+        wrapper = new GeoTrd(thicknessWrapper/2,
+                             thicknessWrapper/2,
+                             dy1Wrapper,
+                             dy2Wrapper,
+                             heightWrapper/2);
 
-    if (m_switches.csTube) {
+        if (m_switches.csTube) {
           wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
         }
-    lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
-    pvWrapper = new GeoPhysVol(lvWrapper);
+        lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
+        pvWrapper = new GeoPhysVol(lvWrapper);
 
         // create scintillator
         dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) *
-                          tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+                           tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
         dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) *
-                          tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+                           tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
 
-        checking("Scintillator 0", true, 6, 
+        checking("Scintillator 0", true, 6,
                  scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm);
 
-    scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
-                  scintiThickness/2*Gaudi::Units::cm,
-                  dy1Scintillator,
-                  dy2Scintillator,
-                  scintiHeight/2*Gaudi::Units::cm);
+        scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
+                                  scintiThickness/2*Gaudi::Units::cm,
+                                  dy1Scintillator,
+                                  dy2Scintillator,
+                                  scintiHeight/2*Gaudi::Units::cm);
 
-    if (m_switches.csTube) {
+        if (m_switches.csTube) {
           scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
-    }
-    lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
-    pvScintillator = new GeoPhysVol(lvScintillator);
+        }
+        lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
+        pvScintillator = new GeoPhysVol(lvScintillator);
 
         // place scintillator in wrapper
-    tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
-    pvWrapper->add(idTag);
-    pvWrapper->add(tfScintillator);
-    pvWrapper->add(pvScintillator);
+        tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
+        pvWrapper->add(idTag);
+        pvWrapper->add(tfScintillator);
+        pvWrapper->add(pvScintillator);
 
         //place wrapper in period
         if (m_verbose) {
@@ -2088,40 +2035,38 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
           printdouble("  ==>  ",(scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm);
           (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg;
         }
-        
-    tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm,
-                            0.,
-                            (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
-    mother->add(idTag);
-    mother->add(tfWrapper);
-    mother->add(pvWrapper);
+
+        tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm,
+                                                         0.,
+                                                         (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
+        mother->add(idTag);
+        mother->add(tfWrapper);
+        mother->add(pvWrapper);
       }
       break;
     }
-  case 2:
+    case 2:
     {
       //Special period in the barrel - /spacer/glue/master/glue/spacer
 
       //Glue layer
-      if (glue)
-      {
+      if (glue) {
         if (m_verbose)
-            printdouble("      glue position = ",(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
 
         if (m_verbose)
-            printdouble("      glue position = ",-(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D(-(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",-(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D(-(dzglue + m_dbManager->TILBdzmast())*Gaudi::Units::cm/2,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
       }
 
-      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-      {
-    idTag = new GeoIdentifierTag(j-CurrentScin);
-    m_dbManager->SetCurrentScin(j);
+      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
+        idTag = new GeoIdentifierTag(j-CurrentScin);
+        m_dbManager->SetCurrentScin(j);
 
         scintiHeight = m_dbManager->SCNTdr();
         scintiRC = m_dbManager->SCNTrc();
@@ -2132,196 +2077,193 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
         scintiDeltaInPhi = (m_switches.uShape > 0) ? 0.0 : m_dbManager->SCNTdphi();
 
         thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ?
-                           (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
+            (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
         if (m_switches.glue == 2)   thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness);
 
         // create wrapper
         heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm;
         dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) *
-                     tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+                      tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
         dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) *
-                     tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+                      tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
 
-        checking("Wrapper 1", true, 5, 
-            thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
+        checking("Wrapper 1", true, 5,
+                 thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
 
-    wrapper = new GeoTrd(thicknessWrapper/2,
-                 thicknessWrapper/2,
-                 dy1Wrapper,
-                 dy2Wrapper,
-                 heightWrapper/2);
+        wrapper = new GeoTrd(thicknessWrapper/2,
+                             thicknessWrapper/2,
+                             dy1Wrapper,
+                             dy2Wrapper,
+                             heightWrapper/2);
 
-    if (m_switches.csTube) {
+        if (m_switches.csTube) {
           wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
         }
-    lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
-    pvWrapper = new GeoPhysVol(lvWrapper);
+        lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
+        pvWrapper = new GeoPhysVol(lvWrapper);
 
         // create scintillator
         dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) *
-                          tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+                           tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
         dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) *
-                          tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+                           tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
 
-        checking("Scintillator 1", true, 6, 
+        checking("Scintillator 1", true, 6,
                  scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm);
 
-    scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
-                  scintiThickness/2*Gaudi::Units::cm,
-                  dy1Scintillator,
-                  dy2Scintillator,
-                  scintiHeight/2*Gaudi::Units::cm);
+        scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
+                                  scintiThickness/2*Gaudi::Units::cm,
+                                  dy1Scintillator,
+                                  dy2Scintillator,
+                                  scintiHeight/2*Gaudi::Units::cm);
 
-    if (m_switches.csTube) {
+        if (m_switches.csTube) {
           scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
-    }
-    lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
-    pvScintillator = new GeoPhysVol(lvScintillator);
+        }
+        lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
+        pvScintillator = new GeoPhysVol(lvScintillator);
 
         // place scintillator in wrapper
-    tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
-    pvWrapper->add(idTag);
-    pvWrapper->add(tfScintillator);
-    pvWrapper->add(pvScintillator);
+        tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
+        pvWrapper->add(idTag);
+        pvWrapper->add(tfScintillator);
+        pvWrapper->add(pvScintillator);
 
         //place wrapper in period
         if (m_verbose) {
-          (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; 
+          (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos;
           printdouble("  ==>  ",(2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*Gaudi::Units::cm);
           (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg;
         }
-        
-    tfWrapper = new GeoTransform(GeoTrf::Translate3D((2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*Gaudi::Units::cm,
-                            0.,
-                            (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
-    mother->add(idTag);
-    mother->add(tfWrapper);
-    mother->add(pvWrapper);
+
+        tfWrapper = new GeoTransform(GeoTrf::Translate3D((2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*Gaudi::Units::cm,
+                                                         0.,
+                                                         (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
+        mother->add(idTag);
+        mother->add(tfWrapper);
+        mother->add(pvWrapper);
       }
       break;
     }
-  case 3:
+    case 3:
     {
       //Ordinary period in Plug Section 1 - /glue/master/glue/spacer/glue/master/glue/spacer
-      
+
       //Glue layer
-      if (glue)
-      {
+      if (glue) {
         if (m_verbose)
-            printdouble("      glue position = ",(-thickness + dzglue)*Gaudi::Units::cm/2);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D((-thickness + dzglue)*Gaudi::Units::cm/2,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",(-thickness + dzglue)*Gaudi::Units::cm/2);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D((-thickness + dzglue)*Gaudi::Units::cm/2,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
 
         if (m_verbose)
-            printdouble("      glue position = ",((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*Gaudi::Units::cm);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D(((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*Gaudi::Units::cm,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*Gaudi::Units::cm);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D(((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*Gaudi::Units::cm,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
 
         if (m_verbose)
-            printdouble("      glue position = ",dzglue/2*Gaudi::Units::cm);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D(dzglue/2*Gaudi::Units::cm,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",dzglue/2*Gaudi::Units::cm);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D(dzglue/2*Gaudi::Units::cm,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
 
         if (m_verbose)
-            printdouble("      glue position = ",(3.*dzglue/2 + m_dbManager->TILBdzmast())*Gaudi::Units::cm);
-    tfGlue = new GeoTransform(GeoTrf::Translate3D((3.*dzglue/2 + m_dbManager->TILBdzmast())*Gaudi::Units::cm,0.,0.));
-    mother->add(tfGlue);
-    mother->add(pvGlue);
+          printdouble("      glue position = ",(3.*dzglue/2 + m_dbManager->TILBdzmast())*Gaudi::Units::cm);
+        tfGlue = new GeoTransform(GeoTrf::Translate3D((3.*dzglue/2 + m_dbManager->TILBdzmast())*Gaudi::Units::cm,0.,0.));
+        mother->add(tfGlue);
+        mother->add(pvGlue);
       }
 
-      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-      {
-    idTag = new GeoIdentifierTag(j-CurrentScin);
-    m_dbManager->SetCurrentScin(j);
+      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
+        idTag = new GeoIdentifierTag(j-CurrentScin);
+        m_dbManager->SetCurrentScin(j);
 
         scintiHeight = m_dbManager->SCNTdr();
         scintiRC = m_dbManager->SCNTrc();
         scintiZPos = m_dbManager->SCNTzp();
-    scintiThickness = m_dbManager->SCNTdt();
+        scintiThickness = m_dbManager->SCNTdt();
         scintiWrapInZ = m_dbManager->SCNTdtw();
         scintiWrapInR = m_dbManager->SCNTdrw();
         scintiDeltaInPhi = (m_switches.uShape > 0) ? 0. : m_dbManager->SCNTdphi();
 
         thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ?
-                           (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
+            (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
         if (m_switches.glue == 2)   thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness);
 
         // create wrapper
         heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm;
 
         dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) *
-                     tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+                      tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
         dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) *
-                     tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+                      tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
 
-        checking("Wrapper 2", true, 5, 
-            thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
+        checking("Wrapper 2", true, 5,
+                 thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
 
-    wrapper = new GeoTrd(thicknessWrapper/2,
-                 thicknessWrapper/2,
-                 dy1Wrapper,
-                 dy2Wrapper,
-                 heightWrapper/2);
+        wrapper = new GeoTrd(thicknessWrapper/2,
+                             thicknessWrapper/2,
+                             dy1Wrapper,
+                             dy2Wrapper,
+                             heightWrapper/2);
 
-    if (m_switches.csTube) {
+        if (m_switches.csTube) {
           wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
         }
-    lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
-    pvWrapper = new GeoPhysVol(lvWrapper);
+        lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
+        pvWrapper = new GeoPhysVol(lvWrapper);
 
         // create scintillator
         dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) *
-                          tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+                           tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
         dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) *
-                          tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+                           tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
 
-        checking("Scintillator 2", true, 6, 
+        checking("Scintillator 2", true, 6,
                  scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm);
 
-    scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
-                  scintiThickness/2*Gaudi::Units::cm,
-                  dy1Scintillator,
-                  dy2Scintillator,
-                  scintiHeight/2*Gaudi::Units::cm);
+        scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
+                                  scintiThickness/2*Gaudi::Units::cm,
+                                  dy1Scintillator,
+                                  dy2Scintillator,
+                                  scintiHeight/2*Gaudi::Units::cm);
 
-    if (m_switches.csTube) {
+        if (m_switches.csTube) {
           scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
-    }
-    lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
-    pvScintillator = new GeoPhysVol(lvScintillator);
+        }
+        lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
+        pvScintillator = new GeoPhysVol(lvScintillator);
 
         // place scintillator in wrapper
-    tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
-    pvWrapper->add(idTag);
-    pvWrapper->add(tfScintillator);
-    pvWrapper->add(pvScintillator);
+        tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
+        pvWrapper->add(idTag);
+        pvWrapper->add(tfScintillator);
+        pvWrapper->add(pvScintillator);
 
         //place wrapper in period
         if (m_verbose) {
-          (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; 
+          (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos;
           printdouble("  ==>  ",(scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm);
           (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg;
         }
-      
-    tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm,
-                            0.,
-                            (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
-    mother->add(idTag);
-    mother->add(tfWrapper);
-    mother->add(pvWrapper);
+
+        tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*Gaudi::Units::cm,
+                                                         0.,
+                                                         (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
+        mother->add(idTag);
+        mother->add(tfWrapper);
+        mother->add(pvWrapper);
       }
       break;
     }
-  case 4:
+    case 4:
     {
       //Special period in Plug Section  - /spacer
 
-      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-      {
-    m_dbManager->SetCurrentScin(j);
+      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
+        m_dbManager->SetCurrentScin(j);
 
         scintiHeight = m_dbManager->SCNTdr();
         scintiRC = m_dbManager->SCNTrc();
@@ -2332,91 +2274,89 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
         scintiDeltaInPhi = (m_switches.uShape > 0) ? 0.0 : m_dbManager->SCNTdphi();
 
         thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ?
-                           (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
+            (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm: m_dbManager->TILBdzspac()*Gaudi::Units::cm;
         if (m_switches.glue == 2)   thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness);
 
-    if(scintiZPos<0)
-    {
-      idTag = new GeoIdentifierTag(j-CurrentScin);
-      // create wrapper
-      heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm;
-      dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) *
-                       tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
-      dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) *
-                       tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
-      
-          checking("Wrapper 3", true, 5, 
-              thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
-
-      wrapper = new GeoTrd(thicknessWrapper/2,
-                   thicknessWrapper/2,
-                   dy1Wrapper,
-                   dy2Wrapper,
-                   heightWrapper/2);
+        if (scintiZPos<0) {
+          idTag = new GeoIdentifierTag(j-CurrentScin);
+          // create wrapper
+          heightWrapper = (scintiHeight + 2*scintiWrapInR)*Gaudi::Units::cm;
+          dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) *
+                        tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+          dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) *
+                        tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*Gaudi::Units::cm;
+
+          checking("Wrapper 3", true, 5,
+                   thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
+
+          wrapper = new GeoTrd(thicknessWrapper/2,
+                               thicknessWrapper/2,
+                               dy1Wrapper,
+                               dy2Wrapper,
+                               heightWrapper/2);
 
           if (m_switches.csTube) {
             wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
           }
-      lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
-      pvWrapper = new GeoPhysVol(lvWrapper);
-
-      // create scintillator
-      dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) *
-                            tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
-      dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) *
-                            tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
-      
-          checking("Scintillator 3", true, 6, 
+          lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
+          pvWrapper = new GeoPhysVol(lvWrapper);
+
+          // create scintillator
+          dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) *
+                             tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+          dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) *
+                             tan_delta_phi_2 -  m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*Gaudi::Units::cm;
+
+          checking("Scintillator 3", true, 6,
                    scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm);
 
-      scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
-                    scintiThickness/2*Gaudi::Units::cm,
-                    dy1Scintillator,
-                    dy2Scintillator,
-                    scintiHeight/2*Gaudi::Units::cm);
+          scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
+                                    scintiThickness/2*Gaudi::Units::cm,
+                                    dy1Scintillator,
+                                    dy2Scintillator,
+                                    scintiHeight/2*Gaudi::Units::cm);
 
           if (m_switches.csTube) {
             scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * Gaudi::Units::cm, scintiHeight/2.*Gaudi::Units::cm - csTubeOffCorr);
           }
-      lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
-      pvScintillator = new GeoPhysVol(lvScintillator);
-      
-      // place scintillator in wrapper
-      tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
-      pvWrapper->add(idTag);
-      pvWrapper->add(tfScintillator);
-      pvWrapper->add(pvScintillator);
-      
-      //place wrapper in period
+          lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
+          pvScintillator = new GeoPhysVol(lvScintillator);
+
+          // place scintillator in wrapper
+          tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
+          pvWrapper->add(idTag);
+          pvWrapper->add(tfScintillator);
+          pvWrapper->add(pvScintillator);
+
+          //place wrapper in period
           if (m_verbose) {
-            (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<0.0 <<endmsg; 
+            (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<0.0 <<endmsg;
             (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg;
           }
-          
-      tfWrapper = new GeoTransform(GeoTrf::Translate3D(0.,
-                              0.,
-                              (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
-      mother->add(idTag);
-      mother->add(tfWrapper);
-      mother->add(pvWrapper);
-    }
+
+          tfWrapper = new GeoTransform(GeoTrf::Translate3D(0.,
+                                                           0.,
+                                                           (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
+          mother->add(idTag);
+          mother->add(tfWrapper);
+          mother->add(pvWrapper);
+        }
       }
       break;
     }
-  default:
+    default:
     {
-      //Scintillator layers in Plug Sections 3 and 4      
+      //Scintillator layers in Plug Sections 3 and 4
 
       // checking shape of mother volume.
       double dy1Period = period->getYHalfLength1();
       double tanphi = (period->getYHalfLength2()-dy1Period)/period->getZHalfLength()/2.;
-      if(m_log->level()<=MSG::DEBUG)
-          if (fabs(tanphi-tan_delta_phi_2) > 1.e-5)
-              (*m_log) << MSG::DEBUG <<"Different tan_delta_phi_2 " << tanphi << " " << tan_delta_phi_2  <<endmsg;
-      
-      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-      {
-    idTag = new GeoIdentifierTag(j-CurrentScin);
+      if (m_log->level()<=MSG::DEBUG)
+        if (fabs(tanphi-tan_delta_phi_2) > 1.e-5)
+          (*m_log) << MSG::DEBUG <<"Different tan_delta_phi_2 " << tanphi << " " << tan_delta_phi_2  <<endmsg;
+
+      for (j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
+        idTag = new GeoIdentifierTag(j-CurrentScin);
         m_dbManager->SetCurrentScin(j);
 
         scintiHeight = m_dbManager->SCNTdr();
@@ -2432,66 +2372,67 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*&              mother,
         thicknessWrapper = (scintiThickness + 2*scintiWrapInZ)*Gaudi::Units::cm;
         if (m_switches.glue == 2)   thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness);
 
-        double thicknessEnvelope = (m_dbManager->TILBdzmodul()*Gaudi::Units::cm - thicknessWrapper); // along phi thickness is twice bigger than along Z 
+        double thicknessEnvelope = (m_dbManager->TILBdzmodul()*Gaudi::Units::cm - thicknessWrapper); // along phi thickness is twice bigger than along Z
         dy1Wrapper = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2. - scintiWrapInR)*tanphi)*Gaudi::Units::cm;
         dy2Wrapper = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2. + scintiWrapInR)*tanphi)*Gaudi::Units::cm;
 
-        if(m_log->level()<=MSG::DEBUG)
-            (*m_log) << MSG::DEBUG <<"Envelope thickness is " << thicknessEnvelope <<endmsg;
-        checking("Wrapper 4", true, 5, 
-            thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
+        if (m_log->level()<=MSG::DEBUG)
+          (*m_log) << MSG::DEBUG <<"Envelope thickness is " << thicknessEnvelope <<endmsg;
+        checking("Wrapper 4", true, 5,
+                 thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2);
 
-    wrapper = new GeoTrd(thicknessWrapper/2,
-                 thicknessWrapper/2,
-                 dy1Wrapper,
-                 dy2Wrapper,
-                 heightWrapper/2);
-    lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
-    pvWrapper = new GeoPhysVol(lvWrapper);
+        wrapper = new GeoTrd(thicknessWrapper/2,
+                             thicknessWrapper/2,
+                             dy1Wrapper,
+                             dy2Wrapper,
+                             heightWrapper/2);
+        lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir);
+        pvWrapper = new GeoPhysVol(lvWrapper);
 
         // create scintillator
         dy1Scintillator = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2.)*tanphi - scintiDeltaInPhi)*Gaudi::Units::cm;
         dy2Scintillator = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2.)*tanphi - scintiDeltaInPhi)*Gaudi::Units::cm;
 
-        checking("Scintillator 4", true, 6, 
-            scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm);
+        checking("Scintillator 4", true, 6,
+                 scintiThickness/2*Gaudi::Units::cm,scintiThickness/2*Gaudi::Units::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*Gaudi::Units::cm);
 
-    scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
-                  scintiThickness/2*Gaudi::Units::cm,
-                  dy1Scintillator,
-                  dy2Scintillator,
-                  scintiHeight/2*Gaudi::Units::cm);
-    lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
-    pvScintillator = new GeoPhysVol(lvScintillator);
+        scintillator = new GeoTrd(scintiThickness/2*Gaudi::Units::cm,
+                                  scintiThickness/2*Gaudi::Units::cm,
+                                  dy1Scintillator,
+                                  dy2Scintillator,
+                                  scintiHeight/2*Gaudi::Units::cm);
+        lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin);
+        pvScintillator = new GeoPhysVol(lvScintillator);
 
         // place scintillator in wrapper
-    tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
-    pvWrapper->add(idTag);
-    pvWrapper->add(tfScintillator);
-    pvWrapper->add(pvScintillator);
+        tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.));
+        pvWrapper->add(idTag);
+        pvWrapper->add(tfScintillator);
+        pvWrapper->add(pvScintillator);
 
         //place wrapper in period
         if (m_verbose) {
-          (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<0.0 <<endmsg; 
+          (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<0.0 <<endmsg;
           (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg;
         }
-        
-    tfWrapper = new GeoTransform(GeoTrf::Translate3D(0.,
-                            0.,
-                            (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
-    mother->add(idTag);
-    mother->add(tfWrapper);
-    mother->add(pvWrapper);
+
+        tfWrapper = new GeoTransform(GeoTrf::Translate3D(0.,
+                                                         0.,
+                                                         (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*Gaudi::Units::cm));
+        mother->add(idTag);
+        mother->add(tfWrapper);
+        mother->add(pvWrapper);
       }
       break;
     }
   }
 }
 
-// Checking geometry dimensions for all direction
+
+// Checking geometry dimensions for all directions
 
 void TileGeoSectionBuilder::checking(const std::string& Name, bool print, int level,
-                                     double X1, double X2, double Y1, double Y2, double Z) 
+                                     double X1, double X2, double Y1, double Y2, double Z)
 {
   double rless = .005; //5 [mkm]
   std::string Step[8] = {" ",
@@ -2502,35 +2443,35 @@ void TileGeoSectionBuilder::checking(const std::string& Name, bool print, int le
                          "      ",
                          "       ",
                          "        "};
-  if (print)
-   {
-     if(m_log->level()<=MSG::DEBUG)
-       (*m_log) << MSG::DEBUG <<Step[level]<<Name<<" -"<<level
-                << std::setiosflags(std::ios::fixed) << std::setw(9) << std::setprecision(4)
-        <<"  dX1,dX2= "<<X1<<" "<<X2
-                <<"  dY1,dY2= "<<Y1<<" "<<Y2
-                <<"  dZ= "<<Z
-                << std::resetiosflags(std::ios::fixed)
-        <<endmsg;
-   }
-  if (X1 < rless && X2 < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, X1 or X2<0 "<<endmsg;
-   }
-  if (Y1 < rless && Y2 < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Y1 or Y2<0 "<<endmsg;
-   }
-  if (Z < rless)
-   { (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Z<0   "<<endmsg;
-   }
+  if (print) {
+    if (m_log->level()<=MSG::DEBUG)
+      (*m_log) << MSG::DEBUG <<Step[level]<<Name<<" -"<<level
+               << std::setiosflags(std::ios::fixed) << std::setw(9) << std::setprecision(4)
+               <<"  dX1,dX2= "<<X1<<" "<<X2
+               <<"  dY1,dY2= "<<Y1<<" "<<Y2
+               <<"  dZ= "<<Z
+               << std::resetiosflags(std::ios::fixed)
+               <<endmsg;
+  }
+  if (X1 < rless && X2 < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, X1 or X2<0 "<<endmsg;
+  }
+  if (Y1 < rless && Y2 < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Y1 or Y2<0 "<<endmsg;
+  }
+  if (Z < rless) {
+    (*m_log) << MSG::WARNING <<" volume "<<Name<<" is empty, Z<0   "<<endmsg;
+  }
 }
 
+
 // -- Readout
 
 void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
-                       unsigned int          detector,
-                       int                   side,
-                       bool                  testbeam,
-                       bool                  addPlates,
+                                           unsigned int          detector,
+                                           int                   side,
+                                           bool                  testbeam,
+                                           bool                  addPlates,
                                            unsigned int          nphi,
                                            float                 zshift)
 {
@@ -2546,13 +2487,10 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
   float phi_min, phi_max;
   float dphi = 4*acos(0.)/64;
 
-  if(testbeam) // put modules symmetricaly 
-  {
+  if (testbeam) { // put modules symmetricaly
     phi_max = nphi*dphi/2;
     phi_min = -phi_max;
-  }
-  else // put edge of very first module on horizontal plane
-  {
+  } else { // put edge of very first module on horizontal plane
     phi_min = 0.;
     phi_max = nphi * dphi;
   }
@@ -2579,9 +2517,9 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
     rGap[1] += 40*Gaudi::Units::mm/2;
     drGap[1] += 40*Gaudi::Units::mm;
   }
-    
+
   int indHardcoded = 0;
-  
+
   // --------------------------------
 
   // -- initialize all necessary arrays with 0.
@@ -2602,24 +2540,19 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
 
   // iterate over all samples of the region and fill corresponding eta values.
   // this works for Central and Extended Barrel regions only!
-  if (detector==TILE_REGION_CENTRAL || detector ==  TILE_REGION_EXTENDED)
-  {
+  if (detector==TILE_REGION_CENTRAL || detector ==  TILE_REGION_EXTENDED) {
     // -- Calculate number of samples for the region
     // find first TICL for the given detector
-    if(m_dbManager->SetFirstTiclInDet(detector))
-    {
+    if (m_dbManager->SetFirstTiclInDet(detector)) {
       // for the central barrel region take care of the side
-      if(detector == TILE_REGION_CENTRAL)
-      {
-    while(sign_eta * m_dbManager->TICLncell() < 0)
-    {
-      if (!(m_dbManager->SetNextTiclInDet()))
-      {
-        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillDescriptor: No TICL structures for detector: "
+      if (detector == TILE_REGION_CENTRAL) {
+        while (sign_eta * m_dbManager->TICLncell() < 0) {
+          if (!(m_dbManager->SetNextTiclInDet())) {
+            (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillDescriptor: No TICL structures for detector: "
                      << detector << " and side: " << sign_eta << endmsg;
-        return;
-      }
-    }
+            return;
+          }
+        }
       }
 
       samples.push_back((int)m_dbManager->TICLsample());
@@ -2627,42 +2560,38 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
       lastScin.push_back((int)m_dbManager->TICLlastrow());
 
       // iterate over all other TICLs in the detector
-      while(m_dbManager->SetNextTiclInDet())
-      {
-    if(!((detector == TILE_REGION_CENTRAL)&&(sign_eta * m_dbManager->TICLncell() < 0)))
-    {
-      // find if the sample of the cell is already in the samples vector
-      // and if not then add it
-      currentSample = (int)m_dbManager->TICLsample();
-      for(index=0; index<samples.size(); index++)
-        if(currentSample==samples[index]) break;
-      if(index==samples.size()) {
-        samples.push_back(currentSample);
-        firstScin.push_back((int)m_dbManager->TICLfirstrow());
-        lastScin.push_back((int)m_dbManager->TICLlastrow());
-      }
-    }
+      while (m_dbManager->SetNextTiclInDet()) {
+        if (!((detector == TILE_REGION_CENTRAL)&&(sign_eta * m_dbManager->TICLncell() < 0))) {
+          // find if the sample of the cell is already in the samples vector
+          // and if not then add it
+          currentSample = (int)m_dbManager->TICLsample();
+          for (index=0; index<samples.size(); index++)
+            if (currentSample==samples[index]) break;
+          if (index==samples.size()) {
+            samples.push_back(currentSample);
+            firstScin.push_back((int)m_dbManager->TICLfirstrow());
+            lastScin.push_back((int)m_dbManager->TICLlastrow());
+          }
+        }
       }
-    }
-    else
-    {
+
+    } else {
       (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::fillDescriptor: No TICL structures for the detector: "
                << detector << endmsg;
       return;
     }
 
     nsamp = 0;
-    for(index=0; index<samples.size(); index++, indHardcoded++)
-    {
+    for (index=0; index<samples.size(); index++, indHardcoded++) {
       etaIndex = samples[index];
-      if(etaIndex > nsamp) nsamp = etaIndex;
+      if (etaIndex > nsamp) nsamp = etaIndex;
       calculateEta(detector,
-           side,
-           etaIndex,
-           eta_min[etaIndex-1],      // In TICL structures samples are numbered from 1
-           eta_max[etaIndex-1],
-           deta[etaIndex-1],
-           neta[etaIndex-1]);
+                   side,
+                   etaIndex,
+                   eta_min[etaIndex-1],      // In TICL structures samples are numbered from 1
+                   eta_max[etaIndex-1],
+                   deta[etaIndex-1],
+                   neta[etaIndex-1]);
       calculateZ(detector,
                  side,
                  etaIndex,
@@ -2671,15 +2600,12 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
                  dz[etaIndex-1]);
 
       // Fill in the hardcoded values
-      if(detector == TILE_REGION_CENTRAL)
-      {
-         rcenter[etaIndex-1] = rBarrel[indHardcoded];
-         dr[etaIndex-1] = drBarrel[indHardcoded];
-      }
-      else
-      {
-         rcenter[etaIndex-1] = rExtended[indHardcoded];
-         dr[etaIndex-1] = drExtended[indHardcoded];       
+      if (detector == TILE_REGION_CENTRAL) {
+        rcenter[etaIndex-1] = rBarrel[indHardcoded];
+        dr[etaIndex-1] = drBarrel[indHardcoded];
+      } else {
+        rcenter[etaIndex-1] = rExtended[indHardcoded];
+        dr[etaIndex-1] = drExtended[indHardcoded];
       }
       calculateR(detector,
                  etaIndex,
@@ -2689,9 +2615,8 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
                  rcenter[etaIndex-1],
                  dr[etaIndex-1]);
     }
-  }
-  else if(detector == TILE_REGION_GAP)
-  {
+
+  } else if (detector == TILE_REGION_GAP) {
     // We are in GAP detectors (detector = 3 & 4)
     // Loop over all TICL structures of these detectors
     // Determine eta_min, eta_max, deta
@@ -2701,31 +2626,30 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
     //
 
     nsamp = 0;
-    for(unsigned int det = detector; det < detector+2; det++)
-      for(int status=m_dbManager->SetFirstTiclInDet(det); status>0; status=m_dbManager->SetNextTiclInDet())
-      {
+    for (unsigned int det = detector; det < detector+2; det++)
+      for (int status=m_dbManager->SetFirstTiclInDet(det); status>0; status=m_dbManager->SetNextTiclInDet()) {
         if ((int)m_dbManager->TICLtower()>16) continue;
-    if(det==detector)
-      etaIndex = (int)m_dbManager->TICLsample();
-    else
-      etaIndex = (int)m_dbManager->TICLtower();
-    if(etaIndex > nsamp) nsamp = etaIndex;
+        if (det==detector)
+          etaIndex = (int)m_dbManager->TICLsample();
+        else
+          etaIndex = (int)m_dbManager->TICLtower();
+        if (etaIndex > nsamp) nsamp = etaIndex;
         // simple calculations of eta for one cell
-    neta[etaIndex-1] = 1;
-    deta[etaIndex-1] = m_dbManager->TICLdeta();
-    eta_min[etaIndex-1] = m_dbManager->TICLeta() - m_dbManager->TICLdeta()/2;
-    eta_max[etaIndex-1] = m_dbManager->TICLeta() + m_dbManager->TICLdeta()/2;
+        neta[etaIndex-1] = 1;
+        deta[etaIndex-1] = m_dbManager->TICLdeta();
+        eta_min[etaIndex-1] = m_dbManager->TICLeta() - m_dbManager->TICLdeta()/2;
+        eta_max[etaIndex-1] = m_dbManager->TICLeta() + m_dbManager->TICLdeta()/2;
         calculateZ(detector,
                    side,
                    etaIndex,
                    zshift,
                    zcenter[etaIndex-1],
                    dz[etaIndex-1]);
- 
-    // Fill in the hardcoded values
-    rcenter[etaIndex-1] = rGap[indHardcoded];
-    dr[etaIndex-1] = drGap[indHardcoded];
-    indHardcoded++;
+
+        // Fill in the hardcoded values
+        rcenter[etaIndex-1] = rGap[indHardcoded];
+        dr[etaIndex-1] = drGap[indHardcoded];
+        indHardcoded++;
         calculateR(detector,
                    etaIndex,
                    addPlates,
@@ -2733,15 +2657,15 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
                    m_dbManager->TICLlastrow(),
                    rcenter[etaIndex-1],
                    dr[etaIndex-1]);
-    }
-  }
-  else // MBSCIN case
-       // - should not arrive to this place !!!
-       // TileDetDescrManager do not expect MBSCIN at all
-       // it is kept here just in case we'll want to describe
-       // them as a separate region
-       //
-  {
+      }
+
+  } else {
+    // MBSCIN case
+    // - should not arrive to this place !!!
+    // TileDetDescrManager do not expect MBSCIN at all
+    // it is kept here just in case we'll want to describe
+    // them as a separate region
+    //
     assert (detector <= TILE_REGION_GAP);
 
     // diameter: 276 - 740 - 1964
@@ -2767,22 +2691,22 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
     phi_min = -dphi/2;
     phi_max = nphi * dphi + phi_min;
   }
-  
+
   descriptor->set(&*eta_min.begin(),
-          &*eta_max.begin(),
-          &*deta.begin(),
-          phi_min,
-          phi_max,
-          dphi,
-          zshift,
-          &*rcenter.begin(),
-          &*dr.begin(),
-          &*zcenter.begin(),
-          &*dz.begin(),
-          nsamp,
-          &*neta.begin(),
-          nphi,
-          sign_eta);
+                  &*eta_max.begin(),
+                  &*deta.begin(),
+                  phi_min,
+                  phi_max,
+                  dphi,
+                  zshift,
+                  &*rcenter.begin(),
+                  &*dr.begin(),
+                  &*zcenter.begin(),
+                  &*dz.begin(),
+                  nsamp,
+                  &*neta.begin(),
+                  nphi,
+                  sign_eta);
 
 
   // debug print
@@ -2793,9 +2717,9 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*&   descriptor,
 
 
 /**
- Method creating one TileCellDim object per particular type of Tile Cell
- These objects can be accessed later through TileDetDescManager 
- providing Cell Identifier with module field = 0
+   Method creating one TileCellDim object per particular type of Tile Cell
+   These objects can be accessed later through TileDetDescManager
+   providing Cell Identifier with module field = 0
 */
 
 void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
@@ -2805,7 +2729,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
                                            float                 zShiftNeg)
 {
   MLOG(DEBUG) << "TileGeoSectionBuilder::computeCellDim for detector="
-             << detector << endmsg;
+              << detector << endmsg;
 
   /** Vectors holding rMin, rMax, zMin, zMax for each tilerow of the cell */
   std::vector<double> rmins;
@@ -2831,26 +2755,22 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
   bool isSquare;
   float minTilesInRow;
   TileCellDim *cellDim =0, *cellDimNeg =0;
-  // -------- Auxiliary variables ---------- 
+  // -------- Auxiliary variables ----------
 
   MLOG(DEBUG) << "Auxiliary variables..." << endmsg;
 
-  // Barrel/Extended barrel regions 
-  if(detector != TILE_REGION_GAP ) 
-  {
+  // Barrel/Extended barrel regions
+  if (detector != TILE_REGION_GAP ) {
     MLOG(DEBUG) << "Barrel/ExtendedBarrel regions..." << endmsg;
-    
-    if(detector == TILE_REGION_CENTRAL)
-    {
+
+    if (detector == TILE_REGION_CENTRAL) {
       m_dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
       dzPeriod = m_barrelPeriodThickness;
-    }
-    else
-    {
+    } else {
       m_dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
       dzPeriod = m_extendedPeriodThickness;
     }
-    MLOG(DEBUG) << "dzPeriod: " << dzPeriod << endmsg;
+    MLOG(DEBUG) << "dzPeriod: " << dzPeriod << "\n" << endmsg;
 
 
     rMin = m_dbManager->TILBrmin() *Gaudi::Units::cm;
@@ -2862,18 +2782,18 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
         Initial values for zMin - leftmost edge
         Initial values for zMax = 0
     */
-    for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-    {
+    for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
       m_dbManager->SetCurrentScin(j);
 
       if ( (j == CurrentScin + m_dbManager->TILBnscin() - 1) && addPlates ) {
-        // use end of the master as end of last cell 
-        rMax = m_dbManager->TILBrmax()*Gaudi::Units::cm; 
+        // use end of the master as end of last cell
+        rMax = m_dbManager->TILBrmax()*Gaudi::Units::cm;
+
       } else {
         double tileSize=m_dbManager->SCNTdr();
         if (m_dbManager->SCNTdrw() > 0)
-          // round to integer for all tiles except gap scin 
-          tileSize=round(tileSize); 
+          // round to integer for all tiles except gap scin
+          tileSize=round(tileSize);
         rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*Gaudi::Units::cm;
       }
 
@@ -2881,225 +2801,215 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
       rmaxs.push_back(rMax);
       rMin = rMax;
 
-      if(detector == TILE_REGION_CENTRAL) {
-    zmins.push_back((-m_dbManager->TILBdzmast()/2 - m_barrelGlue*(1./Gaudi::Units::cm) 
+      if (detector == TILE_REGION_CENTRAL) {
+        zmins.push_back((-m_dbManager->TILBdzmast()/2 - m_barrelGlue*(1./Gaudi::Units::cm)
                          -(m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend1()))*Gaudi::Units::cm);
         zEnd1Lim = (-m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1())*Gaudi::Units::cm;
         zEnd2Lim = ( m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2())*Gaudi::Units::cm;
         zEnd1 = (-m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
         zEnd2 = ( m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
-      }
-      else {
-    zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*Gaudi::Units::cm);
+
+      } else {
+        zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*Gaudi::Units::cm);
         zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*Gaudi::Units::cm;
         zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*Gaudi::Units::cm;
         zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
         zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
       }
-      
+
       // init all zmaxs to 0.
       zmaxs.push_back(0.);
     }
 
-    // Iterate through region cells and fill in the Samples vector 
-    if(m_dbManager->SetFirstTiclInDet(detector))
-    {
+    // Iterate through region cells and fill in the Samples vector
+    if (m_dbManager->SetFirstTiclInDet(detector)) {
       samples.push_back((int)m_dbManager->TICLsample());
 
       // iterate over all other TICLs in the detector
-      while(m_dbManager->SetNextTiclInDet())
-      {
-    /// find if the sample of the cell is already in the samples vector and if not then add it 
-    currentSample = (int)m_dbManager->TICLsample();
-    for(index=0; index<samples.size(); index++)
-      if(currentSample==samples[index]) break;
-    if(index==samples.size()) samples.push_back(currentSample);
+      while (m_dbManager->SetNextTiclInDet()) {
+        /// find if the sample of the cell is already in the samples vector and if not then add it
+        currentSample = (int)m_dbManager->TICLsample();
+        for (index=0; index<samples.size(); index++)
+          if (currentSample==samples[index]) break;
+        if (index==samples.size()) samples.push_back(currentSample);
       }
-    }
-    else
-    {
+
+    } else {
       (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::computeCellDim: No TICL structures for the detector: "
                << detector << endmsg;
       return;
     }
 
     /** Iterate through cells by samples */
-    for(index=0; index<samples.size(); index++)
-    {
+    for (index=0; index<samples.size(); index++) {
       currentSample = samples[index];
 
-      if(m_dbManager->SetFirstTiclInDetSamp(detector, currentSample))
-      {
-    nFirstRow = (int)m_dbManager->TICLfirstrow();
-        // BC sample 
-    if(m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL) 
-      nLastRow = nFirstRow + 2;
-    else
-      nLastRow = (int)m_dbManager->TICLlastrow();
-    
-    nRows = nLastRow - nFirstRow + 1;
+      if (m_dbManager->SetFirstTiclInDetSamp(detector, currentSample)) {
+        nFirstRow = (int)m_dbManager->TICLfirstrow();
+        // BC sample
+        if (m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL)
+          nLastRow = nFirstRow + 2;
+        else
+          nLastRow = (int)m_dbManager->TICLlastrow();
+
+        nRows = nLastRow - nFirstRow + 1;
+
+        do {
+          isSquare = true;
+          minTilesInRow = m_dbManager->TICLntilesrow(0);
+          for (unsigned int jj=1; jj<nRows; jj++) {
+            if (m_dbManager->TICLntilesrow(jj)!=minTilesInRow)
+              isSquare = false;
+            if (m_dbManager->TICLntilesrow(jj)<minTilesInRow)
+              minTilesInRow = m_dbManager->TICLntilesrow(jj);
+          }
 
-    do
-    {
-      isSquare = true;
-      minTilesInRow = m_dbManager->TICLntilesrow(0);
-      for(unsigned int jj=1; jj<nRows; jj++)
-      {
-        if(m_dbManager->TICLntilesrow(jj)!=minTilesInRow)
-          isSquare = false;
-        if(m_dbManager->TICLntilesrow(jj)<minTilesInRow)
-          minTilesInRow = m_dbManager->TICLntilesrow(jj);
-      }
+          if (isSquare)
+            dzCell = minTilesInRow * dzPeriod;
+          else
+            dzCell = (minTilesInRow + 0.5) * dzPeriod;
 
-      if(isSquare)
-        dzCell = minTilesInRow * dzPeriod;
-      else
-        dzCell = (minTilesInRow + 0.5) * dzPeriod;
+          MLOG(DEBUG) << "dzCell: " << dzCell << "  minTilesInRow: " << minTilesInRow << "  isSquare: " << isSquare << "  dzPeriod: " << dzPeriod << endmsg;
 
-      MLOG(DEBUG) << "dzCell: " << dzCell << ", minTilesInRow:" << minTilesInRow << ", dzPeriod:" << dzPeriod << endmsg;
-      
-      for(unsigned int jj=nFirstRow; jj<=nLastRow; jj++)
-        zmaxs[jj-1] = zmins[jj-1] + dzCell;
+          for (unsigned int jj=nFirstRow; jj<=nLastRow; jj++)
+            zmaxs[jj-1] = zmins[jj-1] + dzCell;
 
 
-      /** -------- BC ---------- */
-      if(m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL)
-      {
-        isSquare = true;
-        int firstC = nLastRow + 1;
-        nLastRow +=3;
-
-        minTilesInRow = m_dbManager->TICLntilesrow(firstC-nFirstRow);
-
-        for(unsigned int jj=firstC-nFirstRow+1; jj<=nLastRow-nFirstRow; jj++)
-        {
-          if(m_dbManager->TICLntilesrow(jj)!=minTilesInRow)
-        isSquare = false;
-          if(m_dbManager->TICLntilesrow(jj)<minTilesInRow)
-        minTilesInRow = m_dbManager->TICLntilesrow(jj);
-        }
+          /** -------- BC ---------- */
+          bool BCcell = (m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL);
+          if (BCcell) {
+            isSquare = true;
+            int firstC = nLastRow + 1;
+            nLastRow +=3;
 
-        if(isSquare)
-          dzCell = minTilesInRow*dzPeriod;
-        else
-          dzCell = (minTilesInRow + 0.5)*dzPeriod;
+            minTilesInRow = m_dbManager->TICLntilesrow(firstC-nFirstRow);
 
+            for (unsigned int jj=firstC-nFirstRow+1; jj<=nLastRow-nFirstRow; jj++) {
+              if (m_dbManager->TICLntilesrow(jj)!=minTilesInRow)
+                isSquare = false;
+              if (m_dbManager->TICLntilesrow(jj)<minTilesInRow)
+                minTilesInRow = m_dbManager->TICLntilesrow(jj);
+            }
 
-        MLOG(DEBUG) << "BC - dzCell: " << dzCell << endmsg;
-        
-        for(unsigned int jj=firstC; jj<=nLastRow; jj++)
-          zmaxs[jj-1] = zmins[jj-1] + dzCell;
-      }
+            if (isSquare)
+              dzCell = minTilesInRow*dzPeriod;
+            else
+              dzCell = (minTilesInRow + 0.5)*dzPeriod;
 
-      /** Create and fill in TileCellDim objects, one for Central Barrel two for extended (+/- side) */
-      if(m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL)
-        cellDim = new TileCellDim(2*nRows);
-      else
-        cellDim = new TileCellDim(nRows);
 
-      if(detector != TILE_REGION_CENTRAL)
-        cellDimNeg = new TileCellDim(nRows);
+            MLOG(DEBUG) << "BC - dzCell: " << dzCell << "  minTilesInRow: " << minTilesInRow << "  isSquare: " << isSquare << endmsg;
 
-      for(unsigned int jj=nFirstRow; jj<=nLastRow; jj++)
-      {
-          double Zmin=zmins[jj-1];
-          double Zmax=zmaxs[jj-1];
-          if (addPlates) {
+            for (unsigned int jj=firstC; jj<=nLastRow; jj++)
+              zmaxs[jj-1] = zmins[jj-1] + dzCell;
+          }
+
+          /** Create and fill in TileCellDim objects, one for Central Barrel two for extended (+/- side) */
+          if (m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL)
+            cellDim = new TileCellDim(2*nRows);
+          else
+            cellDim = new TileCellDim(nRows);
+
+          if (detector != TILE_REGION_CENTRAL)
+            cellDimNeg = new TileCellDim(nRows);
+
+          for (unsigned int jj=nFirstRow; jj<=nLastRow; jj++) {
+            double Zmin=zmins[jj-1];
+            double Zmax=zmaxs[jj-1];
+            if (addPlates) {
               if (Zmin<zEnd1Lim) Zmin=zEnd1;
               else if (Zmin>zEnd2Lim) Zmin=zEnd2;
               if (Zmax<zEnd1Lim) Zmax=zEnd1;
               else if (Zmax>zEnd2Lim) Zmax=zEnd2;
-          }
-
-          MLOG(DEBUG) << "Zmax: " << Zmax << ", " << "zShiftPos: " << zShiftPos << endmsg;
+            }
 
-          cellDim->addRMin(rmins[jj-1]);
-          cellDim->addRMax(rmaxs[jj-1]);
-          cellDim->addZMin(Zmin+zShiftPos);
-          cellDim->addZMax(Zmax+zShiftPos);
+            cellDim->addRMin(rmins[jj-1]);
+            cellDim->addRMax(rmaxs[jj-1]);
+            cellDim->addZMin(Zmin+zShiftPos);
+            cellDim->addZMax(Zmax+zShiftPos);
 
-          if(detector != TILE_REGION_CENTRAL)
-          {
+            if (detector != TILE_REGION_CENTRAL) {
               cellDimNeg->addRMin(rmins[jj-1]);
               cellDimNeg->addRMax(rmaxs[jj-1]);
               cellDimNeg->addZMin(-Zmax-zShiftNeg);
               cellDimNeg->addZMax(-Zmin-zShiftNeg);
+              if (jj==nFirstRow || (BCcell && jj==nLastRow))
+                MLOG(DEBUG) << "Zmin: " << Zmin << "  Zmax: " << Zmax << "  zShiftPos: " << zShiftPos << "  zShiftNeg: " << zShiftNeg << endmsg;
+
+            } else {
+              if (jj==nFirstRow || (BCcell && jj==nLastRow))
+                MLOG(DEBUG) << "Zmin: " << Zmin << "  Zmax: " << Zmax << "  zShift: " << zShiftPos << endmsg;
+            }
           }
-      }
 
-      for(unsigned int jj=nFirstRow; jj<=nLastRow; jj++)
-        zmins[jj-1] = zmaxs[jj-1];
-      
-      if(m_dbManager->TICLncell()<0)
-        nSide = -1;
-      else
-        nSide = 1;
-      
-      nTower = abs((int)m_dbManager->TICLtower())-1;
-      nSample = currentSample - 1;
+          for (unsigned int jj=nFirstRow; jj<=nLastRow; jj++)
+            zmins[jj-1] = zmaxs[jj-1];
 
-      if(detector == TILE_REGION_CENTRAL) {
+          if (m_dbManager->TICLncell()<0)
+            nSide = -1;
+          else
+            nSide = 1;
+
+          nTower = abs((int)m_dbManager->TICLtower())-1;
+          nSample = currentSample - 1;
+
+          if (detector == TILE_REGION_CENTRAL) {
             cellDim->computeVolume();
-        manager->add_cellDim(detector, nSide, nTower, nSample, cellDim);
-      } else
-      {
+            manager->add_cellDim(detector, nSide, nTower, nSample, cellDim);
+
+          } else {
             cellDim->computeVolume();
             cellDimNeg->computeVolume();
-        manager->add_cellDim(detector, 1, nTower, nSample, cellDim);
-        manager->add_cellDim(detector, -1, nTower, nSample, cellDimNeg);
-      }
+            manager->add_cellDim(detector, 1, nTower, nSample, cellDim);
+            manager->add_cellDim(detector, -1, nTower, nSample, cellDimNeg);
+          }
 
-      if(m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL) nLastRow -=3;
+          if (m_dbManager->TICLsample()==2 && detector == TILE_REGION_CENTRAL) nLastRow -=3;
 
-      /* -------- DEBUG printouts -------------- */
+          /* -------- DEBUG printouts -------------- */
 
           if (m_verbose) {
             std::cout << std::setiosflags(std::ios::fixed)
                       << std::setw(9) << std::setprecision(2);
             std::cout << "\n **** Cell dimensions computed for : ";
-            std::cout << "(" << detector << ", " 
+            std::cout << "(" << detector << ", "
                       << nSide << ", "
                       << nTower << ", "
                       << nSample << ")\n";
             std::cout << " >> CellDim contains " << cellDim->getNRows() << " rows\n";
-            for(unsigned int jj=0; jj<cellDim->getNRows(); jj++)
-              std::cout << cellDim->getRMin(jj) << " " 
+            for (unsigned int jj=0; jj<cellDim->getNRows(); jj++)
+              std::cout << cellDim->getRMin(jj) << " "
                         << cellDim->getRMax(jj) << " "
                         << cellDim->getZMin(jj) << " "
                         << cellDim->getZMax(jj) << "\n";
             std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n";
 
-            if(detector != TILE_REGION_CENTRAL)
-            {
+            if (detector != TILE_REGION_CENTRAL) {
               std::cout << " >> CellDimNeg contains " << cellDimNeg->getNRows() << " rows\n";
-              for(unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++)
-                std::cout << cellDimNeg->getRMin(jj) << " " 
+              for (unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++)
+                std::cout << cellDimNeg->getRMin(jj) << " "
                           << cellDimNeg->getRMax(jj) << " "
                           << cellDimNeg->getZMin(jj) << " "
                           << cellDimNeg->getZMax(jj) << "\n";
               std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n";
             }
-            std::cout << std::resetiosflags(std::ios::fixed);
+            std::cout << "\n" << std::resetiosflags(std::ios::fixed);
           }
-      /* ------------------------------------------------------------------------------------------------ */      
-    }
-    while(m_dbManager->SetNextTiclInDetSamp());
-      }
-      else
-      {
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::computeCellDim: No TICL structures in detector: "
+          /* ------------------------------------------------------------------------------------------------ */
+        }
+        while (m_dbManager->SetNextTiclInDetSamp());
+
+      } else {
+        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::computeCellDim: No TICL structures in detector: "
                  << detector << " for sample: " << nSample << endmsg;
-    return;
+        return;
       }
     }
-  }
-  else // ITC/GAP/CRACK
-  {
-    MLOG(DEBUG) << "ITC/GAP/CRACK regions..." << endmsg;
+
+  } else { // ITC/GAP/CRACK
+    MLOG(DEBUG) << "ITC/GAP/CRACK regions...\n" << endmsg;
     nSide = 1;
     // Deal with ITC
-    for(unsigned int sec=0; sec<2; sec++)    // PLUG1 & PLUG2
-    { 
+    for (unsigned int sec=0; sec<2; sec++) { // PLUG1 & PLUG2
       rmins.clear();
       rmaxs.clear();
       zmins.clear();
@@ -3107,10 +3017,9 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
 
       m_dbManager->SetFirstTiclInDet(detector);
 
-      if(sec)
+      if (sec) {
         m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
-      else
-      {
+      } else {
         m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
         m_dbManager->SetNextTiclInDet();
       }
@@ -3119,28 +3028,28 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
       if (addPlates) rMin -= m_dbManager->TILBdrfront() *Gaudi::Units::cm;
       CurrentScin = 100*m_dbManager->TILBsection() + 1;
 
-      for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-      {
+      for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
         m_dbManager->SetCurrentScin(j);
 
         if ( (j == CurrentScin + m_dbManager->TILBnscin() - 1)  && addPlates ) {
           /** use end of the master as end of last cell */
-          rMax = m_dbManager->TILBrmax()*Gaudi::Units::cm; 
+          rMax = m_dbManager->TILBrmax()*Gaudi::Units::cm;
           /** subtract from C10 thickness of D4 front plate  */
           if (addPlates && sec)
             rMax -= m_dbManager->TILBdrfront()*Gaudi::Units::cm;
+
         } else {
           double tileSize=m_dbManager->SCNTdr();
           if (m_dbManager->SCNTdrw() > 0)
             /** round to integer for all tiles except gap scin */
-            tileSize=round(tileSize); 
+            tileSize=round(tileSize);
           rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*Gaudi::Units::cm;
         }
 
         rmins.push_back(rMin);
         rmaxs.push_back(rMax);
         rMin = rMax;
-        
+
         zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*Gaudi::Units::cm;
         zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*Gaudi::Units::cm;
         zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm;
@@ -3157,15 +3066,14 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
 
       // Create TileCellDim objects
       if (m_dbManager->TILBnscin() < 0) {
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::computeCellDim: Bad return from TILBnscin" << endmsg;
-    return;
+        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::computeCellDim: Bad return from TILBnscin" << endmsg;
+        return;
       }
       unsigned int nscin = static_cast<unsigned int>(m_dbManager->TILBnscin());
       cellDim = new TileCellDim(nscin);
       cellDimNeg = new TileCellDim(nscin);
 
-      for(unsigned int jj=0; jj<nscin; jj++)
-      {
+      for (unsigned int jj=0; jj<nscin; jj++) {
         cellDim->addRMin(rmins[jj]);
         cellDim->addRMax(rmaxs[jj]);
         cellDim->addZMin(zmins[jj]+zShiftPos);
@@ -3176,11 +3084,11 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
         cellDimNeg->addZMin(-zmaxs[jj]-zShiftNeg);
         cellDimNeg->addZMax(-zmins[jj]-zShiftNeg);
       }
-
+      MLOG(DEBUG) << "Zmin: " << zmins[0] << "  Zmax: " << zmaxs[0] << "  zShiftPos: " << zShiftPos << "  zShiftNeg: " << zShiftNeg << endmsg;
 
       nTower = (int)m_dbManager->TICLtower()-1;
       nSample = (int)m_dbManager->TICLsample()-1;
-    
+
       cellDim->computeVolume();
       cellDimNeg->computeVolume();
       manager->add_cellDim(detector, 1, nTower, nSample, cellDim);
@@ -3191,140 +3099,137 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager,
         std::cout << std::setiosflags(std::ios::fixed)
                   << std::setw(9) << std::setprecision(2);
         std::cout << "\n **** Cell dimension computed for : ";
-        std::cout << "(" << detector << ", " 
+        std::cout << "(" << detector << ", "
                   << nSide << ", "
                   << nTower << ", "
                   << nSample << ")\n";
         std::cout << " >> CellDim contains " << cellDim->getNRows() << " rows\n";
-        for(unsigned int jj=0; jj<cellDim->getNRows(); jj++)
-          std::cout << cellDim->getRMin(jj) << " " 
+        for (unsigned int jj=0; jj<cellDim->getNRows(); jj++)
+          std::cout << cellDim->getRMin(jj) << " "
                     << cellDim->getRMax(jj) << " "
                     << cellDim->getZMin(jj) << " "
                     << cellDim->getZMax(jj) << "\n";
         std::cout<< " >> Cell Volume is " << cellDim->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n";
-    
+
         std::cout << " >> CellDimNeg contains " << cellDimNeg->getNRows() << " rows\n";
-        for(unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++)
-          std::cout << cellDimNeg->getRMin(jj) << " " 
+        for (unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++)
+          std::cout << cellDimNeg->getRMin(jj) << " "
                     << cellDimNeg->getRMax(jj) << " "
                     << cellDimNeg->getZMin(jj) << " "
                     << cellDimNeg->getZMax(jj) << "\n";
         std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n";
-        std::cout << std::resetiosflags(std::ios::fixed);
+        std::cout << "\n" << std::resetiosflags(std::ios::fixed);
       }
 /* -------------------------------------------- */
     }
 
-    for(unsigned int sec=0; sec<2; sec++)    // GAP & CRACK
-    {
+    for (unsigned int sec=0; sec<2; sec++) { // GAP & CRACK
       rmins.clear();
       rmaxs.clear();
       zmins.clear();
       zmaxs.clear();
 
-      if(sec)
-      {
-    m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
-    CurrentScin = 100*m_dbManager->TILBsection()+1;
-      }
-      else
-      {
-    m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
-    CurrentScin = 100*m_dbManager->TILBsection()+1;
+      if (sec) {
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
+        CurrentScin = 100*m_dbManager->TILBsection()+1;
+      } else {
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
+        CurrentScin = 100*m_dbManager->TILBsection()+1;
       }
 
       double rMIN = m_dbManager->TILBrmin()*Gaudi::Units::cm;
       double rMAX = m_dbManager->TILBrmax()*Gaudi::Units::cm;
 
       // Initialize rMin, rMax, zMin, zMax vectors
-      for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++)
-      {
-    m_dbManager->SetCurrentScin(j);
+      for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) {
+        m_dbManager->SetCurrentScin(j);
 
-    double rCenter = rMIN + m_dbManager->SCNTrc()*Gaudi::Units::cm;
-    double dR2 = (0.5 * m_dbManager->SCNTdr() + m_dbManager->SCNTdrw()) *Gaudi::Units::cm;
-    if (addPlates) {
-      if (j==CurrentScin) { // cells E2, E4 - use rMin of mother volume, calculate rMax
-        rMin = rMIN;
-        rMax = rCenter + dR2;
-      } else { // cells E1, E3 - use rMax of mother volume, calculate rMin
-        rMin = rCenter - dR2;
-        rMax = rMAX;
-      }
-    } else {
-      rMin = rCenter - dR2;
-      rMax = rCenter + dR2;
-    }
-    
-    rmins.push_back(rMin);
-    rmaxs.push_back(rMax);
-    
-    zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm);
-    zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm);
+        double rCenter = rMIN + m_dbManager->SCNTrc()*Gaudi::Units::cm;
+        double dR2 = (0.5 * m_dbManager->SCNTdr() + m_dbManager->SCNTdrw()) *Gaudi::Units::cm;
+        if (addPlates) {
+          if (j==CurrentScin) { // cells E2, E4 - use rMin of mother volume, calculate rMax
+            rMin = rMIN;
+            rMax = rCenter + dR2;
+          } else { // cells E1, E3 - use rMax of mother volume, calculate rMin
+            rMin = rCenter - dR2;
+            rMax = rMAX;
+          }
+        } else {
+          rMin = rCenter - dR2;
+          rMax = rCenter + dR2;
+        }
+
+        rmins.push_back(rMin);
+        rmaxs.push_back(rMax);
+
+        zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm);
+        zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*Gaudi::Units::cm);
       }
 
       // Iterate through scintillators and create corresponding TileCellDim objects (+/-)
-      for (unsigned int jj = 0; jj < (unsigned int)m_dbManager->TILBnscin(); jj++)
-      {
-    if(sec==0 && jj==0)
-      m_dbManager->SetFirstTiclInDet(detector+1);
-    else
-      m_dbManager->SetNextTiclInDet();
+      for (unsigned int jj = 0; jj < (unsigned int)m_dbManager->TILBnscin(); jj++) {
+        if (sec==0 && jj==0)
+          m_dbManager->SetFirstTiclInDet(detector+1);
+        else
+          m_dbManager->SetNextTiclInDet();
         if ((int)m_dbManager->TICLtower()>16) continue;
 
-    cellDim = new TileCellDim(1);
-    cellDimNeg = new TileCellDim(1);
+        cellDim = new TileCellDim(1);
+        cellDimNeg = new TileCellDim(1);
 
-    cellDim->addRMin(rmins[m_dbManager->TILBnscin() - jj - 1]);
-    cellDim->addRMax(rmaxs[m_dbManager->TILBnscin() - jj - 1]);
-    cellDim->addZMin(zmins[m_dbManager->TILBnscin() - jj - 1]+zShiftPos);
-    cellDim->addZMax(zmaxs[m_dbManager->TILBnscin() - jj - 1]+zShiftPos);
+        cellDim->addRMin(rmins[m_dbManager->TILBnscin() - jj - 1]);
+        cellDim->addRMax(rmaxs[m_dbManager->TILBnscin() - jj - 1]);
+        cellDim->addZMin(zmins[m_dbManager->TILBnscin() - jj - 1]+zShiftPos);
+        cellDim->addZMax(zmaxs[m_dbManager->TILBnscin() - jj - 1]+zShiftPos);
 
-    cellDimNeg->addRMin(rmins[m_dbManager->TILBnscin() - jj - 1]);
-    cellDimNeg->addRMax(rmaxs[m_dbManager->TILBnscin() - jj - 1]);
-    cellDimNeg->addZMin(-zmaxs[m_dbManager->TILBnscin() - jj - 1]-zShiftNeg);
-    cellDimNeg->addZMax(-zmins[m_dbManager->TILBnscin() - jj - 1]-zShiftNeg);
+        cellDimNeg->addRMin(rmins[m_dbManager->TILBnscin() - jj - 1]);
+        cellDimNeg->addRMax(rmaxs[m_dbManager->TILBnscin() - jj - 1]);
+        cellDimNeg->addZMin(-zmaxs[m_dbManager->TILBnscin() - jj - 1]-zShiftNeg);
+        cellDimNeg->addZMax(-zmins[m_dbManager->TILBnscin() - jj - 1]-zShiftNeg);
+
+        MLOG(DEBUG) << "Zmin: " << zmins[m_dbManager->TILBnscin() - jj - 1] << "  Zmax: " << zmaxs[m_dbManager->TILBnscin() - jj - 1] << "  zShiftPos: " << zShiftPos << "  zShiftNeg: " << zShiftNeg << endmsg;
+
+        nTower = (int)m_dbManager->TICLtower()-1;
+        nSample = (int)m_dbManager->TICLsample()-1;
 
-    nTower = (int)m_dbManager->TICLtower()-1;
-    nSample = (int)m_dbManager->TICLsample()-1;
-    
         cellDim->computeVolume();
         cellDimNeg->computeVolume();
-    manager->add_cellDim(detector, 1, nTower, nSample, cellDim);
-    manager->add_cellDim(detector, -1, nTower, nSample, cellDimNeg);
+        manager->add_cellDim(detector, 1, nTower, nSample, cellDim);
+        manager->add_cellDim(detector, -1, nTower, nSample, cellDimNeg);
 
 /* -------- DEBUG printouts -------------- */
         if (m_verbose) {
           std::cout << std::setiosflags(std::ios::fixed)
                     << std::setw(9) << std::setprecision(2);
           std::cout << "\n **** Cell dimension computed for : ";
-          std::cout << "(" << detector << ", " 
+          std::cout << "(" << detector << ", "
                     << nSide << ", "
                     << nTower << ", "
                     << nSample << ")\n";
           std::cout << " >> CellDim contains " << cellDim->getNRows() << " rows\n";
-          for(unsigned int jj=0; jj<cellDim->getNRows(); jj++)
-            std::cout << cellDim->getRMin(jj) << " " 
+          for (unsigned int jj=0; jj<cellDim->getNRows(); jj++)
+            std::cout << cellDim->getRMin(jj) << " "
                       << cellDim->getRMax(jj) << " "
                       << cellDim->getZMin(jj) << " "
                       << cellDim->getZMax(jj) << "\n";
           std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n";
-    
+
           std::cout << " >> CellDimNeg contains " << cellDimNeg->getNRows() << " rows\n";
-          for(unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++)
-            std::cout << cellDimNeg->getRMin(jj) << " " 
+          for (unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++)
+            std::cout << cellDimNeg->getRMin(jj) << " "
                       << cellDimNeg->getRMax(jj) << " "
                       << cellDimNeg->getZMin(jj) << " "
                       << cellDimNeg->getZMax(jj) << "\n";
           std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./Gaudi::Units::cm3) << " cm^3\n";
-          std::cout << std::resetiosflags(std::ios::fixed);
+          std::cout << "\n" << std::resetiosflags(std::ios::fixed);
         }
 /* -------------------------------------------- */
       }
     }
-  } 
+  }
 }
 
+
 void TileGeoSectionBuilder::calculateZ(int detector,
                                        int side,
                                        int sample,
@@ -3333,27 +3238,27 @@ void TileGeoSectionBuilder::calculateZ(int detector,
                                        float& dz)
 {
   switch(detector) {
-  case TILE_REGION_CENTRAL:
-    m_dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
-    break;
-  case TILE_REGION_EXTENDED:
-    m_dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
-    break;
-  case TILE_REGION_GAP:
-    if (sample==3) { // D4
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
-    } else if (sample==2) { // C10
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
-    } else if (sample<13) { // E1-E2
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
-    } else { // E3-E4
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
-    }
-    break;
-  default:
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateZ: Unexpected detector: "
-             << detector << endmsg;
-    return;
+    case TILE_REGION_CENTRAL:
+      m_dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
+      break;
+    case TILE_REGION_EXTENDED:
+      m_dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
+      break;
+    case TILE_REGION_GAP:
+      if (sample==3) { // D4
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
+      } else if (sample==2) { // C10
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
+      } else if (sample<13) { // E1-E2
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
+      } else { // E3-E4
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
+      }
+      break;
+    default:
+      (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateZ: Unexpected detector: "
+               << detector << endmsg;
+      return;
   }
 
   // first - find position in ideal world before Z-shift and misalignment
@@ -3361,9 +3266,9 @@ void TileGeoSectionBuilder::calculateZ(int detector,
     // need to split one cylinder in pos/neg halves
     float zmin=m_dbManager->TILBzoffset()/2 * Gaudi::Units::cm ;
     float zmax=zmin+m_dbManager->TILBdzmodul()/2 * Gaudi::Units::cm ;
-    if (sample==3) { // fix for D0 cell 
+    if (sample==3) { // fix for D0 cell
       float D0size = 560.58/307*40 * Gaudi::Units::cm; // size of D0 along Z in Gaudi::Units::cm
-                                  // FIXME:: should be taken from DB
+      // FIXME:: should be taken from DB
       if (side>0) // positive
         zmin = - D0size/2;
       else
@@ -3371,12 +3276,13 @@ void TileGeoSectionBuilder::calculateZ(int detector,
     }
     zcenter = (zmin+zmax)/2;
     dz = (zmax-zmin);
-  } else if (detector == TILE_REGION_GAP && (sample > 9) ){
+
+  } else if (detector == TILE_REGION_GAP && (sample > 9) ) {
     zcenter=m_dbManager->TILBzoffset() * Gaudi::Units::cm ;
     m_dbManager->SetCurrentScin(100*m_dbManager->TILBsection() + 1 );
     dz =  m_dbManager->SCNTdt()*Gaudi::Units::cm;
-  }
-  else {
+
+  } else {
     zcenter=m_dbManager->TILBzoffset() * Gaudi::Units::cm ;
     dz=m_dbManager->TILBdzmodul() * Gaudi::Units::cm ;
   }
@@ -3389,6 +3295,7 @@ void TileGeoSectionBuilder::calculateZ(int detector,
   return;
 }
 
+
 void TileGeoSectionBuilder::calculateR(int detector,
                                        int sample,
                                        bool addPlates,
@@ -3399,31 +3306,31 @@ void TileGeoSectionBuilder::calculateR(int detector,
 {
   int cell = 0;
   switch(detector) {
-  case TILE_REGION_CENTRAL:
-    m_dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
-    break;
-  case TILE_REGION_EXTENDED:
-    m_dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
-    break;
-  case TILE_REGION_GAP:
-    if (sample==3) { // D4
-      cell = -2;
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
-    } else if (sample==2) { // C10
-      cell = -1;
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
-    } else if (sample<13) { // E1-E2
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
-      cell = firstScin - 2; // E2 has index 1, E1 has index 2
-    } else { // E3-E4
-      m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
-      cell = firstScin; // E4 has index 1, E3 has index 2
-    }
-    break;
-  default:
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateR: Unexpected detector: "
-             << detector << endmsg;
-    return;
+    case TILE_REGION_CENTRAL:
+      m_dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
+      break;
+    case TILE_REGION_EXTENDED:
+      m_dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL);
+      break;
+    case TILE_REGION_GAP:
+      if (sample==3) { // D4
+        cell = -2;
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
+      } else if (sample==2) { // C10
+        cell = -1;
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
+      } else if (sample<13) { // E1-E2
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3);
+        cell = firstScin - 2; // E2 has index 1, E1 has index 2
+      } else { // E3-E4
+        m_dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4);
+        cell = firstScin; // E4 has index 1, E3 has index 2
+      }
+      break;
+    default:
+      (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateR: Unexpected detector: "
+               << detector << endmsg;
+      return;
   }
 
   float oldrc = rcenter;
@@ -3445,6 +3352,7 @@ void TileGeoSectionBuilder::calculateR(int detector,
       rcenter = (rMax+rMin) * 0.5;
       dr = (rMax-rMin);
     }
+
   } else {
     int first = 100*m_dbManager->TILBsection()+firstScin;
     int last = 100*m_dbManager->TILBsection()+lastScin;
@@ -3471,6 +3379,7 @@ void TileGeoSectionBuilder::calculateR(int detector,
         m_dbManager->SetCurrentScin(first);
         rMin += m_dbManager->SCNTrc() - round(m_dbManager->SCNTdr())*0.5;
       }
+
     } else { // keep only sensitive part of the cell without front/back planes
       m_dbManager->SetCurrentScin(last);
       rMax = rMin + m_dbManager->SCNTrc() + round(m_dbManager->SCNTdr())*0.5;
@@ -3496,70 +3405,65 @@ void TileGeoSectionBuilder::calculateR(int detector,
   return;
 }
 
+
 void TileGeoSectionBuilder::calculateEta(int detector,
-                     int side,
-                     int sample,
-                     float& etamin,
-                     float& etamax,
-                     float& deta,
-                     unsigned int& neta)
+                                         int side,
+                                         int sample,
+                                         float& etamin,
+                                         float& etamax,
+                                         float& deta,
+                                         unsigned int& neta)
 {
-  /** 
-   The following actions need to be performed for Central/Extended Barrel
-       A. Find first cell. D0 goes to the positive side
-       B. Initialize etamax, etamin and neta. deta initialized but not changed later.
-       C. Iterate over all remaining cells in the sample and fill etamin, etamax, neta.
-  
-   Any other detectors are not expected!
+  /**
+      The following actions need to be performed for Central/Extended Barrel
+      A. Find first cell. D0 goes to the positive side
+      B. Initialize etamax, etamin and neta. deta initialized but not changed later.
+      C. Iterate over all remaining cells in the sample and fill etamin, etamax, neta.
+
+      Any other detectors are not expected!
   */
 
   int sign_eta = 1;
   if ((detector == TILE_REGION_CENTRAL) && (side<1)) sign_eta = -1;
 
-  switch(detector)
-  {
-  case TILE_REGION_CENTRAL:  // Central Barrel
-  case TILE_REGION_EXTENDED:  // Extended Barrel
+  switch(detector) {
+    case TILE_REGION_CENTRAL:  // Central Barrel
+    case TILE_REGION_EXTENDED:  // Extended Barrel
     {
-      if(m_dbManager->SetFirstTiclInDetSamp(detector, sample))
-      {
-    // --- A ---
-    while(sign_eta * m_dbManager->TICLncell() < 0)
-      if (!(m_dbManager->SetNextTiclInDetSamp()))
-      {
-        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateEta: No TICL structures of positive side "
+      if (m_dbManager->SetFirstTiclInDetSamp(detector, sample)) {
+        // --- A ---
+        while (sign_eta * m_dbManager->TICLncell() < 0)
+          if (!(m_dbManager->SetNextTiclInDetSamp())) {
+            (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateEta: No TICL structures of positive side "
                      << "in Central Barrel for sample: " << sample << endmsg;
-        return;
-      }
+            return;
+          }
 
-    // --- B ---
-    neta = 1;
-    deta = m_dbManager->TICLdeta();
-    etamin = m_dbManager->TICLeta()*sign_eta - m_dbManager->TICLdeta()/2; 
-    etamax = m_dbManager->TICLeta()*sign_eta + m_dbManager->TICLdeta()/2;
+        // --- B ---
+        neta = 1;
+        deta = m_dbManager->TICLdeta();
+        etamin = m_dbManager->TICLeta()*sign_eta - m_dbManager->TICLdeta()/2;
+        etamax = m_dbManager->TICLeta()*sign_eta + m_dbManager->TICLdeta()/2;
+
+        // --- C ---
+        while (m_dbManager->SetNextTiclInDetSamp()) {
+          if (!((detector == TILE_REGION_CENTRAL)&&(sign_eta * m_dbManager->TICLncell() <= 0))) {
+            neta++;
+            if (etamax < m_dbManager->TICLeta()*sign_eta + m_dbManager->TICLdeta()/2)
+              etamax = m_dbManager->TICLeta()*sign_eta + m_dbManager->TICLdeta()/2;
+            if (etamin > m_dbManager->TICLeta()*sign_eta - m_dbManager->TICLdeta()/2)
+              etamin = m_dbManager->TICLeta()*sign_eta - m_dbManager->TICLdeta()/2;
+          }
+        }
 
-    // --- C ---
-    while(m_dbManager->SetNextTiclInDetSamp())
-    {
-      if(!((detector == TILE_REGION_CENTRAL)&&(sign_eta * m_dbManager->TICLncell() <= 0)))
-      {
-        neta++;
-        if (etamax < m_dbManager->TICLeta()*sign_eta + m_dbManager->TICLdeta()/2)
-          etamax = m_dbManager->TICLeta()*sign_eta + m_dbManager->TICLdeta()/2;
-        if (etamin > m_dbManager->TICLeta()*sign_eta - m_dbManager->TICLdeta()/2)
-          etamin = m_dbManager->TICLeta()*sign_eta - m_dbManager->TICLdeta()/2;
-      }
-    }
-      }
-      else
-      {
-    (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateEta: No TICL structures in detector: "
+      } else {
+        (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateEta: No TICL structures in detector: "
                  << detector << " for sample: " << sample << endmsg;
-    return;
+        return;
       }
       break;
     }
-  default:
+    default:
     {
       (*m_log) << MSG::ERROR << "TileGeoSectionBuilder::calculateEta: Unexpected detector: "
                << detector << endmsg;
@@ -3568,56 +3472,63 @@ void TileGeoSectionBuilder::calculateEta(int detector,
   }
 }
 
+
 void TileGeoSectionBuilder::setBarrelPeriodThickness(double val)
 {
   m_barrelPeriodThickness = val;
 }
 
+
 void TileGeoSectionBuilder::setBarrelGlue(double val)
 {
   m_barrelGlue = val;
 }
 
+
 void TileGeoSectionBuilder::setExtendedPeriodThickness(double val)
 {
   m_extendedPeriodThickness = val;
 }
 
+
 void TileGeoSectionBuilder::checktransfunc(double absorber, double period, int np, double center)
 {
   (*m_log) << MSG::VERBOSE
            << std::setprecision (std::numeric_limits<double>::digits10 + 1)
-              << " Absorber center = " << center 
-              << "          length = " << absorber 
-              << "          period = " << period 
-              << "        nperiods = " << np 
-              << endmsg;
-    double zC,dZ,z1,z2=-absorber/2.+center;
-    for (int i=0; i<np; ++i) {
-        zC = (period*(2*i+1)-absorber)/2. + center;
-        z1 = zC - period/2.;
-        dZ = z1 - z2;
-        z2 = zC + period/2.;
-        (*m_log) << MSG::VERBOSE << std::setw(4)
-                 << i << "  z1= " << z1 << "  z2= " << z2
-                 << "  dist from previous= " << dZ << endmsg;
-    }
+           << " Absorber center = " << center
+           << "          length = " << absorber
+           << "          period = " << period
+           << "        nperiods = " << np
+           << endmsg;
+  double zC,dZ,z1,z2=-absorber/2.+center;
+  for (int i=0; i<np; ++i) {
+    zC = (period*(2*i+1)-absorber)/2. + center;
+    z1 = zC - period/2.;
+    dZ = z1 - z2;
+    z2 = zC + period/2.;
+    (*m_log) << MSG::VERBOSE << std::setw(4)
+             << i << "  z1= " << z1 << "  z2= " << z2
+             << "  dist from previous= " << dZ << endmsg;
+  }
 }
 
+
 void TileGeoSectionBuilder::printdouble(const char * name, double val)
 {
-    (*m_log) << MSG::VERBOSE  << std::setprecision (std::numeric_limits<double>::digits10 + 1)
-             << name << val << endmsg;
+  (*m_log) << MSG::VERBOSE  << std::setprecision (std::numeric_limits<double>::digits10 + 1)
+           << name << val << endmsg;
 }
 
+
 const GeoShape * TileGeoSectionBuilder::makeHolesScint(const GeoShape * mother, double R, double H2, double off, double off0) {
-    GeoShape *hole = new GeoTubs(0., R, H2, 0., 360.0 * Gaudi::Units::deg);
-    const  GeoShapeUnion& scintUnion = hole->add( *hole << GeoTrf::Translate3D((off0-off*2.0),0.,0.));
-    GeoTrf::Transform3D tfHole = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-    const GeoShape & motherWithHoles = (mother->subtract(scintUnion<<tfHole));
-    return &motherWithHoles;
+  GeoShape *hole = new GeoTubs(0., R, H2, 0., 360.0 * Gaudi::Units::deg);
+  const  GeoShapeUnion& scintUnion = hole->add( *hole << GeoTrf::Translate3D((off0-off*2.0),0.,0.));
+  GeoTrf::Transform3D tfHole = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(90*Gaudi::Units::deg);
+  const GeoShape & motherWithHoles = (mother->subtract(scintUnion<<tfHole));
+  return &motherWithHoles;
 }
 
+
 const GeoShape * TileGeoSectionBuilder::makeHoles(const GeoShape * mother, double R, double H2, double off, double off0) {
   GeoShape *hole1 = new GeoTubs(0., R, H2, 0., 360.0 * Gaudi::Units::deg);
   GeoShape *hole2 = new GeoTubs(0., R, H2, 0., 360.0 * Gaudi::Units::deg);
diff --git a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.h b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.h
index 44446a6d4eb4062e5b9d7bdeb0a7643cd2acae8b..4a9a3d7560a1ed8d11432d01861e2720f2a698ca 100755
--- a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.h
+++ b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.h
@@ -32,9 +32,11 @@ class GeoMaterial;
 class GeoTrd;
 class GeoShape;
 
-class TileGeoSectionBuilder   
+
+class TileGeoSectionBuilder
 {
  public:
+
   /** Constructor */
   TileGeoSectionBuilder(StoredMaterialManager* matManager,
                         TileDddbManager* pDbManager,
@@ -46,7 +48,7 @@ class TileGeoSectionBuilder
 
   /** Section parameters are the following:
       @param sec_number Number of sector
-      @param tile_rmax  Maximal radius 
+      @param tile_rmax  Maximal radius
       @param rminb      Minimal radius
       @param dzglue     Glue gap along dZ
       @param delta_phi  Delta Phi
@@ -67,9 +69,9 @@ class TileGeoSectionBuilder
   /** Girder parameters are the following:
       @param mother     Pointer to mother volume
       @param tile_rmax  Radius from TILE
-      @param tilb_rmax  Radius from TILB 
-      @param delta_ph   Delta phi      
-      @param thickness  Thickness of Girder 
+      @param tilb_rmax  Radius from TILB
+      @param delta_ph   Delta phi
+      @param thickness  Thickness of Girder
   */
   void fillGirder(GeoPhysVol*&             mother,
                   double                   tile_rmax,
@@ -80,8 +82,8 @@ class TileGeoSectionBuilder
   /** Finger parameters are the following:
       @param mother     Pointer to mother volume
       @param tile_rmax  Radius from TILE
-      @param tilb_rmax  Radius from TILB 
-      @param delta_ph   Delta phi      
+      @param tilb_rmax  Radius from TILB
+      @param delta_ph   Delta phi
       @param ModuleNcp  Module index
       @param corrected_dz  dZ correction
   */
@@ -91,14 +93,14 @@ class TileGeoSectionBuilder
                   double                   tilb_rmax,
                   double                   delta_phi_not_used,
                   bool                     testbeam,
-                  int                      ModuleNcp = 0,                  
+                  int                      ModuleNcp = 0,
                   double                   corrected_dz = 0.);
 
   /** Period parameters are the following:
       @param mother      Pointer to mother volume
       @param thickness   Thickness of period
       @param dzglue      Glue thickness in z direction
-      @param delta_ph    Delta phi      
+      @param delta_ph    Delta phi
       @param period_type Type of period
 
   */
@@ -130,7 +132,7 @@ class TileGeoSectionBuilder
       @param manager    Pointer to TileDetDescrManager
       @param detector   Detector index
       @param addPlates  1 for adding plate
-      @param zShiftPos  Positiv shift in Z direction [mm] 
+      @param zShiftPos  Positiv shift in Z direction [mm]
       @param zShiftNeg  Negative shift in Z direction [mm]
   */
   void computeCellDim(TileDetDescrManager*& manager,
@@ -177,7 +179,7 @@ class TileGeoSectionBuilder
             float& etamax,
             float& deta,
             unsigned int& neta);
- 
+
   /** Function for checking empty volumes:
       @param VolumeName  The volume name
       @param print       printig ON/OFF
@@ -185,7 +187,7 @@ class TileGeoSectionBuilder
       @param XYZ         checking variables
   */
   void checking(const std::string& VolumeName, bool print, int level,
-                double X1, double X2, double Y1, double Y2, double Z); 
+                double X1, double X2, double Y1, double Y2, double Z);
 
   // These methods should be used when section contents are not built
   // They initialize private data members used for computing cell dimensions
diff --git a/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx
index 15e1e8bbbd959a54e42260dd8d3d929d881d0865..e447b5218a02ddf35a4eb520a75eba083560263d 100755
--- a/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx
+++ b/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "TileTBFactory.h"
@@ -34,44 +34,43 @@
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/SystemOfUnits.h"
 
-#include <stdexcept>
-#include <iostream>
 #include <algorithm>
 
 using namespace GeoGenfun;
 using namespace GeoXF;
 
- 
+
 // Constructor:
 TileTBFactory::TileTBFactory(StoreGateSvc *pDetStore,
                              TileDetDescrManager *manager,
                              const TileSwitches & switches,
                              MsgStream *log)
-  : m_detectorStore(pDetStore)
-  , m_detectorManager(manager)
-  , m_log(log)
-  , m_switches(switches)
-  , m_verbose(log->level()<=MSG::VERBOSE)
+        : m_detectorStore(pDetStore)
+        , m_detectorManager(manager)
+        , m_log(log)
+        , m_switches(switches)
+        , m_verbose(log->level()<=MSG::VERBOSE)
 {
   m_switches.testBeam = true;
 }
-  
+
+
 // Destructor:
 TileTBFactory::~TileTBFactory()
 {
 }
-  
+
+
 // Creation of geometry:
-void TileTBFactory::create(GeoPhysVol *world) 
+void TileTBFactory::create(GeoPhysVol *world)
 {
   (*m_log) << MSG::INFO <<" Entering TileTBFactory::create()" << endmsg;
 
   // -------- -------- MATERIAL MANAGER -------- ----------
   StoredMaterialManager* theMaterialManager = nullptr;
-  if (StatusCode::SUCCESS != m_detectorStore->retrieve(theMaterialManager, "MATERIALS")) 
-  { 
-    (*m_log) << MSG::ERROR << "Could not find Material Manager MATERIALS" << endmsg; 
-    return; 
+  if (StatusCode::SUCCESS != m_detectorStore->retrieve(theMaterialManager, "MATERIALS")) {
+    (*m_log) << MSG::ERROR << "Could not find Material Manager MATERIALS" << endmsg;
+    return;
   }
   const GeoMaterial* matAir = theMaterialManager->getMaterial("std::Air");
 
@@ -116,19 +115,18 @@ void TileTBFactory::create(GeoPhysVol *world)
   double FingerRmin = dbManager->TILBrmax();
 
   int n_env = dbManager->GetNumberOfEnv();
-  for(int i = 0; i < n_env ; ++i)
-  {
+  for (int i = 0; i < n_env ; ++i) {
     dbManager->SetCurrentEnvByIndex(i);
     tileTBEnvThickness += dbManager->GetEnvZLength();
-    if(dbManager->GetEnvType() == 1){
+    if (dbManager->GetEnvType() == 1) {
       IfB = true;
       //ZLengthBarrel = dbManager->GetEnvZLength();
     }
-    if(dbManager->GetEnvType() == 2){
+    if (dbManager->GetEnvType() == 2) {
       IfEBNeg = true;
       ZLengthEBarrelNeg = dbManager->GetEnvZLength();
     }
-    if(dbManager->GetEnvType() == 3){
+    if (dbManager->GetEnvType() == 3) {
       IfEBPos = true;
       ZLengthEBarrelPos = dbManager->GetEnvZLength();
     }
@@ -138,10 +136,10 @@ void TileTBFactory::create(GeoPhysVol *world)
     ROutMax= std::max(ROutMax, dbManager->GetEnvRout());
   }
 
- (*m_log) << MSG::DEBUG << "tileTBEnvThickness 1 " << tileTBEnvThickness << endmsg;
+  (*m_log) << MSG::DEBUG << "tileTBEnvThickness 1 " << tileTBEnvThickness << endmsg;
 
- // enlarge mother volume by extra distance between barrel and positive ext.barrel
-  if(IfEBPos){
+  // enlarge mother volume by extra distance between barrel and positive ext.barrel
+  if (IfEBPos) {
     dbManager->SetCurrentEnvByType(3);
     tileTBEnvThickness += dbManager->GetEnvDZ()*dbManager->GetEnvSide();
   }
@@ -149,16 +147,16 @@ void TileTBFactory::create(GeoPhysVol *world)
   (*m_log) << MSG::DEBUG << "tileTBEnvThickness 2 " << tileTBEnvThickness << endmsg;
 
   // enlarge mother volume by extra distance between barrel and negative ext.barrel
-  if(IfEBNeg){
+  if (IfEBNeg) {
     dbManager->SetCurrentEnvByType(2);
     tileTBEnvThickness += dbManager->GetEnvDZ()*dbManager->GetEnvSide();
   }
 
- (*m_log) << MSG::DEBUG << "tileTBEnvThickness 3 " << tileTBEnvThickness << endmsg;
+  (*m_log) << MSG::DEBUG << "tileTBEnvThickness 3 " << tileTBEnvThickness << endmsg;
 
   // take into account extra DZ for barrel only if there are no Ext.Barrel modules
   // but keep the mother volume symmetric (i.e. add DZ on both sides)
-  if((!IfEBNeg)&&(!IfEBPos)){
+  if ((!IfEBNeg)&&(!IfEBPos)) {
     dbManager->SetCurrentEnvByType(1);
     tileTBEnvThickness += 2 * fabs(dbManager->GetEnvDZ());
   }
@@ -176,22 +174,22 @@ void TileTBFactory::create(GeoPhysVol *world)
   //dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL);
   //double deltaPhi = 360./dbManager->TILEnmodul();
   GeoTubs* tileTBEnv = new GeoTubs(RInMin * Gaudi::Units::cm,
-				   ROutMax * Gaudi::Units::cm,
-				   tileTBEnvThickness/2.0 * Gaudi::Units::cm,
-				   PhiMin*Gaudi::Units::deg,
-				   (PhiMax - PhiMin)*Gaudi::Units::deg);
-  
-  (*m_log) << MSG::DEBUG << "TileTB envelope parameters: " 
-      << " length=" << tileTBEnvThickness << " cm"
-      << " Rmin=" << RInMin << " cm"
-      << " Rmax=" << ROutMax << " cm"
-      << " PhiMin=" << PhiMin << " deg"
-      << " PhiMax=" << PhiMax << " deg"
-      << endmsg;
+                                   ROutMax * Gaudi::Units::cm,
+                                   tileTBEnvThickness/2.0 * Gaudi::Units::cm,
+                                   PhiMin*Gaudi::Units::deg,
+                                   (PhiMax - PhiMin)*Gaudi::Units::deg);
+
+  (*m_log) << MSG::DEBUG << "TileTB envelope parameters: "
+           << " length=" << tileTBEnvThickness << " cm"
+           << " Rmin=" << RInMin << " cm"
+           << " Rmax=" << ROutMax << " cm"
+           << " PhiMin=" << PhiMin << " deg"
+           << " PhiMax=" << PhiMax << " deg"
+           << endmsg;
 
   GeoLogVol* lvTileTBEnv = new GeoLogVol("TileTBEnv",tileTBEnv,matAir);
   GeoFullPhysVol* pvTileTBEnv = new GeoFullPhysVol(lvTileTBEnv);
-  
+
   GeoFullPhysVol *pvBarrelMother     =0;
   GeoFullPhysVol *pvEBarrelMotherNeg =0, *pvEBarrelMotherPos =0;
   GeoFullPhysVol *pvFingerMotherNeg  =0, *pvFingerMotherPos  =0;
@@ -199,218 +197,218 @@ void TileTBFactory::create(GeoPhysVol *world)
   GeoFullPhysVol *pvITCMotherPos     =0, *pvITCMotherNeg     =0;
 
   int NumberOfEnv = dbManager->GetNumberOfEnv();
-  for(int EnvCounter = 0; EnvCounter < NumberOfEnv; ++EnvCounter){ //Loop over Envelopes
+  for (int EnvCounter = 0; EnvCounter < NumberOfEnv; ++EnvCounter) { //Loop over Envelopes
     dbManager->SetCurrentEnvByIndex(EnvCounter);
     int EnvType = dbManager->GetEnvType();
     int NumberOfMod = dbManager->GetEnvNModules();
 
     //----------------------- BUILDING ENVELOPES------------------------
-    
+
     // It may be usful on the way of universalization
     //    GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm,
-    //					 (dbManager->GetEnvRout()) * Gaudi::Units::cm,
-    //				 (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm,
-    //				 0.0 * deltaPhi * Gaudi::Units::deg,
-    //				 (NumberOfMod)*deltaPhi*Gaudi::Units::deg);
-  
-    if(EnvType == 1) {
+    //                                         (dbManager->GetEnvRout()) * Gaudi::Units::cm,
+    //                                 (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm,
+    //                                 0.0 * deltaPhi * Gaudi::Units::deg,
+    //                                 (NumberOfMod)*deltaPhi*Gaudi::Units::deg);
+
+    if (EnvType == 1) {
 
       GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvRout()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvZLength() - 2 * BFingerLength)/2.0 * Gaudi::Units::cm,
-					   0.0 * Gaudi::Units::deg,
-					   NumberOfMod*deltaPhi*Gaudi::Units::deg);
+                                           (dbManager->GetEnvRout()) * Gaudi::Units::cm,
+                                           (dbManager->GetEnvZLength() - 2 * BFingerLength)/2.0 * Gaudi::Units::cm,
+                                           0.0 * Gaudi::Units::deg,
+                                           NumberOfMod*deltaPhi*Gaudi::Units::deg);
 
-      GeoTubs* barrelMother = GeneralMother;      
+      GeoTubs* barrelMother = GeneralMother;
       GeoLogVol* lvBarrelMother = new GeoLogVol("Barrel",barrelMother,matAir);
       pvBarrelMother = new GeoFullPhysVol(lvBarrelMother);
 
-      (*m_log) << MSG::DEBUG << "Barrel envelope parameters: " 
-          << " length=" << (dbManager->GetEnvZLength() - 2 * BFingerLength) << " cm"
-          << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
-      
+      (*m_log) << MSG::DEBUG << "Barrel envelope parameters: "
+               << " length=" << (dbManager->GetEnvZLength() - 2 * BFingerLength) << " cm"
+               << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
+
       //Envelopes for two barrel fingers
       dbManager->SetCurrentTifg(2);  //use small size for barrel finger !
 
       GeoTubs* fingerMother = new GeoTubs(FingerRmin*Gaudi::Units::cm,
-      					  dbManager->GetEnvRout()*Gaudi::Units::cm,
-      					  BFingerLength/2.*Gaudi::Units::cm,
-      					  0.0 * Gaudi::Units::deg,
-      					  NumberOfMod*deltaPhi*Gaudi::Units::deg);
+                                          dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                          BFingerLength/2.*Gaudi::Units::cm,
+                                          0.0 * Gaudi::Units::deg,
+                                          NumberOfMod*deltaPhi*Gaudi::Units::deg);
 
       GeoLogVol* lvFingerMother = new GeoLogVol("Finger",fingerMother,matAir);
       pvFingerMotherPos = new GeoFullPhysVol(lvFingerMother);
       pvFingerMotherNeg = new GeoFullPhysVol(lvFingerMother);
 
-      (*m_log) << MSG::DEBUG << "Barrel finger envelope parameters: " 
-          << " length=" << BFingerLength << " cm"
-          << " Rmin=" << FingerRmin << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
+      (*m_log) << MSG::DEBUG << "Barrel finger envelope parameters: "
+               << " length=" << BFingerLength << " cm"
+               << " Rmin=" << FingerRmin << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
     }
-    
-    if(EnvType == 3) {   
+
+    if (EnvType == 3) {
       GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvRout()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * Gaudi::Units::cm,
-					   0.0 * Gaudi::Units::deg,
-					   NumberOfMod*deltaPhi*Gaudi::Units::deg);
+                                           (dbManager->GetEnvRout()) * Gaudi::Units::cm,
+                                           (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * Gaudi::Units::cm,
+                                           0.0 * Gaudi::Units::deg,
+                                           NumberOfMod*deltaPhi*Gaudi::Units::deg);
 
       GeoTubs* ebarrelMotherPos = GeneralMother;
       GeoLogVol* lvEBarrelMotherPos = new GeoLogVol("EBarrel",ebarrelMotherPos,matAir);
       pvEBarrelMotherPos = new GeoFullPhysVol(lvEBarrelMotherPos);
 
-      (*m_log) << MSG::DEBUG << "Positive ext.barrel envelope parameters: " 
-          << " length=" << (dbManager->GetEnvZLength() - EBFingerLength) << " cm"
-          << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
+      (*m_log) << MSG::DEBUG << "Positive ext.barrel envelope parameters: "
+               << " length=" << (dbManager->GetEnvZLength() - EBFingerLength) << " cm"
+               << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
 
       //Envelope for finger separately
       GeoTubs* fingerMother = new GeoTubs(FingerRmin*Gaudi::Units::cm,
-					  dbManager->GetEnvRout()*Gaudi::Units::cm,
-					  EBFingerLength/2.*Gaudi::Units::cm,
-					  0.0 * Gaudi::Units::deg,
-					  NumberOfMod*deltaPhi*Gaudi::Units::deg);
+                                          dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                          EBFingerLength/2.*Gaudi::Units::cm,
+                                          0.0 * Gaudi::Units::deg,
+                                          NumberOfMod*deltaPhi*Gaudi::Units::deg);
 
       GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir);
       pvEFingerMotherPos = new GeoFullPhysVol(lvEFingerMother);
-    
-      (*m_log) << MSG::DEBUG << "Positive ext.barrel finger envelope parameters: " 
-          << " length=" << EBFingerLength << " cm"
-          << " Rmin=" << FingerRmin << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
+
+      (*m_log) << MSG::DEBUG << "Positive ext.barrel finger envelope parameters: "
+               << " length=" << EBFingerLength << " cm"
+               << " Rmin=" << FingerRmin << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
     }
-    
-    if(EnvType == 2) {    
+
+    if (EnvType == 2) {
       GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvRout()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * Gaudi::Units::cm,
-					   0.0 * Gaudi::Units::deg,
-					   NumberOfMod*deltaPhi*Gaudi::Units::deg);
+                                           (dbManager->GetEnvRout()) * Gaudi::Units::cm,
+                                           (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * Gaudi::Units::cm,
+                                           0.0 * Gaudi::Units::deg,
+                                           NumberOfMod*deltaPhi*Gaudi::Units::deg);
       GeoTubs* ebarrelMotherNeg = GeneralMother;
-      GeoLogVol* lvEBarrelMotherNeg = new GeoLogVol("EBarrel",ebarrelMotherNeg,matAir);  
+      GeoLogVol* lvEBarrelMotherNeg = new GeoLogVol("EBarrel",ebarrelMotherNeg,matAir);
       pvEBarrelMotherNeg = new GeoFullPhysVol(lvEBarrelMotherNeg);
-      
-      (*m_log) << MSG::DEBUG << "Negative ext.barrel envelope parameters: " 
-          << " length=" << (dbManager->GetEnvZLength() - EBFingerLength) << " cm"
-          << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
+
+      (*m_log) << MSG::DEBUG << "Negative ext.barrel envelope parameters: "
+               << " length=" << (dbManager->GetEnvZLength() - EBFingerLength) << " cm"
+               << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
 
       //Envelope for finger separately
       GeoTubs* fingerMother = new GeoTubs(FingerRmin*Gaudi::Units::cm,
-					  dbManager->GetEnvRout()*Gaudi::Units::cm,
-					  EBFingerLength/2.*Gaudi::Units::cm,
-					  0.0 * Gaudi::Units::deg,
-					  NumberOfMod*deltaPhi*Gaudi::Units::deg);
-      
+                                          dbManager->GetEnvRout()*Gaudi::Units::cm,
+                                          EBFingerLength/2.*Gaudi::Units::cm,
+                                          0.0 * Gaudi::Units::deg,
+                                          NumberOfMod*deltaPhi*Gaudi::Units::deg);
+
       GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir);
       pvEFingerMotherNeg = new GeoFullPhysVol(lvEFingerMother);
 
-      (*m_log) << MSG::DEBUG << "Negative ext.barrel finger envelope parameters: " 
-          << " length=" << EBFingerLength << " cm"
-          << " Rmin=" << FingerRmin << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
+      (*m_log) << MSG::DEBUG << "Negative ext.barrel finger envelope parameters: "
+               << " length=" << EBFingerLength << " cm"
+               << " Rmin=" << FingerRmin << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
     }
-    
-    if(EnvType == 5) {
+
+    if (EnvType == 5) {
       GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvRout()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm,
-					   0.0 * Gaudi::Units::deg,
-					   NumberOfMod*deltaPhi*Gaudi::Units::deg);
-      
+                                           (dbManager->GetEnvRout()) * Gaudi::Units::cm,
+                                           (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm,
+                                           0.0 * Gaudi::Units::deg,
+                                           NumberOfMod*deltaPhi*Gaudi::Units::deg);
+
       GeoTubs* itcMother = GeneralMother;
       GeoLogVol* lvITCMother = new GeoLogVol("ITC",itcMother,matAir);
       pvITCMotherPos = new GeoFullPhysVol(lvITCMother);
 
-      (*m_log) << MSG::DEBUG << "Positive ITC envelope parameters: " 
-          << " length=" << (dbManager->GetEnvZLength()) << " cm"
-          << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
+      (*m_log) << MSG::DEBUG << "Positive ITC envelope parameters: "
+               << " length=" << (dbManager->GetEnvZLength()) << " cm"
+               << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
     }
-    
-    if(EnvType == 4) {
+
+    if (EnvType == 4) {
       GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvRout()) * Gaudi::Units::cm,
-					   (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm,
-					   0.0 * Gaudi::Units::deg,
-					   NumberOfMod*deltaPhi*Gaudi::Units::deg);
+                                           (dbManager->GetEnvRout()) * Gaudi::Units::cm,
+                                           (dbManager->GetEnvZLength())/2.0 * Gaudi::Units::cm,
+                                           0.0 * Gaudi::Units::deg,
+                                           NumberOfMod*deltaPhi*Gaudi::Units::deg);
 
       GeoTubs* itcMotherNeg = GeneralMother;
       GeoLogVol* lvITCMotherNeg = new GeoLogVol("ITC",itcMotherNeg,matAir);
       pvITCMotherNeg = new GeoFullPhysVol(lvITCMotherNeg);
 
-      (*m_log) << MSG::DEBUG << "Negative ITC envelope parameters: " 
-          << " length=" << (dbManager->GetEnvZLength()) << " cm"
-          << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
-          << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
-          << " nMod=" << NumberOfMod
-          << endmsg;
+      (*m_log) << MSG::DEBUG << "Negative ITC envelope parameters: "
+               << " length=" << (dbManager->GetEnvZLength()) << " cm"
+               << " Rmin=" << (dbManager->GetEnvRin()) << " cm"
+               << " Rmax=" << (dbManager->GetEnvRout()) << " cm"
+               << " nMod=" << NumberOfMod
+               << endmsg;
     }
 
-   
-   //Envelope 2-level has been made (it is tube); begin loop over modules
-  
-    // for(int ModCounter = 0; ModCounter < NumberOfMod; ModCounter++){
-    // simple hack - we know that all modules are identical, 
-    // let's put all of them with GeoSerialTransfomer, 
+
+    //Envelope 2-level has been made (it is tube); begin loop over modules
+
+    // for (int ModCounter = 0; ModCounter < NumberOfMod; ModCounter++) {
+    // simple hack - we know that all modules are identical,
+    // let's put all of them with GeoSerialTransfomer,
     // i.e. execute this loop only once
-    for(int ModCounter = 0; ModCounter < NumberOfMod; ModCounter+=NumberOfMod){
+    for (int ModCounter = 0; ModCounter < NumberOfMod; ModCounter+=NumberOfMod) {
       dbManager->SetCurrentModuleByIndex(ModCounter);
       int ModType = dbManager->GetModType();
       int ModPositionNumber = dbManager->GetModNumber();
-      (*m_log) << MSG::DEBUG 
-          << "ModCounter is " << ModCounter
-          << " ModType is " << ModType
-          << " ModPositionNumber is " << ModPositionNumber
-          << endmsg;
-          
+      (*m_log) << MSG::DEBUG
+               << "ModCounter is " << ModCounter
+               << " ModType is " << ModType
+               << " ModPositionNumber is " << ModPositionNumber
+               << endmsg;
+
       Variable varInd;
-      GENFUNCTION phiInd = deltaPhi*(varInd + ModCounter + 0.5) * Gaudi::Units::deg; 
+      GENFUNCTION phiInd = deltaPhi*(varInd + ModCounter + 0.5) * Gaudi::Units::deg;
 
 
       //------------------- BARREL BLOCKS -------------------------------------
-     
-      if( EnvType == 1 || EnvType == 0 ) { // normal barrel module or module zero
-        dbManager->SetCurrentSectionByNumber(ModType);	  
+
+      if ( EnvType == 1 || EnvType == 0 ) { // normal barrel module or module zero
+        dbManager->SetCurrentSectionByNumber(ModType);
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-       
+
         dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1));
-       
+
         GeoTrd* barrelModuleMother = new GeoTrd(thicknessWedgeMother/2.,
                                                 thicknessWedgeMother/2.,
                                                 dy1WedgeMother,
                                                 dy2WedgeMother,
                                                 heightWedgeMother/2.);
-       
+
         GeoLogVol* lvBarrelModuleMother = new GeoLogVol("BarrelModule",barrelModuleMother,matAir);
         GeoPhysVol* pvBarrelModuleMother = new GeoPhysVol(lvBarrelModuleMother);
-       
+
         //Fill the section
         sectionBuilder->fillSection(pvBarrelModuleMother,
                                     1,
                                     dbManager->TILBrmaximal(),
                                     dbManager->TILBrminimal(),
                                     dzGlue,
-                                    deltaPhi); 
-       
+                                    deltaPhi);
+
         TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
 
         GeoSerialTransformer* stBarrelModuleMother = new GeoSerialTransformer(pvBarrelModuleMother,
@@ -419,10 +417,10 @@ void TileTBFactory::create(GeoPhysVol *world)
         pvBarrelMother->add(new GeoSerialIdentifier(ModPositionNumber));
         pvBarrelMother->add(stBarrelModuleMother);
 
-       
+
         //--------------------------BARREL FINGERS MAKING------------------------------
-       
-        dbManager->SetCurrentTifg(2);  //at the testbeam put "small" barrel finger - the same as ext.barrel one 
+
+        dbManager->SetCurrentTifg(2);  //at the testbeam put "small" barrel finger - the same as ext.barrel one
         //zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2.;
 
         // Trd - one finger mother
@@ -431,16 +429,16 @@ void TileTBFactory::create(GeoPhysVol *world)
         heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-       
+
         GeoTrd* fingerModuleMother = new GeoTrd(thicknessWedgeMother/2.,
                                                 thicknessWedgeMother/2.,
                                                 dy1WedgeMother,
                                                 dy2WedgeMother,
                                                 heightWedgeMother/2.);
-       
+
         GeoLogVol* lvFingerModuleMother = new GeoLogVol("FingerModule",fingerModuleMother,matAir);
         GeoPhysVol* pvFingerModuleMother = new GeoPhysVol(lvFingerModuleMother);
-       
+
         // Fill the section
         sectionBuilder->fillFinger(pvFingerModuleMother, 1,
                                    dbManager->TILErmax(),
@@ -449,16 +447,16 @@ void TileTBFactory::create(GeoPhysVol *world)
                                    m_switches.testBeam,
                                    ModuleNcp,
                                    thicknessWedgeMother*(1./Gaudi::Units::cm));
-       
+
         // --- Position N modules inside mother (positive/negative) -----
         TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-        
+
         GeoSerialTransformer* stFingerModuleMotherPos = new GeoSerialTransformer(pvFingerModuleMother,
                                                                                  &xfFingerModuleMotherPos,
                                                                                  NumberOfMod); // all modules at once
         pvFingerMotherPos->add(new GeoSerialIdentifier(ModPositionNumber));
         pvFingerMotherPos->add(stFingerModuleMotherPos);
-       
+
         TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
 
         GeoSerialTransformer* stFingerModuleMotherNeg = new GeoSerialTransformer(pvFingerModuleMother,
@@ -468,28 +466,28 @@ void TileTBFactory::create(GeoPhysVol *world)
         pvFingerMotherNeg->add(stFingerModuleMotherNeg);
       }
 
-     
+
       //------------------- EBARREL BLOCKS POS --------------------------------
 
-      if((ModType == 2)&&(EnvType == 3)){
+      if ((ModType == 2)&&(EnvType == 3)) {
         dbManager->SetCurrentSectionByNumber(ModType);
-        // Trd - module mother 
+        // Trd - module mother
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
+
         dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
-        
+
         GeoTrd* ebarrelModuleMotherPos = new GeoTrd(thicknessWedgeMother/2.,
                                                     thicknessWedgeMother/2.,
                                                     dy1WedgeMother,
                                                     dy2WedgeMother,
                                                     heightWedgeMother/2.);
-        
+
         GeoLogVol* lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",ebarrelModuleMotherPos,matAir);
         GeoPhysVol* pvEBarrelModuleMotherPos = new GeoPhysVol(lvEBarrelModuleMotherPos);
-        
+
         // Fill the section
         sectionBuilder->fillSection(pvEBarrelModuleMotherPos,
                                     2,
@@ -497,35 +495,35 @@ void TileTBFactory::create(GeoPhysVol *world)
                                     dbManager->TILBrminimal(),
                                     dzGlue,
                                     deltaPhi);
-             
+
         TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-        
+
         GeoSerialTransformer* stEBarrelModuleMotherPos = new GeoSerialTransformer(pvEBarrelModuleMotherPos,
                                                                                   &xfEBarrelModuleMotherPos,
                                                                                   NumberOfMod); // all modules at once
         pvEBarrelMotherPos->add(new GeoSerialIdentifier(ModPositionNumber));
         pvEBarrelMotherPos->add(stEBarrelModuleMotherPos);
-  
-  
+
+
         //--------------------------EBARREL FINGERS MAKING------------------------------
-  
+
         dbManager->SetCurrentTifg(2);  //barrel efinger (small)
-        
+
         // Trd - one finger mother
         thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
+
         GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2.,
                                                  thicknessWedgeMother/2.,
                                                  dy1WedgeMother,
                                                  dy2WedgeMother,
                                                  heightWedgeMother/2.);
-        
+
         GeoLogVol* lvEFingerModuleMother = new GeoLogVol("EFingerModule",efingerModuleMother,matAir);
         GeoPhysVol* pvEFingerModuleMother = new GeoPhysVol(lvEFingerModuleMother);
-        
+
         // Fill the section
         sectionBuilder->fillFinger(pvEFingerModuleMother,
                                    2,
@@ -533,40 +531,40 @@ void TileTBFactory::create(GeoPhysVol *world)
                                    dbManager->TILBrmax(),
                                    deltaPhi,
                                    m_switches.testBeam);
-        
+
         // --- Position N modules inside mother (positive/negative) -----
-  
+
         TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-        
+
         GeoSerialTransformer* stEFingerModuleMotherPos = new GeoSerialTransformer(pvEFingerModuleMother,
                                                                                   &xfEFingerModuleMotherPos,
                                                                                   NumberOfMod); // all modules at once
         pvEFingerMotherPos->add(new GeoSerialIdentifier(ModPositionNumber));
         pvEFingerMotherPos->add(stEFingerModuleMotherPos);
       }
-      
-      
+
+
       //------------------- EBARREL BLOCKS NEG --------------------------------
-  
-      if((ModType == 2)&&(EnvType == 2)){
+
+      if ((ModType == 2)&&(EnvType == 2)) {
         dbManager->SetCurrentSectionByNumber(ModType);
-        // Trd - module mother 
+        // Trd - module mother
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
+
         dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
-  
+
         GeoTrd* ebarrelModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2.,
                                                     thicknessWedgeMother/2.,
                                                     dy1WedgeMother,
                                                     dy2WedgeMother,
                                                     heightWedgeMother/2.);
-        
+
         GeoLogVol* lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",ebarrelModuleMotherNeg,matAir);
         GeoPhysVol* pvEBarrelModuleMotherNeg = new GeoPhysVol(lvEBarrelModuleMotherNeg);
-        
+
         // Fill the section
         sectionBuilder->fillSection(pvEBarrelModuleMotherNeg,
                                     2,
@@ -574,7 +572,7 @@ void TileTBFactory::create(GeoPhysVol *world)
                                     dbManager->TILBrminimal(),
                                     dzGlue,
                                     deltaPhi);
-      
+
         TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
 
         GeoSerialTransformer* stEBarrelModuleMotherNeg = new GeoSerialTransformer(pvEBarrelModuleMotherNeg,
@@ -582,28 +580,28 @@ void TileTBFactory::create(GeoPhysVol *world)
                                                                                   NumberOfMod); // all modules at once
         pvEBarrelMotherNeg->add(new GeoSerialIdentifier(ModPositionNumber));
         pvEBarrelMotherNeg->add(stEBarrelModuleMotherNeg);
-        
-        
+
+
         //--------------------------EBARREL FINGERS MAKING------------------------------
-        
+
         dbManager->SetCurrentTifg(2);  //barrel efinger (small)
-        
+
         //zEndSection = extOffset + dbManager->TILBdzmodul()/2. + dbManager->TILEzshift();
         // Trd - one finger mother
         thicknessWedgeMother = dbManager->TIFGdz() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
+
         GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2.,
                                                  thicknessWedgeMother/2.,
                                                  dy1WedgeMother,
                                                  dy2WedgeMother,
                                                  heightWedgeMother/2.);
-        
+
         GeoLogVol* lvEFingerModuleMother = new GeoLogVol("EFingerModule",efingerModuleMother,matAir);
         GeoPhysVol* pvEFingerModuleMother = new GeoPhysVol(lvEFingerModuleMother);
-        
+
         // Fill the section
         sectionBuilder->fillFinger(pvEFingerModuleMother,
                                    2,
@@ -611,7 +609,7 @@ void TileTBFactory::create(GeoPhysVol *world)
                                    dbManager->TILBrmax(),
                                    deltaPhi,
                                    m_switches.testBeam);
-          
+
         TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
 
         GeoSerialTransformer* stEFingerModuleMotherNeg = new GeoSerialTransformer(pvEFingerModuleMother,
@@ -620,51 +618,51 @@ void TileTBFactory::create(GeoPhysVol *world)
         pvEFingerMotherNeg->add(new GeoSerialIdentifier(ModPositionNumber));
         pvEFingerMotherNeg->add(stEFingerModuleMotherNeg);
       }
-        
-    
+
+
       //------------------- ITC BLOCKS POS --------------------------------
-      
-      if(((ModType == 6050403)||(ModType == 403))&&(EnvType == 5)){
-          
+
+      if (((ModType == 6050403)||(ModType == 403))&&(EnvType == 5)) {
+
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
         rMinITC = dbManager->TILBrminimal();
         dzITC2 = dbManager->TILBdzmodul();
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
-        
+
         // Common mother for ITC1/2 modules
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * Gaudi::Units::cm;
         dy1WedgeMother = rMinITC * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
+
         GeoTrd* itcModuleMotherPos = new GeoTrd(thicknessWedgeMother/2.,
                                                 thicknessWedgeMother/2.,
                                                 dy1WedgeMother,
                                                 dy2WedgeMother,
-                                                heightWedgeMother/2.);  
-        
+                                                heightWedgeMother/2.);
+
         GeoLogVol* lvITCModuleMotherPos = new GeoLogVol("ITCModule",itcModuleMotherPos,matAir);
         GeoPhysVol* pvITCModuleMotherPos = new GeoPhysVol(lvITCModuleMotherPos);
-        
+
         //Mother volume for ITC1
         //In plug1 it's necessary to produce GeoShapeUnion for mother volume that is composed by two parts:
         // 1. Mother for absorber and girder
         // 2. Mother for frontplate (since it's short)
-        
+
         //First submother
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-        
+
         dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
-        
+
         GeoTrd* plug1SubMother = new GeoTrd(thicknessWedgeMother/2.,
                                             thicknessWedgeMother/2.,
                                             dy1WedgeMother,
                                             dy2WedgeMother,
                                             heightWedgeMother/2.);
-        
+
         //Second submother
         thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
@@ -675,15 +673,15 @@ void TileTBFactory::create(GeoPhysVol *world)
                                             dy1WedgeMother,
                                             dy2WedgeMother,
                                             heightWedgeMother/2.);
-        
+
         GeoTrf::Translate3D plug1SubOffset(-dzITC2*Gaudi::Units::cm/2.,
-                                      0.,
-                                      (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.);
-        
+                                           0.,
+                                           (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.);
+
         const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset);
         GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir);
         GeoPhysVol* pvPlug1ModuleMother = new GeoPhysVol(lvPlug1ModuleMother);
-        
+
         // Fill the section
         sectionBuilder->fillSection(pvPlug1ModuleMother, 3,
                                     dbManager->TILBrmaximal(),
@@ -692,15 +690,15 @@ void TileTBFactory::create(GeoPhysVol *world)
                                     deltaPhi,
                                     ModuleNcp,
                                     dzITC2);
-        
+
         GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0.,
-                                                                            0.,
-                                                                            (dbManager->TILBrmin()-rMinITC)*Gaudi::Units::cm/2.));
-        
-        
+                                                                                 0.,
+                                                                                 (dbManager->TILBrmin()-rMinITC)*Gaudi::Units::cm/2.));
+
+
         pvITCModuleMotherPos->add(tfPlug1ModuleMother);
         pvITCModuleMotherPos->add(pvPlug1ModuleMother);
-        	 
+
         //Mother volume for ITC2
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
@@ -708,16 +706,16 @@ void TileTBFactory::create(GeoPhysVol *world)
         dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1));
-        
+
         GeoTrd* plug2ModuleMother = new GeoTrd(thicknessWedgeMother/2.,
                                                thicknessWedgeMother/2.,
                                                dy1WedgeMother,
                                                dy2WedgeMother,
                                                heightWedgeMother/2.);
-        
+
         GeoLogVol* lvPlug2ModuleMother = new GeoLogVol("Plug2Module",plug2ModuleMother,matAir);
         GeoPhysVol* pvPlug2ModuleMother = new GeoPhysVol(lvPlug2ModuleMother);
-        
+
         // Fill the section
         sectionBuilder->fillSection(pvPlug2ModuleMother,
                                     4,
@@ -725,17 +723,17 @@ void TileTBFactory::create(GeoPhysVol *world)
                                     dbManager->TILBrminimal(),
                                     dzGlue,
                                     deltaPhi);
-        
-        
+
+
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
         GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*Gaudi::Units::cm/2.,
-                                                                            0.,
-                                                                            (dbManager->TILBrmin() - dbManager->TILBrmaximal())*Gaudi::Units::cm/2.));
+                                                                                 0.,
+                                                                                 (dbManager->TILBrmin() - dbManager->TILBrmaximal())*Gaudi::Units::cm/2.));
         pvITCModuleMotherPos->add(tfPlug2ModuleMother);
         pvITCModuleMotherPos->add(pvPlug2ModuleMother);
-        
+
         TRANSFUNCTION xfITCModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*Gaudi::Units::cm)*GeoTrf::RotateX3D(180*Gaudi::Units::deg)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-        
+
         GeoSerialTransformer* stITCModuleMotherPos = new GeoSerialTransformer(pvITCModuleMotherPos,
                                                                               &xfITCModuleMotherPos,
                                                                               NumberOfMod); // all modules at once
@@ -745,48 +743,48 @@ void TileTBFactory::create(GeoPhysVol *world)
 
 
       //------------------- ITC BLOCKS NEG --------------------------------
-       
-      if(((ModType == 6050403)||(ModType == 403))&&(EnvType == 4)){
-          
+
+      if (((ModType == 6050403)||(ModType == 403))&&(EnvType == 4)) {
+
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
         rMinITC = dbManager->TILBrminimal();
         dzITC2 = dbManager->TILBdzmodul();
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
-          
+
         // Common mother for ITC1/2 modules
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * Gaudi::Units::cm;
         dy1WedgeMother = rMinITC * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-          
+
         GeoTrd* itcModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2.,
                                                 thicknessWedgeMother/2.,
                                                 dy1WedgeMother,
                                                 dy2WedgeMother,
-                                                heightWedgeMother/2.);  
-        
+                                                heightWedgeMother/2.);
+
         GeoLogVol* lvITCModuleMotherNeg = new GeoLogVol("ITCModule",itcModuleMotherNeg,matAir);
         GeoPhysVol* pvITCModuleMotherNeg = new GeoPhysVol(lvITCModuleMotherNeg);
-          
+
         //Mother volume for ITC1
         //In plug1 it's necessary to produce GeoShapeUnion for mother volume that is composed by two parts:
         // 1. Mother for absorber and girder
         // 2. Mother for frontplate (since it's short)
-          
+
         //First submother
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * Gaudi::Units::cm;
         dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
-          
+
         dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod());
-          
+
         GeoTrd* plug1SubMother = new GeoTrd(thicknessWedgeMother/2.,
                                             thicknessWedgeMother/2.,
                                             dy1WedgeMother,
                                             dy2WedgeMother,
                                             heightWedgeMother/2.);
-          
+
         //Second submother
         thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * Gaudi::Units::cm;
         heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * Gaudi::Units::cm;
@@ -797,15 +795,15 @@ void TileTBFactory::create(GeoPhysVol *world)
                                             dy1WedgeMother,
                                             dy2WedgeMother,
                                             heightWedgeMother/2.);
-          
+
         GeoTrf::Translate3D plug1SubOffset(-dzITC2*Gaudi::Units::cm/2.,
-                                      0.,
-                                      (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.);
-          
+                                           0.,
+                                           (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*Gaudi::Units::cm/2.);
+
         const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset);
         GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir);
         GeoPhysVol* pvPlug1ModuleMother = new GeoPhysVol(lvPlug1ModuleMother);
-          
+
         // Fill the section
         sectionBuilder->fillSection(pvPlug1ModuleMother,
                                     3,
@@ -815,15 +813,15 @@ void TileTBFactory::create(GeoPhysVol *world)
                                     deltaPhi,
                                     ModuleNcp,
                                     dzITC2);
-        
+
         GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0.,
-                                                                            0.,
-                                                                            (dbManager->TILBrmin()-rMinITC)*Gaudi::Units::cm/2.));
-          
-          
+                                                                                 0.,
+                                                                                 (dbManager->TILBrmin()-rMinITC)*Gaudi::Units::cm/2.));
+
+
         pvITCModuleMotherNeg->add(tfPlug1ModuleMother);
         pvITCModuleMotherNeg->add(pvPlug1ModuleMother);
-          	 
+
         //Mother volume for ITC2
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2);
         thicknessWedgeMother = dbManager->TILBdzmodul() * Gaudi::Units::cm;
@@ -831,16 +829,16 @@ void TileTBFactory::create(GeoPhysVol *world)
         dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*Gaudi::Units::deg) * Gaudi::Units::cm;
         dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1));
-          
+
         GeoTrd* plug2ModuleMother = new GeoTrd(thicknessWedgeMother/2.,
                                                thicknessWedgeMother/2.,
                                                dy1WedgeMother,
                                                dy2WedgeMother,
                                                heightWedgeMother/2.);
-          
+
         GeoLogVol* lvPlug2ModuleMother = new GeoLogVol("Plug2Module",plug2ModuleMother,matAir);
         GeoPhysVol* pvPlug2ModuleMother = new GeoPhysVol(lvPlug2ModuleMother);
-          
+
         // Fill the section
         sectionBuilder->fillSection(pvPlug2ModuleMother,
                                     4,
@@ -848,37 +846,37 @@ void TileTBFactory::create(GeoPhysVol *world)
                                     dbManager->TILBrminimal(),
                                     dzGlue,
                                     deltaPhi);
-        
-          
+
+
         dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1);
         GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*Gaudi::Units::cm/2.,
-                                                                            0.,
-                                                                            (dbManager->TILBrmin() - dbManager->TILBrmaximal())*Gaudi::Units::cm/2.));
+                                                                                 0.,
+                                                                                 (dbManager->TILBrmin() - dbManager->TILBrmaximal())*Gaudi::Units::cm/2.));
         pvITCModuleMotherNeg->add(tfPlug2ModuleMother);
         pvITCModuleMotherNeg->add(pvPlug2ModuleMother);
-          
+
         TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*Gaudi::Units::cm)*GeoTrf::RotateY3D(90*Gaudi::Units::deg);
-          
+
         GeoSerialTransformer* stITCModuleMotherNeg = new GeoSerialTransformer(pvITCModuleMotherNeg,
                                                                               &xfITCModuleMotherNeg,
                                                                               NumberOfMod); // all modules at once
         pvITCMotherNeg->add(new GeoSerialIdentifier(ModPositionNumber));
         pvITCMotherNeg->add(stITCModuleMotherNeg);
-      }  
+      }
     }
- 
+
     double ztrans=0.0;
 
-    if(EnvType == 1 || EnvType == 0) { 
+    if (EnvType == 1 || EnvType == 0) {
       GeoTransform* tfBarrelMother;
       // consider 3 options - with/without ext.barrels and take into account DZ correction
-      if((IfEBPos&&IfEBNeg)||((!IfEBPos)&&(!IfEBNeg))) {
+      if ((IfEBPos&&IfEBNeg)||((!IfEBPos)&&(!IfEBNeg))) {
         ztrans = dbManager->GetEnvDZ();
-      } 
-      else if(IfEBPos&&(!IfEBNeg)) {
+      }
+      else if (IfEBPos&&(!IfEBNeg)) {
         ztrans = dbManager->GetEnvDZ() + (-tileTBEnvThickness/2. + (dbManager->GetEnvZLength())/2.);
-      } 
-      else if((!IfEBPos)&&IfEBNeg) {
+      }
+      else if ((!IfEBPos)&&IfEBNeg) {
         ztrans = dbManager->GetEnvDZ() + ( tileTBEnvThickness/2. - (dbManager->GetEnvZLength())/2.);
       }
       else {
@@ -886,21 +884,21 @@ void TileTBFactory::create(GeoPhysVol *world)
       }
       tfBarrelMother = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning barrel with translation " << ztrans << " cm" << endmsg;
-      GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel"); 
+      GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel");
 
       pvTileTBEnv->add(tfBarrelMother);
       pvTileTBEnv->add(ntBarrelModuleMother);
       pvTileTBEnv->add(pvBarrelMother);
-      
+
       GeoTransform* tfFingerMotherPos;
 
-      if((IfEBPos&&IfEBNeg)||((!IfEBPos)&&(!IfEBNeg))) {
+      if ((IfEBPos&&IfEBNeg)||((!IfEBPos)&&(!IfEBNeg))) {
         ztrans = dbManager->GetEnvDZ() + (dbManager->GetEnvZLength()/2. - BFingerLength/2.);
       }
-      else if((!IfEBPos)&&IfEBNeg) {
+      else if ((!IfEBPos)&&IfEBNeg) {
         ztrans = dbManager->GetEnvDZ() + (tileTBEnvThickness/2. - BFingerLength/2.);
       }
-      else if(IfEBPos&&(!IfEBNeg)) {
+      else if (IfEBPos&&(!IfEBNeg)) {
         ztrans = dbManager->GetEnvDZ() + (-tileTBEnvThickness/2. + dbManager->GetEnvZLength() - BFingerLength/2.);
       }
       else {
@@ -908,7 +906,7 @@ void TileTBFactory::create(GeoPhysVol *world)
       }
       tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning positive barrel finger with translation " << ztrans
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
       GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos");
       pvTileTBEnv->add(tfFingerMotherPos);
       pvTileTBEnv->add(ntFingerMotherPos);
@@ -916,21 +914,21 @@ void TileTBFactory::create(GeoPhysVol *world)
 
       GeoTransform* tfFingerMotherNeg;
 
-      if((IfEBPos&&IfEBNeg)||((!IfEBPos)&&(!IfEBNeg))) {
+      if ((IfEBPos&&IfEBNeg)||((!IfEBPos)&&(!IfEBNeg))) {
         ztrans = dbManager->GetEnvDZ() + (-dbManager->GetEnvZLength()/2. + BFingerLength/2.);
       }
-      else if(IfEBPos&&(!IfEBNeg)) {
+      else if (IfEBPos&&(!IfEBNeg)) {
         ztrans = dbManager->GetEnvDZ() + (-tileTBEnvThickness/2. + BFingerLength/2.);
       }
-      else if((!IfEBPos)&&IfEBNeg) {
+      else if ((!IfEBPos)&&IfEBNeg) {
         ztrans = dbManager->GetEnvDZ() + ( tileTBEnvThickness/2. - dbManager->GetEnvZLength() + BFingerLength/2.);
       }
       else {
         ztrans = 0;
       }
       tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*Gaudi::Units::deg));
-      (*m_log) << MSG::DEBUG << "Positioning negative barrel finger with translation " << ztrans 
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+      (*m_log) << MSG::DEBUG << "Positioning negative barrel finger with translation " << ztrans
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
       GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg");
       pvTileTBEnv->add(tfFingerMotherNeg);
       pvTileTBEnv->add(ntFingerMotherNeg);
@@ -939,21 +937,21 @@ void TileTBFactory::create(GeoPhysVol *world)
     }
 
 
-    if(EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger
+    if (EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger
       ztrans = (tileTBEnvThickness/2. - dbManager->GetEnvZLength()/2. - EBFingerLength/2.);
       GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning positive ext.barrel with translation " << ztrans
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
-      
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+
       GeoNameTag* ntEBarrelMotherPos = new GeoNameTag("EBarrelPos");
       pvTileTBEnv->add(tfEBarrelMotherPos);
       pvTileTBEnv->add(ntEBarrelMotherPos);
       pvTileTBEnv->add(pvEBarrelMotherPos);
-      
+
       ztrans = (tileTBEnvThickness/2. - EBFingerLength/2.);
       GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning positive ext.barrel finger with translation " << ztrans
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
 
       GeoNameTag* ntEFingerMotherPos = new GeoNameTag("TileEFingerPos");
       pvTileTBEnv->add(tfEFingerMotherPos);
@@ -961,22 +959,22 @@ void TileTBFactory::create(GeoPhysVol *world)
       pvTileTBEnv->add(pvEFingerMotherPos);
 
     }
-   
-    if(EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger
+
+    if (EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger
       ztrans = (-tileTBEnvThickness/2. + dbManager->GetEnvZLength()/2. + EBFingerLength/2.);
       GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning negative ext.barrel with translation " << ztrans
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
-      
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+
       GeoNameTag* ntEBarrelMotherNeg = new GeoNameTag("EBarrelNeg");
       pvTileTBEnv->add(tfEBarrelMotherNeg);
       pvTileTBEnv->add(ntEBarrelMotherNeg);
       pvTileTBEnv->add(pvEBarrelMotherNeg);
-      
+
       ztrans = (-tileTBEnvThickness/2. + EBFingerLength/2.);
       GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning negative ext.barrel finger with translation " << ztrans
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
 
       GeoNameTag* ntEFingerMotherNeg = new GeoNameTag("TileEFingerNeg");
       pvTileTBEnv->add(tfEFingerMotherNeg);
@@ -985,11 +983,11 @@ void TileTBFactory::create(GeoPhysVol *world)
 
     }
 
-    if(EnvType == 5) { // positive ITC attached to positive ext.barrel
+    if (EnvType == 5) { // positive ITC attached to positive ext.barrel
       ztrans = (tileTBEnvThickness/2. - ZLengthEBarrelPos - dbManager->GetEnvZLength()/2.);
       GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning positive ITC with translation " << ztrans
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
 
       GeoNameTag* ntITCMotherPos = new GeoNameTag("ITCPos");
       pvTileTBEnv->add(tfITCMotherPos);
@@ -997,11 +995,11 @@ void TileTBFactory::create(GeoPhysVol *world)
       pvTileTBEnv->add(pvITCMotherPos);
     }
 
-    if(EnvType == 4) { // negative ITC attached to negative ext.barrel
+    if (EnvType == 4) { // negative ITC attached to negative ext.barrel
       ztrans = (-tileTBEnvThickness/2. + ZLengthEBarrelNeg + dbManager->GetEnvZLength()/2.);
       GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*Gaudi::Units::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * Gaudi::Units::deg));
       (*m_log) << MSG::DEBUG << "Positioning negative ITC with translation " << ztrans
-          << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
+               << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg;
 
       GeoNameTag* ntITCMotherNeg = new GeoNameTag("ITCNeg");
       pvTileTBEnv->add(tfITCMotherNeg);
@@ -1010,34 +1008,34 @@ void TileTBFactory::create(GeoPhysVol *world)
     }
   }
 
-  // creating Descriptiors and CaloDetDescrElements 
+  // creating Descriptiors and CaloDetDescrElements
 
   int nModulesInSection[6] = {0,0,0,0,0,0};
   float zShiftInSection[6] = {0.0,0.0,0.0,0.0,0.0,0.0,};
-  
+
   NumberOfEnv = dbManager->GetNumberOfEnv();
-  for(int EnvCounter = 0; EnvCounter < NumberOfEnv; ++EnvCounter){ //Loop over Envelopes
+  for (int EnvCounter = 0; EnvCounter < NumberOfEnv; ++EnvCounter) { //Loop over Envelopes
     dbManager->SetCurrentEnvByIndex(EnvCounter);
     int EnvType = dbManager->GetEnvType();
     int NumberOfMod = dbManager->GetEnvNModules();
     float Zshift = dbManager->GetEnvZShift() * Gaudi::Units::cm;
-    (*m_log) << MSG::DEBUG 
-        << "EnvCounter is " << EnvCounter
-        << " EnvType is " << EnvType
-        << " Nmodules is " << NumberOfMod
-        << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm"
-        << endmsg;
-
-    if(EnvType == 1 || EnvType == 0) { // central barrel
+    (*m_log) << MSG::DEBUG
+             << "EnvCounter is " << EnvCounter
+             << " EnvType is " << EnvType
+             << " Nmodules is " << NumberOfMod
+             << " Zshift is " << Zshift*(1./Gaudi::Units::cm) << " cm"
+             << endmsg;
+
+    if (EnvType == 1 || EnvType == 0) { // central barrel
       nModulesInSection[0] = nModulesInSection[1] = NumberOfMod;
       zShiftInSection[0] = zShiftInSection[1] = Zshift;
-    } else if(EnvType < 6) {
+    } else if (EnvType < 6) {
       nModulesInSection[EnvType] = NumberOfMod;
       zShiftInSection[EnvType] = Zshift;
     }
   }
-  
-  TileCablingService * cabling = TileCablingService::getInstance_nc(); 
+
+  TileCablingService * cabling = TileCablingService::getInstance_nc();
   const TileID* tileID = m_detectorManager->get_id();
 
   int dete[6] = {TILE_REGION_CENTRAL,TILE_REGION_CENTRAL,
@@ -1054,7 +1052,7 @@ void TileTBFactory::create(GeoPhysVol *world)
                                      zShiftInSection[ii+1], // zShiftPos
                                      zShiftInSection[ii]);  // zShiftNeg
     }
-    
+
     TileDetDescriptor* descriptor = new TileDetDescriptor();
     sectionBuilder->fillDescriptor(descriptor,
                                    dete[ii],
@@ -1063,22 +1061,21 @@ void TileTBFactory::create(GeoPhysVol *world)
                                    m_switches.addPlatesToCell, // add front/end plates to cell volume
                                    nModulesInSection[ii],   // 0-3 modules
                                    zShiftInSection[ii]);    // Z-shift
-  
+
     Identifier idRegion = tileID->region_id(ii);
     descriptor->set(idRegion);
-    m_detectorManager->add(descriptor); 
+    m_detectorManager->add(descriptor);
     m_detectorManager->add(new TileDetDescrRegion(idRegion, descriptor));
 
     cabling->setConnected(dete[ii],side[ii],0,nModulesInSection[ii]);
   }
 
-  
+
   // Set TileTB as tree top -----------
-  GeoNameTag* nTag = new GeoNameTag("Tile"); 
+  GeoNameTag* nTag = new GeoNameTag("Tile");
   world->add(nTag);
   world->add(pvTileTBEnv);
   m_detectorManager->addTreeTop(pvTileTBEnv);
 
   delete sectionBuilder;
 }
-
diff --git a/TileCalorimeter/TileGeoModel/src/TileTBFactory.h b/TileCalorimeter/TileGeoModel/src/TileTBFactory.h
index 2776740df76243b341625253256ee1510b46d10a..146af78757c2271b519d6eba87d2f61dab92d11b 100755
--- a/TileCalorimeter/TileGeoModel/src/TileTBFactory.h
+++ b/TileCalorimeter/TileGeoModel/src/TileTBFactory.h
@@ -26,28 +26,28 @@ class StoreGateSvc;
 class ATLAS_NOT_THREAD_SAFE TileTBFactory : public GeoVDetectorFactory
 //    ^ modifies cabling during create
 {
-public:
-  
+ public:
+
   /** Constructor */
   TileTBFactory(StoreGateSvc *pDetStore, TileDetDescrManager *manager,
                 const TileSwitches & switches, MsgStream *log);
-  
+
   /** Destructor */
   ~TileTBFactory();
-  
+
   /** Creation of Test Beam Tile geometry */
   virtual void create(GeoPhysVol *world) override;
-  
+
   /** Access function to TileDetDescr geometry data */
   virtual const TileDetDescrManager * getDetectorManager() const override { return m_detectorManager; }
 
-private:  
-  
+ private:
+
   /** Detector pointer to Store Gate service */
   StoreGateSvc              *m_detectorStore;
 
-  /** Detector pointer to TileDetDescrManager */  
-  TileDetDescrManager       *m_detectorManager;  
+  /** Detector pointer to TileDetDescrManager */
+  TileDetDescrManager       *m_detectorManager;
 
   /** Get message SVC */
   MsgStream                 *m_log;
@@ -60,4 +60,3 @@ private:
 };
 
 #endif
-
diff --git a/Tools/PyUtils/python/MetaReader.py b/Tools/PyUtils/python/MetaReader.py
index 21034f5b985c697e967c2ac44efc7a48828791d8..68a4644525f93453b89dfd639feb96f4de3d742d 100644
--- a/Tools/PyUtils/python/MetaReader.py
+++ b/Tools/PyUtils/python/MetaReader.py
@@ -512,6 +512,12 @@ def read_metadata(filenames, file_type = None, mode = 'lite', promote = None, me
                     msg.debug('Taking the luminosity block info from the first event (%i)', evt.lumi_block())
                     meta_dict[filename]['lumiBlockNumbers'] = [evt.lumi_block()]
                     pass
+                # ATLASRECTS-7126: If there is no valid run number information
+                # in the ByteStream header, get the info from the first event.
+                if meta_dict[filename]['runNumbers'] == [0]:
+                    msg.debug('Taking the run number info from the first event (%i)', evt.run_no())
+                    meta_dict[filename]['runNumbers'] = [evt.run_no()]
+                    pass
 
                 # fix for ATEAM-122
                 if len(bs_metadata.get('eventTypes', '')) == 0:  # see: ATMETADATA-6
diff --git a/Tools/WorkflowTestRunner/python/References.py b/Tools/WorkflowTestRunner/python/References.py
index 600deb27be566a1fef63369f7aee5e4e357c9bb9..5dc049631f53285c73377465196970410a919901 100644
--- a/Tools/WorkflowTestRunner/python/References.py
+++ b/Tools/WorkflowTestRunner/python/References.py
@@ -19,7 +19,7 @@ references_map = {
     "d1726": "v7",
     "d1759": "v5",
     # Reco
-    "q442": "v7",
-    "q445": "v17",
-    "q449": "v15",
+    "q442": "v9",
+    "q445": "v18",
+    "q449": "v16",
 }
diff --git a/Tracking/TrkEventCnv/TrkJiveXML/TrkJiveXML/ATLAS_CHECK_THREAD_SAFETY b/Tracking/TrkEventCnv/TrkJiveXML/TrkJiveXML/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..552b64f2906602194ebe1f23c4e6030750c70e40
--- /dev/null
+++ b/Tracking/TrkEventCnv/TrkJiveXML/TrkJiveXML/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Tracking/TrkEventCnv/TrkJiveXML
diff --git a/Tracking/TrkEventCnv/TrkJiveXML/src/SegmentRetriever.cxx b/Tracking/TrkEventCnv/TrkJiveXML/src/SegmentRetriever.cxx
index 73cd7385470c0f0e20d2dc136c7c7dcc8565f35d..fe6e2f2f3a69cd7af33741079fe2decf319b0311 100644
--- a/Tracking/TrkEventCnv/TrkJiveXML/src/SegmentRetriever.cxx
+++ b/Tracking/TrkEventCnv/TrkJiveXML/src/SegmentRetriever.cxx
@@ -1,9 +1,8 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "TrkJiveXML/SegmentRetriever.h"
-#include "StoreGate/DataHandle.h"
 
 #include "TrkSegment/Segment.h"
 #include "TrkSegment/TrackSegment.h"
@@ -41,7 +40,7 @@ namespace JiveXML {
     if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Retrieving " << dataTypeName() <<endmsg; 
 
     //Get an iterator over all segement collections
-    const DataHandle<Trk::SegmentCollection> CollectionItr, CollectionsEnd;
+    SG::ConstIterator<Trk::SegmentCollection> CollectionItr, CollectionsEnd;
     if ((evtStore()->retrieve(CollectionItr, CollectionsEnd)).isFailure()){
       if (msgLvl(MSG::ERROR)) msg(MSG::ERROR) << "Unable to retrieve iterator for Segment collection" << endmsg;
       return StatusCode::RECOVERABLE;
diff --git a/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx b/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx
index 29bdde252a284bdd4cec896769c28ca53c7c76fe..3ad9c61927b38d0139d89031699857359be3ab8f 100644
--- a/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx
+++ b/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx
@@ -427,7 +427,7 @@ namespace JiveXML {
 			//If no collections had been requested explicitly, loop over all of them
 			if (m_OtherTrackCollections.empty()) {
 				//Get an iterator over all other track collections
-				const DataHandle<TrackCollection> trackCollIter, trackCollEnd;
+				SG::ConstIterator<TrackCollection> trackCollIter, trackCollEnd;
 				if ((evtStore()->retrieve(trackCollIter, trackCollEnd)).isFailure()){
 					ATH_MSG_ERROR( "Unable to retrieve track collection iterator" );
 					return StatusCode::RECOVERABLE;
diff --git a/Tracking/TrkEventCnv/TrkJiveXML/src/VertexRetriever.cxx b/Tracking/TrkEventCnv/TrkJiveXML/src/VertexRetriever.cxx
index b3b8693081e2314db212af24e0dafc08f5b7faad..f2b671fb4bfb14e816a67b2ff5535c3f459e02be 100644
--- a/Tracking/TrkEventCnv/TrkJiveXML/src/VertexRetriever.cxx
+++ b/Tracking/TrkEventCnv/TrkJiveXML/src/VertexRetriever.cxx
@@ -24,7 +24,6 @@
 #include "TrkParticleBase/LinkToTrackParticleBase.h"
 #include "TrkParameters/TrackParameters.h"
 
-#include "StoreGate/DataHandle.h"
 
 namespace JiveXML {
 
@@ -150,7 +149,7 @@ namespace JiveXML {
 
     //Get an iterator over all vertex collections,
     //return if there are none
-    const DataHandle<VxContainer> vtxCollectionItr, vtxCollectionsEnd;
+    SG::ConstIterator<VxContainer> vtxCollectionItr, vtxCollectionsEnd;
     if (evtStore()->retrieve(vtxCollectionItr,vtxCollectionsEnd).isFailure()) {
       if (msgLvl(MSG::DEBUG )) msg(MSG::DEBUG ) << "No VxContainer containers found in this event" << endmsg;
       return StatusCode::SUCCESS;
@@ -261,10 +260,10 @@ namespace JiveXML {
 	if (msgLvl(MSG::DEBUG)){ msg(MSG::DEBUG) << " collection " << vtxCollectionItr.key() << ": VertexType: " << vtx_type << endmsg; }
 
         //Store primary vertex candidate flag
-        if ( vtxCollectionItr == primaryVtxCollection ){
+    if ( &(*vtxCollectionItr) == primaryVtxCollection ){
 	  if ( Trk::PriVtx == vtx_type ){ primVxCand.push_back(DataType( 1 )); // type 1 'real' primary vertex
           }else{ primVxCand.push_back(DataType( 0 )); } // hack ! 'type 3 pileup' Should properly use 'vertexType'
-	}else if ( vtxCollectionItr == secondaryVtxCollection ){ 
+	}else if ( &(*vtxCollectionItr) == secondaryVtxCollection ){
 	   primVxCand.push_back(DataType( 2 )); // normally those are 'type 9 Kshort'
         }else{
            primVxCand.push_back(DataType( 0 ));
diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat
index 99e8f1a580e814f1acb26d418627054a74df73c6..5b51cc1cb04f551520bdd423be3ad3aa99b392a0 100644
--- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat
+++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat
@@ -52,13 +52,25 @@ testChains = {
 
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_tag:roi=HLT_Roi_FastElectron:te=0",
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_probe:roi=HLT_Roi_FastElectron:te=1",
+    
+    # new chains
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_tag:roi=HLT_Roi_FastElectron:te=0",
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_probe:roi=HLT_Roi_FastElectron:te=1",
 
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_tag:te=0",
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
+    
+    # new chains
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_tag:te=0",
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
 
     "HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
     "HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
 
+    # new chains
+    "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
+    "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
+
     "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF:HLT_Roi_TauCore",
     "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauIso_FTF:HLT_Roi_TauIso",
     "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_IDTrig:HLT_Roi_TauIso",
@@ -102,9 +114,17 @@ testChains = {
     "HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_FTF:HLT_Roi_FastElectron_LRT:1",
     "HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_IDTrig:HLT_Roi_FastElectron_LRT:1",
 
+    # new chains
+    "HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_FTF:HLT_Roi_FastElectron_LRT:1",
+    "HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_IDTrig:HLT_Roi_FastElectron_LRT:1",
+
     "HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_FTF:HLT_Roi_FastElectron_LRT:0",
     "HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_IDTrig:HLT_Roi_FastElectron_LRT:0",
 
+    # new chains
+    "HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_FTF:HLT_Roi_FastElectron_LRT:0",
+    "HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_IDTrig:HLT_Roi_FastElectron_LRT:0",
+
     "HLT_tau25_idperf_tracktwoLLP_L1TAU12IM:HLT_IDTrack_TauCore_FTF:HLT_Roi_TauCore",
     "HLT_tau25_idperf_tracktwoLLP_L1TAU12IM:HLT_IDTrack_TauIso_FTF:HLT_Roi_TauIso",
     "HLT_tau25_idperf_tracktwoLLP_L1TAU12IM:HLT_IDTrack_Tau_IDTrig:HLT_Roi_TauIso",
diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/python/TrigEgammaMonitCategoryMT.py b/Trigger/TrigMonitoring/TrigEgammaMonitoring/python/TrigEgammaMonitCategoryMT.py
index 5877b0708419f2a30b16430aa9d032943b580d30..59f472ddfd5c63af41097da3d24a073bb595ace5 100644
--- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/python/TrigEgammaMonitCategoryMT.py
+++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/python/TrigEgammaMonitCategoryMT.py
@@ -130,7 +130,7 @@ validationTP_jpsiee = ['HLT_e5_lhtight_L1EM3']
 
 validation_Zee = [
         'HLT_e26_lhtight_e15_etcut_Zee_L1EM22VHI', 
-        'HLT_e26_lhtight_e15_etcut_idperf_Zee_L1EM22VHI', 
+        'HLT_e26_lhtight_e15_idperf_tight_Zee_L1EM22VHI', 
         'HLT_e20_lhtight_ivarloose_L1ZAFB-25DPHI-eEM18I'
         ] # adding Zee/special chains later
 
diff --git a/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py b/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py
index 961874f7c0becef5b8de950308b60060ae801eee..5e212afaf473dc82b112ce6929fd6dedeefb2379 100644
--- a/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py
+++ b/Trigger/TrigMonitoring/TrigIDtrkMonitoring/python/TrigIDtrkMonitoringConfig.py
@@ -99,6 +99,14 @@ def TrigIDtrkMonitoringTool( legacy_monitoring=False ):
                                 "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
                                 "HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
                                 "HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
+
+                                # new chains
+                                "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:roi=HLT_Roi_FastElectron:extra=el_tag:te=0",
+                                "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:roi=HLT_Roi_FastElectron:extra=el_probe:te=1",
+                                "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_tag:te=0",
+                                "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
+                                "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
+                                "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
                         ]
                 else:
                         tidaegamma.ntupleChainNames += [
diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
index 83eddbd8f133fd4d7a2aac751c48b4c50282f9b4..49ee3091fbeb88cd14dc526977af0d78ce0fbefc 100644
--- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
+++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_v1Dev_build.ref
@@ -89,169 +89,195 @@ HLT_2e17_lhvloose_L12EM15VHI:
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 4
     1: 3
-    2: 1
+    2: 3
+    3: 1
 HLT_2e17_lhvloose_L12eEM18M:
   eventCount: 1
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
+    6: 1
   stepFeatures:
     0: 6
-    1: 8
-    2: 3
-    3: 2
+    1: 5
+    2: 8
+    3: 3
     4: 2
     5: 2
+    6: 2
 HLT_2e24_lhvloose_L12EM20VH:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 4
-    1: 3
-    2: 1
+    1: 2
+    2: 3
+    3: 1
 HLT_2e24_lhvloose_L12eEM24L:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 3
-    1: 3
-    2: 1
+    1: 2
+    2: 3
+    3: 1
 HLT_2e5_lhmedium_j70_j50a_j0_DJMASS900j50_L1MJJ-500-NFF:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
-    2: 1
+    1: 4
+    2: 3
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 13
-    1: 17
-    2: 7
-    3: 5
+    1: 13
+    2: 17
+    3: 7
     4: 5
-    5: 1
+    5: 5
+    6: 1
 HLT_2e5_lhmedium_j70_j50a_j0_DJMASS900j50_L1jMJJ-500-NFF:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
-    2: 2
+    1: 4
+    2: 3
     3: 2
     4: 2
+    5: 2
   stepFeatures:
     0: 20
-    1: 31
-    2: 12
-    3: 11
+    1: 20
+    2: 31
+    3: 12
     4: 11
-    5: 1
+    5: 11
+    6: 1
 HLT_2e5_lhvloose_bBeeM6000_L14J15:
   eventCount: 0
   stepCounts:
     0: 6
-    1: 4
-    2: 2
+    1: 6
+    2: 4
     3: 2
     4: 2
+    5: 2
   stepFeatures:
     0: 26
-    1: 29
-    2: 10
-    3: 8
+    1: 22
+    2: 29
+    3: 10
     4: 8
-    5: 4
+    5: 8
+    6: 4
 HLT_2e5_lhvloose_bBeeM6000_L1All:
   eventCount: 0
   stepCounts:
     0: 12
-    1: 7
-    2: 5
+    1: 12
+    2: 7
     3: 5
     4: 5
+    5: 5
   stepFeatures:
     0: 43
-    1: 54
-    2: 17
-    3: 15
+    1: 36
+    2: 54
+    3: 17
     4: 15
-    5: 6
+    5: 15
+    6: 6
 HLT_2e5_lhvloose_bBeeM6000_L1BKeePrescaled:
   eventCount: 0
   stepCounts:
     0: 11
-    1: 10
-    2: 5
+    1: 11
+    2: 10
     3: 5
     4: 5
+    5: 5
   stepFeatures:
     0: 41
-    1: 53
-    2: 19
-    3: 15
+    1: 34
+    2: 53
+    3: 19
     4: 15
-    5: 6
+    5: 15
+    6: 6
 HLT_2e5_lhvloose_bBeeM6000_L1BKeePrimary:
   eventCount: 0
   stepCounts:
     0: 9
-    1: 6
-    2: 4
+    1: 9
+    2: 6
     3: 4
     4: 4
+    5: 4
   stepFeatures:
     0: 37
-    1: 41
-    2: 15
-    3: 13
+    1: 30
+    2: 41
+    3: 15
     4: 13
-    5: 6
+    5: 13
+    6: 6
 HLT_2e5_lhvloose_bBeeM6000_L1BPH-0M9-EM7-EM5_MU5VF:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 4
-    1: 6
+    1: 2
+    2: 6
 HLT_2e5_lhvloose_bBeeM6000_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
-    2: 2
+    1: 4
+    2: 3
     3: 2
     4: 2
+    5: 2
   stepFeatures:
     0: 19
-    1: 17
-    2: 8
-    3: 7
+    1: 14
+    2: 17
+    3: 8
     4: 7
-    5: 3
+    5: 7
+    6: 3
 HLT_2e5_lhvloose_nogsf_bBeeM6000_L12EM3:
   eventCount: 0
   stepCounts:
     0: 12
-    1: 7
-    2: 5
+    1: 12
+    2: 7
     3: 5
+    4: 5
   stepFeatures:
     0: 43
-    1: 54
-    2: 17
-    3: 15
-    4: 6
+    1: 36
+    2: 54
+    3: 17
+    4: 15
+    5: 6
 HLT_2g10_loose_L1eEM9_mu20_L1MU14FCH:
   eventCount: 0
   stepCounts:
@@ -3515,14 +3541,16 @@ HLT_e10_lhmedium_ivarloose_j70_j50a_j0_DJMASS900j50_L1MJJ-500-NFF:
     2: 2
     3: 2
     4: 2
-    5: 1
+    5: 2
+    6: 1
   stepFeatures:
     0: 2
-    1: 3
-    2: 2
+    1: 2
+    2: 3
     3: 2
     4: 2
-    5: 1
+    5: 2
+    6: 1
 HLT_e10_lhmedium_ivarloose_j70_j50a_j0_DJMASS900j50_L1jMJJ-500-NFF:
   eventCount: 0
   stepCounts:
@@ -3532,6 +3560,7 @@ HLT_e10_lhmedium_ivarloose_j70_j50a_j0_DJMASS900j50_L1jMJJ-500-NFF:
     3: 1
     4: 1
     5: 1
+    6: 1
   stepFeatures:
     0: 1
     1: 1
@@ -3539,38 +3568,43 @@ HLT_e10_lhmedium_ivarloose_j70_j50a_j0_DJMASS900j50_L1jMJJ-500-NFF:
     3: 1
     4: 1
     5: 1
+    6: 1
 HLT_e10_lhvloose_L1EM7:
   eventCount: 7
   stepCounts:
     0: 10
     1: 10
-    2: 7
+    2: 10
     3: 7
     4: 7
     5: 7
+    6: 7
   stepFeatures:
     0: 15
-    1: 29
-    2: 9
+    1: 15
+    2: 29
     3: 9
     4: 9
-    5: 8
+    5: 9
+    6: 8
 HLT_e10_lhvloose_L1eEM9:
   eventCount: 7
   stepCounts:
     0: 10
     1: 10
-    2: 7
+    2: 10
     3: 7
     4: 7
     5: 7
+    6: 7
   stepFeatures:
     0: 17
-    1: 35
-    2: 10
+    1: 17
+    2: 35
     3: 10
     4: 10
-    5: 9
+    5: 10
+    6: 9
 HLT_e120_etcut_L1EM22VHI:
   eventCount: 0
 HLT_e120_etcut_L1eEM26M:
@@ -3595,34 +3629,34 @@ HLT_e140_lhloose_noringer_L1EM22VHI:
   eventCount: 0
 HLT_e140_lhloose_noringer_L1eEM26M:
   eventCount: 0
-HLT_e14_etcut_idperf_L1EM7:
-  eventCount: 19
+HLT_e14_idperf_loose_L1EM7:
+  eventCount: 5
   stepCounts:
-    0: 20
-    1: 20
-    2: 19
-    3: 19
-    4: 19
+    0: 8
+    1: 8
+    2: 5
+    3: 5
+    4: 5
   stepFeatures:
-    0: 56
-    1: 56
-    2: 62
-    3: 62
-    4: 62
-HLT_e14_etcut_idperf_L1eEM9:
-  eventCount: 19
+    0: 12
+    1: 12
+    2: 9
+    3: 9
+    4: 9
+HLT_e14_idperf_loose_L1eEM9:
+  eventCount: 5
   stepCounts:
-    0: 20
-    1: 20
-    2: 19
-    3: 19
-    4: 19
+    0: 8
+    1: 8
+    2: 5
+    3: 5
+    4: 5
   stepFeatures:
-    0: 74
-    1: 74
-    2: 86
-    3: 86
-    4: 86
+    0: 12
+    1: 12
+    2: 9
+    3: 9
+    4: 9
 HLT_e14_idperf_tight_L1EM7:
   eventCount: 5
   stepCounts:
@@ -3684,25 +3718,29 @@ HLT_e14_lhtight_e4_etcut_1invmAB5_L1JPSI-1M5-eEM15:
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
+    6: 1
   stepFeatures:
     0: 92
-    1: 107
-    2: 58
-    3: 1
+    1: 36
+    2: 107
+    3: 58
     4: 1
     5: 1
-HLT_e14_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-EM12:
+    6: 1
+HLT_e14_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM12:
+  eventCount: 0
+HLT_e14_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
-HLT_e14_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM15:
+HLT_e14_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM15:
   eventCount: 1
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
@@ -3710,25 +3748,27 @@ HLT_e14_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM15:
     7: 1
     8: 1
     9: 1
+    10: 1
   stepFeatures:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
-    6: 17
-    7: 16
-    8: 33
-    9: 33
-HLT_e14_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-EM12:
+    6: 1
+    7: 5
+    8: 5
+    9: 6
+    10: 6
+HLT_e14_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
-HLT_e14_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-eEM15:
+HLT_e14_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-eEM15:
   eventCount: 1
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
@@ -3737,20 +3777,20 @@ HLT_e14_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-eEM15:
     8: 1
     9: 1
     10: 1
+    11: 1
   stepFeatures:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
-    6: 17
-    7: 16
-    8: 33
-    9: 33
-    10: 33
-HLT_e14_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM12:
-  eventCount: 0
+    6: 1
+    7: 5
+    8: 5
+    9: 6
+    10: 6
+    11: 6
 HLT_e14_lhtight_mu6_dRAB15_invmAB10_L1LFV-eEM15L-MU5VF:
   eventCount: 0
 HLT_e14_lhvloose_L1EM10VH:
@@ -3758,17 +3798,19 @@ HLT_e14_lhvloose_L1EM10VH:
   stepCounts:
     0: 7
     1: 7
-    2: 5
+    2: 7
     3: 5
     4: 5
     5: 5
+    6: 5
   stepFeatures:
     0: 10
-    1: 14
-    2: 6
+    1: 10
+    2: 14
     3: 6
     4: 6
     5: 6
+    6: 6
 HLT_e14_lhvloose_L1eEM12L:
   eventCount: 5
   stepCounts:
@@ -3778,13 +3820,15 @@ HLT_e14_lhvloose_L1eEM12L:
     3: 5
     4: 5
     5: 5
+    6: 5
   stepFeatures:
     0: 8
-    1: 11
-    2: 6
+    1: 8
+    2: 11
     3: 6
     4: 6
     5: 6
+    6: 6
 HLT_e17_lhloose_mu14_L1EM15VH_MU8F:
   eventCount: 0
 HLT_e17_lhloose_mu14_L1eEM18L_MU8F:
@@ -3797,23 +3841,25 @@ HLT_e17_lhmedium_ivarloose_tau25_mediumRNN_tracktwoMVA_03dRAB_L1EM15VHI_2TAU12IM
     2: 3
     3: 3
     4: 3
-    5: 1
+    5: 3
     6: 1
     7: 1
     8: 1
     9: 1
+    10: 1
   stepFeatures:
     0: 5
-    1: 7
-    2: 3
+    1: 5
+    2: 7
     3: 3
     4: 3
-    5: 1
-    6: 2
+    5: 3
+    6: 1
     7: 2
     8: 2
     9: 2
-    10: 1
+    10: 2
+    11: 1
 HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRAB_L1EM15VHI_2TAU12IM_XE35:
   eventCount: 0
   stepCounts:
@@ -3822,12 +3868,14 @@ HLT_e17_lhmedium_tau25_mediumRNN_tracktwoMVA_xe50_cell_03dRAB_L1EM15VHI_2TAU12IM
     2: 3
     3: 3
     4: 3
+    5: 3
   stepFeatures:
     0: 5
-    1: 7
-    2: 3
+    1: 5
+    2: 7
     3: 3
     4: 3
+    5: 3
 HLT_e17_lhvloose_L1EM15VHI:
   eventCount: 5
   stepCounts:
@@ -3837,13 +3885,15 @@ HLT_e17_lhvloose_L1EM15VHI:
     3: 5
     4: 5
     5: 5
+    6: 5
   stepFeatures:
     0: 7
-    1: 9
-    2: 5
+    1: 7
+    2: 9
     3: 5
     4: 5
     5: 5
+    6: 5
 HLT_e20_idperf_loose_lrtloose_L1EM15VH:
   eventCount: 5
   stepCounts:
@@ -3854,10 +3904,10 @@ HLT_e20_idperf_loose_lrtloose_L1EM15VH:
     4: 5
   stepFeatures:
     0: 8
-    1: 7
-    2: 6
-    3: 6
-    4: 6
+    1: 8
+    2: 7
+    3: 7
+    4: 7
 HLT_e20_idperf_loose_lrtloose_L1eEM18L:
   eventCount: 5
   stepCounts:
@@ -3868,10 +3918,10 @@ HLT_e20_idperf_loose_lrtloose_L1eEM18L:
     4: 5
   stepFeatures:
     0: 8
-    1: 7
-    2: 6
-    3: 6
-    4: 6
+    1: 8
+    2: 7
+    3: 7
+    4: 7
 HLT_e20_lhloose_L1EM15VH:
   eventCount: 4
   stepCounts:
@@ -3880,14 +3930,16 @@ HLT_e20_lhloose_L1EM15VH:
     2: 5
     3: 5
     4: 5
-    5: 4
+    5: 5
+    6: 4
   stepFeatures:
     0: 8
-    1: 11
-    2: 5
+    1: 8
+    2: 11
     3: 5
     4: 5
-    5: 4
+    5: 5
+    6: 4
 HLT_e20_lhmedium_L1EM15VH:
   eventCount: 3
   stepCounts:
@@ -3896,78 +3948,88 @@ HLT_e20_lhmedium_L1EM15VH:
     2: 5
     3: 5
     4: 5
-    5: 3
+    5: 5
+    6: 3
   stepFeatures:
     0: 8
-    1: 11
-    2: 5
+    1: 8
+    2: 11
     3: 5
     4: 5
-    5: 3
+    5: 5
+    6: 3
 HLT_e20_lhtight_L1EM15VH:
   eventCount: 3
   stepCounts:
     0: 5
-    1: 4
+    1: 5
     2: 4
     3: 4
     4: 4
-    5: 3
+    5: 4
+    6: 3
   stepFeatures:
     0: 7
-    1: 8
-    2: 4
+    1: 7
+    2: 8
     3: 4
     4: 4
-    5: 3
+    5: 4
+    6: 3
 HLT_e20_lhtight_ivarloose_L12EM7:
   eventCount: 3
   stepCounts:
     0: 5
-    1: 4
+    1: 5
     2: 4
     3: 4
     4: 4
-    5: 3
+    5: 4
+    6: 3
   stepFeatures:
     0: 7
-    1: 8
-    2: 4
+    1: 7
+    2: 8
     3: 4
     4: 4
-    5: 3
+    5: 4
+    6: 3
 HLT_e20_lhtight_ivarloose_L1EM15VH:
   eventCount: 3
   stepCounts:
     0: 5
-    1: 4
+    1: 5
     2: 4
     3: 4
     4: 4
-    5: 3
+    5: 4
+    6: 3
   stepFeatures:
     0: 7
-    1: 8
-    2: 4
+    1: 7
+    2: 8
     3: 4
     4: 4
-    5: 3
+    5: 4
+    6: 3
 HLT_e20_lhtight_ivarloose_L1EM15VHI:
   eventCount: 2
   stepCounts:
     0: 5
-    1: 4
-    2: 3
+    1: 5
+    2: 4
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 6
     1: 6
-    2: 3
+    2: 6
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e20_lhtight_ivarloose_L1ZAFB-25DPHI-eEM18M:
   eventCount: 1
   stepCounts:
@@ -3977,13 +4039,15 @@ HLT_e20_lhtight_ivarloose_L1ZAFB-25DPHI-eEM18M:
     3: 1
     4: 1
     5: 1
+    6: 1
   stepFeatures:
     0: 1
-    1: 2
-    2: 1
+    1: 1
+    2: 2
     3: 1
     4: 1
     5: 1
+    6: 1
 HLT_e20_lhvloose_L1EM15VH:
   eventCount: 5
   stepCounts:
@@ -3993,13 +4057,15 @@ HLT_e20_lhvloose_L1EM15VH:
     3: 5
     4: 5
     5: 5
+    6: 5
   stepFeatures:
     0: 8
-    1: 11
-    2: 5
+    1: 8
+    2: 11
     3: 5
     4: 5
     5: 5
+    6: 5
 HLT_e20_lhvloose_L1eEM18L:
   eventCount: 5
   stepCounts:
@@ -4009,13 +4075,15 @@ HLT_e20_lhvloose_L1eEM18L:
     3: 5
     4: 5
     5: 5
+    6: 5
   stepFeatures:
     0: 8
-    1: 11
-    2: 5
+    1: 8
+    2: 11
     3: 5
     4: 5
     5: 5
+    6: 5
 HLT_e24_lhmedium_g12_loose_g12_loose_02dRAB_02dRAC_02dRBC_L1EM20VH_3EM10VH:
   eventCount: 0
   stepCounts:
@@ -4024,12 +4092,14 @@ HLT_e24_lhmedium_g12_loose_g12_loose_02dRAB_02dRAC_02dRBC_L1EM20VH_3EM10VH:
     2: 2
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 31
-    1: 14
-    2: 12
+    1: 13
+    2: 14
     3: 8
     4: 1
+    5: 1
 HLT_e24_lhmedium_g12_loose_g12_loose_02dRAB_02dRAC_02dRBC_L1eEM24L_3eEM12L:
   eventCount: 0
   stepFeatures:
@@ -4042,13 +4112,15 @@ HLT_e24_lhmedium_g25_medium_02dRAB_L12EM20VH:
     2: 3
     3: 3
     4: 3
+    5: 3
   stepFeatures:
     0: 11
-    1: 11
-    2: 9
+    1: 10
+    2: 11
     3: 6
     4: 3
-    5: 1
+    5: 3
+    6: 1
 HLT_e24_lhmedium_g25_medium_02dRAB_L12eEM24L:
   eventCount: 0
   stepCounts:
@@ -4057,12 +4129,14 @@ HLT_e24_lhmedium_g25_medium_02dRAB_L12eEM24L:
     2: 2
     3: 2
     4: 2
+    5: 2
   stepFeatures:
     0: 7
-    1: 7
-    2: 5
+    1: 6
+    2: 7
     3: 4
     4: 2
+    5: 2
 HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRAB_L1EM22VHI:
   eventCount: 0
   stepCounts:
@@ -4071,98 +4145,110 @@ HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRAB_L1EM22VHI:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 5
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
-    6: 10
+    5: 4
+    6: 2
     7: 10
     8: 10
     9: 10
-    10: 2
+    10: 10
+    11: 2
 HLT_e24_lhmedium_ivarloose_tau20_mediumRNN_tracktwoMVA_03dRAB_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 10
+    5: 4
+    6: 2
     7: 10
     8: 10
     9: 10
-    10: 2
+    10: 10
+    11: 2
 HLT_e24_lhtight_ivarloose_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e24_lhtight_ivarloose_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e24_lhvloose_2e12_lhvloose_L1EM20VH_3EM10VH:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 8
-    1: 6
-    2: 2
+    1: 5
+    2: 6
+    3: 2
 HLT_e24_lhvloose_2e12_lhvloose_L1eEM24L_3eEM12L:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 5
-    1: 6
-    2: 2
+    1: 5
+    2: 6
+    3: 2
 HLT_e250_etcut_L1EM22VHI:
   eventCount: 0
 HLT_e250_etcut_L1eEM26M:
@@ -4175,13 +4261,15 @@ HLT_e25_mergedtight_g35_medium_90invmAB_02dRAB_L12EM20VH:
     2: 2
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 11
-    1: 22
-    2: 7
+    1: 9
+    2: 20
     3: 6
     4: 2
     5: 2
+    6: 2
 HLT_e25_mergedtight_g35_medium_90invmAB_02dRAB_L12eEM24L:
   eventCount: 0
   stepCounts:
@@ -4190,13 +4278,15 @@ HLT_e25_mergedtight_g35_medium_90invmAB_02dRAB_L12eEM24L:
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 5
-    1: 6
-    2: 3
+    1: 3
+    2: 6
     3: 3
     4: 2
     5: 2
+    6: 2
 HLT_e26_dnnloose_L1EM22VHI:
   eventCount: 2
   stepCounts:
@@ -4205,14 +4295,16 @@ HLT_e26_dnnloose_L1EM22VHI:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 5
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e26_dnnmedium_L1EM22VHI:
   eventCount: 2
   stepCounts:
@@ -4221,56 +4313,64 @@ HLT_e26_dnnmedium_L1EM22VHI:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 5
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e26_dnntight_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_dnntight_ivarloose_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-  stepFeatures:
+    5: 3
+    6: 2
+  stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_etcut_L1EM22VHI:
   eventCount: 10
   stepCounts:
     0: 10
     1: 10
     2: 10
+    3: 10
   stepFeatures:
     0: 12
-    1: 31
-    2: 11
+    1: 12
+    2: 31
+    3: 11
 HLT_e26_idperf_loose_L1EM22VHI:
   eventCount: 4
   stepCounts:
@@ -4359,429 +4459,473 @@ HLT_e26_lhmedium_mu8noL1_L1EM22VHI:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 5
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e26_lhtight_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_lhtight_e14_etcut_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 34
-    1: 38
-    2: 14
-    3: 3
+    1: 17
+    2: 38
+    3: 14
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_lhtight_e14_etcut_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 44
-    1: 60
-    2: 24
-    3: 4
+    1: 24
+    2: 60
+    3: 24
     4: 4
-    5: 2
-HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:
+    5: 4
+    6: 2
+HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 7
+    5: 3
+    6: 2
     7: 7
-    8: 9
-    9: 9
-HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1eEM26M:
+    8: 7
+    9: 23
+    10: 9
+HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 9
+    5: 4
+    6: 2
     7: 9
-    8: 13
-    9: 13
-HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:
-  eventCount: 2
+    8: 9
+    9: 30
+    10: 13
+HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:
+  eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 2
-    8: 2
-    9: 2
-    10: 2
+    7: 1
+    8: 1
+    9: 1
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 7
-    7: 7
-    8: 9
-    9: 9
-    10: 9
-HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1eEM26M:
-  eventCount: 2
+    5: 3
+    6: 2
+    7: 3
+    8: 2
+    9: 2
+    10: 2
+HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1eEM26M:
+  eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-    7: 2
-    8: 2
-    9: 2
-    10: 2
+    7: 1
+    8: 1
+    9: 1
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 9
-    7: 9
-    8: 13
-    9: 13
-    10: 13
-HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1EM22VHI:
-  eventCount: 2
+    5: 4
+    6: 2
+    7: 3
+    8: 2
+    9: 2
+    10: 2
+HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:
+  eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 2
-    8: 2
+    7: 1
+    8: 1
+    9: 1
+    10: 1
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 7
-    7: 23
-    8: 9
-HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1eEM26M:
-  eventCount: 2
+    5: 3
+    6: 2
+    7: 3
+    8: 2
+    9: 2
+    10: 2
+    11: 2
+HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1eEM26M:
+  eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-    7: 2
-    8: 2
+    7: 1
+    8: 1
+    9: 1
+    10: 1
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 9
-    7: 30
-    8: 13
+    5: 4
+    6: 2
+    7: 3
+    8: 2
+    9: 2
+    10: 2
+    11: 2
 HLT_e26_lhtight_ivarloose_2j20_0eta290_020jvt_boffperf_pf_ftf_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
+    9: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 13
+    7: 2
     8: 13
+    9: 13
 HLT_e26_lhtight_ivarloose_2j20_0eta290_020jvt_boffperf_pf_ftf_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
+    9: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-    7: 13
+    7: 2
     8: 13
+    9: 13
 HLT_e26_lhtight_ivarloose_2j20_roiftf_preselj20_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
+    8: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 16
+    7: 2
+    8: 16
 HLT_e26_lhtight_ivarloose_2j20_roiftf_preselj20_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
+    8: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-    7: 16
+    7: 2
+    8: 16
 HLT_e26_lhtight_ivarloose_L1EM22VH:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_lhtight_ivarloose_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_lhtight_ivarloose_L1eEM26:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e26_lhtight_ivarloose_L1eEM26L:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e26_lhtight_ivarloose_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e26_lhtight_ivarloose_L1eEM26T:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e26_lhtight_ivarloose_e12_lhvloose_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e12_lhvloose_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-HLT_e26_lhtight_ivarloose_e14_etcut_idperf_probe_L1EM22VHI:
+    7: 2
+HLT_e26_lhtight_ivarloose_e14_etcut_probe_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
@@ -4789,833 +4933,934 @@ HLT_e26_lhtight_ivarloose_e14_etcut_idperf_probe_L1EM22VHI:
     10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 7
+    5: 3
+    6: 2
     7: 7
-    8: 9
-    9: 9
+    8: 7
+    9: 23
     10: 9
-HLT_e26_lhtight_ivarloose_e14_etcut_probe_L1EM22VHI:
-  eventCount: 2
-  stepCounts:
-    0: 4
-    1: 3
-    2: 3
-    3: 3
-    4: 3
-    5: 2
-    6: 2
-    7: 2
-    8: 2
-  stepFeatures:
-    0: 4
-    1: 3
-    2: 3
-    3: 3
-    4: 3
-    5: 2
-    6: 7
-    7: 23
-    8: 9
 HLT_e26_lhtight_ivarloose_e14_etcut_probe_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
+    9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 9
-    7: 30
-    8: 13
-HLT_e26_lhtight_ivarloose_e14_lhtight_probe_L1EM22VHI:
-  eventCount: 0
+    5: 4
+    6: 2
+    7: 9
+    8: 9
+    9: 30
+    10: 13
+HLT_e26_lhtight_ivarloose_e14_idperf_tight_probe_L1EM22VHI:
+  eventCount: 1
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 1
+    5: 3
+    6: 2
     7: 1
     8: 1
     9: 1
     10: 1
+    11: 1
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 3
-    7: 4
+    5: 3
+    6: 2
+    7: 3
     8: 2
     9: 2
     10: 2
+    11: 2
+HLT_e26_lhtight_ivarloose_e14_lhtight_probe_L1EM22VHI:
+  eventCount: 0
+  stepCounts:
+    0: 4
+    1: 4
+    2: 3
+    3: 3
+    4: 3
+    5: 3
+    6: 2
+    7: 1
+    8: 1
+    9: 1
+    10: 1
     11: 1
+    12: 1
+  stepFeatures:
+    0: 4
+    1: 4
+    2: 3
+    3: 3
+    4: 3
+    5: 3
+    6: 2
+    7: 3
+    8: 2
+    9: 4
+    10: 2
+    11: 2
+    12: 2
+    13: 1
 HLT_e26_lhtight_ivarloose_e14_lhtight_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
-    6: 1
+    5: 4
+    6: 2
     7: 1
     8: 1
     9: 1
     10: 1
+    11: 1
+    12: 1
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 3
-    7: 4
+    5: 4
+    6: 2
+    7: 3
     8: 2
-    9: 2
+    9: 4
     10: 2
-    11: 1
-HLT_e26_lhtight_ivarloose_e15_etcut_idperf_probe_L1eEM26M:
-  eventCount: 2
+    11: 2
+    12: 2
+    13: 1
+HLT_e26_lhtight_ivarloose_e15_idperf_tight_probe_L1eEM26M:
+  eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-    7: 2
-    8: 2
-    9: 2
-    10: 2
+    7: 1
+    8: 1
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 9
-    7: 9
-    8: 9
-    9: 9
-    10: 9
+    5: 4
+    6: 2
+    7: 3
+    8: 2
+    9: 1
 HLT_e26_lhtight_ivarloose_e17_lhvloose_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e17_lhvloose_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e20_lhtight_ivarloose_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e24_lhvloose_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e24_lhvloose_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e26_lhtight_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e26_lhtight_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_lrtmedium_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_lrtmedium_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e4_etcut_probe_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
+    9: 2
+    10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 16
-    7: 43
-    8: 28
+    5: 3
+    6: 2
+    7: 16
+    8: 16
+    9: 43
+    10: 28
 HLT_e26_lhtight_ivarloose_e4_etcut_probe_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
+    9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 24
-    7: 79
-    8: 49
+    5: 4
+    6: 2
+    7: 24
+    8: 24
+    9: 79
+    10: 49
+HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI:
+  eventCount: 2
+  stepCounts:
+    0: 4
+    1: 4
+    2: 3
+    3: 3
+    4: 3
+    5: 3
+    6: 2
+    7: 2
+    8: 2
+    9: 2
+    10: 2
+    11: 2
+  stepFeatures:
+    0: 4
+    1: 4
+    2: 3
+    3: 3
+    4: 3
+    5: 3
+    6: 2
+    7: 7
+    8: 7
+    9: 7
+    10: 7
+    11: 7
 HLT_e26_lhtight_ivarloose_e5_lhtight_noringer_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
     10: 2
+    11: 2
+    12: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 9
-    7: 23
+    5: 4
+    6: 2
+    7: 9
     8: 9
-    9: 9
+    9: 23
     10: 9
-    11: 2
+    11: 9
+    12: 9
+    13: 2
 HLT_e26_lhtight_ivarloose_e5_lhtight_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
     10: 2
+    11: 2
+    12: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 7
-    7: 11
+    5: 3
+    6: 2
+    7: 7
     8: 7
-    9: 7
+    9: 11
     10: 7
-    11: 2
+    11: 7
+    12: 7
+    13: 2
 HLT_e26_lhtight_ivarloose_e5_lhtight_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
     10: 2
+    11: 2
+    12: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 7
-    7: 11
-    8: 8
-    9: 8
-    10: 8
-    11: 2
-HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI:
-  eventCount: 2
-  stepCounts:
-    0: 4
-    1: 3
-    2: 3
-    3: 3
-    4: 3
-    5: 2
+    5: 4
     6: 2
-    7: 2
-    8: 2
-    9: 2
-    10: 2
-  stepFeatures:
-    0: 4
-    1: 3
-    2: 3
-    3: 3
-    4: 3
-    5: 2
-    6: 7
     7: 7
     8: 7
-    9: 7
-    10: 7
-HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1eEM26M:
+    9: 11
+    10: 8
+    11: 8
+    12: 8
+    13: 2
+HLT_e26_lhtight_ivarloose_e5_loose_lrtloose_idperf_probe_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
     10: 2
+    11: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 9
+    5: 4
+    6: 2
     7: 9
     8: 9
     9: 9
     10: 9
+    11: 9
 HLT_e26_lhtight_ivarloose_e7_lhmedium_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
+    7: 2
 HLT_e26_lhtight_ivarloose_e9_etcut_probe_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
+    9: 2
+    10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 10
-    7: 30
-    8: 16
+    5: 3
+    6: 2
+    7: 10
+    8: 10
+    9: 30
+    10: 16
 HLT_e26_lhtight_ivarloose_e9_etcut_probe_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
+    9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 16
-    7: 58
-    8: 26
+    5: 4
+    6: 2
+    7: 16
+    8: 16
+    9: 58
+    10: 26
 HLT_e26_lhtight_ivarloose_e9_lhtight_probe_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
-    8: 1
-    9: 1
+    8: 2
+    9: 2
     10: 1
+    11: 1
+    12: 1
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 5
-    7: 9
-    8: 3
-    9: 2
-    10: 2
-    11: 1
+    5: 3
+    6: 2
+    7: 5
+    8: 5
+    9: 9
+    10: 3
+    11: 2
+    12: 2
+    13: 1
 HLT_e26_lhtight_ivarloose_e9_lhtight_probe_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
-    8: 1
-    9: 1
+    8: 2
+    9: 2
     10: 1
+    11: 1
+    12: 1
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 6
-    7: 11
-    8: 3
-    9: 2
-    10: 2
-    11: 1
+    5: 4
+    6: 2
+    7: 6
+    8: 6
+    9: 11
+    10: 3
+    11: 2
+    12: 2
+    13: 1
 HLT_e26_lhtight_ivarloose_j20_pf_ftf_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
+    8: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 14
+    7: 2
+    8: 14
 HLT_e26_lhtight_ivarloose_mu22noL1_2j20_0eta290_020jvt_bdl1d85_pf_ftf_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
-    8: 1
+    8: 2
+    9: 1
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 13
-    8: 4
+    7: 2
+    8: 13
+    9: 4
 HLT_e26_lhtight_ivarloose_mu22noL1_2j20_0eta290_020jvt_bgn185_pf_ftf_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
-    8: 1
+    8: 2
+    9: 1
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 13
-    8: 4
+    7: 2
+    8: 13
+    9: 4
 HLT_e26_lhtight_ivarloose_mu22noL1_j20_0eta290_020jvt_boffperf_pf_ftf_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
+    9: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 13
+    7: 2
     8: 13
+    9: 13
 HLT_e26_lhtight_ivarloose_mu22noL1_j20_0eta290_020jvt_boffperf_pf_ftf_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
+    9: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-    7: 13
+    7: 2
     8: 13
+    9: 13
 HLT_e26_lhtight_ivarloose_mu22noL1_j20_0eta290_020jvt_pf_ftf_boffperf_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
+    9: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 13
+    7: 2
     8: 13
+    9: 13
 HLT_e26_lhtight_ivarloose_mu22noL1_j20_roiftf_preselj20_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
+    8: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
-    7: 16
+    7: 2
+    8: 16
 HLT_e26_lhtight_ivarloose_mu22noL1_j20_roiftf_preselj20_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
+    8: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
-    7: 16
+    7: 2
+    8: 16
 HLT_e26_lhtight_ivarloose_nogsf_L1EM22VH:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
-    4: 2
+    4: 3
+    5: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
-    4: 2
+    4: 3
+    5: 2
 HLT_e26_lhtight_ivarloose_nogsf_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
-    4: 2
+    4: 3
+    5: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
-    4: 2
+    4: 3
+    5: 2
 HLT_e26_lhtight_ivarloose_noringer_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_lhtight_ivarloose_tau100_mediumRNN_tracktwoLLP_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepFeatures:
@@ -5640,202 +5885,218 @@ HLT_e26_lhtight_ivarloose_tau20_mediumRNN_tracktwoMVA_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 10
+    5: 3
+    6: 2
     7: 10
     8: 10
     9: 10
-    10: 2
+    10: 10
+    11: 2
 HLT_e26_lhtight_ivarloose_tau20_mediumRNN_tracktwoMVA_probe_03dRAB_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 10
+    5: 4
+    6: 2
     7: 10
     8: 10
     9: 10
-    10: 2
+    10: 10
+    11: 2
 HLT_e26_lhtight_ivarloose_tau25_mediumRNN_tracktwoMVA_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 4
+    5: 3
+    6: 2
     7: 4
     8: 4
     9: 4
-    10: 2
+    10: 4
+    11: 2
 HLT_e26_lhtight_ivarloose_tau25_mediumRNN_tracktwoMVA_probe_03dRAB_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 5
+    5: 4
+    6: 2
     7: 5
     8: 5
     9: 5
-    10: 2
+    10: 5
+    11: 2
 HLT_e26_lhtight_ivarloose_tau35_mediumRNN_tracktwoMVA_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
-    10: 1
+    10: 2
+    11: 1
 HLT_e26_lhtight_ivarloose_tau35_mediumRNN_tracktwoMVA_probe_03dRAB_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 5
+    5: 4
+    6: 2
     7: 5
     8: 5
     9: 5
-    10: 2
+    10: 5
+    11: 2
 HLT_e26_lhtight_ivarloose_tau40_mediumRNN_tracktwoMVA_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
-    10: 1
+    10: 2
+    11: 1
 HLT_e26_lhtight_ivarloose_tau40_mediumRNN_tracktwoMVA_probe_03dRAB_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 5
     1: 5
-    2: 4
+    2: 5
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 8
-    2: 4
+    1: 6
+    2: 8
     3: 4
     4: 4
-    5: 2
-    6: 3
+    5: 4
+    6: 2
     7: 3
     8: 3
     9: 3
-    10: 1
+    10: 3
+    11: 1
 HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoLLP_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepCounts:
@@ -5844,22 +6105,24 @@ HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoLLP_probe_03dRAB_L1EM22VHI:
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 4
     1: 3
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 3
+    5: 3
+    6: 2
     7: 3
     8: 3
     9: 3
+    10: 3
 HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoLLP_probe_03dRAB_L1eEM26M:
   eventCount: 0
   stepCounts:
@@ -5868,22 +6131,24 @@ HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoLLP_probe_03dRAB_L1eEM26M:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
 HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoMVA_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepCounts:
@@ -5892,22 +6157,24 @@ HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoMVA_probe_03dRAB_L1EM22VHI:
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 4
     1: 3
     2: 3
     3: 3
     4: 3
-    5: 2
-    6: 3
+    5: 3
+    6: 2
     7: 3
     8: 3
     9: 3
+    10: 3
 HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoMVA_probe_03dRAB_L1eEM26M:
   eventCount: 0
   stepCounts:
@@ -5916,22 +6183,24 @@ HLT_e26_lhtight_ivarloose_tau60_mediumRNN_tracktwoMVA_probe_03dRAB_L1eEM26M:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
   stepFeatures:
     0: 6
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 2
 HLT_e26_lhtight_ivarloose_tau80_mediumRNN_tracktwoLLP_probe_03dRAB_L1EM22VHI:
   eventCount: 0
   stepFeatures:
@@ -5952,34 +6221,38 @@ HLT_e26_lhtight_ivarmedium_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e26_lhtight_ivartight_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e28_lhmedium_mu8noL1_L1EM24VHI:
   eventCount: 0
   stepCounts:
@@ -5988,30 +6261,34 @@ HLT_e28_lhmedium_mu8noL1_L1EM24VHI:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 5
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e28_lhtight_ivarloose_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e28_lhtight_ivarloose_L1eEM26M:
   eventCount: 2
   stepCounts:
@@ -6020,14 +6297,16 @@ HLT_e28_lhtight_ivarloose_L1eEM26M:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 5
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e28_lhtight_ivarloose_L1eEM26T:
   eventCount: 2
   stepCounts:
@@ -6036,46 +6315,52 @@ HLT_e28_lhtight_ivarloose_L1eEM26T:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 5
-    1: 6
-    2: 4
+    1: 5
+    2: 6
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
 HLT_e28_lhtight_ivarloose_noringer_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e28_lhtight_ivarloose_noringer_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e300_etcut_L1EM22VHI:
   eventCount: 0
 HLT_e300_etcut_L1eEM26M:
@@ -6112,30 +6397,34 @@ HLT_e30_lhloose_nopix_lrtmedium_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 1
+    1: 4
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 5
-    1: 1
+    1: 5
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e30_lhloose_nopix_lrtmedium_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 1
+    1: 4
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 5
-    1: 1
+    1: 5
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1EM20VH:
   eventCount: 0
   stepCounts:
@@ -6144,12 +6433,14 @@ HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1EM20VH:
     2: 6
     3: 4
     4: 1
+    5: 1
   stepFeatures:
     0: 15
     1: 9
     2: 9
     3: 4
     4: 5
+    5: 2
 HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1eEM24L:
   eventCount: 0
   stepCounts:
@@ -6158,257 +6449,331 @@ HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1eEM24L:
     2: 6
     3: 4
     4: 1
+    5: 1
   stepFeatures:
     0: 12
     1: 8
     2: 7
     3: 4
     4: 5
+    5: 2
 HLT_e30_lhvloose_L1EM22VHI:
   eventCount: 3
   stepCounts:
     0: 4
     1: 4
-    2: 3
+    2: 4
     3: 3
     4: 3
     5: 3
+    6: 3
   stepFeatures:
     0: 5
-    1: 6
-    2: 3
+    1: 5
+    2: 6
     3: 3
     4: 3
     5: 3
+    6: 3
 HLT_e30_lhvloose_L1eEM26M:
   eventCount: 3
   stepCounts:
     0: 4
     1: 4
-    2: 3
+    2: 4
     3: 3
     4: 3
     5: 3
+    6: 3
   stepFeatures:
     0: 5
-    1: 6
-    2: 3
+    1: 5
+    2: 6
     3: 3
     4: 3
     5: 3
+    6: 3
 HLT_e35_lhloose_nopix_lrtmedium_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 1
+    1: 4
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 4
-    1: 1
+    1: 4
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e35_lhloose_nopix_lrtmedium_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 1
+    1: 4
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 4
-    1: 1
+    1: 4
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e40_lhvloose_L1EM22VHI:
   eventCount: 2
   stepCounts:
     0: 3
-    1: 2
+    1: 3
     2: 2
     3: 2
     4: 2
     5: 2
+    6: 2
   stepFeatures:
     0: 3
-    1: 2
+    1: 3
     2: 2
     3: 2
     4: 2
     5: 2
+    6: 2
 HLT_e40_lhvloose_L1eEM26M:
   eventCount: 2
   stepCounts:
     0: 3
-    1: 2
+    1: 3
     2: 2
     3: 2
     4: 2
     5: 2
+    6: 2
   stepFeatures:
     0: 3
-    1: 2
+    1: 3
     2: 2
     3: 2
     4: 2
     5: 2
+    6: 2
 HLT_e50_etcut_L1EM22VHI:
   eventCount: 6
   stepCounts:
     0: 6
     1: 6
     2: 6
+    3: 6
   stepFeatures:
     0: 6
-    1: 22
-    2: 6
+    1: 6
+    2: 22
+    3: 6
 HLT_e50_etcut_L1eEM26M:
   eventCount: 5
   stepCounts:
     0: 5
     1: 5
     2: 5
+    3: 5
   stepFeatures:
     0: 5
-    1: 18
-    2: 5
+    1: 5
+    2: 18
+    3: 5
 HLT_e5_dnnloose_L1EM3:
   eventCount: 6
   stepCounts:
     0: 19
-    1: 16
-    2: 13
+    1: 19
+    2: 16
     3: 13
     4: 13
-    5: 6
+    5: 13
+    6: 6
   stepFeatures:
     0: 43
-    1: 63
-    2: 23
+    1: 43
+    2: 63
     3: 23
     4: 23
-    5: 6
+    5: 23
+    6: 6
 HLT_e5_dnnmedium_L1EM3:
   eventCount: 6
   stepCounts:
     0: 19
-    1: 16
-    2: 13
+    1: 19
+    2: 16
     3: 13
     4: 13
-    5: 6
+    5: 13
+    6: 6
   stepFeatures:
     0: 42
-    1: 62
-    2: 23
+    1: 42
+    2: 62
     3: 23
     4: 23
-    5: 6
+    5: 23
+    6: 6
 HLT_e5_dnntight_L1EM3:
   eventCount: 6
   stepCounts:
     0: 19
-    1: 15
-    2: 12
+    1: 19
+    2: 15
     3: 12
     4: 12
-    5: 6
+    5: 12
+    6: 6
   stepFeatures:
     0: 39
-    1: 56
-    2: 21
+    1: 39
+    2: 56
     3: 21
     4: 21
-    5: 6
+    5: 21
+    6: 6
 HLT_e5_etcut_L1EM3:
   eventCount: 20
   stepCounts:
     0: 20
     1: 20
     2: 20
+    3: 20
   stepFeatures:
     0: 146
-    1: 381
-    2: 195
+    1: 146
+    2: 381
+    3: 195
+HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH:
+  eventCount: 3
+  stepCounts:
+    0: 11
+    1: 6
+    2: 6
+    3: 4
+    4: 3
+    5: 3
+    6: 3
+    7: 3
+    8: 3
+  stepFeatures:
+    0: 15
+    1: 9
+    2: 9
+    3: 4
+    4: 13
+    5: 12
+    6: 10
+    7: 10
+    8: 10
+HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1eEM24L:
+  eventCount: 4
+  stepCounts:
+    0: 10
+    1: 7
+    2: 6
+    3: 4
+    4: 4
+    5: 4
+    6: 4
+    7: 4
+    8: 4
+  stepFeatures:
+    0: 12
+    1: 8
+    2: 7
+    3: 4
+    4: 17
+    5: 17
+    6: 14
+    7: 14
+    8: 14
 HLT_e5_idperf_tight_L1EM3:
   eventCount: 13
   stepCounts:
     0: 19
-    1: 18
+    1: 19
     2: 13
     3: 13
     4: 13
   stepFeatures:
     0: 39
-    1: 31
-    2: 23
-    3: 23
-    4: 23
+    1: 39
+    2: 24
+    3: 24
+    4: 24
 HLT_e5_idperf_tight_L1eEM5:
   eventCount: 14
   stepCounts:
     0: 19
-    1: 18
+    1: 19
     2: 14
     3: 14
     4: 14
   stepFeatures:
     0: 67
-    1: 51
-    2: 35
-    3: 35
-    4: 35
+    1: 67
+    2: 36
+    3: 36
+    4: 36
 HLT_e5_idperf_tight_nogsf_L1EM3:
   eventCount: 13
   stepCounts:
     0: 19
-    1: 18
+    1: 19
     2: 13
     3: 13
   stepFeatures:
     0: 39
-    1: 31
-    2: 23
-    3: 23
+    1: 39
+    2: 24
+    3: 24
 HLT_e5_idperf_tight_nogsf_L1eEM5:
   eventCount: 14
   stepCounts:
     0: 19
-    1: 18
+    1: 19
     2: 14
     3: 14
   stepFeatures:
     0: 67
-    1: 51
-    2: 35
-    3: 35
+    1: 67
+    2: 36
+    3: 36
 HLT_e5_lhtight_L1EM3:
   eventCount: 4
   stepCounts:
     0: 19
-    1: 15
-    2: 12
+    1: 19
+    2: 15
     3: 12
     4: 12
-    5: 4
+    5: 12
+    6: 4
   stepFeatures:
     0: 39
-    1: 56
-    2: 21
+    1: 39
+    2: 56
     3: 21
     4: 21
-    5: 4
+    5: 21
+    6: 4
 HLT_e5_lhtight_e14_etcut_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 2
     1: 2
+    2: 2
 HLT_e5_lhtight_e14_etcut_1invmAB5_L1JPSI-1M5-eEM15:
   eventCount: 1
   stepCounts:
@@ -6417,27 +6782,33 @@ HLT_e5_lhtight_e14_etcut_1invmAB5_L1JPSI-1M5-eEM15:
     2: 6
     3: 6
     4: 6
-    5: 1
+    5: 6
+    6: 1
   stepFeatures:
     0: 39
-    1: 100
-    2: 37
-    3: 17
+    1: 39
+    2: 100
+    3: 37
     4: 17
-    5: 3
+    5: 17
+    6: 3
 HLT_e5_lhtight_e14_etcut_probe_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e5_lhtight_e9_etcut_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 4
-    1: 11
+    1: 4
+    2: 11
 HLT_e5_lhtight_e9_etcut_1invmAB5_L1JPSI-1M5-eEM9:
   eventCount: 1
   stepCounts:
@@ -6446,36 +6817,42 @@ HLT_e5_lhtight_e9_etcut_1invmAB5_L1JPSI-1M5-eEM9:
     2: 6
     3: 6
     4: 6
-    5: 1
+    5: 6
+    6: 1
   stepFeatures:
     0: 56
-    1: 164
-    2: 59
-    3: 17
+    1: 56
+    2: 164
+    3: 59
     4: 17
-    5: 3
+    5: 17
+    6: 3
 HLT_e5_lhtight_e9_etcut_probe_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e5_lhtight_noringer_L1EM3:
   eventCount: 4
   stepCounts:
     0: 18
-    1: 17
+    1: 18
     2: 17
     3: 17
     4: 17
-    5: 4
+    5: 17
+    6: 4
   stepFeatures:
     0: 64
-    1: 142
-    2: 45
+    1: 64
+    2: 142
     3: 45
     4: 45
-    5: 4
+    5: 45
+    6: 4
 HLT_e5_lhvloose_bBeeM6000_2mu4_l2io_L1BPH-0DR3-EM7J15_2MU3V:
   eventCount: 0
   stepCounts:
@@ -6484,111 +6861,125 @@ HLT_e5_lhvloose_bBeeM6000_2mu4_l2io_L1BPH-0DR3-EM7J15_2MU3V:
     2: 2
     3: 2
     4: 2
-    5: 1
+    5: 2
     6: 1
+    7: 1
   stepFeatures:
     0: 3
-    1: 4
+    1: 3
     2: 4
     3: 4
     4: 4
-    5: 3
-    6: 4
+    5: 4
+    6: 3
+    7: 4
 HLT_e5_lhvloose_bBeeM6000_L14J15:
   eventCount: 1
   stepCounts:
     0: 10
-    1: 5
+    1: 10
     2: 5
     3: 5
     4: 5
-    5: 1
+    5: 5
+    6: 1
   stepFeatures:
     0: 26
-    1: 34
-    2: 11
+    1: 26
+    2: 34
     3: 11
     4: 11
-    5: 6
+    5: 11
+    6: 6
 HLT_e5_lhvloose_bBeeM6000_L1All:
   eventCount: 1
   stepCounts:
     0: 19
-    1: 8
+    1: 19
     2: 8
     3: 8
     4: 8
-    5: 1
+    5: 8
+    6: 1
   stepFeatures:
     0: 43
-    1: 63
-    2: 18
+    1: 43
+    2: 63
     3: 18
     4: 18
-    5: 8
+    5: 18
+    6: 8
 HLT_e5_lhvloose_bBeeM6000_L1BKeePrescaled:
   eventCount: 1
   stepCounts:
     0: 18
-    1: 15
-    2: 13
+    1: 18
+    2: 15
     3: 13
     4: 13
-    5: 1
+    5: 13
+    6: 1
   stepFeatures:
     0: 41
-    1: 62
-    2: 23
+    1: 41
+    2: 62
     3: 23
     4: 23
-    5: 11
+    5: 23
+    6: 11
 HLT_e5_lhvloose_bBeeM6000_L1BKeePrimary:
   eventCount: 1
   stepCounts:
     0: 16
-    1: 7
+    1: 16
     2: 7
     3: 7
     4: 7
-    5: 1
+    5: 7
+    6: 1
   stepFeatures:
     0: 37
-    1: 50
-    2: 16
+    1: 37
+    2: 50
     3: 16
     4: 16
-    5: 8
+    5: 16
+    6: 8
 HLT_e5_lhvloose_bBeeM6000_L1BPH-0DR3-EM7J15_MU5VF:
   eventCount: 0
   stepCounts:
     0: 7
-    1: 5
-    2: 3
+    1: 7
+    2: 5
     3: 3
     4: 3
+    5: 3
   stepFeatures:
     0: 8
-    1: 10
-    2: 3
+    1: 8
+    2: 10
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
 HLT_e5_lhvloose_bBeeM6000_L1EM22VHI:
   eventCount: 1
   stepCounts:
     0: 9
-    1: 3
+    1: 9
     2: 3
     3: 3
     4: 3
-    5: 1
+    5: 3
+    6: 1
   stepFeatures:
     0: 19
-    1: 23
-    2: 8
+    1: 19
+    2: 23
     3: 8
     4: 8
-    5: 4
+    5: 8
+    6: 4
 HLT_e5_lhvloose_bBeeM6000_mu6_l2io_L1BPH-0DR3-EM7J15_MU5VF:
   eventCount: 0
   stepCounts:
@@ -6597,6 +6988,7 @@ HLT_e5_lhvloose_bBeeM6000_mu6_l2io_L1BPH-0DR3-EM7J15_MU5VF:
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 1
     1: 1
@@ -6605,40 +6997,45 @@ HLT_e5_lhvloose_bBeeM6000_mu6_l2io_L1BPH-0DR3-EM7J15_MU5VF:
     4: 1
     5: 1
     6: 1
+    7: 1
 HLT_e5_lhvloose_j70_j50a_j0_DJMASS1000j50_xe50_tcpufit_L1MJJ-500-NFF:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 3
+    1: 4
     2: 3
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 13
-    1: 17
-    2: 7
+    1: 13
+    2: 17
     3: 7
     4: 7
-    5: 3
-    6: 1
+    5: 7
+    6: 3
+    7: 1
 HLT_e5_lhvloose_j70_j50a_j0_DJMASS1000j50_xe50_tcpufit_L1jMJJ-500-NFF:
   eventCount: 0
   stepCounts:
     0: 4
     1: 4
-    2: 3
+    2: 4
     3: 3
     4: 3
-    5: 2
+    5: 3
+    6: 2
   stepFeatures:
     0: 22
-    1: 35
-    2: 13
+    1: 22
+    2: 35
     3: 13
     4: 13
-    5: 5
-    6: 1
+    5: 13
+    6: 5
+    7: 1
 HLT_e5_lhvloose_nogsf_bBeeM6000_L1BPH-0DR3-EM7J15:
   eventCount: 1
   stepCounts:
@@ -6646,65 +7043,25 @@ HLT_e5_lhvloose_nogsf_bBeeM6000_L1BPH-0DR3-EM7J15:
     1: 9
     2: 9
     3: 9
-    4: 1
+    4: 9
+    5: 1
   stepFeatures:
     0: 17
-    1: 30
-    2: 16
+    1: 17
+    2: 30
     3: 16
-    4: 10
-HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH:
-  eventCount: 3
-  stepCounts:
-    0: 11
-    1: 6
-    2: 6
-    3: 4
-    4: 3
-    5: 3
-    6: 3
-    7: 3
-    8: 3
-  stepFeatures:
-    0: 15
-    1: 9
-    2: 9
-    3: 4
-    4: 13
+    4: 16
     5: 10
-    6: 9
-    7: 9
-    8: 9
-HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1eEM24L:
-  eventCount: 4
-  stepCounts:
-    0: 10
-    1: 7
-    2: 6
-    3: 4
-    4: 4
-    5: 4
-    6: 4
-    7: 4
-    8: 4
-  stepFeatures:
-    0: 12
-    1: 8
-    2: 7
-    3: 4
-    4: 17
-    5: 15
-    6: 13
-    7: 13
-    8: 13
 HLT_e60_dnnmedium_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 1
     1: 1
+    2: 1
 HLT_e60_idperf_medium_L1EM22VHI:
   eventCount: 0
   stepCounts:
@@ -6742,69 +7099,83 @@ HLT_e60_lhmedium_L1EM22VHI:
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 1
     1: 1
+    2: 1
 HLT_e60_lhmedium_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 1
     1: 1
+    2: 1
 HLT_e60_lhmedium_nogsf_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 1
     1: 1
+    2: 1
 HLT_e60_lhmedium_noringer_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 2
-    1: 3
-    2: 1
+    1: 2
+    2: 3
     3: 1
     4: 1
+    5: 1
 HLT_e60_lhmedium_noringer_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 2
-    1: 3
-    2: 1
+    1: 2
+    2: 3
     3: 1
     4: 1
+    5: 1
 HLT_e60_lhvloose_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 1
     1: 1
+    2: 1
 HLT_e60_lhvloose_L1eEM26M:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 1
     1: 1
+    2: 1
 HLT_e70_lhloose_xe70_cell_L1EM22VHI:
   eventCount: 0
 HLT_e70_lhloose_xe70_cell_L1eEM26M:
@@ -6813,98 +7184,106 @@ HLT_e7_lhmedium_L1eEM5_mu24_L1MU14FCH:
   eventCount: 1
   stepCounts:
     0: 5
-    1: 4
-    2: 3
+    1: 5
+    2: 4
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
   stepFeatures:
     0: 9
-    1: 17
-    2: 4
+    1: 9
+    2: 17
     3: 4
     4: 4
-    5: 3
-    6: 2
+    5: 4
+    6: 3
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
 HLT_e7_lhmedium_L1eEM5_mu24_L1MU18VFCH:
   eventCount: 1
   stepCounts:
     0: 5
-    1: 4
-    2: 3
+    1: 5
+    2: 4
     3: 3
     4: 3
-    5: 2
+    5: 3
     6: 2
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
   stepFeatures:
     0: 9
-    1: 17
-    2: 4
+    1: 9
+    2: 17
     3: 4
     4: 4
-    5: 3
-    6: 2
+    5: 4
+    6: 3
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
 HLT_e7_lhmedium_mu24_L1MU14FCH:
   eventCount: 1
   stepCounts:
     0: 4
-    1: 3
-    2: 2
+    1: 4
+    2: 3
     3: 2
     4: 2
     5: 2
     6: 2
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
   stepFeatures:
     0: 4
-    1: 7
-    2: 2
+    1: 4
+    2: 7
     3: 2
     4: 2
     5: 2
     6: 2
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
 HLT_e7_lhmedium_mu24_L1MU18VFCH:
   eventCount: 1
   stepCounts:
     0: 4
-    1: 3
-    2: 2
+    1: 4
+    2: 3
     3: 2
     4: 2
     5: 2
     6: 2
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
   stepFeatures:
     0: 4
-    1: 7
-    2: 2
+    1: 4
+    2: 7
     3: 2
     4: 2
     5: 2
     6: 2
     7: 2
-    8: 1
+    8: 2
     9: 1
+    10: 1
 HLT_e80_lhvloose_L1EM22VHI:
   eventCount: 0
 HLT_e80_lhvloose_L1eEM26M:
@@ -6921,94 +7300,102 @@ HLT_e9_lhtight_e4_etcut_1invmAB5_L1JPSI-1M5-eEM9:
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
+    6: 2
   stepFeatures:
     0: 96
-    1: 175
-    2: 96
-    3: 5
+    1: 69
+    2: 175
+    3: 96
     4: 5
-    5: 2
-HLT_e9_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-EM7:
+    5: 5
+    6: 2
+HLT_e9_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
-HLT_e9_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM9:
-  eventCount: 2
+HLT_e9_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-EM7:
+  eventCount: 0
+HLT_e9_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM9:
+  eventCount: 1
   stepCounts:
     0: 4
     1: 4
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
+    10: 1
   stepFeatures:
     0: 6
-    1: 14
-    2: 5
+    1: 6
+    2: 14
     3: 5
     4: 5
-    5: 2
-    6: 34
-    7: 33
-    8: 58
-    9: 58
-HLT_e9_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-EM7:
+    5: 5
+    6: 2
+    7: 8
+    8: 8
+    9: 8
+    10: 8
+HLT_e9_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
-HLT_e9_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-eEM9:
-  eventCount: 2
+HLT_e9_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-eEM9:
+  eventCount: 1
   stepCounts:
     0: 4
     1: 4
     2: 4
     3: 4
     4: 4
-    5: 2
+    5: 4
     6: 2
     7: 2
     8: 2
     9: 2
     10: 2
+    11: 1
   stepFeatures:
     0: 6
-    1: 14
-    2: 5
+    1: 6
+    2: 14
     3: 5
     4: 5
-    5: 2
-    6: 34
-    7: 33
-    8: 58
-    9: 58
-    10: 58
-HLT_e9_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM7:
-  eventCount: 0
+    5: 5
+    6: 2
+    7: 8
+    8: 8
+    9: 8
+    10: 8
+    11: 8
 HLT_e9_lhvloose_L1eEM5_mu20_mu8noL1_L1MU14FCH:
   eventCount: 0
   stepCounts:
     0: 4
     1: 4
-    2: 2
+    2: 4
     3: 2
     4: 2
-    5: 1
+    5: 2
     6: 1
     7: 1
     8: 1
     9: 1
+    10: 1
   stepFeatures:
     0: 5
-    1: 11
-    2: 3
+    1: 5
+    2: 11
     3: 3
     4: 3
-    5: 2
-    6: 1
+    5: 3
+    6: 2
     7: 1
     8: 1
     9: 1
+    10: 1
 HLT_e9_lhvloose_e5_lhvloose_bBeeM6000_2mu4_l2io_L1BPH-0M9-EM7-EM5_2MU3V:
   eventCount: 0
   stepFeatures:
@@ -7017,29 +7404,33 @@ HLT_e9_lhvloose_e5_lhvloose_bBeeM6000_mu6_l2io_L1BPH-0M9-EM7-EM5_MU5VF:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 6
-    1: 10
+    1: 3
+    2: 10
 HLT_e9_lhvloose_e5_lhvloose_nogsf_bBeeM6000_L1BPH-0M9-EM7-EM5:
   eventCount: 0
   stepCounts:
     0: 5
-    1: 3
+    1: 5
     2: 3
     3: 3
+    4: 3
   stepFeatures:
     0: 31
-    1: 49
-    2: 16
-    3: 14
-    4: 6
-    5: 8
+    1: 24
+    2: 49
+    3: 16
+    4: 14
+    5: 6
+    6: 8
 HLT_e9_lhvloose_mu20_mu8noL1_L1MU14FCH:
   eventCount: 0
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
@@ -7047,10 +7438,11 @@ HLT_e9_lhvloose_mu20_mu8noL1_L1MU14FCH:
     7: 1
     8: 1
     9: 1
+    10: 1
   stepFeatures:
     0: 2
-    1: 4
-    2: 1
+    1: 2
+    2: 4
     3: 1
     4: 1
     5: 1
@@ -7058,12 +7450,13 @@ HLT_e9_lhvloose_mu20_mu8noL1_L1MU14FCH:
     7: 1
     8: 1
     9: 1
+    10: 1
 HLT_e9_lhvloose_mu20_mu8noL1_L1MU18VFCH:
   eventCount: 0
   stepCounts:
     0: 2
     1: 2
-    2: 1
+    2: 2
     3: 1
     4: 1
     5: 1
@@ -7071,10 +7464,11 @@ HLT_e9_lhvloose_mu20_mu8noL1_L1MU18VFCH:
     7: 1
     8: 1
     9: 1
+    10: 1
   stepFeatures:
     0: 2
-    1: 4
-    2: 1
+    1: 2
+    2: 4
     3: 1
     4: 1
     5: 1
@@ -7082,6 +7476,7 @@ HLT_e9_lhvloose_mu20_mu8noL1_L1MU18VFCH:
     7: 1
     8: 1
     9: 1
+    10: 1
 HLT_e9_lhvloose_nogsf_bBeeM6000_L1BPH-0DR3-EM7J15:
   eventCount: 0
   stepCounts:
@@ -7089,12 +7484,14 @@ HLT_e9_lhvloose_nogsf_bBeeM6000_L1BPH-0DR3-EM7J15:
     1: 9
     2: 9
     3: 9
+    4: 9
   stepFeatures:
     0: 16
-    1: 29
-    2: 12
+    1: 16
+    2: 29
     3: 12
-    4: 9
+    4: 12
+    5: 9
 HLT_fslrt0_L14J15:
   eventCount: 0
 HLT_fslrt0_L1All:
diff --git a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py
index f8fe61cfe768efa1d3f32356c492faf48ca3a58b..2f2f30f0dcfd0dc98764e86a3a1ade4615c45642 100644
--- a/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/python/TrigInDetArtSteps.py
@@ -99,6 +99,10 @@ class TrigInDetReco(ExecStep):
                 chains += "'HLT_e30_idperf_loose_lrtloose_L1EM22VHI',"
                 chains += "'HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI',"
                 chains += "'HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH',"
+
+                # new chains
+                chains += "'HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI',"
+                chains += "'HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH',"
                 flags += 'doEgammaSlice=True;'
             if (i=='electron') :
                 # chains +=  "'HLT_e5_etcut_L1EM3',"  ## need an idperf chain once one is in the menu
@@ -110,6 +114,10 @@ class TrigInDetReco(ExecStep):
             if (i=='electron-tnp') :
                 chains += "'HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI',"
                 chains += "'HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI',"
+                
+                # new chains
+                chains += "'HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI',"
+                chains += "'HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI',"
                 flags += 'doEgammaSlice=True;'
             if (i=='tau') :
                 chains +=  "'HLT_tau25_idperf_tracktwoMVA_L1TAU12IM',"
@@ -408,3 +416,5 @@ class TrigInDetCpuCostStep(RefComparisonStep):
             self.args  = self.input_file + " " + self.reference + " -o " + self.output_dir + " " + self.extra
         Step.configure(self, test)
 
+
+
diff --git a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py
index d40b6413d534c4863b1c18afc96f976f92f3fc74..fdeeb4ffe826c7c9a6e04d7a64316e681e28c687 100644
--- a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py
@@ -222,26 +222,47 @@ if ( True ) :
     # electron lrt e tag
     "HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=1",
     "HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=1",
+ 
+    # new chains
+    "HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=1",
+    "HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=1",
 
     "HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_lrtmedium_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=1",
     "HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_lrtmedium_probe_L1EM22VHI:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=1",
+
     # electron lrt photon tag
     "HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=0",
     "HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=0",
 
+    # new chains
+    "HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=0",
+    "HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=0",
+
     "HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_FTF:roi=HLT_Roi_FastElectron_LRT:te=0",
     "HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1EM20VH:HLT_IDTrack_ElecLRT_IDTrig:roi=HLT_Roi_FastElectron_LRT:te=0",
 
     # double electron chains for tag and probe analysis
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_tag:roi=HLT_Roi_FastElectron:te=0",
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_probe:roi=HLT_Roi_FastElectron:te=1",
+    
+    # new chains
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_tag:roi=HLT_Roi_FastElectron:te=0",
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_FTF:extra=el_probe:roi=HLT_Roi_FastElectron:te=1",
 
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_tag:te=0",
     "HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
 
+    # new chains
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_tag:te=0",
+    "HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_IDTrig:extra=el_probe:te=1",
+
     "HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
     "HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
 
+    #new chains
+    "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_tag:te=0",
+    "HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:key=HLT_IDTrack_Electron_GSF:extra=el_probe:te=1",
+
     # two stage tau FTF
     "HLT_tau.*_idperf.*tracktwo.*:HLT_IDTrack_TauCore_FTF:roi=HLT_Roi_TauCore",
     "HLT_tau.*_idperf.*tracktwo.*:HLT_IDTrack_TauIso_FTF:roi=HLT_Roi_TauIso",
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_TnP.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_TnP.py
index 8c6fe6f39ada1cf6dc74b81e9026bd0acb8fb5a3..34f9965fe57919dc8a78d16b82e740ae993b47f9 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_TnP.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_pu40_TnP.py
@@ -43,7 +43,14 @@ Jobs = [( "Truth",       " TIDAdata-run3.dat                    -o data-hists.ro
 Comp = [( "L2ele",              "L2electronTnP",      "data-hists.root",         " -c TIDAhisto-panel-TnP.dat -l e26_e14_etcut_idperf_50invmAB130_FTF_FE e26_e14_etcut_idperf_50invmAB130_FTF_FE_1_probe  -d HLTL2-plots " ),
         ( "L2eleoffline",       "L2electronTnP",      "data-hists-offline.root", " -c TIDAhisto-panel-TnP.dat -l e26_e14_etcut_idperf_50invmAB130_FTF_FE e26_e14_etcut_idperf_50invmAB130_FTF_FE_1_probe -d HLTL2-plots-offline " ),
         ( "EFele",              "EFelectronTnP",      "data-hists.root",         " -c TIDAhisto-panel-TnP.dat -l e26_e14_etcut_nogsf_idperf_50invmAB130_FTF_FE_1_probe e26_e14_etcut_nogsf_idperf_50invmAB130_IDTrig_1_probe e26_e14_etcut_idperf_50invmAB130_GSF_1_probe e26_e14_etcut_idperf_50invmAB130_GSF -d HLTEF-plots "         ),
-        ( "EFeleoffline",       "EFelectronTnP",      "data-hists-offline.root", " -c TIDAhisto-panel-TnP.dat -l e26_e14_etcut_nogsf_idperf_50invmAB130_FTF_FE_1_probe e26_e14_etcut_nogsf_idperf_50invmAB130_IDTrig_1_probe e26_e14_etcut_idperf_50invmAB130_GSF_1_probe e26_e14_etcut_idperf_50invmAB130_GSF -d HLTEF-plots-offline " ) ]
+        ( "EFeleoffline",       "EFelectronTnP",      "data-hists-offline.root", " -c TIDAhisto-panel-TnP.dat -l e26_e14_etcut_nogsf_idperf_50invmAB130_FTF_FE_1_probe e26_e14_etcut_nogsf_idperf_50invmAB130_IDTrig_1_probe e26_e14_etcut_idperf_50invmAB130_GSF_1_probe e26_e14_etcut_idperf_50invmAB130_GSF -d HLTEF-plots-offline " ),
+        
+        # new chains
+        ( "L2ele",              "L2electronTnP",      "data-hists.root",         " -c TIDAhisto-panel-TnP.dat -l e26_e14_idperf_tight_50invmAB130_FTF_FE e26_e14_idperf_tight_50invmAB130_FTF_FE_1_probe  -d HLTL2-plots " ),
+        ( "L2eleoffline",       "L2electronTnP",      "data-hists-offline.root", " -c TIDAhisto-panel-TnP.dat -l e26_e14_idperf_tight_50invmAB130_FTF_FE e26_e14_idperf_tight_50invmAB130_FTF_FE_1_probe -d HLTL2-plots-offline " ),
+        ( "EFele",              "EFelectronTnP",      "data-hists.root",         " -c TIDAhisto-panel-TnP.dat -l e26_e14_nogsf_idperf_tight_50invmAB130_FTF_FE_1_probe e26_e14_nogsf_idperf_tight_50invmAB130_IDTrig_1_probe e26_e14_idperf_tight_50invmAB130_GSF_1_probe e26_e14_idperf_tight_50invmAB130_GSF -d HLTEF-plots "         ),
+        ( "EFeleoffline",       "EFelectronTnP",      "data-hists-offline.root", " -c TIDAhisto-panel-TnP.dat -l e26_e14_nogsf_idperf_tight_50invmAB130_FTF_FE_1_probe e26_e14_nogsf_idperf_tight_50invmAB130_IDTrig_1_probe e26_e14_idperf_tight_50invmAB130_GSF_1_probe e26_e14_idperf_tight_50invmAB130_GSF -d HLTEF-plots-offline " ),
+       ]
 
 
     
diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_tier0_pu40_TnP.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_tier0_pu40_TnP.py
index 527480c6583e877c19bfb169362c7c1d2b0b2344..d3b9d521187c41d5ef24c39ee1f9f93580b62edc 100755
--- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_tier0_pu40_TnP.py
+++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_el_zee_tier0_pu40_TnP.py
@@ -40,7 +40,10 @@ preinclude_file = 'all:TrigInDetValidation/TIDV_cond_fix.py' #conditions fix for
 Jobs = [] 
 
 Comp = [ ( "L2electron",   "L2electronTnP",  "data-hists-tier0.root", " -b HLT/TRIDT/Egamma/All -s '_HLT_IDTrack' '/HLT_IDTrack' -c TIDAhisto-tier0-TnP.dat -l e26_e14_etcut_idperf_50invmAB130_FTF_FE e26_e14_etcut_idperf_50invmAB130_FTF_FE_el_probe_1 --ncols 3 -d HLTL2-plots-electron " ),
-         ( "EFelectron",   "EFelectronTnP",  "data-hists-tier0.root", " -b HLT/TRIDT/Egamma/All -s '_HLT_IDTrack' '/HLT_IDTrack' -c TIDAhisto-tier0-TnP.dat -l e26_e14_etcut_idperf_50invmAB130_FTF_FE_el_probe_1 e26_e14_etcut_idperf_50invmAB130_IDTrig_el_probe_1 e26_e14_etcut_idperf_gsf_50invmAB130_GSF_el_probe_1 e26_e14_etcut_idperf_gsf_50invmAB130_GSF  --ncols 3 -d HLTEF-plots-electron " ) ]
+         ( "EFelectron",   "EFelectronTnP",  "data-hists-tier0.root", " -b HLT/TRIDT/Egamma/All -s '_HLT_IDTrack' '/HLT_IDTrack' -c TIDAhisto-tier0-TnP.dat -l e26_e14_etcut_idperf_50invmAB130_FTF_FE_el_probe_1 e26_e14_etcut_idperf_50invmAB130_IDTrig_el_probe_1 e26_e14_etcut_idperf_gsf_50invmAB130_GSF_el_probe_1 e26_e14_etcut_idperf_gsf_50invmAB130_GSF  --ncols 3 -d HLTEF-plots-electron " ), 
+         ( "L2electron",   "L2electronTnP",  "data-hists-tier0.root", " -b HLT/TRIDT/Egamma/All -s '_HLT_IDTrack' '/HLT_IDTrack' -c TIDAhisto-tier0-TnP.dat -l e26_e14_idperf_tight_50invmAB130_FTF_FE e26_e14_idperf_tight_50invmAB130_FTF_FE_el_probe_1 --ncols 3 -d HLTL2-plots-electron " ),
+         ( "EFelectron",   "EFelectronTnP",  "data-hists-tier0.root", " -b HLT/TRIDT/Egamma/All -s '_HLT_IDTrack' '/HLT_IDTrack' -c TIDAhisto-tier0-TnP.dat -l e26_e14_idperf_tight_50invmAB130_FTF_FE_el_probe_1 e26_e14_idperf_tight_50invmAB130_IDTrig_el_probe_1 e26_e14_idperf_tight_gsf_50invmAB130_GSF_el_probe_1 e26_e14_idperf_tight_gsf_50invmAB130_GSF  --ncols 3 -d HLTEF-plots-electron " ),
+       ]
    
 from AthenaCommon.Include import include 
 include("TrigInDetValidation/TrigInDetValidation_Base.py")
diff --git a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref
index 80efa20be3ea193c8d27cc5b3b7b0dcb7c50f8da..e8ece9e68173428d52af4483c8507a714b4ae171 100644
--- a/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref
+++ b/Trigger/TrigValidation/TrigP1Test/share/ref_v1Dev_decodeBS_build.ref
@@ -42,59 +42,69 @@ HLT_2e5_lhvloose_bBeeM6000_L1All:
   eventCount: 0
   stepCounts:
     0: 13
-    1: 3
-    2: 2
+    1: 13
+    2: 3
     3: 2
     4: 2
+    5: 2
   stepFeatures:
     0: 52
-    1: 55
-    2: 4
+    1: 36
+    2: 55
     3: 4
     4: 4
+    5: 4
 HLT_2e5_lhvloose_bBeeM6000_L1BKeePrescaled:
   eventCount: 0
   stepCounts:
     0: 6
-    1: 5
-    2: 3
+    1: 6
+    2: 5
     3: 3
     4: 3
+    5: 3
   stepFeatures:
     0: 24
-    1: 43
-    2: 8
-    3: 7
+    1: 20
+    2: 43
+    3: 8
     4: 7
+    5: 7
 HLT_2e5_lhvloose_bBeeM6000_L1BKeePrimary:
   eventCount: 0
   stepCounts:
     0: 4
-    1: 1
+    1: 4
+    2: 1
   stepFeatures:
     0: 13
-    1: 24
+    1: 12
+    2: 24
 HLT_2e5_lhvloose_bBeeM6000_L1BPH-0M9-EM7-EM5_MU5VF:
   eventCount: 0
 HLT_2e5_lhvloose_bBeeM6000_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 3
+    1: 3
   stepFeatures:
     0: 10
-    1: 16
+    1: 10
+    2: 16
 HLT_2e5_lhvloose_nogsf_bBeeM6000_L12EM3:
   eventCount: 0
   stepCounts:
     0: 13
-    1: 3
-    2: 2
+    1: 13
+    2: 3
     3: 2
+    4: 2
   stepFeatures:
     0: 48
-    1: 55
-    2: 4
+    1: 36
+    2: 55
     3: 4
+    4: 4
 HLT_2g10_loose_L1eEM9_mu20_L1MU14FCH:
   eventCount: 0
   stepFeatures:
@@ -1335,29 +1345,33 @@ HLT_e10_lhvloose_L1EM7:
   stepCounts:
     0: 6
     1: 6
-    2: 5
+    2: 6
     3: 5
     4: 5
+    5: 5
   stepFeatures:
     0: 7
-    1: 16
-    2: 5
+    1: 7
+    2: 16
     3: 5
     4: 5
+    5: 5
 HLT_e10_lhvloose_L1eEM9:
   eventCount: 0
   stepCounts:
     0: 10
     1: 10
-    2: 7
+    2: 10
     3: 7
     4: 7
+    5: 7
   stepFeatures:
     0: 13
-    1: 24
-    2: 8
+    1: 13
+    2: 24
     3: 8
     4: 8
+    5: 8
 HLT_e120_etcut_L1EM22VHI:
   eventCount: 0
 HLT_e120_etcut_L1eEM26M:
@@ -1382,76 +1396,86 @@ HLT_e140_lhloose_noringer_L1EM22VHI:
   eventCount: 0
 HLT_e140_lhloose_noringer_L1eEM26M:
   eventCount: 0
-HLT_e14_etcut_idperf_L1EM7:
-  eventCount: 17
+HLT_e14_idperf_loose_L1EM7:
+  eventCount: 2
   stepCounts:
-    0: 20
-    1: 20
-    2: 17
-    3: 17
-    4: 17
+    0: 5
+    1: 5
+    2: 2
+    3: 2
+    4: 2
   stepFeatures:
-    0: 24
-    1: 22
-    2: 18
-    3: 18
-    4: 18
-HLT_e14_etcut_idperf_L1eEM9:
-  eventCount: 17
+    0: 6
+    1: 6
+    2: 2
+    3: 2
+    4: 2
+HLT_e14_idperf_loose_L1eEM9:
+  eventCount: 2
   stepCounts:
-    0: 20
-    1: 20
-    2: 17
-    3: 17
-    4: 17
+    0: 7
+    1: 7
+    2: 2
+    3: 2
+    4: 2
   stepFeatures:
-    0: 31
-    1: 29
-    2: 24
-    3: 24
-    4: 24
+    0: 9
+    1: 9
+    2: 2
+    3: 2
+    4: 2
 HLT_e14_idperf_tight_L1EM7:
-  eventCount: 0
+  eventCount: 1
   stepCounts:
     0: 2
     1: 2
+    2: 1
+    3: 1
+    4: 1
   stepFeatures:
     0: 3
-    1: 2
+    1: 3
+    2: 1
+    3: 1
+    4: 1
 HLT_e14_idperf_tight_L1eEM9:
-  eventCount: 1
+  eventCount: 2
   stepCounts:
     0: 6
     1: 6
-    2: 1
-    3: 1
-    4: 1
+    2: 2
+    3: 2
+    4: 2
   stepFeatures:
     0: 8
-    1: 7
-    2: 1
-    3: 1
-    4: 1
+    1: 8
+    2: 2
+    3: 2
+    4: 2
 HLT_e14_idperf_tight_nogsf_L1EM7:
-  eventCount: 0
+  eventCount: 1
   stepCounts:
     0: 2
     1: 2
+    2: 1
+    3: 1
   stepFeatures:
     0: 3
-    1: 2
+    1: 3
+    2: 1
+    3: 1
 HLT_e14_idperf_tight_nogsf_L1eEM9:
-  eventCount: 1
+  eventCount: 2
   stepCounts:
     0: 6
     1: 6
-    2: 1
-    3: 1
+    2: 2
+    3: 2
   stepFeatures:
     0: 8
-    1: 7
-    2: 1
-    3: 1
+    1: 8
+    2: 2
+    3: 2
 HLT_e14_lhtight_e4_etcut_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
   stepFeatures:
@@ -1460,15 +1484,15 @@ HLT_e14_lhtight_e4_etcut_1invmAB5_L1JPSI-1M5-eEM15:
   eventCount: 0
   stepFeatures:
     0: 191
-HLT_e14_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-EM12:
+HLT_e14_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
-HLT_e14_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM15:
+HLT_e14_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
-HLT_e14_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-EM12:
+HLT_e14_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM15:
   eventCount: 0
-HLT_e14_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-eEM15:
+HLT_e14_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
-HLT_e14_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM12:
+HLT_e14_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-eEM15:
   eventCount: 0
 HLT_e14_lhtight_mu6_dRAB15_invmAB10_L1LFV-eEM15L-MU5VF:
   eventCount: 0
@@ -1476,30 +1500,34 @@ HLT_e14_lhvloose_L1EM10VH:
   eventCount: 0
   stepCounts:
     0: 5
-    1: 4
-    2: 1
+    1: 5
+    2: 4
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 5
-    1: 10
-    2: 1
+    1: 5
+    2: 10
     3: 1
     4: 1
+    5: 1
 HLT_e14_lhvloose_L1eEM12L:
   eventCount: 0
   stepCounts:
     0: 2
-    1: 1
+    1: 2
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 2
-    1: 1
+    1: 2
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e17_lhloose_mu14_L1EM15VH_MU8F:
   eventCount: 0
 HLT_e17_lhloose_mu14_L1eEM18L_MU8F:
@@ -1512,8 +1540,10 @@ HLT_e17_lhvloose_L1EM15VHI:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_idperf_loose_lrtloose_L1EM15VH:
   eventCount: 1
   stepCounts:
@@ -1546,54 +1576,70 @@ HLT_e20_lhloose_L1EM15VH:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_lhmedium_L1EM15VH:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_lhtight_L1EM15VH:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_lhtight_ivarloose_L12EM7:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_lhtight_ivarloose_L1EM15VH:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_lhtight_ivarloose_L1EM15VHI:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_lhtight_ivarloose_L1ZAFB-25DPHI-eEM18M:
   eventCount: 0
 HLT_e20_lhvloose_L1EM15VH:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e20_lhvloose_L1eEM18L:
   eventCount: 0
   stepCounts:
     0: 2
-    1: 1
+    1: 2
+    2: 1
   stepFeatures:
     0: 2
-    1: 1
+    1: 2
+    2: 1
 HLT_e24_lhmedium_g12_loose_g12_loose_02dRAB_02dRAC_02dRBC_L1EM20VH_3EM10VH:
   eventCount: 0
 HLT_e24_lhmedium_g12_loose_g12_loose_02dRAB_02dRAC_02dRBC_L1eEM24L_3eEM12L:
@@ -1635,11 +1681,13 @@ HLT_e26_etcut_L1EM22VHI:
   stepCounts:
     0: 4
     1: 4
-    2: 3
+    2: 4
+    3: 3
   stepFeatures:
     0: 4
-    1: 5
-    2: 3
+    1: 4
+    2: 5
+    3: 3
 HLT_e26_idperf_loose_L1EM22VHI:
   eventCount: 0
 HLT_e26_idperf_loose_L1eEM26M:
@@ -1662,17 +1710,17 @@ HLT_e26_lhtight_e14_etcut_L1EM22VHI:
     0: 5
 HLT_e26_lhtight_e14_etcut_L1eEM26M:
   eventCount: 0
-HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI:
+HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1EM22VHI:
   eventCount: 0
-HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1eEM26M:
+HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1eEM26M:
   eventCount: 0
-HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI:
+HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI:
   eventCount: 0
-HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1eEM26M:
+HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1eEM26M:
   eventCount: 0
-HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1EM22VHI:
+HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI:
   eventCount: 0
-HLT_e26_lhtight_e14_etcut_probe_50invmAB130_L1eEM26M:
+HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1eEM26M:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_2j20_0eta290_020jvt_boffperf_pf_ftf_L1EM22VHI:
   eventCount: 0
@@ -1698,17 +1746,17 @@ HLT_e26_lhtight_ivarloose_e12_lhvloose_probe_L1EM22VHI:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e12_lhvloose_probe_L1eEM26M:
   eventCount: 0
-HLT_e26_lhtight_ivarloose_e14_etcut_idperf_probe_L1EM22VHI:
-  eventCount: 0
 HLT_e26_lhtight_ivarloose_e14_etcut_probe_L1EM22VHI:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e14_etcut_probe_L1eEM26M:
   eventCount: 0
+HLT_e26_lhtight_ivarloose_e14_idperf_tight_probe_L1EM22VHI:
+  eventCount: 0
 HLT_e26_lhtight_ivarloose_e14_lhtight_probe_L1EM22VHI:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e14_lhtight_probe_L1eEM26M:
   eventCount: 0
-HLT_e26_lhtight_ivarloose_e15_etcut_idperf_probe_L1eEM26M:
+HLT_e26_lhtight_ivarloose_e15_idperf_tight_probe_L1eEM26M:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e17_lhvloose_probe_L1EM22VHI:
   eventCount: 0
@@ -1736,15 +1784,15 @@ HLT_e26_lhtight_ivarloose_e4_etcut_probe_L1EM22VHI:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e4_etcut_probe_L1eEM26M:
   eventCount: 0
+HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI:
+  eventCount: 0
 HLT_e26_lhtight_ivarloose_e5_lhtight_noringer_probe_L1eEM26M:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e5_lhtight_probe_L1EM22VHI:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e5_lhtight_probe_L1eEM26M:
   eventCount: 0
-HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI:
-  eventCount: 0
-HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1eEM26M:
+HLT_e26_lhtight_ivarloose_e5_loose_lrtloose_idperf_probe_L1eEM26M:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_e7_lhmedium_probe_L1EM22VHI:
   eventCount: 0
@@ -1784,12 +1832,14 @@ HLT_e26_lhtight_ivarloose_noringer_L1EM22VHI:
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 1
     1: 1
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e26_lhtight_ivarloose_tau100_mediumRNN_tracktwoLLP_probe_03dRAB_L1EM22VHI:
   eventCount: 0
 HLT_e26_lhtight_ivarloose_tau160_mediumRNN_tracktwoMVA_probe_03dRAB_L1EM22VHI:
@@ -1852,12 +1902,14 @@ HLT_e28_lhtight_ivarloose_noringer_L1EM22VHI:
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 1
     1: 1
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e28_lhtight_ivarloose_noringer_L1eEM26M:
   eventCount: 0
 HLT_e300_etcut_L1EM22VHI:
@@ -1906,203 +1958,241 @@ HLT_e5_dnnloose_L1EM3:
   eventCount: 0
   stepCounts:
     0: 28
-    1: 18
-    2: 14
+    1: 28
+    2: 18
     3: 14
     4: 14
+    5: 14
   stepFeatures:
     0: 46
-    1: 62
-    2: 17
+    1: 46
+    2: 62
     3: 17
     4: 17
+    5: 17
 HLT_e5_dnnmedium_L1EM3:
   eventCount: 0
   stepCounts:
     0: 28
-    1: 19
-    2: 14
+    1: 28
+    2: 19
     3: 14
     4: 14
+    5: 14
   stepFeatures:
     0: 49
-    1: 68
-    2: 19
+    1: 49
+    2: 68
     3: 19
     4: 19
+    5: 19
 HLT_e5_dnntight_L1EM3:
   eventCount: 0
   stepCounts:
     0: 25
-    1: 15
-    2: 10
+    1: 25
+    2: 15
     3: 10
     4: 10
+    5: 10
   stepFeatures:
     0: 42
-    1: 56
-    2: 14
+    1: 42
+    2: 56
     3: 14
     4: 14
+    5: 14
 HLT_e5_etcut_L1EM3:
   eventCount: 33
   stepCounts:
     0: 38
-    1: 33
+    1: 38
     2: 33
+    3: 33
   stepFeatures:
     0: 132
-    1: 205
-    2: 116
+    1: 132
+    2: 205
+    3: 116
+HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH:
+  eventCount: 0
+  stepCounts:
+    0: 7
+    1: 4
+    2: 3
+    3: 1
+  stepFeatures:
+    0: 7
+    1: 4
+    2: 3
+    3: 1
+HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1eEM24L:
+  eventCount: 0
 HLT_e5_idperf_tight_L1EM3:
-  eventCount: 13
+  eventCount: 14
   stepCounts:
     0: 25
-    1: 19
-    2: 13
-    3: 13
-    4: 13
+    1: 25
+    2: 14
+    3: 14
+    4: 14
   stepFeatures:
     0: 42
-    1: 30
-    2: 18
-    3: 18
-    4: 18
+    1: 42
+    2: 20
+    3: 20
+    4: 20
 HLT_e5_idperf_tight_L1eEM5:
-  eventCount: 22
+  eventCount: 26
   stepCounts:
     0: 48
-    1: 46
-    2: 22
-    3: 22
-    4: 22
+    1: 48
+    2: 26
+    3: 26
+    4: 26
   stepFeatures:
     0: 349
-    1: 226
-    2: 38
-    3: 38
-    4: 38
+    1: 349
+    2: 48
+    3: 48
+    4: 48
 HLT_e5_idperf_tight_nogsf_L1EM3:
-  eventCount: 13
+  eventCount: 14
   stepCounts:
     0: 25
-    1: 19
-    2: 13
-    3: 13
+    1: 25
+    2: 14
+    3: 14
   stepFeatures:
     0: 42
-    1: 30
-    2: 18
-    3: 18
+    1: 42
+    2: 20
+    3: 20
 HLT_e5_idperf_tight_nogsf_L1eEM5:
-  eventCount: 22
+  eventCount: 26
   stepCounts:
     0: 48
-    1: 46
-    2: 22
-    3: 22
+    1: 48
+    2: 26
+    3: 26
   stepFeatures:
     0: 349
-    1: 226
-    2: 38
-    3: 38
+    1: 349
+    2: 48
+    3: 48
 HLT_e5_lhtight_L1EM3:
   eventCount: 0
   stepCounts:
     0: 25
-    1: 15
-    2: 10
+    1: 25
+    2: 15
     3: 10
     4: 10
+    5: 10
   stepFeatures:
     0: 42
-    1: 56
-    2: 14
+    1: 42
+    2: 56
     3: 14
     4: 14
+    5: 14
 HLT_e5_lhtight_e14_etcut_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 2
-    1: 7
+    1: 2
+    2: 7
 HLT_e5_lhtight_e14_etcut_1invmAB5_L1JPSI-1M5-eEM15:
   eventCount: 0
   stepCounts:
     0: 6
     1: 6
-    2: 1
+    2: 6
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 48
-    1: 70
-    2: 7
-    3: 1
+    1: 48
+    2: 70
+    3: 7
     4: 1
+    5: 1
 HLT_e5_lhtight_e14_etcut_probe_1invmAB5_L1JPSI-1M5-EM12:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 1
+    1: 1
 HLT_e5_lhtight_e9_etcut_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
   stepCounts:
     0: 2
-    1: 1
+    1: 2
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 6
-    1: 16
-    2: 2
-    3: 1
+    1: 6
+    2: 16
+    3: 2
     4: 1
+    5: 1
 HLT_e5_lhtight_e9_etcut_1invmAB5_L1JPSI-1M5-eEM9:
   eventCount: 0
   stepCounts:
     0: 8
     1: 8
-    2: 2
+    2: 8
     3: 2
     4: 2
+    5: 2
   stepFeatures:
     0: 71
-    1: 104
-    2: 27
-    3: 3
+    1: 71
+    2: 104
+    3: 27
     4: 3
+    5: 3
 HLT_e5_lhtight_e9_etcut_probe_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
   stepCounts:
     0: 2
-    1: 1
+    1: 2
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 4
-    1: 6
-    2: 1
+    1: 4
+    2: 6
     3: 1
     4: 1
+    5: 1
 HLT_e5_lhtight_noringer_L1EM3:
   eventCount: 0
   stepCounts:
     0: 31
-    1: 23
-    2: 19
+    1: 31
+    2: 23
     3: 19
     4: 19
+    5: 19
   stepFeatures:
     0: 51
-    1: 65
-    2: 25
+    1: 51
+    2: 65
     3: 25
     4: 25
+    5: 25
 HLT_e5_lhvloose_bBeeM6000_2mu4_l2io_L1BPH-0DR3-EM7J15_2MU3V:
   eventCount: 0
 HLT_e5_lhvloose_bBeeM6000_L14J15:
@@ -2111,53 +2201,63 @@ HLT_e5_lhvloose_bBeeM6000_L1All:
   eventCount: 0
   stepCounts:
     0: 29
-    1: 4
-    2: 3
+    1: 29
+    2: 4
     3: 3
     4: 3
+    5: 3
   stepFeatures:
     0: 52
-    1: 71
-    2: 5
+    1: 52
+    2: 71
     3: 5
     4: 5
+    5: 5
 HLT_e5_lhvloose_bBeeM6000_L1BKeePrescaled:
   eventCount: 0
   stepCounts:
     0: 10
-    1: 9
-    2: 6
+    1: 10
+    2: 9
     3: 6
     4: 6
+    5: 6
   stepFeatures:
     0: 24
-    1: 48
-    2: 10
+    1: 24
+    2: 48
     3: 10
     4: 10
+    5: 10
 HLT_e5_lhvloose_bBeeM6000_L1BKeePrimary:
   eventCount: 0
   stepCounts:
     0: 5
-    1: 1
+    1: 5
+    2: 1
   stepFeatures:
     0: 13
-    1: 25
+    1: 13
+    2: 25
 HLT_e5_lhvloose_bBeeM6000_L1BPH-0DR3-EM7J15_MU5VF:
   eventCount: 0
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 2
-    1: 8
+    1: 2
+    2: 8
 HLT_e5_lhvloose_bBeeM6000_L1EM22VHI:
   eventCount: 0
   stepCounts:
     0: 3
+    1: 3
   stepFeatures:
     0: 10
-    1: 16
+    1: 10
+    2: 16
 HLT_e5_lhvloose_bBeeM6000_mu6_l2io_L1BPH-0DR3-EM7J15_MU5VF:
   eventCount: 0
 HLT_e5_lhvloose_j70_j50a_j0_DJMASS1000j50_xe50_tcpufit_L1MJJ-500-NFF:
@@ -2165,9 +2265,11 @@ HLT_e5_lhvloose_j70_j50a_j0_DJMASS1000j50_xe50_tcpufit_L1MJJ-500-NFF:
   stepCounts:
     0: 1
     1: 1
+    2: 1
   stepFeatures:
     0: 1
     1: 1
+    2: 1
 HLT_e5_lhvloose_j70_j50a_j0_DJMASS1000j50_xe50_tcpufit_L1jMJJ-500-NFF:
   eventCount: 0
 HLT_e5_lhvloose_nogsf_bBeeM6000_L1BPH-0DR3-EM7J15:
@@ -2177,25 +2279,13 @@ HLT_e5_lhvloose_nogsf_bBeeM6000_L1BPH-0DR3-EM7J15:
     1: 5
     2: 5
     3: 5
+    4: 5
   stepFeatures:
     0: 7
-    1: 14
-    2: 5
+    1: 7
+    2: 14
     3: 5
-HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH:
-  eventCount: 0
-  stepCounts:
-    0: 7
-    1: 4
-    2: 3
-    3: 1
-  stepFeatures:
-    0: 7
-    1: 4
-    2: 3
-    3: 1
-HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1eEM24L:
-  eventCount: 0
+    4: 5
 HLT_e60_dnnmedium_L1EM22VHI:
   eventCount: 0
 HLT_e60_idperf_medium_L1EM22VHI:
@@ -2232,12 +2322,14 @@ HLT_e7_lhmedium_L1eEM5_mu24_L1MU14FCH:
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 1
     1: 1
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e7_lhmedium_L1eEM5_mu24_L1MU18VFCH:
   eventCount: 0
   stepCounts:
@@ -2246,12 +2338,14 @@ HLT_e7_lhmedium_L1eEM5_mu24_L1MU18VFCH:
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 1
     1: 1
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e7_lhmedium_mu24_L1MU14FCH:
   eventCount: 0
 HLT_e7_lhmedium_mu24_L1MU18VFCH:
@@ -2268,33 +2362,39 @@ HLT_e9_lhtight_e4_etcut_1invmAB5_L1JPSI-1M5-eEM9:
   eventCount: 0
   stepCounts:
     0: 2
-    1: 1
+    1: 2
+    2: 1
   stepFeatures:
     0: 259
-    1: 73
-    2: 27
-HLT_e9_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-EM7:
+    1: 60
+    2: 73
+    3: 27
+HLT_e9_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
-HLT_e9_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM9:
+HLT_e9_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-EM7:
+  eventCount: 0
+HLT_e9_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM9:
   eventCount: 0
   stepCounts:
     0: 2
-    1: 1
+    1: 2
+    2: 1
   stepFeatures:
     0: 3
-    1: 6
-HLT_e9_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-EM7:
+    1: 3
+    2: 6
+HLT_e9_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-EM7:
   eventCount: 0
-HLT_e9_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-eEM9:
+HLT_e9_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-eEM9:
   eventCount: 0
   stepCounts:
     0: 2
-    1: 1
+    1: 2
+    2: 1
   stepFeatures:
     0: 3
-    1: 6
-HLT_e9_lhtight_e4_etcut_probe_1invmAB5_L1JPSI-1M5-EM7:
-  eventCount: 0
+    1: 3
+    2: 6
 HLT_e9_lhvloose_L1eEM5_mu20_mu8noL1_L1MU14FCH:
   eventCount: 0
   stepCounts:
@@ -2303,12 +2403,14 @@ HLT_e9_lhvloose_L1eEM5_mu20_mu8noL1_L1MU14FCH:
     2: 1
     3: 1
     4: 1
+    5: 1
   stepFeatures:
     0: 1
     1: 1
     2: 1
     3: 1
     4: 1
+    5: 1
 HLT_e9_lhvloose_e5_lhvloose_bBeeM6000_2mu4_l2io_L1BPH-0M9-EM7-EM5_2MU3V:
   eventCount: 0
 HLT_e9_lhvloose_e5_lhvloose_bBeeM6000_mu6_l2io_L1BPH-0M9-EM7-EM5_MU5VF:
@@ -2317,10 +2419,12 @@ HLT_e9_lhvloose_e5_lhvloose_nogsf_bBeeM6000_L1BPH-0M9-EM7-EM5:
   eventCount: 0
   stepCounts:
     0: 1
+    1: 1
   stepFeatures:
     0: 7
-    1: 12
-    2: 2
+    1: 5
+    2: 12
+    3: 2
 HLT_e9_lhvloose_mu20_mu8noL1_L1MU14FCH:
   eventCount: 0
 HLT_e9_lhvloose_mu20_mu8noL1_L1MU18VFCH:
@@ -2330,13 +2434,15 @@ HLT_e9_lhvloose_nogsf_bBeeM6000_L1BPH-0DR3-EM7J15:
   stepCounts:
     0: 5
     1: 5
-    2: 3
+    2: 5
     3: 3
+    4: 3
   stepFeatures:
     0: 6
-    1: 14
-    2: 3
+    1: 6
+    2: 14
     3: 3
+    4: 3
 HLT_fslrt0_L14J15:
   eventCount: 0
 HLT_fslrt0_L1All:
diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
index 8a1d05e2a60ada02d5a61c9572000938560005a2..21499feff7a50ccf6c288856a13ada1de473ae9a 100644
--- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
+++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py
@@ -452,10 +452,10 @@ TriggerHLTListRun3 = [
     ('xAOD::TrigElectronContainer#HLT_FastElectrons_LRT',                 'BS ESD AODCOMM', 'Egamma', 'inViews:EMElectronViews_LRT'),
     ('xAOD::TrigElectronAuxContainer#HLT_FastElectrons_LRTAux.',          'BS ESD AODCOMM', 'Egamma'),
 
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_Electron_FTF',        'BS ESD AODCOMM', 'Egamma', 'inViews:EMElectronViews'),
+    ('xAOD::TrackParticleContainer#HLT_IDTrack_Electron_FTF',        'BS ESD AODCOMM', 'Egamma', 'inViews:EMFastTrackingViews'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Electron_FTFAux.', 'BS ESD AODCOMM', 'Egamma'),
 
-    ('xAOD::TrackParticleContainer#HLT_IDTrack_ElecLRT_FTF',        'BS ESD AODCOMM', 'Egamma', 'inViews:EMElectronViews_LRT'),
+    ('xAOD::TrackParticleContainer#HLT_IDTrack_ElecLRT_FTF',        'BS ESD AODCOMM', 'Egamma', 'inViews:EMFastTrackingViews_LRT'),
     ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_ElecLRT_FTFAux.', 'BS ESD AODCOMM', 'Egamma'),
 
     ('xAOD::TrackParticleContainer#HLT_IDTrack_Electron_IDTrig',        'BS ESD AODFULL', 'Egamma', 'inViews:precisionTrackingViews'),
@@ -1247,3 +1247,4 @@ def addExtraCollectionsToEDMList(edmList, extraList):
             else:
                 # asking to add some collection which is already in the list - do nothing
                 pass
+
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Egamma/TrigEgammaKeys.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Egamma/TrigEgammaKeys.py
index 2517da41f8b61e87b9e21ca4c360ee4a1dad94c7..45685bf3e4fea1c3170cc774601f07bb35acc2c2 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Egamma/TrigEgammaKeys.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Egamma/TrigEgammaKeys.py
@@ -19,7 +19,7 @@ class TrigEgammaKeysBase(object):
 
 
         """Static class to collect all string manipulation in fast electron sequences """
-        self.fastElectronRoIContainer                   = recordable("HLT_Roi_FastElectron")
+        self.fastTrackingRoIContainer                   = recordable("HLT_Roi_FastElectron")
         self.fastElectronContainer                      = recordable("HLT_FastElectrons")
 
         """Static class to collect all string manipulation in fast photon sequences """
@@ -67,6 +67,9 @@ class TrigEgammaKeysBase(object):
       def IDTrigConfig(self):
           return self._IDTrigConfig
 
+      @property
+      def fastTrackParticleContainer(self):
+          return self._IDTrigConfig.tracks_FTF()
 
 
 
@@ -75,7 +78,7 @@ class TrigEgammaKeys_LRT(TrigEgammaKeysBase):
     def __init__(self,ion):
         TrigEgammaKeysBase.__init__(self,ion)
         
-        self.fastElectronRoIContainer               = recordable("HLT_Roi_FastElectron_LRT")
+        self.fastTrackingRoIContainer               = recordable("HLT_Roi_FastElectron_LRT")
         self.fastElectronContainer                  = recordable('HLT_FastElectrons_LRT')
         self.precisionElectronEMClusterContainer    = recordable('HLT_TrigEMClusters_Electrons_LRT')
         self.precisionElectronCaloClusterContainer  = recordable("HLT_CaloEMClusters_LRT")
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/ElectronChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/ElectronChainConfiguration.py
index 93035fc707c9169aad6de9180da91891be62bdfc..b4f130a34a6cb58dab790754c7bd726d2848fca6 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/ElectronChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/ElectronChainConfiguration.py
@@ -13,6 +13,7 @@ else:
     from ..CommonSequences.CaloSequences import fastCaloMenuSequence
     from ..CommonSequences.CaloSequences_FWD import fastCaloMenuSequence_FWD
 
+    from ..Electron.FastTrackingMenuSequences import fastTrackingMenuSequence, fastTrackingMenuSequence_LRT
     from ..Electron.FastElectronMenuSequences import fastElectronMenuSequence, fastElectronMenuSequence_LRT
     from ..Electron.PrecisionCaloMenuSequences import precisionCaloMenuSequence, precisionCaloMenuSequence_LRT
     from ..Electron.PrecisionElectronMenuSequences import precisionElectronMenuSequence, precisionElectronMenuSequence_LRT
@@ -29,17 +30,17 @@ from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool,
 def electronFastCaloCfg( flags, is_probe_leg=False ):
     return fastCaloMenuSequence(flags, "Electron", is_probe_leg=is_probe_leg)
 
-def fastElectronSequenceCfg( flags, is_probe_leg=False ):
-    return fastElectronMenuSequence(do_idperf=False, is_probe_leg=is_probe_leg)
+def fastTrackingSequenceCfg( flags, is_probe_leg=False ):
+    return fastTrackingMenuSequence('Electron', is_probe_leg=is_probe_leg)
 
-def fastElectronSequenceCfg_idperf( flags, is_probe_leg=False ):
-    return fastElectronMenuSequence(do_idperf=True, is_probe_leg=is_probe_leg)
+def fastTrackingSequenceCfg_lrt( flags, is_probe_leg=False ):
+    return fastTrackingMenuSequence_LRT('Electron', is_probe_leg=is_probe_leg)
 
-def fastElectronSequenceCfg_lrt( flags, is_probe_leg=False ):
-    return fastElectronMenuSequence_LRT(do_idperf=False, is_probe_leg=is_probe_leg)
+def fastElectronSequenceCfg( flags, is_probe_leg=False ):
+    return fastElectronMenuSequence(is_probe_leg=is_probe_leg)
 
-def fastElectronSequenceCfg_lrt_idperf( flags, is_probe_leg=False ):
-    return fastElectronMenuSequence_LRT(do_idperf=True, is_probe_leg=is_probe_leg)
+def fastElectronSequenceCfg_lrt( flags, is_probe_leg=False ):
+    return fastElectronMenuSequence_LRT(is_probe_leg=is_probe_leg)
 
 def precisionCaloSequenceCfg( flags, is_probe_leg=False ):
     return precisionCaloMenuSequence('Electron', is_probe_leg=is_probe_leg)
@@ -80,6 +81,8 @@ def precisionGSFElectronSequenceCfg_lrt( flags, is_probe_leg=False):
 def precisionElectronSequenceCfg_lrt( flags, is_probe_leg=False):
     return precisionElectronMenuSequence_LRT(is_probe_leg=is_probe_leg)
 
+
+
 # this must be moved to the HypoTool file:
 
 from TrigEgammaHypo.TrigEgammaHypoConf import TrigEgammaTopoHypoTool
@@ -157,9 +160,19 @@ class ElectronChainConfiguration(ChainConfigurationBase):
         else:
             stepNames += ['getFastCalo']
 
-
         # Step2
         # Now lets do Fast Electron. Possible Flavours:
+        # getFastTracking
+        # getFastTracking_lrt
+
+        if self.chainPart['lrtInfo']:
+            stepNames += ['getFastTracking_lrt']
+        else:
+            stepNames += ['getFastTracking'] 
+
+
+        # Step3
+        # Now lets do Fast Electron. Possible Flavours:
         # getFastElectron
         # getFastElectron_lrt
 
@@ -169,7 +182,7 @@ class ElectronChainConfiguration(ChainConfigurationBase):
             stepNames += ['getFastElectron']
 
 
-        # Step3
+        # Step4
         # After Fast Electron we have to build PrecisionCalo for electorns. Current available variantas are:
         # getPrecisionCaloElectron
         # getPrecisionCaloElectron_lrt
@@ -190,7 +203,7 @@ class ElectronChainConfiguration(ChainConfigurationBase):
             log.debug("This is an etcut chain. Returning here")
             return stepNames
 
-        # Step4
+        # Step5
         # After precisionCalo Electron we have to do precision tracking next. Current available variantas are:
         # getPrecisionTracking
         # getPrecisionTracking_lrt
@@ -200,7 +213,7 @@ class ElectronChainConfiguration(ChainConfigurationBase):
         else:
             stepNames += ['getPrecisionTracking']
 
-        # Step5
+        # Step6
         # Now if a chain is configured to do gsf refitting we need to add another tracking step for the GSF refitting:
         # getPrecisionTrack_GSFRefitted
         # getPrecisionTrack_GSFRefitted_lrt
@@ -224,7 +237,7 @@ class ElectronChainConfiguration(ChainConfigurationBase):
             return stepNames
 
 
-        # Step6
+        # Step7
         # and Finally! once we have precision tracking adn precision calo, we can build our electrons!. Current available variantas are:
         # getPrecisionElectron
         # getPrecisionGSFElectron
@@ -277,62 +290,70 @@ class ElectronChainConfiguration(ChainConfigurationBase):
         fastCaloCfg    = electronFastCaloCfg
         return self.getStep(1,stepName,[ fastCaloCfg], is_probe_leg=is_probe_leg)
 
+    def getFastTracking(self,is_probe_leg=False):
+        stepName = "fast_tracking"
+        return self.getStep(2,stepName,[ fastTrackingSequenceCfg],is_probe_leg=is_probe_leg)
+
+    def getFastTracking_lrt(self,is_probe_leg=False):
+        stepName = "fast_tracking_lrt"
+        return self.getStep(2,stepName,[ fastTrackingSequenceCfg_lrt],is_probe_leg=is_probe_leg)
+
     def getFastElectron(self,is_probe_leg=False):
         from TrigBphysHypo.TrigMultiTrkComboHypoConfig import StreamerNoMuonDiElecFastComboHypoCfg, StreamerDiElecFastComboHypoCfg
         if "bBeeM6000" in self.chainDict['topo'] and 'BPH-0DR3-EM7J15' not in self.chainDict['L1item']:
             signatures = self.chainDict['signatures']
             if signatures.count(signatures[0]) == len(signatures):
                 stepName = "noMuon_fast_electron_bBee"
-                return self.getStep(2,stepName,sequenceCfgArray=[fastElectronSequenceCfg], comboHypoCfg=StreamerNoMuonDiElecFastComboHypoCfg, is_probe_leg=is_probe_leg)
+                return self.getStep(3,stepName,sequenceCfgArray=[fastElectronSequenceCfg], comboHypoCfg=StreamerNoMuonDiElecFastComboHypoCfg, is_probe_leg=is_probe_leg)
             else:
                 stepName = "fast_electron_bBee"
-                return self.getStep(2,stepName,sequenceCfgArray=[fastElectronSequenceCfg], comboHypoCfg=StreamerDiElecFastComboHypoCfg, is_probe_leg=is_probe_leg)
-        elif 'idperf' in self.chainPart['idperfInfo']:
-            stepName = "fast_electron_idperf"
-            return self.getStep(2,stepName,[ fastElectronSequenceCfg_idperf], is_probe_leg=is_probe_leg)
+                return self.getStep(3,stepName,sequenceCfgArray=[fastElectronSequenceCfg], comboHypoCfg=StreamerDiElecFastComboHypoCfg, is_probe_leg=is_probe_leg)
+        elif self.chainPart['idperfInfo']:
+            stepName = "fast_electron_empty"
+            return self.getEmptyStep(3,stepName)
         else:
             stepName = "fast_electron"
-            return self.getStep(2,stepName,[ fastElectronSequenceCfg],is_probe_leg=is_probe_leg)
+            return self.getStep(3,stepName,[ fastElectronSequenceCfg],is_probe_leg=is_probe_leg)
 
     def getFastElectron_lrt(self,is_probe_leg=False):
-        if 'idperf' in self.chainPart['idperfInfo']:
-            stepName = "fast_electron_lrt_idperf"
-            return self.getStep(2,stepName,[ fastElectronSequenceCfg_lrt_idperf],is_probe_leg=is_probe_leg)
+        if self.chainPart['idperfInfo']:
+            stepName = "fast_electron_lrt_empty"
+            return self.getEmptyStep(3,stepName)
         else:
             stepName = "fast_electron_lrt"
-            return self.getStep(2,stepName,[ fastElectronSequenceCfg_lrt],is_probe_leg=is_probe_leg)
+            return self.getStep(3,stepName,[ fastElectronSequenceCfg_lrt],is_probe_leg=is_probe_leg)
 
     def getPrecisionCaloElectron(self,is_probe_leg=False):
         if self.chainPart['extra'] == 'ion':
             stepName = 'precisionCalo_ion_electron'
-            return self.getStep(3, stepName, [precisionCaloSequenceCfg_ion], is_probe_leg=is_probe_leg)
+            return self.getStep(4, stepName, [precisionCaloSequenceCfg_ion], is_probe_leg=is_probe_leg)
 
         stepName = "precisionCalo_electron"
-        return self.getStep(3,stepName,[ precisionCaloSequenceCfg], is_probe_leg=is_probe_leg)
+        return self.getStep(4,stepName,[ precisionCaloSequenceCfg], is_probe_leg=is_probe_leg)
     
     def getPrecisionCaloElectron_lrt(self,is_probe_leg=False):
         stepName = "precisionCalo_electron_lrt"
-        return self.getStep(3,stepName,[ precisionCaloSequenceCfg_lrt],is_probe_leg=is_probe_leg)
+        return self.getStep(4,stepName,[ precisionCaloSequenceCfg_lrt],is_probe_leg=is_probe_leg)
 
     def getPrecisionTracking(self,is_probe_leg=False):
         if self.chainPart['extra'] == 'ion':
             stepName = 'precisionTracking_ion_electron'
-            return self.getStep(4, stepName, [precisionTrackingSequenceCfg_ion], is_probe_leg=is_probe_leg)
+            return self.getStep(5, stepName, [precisionTrackingSequenceCfg_ion], is_probe_leg=is_probe_leg)
 
         stepName = "precisionTracking_electron"
-        return self.getStep(4,stepName,[ precisionTrackingSequenceCfg], is_probe_leg=is_probe_leg)
+        return self.getStep(5,stepName,[ precisionTrackingSequenceCfg], is_probe_leg=is_probe_leg)
 
     def getPrecisionTracking_lrt(self,is_probe_leg=False):
         stepName = "precisionTracking_electron_lrt"
-        return self.getStep(4,stepName,[ precisionTrackingSequenceCfg_lrt],is_probe_leg=is_probe_leg)
+        return self.getStep(5,stepName,[ precisionTrackingSequenceCfg_lrt],is_probe_leg=is_probe_leg)
 
     def getPrecisionTrack_GSFRefitted(self,is_probe_leg=False):
         stepName = "PrecisionTrack_GSFRefitted_electron"
-        return self.getStep(5,stepName,[precisionTrack_GSFRefittedSequenceCfg], is_probe_leg=is_probe_leg)
+        return self.getStep(6,stepName,[precisionTrack_GSFRefittedSequenceCfg], is_probe_leg=is_probe_leg)
  
     def getPrecisionTrack_GSFRefitted_lrt(self,is_probe_leg=False):
         stepName = "PrecisionTrack_GSFRefitted_electron_lrt"
-        return self.getStep(5,stepName,[precisionTrack_GSFRefittedSequenceCfg_lrt], is_probe_leg=is_probe_leg)
+        return self.getStep(6,stepName,[precisionTrack_GSFRefittedSequenceCfg_lrt], is_probe_leg=is_probe_leg)
 
     def getPrecisionElectron(self,is_probe_leg=False):
 
@@ -341,28 +362,28 @@ class ElectronChainConfiguration(ChainConfigurationBase):
          
         if "Zee" in self.chainDict['topo']:
             stepName = "precision_electron_Zee"+str(isocut)
-            return self.getStep(6,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboTools=[diElectronZeeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+            return self.getStep(7,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboTools=[diElectronZeeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
         elif "Jpsiee" in self.chainDict['topo']:
             stepName = "precision_topoelectron_Jpsiee"+str(isocut)
-            return self.getStep(6,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboTools=[diElectronJpsieeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+            return self.getStep(7,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboTools=[diElectronJpsieeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
         elif "Heg" in  self.chainDict['topo']:
             stepName = "precision_electron_Heg"+str(isocut)
-            return self.getStep(6,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboTools=[diEgammaHegMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+            return self.getStep(7,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboTools=[diEgammaHegMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
         elif "bBeeM6000" in  self.chainDict['topo']:
             from TrigBphysHypo.TrigMultiTrkComboHypoConfig import NoMuonDiElecPrecisionComboHypoCfg, DiElecPrecisionComboHypoCfg, TrigMultiTrkComboHypoToolFromDict
             signatures = self.chainDict['signatures']
             if signatures.count(signatures[0]) == len(signatures):
                 stepName = "noMuon_precision_electron_bBee"+str(isocut)
-                return self.getStep(6,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=NoMuonDiElecPrecisionComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+                return self.getStep(7,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=NoMuonDiElecPrecisionComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
             else:
                 stepName = "precision_electron_bBee"+str(isocut)
-                return self.getStep(6,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=DiElecPrecisionComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+                return self.getStep(7,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=DiElecPrecisionComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
         elif self.chainPart['extra'] == 'ion':
             stepName = "precision_ion_electron" + str(isocut)
-            return self.getStep(6,stepName,[precisionElectronSequenceCfg_ion], is_probe_leg=is_probe_leg)
+            return self.getStep(7,stepName,[precisionElectronSequenceCfg_ion], is_probe_leg=is_probe_leg)
         else:
             stepName = "precision_electron_nominal"+str(isocut)
-            return self.getStep(6,stepName,[ precisionElectronSequenceCfg ], is_probe_leg=is_probe_leg)     
+            return self.getStep(7,stepName,[ precisionElectronSequenceCfg ], is_probe_leg=is_probe_leg)     
 
     def getPrecisionGSFElectron(self,is_probe_leg=False):
 
@@ -371,41 +392,41 @@ class ElectronChainConfiguration(ChainConfigurationBase):
        
         if "Zee" in  self.chainDict['topo']:
             stepName = "precision_topoelectron_Zee_GSF"+str(isocut)
-            return self.getStep(6,stepName,sequenceCfgArray=[precisionGSFElectronSequenceCfg], comboTools=[diElectronZeeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+            return self.getStep(7,stepName,sequenceCfgArray=[precisionGSFElectronSequenceCfg], comboTools=[diElectronZeeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
         elif "Jpsiee" in  self.chainDict['topo']:
             stepName = "precision_topoelectron_Jpsiee_GSF"+str(isocut)
-            return self.getStep(6,stepName,sequenceCfgArray=[precisionGSFElectronSequenceCfg], comboTools=[diElectronJpsieeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+            return self.getStep(7,stepName,sequenceCfgArray=[precisionGSFElectronSequenceCfg], comboTools=[diElectronJpsieeMassComboHypoToolFromDict], is_probe_leg=is_probe_leg)
         elif "bBeeM6000" in  self.chainDict['topo']:
             from TrigBphysHypo.TrigMultiTrkComboHypoConfig import NoMuonDiElecPrecisionGSFComboHypoCfg, DiElecPrecisionGSFComboHypoCfg, TrigMultiTrkComboHypoToolFromDict
             signatures = self.chainDict['signatures']
             if signatures.count(signatures[0]) == len(signatures):
                 stepName = "noMuon_precision_electron_bBee_GSF"+str(isocut)
-                return self.getStep(6,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=NoMuonDiElecPrecisionGSFComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+                return self.getStep(7,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=NoMuonDiElecPrecisionGSFComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
             else:
                 stepName = "precision_electron_bBee_GSF"+str(isocut)
-                return self.getStep(6,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=DiElecPrecisionGSFComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
+                return self.getStep(7,stepName,sequenceCfgArray=[precisionElectronSequenceCfg], comboHypoCfg=DiElecPrecisionGSFComboHypoCfg, comboTools=[TrigMultiTrkComboHypoToolFromDict], is_probe_leg=is_probe_leg)
         else:
             stepName = "precision_electron_GSF"+str(isocut)
-            return self.getStep(6,stepName,[ precisionGSFElectronSequenceCfg], is_probe_leg=is_probe_leg)
+            return self.getStep(7,stepName,[ precisionGSFElectronSequenceCfg], is_probe_leg=is_probe_leg)
 
     def getPrecisionGSFElectron_lrt(self,is_probe_leg=False):
 
         isocut = self.chainPart['isoInfo']
         log.debug(' isolation cut = ' + str(isocut))
         stepName = "precision_electron_LRTGSF"+str(isocut)
-        return self.getStep(6,stepName,[ precisionGSFElectronSequenceCfg_lrt], is_probe_leg=is_probe_leg)
+        return self.getStep(7,stepName,[ precisionGSFElectronSequenceCfg_lrt], is_probe_leg=is_probe_leg)
 
     def getPrecisionElectron_lrt(self,is_probe_leg=False):
 
         isocut = self.chainPart['isoInfo']
         log.debug(' isolation cut = ' + str(isocut))
         stepName = "precision_electron_lrt"+str(isocut)
-        return self.getStep(6,stepName,[ precisionElectronSequenceCfg_lrt],is_probe_leg=is_probe_leg)
+        return self.getStep(7,stepName,[ precisionElectronSequenceCfg_lrt],is_probe_leg=is_probe_leg)
 
     def getFastCalo_fwd(self,is_probe_leg=False):
         stepName       = "FastCalo_FWD_electron"
         return self.getStep(1, stepName, [electronFastCaloCfg_fwd], is_probe_leg=is_probe_leg)
 
     def getEmptyRefitStep(self, is_probe_leg=False):
-        return self.getEmptyStep(5,'nonGSFEmptyRefit')
+        return self.getEmptyStep(6,'nonGSFEmptyRefit')
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastElectronMenuSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastElectronMenuSequences.py
index 991f92ef0d2f65e755b7407c90bb9580f56d170a..b34f79f9283f62d675bc3788ce0978a40a4842e9 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastElectronMenuSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastElectronMenuSequences.py
@@ -1,5 +1,5 @@
 #
-#  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+#  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 #
 
 from AthenaConfiguration.AllConfigFlags import ConfigFlags 
@@ -8,103 +8,68 @@ from AthenaConfiguration.AllConfigFlags import ConfigFlags
 from TriggerMenuMT.HLT.Config.MenuComponents import MenuSequence, RecoFragmentsPool, algorithmCAToGlobalWrapper
 from AthenaCommon.CFElements import parOR, seqAND
 from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithm
-from DecisionHandling.DecisionHandlingConf import ViewCreatorCentredOnClusterROITool
+from DecisionHandling.DecisionHandlingConf import ViewCreatorPreviousROITool
 from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
 
 
 def fastElectronSequence(ConfigFlags, variant=''):
     """ second step:  tracking....."""
-
-    TrigEgammaKeys = getTrigEgammaKeys(variant)
-    IDTrigConfig = TrigEgammaKeys.IDTrigConfig
+    InViewRoIs = "EMFastElectronRoIs"+variant
   
-    from TrigInDetConfig.InDetTrigFastTracking import makeInDetTrigFastTracking
-    RoIs = "EMIDRoIs"+variant # contract with the fastCalo
-    viewAlgs, viewVerify = makeInDetTrigFastTracking( config = IDTrigConfig, rois = RoIs )
-
-    # A simple algorithm to confirm that data has been inherited from parent view
-    # Required to satisfy data dependencies
-    from TriggerMenuMT.HLT.CommonSequences.CaloSequences import CaloMenuDefs  
-    viewVerify.DataObjects += [( 'xAOD::TrigEMClusterContainer' , 'StoreGateSvc+%s' % CaloMenuDefs.L2CaloClusters ),
-                               ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )]
-
-    TrackParticlesName = ""
-    for viewAlg in viewAlgs:
-        if "InDetTrigTrackParticleCreatorAlg" in viewAlg.name():
-            TrackParticlesName = viewAlg.TrackParticlesName
-      
-
-    from TrigEgammaRec.TrigEgammaFastElectronConfig import TrigEgammaFastElectron_ReFastAlgo_Clean
-    theElectronFex = TrigEgammaFastElectron_ReFastAlgo_Clean("EgammaFastElectronFex_Clean_gen"+variant)
-
-    theElectronFex.TrigEMClusterName = CaloMenuDefs.L2CaloClusters
-    theElectronFex.TrackParticlesName = TrackParticlesName
-    theElectronFex.ElectronsName=TrigEgammaKeys.fastElectronContainer
-    theElectronFex.DummyElectronsName= "HLT_FastDummyElectrons"
- 
     # EVCreator:
-    l2ElectronViewsMaker = EventViewCreatorAlgorithm("IMl2Electron"+variant)
-    l2ElectronViewsMaker.RoIsLink = "initialRoI" # Merge inputs based on their initial L1 ROI
-    # Spawn View on SuperRoI encompassing all clusters found within the L1 RoI
-    roiTool = ViewCreatorCentredOnClusterROITool()
-    roiTool.AllowMultipleClusters = False # If True: SuperROI mode. If False: highest eT cluster in the L1 ROI
-    roiTool.RoisWriteHandleKey = TrigEgammaKeys.fastElectronRoIContainer
-    roiTool.RoIEtaWidth = IDTrigConfig.etaHalfWidth
-    roiTool.RoIPhiWidth = IDTrigConfig.phiHalfWidth
-    l2ElectronViewsMaker.RoITool = roiTool
-    l2ElectronViewsMaker.InViewRoIs = RoIs
-    l2ElectronViewsMaker.Views = "EMElectronViews"+variant
-    l2ElectronViewsMaker.ViewFallThrough = True
-    l2ElectronViewsMaker.RequireParentView = True
-
-    theElectronFex.RoIs = l2ElectronViewsMaker.InViewRoIs
-    electronInViewAlgs = parOR("electronInViewAlgs"+variant, viewAlgs + [ theElectronFex ])
-    l2ElectronViewsMaker.ViewNodeName = "electronInViewAlgs"+variant
+    fastElectronViewsMaker = EventViewCreatorAlgorithm("IMfastElectron"+variant)
+    fastElectronViewsMaker.RoIsLink = "initialRoI" # Merge inputs based on their initial L1 ROI
+    fastElectronViewsMaker.RoITool = ViewCreatorPreviousROITool()
+    fastElectronViewsMaker.InViewRoIs = InViewRoIs
+    fastElectronViewsMaker.Views = "EMElectronViews"+variant
+    fastElectronViewsMaker.ViewFallThrough = True
+    fastElectronViewsMaker.RequireParentView = True
+
+    # Configure the reconstruction algorithm sequence
+    from TriggerMenuMT.HLT.Electron.FastElectronRecoSequences import fastElectronRecoSequence
+    (fastElectronRec, sequenceOut) = fastElectronRecoSequence(InViewRoIs, variant)
+    
+    # Suffix to distinguish probe leg sequences
+    fastElectronInViewAlgs = parOR("fastElectronInViewAlgs" + variant, [fastElectronRec])
+    fastElectronViewsMaker.ViewNodeName = "fastElectronInViewAlgs" + variant
 
     from TrigGenericAlgs.TrigGenericAlgsConfig import ROBPrefetchingAlgCfg_Si
-    robPrefetchAlg = algorithmCAToGlobalWrapper(ROBPrefetchingAlgCfg_Si, ConfigFlags, nameSuffix=l2ElectronViewsMaker.name())[0]
-
-    electronAthSequence = seqAND("electronAthSequence"+variant, [l2ElectronViewsMaker, robPrefetchAlg, electronInViewAlgs ] )
-    return (electronAthSequence, l2ElectronViewsMaker)
 
+    robPrefetchAlg = algorithmCAToGlobalWrapper(ROBPrefetchingAlgCfg_Si, ConfigFlags, nameSuffix=fastElectronViewsMaker.name())[0]
+    fastElectronAthSequence = seqAND("fastElectronAthSequence" + variant, [fastElectronViewsMaker, robPrefetchAlg, fastElectronInViewAlgs] )
+    return (fastElectronAthSequence, fastElectronViewsMaker, sequenceOut)
 
 def fastElectronSequence_LRT(ConfigFlags):
     # This is SAME as fastElectronSequence but for variant "_LRT"
     return fastElectronSequence(ConfigFlags,"_LRT")
 
 
-
-def fastElectronMenuSequence(do_idperf,is_probe_leg=False, variant=''):
+def fastElectronMenuSequence(is_probe_leg=False, variant=''):
     """ Creates 2nd step Electron  MENU sequence"""
-    # retrieve the reco sequence+IM
+    # retrieve the reco sequence+EVC
     theSequence = {
             ''      : fastElectronSequence,
             '_LRT'  : fastElectronSequence_LRT
             }
-    (electronAthSequence, l2ElectronViewsMaker) = RecoFragmentsPool.retrieve(theSequence[variant], ConfigFlags)
-
+    (fastElectronAthSequence, fastElectronViewsMaker, sequenceOut) = RecoFragmentsPool.retrieve(theSequence[variant], ConfigFlags)
     # make the Hypo
     from TrigEgammaHypo.TrigEgammaHypoConf import TrigEgammaFastElectronHypoAlg
     TrigEgammaKeys = getTrigEgammaKeys(variant)
 
-    if do_idperf is True:
-        theElectronHypo = TrigEgammaFastElectronHypoAlg("TrigEgammaFastElectronHypoAlg_idperf"+variant)
-        theElectronHypo.Electrons = "HLT_FastDummyElectrons"
-    else:
-        theElectronHypo = TrigEgammaFastElectronHypoAlg("TrigEgammaFastElectronHypoAlg"+variant)
-        theElectronHypo.Electrons = TrigEgammaKeys.fastElectronContainer
+    theElectronHypo = TrigEgammaFastElectronHypoAlg("TrigEgammaFastElectronHypoAlg"+variant)
+    theElectronHypo.Electrons = TrigEgammaKeys.fastElectronContainer
 
     theElectronHypo.RunInView=True
 
     from TrigEgammaHypo.TrigEgammaFastElectronHypoTool import TrigEgammaFastElectronHypoToolFromDict
 
-    return  MenuSequence( Maker       = l2ElectronViewsMaker,                                        
-                          Sequence    = electronAthSequence,
+    return  MenuSequence( Maker       = fastElectronViewsMaker,                                        
+                          Sequence    = fastElectronAthSequence,
                           Hypo        = theElectronHypo,
                           HypoToolGen = TrigEgammaFastElectronHypoToolFromDict,
                           IsProbe=is_probe_leg)
 
 
-def fastElectronMenuSequence_LRT(do_idperf,is_probe_leg=False):
+def fastElectronMenuSequence_LRT(is_probe_leg=False):
     # This is to call fastElectronMenuSequence for the _LRT variant
-    return fastElectronMenuSequence(do_idperf,is_probe_leg=is_probe_leg, variant='_LRT')
+    return fastElectronMenuSequence(is_probe_leg=is_probe_leg, variant='_LRT')
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastElectronRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastElectronRecoSequences.py
new file mode 100644
index 0000000000000000000000000000000000000000..96bb4f4e987bd3137730709956e4d63f7397f61e
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastElectronRecoSequences.py
@@ -0,0 +1,43 @@
+#
+#  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+#
+from AthenaCommon.CFElements import parOR
+
+#logging
+from AthenaCommon.Logging import logging
+log = logging.getLogger(__name__)
+
+from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
+
+
+def fastElectronRecoSequence(RoIs, variant=''):
+    
+    import AthenaCommon.CfgMgr as CfgMgr
+
+    TrigEgammaKeys = getTrigEgammaKeys(variant)
+    trackParticlesName = TrigEgammaKeys.fastTrackParticleContainer  
+
+    # A simple algorithm to confirm that data has been inherited from parent view
+    # Required to satisfy data dependencies
+    ViewVerifyTrk = CfgMgr.AthViews__ViewDataVerifier("FastTrackViewDataVerifier_FTF"+variant)
+    from TriggerMenuMT.HLT.CommonSequences.CaloSequences import CaloMenuDefs  
+    ViewVerifyTrk.DataObjects += [( 'xAOD::TrigEMClusterContainer' , 'StoreGateSvc+%s' % CaloMenuDefs.L2CaloClusters ),
+                                  ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+%s' % trackParticlesName ),
+                                  ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )]
+                                  
+    from TrigEgammaRec.TrigEgammaFastElectronConfig import TrigEgammaFastElectron_ReFastAlgo_Clean
+    theElectronFex = TrigEgammaFastElectron_ReFastAlgo_Clean("EgammaFastElectronFex_Clean_gen"+variant)
+
+    theElectronFex.TrigEMClusterName = CaloMenuDefs.L2CaloClusters
+    theElectronFex.RoIs = RoIs
+    theElectronFex.TrackParticlesName = trackParticlesName
+    theElectronFex.ElectronsName=TrigEgammaKeys.fastElectronContainer
+    theElectronFex.DummyElectronsName= "HLT_FastDummyElectrons"
+
+    fastElectronRecoSequence = parOR( "fastElectron"+RoIs)
+    fastElectronRecoSequence += ViewVerifyTrk
+    fastElectronRecoSequence += theElectronFex
+    
+    collectionOut = TrigEgammaKeys.fastElectronContainer
+    
+    return fastElectronRecoSequence, collectionOut
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastTrackingMenuSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastTrackingMenuSequences.py
new file mode 100644
index 0000000000000000000000000000000000000000..8b649aaab968ce6ef825313f0c2ed9aacbd31645
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastTrackingMenuSequences.py
@@ -0,0 +1,67 @@
+#
+#  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+#
+
+from AthenaConfiguration.AllConfigFlags import ConfigFlags
+
+# menu components   
+from TriggerMenuMT.HLT.Config.MenuComponents import MenuSequence, RecoFragmentsPool,algorithmCAToGlobalWrapper
+from AthenaCommon.CFElements import parOR, seqAND
+from ViewAlgs.ViewAlgsConf import EventViewCreatorAlgorithm
+from DecisionHandling.DecisionHandlingConf import ViewCreatorCentredOnClusterROITool
+
+
+def fastTrackingSequence(ConfigFlags, variant=''):
+    """ second step:  tracking....."""
+    from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
+    TrigEgammaKeys = getTrigEgammaKeys(variant)
+    IDTrigConfig = TrigEgammaKeys.IDTrigConfig
+    RoIs = "EMIDRoIs"+variant
+    # EVCreator:
+    fastTrackingViewsMaker = EventViewCreatorAlgorithm("IMfastTracking"+variant)
+    fastTrackingViewsMaker.mergeUsingFeature=True
+    fastTrackingViewsMaker.RoIsLink = "initialRoI" # Merge inputs based on their initial L1 ROI
+    # Spawn View on SuperRoI encompassing all clusters found within the L1 RoI
+    roiTool = ViewCreatorCentredOnClusterROITool()
+    roiTool.AllowMultipleClusters = False # If True: SuperROI mode. If False: highest eT cluster in the L1 ROI
+    roiTool.RoisWriteHandleKey = TrigEgammaKeys.fastTrackingRoIContainer
+    roiTool.RoIEtaWidth = IDTrigConfig.etaHalfWidth
+    roiTool.RoIPhiWidth = IDTrigConfig.phiHalfWidth
+    fastTrackingViewsMaker.RoITool = roiTool
+    fastTrackingViewsMaker.InViewRoIs = RoIs
+    fastTrackingViewsMaker.Views = "EMFastTrackingViews"+variant
+    fastTrackingViewsMaker.ViewFallThrough = True
+    fastTrackingViewsMaker.RequireParentView = True
+
+    # calling fast tracking
+    from TriggerMenuMT.HLT.Electron.FastTrackingRecoSequences import fastTracking
+    fastTrackingInViewSequence, trackParticles = fastTracking(RoIs,variant)
+
+    fastTrackingInViewAlgs = parOR("fastTrackingInViewAlgs"+variant, [fastTrackingInViewSequence])
+    fastTrackingViewsMaker.ViewNodeName = "fastTrackingInViewAlgs"+variant
+
+    # connect EVC and reco
+    from TrigGenericAlgs.TrigGenericAlgsConfig import ROBPrefetchingAlgCfg_Si
+    robPrefetchAlg = algorithmCAToGlobalWrapper(ROBPrefetchingAlgCfg_Si,ConfigFlags,nameSuffix=fastTrackingViewsMaker.name())[0]
+    theSequence = seqAND("fastTrackingSequence"+variant, [fastTrackingViewsMaker, robPrefetchAlg, fastTrackingInViewAlgs] )
+    return (theSequence,fastTrackingViewsMaker,trackParticles)
+
+
+def fastTrackingMenuSequence(name, is_probe_leg=False, variant=''):
+    """ Creates precisionCalo MENU sequence """
+    (sequence, fastTrackingViewsMaker, trackParticles) = RecoFragmentsPool.retrieve(fastTrackingSequence, ConfigFlags , variant=variant)
+
+    from TrigStreamerHypo.TrigStreamerHypoConf import TrigStreamerHypoAlg, TrigStreamerHypoTool
+    theFastTrackingHypo = TrigStreamerHypoAlg(name + "fastTrackingHypo"+variant)
+    theFastTrackingHypo.FeatureIsROI = False
+    def acceptAllHypoToolGen(chainDict):
+        return TrigStreamerHypoTool(chainDict["chainName"], Pass = True)
+    return MenuSequence( Sequence    = sequence,
+                         Maker       = fastTrackingViewsMaker, 
+                         Hypo        = theFastTrackingHypo,
+                         HypoToolGen = acceptAllHypoToolGen,
+                         IsProbe     = is_probe_leg)
+
+
+def fastTrackingMenuSequence_LRT(name, is_probe_leg=False):
+   return fastTrackingMenuSequence(name, is_probe_leg=is_probe_leg, variant='_LRT')
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastTrackingRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastTrackingRecoSequences.py
new file mode 100644
index 0000000000000000000000000000000000000000..53a2e6496d3863b48a33d444572ba0fe85d0ea7f
--- /dev/null
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/FastTrackingRecoSequences.py
@@ -0,0 +1,20 @@
+#
+#  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
+#
+
+from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
+
+
+def fastTracking(RoIs, variant=''):
+    TrigEgammaKeys = getTrigEgammaKeys(variant)
+    IDTrigConfig = TrigEgammaKeys.IDTrigConfig
+    from TrigInDetConfig.InDetTrigFastTracking import makeInDetTrigFastTracking
+    viewAlgs, viewVerify = makeInDetTrigFastTracking( config = IDTrigConfig, rois = RoIs )
+    viewVerify.DataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )]
+
+    TrackParticlesName = ""
+    for viewAlg in viewAlgs:
+        if "InDetTrigTrackParticleCreatorAlg" in viewAlg.name():
+            TrackParticlesName = viewAlg.TrackParticlesName
+    
+    return viewAlgs, TrackParticlesName
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionCaloMenuSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionCaloMenuSequences.py
index 785fa76635f13df1184bdb39f6e055308aac92c7..91d922967eafea031f7ac9d0ab52a9d32b3ef178 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionCaloMenuSequences.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionCaloMenuSequences.py
@@ -30,7 +30,7 @@ def precisionCaloSequence(flags, ion=False, variant=''):
     # Note: This step processes Decision Objects which have followed either Electron reco, Photon reco, or both.
     # For Decision Object which have followed both, there is an ambiguity about which ROI should be used in this
     # merged step. In such cases we break the ambiguity by specifying that the Electron ROI is to be used.
-    roiTool.RoISGKey = TrigEgammaKeys.fastElectronRoIContainer
+    roiTool.RoISGKey = TrigEgammaKeys.fastTrackingRoIContainer
     precisionCaloViewsMaker.RoITool = roiTool
     precisionCaloViewsMaker.InViewRoIs = InViewRoIs
     precisionCaloViewsMaker.Views = tag(ion) + 'Views' + variant
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py
index 9482b5adefa712b1dcc12beb3bef5e41bb02adc6..33ab5c7033a4cbb91f6d1ef4a52deca49ed725a1 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Menu/Physics_pp_run3_v1.py
@@ -555,15 +555,15 @@ def setupMenu():
 
         # Support
         # T&P chains for displaced electrons
-        ChainProp(name='HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1EM22VHI',l1SeedThresholds=['EM22VHI','PROBEEM3'],groups=TagAndProbeLegGroup+SingleElectronGroup),
+        ChainProp(name='HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1EM22VHI',l1SeedThresholds=['EM22VHI','PROBEEM3'],groups=TagAndProbeLegGroup+SingleElectronGroup),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_lrtmedium_probe_L1EM22VHI',l1SeedThresholds=['EM22VHI','PROBEEM22VHI'],groups=TagAndProbeLegGroup+SingleElectronGroup),
-        ChainProp(name='HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1EM20VH',l1SeedThresholds=['PROBEEM3','EM20VH'],groups=SupportLegGroup+SingleElectronGroup+['RATE:CPS_EM20VH']),
+        ChainProp(name='HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1EM20VH',l1SeedThresholds=['PROBEEM3','EM20VH'],groups=SupportLegGroup+SingleElectronGroup+['RATE:CPS_EM20VH']),
         ChainProp(name='HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1EM20VH',l1SeedThresholds=['PROBEEM22VHI','EM20VH'],groups=SupportLegGroup+SingleElectronGroup+['RATE:CPS_EM20VH']),
 
 
-        ChainProp(name='HLT_e26_lhtight_ivarloose_e5_lhvloose_nopix_lrtloose_idperf_probe_L1eEM26M',l1SeedThresholds=['eEM26M','PROBEeEM5'],groups=TagAndProbePhIGroup+SingleElectronGroup),
+        ChainProp(name='HLT_e26_lhtight_ivarloose_e5_loose_lrtloose_idperf_probe_L1eEM26M',l1SeedThresholds=['eEM26M','PROBEeEM5'],groups=TagAndProbePhIGroup+SingleElectronGroup),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_lrtmedium_probe_L1eEM26M',l1SeedThresholds=['eEM26M','PROBEeEM26M'],groups=TagAndProbePhIGroup+SingleElectronGroup),
-        ChainProp(name='HLT_e5_lhvloose_nopix_lrtloose_idperf_probe_g25_medium_L1eEM24L',l1SeedThresholds=['PROBEeEM5','eEM24L'],groups=SupportPhIGroup+SingleElectronGroup+['RATE:CPS_eEM24L']),
+        ChainProp(name='HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1eEM24L',l1SeedThresholds=['PROBEeEM5','eEM24L'],groups=SupportPhIGroup+SingleElectronGroup+['RATE:CPS_eEM24L']),
         ChainProp(name='HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1eEM24L',l1SeedThresholds=['PROBEeEM26M','eEM24L'],groups=SupportPhIGroup+SingleElectronGroup+['RATE:CPS_eEM24L']),
 
         ChainProp(name='HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_probe_L1EM22VHI',l1SeedThresholds=['EM22VHI','PROBEEM22VHI'],groups=TagAndProbeLegGroup+SingleElectronGroup),
@@ -583,44 +583,45 @@ def setupMenu():
         ChainProp(name='HLT_e26_idperf_tight_L1EM22VHI', stream=[PhysicsStream,'express'], groups=SingleElectronGroup+SupportLegGroup+['RATE:CPS_EM22VHI'], monGroups=['idMon:shifter','idMon:t0']),
         ChainProp(name='HLT_e60_idperf_medium_L1EM22VHI', groups=SingleElectronGroup+SupportLegGroup+['RATE:CPS_EM22VHI'], monGroups=['idMon:t0']),
         ChainProp(name='HLT_e60_idperf_medium_nogsf_L1EM22VHI', groups=SingleElectronGroup+SupportLegGroup+['RATE:CPS_EM22VHI'], monGroups=['idMon:t0']),
-        ChainProp(name='HLT_e14_etcut_idperf_L1EM7', stream=[PhysicsStream], groups=SingleElectronGroup+SupportLegGroup+['RATE:CPS_EM7']),
+        ChainProp(name='HLT_e14_idperf_loose_L1EM7', stream=[PhysicsStream], groups=SingleElectronGroup+SupportLegGroup+['RATE:CPS_EM7']),
         ChainProp(name='HLT_e14_idperf_tight_L1EM7', stream=[PhysicsStream], groups=SingleElectronGroup+SupportLegGroup+['RATE:CPS_EM7'], monGroups=['idMon:t0']),
         ChainProp(name='HLT_e14_idperf_tight_nogsf_L1EM7', stream=[PhysicsStream], groups=SingleElectronGroup+SupportLegGroup+['RATE:CPS_EM7'], monGroups=['idMon:t0']),
         ChainProp(name='HLT_2e17_idperf_loose_nogsf_L12EM15VHI', groups=MultiElectronGroup+SupportLegGroup+['RATE:CPS_2EM15VHI']),
         ChainProp(name='HLT_2e17_idperf_loose_L12EM15VHI', groups=MultiElectronGroup+SupportLegGroup+['RATE:CPS_2EM15VHI']),
+        
         # LRT idperf
         ChainProp(name='HLT_e30_idperf_loose_lrtloose_L1EM22VHI', stream=[PhysicsStream,'express'], groups=SupportLegGroup+SingleElectronGroup+['RATE:CPS_EM22VHI'], monGroups=['idMon:shifter','idMon:t0']),
-        ChainProp(name='HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1EM22VHI', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=PrimaryLegGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
-        ChainProp(name='HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1EM22VHI', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=PrimaryLegGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
-        ChainProp(name='HLT_e9_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-EM7', stream=[PhysicsStream], l1SeedThresholds=['EM7','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM7']+LegacyTopoGroup),
-        ChainProp(name='HLT_e9_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-EM7', stream=[PhysicsStream], l1SeedThresholds=['EM7','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM7']+LegacyTopoGroup),
-        ChainProp(name='HLT_e14_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-EM12', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM12','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM12']+LegacyTopoGroup, monGroups=['idMon:t0']),
-        ChainProp(name='HLT_e14_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-EM12', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM12','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM12']+LegacyTopoGroup, monGroups=['idMon:t0']),
+        
+        ChainProp(name='HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1EM22VHI', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=PrimaryLegGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
+        ChainProp(name='HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1EM22VHI', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=PrimaryLegGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
+        ChainProp(name='HLT_e9_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-EM7', stream=[PhysicsStream], l1SeedThresholds=['EM7','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM7']+LegacyTopoGroup),
+        ChainProp(name='HLT_e9_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-EM7', stream=[PhysicsStream], l1SeedThresholds=['EM7','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM7']+LegacyTopoGroup),
+        ChainProp(name='HLT_e14_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-EM12', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM12','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM12']+LegacyTopoGroup, monGroups=['idMon:t0']),
+        ChainProp(name='HLT_e14_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-EM12', stream=[PhysicsStream,'express'], l1SeedThresholds=['EM12','PROBEEM3'], groups=SupportLegGroup+MultiElectronGroup+['RATE:CPS_JPSI-1M5-EM12']+LegacyTopoGroup, monGroups=['idMon:t0']),
 
         ChainProp(name='HLT_e5_idperf_tight_L1eEM5', groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM5'], monGroups=['idMon:t0']),
         ChainProp(name='HLT_e5_idperf_tight_nogsf_L1eEM5', groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM5'], monGroups=['idMon:t0']),
 
         #------------ ATR-25648:Raise threshold on Phase-I seeded LRT electrons
         ChainProp(name='HLT_e20_idperf_loose_lrtloose_L1eEM18L', groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM18L'], monGroups=['idMon:t0']),
-
         ChainProp(name='HLT_e26_idperf_loose_L1eEM26M', groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM26M']),
         ChainProp(name='HLT_e26_idperf_tight_nogsf_L1eEM26M', groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM26M'], monGroups=['idMon:shifter','idMon:t0']),
         ChainProp(name='HLT_e26_idperf_tight_L1eEM26M', stream=[PhysicsStream,'express'], groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM26M'], monGroups=['idMon:shifter','idMon:t0']),
         ChainProp(name='HLT_e60_idperf_medium_L1eEM26M', groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM26M'], monGroups=['idMon:t0']),
         ChainProp(name='HLT_e60_idperf_medium_nogsf_L1eEM26M', groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM26M'], monGroups=['idMon:t0']),
-        ChainProp(name='HLT_e14_etcut_idperf_L1eEM9', stream=[PhysicsStream], groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM9']),
+        ChainProp(name='HLT_e14_idperf_loose_L1eEM9', stream=[PhysicsStream], groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM9']),
         ChainProp(name='HLT_e14_idperf_tight_L1eEM9', stream=[PhysicsStream], groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM9'], monGroups=['idMon:t0']),
         ChainProp(name='HLT_e14_idperf_tight_nogsf_L1eEM9', stream=[PhysicsStream], groups=SingleElectronGroup+SupportPhIGroup+['RATE:CPS_eEM9'], monGroups=['idMon:t0']),
         ChainProp(name='HLT_2e17_idperf_loose_L12eEM18M', groups=MultiElectronGroup+SupportPhIGroup+['RATE:CPS_2eEM18M']),
         ChainProp(name='HLT_2e17_idperf_loose_nogsf_L12eEM18M', groups=MultiElectronGroup+SupportPhIGroup+['RATE:CPS_2eEM18M']),
         ChainProp(name='HLT_e30_idperf_loose_lrtloose_L1eEM26M', stream=[PhysicsStream,'express'], groups=SupportPhIGroup+SingleElectronGroup+['RATE:CPS_eEM26M'], monGroups=['idMon:shifter','idMon:t0']),
 
-        ChainProp(name='HLT_e26_lhtight_e14_etcut_idperf_probe_50invmAB130_L1eEM26M', stream=[PhysicsStream, 'express'], l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=PrimaryPhIGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
-        ChainProp(name='HLT_e26_lhtight_e14_etcut_idperf_nogsf_probe_50invmAB130_L1eEM26M', stream=[PhysicsStream, 'express'], l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=PrimaryPhIGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
-        ChainProp(name='HLT_e9_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-eEM9', stream=[PhysicsStream], l1SeedThresholds=['eEM9','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM9']),
-        ChainProp(name='HLT_e9_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM9', stream=[PhysicsStream], l1SeedThresholds=['eEM9','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM9']),
-        ChainProp(name='HLT_e14_lhtight_e4_etcut_idperf_probe_1invmAB5_L1JPSI-1M5-eEM15', stream=[PhysicsStream,'express'], l1SeedThresholds=['eEM15','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM15'], monGroups=['idMon:t0']),
-        ChainProp(name='HLT_e14_lhtight_e4_etcut_idperf_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM15', stream=[PhysicsStream, 'express'], l1SeedThresholds=['eEM15','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM15'], monGroups=['idMon:t0']),
+        ChainProp(name='HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1eEM26M', stream=[PhysicsStream, 'express'], l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=PrimaryPhIGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
+        ChainProp(name='HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1eEM26M', stream=[PhysicsStream, 'express'], l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=PrimaryPhIGroup+MultiElectronGroup, monGroups=['idMon:shifter','idMon:t0']),
+        ChainProp(name='HLT_e9_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-eEM9', stream=[PhysicsStream], l1SeedThresholds=['eEM9','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM9']),
+        ChainProp(name='HLT_e9_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM9', stream=[PhysicsStream], l1SeedThresholds=['eEM9','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM9']),
+        ChainProp(name='HLT_e14_lhtight_e4_idperf_tight_probe_1invmAB5_L1JPSI-1M5-eEM15', stream=[PhysicsStream,'express'], l1SeedThresholds=['eEM15','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM15'], monGroups=['idMon:t0']),
+        ChainProp(name='HLT_e14_lhtight_e4_idperf_tight_nogsf_probe_1invmAB5_L1JPSI-1M5-eEM15', stream=[PhysicsStream, 'express'], l1SeedThresholds=['eEM15','PROBEeEM5'], groups=SupportPhIGroup+MultiElectronGroup+Topo2Group+['RATE:CPS_JPSI-1M5-eEM15'], monGroups=['idMon:t0']),
 
         #----------- egamma Tag&Probe
         ChainProp(name='HLT_e26_lhtight_ivarloose_e4_etcut_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM3'], groups=TagAndProbeLegGroup+SingleElectronGroup, monGroups=['egammaMon:t0_topo']),
@@ -628,7 +629,7 @@ def setupMenu():
         ChainProp(name='HLT_e26_lhtight_ivarloose_e17_lhvloose_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM15VHI'], groups=TagAndProbeLegGroup+SingleElectronGroup, monGroups=['egammaMon:online','egammaMon:shifter_topo']),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e24_lhvloose_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM20VH'], groups=TagAndProbeLegGroup+SingleElectronGroup, monGroups=['egammaMon:t0_topo']),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e26_lhtight_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM22VHI'], groups=TagAndProbeLegGroup+SingleElectronGroup, monGroups=['egammaMon:t0_topo']),
-        ChainProp(name='HLT_e26_lhtight_ivarloose_e14_etcut_idperf_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=TagAndProbeLegGroup+SingleElectronGroup),
+        ChainProp(name='HLT_e26_lhtight_ivarloose_e14_idperf_tight_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=TagAndProbeLegGroup+SingleElectronGroup),
 
         ChainProp(name='HLT_e26_lhtight_ivarloose_e14_lhtight_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=TagAndProbeLegGroup+SingleElectronGroup),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e14_etcut_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM7'], groups=TagAndProbeLegGroup+SingleElectronGroup),
@@ -637,15 +638,13 @@ def setupMenu():
         ChainProp(name='HLT_e26_lhtight_ivarloose_e5_lhtight_probe_L1EM22VHI', l1SeedThresholds=['EM22VHI','PROBEEM3'], groups=TagAndProbeLegGroup+SingleElectronGroup),
 
 
-
-
         ChainProp(name='HLT_e26_lhtight_ivarloose_e4_etcut_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM5'], groups=TagAndProbePhIGroup+SingleElectronGroup, monGroups=['egammaMon:t0_topo']),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e12_lhvloose_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM12L'], groups=TagAndProbePhIGroup+SingleElectronGroup, monGroups=['egammaMon:t0_topo']),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e17_lhvloose_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM18M'], groups=TagAndProbePhIGroup+SingleElectronGroup, monGroups=['egammaMon:online','egammaMon:shifter_topo']),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e24_lhvloose_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM24L'], groups=TagAndProbePhIGroup+SingleElectronGroup, monGroups=['egammaMon:t0_topo']),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e26_lhtight_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM26M'], groups=TagAndProbePhIGroup+SingleElectronGroup, monGroups=['egammaMon:t0_topo']),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e20_lhtight_ivarloose_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM18M'], groups=TagAndProbePhIGroup+SingleElectronGroup),
-        ChainProp(name='HLT_e26_lhtight_ivarloose_e15_etcut_idperf_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=TagAndProbePhIGroup+SingleElectronGroup),
+        ChainProp(name='HLT_e26_lhtight_ivarloose_e15_idperf_tight_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=TagAndProbePhIGroup+SingleElectronGroup),
 
         ChainProp(name='HLT_e26_lhtight_ivarloose_e14_lhtight_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=TagAndProbePhIGroup+SingleElectronGroup),
         ChainProp(name='HLT_e26_lhtight_ivarloose_e14_etcut_probe_L1eEM26M', l1SeedThresholds=['eEM26M','PROBEeEM9'], groups=TagAndProbePhIGroup+SingleElectronGroup),