From 69ac59ecd66f03645193d52e28a8e1e7181725e8 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Fri, 6 Oct 2017 17:57:44 +0200
Subject: [PATCH] Improve the CMS example. Add word for the raw generator
 status of generator particles to Geant4Particle

---
 DDCMS/include/DDCMS/DDCMS.h                  |  46 +-
 DDCMS/include/DDCMS/DDCMSTags.h              |   3 +
 DDCMS/src/DDCMS.cpp                          |  95 +++-
 DDCMS/src/plugins/DDCMSDetElementCreator.cpp |  88 +++
 DDCMS/src/plugins/DDDefinitions2Objects.cpp  |  84 ++-
 DDCMS/src/plugins/DDPixBarLayerAlgo.cpp      | 115 ++--
 DDCMS/src/plugins/DDTECCoolAlgo.cpp          |  30 +-
 DDCMS/src/plugins/DDTECModuleAlgo.cpp        | 124 ++---
 DDCMS/src/plugins/DDTECOptoHybAlgo.cpp       |  42 +-
 DDCMS/src/plugins/DDTECPhiAlgo.cpp           |  16 +-
 DDCMS/src/plugins/DDTECPhiAltAlgo.cpp        |  16 +-
 DDCMS/src/plugins/DDTIBLayerAlgo.cpp         | 541 ++++++++++++++++++-
 DDCMS/src/plugins/DDTIDModuleAlgo.cpp        | 442 ++++++++++++++-
 DDCMS/src/plugins/DDTIDModulePosAlgo.cpp     | 356 ++++++++++++
 DDCMS/src/plugins/DDTIDRingAlgo.cpp          |  46 +-
 DDCMS/src/plugins/DDTOBAxCableAlgo.cpp       | 139 +++++
 DDCMS/src/plugins/DDTOBRadCableAlgo.cpp      | 209 +++++++
 DDCMS/src/plugins/DDTOBRodAlgo.cpp           | 281 +++++++++-
 DDCMS/src/plugins/DDTrackerAngular.cpp       |  34 +-
 DDCMS/src/plugins/DDTrackerLinear.cpp        |  28 +-
 DDCMS/src/plugins/DDTrackerPhiAlgo.cpp       |  28 +-
 DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp    |  34 +-
 DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp    |  35 +-
 DDCMS/src/plugins/DDTrackerZPosAlgo.cpp      |  31 +-
 DDCond/src/Type1/Manager_Type1.cpp           |   3 +-
 DDCore/include/DD4hep/VolumeProcessor.h      | 179 ++++++
 DDCore/include/DD4hep/Volumes.h              |  18 +
 DDCore/src/GeoDictionary.h                   |   6 +
 DDCore/src/RootDictionary.h                  |   9 +-
 DDCore/src/VolumeManager.cpp                 |  10 +-
 DDCore/src/VolumeProcessor.cpp               |  41 ++
 DDCore/src/Volumes.cpp                       |  14 +-
 DDCore/src/plugins/StandardPlugins.cpp       | 131 ++++-
 DDDB/src/plugins/CondDB2DDDB.cpp             |  24 +-
 DDG4/include/DDG4/DDG4Dict.h                 |   2 -
 DDG4/include/DDG4/Geant4InputAction.h        |   3 +-
 DDG4/include/DDG4/Geant4Particle.h           |  23 +-
 DDG4/lcio/Geant4Output2LCIO.cpp              |  11 +-
 DDG4/lcio/LCIOEventReader.cpp                |   9 +-
 DDG4/lcio/LCIOFileReader.cpp                 |   2 +-
 DDG4/lcio/LCIOParticleExtension.h            |  50 --
 DDG4/lcio/LCIOStdHepReader.cpp               |   4 +-
 DDG4/plugins/Geant4EventReaderHepEvt.cpp     |  14 +-
 DDG4/plugins/Geant4EventReaderHepMC.cpp      |  21 +-
 DDG4/src/Geant4InputAction.cpp               |  10 +-
 DDG4/src/Geant4Particle.cpp                  |  48 +-
 DDG4/src/Geant4ParticleHandler.cpp           |   2 +
 UtilityApps/src/run_plugin.h                 |  20 +-
 examples/DDCMS/CMS-tracker2.png              | Bin 0 -> 259860 bytes
 examples/DDCMS/data/cms_tracker.xml          | 103 ++--
 examples/DDCMS/data/pixfwdBlade.xml          |   2 +-
 examples/DDDB/CMakeLists.txt                 |   1 +
 examples/DDDB/scripts/display_dddb.sh        |  28 +
 examples/DDDB/scripts/run_dddb.sh            |   1 +
 54 files changed, 2958 insertions(+), 694 deletions(-)
 create mode 100644 DDCMS/src/plugins/DDCMSDetElementCreator.cpp
 create mode 100644 DDCMS/src/plugins/DDTIDModulePosAlgo.cpp
 create mode 100644 DDCMS/src/plugins/DDTOBAxCableAlgo.cpp
 create mode 100644 DDCMS/src/plugins/DDTOBRadCableAlgo.cpp
 create mode 100644 DDCore/include/DD4hep/VolumeProcessor.h
 create mode 100644 DDCore/src/VolumeProcessor.cpp
 delete mode 100644 DDG4/lcio/LCIOParticleExtension.h
 create mode 100644 examples/DDCMS/CMS-tracker2.png
 create mode 100755 examples/DDDB/scripts/display_dddb.sh

diff --git a/DDCMS/include/DDCMS/DDCMS.h b/DDCMS/include/DDCMS/DDCMS.h
index 7d15a05a7..9eafbf207 100644
--- a/DDCMS/include/DDCMS/DDCMS.h
+++ b/DDCMS/include/DDCMS/DDCMS.h
@@ -24,6 +24,7 @@
 
 // C/C++ include files
 #include <map>
+#include <sstream>
 
 /// Namespace for the AIDA detector description toolkit
 namespace dd4hep {
@@ -77,27 +78,27 @@ namespace dd4hep {
         return elt.attr<T>(n);
       }
       /// Add a new constant to the namespace
-      void addConstant(const std::string& name, const std::string& value, const std::string& type)  const;
+      void     addConstant(const std::string& name, const std::string& value, const std::string& type)  const;
       /// Add a new constant to the namespace as fully indicated by the name
-      void addConstantNS(const std::string& name, const std::string& value, const std::string& type)  const;
+      void     addConstantNS(const std::string& name, const std::string& value, const std::string& type)  const;
 
       /// Access material by its namespace dressed name
       Material material(const std::string& name)  const;
-      Solid  solid(const std::string& name)  const;
+      Solid    solid(const std::string& name)  const;
       /// Add solid to current namespace
-      void addSolid(const std::string& name,Solid solid)  const;
+      Solid    addSolid(const std::string& name,Solid solid)  const;
       /// Add solid to current namespace as fully indicated by the name
-      void addSolidNS(const std::string& name,Solid solid)  const;
+      Solid    addSolidNS(const std::string& name,Solid solid)  const;
 
-      Volume volume(const std::string& name, bool exc=true)  const;
+      Volume   volume(const std::string& name, bool exc=true)  const;
       /// Add volume to current namespace
-      void addVolume(Volume vol)  const;
+      Volume   addVolume(Volume vol)  const;
       /// Add volume to current namespace as fully indicated by the name
-      void addVolumeNS(Volume vol)  const;
+      Volume   addVolumeNS(Volume vol)  const;
 
       const Rotation3D& rotation(const std::string& name)  const;
       /// Add rotation matrix to current namespace
-      void addRotation(const std::string& name,const Rotation3D& rot)  const;
+      void    addRotation(const std::string& name,const Rotation3D& rot)  const;
     };
 
     /// XML parser context to store intermediate stuff
@@ -113,6 +114,8 @@ namespace dd4hep {
       std::map<std::string, Rotation3D>  rotations;
       std::map<std::string, Solid>       shapes;
       std::map<std::string, Volume>      volumes;
+      std::map<std::string, std::string> vismaterial;
+      std::set<std::string>              disabledAlgs;
       std::vector<std::string>           namespaces;
       bool geo_inited = false;
 
@@ -172,8 +175,33 @@ namespace dd4hep {
       bool find(const std::string& name)  const;
       /// Access typed argument by name
       template<typename T> T value(const std::string& name)  const;
+      /// Shortcut to access string arguments
+      std::string str(const std::string& nam)  const;
+      /// Shortcut to access double arguments
+      double dble(const std::string& nam)  const;
+      /// Shortcut to access integer arguments
+      int integer(const std::string& nam)  const;
+      /// Shortcut to access vector<double> arguments
+      std::vector<double> vecDble(const std::string& nam)  const;
+      /// Shortcut to access vector<int> arguments
+      std::vector<int> vecInt(const std::string& nam)  const;
+      /// Shortcut to access vector<int> arguments
+      std::vector<std::string> vecStr(const std::string& nam)  const;
     };
 
+    class LogDebug : public std::stringstream  {
+      std::string tag;
+      bool pop = false;
+    public:
+      LogDebug() = delete;
+      LogDebug(const LogDebug& copy) = delete;
+      LogDebug& operator=(const LogDebug& copy) = delete;
+      LogDebug(const std::string& tag_value, bool /* set_context */);
+      LogDebug(const std::string& tag_value);
+      ~LogDebug();
+      static void setDebugAlgorithms(bool value);
+    };
+    
     /// Create 3D rotation matrix from angles.
     Rotation3D make_rotation3D(double thetaX, double phiX,
                                double thetaY, double phiY,
diff --git a/DDCMS/include/DDCMS/DDCMSTags.h b/DDCMS/include/DDCMS/DDCMSTags.h
index 4fadc4414..f7415c2bd 100644
--- a/DDCMS/include/DDCMS/DDCMSTags.h
+++ b/DDCMS/include/DDCMS/DDCMSTags.h
@@ -114,7 +114,9 @@ namespace dd4hep {
     UNICODE(nEntries);
 
     UNICODE(VisSection);
+    UNICODE(vismaterial);
     UNICODE(vis);
+
     
     /// Debug flags
     UNICODE(debug_constants);
@@ -133,6 +135,7 @@ namespace dd4hep {
     UNICODE(close_geometry);
     UNICODE(IncludeSection);
     UNICODE(Include);
+    UNICODE(DisabledAlgo);
     
   }   /* End namespace DDCMS       */
 }     /* End namespace dd4hep     */
diff --git a/DDCMS/src/DDCMS.cpp b/DDCMS/src/DDCMS.cpp
index a1dd30929..35f9f5109 100644
--- a/DDCMS/src/DDCMS.cpp
+++ b/DDCMS/src/DDCMS.cpp
@@ -207,7 +207,7 @@ const Rotation3D& Namespace::rotation(const string& nam)  const   {
 }
 
 /// Add rotation matrix to current namespace
-void Namespace::addVolumeNS(Volume vol)  const  {
+Volume Namespace::addVolumeNS(Volume vol)  const  {
   string   n = vol.name();
   Solid    s = vol.solid();
   Material m = vol.material();
@@ -216,10 +216,11 @@ void Namespace::addVolumeNS(Volume vol)  const  {
   printout(context->debug_volumes ? ALWAYS : DEBUG, "DDCMS",
            "+++ Add volume:%-38s Solid:%-26s[%-16s] Material:%s",
            vol.name(), s.name(), s.type(), m.name());
+  return vol;
 }
 
 /// Add rotation matrix to current namespace
-void Namespace::addVolume(Volume vol)  const  {
+Volume Namespace::addVolume(Volume vol)  const  {
   string   n = prepend(vol.name());
   Solid    s = vol.solid();
   Material m = vol.material();
@@ -228,6 +229,7 @@ void Namespace::addVolume(Volume vol)  const  {
   printout(context->debug_volumes ? ALWAYS : DEBUG, "DDCMS",
            "+++ Add volume:%-38s Solid:%-26s[%-16s] Material:%s",
            vol.name(), s.name(), s.type(), m.name());
+  return vol;
 }
 
 Volume Namespace::volume(const string& nam, bool exc)  const   {
@@ -250,15 +252,16 @@ Volume Namespace::volume(const string& nam, bool exc)  const   {
 }
 
 /// Add solid to current namespace as fully indicated by the name
-void Namespace::addSolidNS(const std::string& nam,Solid sol)  const   {
+Solid Namespace::addSolidNS(const string& nam,Solid sol)  const   {
   printout(context->debug_shapes ? ALWAYS : DEBUG, "DDCMS",
            "+++ Add shape of type %s : %s",sol->IsA()->GetName(), nam.c_str());
   context->shapes[nam] = sol.setName(nam);
+  return sol;
 }
 
 /// Add solid to current namespace
-void Namespace::addSolid(const string& nam, Solid sol)  const  {
-  addSolidNS(prepend(nam), sol);
+Solid Namespace::addSolid(const string& nam, Solid sol)  const  {
+  return addSolidNS(prepend(nam), sol);
 }
 
 Solid Namespace::solid(const string& nam)  const   {
@@ -415,29 +418,79 @@ namespace dd4hep {
     template string AlgoArguments::value<string>(const string& nam)  const;
 
     /// Access typed vector<string> argument by name
-    template<> vector<string> AlgoArguments::value<vector<string> >(const string& nam)  const   {
-      xml_h xp = raw_arg(nam);
-      return raw_vector(this,xp);    
-    }
+    template<> vector<string> AlgoArguments::value<vector<string> >(const string& nam)  const
+    {      return raw_vector(this,raw_arg(nam));                     }
 
     /// Access typed vector<double> argument by name
-    template<> vector<double> AlgoArguments::value<vector<double> >(const string& nam)  const   {
-      return __cnvVect<double>(this,"numeric",raw_arg(nam));
-    }
+    template<> vector<double> AlgoArguments::value<vector<double> >(const string& nam)  const
+    {      return __cnvVect<double>(this,"numeric",raw_arg(nam));    }
 
     /// Access typed vector<float> argument by name
-    template<> vector<float> AlgoArguments::value<vector<float> >(const string& nam)  const   {
-      return __cnvVect<float>(this,"numeric",raw_arg(nam));
-    }
+    template<> vector<float> AlgoArguments::value<vector<float> >(const string& nam)  const
+    {      return __cnvVect<float>(this,"numeric",raw_arg(nam));     }
 
     /// Access typed vector<long> argument by name
-    template<> vector<long> AlgoArguments::value<vector<long> >(const string& nam)  const   {
-      return __cnvVect<long>(this,"numeric",raw_arg(nam));
-    }
+    template<> vector<long> AlgoArguments::value<vector<long> >(const string& nam)  const
+    {      return __cnvVect<long>(this,"numeric",raw_arg(nam));      }
 
     /// Access typed vector<int> argument by name
-    template<> vector<int> AlgoArguments::value<vector<int> >(const string& nam)  const   {
-      return __cnvVect<int>(this,"numeric",raw_arg(nam));
-    }
+    template<> vector<int> AlgoArguments::value<vector<int> >(const string& nam)  const
+    {      return __cnvVect<int>(this,"numeric",raw_arg(nam));       }
   }
 }
+
+/// Shortcut to access string arguments
+string AlgoArguments::str(const string& nam)  const
+{  return this->value<string>(nam);                }
+
+/// Shortcut to access double arguments
+double AlgoArguments::dble(const string& nam)  const
+{  return this->value<double>(nam);                }
+
+/// Shortcut to access integer arguments
+int AlgoArguments::integer(const string& nam)  const
+{  return this->value<int>(nam);                   }
+
+/// Shortcut to access vector<double> arguments
+vector<double> AlgoArguments::vecDble(const string& nam)  const
+{  return this->value<vector<double> >(nam);       }
+
+/// Shortcut to access vector<int> arguments
+vector<int> AlgoArguments::vecInt(const string& nam)  const
+{  return this->value<vector<int> >(nam);          }
+
+/// Shortcut to access vector<string> arguments
+vector<string> AlgoArguments::vecStr(const string& nam)  const
+{  return this->value<vector<string> >(nam);       }
+
+namespace {
+  bool s_debug_algorithms = false;
+  vector<string> s_algorithms;
+  const std::string currentAlg()  {
+    static std::string s_none = "??????";
+    if ( !s_algorithms.empty() ) return s_algorithms.back();
+    return s_none;
+  }
+}
+
+LogDebug::LogDebug(const std::string& tag_value, bool /* set_context */)  {
+  s_algorithms.push_back(tag_value);
+  pop = true;
+}
+
+LogDebug::LogDebug(const std::string& t) : stringstream(), tag(t)  {
+  if ( pop ) s_algorithms.pop_back();
+}
+
+LogDebug::~LogDebug()   {
+  if ( pop ) return;
+  if ( this->str().empty() ) return;
+  printout(s_debug_algorithms ? ALWAYS : DEBUG,
+           currentAlg(),"%s: %s",
+           tag.c_str(),this->str().c_str());
+}
+
+void LogDebug::setDebugAlgorithms(bool value)   {
+  s_debug_algorithms = value;
+}
+
diff --git a/DDCMS/src/plugins/DDCMSDetElementCreator.cpp b/DDCMS/src/plugins/DDCMSDetElementCreator.cpp
new file mode 100644
index 000000000..972b29df9
--- /dev/null
+++ b/DDCMS/src/plugins/DDCMSDetElementCreator.cpp
@@ -0,0 +1,88 @@
+//==========================================================================
+//  AIDA Detector description implementation 
+//--------------------------------------------------------------------------
+// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+// All rights reserved.
+//
+// For the licensing terms see $DD4hepINSTALL/LICENSE.
+// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+//
+// Author     : M.Frank
+//
+//==========================================================================
+//
+// Specialized generic detector constructor
+// 
+//==========================================================================
+
+// Framework include files
+#include "DD4hep/VolumeProcessor.h"
+#include "DD4hep/DetFactoryHelper.h"
+
+using namespace std;
+using namespace dd4hep;
+
+
+namespace {
+
+  
+  class DDCMSDetElementCreator : public PlacedVolumeProcessor  {
+    struct Data {
+      bool sensitive = false;
+      Data() = default;
+      Data(const Data& d) = default;
+      Data& operator=(const Data& d) = default;
+    };
+    typedef std::vector<std::pair<PlacedVolume,Data> > VolumeStack;
+    VolumeStack* stack;
+
+  public:
+    /// Initializing constructor
+    DDCMSDetElementCreator();
+    /// Default destructor
+    virtual ~DDCMSDetElementCreator();
+    /// Callback to output PlacedVolume information of an single Placement
+    virtual int operator()(PlacedVolume pv, int level)  const;    
+    /// Callback to output PlacedVolume information of an entire Placement
+    virtual int process(PlacedVolume pv, int level, bool recursive)  const;
+  };
+}
+
+
+#include "DD4hep/Printout.h"
+
+/// Initializing constructor
+DDCMSDetElementCreator::DDCMSDetElementCreator()  {
+  stack = new VolumeStack();
+}
+
+/// Default destructor
+DDCMSDetElementCreator::~DDCMSDetElementCreator()   {
+  detail::deletePtr(stack);
+}
+
+/// Callback to output PlacedVolume information of an single Placement
+int DDCMSDetElementCreator::operator()(PlacedVolume pv, int level)  const  {
+  Volume vol = pv.volume();
+  char sens  = vol.isSensitive() ? 'S' : ' ';
+  printout(INFO,"DDCMSDetElementCreator",
+           "++ %3d  %s [%s] %c", level, pv.name(), vol.name(), sens);
+  return 1;
+}
+
+/// Callback to output PlacedVolume information of an entire Placement
+int DDCMSDetElementCreator::process(PlacedVolume pv, int level, bool recursive)  const   {
+  stack->push_back(make_pair(pv,Data()));
+  int ret = PlacedVolumeProcessor::process(pv,level,recursive);
+  stack->pop_back();
+  return ret;
+}
+
+static void* create_object(Detector& /* description */, int /* argc */, char** /* argv */)   {
+  PlacedVolumeProcessor* proc = new DDCMSDetElementCreator();
+  return proc;
+}
+
+// first argument is the type from the xml file
+DECLARE_DD4HEP_CONSTRUCTOR(DDCMS_DetElementCreator,create_object)
+
diff --git a/DDCMS/src/plugins/DDDefinitions2Objects.cpp b/DDCMS/src/plugins/DDDefinitions2Objects.cpp
index 2940001a0..83f7c6317 100644
--- a/DDCMS/src/plugins/DDDefinitions2Objects.cpp
+++ b/DDCMS/src/plugins/DDDefinitions2Objects.cpp
@@ -50,6 +50,8 @@ namespace dd4hep {
 
     static UInt_t unique_mat_id = 0xAFFEFEED;
 
+
+    class disabled_algo;
     class include_constants;
     class include_load;
     class include_unload;
@@ -90,6 +92,7 @@ namespace dd4hep {
 
     class vissection;
     class vis_apply;
+    class vismaterial;
     class vis;
     class debug;
   }
@@ -97,7 +100,8 @@ namespace dd4hep {
   /// Converter instances implemented in this compilation unit
   template <> void Converter<debug>::operator()(xml_h element) const;
   template <> void Converter<print_xml_doc>::operator()(xml_h element) const;
-
+  template <> void Converter<disabled_algo>::operator()(xml_h element) const;
+  
   /// Converter for <ConstantsSection/> tags
   template <> void Converter<constantssection>::operator()(xml_h element) const;
   template <> void Converter<constant>::operator()(xml_h element) const;
@@ -105,7 +109,11 @@ namespace dd4hep {
 
   /// Converter for <VisSection/> tags
   template <> void Converter<vissection>::operator()(xml_h element) const;
+  /// Convert to apply visualization attributes
   template <> void Converter<vis_apply>::operator()(xml_h element) const;
+  /// Convert material visualization attributes
+  template <> void Converter<vismaterial>::operator()(xml_h element) const;
+  /// Convert compact visualization attributes
   template <> void Converter<vis>::operator()(xml_h element) const;
 
   /// Converter for <MaterialSection/> tags
@@ -166,6 +174,7 @@ template <> void Converter<constantssection>::operator()(xml_h element) const  {
 /// Converter for <VisSection/> tags
 template <> void Converter<vissection>::operator()(xml_h element) const  {
   Namespace _ns(_param<ParsingContext>(), element);
+  xml_coll_t(element, _CMU(vismaterial)).for_each(Converter<vismaterial>(description,_ns.context,optional));
   xml_coll_t(element, _CMU(vis)).for_each(Converter<vis>(description,_ns.context,optional));
 }
 
@@ -192,6 +201,11 @@ template <> void Converter<logicalpartsection>::operator()(xml_h element) const
   xml_coll_t(element, _CMU(LogicalPart)).for_each(Converter<logicalpart>(description,_ns.context,optional));
 }
 
+template <> void Converter<disabled_algo>::operator()(xml_h element) const   {
+  ParsingContext* c = _param<ParsingContext>();
+  c->disabledAlgs.insert(element.attr<string>(_U(name)));
+}
+
 /// Generic converter for  <SolidSection/> tags
 template <> void Converter<solidsection>::operator()(xml_h element) const   {
   Namespace _ns(_param<ParsingContext>(), element);
@@ -268,6 +282,13 @@ template <> void Converter<constant>::operator()(xml_h element) const  {
   res->unresolvedConst[real] = val;
 }
 
+/// Convert material visualization attributes
+template <> void Converter<vismaterial>::operator()(xml_h e) const {
+  ParsingContext* c = _param<ParsingContext>();
+  xml_dim_t xvis(e);
+  c->vismaterial[xvis.nameStr()] = xvis.typeStr();
+}
+
 /** Convert compact visualization attribute to Detector visualization attribute
  *
  *  <vis name="SiVertexBarrelModuleVis"
@@ -405,6 +426,7 @@ template <> void Converter<compositematerial>::operator()(xml_h element) const
       medium->SetTitle("material");
       medium->SetUniqueID(unique_mat_id);
     }
+    
   }
 }
 
@@ -652,15 +674,20 @@ template <> void Converter<algorithm>::operator()(xml_h element) const  {
   Namespace _ns(_param<ParsingContext>());
   xml_dim_t e(element);
   string name = e.nameStr();
+  if ( _ns.context->disabledAlgs.find(name) != _ns.context->disabledAlgs.end() )   {
+    printout(INFO,"DDCMS","+++ Skip disabled algorithms: %s",name.c_str());
+    return;
+  }
   try {
     SensitiveDetector sd;
     Segmentation      seg;
-    string type = _ns.real_name(e.nameStr());
+    string            type = "DDCMS_"+_ns.real_name(name);
 
     // SensitiveDetector and Segmentation currently are undefined. Let's keep it like this
     // until we found something better.....
     printout(_ns.context->debug_algorithms ? ALWAYS : DEBUG,
              "DDCMS","+++ Start executing algorithm %s....",type.c_str());
+    LogDebug context(e.nameStr(),true);
     long ret = PluginService::Create<long>(type, &description, _ns.context, &element, &sd);
     if ( ret == 1 )    {
       printout(_ns.context->debug_algorithms ? ALWAYS : DEBUG,
@@ -711,25 +738,58 @@ template <> void Converter<debug>::operator()(xml_h dbg) const {
   if ( dbg.hasChild(_CMU(debug_namespaces)) ) _ns.context->debug_namespaces = true;
   if ( dbg.hasChild(_CMU(debug_includes))   ) _ns.context->debug_includes   = true;
   if ( dbg.hasChild(_CMU(debug_algorithms)) ) _ns.context->debug_algorithms = true;
+  LogDebug::setDebugAlgorithms(_ns.context->debug_algorithms);
 }
 
 template <> void Converter<vis_apply>::operator()(xml_h /* dddefinition */) const {
   struct VisPatcher: public detail::GeoScan {
-    Detector& detector;
-    VisPatcher(Detector& d) : detail::GeoScan(d.world()), detector(d)  {    }
+    const Namespace& n_s;
+    VisPatcher(const Namespace&  n)
+      : detail::GeoScan(n.context->description->world()), n_s(n)
+    {    }
     void patch()   const  {
+      Detector* detector = n_s.context->description;
       printout(INFO,"Detector","+++ Applying DD4hep visualization attributes....");
+      VisAttr invisible = detector->visAttributes("invisible");
       for (auto i = m_data->rbegin(); i != m_data->rend(); ++i) {
         for( const TGeoNode* n : (*i).second )  {
-          Volume  vol(n->GetVolume());
-          VisAttr vis = detector.visAttributes(vol.name());
-          printout(DEBUG,"Vis","+++ %s  vis-attrs:%s",vol.name(), yes_no(vis.isValid()));
+          Volume   vol = n->GetVolume();
+          Material mat = vol.material();
+          VisAttr  vis = detector->visAttributes(vol.name());
+          if ( !vis.isValid() )  {
+            auto iv = n_s.context->vismaterial.find(mat.name());
+            if ( iv != n_s.context->vismaterial.end() )  {
+              vis = detector->visAttributes((*iv).second);
+            }
+          }
+          if ( !vis.isValid() && mat.density() < 5e0 )  {
+            vis = invisible;
+          }
+          /*
+          if ( !vis )   {
+            TGeoMaterial* m = mat->GetMaterial();
+            int ne = m->GetNelements();
+            for(int k=0; ne==1 && k<ne; ++k)   {
+              TGeoElement* e = m->GetElement(k);
+              auto iv = n_s.context->vismaterial.find(e->GetName());
+              if ( iv != n_s.context->vismaterial.end() )  {
+                vis = detector->visAttributes((*iv).second);
+                printout(INFO,"Vis","Set visattr according to element: %s -> %s",
+                         mat.name(), e->GetName());
+                break;
+              }
+            }
+          }
+          */
+          printout(INFO,"Vis","+++ %-40s Material:%s Dens:%6.1f vis-attrs:%s [%s]",
+                   vol.name(), mat.name(), mat.density(), yes_no(vis.isValid()),
+                   vis.name());
           vol.setVisAttributes(vis);
         }
       }
     }
   };
-  VisPatcher(description).patch();
+  VisPatcher(Namespace(_param<ParsingContext>())).patch();
 }
 
 template <> void Converter<resolve>::operator()(xml_h /* element */) const {
@@ -785,7 +845,7 @@ template <> void Converter<resolve>::operator()(xml_h /* element */) const {
 template <> void Converter<print_xml_doc>::operator()(xml_h element) const {
   string fname = xml::DocumentHandler::system_path(element);
   printout(_param<ParsingContext>()->debug_includes ? ALWAYS : DEBUG,
-           "DDCMS","+++ Processing data from file:%s",fname.c_str());
+           "DDCMS","+++ Processing data from: %s",fname.c_str());
 }
 
 /// Converter for <DDDefinition/> tags
@@ -809,6 +869,7 @@ static long load_dddefinition(Detector& det, xml_h element) {
   try  {
     resolve res;
     print_doc((doc=dddef.document()).root());
+    xml_coll_t(dddef, _CMU(DisabledAlgo)).for_each(Converter<disabled_algo>(det,&ctxt,&res));
     xml_coll_t(dddef, _CMU(ConstantsSection)).for_each(Converter<constantssection>(det,&ctxt,&res));
     xml_coll_t(dddef, _CMU(VisSection)).for_each(Converter<vissection>(det,&ctxt));
     xml_coll_t(dddef, _CMU(RotationSection)).for_each(Converter<rotationsection>(det,&ctxt));
@@ -816,7 +877,10 @@ static long load_dddefinition(Detector& det, xml_h element) {
 
     xml_coll_t(dddef, _CMU(IncludeSection)).for_each(_CMU(Include), Converter<include_load>(det,&ctxt,&res));
 
-    for(xml::Document d : res.includes ) Converter<include_constants>(det,&ctxt,&res)((doc=d).root());
+    for(xml::Document d : res.includes )   {
+      print_doc((doc=d).root());
+      Converter<include_constants>(det,&ctxt,&res)((doc=d).root());
+    }
     // Before we continue, we have to resolve all constants NOW!
     Converter<resolve>(det,&ctxt,&res)(dddef);
     // Now we can process the include files one by one.....
diff --git a/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp b/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp
index 44437faab..198a97b76 100644
--- a/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp
+++ b/DDCMS/src/plugins/DDPixBarLayerAlgo.cpp
@@ -17,27 +17,20 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
-using namespace dd4hep::detail;
 using namespace dd4hep::cms;
 
-static long create_element(Detector& description, ParsingContext& ctxt, xml_h e, SensitiveDetector& /* sens */)  {
-  stringstream  str;
+static long algorithm(Detector& description, ParsingContext& ctxt, xml_h e, SensitiveDetector& /* sens */)  {
   PlacedVolume  pv;
   Namespace     ns(ctxt, e, true);
   AlgoArguments args(ctxt, e);
   string        parentName = args.parentName();
 
-  printout(INFO,"DDCMS","+++ Parsing arguments for Algorithm:%-24s rParent:%s",
-           args.name.c_str(), parentName.c_str());
-
+  LogDebug("PixelGeom") << "+++ Parsing arguments for Algorithm:" <<  args.name
+                        << " rParent:" << parentName;
   string genMat    = args.value<string>("GeneralMaterial");
   int    number    = args.value<int>("Ladders");
   double layerDz   = args.value<double>("LayerDz");
@@ -49,8 +42,7 @@ static long create_element(Detector& description, ParsingContext& ctxt, xml_h e,
   double coolDist  = args.value<double>("CoolDist");
   string coolMat   = args.value<string>("CoolMaterial");
   string tubeMat   = args.value<string>("CoolTubeMaterial");
-
-  str << "Parent " << parentName << " NameSpace " << ns.name << "\n"
+  LogDebug("PixelGeom") << "Parent " << parentName << " NameSpace " << ns.name << "\n"
       << "\tLadders " << number << "\tGeneral Material " 
       << genMat << "\tLength " << layerDz << "\tSensorEdge "
       << sensorEdge << "\tSpecification of Cooling Pieces:\n"
@@ -58,21 +50,15 @@ static long create_element(Detector& description, ParsingContext& ctxt, xml_h e,
       << " Side " << coolSide << " Thickness of Shell " 
       << coolThick << " Radial distance " << coolDist 
       << " Materials " << coolMat << ", " << tubeMat;
-  printout(INFO,"DDPixBarLayerAlgo",str);
-
   vector<string> ladder      = args.value<vector<string> >("LadderName");
   vector<double> ladderWidth = args.value<vector<double> >("LadderWidth");
   vector<double> ladderThick = args.value<vector<double> >("LadderThick");
-  
-  str << "Full Ladder " << ladder[0] << " width/thickness " << ladderWidth[0]
+  LogDebug("PixelGeom") << "Full Ladder " << ladder[0] << " width/thickness " << ladderWidth[0]
       << ", " << ladderThick[0] << "\tHalf Ladder " 
       << ladder[1] << " width/thickness " << ladderWidth[1]
       << ", " << ladderThick[1];
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
-
-  string mother = parentName;
-  const std::string &idName = mother;
 
+  const std::string idName = ns.obj_name(parentName);
   double dphi = CLHEP::twopi/number;
   double d2   = 0.5*coolWidth;
   double d1   = d2 - coolSide*sin(0.5*dphi);
@@ -81,58 +67,47 @@ static long create_element(Detector& description, ParsingContext& ctxt, xml_h e,
   double rmin = (coolDist-0.5*(d1+d2))*cos(0.5*dphi)-0.5*ladderThick[0];
   double rmax = (coolDist+0.5*(d1+d2))*cos(0.5*dphi)+0.5*ladderThick[0];
   double rmxh = rmax - 0.5*ladderThick[0] + ladderThick[1];
-  str << "Rmin/Rmax " << rmin 
+  LogDebug("PixelGeom") << "Rmin/Rmax " << rmin 
       << ", " << rmax << " d1/d2 " << d1 << ", " << d2 
       << " x1/x2 " << x1 << ", " << x2;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
 
   double rtmi = rmin + 0.5*ladderThick[0] - ladderThick[1];
   double rtmx = sqrt(rmxh*rmxh+ladderWidth[1]*ladderWidth[1]);
-  Solid solid = Tube(rtmi, rtmx, 0.5*layerDz, 0, CLHEP::twopi);
-  solid.setName(idName);
-  str.str("");
-  str << "IDname "<< idName << " Tubs made of " 
+  Solid solid = ns.addSolid(idName,Tube(rtmi, rtmx, 0.5*layerDz, 0, CLHEP::twopi));
+  LogDebug("PixelGeom") << "IDname "<< idName << " Tubs made of " 
       << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg 
       << " with Rin " << rtmi << " Rout " << rtmx 
       << " ZHalf " << 0.5*layerDz;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
-
-  Volume layer(solid.name(), solid, ns.material(genMat));
-
+  
+  Volume layer = ns.addVolume(Volume(idName, solid, ns.material(genMat)));
   double rr = 0.5*(rmax+rmin);
   double dr = 0.5*(rmax-rmin);
   double h1 = 0.5*coolSide*cos(0.5*dphi);
   std::string name = idName + "CoolTube";
-  solid = Trap(0.5*coolDz, 0, 0, h1, d2, d1, 0, h1, d2, d1, 0);
-  solid.setName(idName+"CoolTube");
-  str << "Solid " << solid.name() 
+  solid = ns.addSolid(name,Trap(0.5*coolDz, 0, 0, h1, d2, d1, 0, h1, d2, d1, 0));
+  LogDebug("PixelGeom") << "Solid " << solid.name() 
       << " Trap made of " << tubeMat << " of dimensions " 
       << 0.5*coolDz << ", 0, 0, " << h1 << ", " << d2 
       << ", " << d1 << ", 0, " << h1 << ", " << d2 << ", " 
       << d1 << ", 0";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
-  Volume coolTube(solid.name(), solid, description.material(tubeMat));
-  
+
+  Volume coolTube = ns.addVolume(Volume(name, solid, description.material(tubeMat)));
   h1  -= coolThick;
   d1  -= coolThick;
   d2  -= coolThick;
-  solid = Trap(0.5*coolDz, 0, 0, h1, d2, d1, 0, h1, d2, d1, 0);
-  solid.setName(idName + "Coolant");
-  
-  str << "Solid " << solid.name() 
+  name = idName + "Coolant";
+  solid = ns.addSolid(name, Trap(0.5*coolDz, 0, 0, h1, d2, d1, 0, h1, d2, d1, 0));
+  LogDebug("PixelGeom") << "Solid " << solid.name() 
       << " Trap made of " << coolMat << " of dimensions " 
       << 0.5*coolDz << ", 0, 0, " << h1 << ", " << d2
       << ", " << d1 << ", 0, " << h1 << ", " << d2 << ", " 
       << d1 << ", 0";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
 
-  Volume cool(solid.name(), solid, description.material(coolMat));
-  //cpv.position(cool, coolTube, 1, DDTranslation(0.0, 0.0, 0.0), DDRotation());
+  Volume cool = ns.addVolume(Volume(name, solid, description.material(coolMat)));
   pv = coolTube.placeVolume(cool);
-  str << "Cool " << cool.name() 
+  LogDebug("PixelGeom") << "Cool " << cool.name() 
       << " number 1 positioned in " << coolTube.name() 
       << " at (0,0,0) with no rotation";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
 
   string ladderFull = ladder[0];
   string ladderHalf = ladder[1];
@@ -154,22 +129,19 @@ static long create_element(Detector& description, ParsingContext& ctxt, xml_h e,
       rots = idName + std::to_string(copy);
       phix = phi-90*CLHEP::deg;
       phiy = 90*CLHEP::deg+phix;
-      str << "Creating a new "
+      LogDebug("PixelGeom") << "Creating a new "
           << "rotation: " << rots << "\t90., " 
           << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg 
           << ", 0, 0";
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
       rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.);
 
       //cpv.position(ladderHalf, layer, copy, tran, rot);
       pv = layer.placeVolume(ladderHalfVol, Transform3D(rot,tran));
       if ( !pv.isValid() )  {  }
-      str << "ladderHalfVol: " << ladderHalfVol.name()
+      LogDebug("PixelGeom") << "ladderHalfVol: " << ladderHalfVol.name()
           << " number " << copy << " positioned in " 
           << layer.name() << " at " << tran << " with " 
           << rot;
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
-
       copy++;
       iup  = -1;
       rrr  = rr - dr - 0.5*(ladderThick[1]-ladderThick[0]);
@@ -177,20 +149,17 @@ static long create_element(Detector& description, ParsingContext& ctxt, xml_h e,
       rots = idName + std::to_string(copy);
       phix = phi+90*CLHEP::deg;
       phiy = 90*CLHEP::deg+phix;
-      str << "Creating a new rotation: " << rots << "\t90., " 
+      LogDebug("PixelGeom") << "Creating a new rotation: " << rots << "\t90., " 
           << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg 
           << ", 0, 0";
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
-
       rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.);
       //cpv.position(ladderHalf, layer, copy, tran, rot);
       pv = layer.placeVolume(ladderHalfVol, Transform3D(rot,tran));
       if ( !pv.isValid() )  {  }
-      str << "ladderHalfVol: " << ladderHalfVol.name()
+      LogDebug("PixelGeom") << "ladderHalfVol: " << ladderHalfVol.name()
           << " number " << copy << " positioned in " 
           << layer.name() << " at " << tran << " with " 
           << rot;
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
       copy++;
     } else {
       iup  =-iup;
@@ -200,22 +169,19 @@ static long create_element(Detector& description, ParsingContext& ctxt, xml_h e,
       if (iup > 0) phix = phi-90*CLHEP::deg;
       else         phix = phi+90*CLHEP::deg;
       phiy = phix+90.*CLHEP::deg;
-      str << "DDPixBarLayerAlgo test: Creating a new "
+      LogDebug("PixelGeom") << "DDPixBarLayerAlgo test: Creating a new "
           << "rotation: " << rots << "\t90., " 
           << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg 
           << ", 0, 0";
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
-
       rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.);
 
       //cpv.position(ladderFull, layer, copy, tran, rot);
       pv = layer.placeVolume(ladderFullVol, Transform3D(rot,tran));
       if ( !pv.isValid() )  {  }
-      str << "test: " << ladderFullVol.name()
+      LogDebug("PixelGeom") << "test: " << ladderFullVol.name()
           << " number " << copy << " positioned in " 
           << layer.name() << " at " << tran << " with " 
           << rot;
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
       copy++;
     }
     rrr  = coolDist*cos(0.5*dphi);
@@ -224,38 +190,21 @@ static long create_element(Detector& description, ParsingContext& ctxt, xml_h e,
     phix = phi+0.5*dphi;
     if (iup > 0) phix += 180*CLHEP::deg;
     phiy = phix+90.*CLHEP::deg;
-    str << "Creating a new rotation: " << rots << "\t90., " 
+    LogDebug("PixelGeom") << "Creating a new rotation: " << rots << "\t90., " 
         << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg 
         << ", 0, 0";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
+    
     rot = make_rotation3D(90*CLHEP::deg, phix, 90*CLHEP::deg, phiy, 0.,0.);
-    //cpv.position(coolTube, layer, i+1, tran, rot);
-    pv = layer.placeVolume(coolTube,Transform3D(rot,tran));
+    pv  = layer.placeVolume(coolTube,Transform3D(rot,tran));
     if ( !pv.isValid() )  {  }
-    str << "coolTube: " << coolTube.name() 
+    LogDebug("PixelGeom") << "coolTube: " << coolTube.name() 
         << " number " << i+1 << " positioned in " 
         << layer.name() << " at " << tran << " with "<< rot;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDPixBarLayerAlgo",str);
   }
-
-  ns.addVolumeNS(layer);
-  //nn.addVolume(assembly);
-  printout(INFO,"DDPixBarLayerAlgo","Layer: %s assembly:%s",layer.name(),"---");
-#if 0
-  string     det_name = idName;
-  Assembly   assembly(det_name);
-  // Now we have built the layer.....create the DetElement object
-  DetElement det_elt(det_name,0);
-  pv = assembly.placeVolume(layer);
-
-  det_elt.setPlacement(pv);
-  description.addDetector(det_elt);
-  Volume     motherVol = description.pickMotherVolume(det_elt);
-  pv = motherVol.placeVolume(assembly);
-#endif  
+  LogDebug("PixelGeom") << "Layer: " << layer.name();
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDPixBarLayerAlgo,create_element)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDPixBarLayerAlgo,algorithm)
 
diff --git a/DDCMS/src/plugins/DDTECCoolAlgo.cpp b/DDCMS/src/plugins/DDTECCoolAlgo.cpp
index 6dd9a87fa..061e20793 100644
--- a/DDCMS/src/plugins/DDTECCoolAlgo.cpp
+++ b/DDCMS/src/plugins/DDTECCoolAlgo.cpp
@@ -32,7 +32,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt,e,true);
   AlgoArguments  args(ctxt, e);
   int            startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1;
@@ -41,19 +40,17 @@ static long algorithm(Detector& /* description */,
   vector<string> coolInsert  = args.value<vector<string> >("CoolInsert");
   Volume         mother      = ns.volume(args.parentName());
 
-  str << "debug: Parent " << mother.name() 
-      <<" NameSpace " << ns.name << " at radial Position " << rPosition;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str);
+  LogDebug("TECGeom") << "debug: Parent " << mother.name() 
+                      <<" NameSpace " << ns.name << " at radial Position " << rPosition;
   if (phiPosition.size() == coolInsert.size()) {
     for (int i=0; i<(int)(phiPosition.size()); i++)   {
-      str << "debug: Insert[" << i << "]: "
+      LogDebug("TECGeom") << "debug: Insert[" << i << "]: "
           << coolInsert.at(i) << " at Phi " 
           << phiPosition.at(i)/CLHEP::deg;
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str);
     }
-  } else {
-    str << "ERROR: Number of inserts does not match the numer of PhiPositions!";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str);
+  }
+  else {
+    LogDebug("TECGeom") << "ERROR: Number of inserts does not match the numer of PhiPositions!";
   }
 
   int copyNo  = startCopyNo;
@@ -66,18 +63,17 @@ static long algorithm(Detector& /* description */,
     // place inserts
     Position tran(xpos, ypos, 0.0);
     mother.placeVolume(child,tran);
-    str << "test " << child.name() << "["  
-        << copyNo << "] positioned in " << mother.name()
-        << " at " << tran
-        << " phi " << phiPosition.at(i)/CLHEP::deg << " r " 
-        << rPosition;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo",str);
+    LogDebug("TECGeom") << "test " << child.name() << "["  
+                        << copyNo << "] positioned in " << mother.name()
+                        << " at " << tran
+                        << " phi " << phiPosition.at(i)/CLHEP::deg << " r " 
+                        << rPosition;
     copyNo++;
   }
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECCoolAlgo","Finished....");
+  LogDebug("TECGeom") << "Finished....";
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTECCoolAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTECCoolAlgo,algorithm)
 
diff --git a/DDCMS/src/plugins/DDTECModuleAlgo.cpp b/DDCMS/src/plugins/DDTECModuleAlgo.cpp
index 4192461ff..c9eabf69d 100644
--- a/DDCMS/src/plugins/DDTECModuleAlgo.cpp
+++ b/DDCMS/src/plugins/DDTECModuleAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -31,11 +27,9 @@ static void doPos(ParsingContext& ctxt, Volume toPos, Volume mother,
                   int /* copyNr */, double x, double y, double z, 
                   const string& rotName)
 {
-  stringstream  str;
   Namespace ns(ctxt);
   mother.placeVolume(toPos,Transform3D(ns.rotation(rotName),Position(x,y,z)));
-  str << "Volume: " << mother.name() << " positioned daughter "<< mother.name();
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
+  LogDebug("TECGeom") << "Volume: " << mother.name() << " positioned daughter "<< mother.name();
 }
 
 static void doPos(ParsingContext& ctxt, Volume toPos, Volume mother,
@@ -63,7 +57,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream  str;
   Namespace     ns(ctxt, e, true);
   AlgoArguments args(ctxt, e);
   Volume        mother      = ns.volume(args.parentName());
@@ -147,25 +140,22 @@ static long algorithm(Detector& /* description */,
   double         siReenforceThick = args.value<double>("SiReenforcementThick");//             Thick
   string         siReenforceMat = args.value<string>("SiReenforcementMaterial");  //             Materieal
 
-  str << "debug: ModuleThick " << moduleThick
+  LogDebug("TECGeom") << "debug: ModuleThick " << moduleThick
       << " Detector Tilt " << detTilt/CLHEP::deg << " Height "
       << fullHeight << " dl(Top) " << dlTop << " dl(Bottom) "
       << dlBottom << " dl(Hybrid) " << dlHybrid
       << " rPos " << rPos << " standrad rotation " 
       << standardRot;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "debug: Frame Width " << frameWidth 
+  LogDebug("TECGeom") << "debug: Frame Width " << frameWidth 
       << " Thickness " << frameThick << " Overlap " 
       << frameOver;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "debug: Top Frame Material " 
+  LogDebug("TECGeom") << "debug: Top Frame Material " 
       << topFrameMat << " Height " << topFrameHeight 
       << " Top Width " << topFrameTopWidth << " Bottom Width "
       << topFrameTopWidth
       << " Thickness " << topFrameThick <<" positioned at"
       << topFrameZ;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "debug : Side Frame Material " 
+  LogDebug("TECGeom") << "debug : Side Frame Material " 
       << sideFrameMat << " Thickness " << sideFrameThick
       << " left Leg's Width: " << sideFrameLWidth
       << " left Leg's Height: " << sideFrameLHeight
@@ -175,74 +165,61 @@ static long algorithm(Detector& /* description */,
       << " right Leg's tilt(theta): " << sideFrameRtheta
       << "Supplies Box's Material: " << siFrSuppBoxMat
       << " positioned at" << sideFrameZ;
-  for (int i= 0; i < (int)(siFrSuppBoxWidth.size());i++){
-    str << " Supplies Box" << i << "'s Width: " 
+  for (int i= 0; i < (int)(siFrSuppBoxWidth.size());i++)
+    LogDebug("TECGeom") << " Supplies Box" << i << "'s Width: " 
         << siFrSuppBoxWidth[i] << " Supplies Box" << i
         <<"'s Height: " << siFrSuppBoxHeight[i]
         << " Supplies Box" << i << "'s y Position: " 
         << siFrSuppBoxYPos[i];
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  }
-  str << "debug: Wafer Material " 
+  LogDebug("TECGeom") << "debug: Wafer Material " 
       << waferMat << " Side Width Top" << sideWidthTop
       << " Side Width Bottom" << sideWidthBottom
       << " and positioned at "<<waferPosition
       << " positioned with rotation"	<< " matrix:"
       << waferRot;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "debug: Active Material " 
+  LogDebug("TECGeom") << "debug: Active Material " 
       << activeMat << " Height " << activeHeight 
       << " rotated by " << activeRot
       << " translated by (0,0," << -0.5 * backplaneThick << ")"
       << " Thickness/Z"
       << waferThick-backplaneThick << "/" << activeZ;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "debug: Hybrid Material " 
+  LogDebug("TECGeom") << "debug: Hybrid Material " 
       << hybridMat << " Height " << hybridHeight 
       << " Width " << hybridWidth << " Thickness " 
       << hybridThick << " Z"  << hybridZ;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "debug: Pitch Adapter Material " 
+  LogDebug("TECGeom") << "debug: Pitch Adapter Material " 
       << pitchMat << " Height " << pitchHeight 
       << " Thickness " << pitchThick << " position with "
       << " rotation " << pitchRot << " at Z" << pitchZ;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "debug: Bridge Material " 
+  LogDebug("TECGeom") << "debug: Bridge Material " 
       << bridgeMat << " Width " << bridgeWidth 
       << " Thickness " << bridgeThick << " Height " 
       << bridgeHeight << " Separation "<< bridgeSep;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  str << "FALTBOOT DDTECModuleAlgo debug : Si-Reenforcement Material " 
+  LogDebug("TECGeom") << "FALTBOOT DDTECModuleAlgo debug : Si-Reenforcement Material " 
       << sideFrameMat << " Thickness " << siReenforceThick;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  for (int i= 0; i < (int)(siReenforceWidth.size());i++){
-    str << " SiReenforcement" << i << "'s Width: " 
+  for (int i= 0; i < (int)(siReenforceWidth.size());i++)
+    LogDebug("TECGeom") << " SiReenforcement" << i << "'s Width: " 
         << siReenforceWidth[i] << " SiReenforcement" << i 
         << "'s Height: " << siReenforceHeight[i]
         << " SiReenforcement" << i << "'s y Position: "
         <<siReenforceYPos[i];
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  }
+
   if(!isStereo){
-    str << "This is a normal module, in ring "<<ringNo<<"!"; 
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-  } else {
-    str << "This is a stereo module, in ring "<<ringNo<<"!"; 
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-    str << "Phi Position corrected by " << posCorrectionPhi << "*rad";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-    str << "debug: stereo Top Frame 2nd Part left Heigt " 
+    LogDebug("TECGeom") << "This is a normal module, in ring "<<ringNo<<"!"; 
+  }
+  else {
+    LogDebug("TECGeom") << "This is a stereo module, in ring "<<ringNo<<"!"; 
+    LogDebug("TECGeom") << "Phi Position corrected by " << posCorrectionPhi << "*rad";
+    LogDebug("TECGeom") << "debug: stereo Top Frame 2nd Part left Heigt " 
         << topFrame2LHeight << " right Height " << topFrame2RHeight 
         << " Width " << topFrame2Width ;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
-    str << " left Leg's lower Width: " << sideFrameLWidthLow
+    LogDebug("TECGeom") << " left Leg's lower Width: " << sideFrameLWidthLow
         << " right Leg's lower Width: " << sideFrameRWidthLow;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   }
 
   // Execution part:
 
-  str << "==>> Constructing DDTECModuleAlgo: ";
+  LogDebug("TECGeom") << "==>> Constructing DDTECModuleAlgo: ";
   //declarations
   double tmp;
   //names
@@ -252,8 +229,7 @@ static long algorithm(Detector& /* description */,
   //usefull constants
   const double topFrameEndZ = 0.5 * (-waferPosition + fullHeight) + pitchHeight + hybridHeight - topFrameHeight;
   string idName     = ns.prepend(ns.obj_name(mother.name()));
-  str << "idName: " << idName << " parent " << mother.name() << " namespace " << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
+  LogDebug("TECGeom") << "idName: " << idName << " parent " << mother.name() << " namespace " << ns.name;
   Solid solid;
 
    //set global parameters
@@ -283,12 +259,11 @@ static long algorithm(Detector& /* description */,
   if(isStereo)  bl1 = 0.5 * sideFrameLWidthLow;
   solid = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
   ns.addSolidNS(name,solid);
-  str << "Solid: " << solid.name() 
+  LogDebug("TECGeom") << "Solid: " << solid.name() 
       << " Trap made of " << sideFrameMat << " of dimensions "
       << dz << ",  "<<thet<<", 0, " << h1 << ", " << bl1 << ", "
       << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2
       << ", 0";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   Volume sideFrameLeft(name, solid, ns.material(sideFrameMat));
   ns.addVolumeNS(sideFrameLeft);
   //translate
@@ -320,12 +295,11 @@ static long algorithm(Detector& /* description */,
   if(isStereo) bl1 = 0.5 * sideFrameRWidthLow;
   solid = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
   ns.addSolidNS(name,solid);
-  str << "Solid:\t" << solid.name() 
+  LogDebug("TECGeom") << "Solid:\t" << solid.name() 
       << " Trap made of " << sideFrameMat << " of dimensions "
       << dz << ", "<<thet<<", 0, " << h1 << ", " << bl1 << ", "
       << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2
       << ", 0";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   Volume sideFrameRight(name, solid, ns.material(sideFrameMat));
   ns.addVolumeNS(sideFrameRight);
   //translate
@@ -360,12 +334,11 @@ static long algorithm(Detector& /* description */,
     // ^-- this calculates the lower left angel of the tipped trapezoid, which is the SideFframe...
     
     solid = Trap(dz, thet,0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
-    str << "Solid:\t" << solid.name() 
+    LogDebug("TECGeom") << "Solid:\t" << solid.name() 
         << " Trap made of " << siFrSuppBoxMat << " of dimensions "
         << dz << ", 0, 0, " << h1 << ", " << bl1 << ", "
         << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2
         << ", 0";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
     Volume siFrSuppBox(name, solid, matter);
     ns.addVolumeNS(siFrSuppBox);
     //translate
@@ -394,10 +367,9 @@ static long algorithm(Detector& /* description */,
   dz        = 0.5 * hybridHeight;
   solid = Box(dx, dy, dz);
   ns.addSolidNS(name, solid);
-  str << "Solid:\t" << solid.name() 
+  LogDebug("TECGeom") << "Solid:\t" << solid.name() 
       << " Box made of " << hybridMat << " of dimensions "
       << dx << ", " << dy << ", " << dz;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   Volume hybrid(name, solid, ns.material(hybridMat));
   ns.addVolumeNS(hybrid);
 
@@ -415,12 +387,11 @@ static long algorithm(Detector& /* description */,
   dz      = 0.5 * fullHeight;
   solid = Trap(dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
   ns.addSolidNS(name,solid);
-  str << "Solid:\t" << solid.name()
+  LogDebug("TECGeom") << "Solid:\t" << solid.name()
 			<< " Trap made of " << waferMat << " of dimensions "
 			<< dz << ", 0, 0, " << h1 << ", " << bl1 << ", "
 			<< bl1 << ", 0, " << h1 << ", " << bl2 << ", "
 			<< bl2 << ", 0";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   Volume wafer(name, solid, ns.material(waferMat));
   
   ypos = activeZ;
@@ -440,12 +411,11 @@ static long algorithm(Detector& /* description */,
   }
   solid = Trap(dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0);
   ns.addSolidNS(name,solid);
-  str << "Solid:\t" << solid.name() 
+  LogDebug("TECGeom") << "Solid:\t" << solid.name() 
       << " Trap made of " << activeMat << " of dimensions "
       << dz << ", 0, 0, " << h1 << ", " << bl2 << ", "
       << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
       << bl1 << ", 0";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   Volume active(name, solid, ns.material(activeMat));
   ns.addVolumeNS(active);
   doPos(ctxt, active, wafer, 1, -0.5 * backplaneThick,0,0, activeRot); // from the definition of the wafer local axes and doPos() routine
@@ -467,12 +437,11 @@ static long algorithm(Detector& /* description */,
     }
     solid = Trap(dz, 0, 0, h1, bl2, bl1, 0, h1, bl2, bl1, 0);
     ns.addSolidNS(name,solid);
-    str << "Solid:\t" << solid.name() 
+    LogDebug("TECGeom") << "Solid:\t" << solid.name() 
         << " Trap made of " << inactiveMat << " of dimensions "
         << dz << ", 0, 0, " << h1 << ", " << bl2 << ", "
         << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
         << bl1 << ", 0";  
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
     Volume inactive(name, solid, ns.material(inactiveMat));
     ns.addVolumeNS(inactive);
     ypos = inactivePos - 0.5*activeHeight;
@@ -486,10 +455,9 @@ static long algorithm(Detector& /* description */,
     dz      = 0.5 * pitchHeight;
     solid   = Box(dx, dy, dz);
     ns.addSolidNS(name,solid);
-    str << "Solid:\t" << solid.name() 
+    LogDebug("TECGeom") << "Solid:\t" << solid.name() 
         << " Box made of " << pitchMat <<" of dimensions "
         << dx << ", " << dy << ", " << dz;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   } else {
     dz      = 0.5 * pitchWidth;    
     h1      = 0.5 * pitchThick;
@@ -498,13 +466,12 @@ static long algorithm(Detector& /* description */,
     thet = atan((bl1-bl2)/(2.*dz));
     solid   = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
     ns.addSolidNS(name,solid);
-    str << "Solid:\t" << solid.name()
+    LogDebug("TECGeom") << "Solid:\t" << solid.name()
         << " Trap made of " <<  pitchMat
         << " of dimensions " << dz << ", " << thet/CLHEP::deg
         << ", 0, " << h1 << ", " << bl1 << ", " << bl1
         << ", 0, " << h1 << ", " << bl2 << ", " << bl2
         << ", 0";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   }
   xpos = 0;
   ypos = pitchZ;
@@ -529,12 +496,11 @@ static long algorithm(Detector& /* description */,
   
   solid = Trap(dz, 0, 0, h1, bl1, bl1,0, h1, bl2, bl2, 0);
   ns.addSolid(name,solid);
-  str << "Solid:\t" << solid.name() 
+  LogDebug("TECGeom") << "Solid:\t" << solid.name() 
       << " Trap made of " << topFrameMat << " of dimensions " 
       << dz << ", 0, 0, " << h1 << ", " << bl1 << ", "  
       << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2
       << ", 0";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   Volume topFrame(name, solid, ns.material(topFrameMat));
   ns.addVolumeNS(topFrame);
   
@@ -549,12 +515,11 @@ static long algorithm(Detector& /* description */,
 	
     solid   = Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
     ns.addSolid(name,solid);
-    str << "Solid:\t" << solid.name()
+    LogDebug("TECGeom") << "Solid:\t" << solid.name()
         << " Trap made of " << topFrameMat << " of dimensions "
         << dz << ", " << thet/CLHEP::deg << ", 0, " << h1 
         << ", " << bl1 << ", " << bl1 << ", 0, " << h1 
         << ", " << bl2 << ", " << bl2 << ", 0";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   }
   
   // Position the topframe
@@ -580,12 +545,11 @@ static long algorithm(Detector& /* description */,
     dz = 0.5 * siReenforceHeight[i];
     bl1 = bl2 = 0.5 * siReenforceWidth[i];    
     solid = Trap(dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
-    str << "Solid:\t" << solid.name() 
+    LogDebug("TECGeom") << "Solid:\t" << solid.name() 
         << " Trap made of " << matter.name() << " of dimensions "
         << dz << ", 0, 0, " << h1 << ", " << bl1 << ", "
         << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2
         << ", 0";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
     Volume siReenforce(name, solid, matter);
     ns.addVolumeNS(siReenforce);
     //translate
@@ -612,34 +576,30 @@ static long algorithm(Detector& /* description */,
     h1      = 0.5 * bridgeThick;
     dz      = 0.5 * bridgeHeight;
     solid = Trap(dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0);
-    str << "Solid:\t" << solid.name()
+    LogDebug("TECGeom") << "Solid:\t" << solid.name()
         << " Trap made of " << bridgeMat << " of dimensions "
         << dz << ", 0, 0, " << h1 << ", " << bl1 << ", "
         << bl1 << ", 0, " << h1 << ", " << bl2 << ", " << bl2
         << ", 0";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
     Volume bridge(name, solid, ns.material(bridgeMat));
     ns.addVolumeNS(bridge);
 
     name    = idName + "BridgeGap";
     bl1     = 0.5*bridgeSep;
     solid = Box(bl1, h1, dz);
-    str << "Solid:\t" << solid.name() 
+    LogDebug("TECGeom") << "Solid:\t" << solid.name() 
         << " Box made of " << genMat << " of dimensions "
         << bl1 << ", " << h1 << ", " << dz;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
     Volume bridgeGap(name, solid, ns.material(genMat));
     ns.addVolumeNS(bridgeGap);
     /* PlacedVolume pv = */ bridge.placeVolume(bridgeGap);
-    str << "Solid: " << bridgeGap.name() 
+    LogDebug("TECGeom") << "Solid: " << bridgeGap.name() 
         << " number 1 positioned in " << bridge.name()
         << " at (0,0,0) with no rotation";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
   }
-  str << "<<== End of DDTECModuleAlgo construction ...";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECModuleAlgo",str);
+  LogDebug("TECGeom") << "<<== End of DDTECModuleAlgo construction ...";
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTECModuleAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTECModuleAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTECOptoHybAlgo.cpp b/DDCMS/src/plugins/DDTECOptoHybAlgo.cpp
index 76e99613f..803790537 100644
--- a/DDCMS/src/plugins/DDTECOptoHybAlgo.cpp
+++ b/DDCMS/src/plugins/DDTECOptoHybAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt,e,true);
   AlgoArguments  args(ctxt, e);
   int            startCopyNo = args.value<int>("StartCopyNo");
@@ -44,15 +39,13 @@ static long algorithm(Detector& /* description */,
   Volume         child       = ns.volume(args.value<string>("ChildName"));
   Volume         mother      = ns.volume(args.parentName());
 
-  str << "Parent " << mother.name() << " Child " << child.name() << " NameSpace " << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str);
-
-  str << "Height of the Hybrid "
-      << optoHeight << " and Width " << optoWidth
-      <<"Rpos " << rpos << " Zpos " << zpos 
-      << " StartCopyNo " << startCopyNo << " Number " 
-      << angles.size();
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str);
+  LogDebug("TECGeom") << "Parent " << mother.name()
+                      << " Child " << child.name() << " NameSpace " << ns.name;
+  LogDebug("TECGeom") << "Height of the Hybrid "
+                      << optoHeight << " and Width " << optoWidth
+                      <<"Rpos " << rpos << " Zpos " << zpos 
+                      << " StartCopyNo " << startCopyNo << " Number " 
+                      << angles.size();
 
   // given r positions are for the lower left corner
   rpos += optoHeight/2;
@@ -76,25 +69,22 @@ static long algorithm(Detector& /* description */,
       }
       else  {
         double theta = 90.*CLHEP::deg;
-        str << "test: Creating a new "
-            << "rotation: " << rotstr << "\t90., " 
-            << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg
-            << ", 0, 0";
-        printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str);
+        LogDebug("TECGeom") << "test: Creating a new "
+                            << "rotation: " << rotstr << "\t90., " 
+                            << phix/CLHEP::deg << ", 90.," << phiy/CLHEP::deg
+                            << ", 0, 0";
         rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.);
       }
     }
     mother.placeVolume(child, Transform3D(rotation,tran));
-    str << "test " << child.name() << " number " 
-        << copyNo << " positioned in " << mother.name() << " at "
-        << tran  << " with " << rotation;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str);
+    LogDebug("TECGeom") << "test " << child.name() << " number " 
+                        << copyNo << " positioned in " << mother.name() << " at "
+                        << tran  << " with " << rotation;
     copyNo++;
   }
-  str << "<<== End of DDTECOptoHybAlgo construction ...";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECOptoHybAlgo",str);
+  LogDebug("TECGeom") << "<<== End of DDTECOptoHybAlgo construction ...";
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTECOptoHybAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTECOptoHybAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTECPhiAlgo.cpp b/DDCMS/src/plugins/DDTECPhiAlgo.cpp
index 85c04c917..e14311814 100644
--- a/DDCMS/src/plugins/DDTECPhiAlgo.cpp
+++ b/DDCMS/src/plugins/DDTECPhiAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream  str;
   Namespace     ns(ctxt, e, true);
   AlgoArguments args(ctxt, e);
   Volume        mother      = ns.volume(args.parentName());
@@ -45,18 +40,16 @@ static long algorithm(Detector& /* description */,
   int           startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; //Start copy number
   int           incrCopyNo  = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1;  //Increment in copy number
 
-  str << "debug: Parameters for "
+  LogDebug("TECGeom") << "debug: Parameters for "
       << "positioning--" << "\tStartAngle " 
       << startAngle/CLHEP::deg << "\tIncrAngle " 
       << incrAngle/CLHEP::deg << "\tZ in/out " << zIn << ", " 
       << zOut 	      << "\tCopy Numbers " << number 
       << " Start/Increment " << startCopyNo << ", " 
       << incrCopyNo;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAlgo",str);
-  str << "debug: Parent " << mother.name() 
+  LogDebug("TECGeom") << "debug: Parent " << mother.name() 
       << "\tChild " << child.name() << " NameSpace " 
       << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAlgo",str);
 
   if (number > 0) {
     double theta  = 90.*CLHEP::deg;
@@ -67,10 +60,9 @@ static long algorithm(Detector& /* description */,
       Rotation3D rotation = make_rotation3D(theta, phix, theta, phiy, 0, 0);
       Position   tran(0., 0., (i%2 == 0) ? zIn : zOut);
       /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rotation,tran));
-      str << "test: " << child.name() <<" number "
+      LogDebug("TECGeom") << "test: " << child.name() <<" number "
           << copyNo << " positioned in " << mother.name() <<" at "
           << tran << " with " << rotation;
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAlgo",str);
       copyNo += incrCopyNo;
     }
   }
@@ -78,4 +70,4 @@ static long algorithm(Detector& /* description */,
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTECPhiAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTECPhiAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTECPhiAltAlgo.cpp b/DDCMS/src/plugins/DDTECPhiAltAlgo.cpp
index b14a52d28..3d355a498 100644
--- a/DDCMS/src/plugins/DDTECPhiAltAlgo.cpp
+++ b/DDCMS/src/plugins/DDTECPhiAltAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream  str;
   Namespace     ns(ctxt, e, true);
   AlgoArguments args(ctxt, e);
   Volume        mother      = ns.volume(args.parentName());
@@ -45,18 +40,16 @@ static long algorithm(Detector& /* description */,
   int           startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; //Start copy number
   int           incrCopyNo  = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1;  //Increment in copy number
 
-  str << "debug: Parameters for "
+  LogDebug("TECGeom") << "debug: Parameters for "
       << "positioning--" << "\tStartAngle " 
       << startAngle/CLHEP::deg << "\tIncrAngle " 
       << incrAngle/CLHEP::deg << "\tZ in/out " << zIn << ", " 
       << zOut 	      << "\tCopy Numbers " << number 
       << " Start/Increment " << startCopyNo << ", " 
       << incrCopyNo;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAltAlgo",str);
-  str << "debug: Parent " << mother.name() 
+  LogDebug("TECGeom") << "debug: Parent " << mother.name() 
       << "\tChild " << child.name() << " NameSpace " 
       << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAltAlgo",str);
 
   if (number > 0) {
     double theta  = 90.*CLHEP::deg;
@@ -67,10 +60,9 @@ static long algorithm(Detector& /* description */,
       Rotation3D rotation = make_rotation3D(theta, phix, 0e0, 0e0, theta, phiz);
       Position   tran(0., 0., (i%2 == 0) ? zIn : zOut);
       /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rotation,tran));
-      str << "test: " << child.name() <<" number "
+      LogDebug("TECGeom") << "test: " << child.name() <<" number "
           << copyNo << " positioned in " << mother.name() <<" at "
           << tran << " with " << rotation;
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTECPhiAltAlgo",str);
       copyNo += incrCopyNo;
     }
   }
@@ -78,5 +70,5 @@ static long algorithm(Detector& /* description */,
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTECPhiAltAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTECPhiAltAlgo,algorithm)
 
diff --git a/DDCMS/src/plugins/DDTIBLayerAlgo.cpp b/DDCMS/src/plugins/DDTIBLayerAlgo.cpp
index ccc991dff..75eb159f4 100644
--- a/DDCMS/src/plugins/DDTIBLayerAlgo.cpp
+++ b/DDCMS/src/plugins/DDTIBLayerAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,15 +28,542 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream  str;
+  typedef vector<double> vecdouble;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
-  //Volume         mother     = ns.volume(args.parentName());
+  string    mother       = args.parentName();
+  string    genMat       = args.str("GeneralMaterial");           //General material name
+  double    detectorTilt = args.dble("DetectorTilt");             //Detector Tilt
+  double    layerL       = args.dble("LayerL");                   //Length of the layer
+
+  double    radiusLo     = args.dble("RadiusLo");                 //Radius for detector at lower level
+  int       stringsLo    = args.integer("StringsLo");             //Number of strings      ......
+  string    detectorLo   = args.str("StringDetLoName");           //Detector string name   ......
+
+  double    radiusUp     = args.dble("RadiusUp");                 //Radius for detector at upper level
+  int       stringsUp    = args.integer("StringsUp");             //Number of strings      ......
+  string    detectorUp   = args.str("StringDetUpName");           //Detector string name   ......
+
+  double    cylinderT    = args.dble("CylinderThickness");        //Cylinder thickness
+  double    cylinderInR  = args.dble("CylinderInnerRadius");      //Cylinder inner radius
+  string    cylinderMat  = args.str("CylinderMaterial");          //Cylinder material
+  double    MFRingInR    = args.dble("MFRingInnerRadius");        //Inner Manifold Ring Inner Radius 
+  double    MFRingOutR   = args.dble("MFRingOuterRadius");        //Outer Manifold Ring Outer Radius 
+  double    MFRingT      = args.dble("MFRingThickness");          //Manifold Ring Thickness
+  double    MFRingDz     = args.dble("MFRingDeltaz");             //Manifold Ring Half Lenght
+  string    MFIntRingMat = args.str("MFIntRingMaterial");         //Manifold Ring Material
+  string    MFExtRingMat = args.str("MFExtRingMaterial");         //Manifold Ring Material
+
+  double    supportT     = args.dble("SupportThickness");         //Cylinder barrel CF skin thickness
+
+  string    centMat      = args.str("CentRingMaterial");          //Central rings  material
+  vecdouble centRing1par = args.vecDble("CentRing1");             //Central rings parameters
+  vecdouble centRing2par = args.vecDble("CentRing2");             //Central rings parameters
+
+  string    fillerMat    = args.str("FillerMaterial");            //Filler material
+  double    fillerDz     = args.dble("FillerDeltaz");             //Filler Half Length
+
+  string    ribMat       = args.str("RibMaterial");               //Rib material
+  vecdouble ribW         = args.vecDble("RibWidth");              //Rib width
+  vecdouble ribPhi       = args.vecDble("RibPhi");                //Rib Phi position
+
+  vecdouble dohmListFW   = args.vecDble("DOHMListFW");            //DOHM/AUX positions in #strings FW
+  vecdouble dohmListBW   = args.vecDble("DOHMListBW");            //DOHM/AUX positions in #strings BW
+
+  double    dohmtoMF            = args.dble("DOHMtoMFDist");      //DOHM Distance to MF
+  double    dohmCarrierPhiOff   = args.dble("DOHMCarrierPhiOffset"); //DOHM Carrier Phi offset wrt horizontal
+  string    dohmPrimName        = args.str("StringDOHMPrimName"); //DOHM Primary Logical Volume name
+  string    dohmAuxName         = args.str("StringDOHMAuxName");  //DOHM Auxiliary Logical Volume name
+
+  string    dohmCarrierMaterial = args.str("DOHMCarrierMaterial");//DOHM Carrier Material
+  string    dohmCableMaterial   = args.str("DOHMCableMaterial");  //DOHM Cable Material
+  double    dohmPrimL           = args.dble("DOHMPRIMLength");    //DOHM PRIMary Length
+  string    dohmPrimMaterial    = args.str("DOHMPRIMMaterial");   //DOHM PRIMary Material
+  double    dohmAuxL            = args.dble("DOHMAUXLength");     //DOHM AUXiliary Length
+  string    dohmAuxMaterial     = args.str("DOHMAUXMaterial");    //DOHM AUXiliary Material
+
+  string    pillarMaterial      = args.str("PillarMaterial");     //Pillar Material
+
+  double    fwIntPillarDz       = args.dble("FWIntPillarDz");     //Internal pillar parameters
+  double    fwIntPillarDPhi     = args.dble("FWIntPillarDPhi");  
+  vecdouble fwIntPillarZ        = args.vecDble("FWIntPillarZ");  
+  vecdouble fwIntPillarPhi      = args.vecDble("FWIntPillarPhi");  
+  double    bwIntPillarDz       = args.dble("BWIntPillarDz");  
+  double    bwIntPillarDPhi     = args.dble("BWIntPillarDPhi");  
+  vecdouble bwIntPillarZ        = args.vecDble("BWIntPillarZ");  
+  vecdouble bwIntPillarPhi      = args.vecDble("BWIntPillarPhi");  
+
+  double    fwExtPillarDz       = args.dble("FWExtPillarDz");        //External pillar parameters
+  double    fwExtPillarDPhi     = args.dble("FWExtPillarDPhi");  
+  vecdouble fwExtPillarZ        = args.vecDble("FWExtPillarZ");    
+  vecdouble fwExtPillarPhi      = args.vecDble("FWExtPillarPhi");  
+  double    bwExtPillarDz       = args.dble("BWExtPillarDz");  
+  double    bwExtPillarDPhi     = args.dble("BWExtPillarDPhi");  
+  vecdouble bwExtPillarZ        = args.vecDble("BWExtPillarZ");    
+  vecdouble bwExtPillarPhi      = args.vecDble("BWExtPillarPhi");  
+  
+  LogDebug("TIBGeom") << "Parent " << mother
+      << " NameSpace " << ns.name
+      << " General Material " << genMat;
+  LogDebug("TIBGeom") << "Lower layer Radius " << radiusLo
+      << " Number " << stringsLo << " String " << detectorLo;
+  LogDebug("TIBGeom") << "Upper layer Radius "<< radiusUp
+      << " Number " << stringsUp << " String " << detectorUp;
+  LogDebug("TIBGeom") << "Cylinder Material/thickness " << cylinderMat << " " << cylinderT 
+      << " Rib Material " << ribMat << " at " << ribW.size() << " positions with width/phi";
+  for (unsigned int i = 0; i < ribW.size(); i++)  {
+    LogDebug("TIBGeom") << "\tribW[" << i << "] = " <<  ribW[i] 
+        << "\tribPhi[" << i << "] = " << ribPhi[i]/CLHEP::deg;
+  }
+  LogDebug("TIBGeom") << "DOHM Primary " << " Material " << dohmPrimMaterial << " Length " << dohmPrimL;
+  LogDebug("TIBGeom") << "DOHM Aux     " << " Material " << dohmAuxMaterial << " Length " << dohmAuxL;
+  for (double i : dohmListFW) {
+    if (i>0.) LogDebug("TIBGeom") << "DOHM Primary at FW Position " << i;
+    if (i<0.) LogDebug("TIBGeom") << "DOHM Aux     at FW Position " << -i;
+  }
+  for (double i : dohmListBW) {
+    if (i>0.) LogDebug("TIBGeom") << "DOHM Primary at BW Position " << i;
+    if (i<0.) LogDebug("TIBGeom") << "DOHM Aux     at BW Position " << -i;
+  }
+  LogDebug("TIBGeom") << "FW Internal Pillar [Dz, DPhi] " << fwIntPillarDz << ", " << fwIntPillarDPhi; 
+  for (unsigned int i=0; i<fwIntPillarZ.size(); i++) {
+    if( fwIntPillarPhi[i]>0. ) { 
+      LogDebug("TIBGeom") << " at positions [z, phi] " << fwIntPillarZ[i] << " " << fwIntPillarPhi[i];
+    }
+  }
+  LogDebug("TIBGeom") << "BW Internal Pillar [Dz, DPhi] " << bwIntPillarDz << ", " << bwIntPillarDPhi; 
+  for (unsigned int i=0; i<bwIntPillarZ.size(); i++) {
+    if( bwIntPillarPhi[i]>0. ) { 
+      LogDebug("TIBGeom") << " at positions [z, phi] " << bwIntPillarZ[i] << " " << bwIntPillarPhi[i];
+    }
+  }
+  LogDebug("TIBGeom") << "FW External Pillar [Dz, DPhi] " << fwExtPillarDz << ", " << fwExtPillarDPhi; 
+  for (unsigned int i=0; i<fwExtPillarZ.size(); i++) {
+    if( fwExtPillarPhi[i]>0. ) { 
+      LogDebug("TIBGeom") << " at positions [z, phi] " << fwExtPillarZ[i] << " " << fwExtPillarPhi[i];
+    }
+  }
+  LogDebug("TIBGeom") << "BW External Pillar [Dz, DPhi] " << bwExtPillarDz << ", " << bwExtPillarDPhi; 
+  for (unsigned int i=0; i<bwExtPillarZ.size(); i++) {
+    if( bwExtPillarPhi[i]>0. ) { 
+      LogDebug("TIBGeom") << " at positions [z, phi] " << bwExtPillarZ[i] << " " << bwExtPillarPhi[i];
+    }
+  }
+
+  string idName = mother;
+  double rmin = MFRingInR;
+  double rmax = MFRingOutR;
+  Solid  solid = ns.addSolidNS(idName,Tube(rmin, rmax, 0.5*layerL));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg 
+      << " with Rin " << rmin << " Rout " << rmax << " ZHalf " << 0.5*layerL;
+  Volume layer = ns.addVolumeNS(Volume(idName, solid, ns.material(genMat)));
+
+  //Internal layer first
+  double rin  = rmin+MFRingT;
+  //  double rout = 0.5*(radiusLo+radiusUp-cylinderT);
+  double rout = cylinderInR;
+  string name = idName + "Down";
+  solid = ns.addSolidNS(name,Tube(rin, rout, 0.5*layerL));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg 
+      << " with Rin " << rin << " Rout " << rout 
+      << " ZHalf " << 0.5*layerL;
+  Volume layerIn = ns.addVolumeNS(Volume(name, solid, ns.material(genMat)));
+  layer.placeVolume(layerIn); // copyNr=1 !
+  LogDebug("TIBGeom") << layerIn.name()
+      << " number 1 positioned in " << layer.name()
+      << " at (0,0,0) with no rotation";
+
+  double rposdet = radiusLo;
+  double dphi    = CLHEP::twopi/stringsLo;
+  Volume detIn   = ns.volume(detectorLo);
+  for (int n = 0; n < stringsLo; n++) {
+    double phi    = (n+0.5)*dphi;
+    double phix   = phi - detectorTilt + 90*CLHEP::deg;
+    double theta  = 90*CLHEP::deg;
+    double phiy   = phix + 90.*CLHEP::deg;
+    Rotation3D rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.);
+    Position   trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
+    layerIn.placeVolume(detIn, Transform3D(rotation,trdet)); // copyNr=n+1
+    LogDebug("TIBGeom") << detIn.name() << " number " << n+1 << " positioned in " 
+        << layerIn.name() << " at " << trdet << " with "
+        << rotation;
+  }
+
+  //Now the external layer
+  rin  = cylinderInR + cylinderT;
+  rout = rmax-MFRingT;
+  name = idName + "Up";
+  solid = ns.addSolidNS(name,Tube(rin, rout, 0.5*layerL));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg 
+      << " with Rin " << rin << " Rout " << rout
+      << " ZHalf " << 0.5*layerL;
+  Volume layerOut = ns.addVolumeNS(Volume(name, solid, ns.material(genMat)));
+  layer.placeVolume(layerOut); // CopyNr again 1 ??
+  LogDebug("TIBGeom") << layerOut.name() 
+      << " number 1 positioned in " << layer.name() 
+      << " at (0,0,0) with no rotation";
+
+  rposdet = radiusUp;
+  dphi    = CLHEP::twopi/stringsUp;
+  Volume detOut = ns.volume(detectorUp);
+  for (int n = 0; n < stringsUp; n++) {
+    double phi    = (n+0.5)*dphi;
+    double phix   = phi - detectorTilt - 90*CLHEP::deg;
+    double theta  = 90*CLHEP::deg;
+    double phiy   = phix + 90.*CLHEP::deg;
+    Rotation3D rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.);
+    Position   trdet(rposdet*cos(phi), rposdet*sin(phi), 0);
+    layerOut.placeVolume(detOut,Transform3D(rotation,trdet));
+    LogDebug("TIBGeom") << "DDTIBLayerAlgo test " << detectorUp
+        << " number " << n+1 << " positioned in " 
+        << layerOut.name() << " at " << trdet << " with "
+        << rotation;
+  }
+
+  //
+  // Inner cylinder, support wall and ribs
+  //
+  // External skins
+  rin   = cylinderInR;
+  rout  = cylinderInR+cylinderT;
+  name  = idName + "Cylinder";
+  solid = ns.addSolidNS(name, Tube(rin, rout, 0.5*layerL));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << cylinderMat << " from 0 to " 
+      << CLHEP::twopi/CLHEP::deg << " with Rin " << rin 
+      << " Rout " << rout << " ZHalf " << 0.5*layerL;
+  Volume cylinder = ns.addVolumeNS(Volume(name, solid, ns.material(cylinderMat)));
+  layer.placeVolume(cylinder); // CopyNr = 1
+  LogDebug("TIBGeom") << cylinder.name() 
+      << " number 1 positioned in " << layer.name()
+      << " at (0,0,0) with no rotation";
+  //
+  // inner part of the cylinder
+  //
+  rin  += supportT;
+  rout -= supportT;
+  name  = idName + "CylinderIn";
+  solid = ns.addSolidNS(name, Tube(rin, rout, 0.5*layerL));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of "
+      << genMat << " from 0 to " << CLHEP::twopi/CLHEP::deg 
+      << " with Rin " << rin << " Rout " << rout 
+      << " ZHalf " << 0.5*layerL;
+  Volume cylinderIn = ns.addVolumeNS(Volume(name, solid, ns.material(genMat)));
+  cylinder.placeVolume(cylinderIn);
+  LogDebug("TIBGeom") << cylinderIn.name() 
+      << " number 1 positioned in " << cylinder.name() 
+      << " at (0,0,0) with no rotation";
+  //
+  // Filler Rings
+  //
+  name = idName + "Filler";
+  solid = ns.addSolidNS(name,Tube(rin, rout, fillerDz));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << fillerMat << " from " << 0. << " to "
+      << CLHEP::twopi/CLHEP::deg << " with Rin " << rin 
+      << " Rout " << rout << " ZHalf "  << fillerDz;
+  Volume cylinderFiller = ns.addVolumeNS(Volume(name,solid,ns.material(fillerMat)));
+  cylinderIn.placeVolume(cylinderFiller,Position(0.0, 0.0, 0.5*layerL-fillerDz)); // copyNr 1
+  cylinderIn.placeVolume(cylinderFiller,Position(0.0, 0.0,-0.5*layerL+fillerDz)); // copyNr 2
+  LogDebug("TIBGeom") << "DDTIBLayerAlgo test " << cylinderFiller.name()
+      << " number 1" << " positioned in " 
+      << cylinderIn.name() << " at " << Position(0.0, 0.0, 0.5*layerL-fillerDz)
+      << " number 2" << " positioned in " 
+      << cylinderIn.name() << " at " << Position(0.0, 0.0,-0.5*layerL+fillerDz);
+  //
+  // Ribs
+  //
+  Material matrib = ns.material(ribMat);
+  for (int i = 0; i < (int)(ribW.size()); i++) {
+    name = idName + "Rib" + std::to_string(i);
+    double width = 2.*ribW[i]/(rin+rout);
+    double dz    = 0.5*layerL-2.*fillerDz;
+    double _rmi  = std::min(rin+0.5*CLHEP::mm,rout-0.5*CLHEP::mm);
+    double _rma  = std::max(rin+0.5*CLHEP::mm,rout-0.5*CLHEP::mm);
+    solid = ns.addSolidNS(name,Tube(_rmi,_rma,dz,-0.5*width, width));
+    LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+        << ribMat << " from " << -0.5*width/CLHEP::deg <<" to "
+        << 0.5*width/CLHEP::deg << " with Rin " 
+        << rin+0.5*CLHEP::mm << " Rout " 
+        << rout-0.5*CLHEP::mm << " ZHalf "  << dz;
+    Volume cylinderRib = ns.addVolumeNS(Volume(name, solid, matrib));
+    double phix   = ribPhi[i];
+    double theta  = 90*CLHEP::deg;
+    double phiy   = phix + 90.*CLHEP::deg;
+    Rotation3D rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.);
+    Position tran(0, 0, 0);
+    cylinderIn.placeVolume(cylinderRib,Transform3D(rotation,tran));// copyNr=1
+    LogDebug("TIBGeom") << cylinderRib.name()
+        << " number 1" << " positioned in " 
+        << cylinderIn.name() << " at " << tran << " with " 
+        << rotation;
+  }
+
+  //Manifold rings
+  //
+  // Inner ones first
+  rin   = MFRingInR;
+  rout  = rin + MFRingT;
+  name  = idName + "InnerMFRing";
+  solid = ns.addSolidNS(name,Tube(rin, rout, MFRingDz));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << MFIntRingMat << " from 0 to " 
+      << CLHEP::twopi/CLHEP::deg << " with Rin " << rin 
+      << " Rout " << rout << " ZHalf " << MFRingDz;
+  Volume inmfr = ns.addVolumeNS(Volume(name, solid, ns.material(MFIntRingMat)));
+  layer.placeVolume(inmfr, Position(0.0, 0.0, -0.5*layerL+MFRingDz)); // Copy Nr=1
+  layer.placeVolume(inmfr, Position(0.0, 0.0, +0.5*layerL+MFRingDz)); // Copy Nr=2
+  LogDebug("TIBGeom") << inmfr.name() 
+      << " number 1 and 2 positioned in " << layer.name()
+      << " at (0,0,+-" << 0.5*layerL-MFRingDz << ") with no rotation";
+
+  // Outer ones
+  rout = MFRingOutR;
+  rin  = rout - MFRingT;
+  name = idName + "OuterMFRing";
+  solid= ns.addSolidNS(name,Tube(rin, rout, MFRingDz));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << MFExtRingMat << " from 0 to " 
+      << CLHEP::twopi/CLHEP::deg << " with Rin " << rin 
+      << " Rout " << rout << " ZHalf " << MFRingDz;
+
+  Volume outmfr = ns.addVolumeNS(Volume(name, solid, ns.material(MFExtRingMat)));
+  layer.placeVolume(outmfr,Position(0.0, 0.0, -0.5*layerL+MFRingDz)); // CopyNr=1
+  layer.placeVolume(outmfr,Position(0.0, 0.0, +0.5*layerL+MFRingDz)); // CopyNr=2
+  LogDebug("TIBGeom") << outmfr.name() 
+      << " number 1 and 2 positioned in " << layer.name()
+      << " at (0,0,+-" << 0.5*layerL-MFRingDz 
+      << ") with no rotation";
+
+  //Central Support rings
+  //
+  // Ring 1
+  double centZ  = centRing1par[0];
+  double centDz = 0.5*centRing1par[1];
+  rin  = centRing1par[2];
+  rout = centRing1par[3];
+  name = idName + "CentRing1";
+  solid = ns.addSolidNS(name,Tube(rin, rout, centDz));
+
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << centMat << " from 0 to " << CLHEP::twopi/CLHEP::deg 
+      << " with Rin " << rin << " Rout " << rout 
+      << " ZHalf " << centDz;
+
+  Volume cent1 = ns.addVolumeNS(Volume(name, solid, ns.material(centMat)));
+  layer.placeVolume(cent1,Position(0.0, 0.0, centZ)); // Copy Nr = 1
+  LogDebug("TIBGeom") << cent1.name() << " positioned in " << layer.name()
+      << " at (0,0," << centZ << ") with no rotation";
+  // Ring 2
+  centZ  = centRing2par[0];
+  centDz = 0.5*centRing2par[1];
+  rin  = centRing2par[2];
+  rout = centRing2par[3];
+  name = idName + "CentRing2";
+  solid = ns.addSolidNS(name, Tube(rin, rout, centDz));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of " 
+      << centMat << " from 0 to " << CLHEP::twopi/CLHEP::deg 
+      << " with Rin " << rin << " Rout " << rout 
+      << " ZHalf " << centDz;
+
+  Volume cent2 = ns.addVolumeNS(Volume(name, solid, ns.material(centMat)));
+  layer.placeVolume(cent2, Position(0e0,0e0,centZ)); // copyNr=1
+  LogDebug("TIBGeom") << cent2.name() 
+      << " positioned in " << layer.name()
+      << " at (0,0," << centZ << ") with no rotation";
+  
+  ////// DOHM
+  //
+  // Preparing DOHM Carrier solid
+
+  name = idName + "DOHMCarrier";
+  double dohmCarrierRin   = MFRingOutR - MFRingT;
+  double dohmCarrierRout  = MFRingOutR;
+  double dohmCarrierDz    = 0.5*(dohmPrimL+dohmtoMF);
+  double dohmCarrierZ     = 0.5*layerL-2.*MFRingDz-dohmCarrierDz;
+
+  solid = ns.addSolidNS(name,Tube(dohmCarrierRin, dohmCarrierRout, 
+                                  dohmCarrierPhiOff, dohmCarrierDz, 
+                                  180.*CLHEP::deg-2.*dohmCarrierPhiOff));
+  LogDebug("TIBGeom") << solid.name() << " Tubs made of "
+      << dohmCarrierMaterial << " from "
+      << dohmCarrierPhiOff << " to " 
+      << 180.*CLHEP::deg-dohmCarrierPhiOff << " with Rin "
+      << dohmCarrierRin << " Rout " << MFRingOutR << " ZHalf " 
+      << dohmCarrierDz;
+  
+  // Define FW and BW carrier logical volume and
+  // place DOHM Primary and auxiliary modules inside it
+  dphi = CLHEP::twopi/stringsUp;
+
+  Rotation3D dohmRotation;
+  double dohmR = 0.5*(dohmCarrierRin+dohmCarrierRout);
+
+  for (int j = 0; j<4; j++) {
+    vector<double> dohmList;
+    Position tran;
+    string rotstr;
+    Rotation3D rotation;
+    int dohmCarrierReplica=0;
+    int placeDohm = 0;
+
+    switch (j){
+    case 0:
+      name = idName + "DOHMCarrierFW";
+      dohmList = dohmListFW;
+      tran = Position(0., 0., dohmCarrierZ);
+      rotstr = idName + "FwUp";
+      rotation = Rotation3D();
+      dohmCarrierReplica = 1;
+      placeDohm=1;
+      break;
+    case 1:
+      name = idName + "DOHMCarrierFW";
+      dohmList = dohmListFW;
+      tran = Position(0., 0., dohmCarrierZ);
+      rotstr = idName + "FwDown";
+      rotation = make_rotation3D(90.*CLHEP::deg, 180.*CLHEP::deg, 90.*CLHEP::deg,270.*CLHEP::deg, 0.,0.);
+      dohmCarrierReplica = 2;
+      placeDohm=0;
+      break;
+    case 2:
+      name = idName + "DOHMCarrierBW";
+      dohmList = dohmListBW;
+      tran = Position(0., 0., -dohmCarrierZ);
+      rotstr = idName + "BwUp";
+      rotation = make_rotation3D(90.*CLHEP::deg, 180.*CLHEP::deg, 90.*CLHEP::deg, 90.*CLHEP::deg, 180.*CLHEP::deg, 0.);
+      dohmCarrierReplica = 1;
+      placeDohm=1;
+      break;
+    case 3:
+      name = idName + "DOHMCarrierBW";
+      dohmList = dohmListBW;
+      tran = Position(0., 0., -dohmCarrierZ);
+      rotstr = idName + "BwDown";
+      rotation = make_rotation3D(90.*CLHEP::deg, 0., 90.*CLHEP::deg, 270.*CLHEP::deg, 180.*CLHEP::deg, 0.);
+      dohmCarrierReplica = 2;
+      placeDohm=0;
+      break;
+    }
+
+    Volume dohmCarrier = ns.addVolumeNS(Volume(name,solid,ns.material(dohmCarrierMaterial)));
+    int primReplica = 0;
+    int auxReplica = 0;
+
+    for (int i = 0; i < placeDohm*((int)(dohmList.size())); i++) {
+      double phi    = (std::abs(dohmList[i])+0.5-1.)*dphi;
+      double phix   = phi + 90*CLHEP::deg;
+      double theta  = 90*CLHEP::deg;
+      double phiy   = phix + 90.*CLHEP::deg;
+      dohmRotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.);
+
+      string dohmName;
+      int dohmReplica = 0;
+      double dohmZ = 0.;
+      Volume dohm;
+      
+      if(dohmList[i]<0.) {
+        // Place a Auxiliary DOHM
+        dohm = ns.volume(dohmAuxName);
+        dohmZ = dohmCarrierDz - 0.5*dohmAuxL - dohmtoMF;
+        primReplica++;
+        dohmReplica = primReplica;
+	
+      } else {
+        // Place a Primary DOHM
+        dohm = ns.volume(dohmPrimName);
+        dohmZ = dohmCarrierDz - 0.5*dohmPrimL - dohmtoMF;
+        auxReplica++;
+        dohmReplica = auxReplica;
+      }
+      
+      Position dohmTrasl(dohmR*cos(phi), dohmR*sin(phi), dohmZ);
+      dohmCarrier.placeVolume(dohm,Transform3D(dohmRotation,dohmTrasl));
+      LogDebug("TIBGeom") << dohm.name() 
+          << " replica " << dohmReplica << " positioned in " 
+          << dohmCarrier.name() << " at " << dohmTrasl << " with "
+          << dohmRotation;
+    }
+    
+    layer.placeVolume(dohmCarrier, Transform3D(rotation,tran));// copyNr = dohmCarrierReplica
+    LogDebug("TIBGeom") << "DDTIBLayerAlgo test "
+        << dohmCarrier.name() << " positioned in " << mother
+        << " replica " << dohmCarrierReplica << " at "
+        << tran << " with " << rotation;
+  }
 
-  str << "Not implemented. To be done.... ";// << mother.name();
-  printout(WARNING,"DDTIBLayerAlgo",str);
+  ////// PILLARS
+  for (int j = 0; j<4; j++) {    
+    vector<double> pillarZ;
+    vector<double> pillarPhi;
+    double pillarDz=0, pillarDPhi=0, pillarRin=0, pillarRout=0;
+    
+    switch (j){
+    case 0:
+      name = idName + "FWIntPillar";
+      pillarZ    = fwIntPillarZ;
+      pillarPhi  = fwIntPillarPhi;
+      pillarRin  = MFRingInR;
+      pillarRout = MFRingInR + MFRingT;
+      pillarDz   = fwIntPillarDz;
+      pillarDPhi = fwIntPillarDPhi;
+      break;
+    case 1:
+      name = idName + "BWIntPillar";
+      pillarZ    = bwIntPillarZ;
+      pillarPhi  = bwIntPillarPhi;
+      pillarRin  = MFRingInR;
+      pillarRout = MFRingInR + MFRingT;
+      pillarDz   = bwIntPillarDz;
+      pillarDPhi = bwIntPillarDPhi;
+      break;
+    case 2:
+      name = idName + "FWExtPillar";
+      pillarZ    = fwExtPillarZ;
+      pillarPhi  = fwExtPillarPhi;
+      pillarRin  = MFRingOutR - MFRingT;
+      pillarRout = MFRingOutR;
+      pillarDz   = fwExtPillarDz;
+      pillarDPhi = fwExtPillarDPhi;
+      break;
+    case 3:
+      name = idName + "BWExtPillar";
+      pillarZ    = bwExtPillarZ;
+      pillarPhi  = bwExtPillarPhi;
+      pillarRin  = MFRingOutR - MFRingT;
+      pillarRout = MFRingOutR;
+      pillarDz   = bwExtPillarDz;
+      pillarDPhi = bwExtPillarDPhi;
+      break;
+    }
+    
+    solid = ns.addSolidNS(name,Tube(pillarRin, pillarRout, pillarDz, -pillarDPhi, 2.*pillarDPhi));    
+    Volume Pillar = ns.addVolumeNS(Volume(name,solid,ns.material(pillarMaterial)));
+    LogDebug("TIBGeom") << solid.name() << " Tubs made of " << pillarMaterial << " from "
+        << -pillarDPhi << " to " << pillarDPhi << " with Rin "
+        << pillarRin << " Rout " << pillarRout << " ZHalf "  
+        << pillarDz;
+    Position   pillarTran;
+    Rotation3D pillarRota;
+    int pillarReplica = 0;
+    for (unsigned int i=0; i<pillarZ.size(); i++) {
+      if( pillarPhi[i]>0. ) {
+        pillarTran = Position(0., 0., pillarZ[i]);
+        pillarRota = make_rotation3D(90.*CLHEP::deg, pillarPhi[i], 90.*CLHEP::deg, 90.*CLHEP::deg+pillarPhi[i], 0., 0.);
+        layer.placeVolume(Pillar,Transform3D(pillarRota,pillarTran)); // copyNr i
+        LogDebug("TIBGeom") << Pillar.name() << " positioned in " 
+            << mother << " at "
+            << pillarTran << " with " << pillarRota 
+            << " copy number " << pillarReplica;
+        pillarReplica++;
+      }
+    }
+  }
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTIBLayerAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTIBLayerAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTIDModuleAlgo.cpp b/DDCMS/src/plugins/DDTIDModuleAlgo.cpp
index a820afd62..b762fe977 100644
--- a/DDCMS/src/plugins/DDTIDModuleAlgo.cpp
+++ b/DDCMS/src/plugins/DDTIDModuleAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,15 +28,441 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
-  //Volume         mother     = ns.volume(args.parentName());
-  
-  str << "Not implemented. To be done.... ";// << mother.name();
-  printout(WARNING,"DDTIDModuleAlgo",str);
+  string         mother            = args.parentName();
+  string         genMat            = args.str("GeneralMaterial");    //General material name
+  int            detectorN         = args.integer("DetectorNumber"); //Detector planes
+  double         moduleThick       = args.dble("ModuleThick");       //Module thickness
+  double         detTilt           = args.dble("DetTilt");           //Tilt of stereo detector
+  double         fullHeight        = args.dble("FullHeight");        //Height 
+  double         dlTop             = args.dble("DlTop");             //Width at top of wafer
+  double         dlBottom          = args.dble("DlBottom");          //Width at bottom of wafer
+  double         dlHybrid          = args.dble("DlHybrid");          //Width at the hybrid end
+  bool           doComponents      = ::toupper(args.str("DoComponents")[0]) != 'N';      //Components to be made
+
+  string         boxFrameName      = args.str("BoxFrameName");      //Top frame     name
+  string         boxFrameMat       = args.str("BoxFrameMaterial");   //              material
+  double         boxFrameHeight    = args.dble("BoxFrameHeight");    //              height  
+  double         boxFrameThick     = args.dble("BoxFrameThick");     //              thickness
+  double         boxFrameWidth     = args.dble("BoxFrameWidth");     //              extra width
+  double         bottomFrameHeight = args.dble("BottomFrameHeight"); //Bottom of the frame
+  double         bottomFrameOver   = args.dble("BottomFrameOver");   //    overlap
+  double         topFrameHeight    = args.dble("TopFrameHeight");    //Top    of the frame
+  double         topFrameOver      = args.dble("TopFrameOver");      //              overlap
+  vector<string> sideFrameName     = args.vecStr("SideFrameName");   //Side frame    name
+  string         sideFrameMat      = args.str("SideFrameMaterial");  //              material
+  double         sideFrameWidth    = args.dble("SideFrameWidth");    //              width
+  double         sideFrameThick    = args.dble("SideFrameThick");    //              thickness
+  double         sideFrameOver     = args.dble("SideFrameOver");     //              overlap (wrt wafer)
+  vector<string> holeFrameName     = args.vecStr("HoleFrameName");   //Hole in the frame   name
+  vector<string> holeFrameRot      = args.vecStr("HoleFrameRotation"); //            Rotation matrix
+
+  vector<string> kaptonName        = args.vecStr("KaptonName");      //Kapton circuit name
+  string         kaptonMat         = args.str("KaptonMaterial");     //               material
+  double         kaptonThick       = args.dble("KaptonThick");       //               thickness
+  double         kaptonOver        = args.dble("KaptonOver");        //               overlap (wrt Wafer)
+  vector<string> holeKaptonName    = args.vecStr("HoleKaptonName");  //Hole in the kapton circuit name
+  vector<string> holeKaptonRot     = args.vecStr("HoleKaptonRotation");  //           Rotation matrix
+
+  vector<string> waferName         = args.vecStr("WaferName");        //Wafer         name
+  string         waferMat          = args.str("WaferMaterial");       //              material
+  double         sideWidthTop      = args.dble("SideWidthTop");       //              width on the side Top
+  double         sideWidthBottom   = args.dble("SideWidthBottom");    //                                Bottom
+  vector<string> activeName        = args.vecStr("ActiveName");       //Sensitive     name
+  string         activeMat         = args.str("ActiveMaterial");      //              material
+  double         activeHeight      = args.dble("ActiveHeight");       //              height
+  vector<double> waferThick        = args.vecDble("WaferThick");      //              wafer thickness (active       = wafer - backplane)
+  string         activeRot         = args.str("ActiveRotation");      //              Rotation matrix
+  vector<double> backplaneThick    = args.vecDble("BackPlaneThick");  //              thickness
+  string         hybridName        = args.str("HybridName");          //Hybrid        name
+  string         hybridMat         = args.str("HybridMaterial");      //              material
+  double         hybridHeight      = args.dble("HybridHeight");       //              height
+  double         hybridWidth       = args.dble("HybridWidth");        //              width
+  double         hybridThick       = args.dble("HybridThick");        //              thickness
+  vector<string> pitchName         = args.vecStr("PitchName");        //Pitch adapter name
+  string         pitchMat          = args.str("PitchMaterial");       //              material
+  double         pitchHeight       = args.dble("PitchHeight");        //              height
+  double         pitchThick        = args.dble("PitchThick");         //              thickness
+  double         pitchStereoTol    = args.dble("PitchStereoTolerance");  //           tolerance in dimensions of the stereo 
+  string         coolName          = args.str("CoolInsertName");      // Cool insert name
+  string         coolMat           = args.str("CoolInsertMaterial");  //              material
+  double         coolHeight        = args.dble("CoolInsertHeight");   //              height
+  double         coolThick         = args.dble("CoolInsertThick");    //              thickness
+  double         coolWidth         = args.dble("CoolInsertWidth");    //              width
+
+  LogDebug("TIDGeom") << "Parent " << mother
+      << " General Material " << genMat 
+      << " Detector Planes " << detectorN;
+
+  LogDebug("TIDGeom") << "ModuleThick " 
+      << moduleThick << " Detector Tilt " << detTilt/CLHEP::deg
+      << " Height " << fullHeight << " dl(Top) " << dlTop
+      << " dl(Bottom) " << dlBottom << " dl(Hybrid) "
+      << dlHybrid << " doComponents " << doComponents;
+  LogDebug("TIDGeom") << "" << boxFrameName 
+      << " Material " << boxFrameMat << " Thickness " 
+      << boxFrameThick << " width " << boxFrameWidth 
+      <<  " height " << boxFrameHeight
+      << " Extra Height at Bottom " << bottomFrameHeight 
+      << " Overlap " << bottomFrameOver;
+
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << sideFrameName[i] 
+        << " Material " << sideFrameMat << " Width " 
+        << sideFrameWidth << " Thickness " << sideFrameThick
+        << " Overlap " << sideFrameOver << " Hole  "
+        << holeFrameName[i];
+
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << kaptonName[i] 
+        << " Material " << kaptonMat 
+        << " Thickness " << kaptonThick
+        << " Overlap " << kaptonOver << " Hole  "
+        << holeKaptonName[i];
+
+  LogDebug("TIDGeom") << "Wafer Material " 
+      << waferMat  << " Side Width Top " << sideWidthTop
+      << " Side Width Bottom " << sideWidthBottom;
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << "\twaferName[" << i << "] = " << waferName[i];
+
+  LogDebug("TIDGeom") << "Active Material " 
+      << activeMat << " Height " << activeHeight 
+      << " rotated by " << activeRot;
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << " translated by (0," << -0.5*backplaneThick[i] 
+        << ",0)\tactiveName[" << i << "] = " << activeName[i]
+        << " of thickness " << waferThick[i]-backplaneThick[i];
+
+  LogDebug("TIDGeom") << "" << hybridName 
+      << " Material " << hybridMat << " Height " 
+      << hybridHeight << " Width " << hybridWidth 
+      << " Thickness " << hybridThick;
+  LogDebug("TIDGeom") << "Pitch Adapter Material "
+      << pitchMat << " Height " << pitchHeight
+      << " Thickness " << pitchThick;
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") <<  "\tpitchName[" << i << "] = " << pitchName[i];
+  LogDebug("TIDGeom") << "Cool Element Material "
+      << coolMat << " Height " << coolHeight
+      << " Thickness " << coolThick << " Width " << coolWidth;
+
+  string name = mother;
+  double sidfr = sideFrameWidth - sideFrameOver;      // width of side frame on the sides of module 
+  double botfr;                                       // width of side frame at the the bottom of the modules 
+  double topfr;                                       // width of side frame at the the top of the modules 
+  double kaptonHeight; 
+  if (dlHybrid > dlTop) {
+    // ring 1, ring 2
+    topfr = topFrameHeight - pitchHeight - topFrameOver;      
+    botfr = bottomFrameHeight - bottomFrameOver; 
+    kaptonHeight = fullHeight + botfr;
+  } else {
+    // ring 3
+    topfr = topFrameHeight - topFrameOver;      
+    botfr = bottomFrameHeight - bottomFrameOver - pitchHeight; 
+    kaptonHeight = fullHeight + topfr;
+  }
+
+  double sideFrameHeight = fullHeight + pitchHeight + botfr + topfr; 
+  double kaptonWidth = sidfr + kaptonOver;
+
+  double  dxbot = 0.5*dlBottom + sidfr;
+  double  dxtop = 0.5*dlTop + sidfr;
+  double  dxtopenv, dxbotenv;           // top/bot width of the module envelope trap
+
+  // Envelope 
+  if (dlHybrid > dlTop) {
+    // ring 1, ring 2
+    dxtopenv = dxbot + (dxtop-dxbot)*(fullHeight+pitchHeight+topfr+hybridHeight)/fullHeight;
+    dxbotenv = dxtop - (dxtop-dxbot)*(fullHeight+botfr)/fullHeight;
+  } else {
+    // ring 3
+    dxtopenv = dxbot + (dxtop-dxbot)*(fullHeight+topfr)/fullHeight;
+    dxbotenv = dxbot;
+  }
+  double bl1   = dxbotenv;
+  double bl2   = dxtopenv;
+  double h1    = 0.5 * moduleThick;
+  double dx, dy;
+  double dz    = 0.5 * (boxFrameHeight + sideFrameHeight);
+
+  Solid  solid   = ns.addSolidNS(name,Trap(dz, 0, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0));
+  /* Volume module = */ ns.addVolumeNS(Volume(name, solid, ns.material(genMat)));
+  LogDebug("TIDGeom") << solid.name() 
+      << " Trap made of " << genMat << " of dimensions " << dz 
+      << ", 0, 0, " << h1  << ", " << bl1 << ", " << bl1 
+      << ", 0, " << h1 << ", " << bl2  << ", " << bl2 
+      << ", 0";
+
+  if (doComponents) {
+
+    //Box frame
+    name    = boxFrameName;
+    dx = 0.5 * boxFrameWidth;
+    dy = 0.5 * boxFrameThick;
+    dz = 0.5 * boxFrameHeight; 
+    solid = ns.addSolidNS(name,Box(dx, dy, dz));
+    LogDebug("TIDGeom") << solid.name() 
+        << " Box made of " << boxFrameMat << " of dimensions " 
+        << dx << ", " << dy << ", " << dz;
+    /* Volume boxFrame = */ ns.addVolumeNS(Volume(name, solid, ns.material(boxFrameMat)));
+
+
+    // Hybrid
+    name    = hybridName;
+    dx = 0.5 * hybridWidth;
+    dy = 0.5 * hybridThick;
+    dz        = 0.5 * hybridHeight;
+    solid = ns.addSolidNS(name,Box(dx, dy, dz));
+    LogDebug("TIDGeom") << solid.name() 
+        << " Box made of " << hybridMat << " of dimensions " 
+        << dx << ", " << dy << ", " << dz;
+    /* Volume hybrid = */ ns.addVolumeNS(Volume(name, solid, ns.material(hybridMat)));
+
+    // Cool Insert
+    name    = coolName;
+    dx = 0.5 * coolWidth;
+    dy = 0.5 * coolThick;
+    dz        = 0.5 * coolHeight;
+    solid = ns.addSolidNS(name,Box(dx, dy, dz));
+    LogDebug("TIDGeom") << solid.name() 
+        << " Box made of " << coolMat << " of dimensions " 
+        << dx << ", " << dy << ", " << dz;
+    /* Volume cool = */ ns.addVolumeNS(Volume(name, solid, ns.material(coolMat)));
+
+    // Loop over detectors to be placed
+    for (int k = 0; k < detectorN; k++) {
+      double bbl1, bbl2; // perhaps useless (bl1 enough)
+      // Frame Sides
+      name    = sideFrameName[k];
+      if (dlHybrid > dlTop) {
+        // ring 1, ring 2
+        bbl1 = dxtop - (dxtop-dxbot)*(fullHeight+botfr)/fullHeight;
+        bbl2 = dxbot + (dxtop-dxbot)*(fullHeight+pitchHeight+topfr)/fullHeight;
+      } else {
+        // ring 3
+        bbl1 = dxtop - (dxtop-dxbot)*(fullHeight+pitchHeight+botfr)/fullHeight;
+        bbl2 = dxbot + (dxtop-dxbot)*(fullHeight+topfr)/fullHeight;
+      }
+      h1 = 0.5 * sideFrameThick;
+      dz = 0.5 * sideFrameHeight;
+      solid = ns.addSolidNS(name,Trap(dz, 0., 0., h1, bbl1, bbl1, 0., h1,  bbl2, bbl2, 0.));
+      LogDebug("TIDGeom") << solid.name() 
+          << " Trap made of " << sideFrameMat << " of dimensions "
+          << dz << ", 0, 0, " << h1 << ", " << bbl1 << ", " 
+          << bbl1 << ", 0, " << h1 << ", " << bbl2 << ", " 
+          << bbl2 << ", 0";
+      Volume sideFrame = ns.addVolumeNS(Volume(name, solid, ns.material(sideFrameMat)));
+
+      std::string rotstr, rotns; 
+      Rotation3D rot;
+
+      // Hole in the frame below the wafer 
+      name    = holeFrameName[k];
+      double xpos, zpos;
+      dz        = fullHeight - bottomFrameOver - topFrameOver;
+      bbl1     = dxbot - sideFrameWidth + bottomFrameOver*(dxtop-dxbot)/fullHeight;
+      bbl2     = dxtop - sideFrameWidth - topFrameOver*(dxtop-dxbot)/fullHeight;
+      if (dlHybrid > dlTop) {
+        // ring 1, ring 2
+        zpos    = -(topFrameHeight+0.5*dz-0.5*sideFrameHeight);
+      } else {
+        // ring 3
+        zpos    = bottomFrameHeight+0.5*dz-0.5*sideFrameHeight;
+      }
+      dz     /= 2.;
+      solid = ns.addSolidNS(name,Trap(dz, 0,0, h1,bbl1,bbl1, 0, h1,bbl2,bbl2, 0));
+      LogDebug("TIDGeom") << solid.name() 
+          << " Trap made of " << genMat << " of dimensions "
+          << dz << ", 0, 0, " << h1 << ", " << bbl1 << ", " 
+          << bbl1 << ", 0, " << h1 << ", " << bbl2 << ", " 
+          << bbl2 << ", 0";
+      Volume holeFrame = ns.addVolumeNS(Volume(name, solid, ns.material(genMat)));
+
+      rot   = ns.rotation(holeFrameRot[k]);
+      sideFrame.placeVolume(holeFrame,Transform3D(rot,Position(0e0,0e0,zpos)));// copyNr=1
+      LogDebug("TIDGeom") << holeFrame.name() 
+          << " number 1 positioned in " << sideFrame.name()
+          << " at (0,0," << zpos << ") with no rotation";
+
+      // Kapton circuit
+      double kaptonExtraHeight=0;      // kapton extra height in the stereo
+      if (dlHybrid > dlTop) {
+        // ring 1, ring 2
+        bbl1 = dxtop - (dxtop-dxbot)*(fullHeight+botfr)/fullHeight;
+        if ( k == 1 ) {
+          kaptonExtraHeight = dlTop*sin(detTilt)-fullHeight*(1-cos(detTilt));
+          kaptonExtraHeight = 0.5*fabs(kaptonExtraHeight);
+          bbl2 = dxbot + (dxtop-dxbot)*(fullHeight+kaptonExtraHeight)/fullHeight;
+        }
+        else {
+          bbl2 = dxtop;
+        }
+      } else {
+        // ring 3
+        bbl2 = dxbot + (dxtop-dxbot)*(fullHeight+topfr)/fullHeight;
+        if ( k == 1) {
+          kaptonExtraHeight = dlBottom*sin(detTilt)-fullHeight*(1-cos(detTilt));
+          kaptonExtraHeight = 0.5*fabs(kaptonExtraHeight);
+          bbl1 = dxtop - (dxtop-dxbot)*(fullHeight+kaptonExtraHeight)/fullHeight;
+        }  else {
+          bbl1 = dxbot;
+        }
+      }
+      h1 = 0.5 * kaptonThick;
+      dz = 0.5 * (kaptonHeight+kaptonExtraHeight);
+
+      // For the stereo create the uncut solid, the solid to be removed and then the subtraction solid
+      if ( k == 1 ) {
+        // Uncut solid
+        Solid solidUncut = ns.addSolidNS(kaptonName[k]+"Uncut",Trap(dz, 0., 0., h1, bbl1, bbl1, 0., h1, bbl2, bbl2, 0));
+
+        // Piece to be cut
+        dz = (dlHybrid > dlTop) ? 0.5 * dlTop : 0.5 * dlBottom;
+        h1      = 0.5 * kaptonThick;
+        bbl1    =  fabs(dz*sin(detTilt));
+        bbl2    =  bbl1*0.000001;
+        double thet = atan((bbl1-bbl2)/(2*dz));	
+        Solid solidCut  = ns.addSolidNS(kaptonName[k]+"Cut",Trap(dz, thet, 0., h1, bbl1, bbl1, 0., h1, bbl2, bbl2, 0));
+        
+        // Subtraction Solid
+        name   = kaptonName[k];
+        rot    = ns.rotation("tidmodpar:9PYX");
+        xpos   = -0.5 * fullHeight * sin(detTilt);
+        zpos   = 0.5 * kaptonHeight - bbl2;
+        solid  = ns.addSolidNS(name,SubtractionSolid(solidUncut, solidCut, Transform3D(rot,Position(xpos,0.0,zpos))));
+      } else {
+        name   = kaptonName[k];
+        solid  = ns.addSolidNS(name,Trap(dz, 0., 0., h1, bbl1, bbl1, 0., h1, bbl2, bbl2, 0.));
+      }
+        
+      Volume kapton = ns.addVolumeNS(Volume(name, solid, ns.material(kaptonMat)));
+      LogDebug("TIDGeom") << solid.name() 
+          << " SUBTRACTION SOLID Trap made of " <<  kaptonMat
+          << " of dimensions " << dz << ", 0, 0, " << h1 
+          << ", " << bbl1 << ", " << bbl1 << ", 0, " << h1 
+          << ", " << bbl2 << ", " << bbl2 << ", 0";
+
+      // Hole in the kapton below the wafer 
+      name    = holeKaptonName[k];
+      dz      = fullHeight - kaptonOver;
+      xpos = 0; 
+      if (dlHybrid > dlTop) {
+        // ring 1, ring 2
+        bbl1 = dxbot - kaptonWidth + kaptonOver*(dxtop-dxbot)/fullHeight;
+        bbl2 = dxtop - kaptonWidth;
+        zpos = 0.5*(kaptonHeight-kaptonExtraHeight-dz); 
+        if ( k == 1 ) {
+          zpos -= 0.5*kaptonOver*(1-cos(detTilt));
+          xpos = -0.5*kaptonOver*sin(detTilt); 
+        }
+      } else {
+        // ring 3
+        bbl1 = dxbot - kaptonWidth;
+        bbl2 = dxtop - kaptonWidth - kaptonOver*(dxtop-dxbot)/fullHeight;
+        zpos = -0.5*(kaptonHeight-kaptonExtraHeight-dz);
+      }
+      dz     /= 2.;
+      solid = ns.addSolidNS(name,Trap(dz,0.,0., h1,bbl1,bbl1, 0., h1,bbl2,bbl2, 0.));
+      LogDebug("TIDGeom") << solid.name() 
+          << " Trap made of " << genMat << " of dimensions "
+          << dz << ", 0, 0, " << h1 << ", " << bbl1 << ", " 
+          << bbl1 << ", 0, " << h1 << ", " << bbl2 << ", " 
+          << bbl2 << ", 0";
+      Volume holeKapton = ns.addVolumeNS(Volume(name, solid, ns.material(genMat)));
+
+      rot = ns.rotation(holeKaptonRot[k]);
+      kapton.placeVolume(holeKapton, Transform3D(rot,Position(xpos, 0.0, zpos)));
+      LogDebug("TIDGeom") << holeKapton.name() 
+          << " number 1 positioned in " << kapton.name()
+          << " at (0,0," << zpos << ") with no rotation";
+
+      // Wafer
+      name    = waferName[k];
+      if (k == 0 && dlHybrid < dlTop) {
+        bl1     = 0.5 * dlTop;
+        bl2     = 0.5 * dlBottom;
+      } else {
+        bl1     = 0.5 * dlBottom;
+        bl2     = 0.5 * dlTop;
+      }
+      h1      = 0.5 * waferThick[k];
+      dz      = 0.5 * fullHeight;
+      solid = ns.addSolidNS(name,Trap(dz, 0,0, h1,bl1,bl1,0, h1,bl2,bl2,0));
+      LogDebug("TIDGeom") << solid.name() 
+          << " Trap made of " << waferMat << " of dimensions "
+          << dz << ", 0, 0, " << h1 << ", " << bl1 << ", " 
+          << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
+          << bl2 << ", 0";
+      Volume wafer = ns.addVolumeNS(Volume(name, solid, ns.material(waferMat)));
+
+      // Active
+      name    = activeName[k];
+      if (k == 0 && dlHybrid < dlTop) {
+        bl1    -= sideWidthTop;
+        bl2    -= sideWidthBottom;
+      }
+      else {
+        bl1    -= sideWidthBottom;
+        bl2    -= sideWidthTop;
+      }
+      dz      = 0.5 * (waferThick[k] - backplaneThick[k]); // inactive backplane
+      h1      = 0.5 * activeHeight;
+      solid = ns.addSolidNS(name,Trap(dz, 0,0, h1,bl2,bl1,0, h1,bl2,bl1,0));
+      LogDebug("TIDGeom") << solid.name() 
+          << " Trap made of " << activeMat << " of dimensions "
+          << dz << ", 0, 0, " << h1 << ", " << bl2 << ", " 
+          << bl1 << ", 0, " << h1 << ", " << bl2 << ", "
+          << bl1 << ", 0";
+      Volume active  = ns.addVolumeNS(Volume(name, solid, ns.material(activeMat)));
+      rot = ns.rotation(activeRot);
+      Position tran(0.0,-0.5 * backplaneThick[k],0.0); // from the definition of the wafer local axes
+      wafer.placeVolume(active, Transform3D(rot,tran));  // inactive backplane copyNr=1
+      LogDebug("TIDGeom") << "DDTIDModuleAlgo test: " << active.name() 
+          << " number 1 positioned in " << wafer.name() 
+          << " at " << tran << " with " << rot;
+      
+      //Pitch Adapter
+      name    = pitchName[k];
+      if (dlHybrid > dlTop) {
+        dz   = 0.5 * dlTop;
+      } else {
+        dz   = 0.5 * dlBottom;
+      }
+      if (k == 0) {
+        dx      = dz;
+        dy      = 0.5 * pitchThick;
+        dz      = 0.5 * pitchHeight;
+        solid   = ns.addSolidNS(name,Box(dx, dy, dz));
+        LogDebug("TIDGeom") << solid.name()
+            << " Box made of " << pitchMat << " of dimensions"
+            << " " << dx << ", " << dy << ", " << dz;
+      } else {
+        h1      = 0.5 * pitchThick;
+        bl1     = 0.5 * pitchHeight + 0.5 * dz * sin(detTilt);
+        bl2     = 0.5 * pitchHeight - 0.5 * dz * sin(detTilt);
+
+        dz -=0.5*pitchStereoTol;
+        bl1-=pitchStereoTol;
+        bl2-=pitchStereoTol;
+
+        double thet = atan((bl1-bl2)/(2.*dz));
+        solid   = ns.addSolidNS(name,Trap(dz, thet, 0, h1, bl1, bl1, 0, h1, bl2, bl2, 0));
+        LogDebug("TIDGeom") << solid.name() 
+            << " Trap made of " << pitchMat << " of "
+            << "dimensions " << dz << ", " << thet/CLHEP::deg 
+            << ", 0, " << h1 << ", " << bl1 << ", " << bl1 
+            << ", 0, " << h1 << ", " << bl2 << ", " << bl2 
+            << ", 0";
+      }
+      /* Volume pa = */ ns.addVolumeNS(Volume(name, solid, ns.material(pitchMat)));
+    }
+  }
+  LogDebug("TIDGeom") << "<<== End of DDTIDModuleAlgo construction ...";
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTIDModuleAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTIDModuleAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTIDModulePosAlgo.cpp b/DDCMS/src/plugins/DDTIDModulePosAlgo.cpp
new file mode 100644
index 000000000..d9e1bfdbd
--- /dev/null
+++ b/DDCMS/src/plugins/DDTIDModulePosAlgo.cpp
@@ -0,0 +1,356 @@
+//==========================================================================
+//  AIDA Detector description implementation 
+//--------------------------------------------------------------------------
+// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+// All rights reserved.
+//
+// For the licensing terms see $DD4hepINSTALL/LICENSE.
+// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+//
+// Author     : M.Frank
+//
+//==========================================================================
+//
+// Specialized generic detector constructor
+// 
+//==========================================================================
+
+// Framework include files
+#include "DD4hep/DetFactoryHelper.h"
+#include "DDCMS/DDCMSPlugins.h"
+
+using namespace std;
+using namespace dd4hep;
+using namespace dd4hep::cms;
+
+static long algorithm(Detector& /* description */,
+                      ParsingContext& ctxt,
+                      xml_h e,
+                      SensitiveDetector& /* sens */)
+{
+  Namespace      ns(ctxt, e, true);
+  AlgoArguments  args(ctxt, e);
+  string         parentName        = args.parentName();
+  int            detectorN         = args.integer("DetectorNumber");         //Number of detectors
+  double         detTilt           = args.dble("DetTilt");           //Tilt of stereo detector
+  double         fullHeight        = args.dble("FullHeight");        //Height 
+  string         boxFrameName      = args.str("BoxFrameName");      //Top frame Name
+  double         boxFrameHeight    = args.dble("BoxFrameHeight");    //          height 
+  double         boxFrameWidth     = args.dble("BoxFrameWidth");     //          width
+  double         dlTop             = args.dble("DlTop");             //Width at top of wafer
+  double         dlBottom          = args.dble("DlBottom");          //Width at bottom of wafer
+  double         dlHybrid          = args.dble("DlHybrid");          //Width at the hybrid end
+  vector<double> boxFrameZ         = args.vecDble("BoxFrameZ");         //              z-positions
+  double         bottomFrameHeight = args.dble("BottomFrameHeight"); //Bottom of the frame
+  double         bottomFrameOver   = args.dble("BottomFrameOver");   //              overlap
+  double         topFrameHeight    = args.dble("TopFrameHeight");    //Top    of the frame
+  double         topFrameOver      = args.dble("TopFrameOver");      //              overlap 
+
+  vector<string> sideFrameName     = args.vecStr("SideFrameName");     //Side Frame    name
+  vector<double> sideFrameZ        = args.vecDble("SideFrameZ");        //              z-positions
+  vector<string> sideFrameRot      = args.vecStr("SideFrameRotation");      //              rotation matrix (required for correct positiong of the hole in the StereoR)
+  double         sideFrameWidth    = args.dble("SideFrameWidth");    //              width
+  double         sideFrameOver     = args.dble("SideFrameOver");     //              overlap (wrt wafer)
+
+  vector<string> kaptonName        = args.vecStr("KaptonName");         //Kapton Circuit    name
+  vector<double> kaptonZ           = args.vecDble("KaptonZ");           //              z-positions
+  vector<string> kaptonRot         = args.vecStr("KaptonRotation");         //              rotation matrix (required for correct positiong of the hole in the StereoR)
+  vector<string> waferName         = args.vecStr("WaferName");         //Wafer         name
+  vector<double> waferZ            = args.vecDble("WaferZ");            //              z-positions
+  vector<string> waferRot          = args.vecStr("WaferRotation");          //              rotation matrix
+  string         hybridName        = args.str("HybridName");        //Hybrid        name
+  double         hybridHeight      = args.dble("HybridHeight");      //              height
+  vector<double> hybridZ           = args.vecDble("HybridZ");           //              z-positions
+  vector<string> pitchName         = args.vecStr("PitchName");         //Pitch adapter rotation matrix
+  double         pitchHeight       = args.dble("PitchHeight");       //              height
+  vector<double> pitchZ            = args.vecDble("PitchZ");            //              z-positions
+  vector<string> pitchRot          = args.vecStr("PitchRotation");          //              rotation matrix
+  string         coolName          = args.str("CoolInsertName");        //Cool Insert   name
+  double         coolHeight        = args.dble("CoolInsertHeight");      //              height
+  double         coolZ             = args.dble("CoolInsertZ");           //              z-position
+  double         coolWidth         = args.dble("CoolInsertWidth");       //              width
+  vector<double> coolRadShift      = args.vecDble("CoolInsertShift");    //              
+
+
+  bool           doSpacers         = ::toupper(args.str("DoSpacers")[0])!='N';      //Spacers (alumina) to be made (Should be "Yes" for DS modules only)
+  string botSpacersName            = args.str("BottomSpacersName");   // Spacers at the "bottom" of the module
+  double botSpacersHeight          = args.dble("BottomSpacersHeight");      //
+  double botSpacersZ               = args.dble("BottomSpacersZ");           //              z-position
+  string sidSpacersName            = args.str("SideSpacersName");   //Spacers at the "sides" of the module
+  double sidSpacersHeight          = args.dble("SideSpacersHeight");   
+  double sidSpacersZ               = args.dble("SideSpacersZ");           //              z-position
+  double sidSpacersWidth           = args.dble("SideSpacersWidth");       //              width
+  double sidSpacersRadShift        = args.dble("SideSpacersShift");    //              
+
+  LogDebug("TIDGeom") << "Parent " << parentName
+                      << " Detector Planes " << detectorN;
+  LogDebug("TIDGeom") << "Detector Tilt " 
+                      << detTilt/CLHEP::deg << " Height " << fullHeight 
+                      << " dl(Top) " << dlTop << " dl(Bottom) " << dlBottom
+                      << " dl(Hybrid) " << dlHybrid;
+  LogDebug("TIDGeom") << boxFrameName  << " positioned at Z";
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << "\tboxFrameZ[" << i << "] = " << boxFrameZ[i];
+  LogDebug("TIDGeom") << "\t Extra Height at Bottom " << bottomFrameHeight
+                      << " Overlap " <<bottomFrameOver;
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << "\tsideFrame[" << i << "] = " << sideFrameName[i]
+                        << " positioned at Z "<< sideFrameZ[i]
+                        << " with rotation " << sideFrameRot[i];
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << "\tkapton[" << i << "] = " << kaptonName[i]
+                        << " positioned at Z "<< kaptonZ[i]
+                        << " with rotation " << kaptonRot[i];
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << waferName[i]
+                        << " positioned at Z " << waferZ[i] 
+                        << " with rotation " << waferRot[i];
+  LogDebug("TIDGeom") << hybridName 
+                      << " Height " << hybridHeight << " Z";
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << "\thybridZ[" << i <<"] = " << hybridZ[i];
+  LogDebug("TIDGeom") << "Pitch Adapter Height " << pitchHeight;
+  for (int i = 0; i < detectorN; i++)
+    LogDebug("TIDGeom") << pitchName[i] << " position at Z " << pitchZ[i] 
+                        << " with rotation " << pitchRot[i];
+  
+  string name;
+  double botfr;                   // width of side frame at the the bottom of the modules 
+  double topfr;                   // width of side frame at the the top of the modules 
+  double kaptonHeight;
+  if (dlHybrid > dlTop) {
+    // ring 1, ring 2
+    topfr = topFrameHeight - pitchHeight - topFrameOver;      
+    botfr = bottomFrameHeight - bottomFrameOver; 
+    kaptonHeight = fullHeight + botfr;
+  } else {
+    // ring 3
+    topfr = topFrameHeight - topFrameOver;      
+    botfr = bottomFrameHeight - bottomFrameOver - pitchHeight; 
+    kaptonHeight = fullHeight + topfr;
+  }
+
+  double sideFrameHeight = fullHeight + pitchHeight + botfr + topfr; 
+  double zCenter     = 0.5 * (sideFrameHeight+boxFrameHeight); 
+
+  // (Re) Compute the envelope for positioning Cool Inserts and Side Spacers (Alumina).
+  double  sidfr = sideFrameWidth - sideFrameOver;      // width of side frame on the sides of module 
+  double  dxbot = 0.5*dlBottom + sidfr;
+  double  dxtop = 0.5*dlTop + sidfr;
+  double  dxtopenv, dxbotenv;           // top/bot width of the module envelope trap
+
+  double tanWafer=(dxtop-dxbot)/fullHeight; // 
+  double thetaWafer = atan(tanWafer);       // 1/2 of the wafer wedge angle
+
+  if (dlHybrid > dlTop) {
+    // ring 1, ring 2
+    dxtopenv = dxbot + (dxtop-dxbot)*(fullHeight+pitchHeight+topfr+hybridHeight)/fullHeight;
+    dxbotenv = dxtop - (dxtop-dxbot)*(fullHeight+botfr)/fullHeight;
+  } else {
+    // ring 3
+    dxtopenv = dxbot + (dxtop-dxbot)*(fullHeight+topfr)/fullHeight;
+    dxbotenv = dxbot;
+  }
+
+  double tanEnv=(dxtopenv-dxbotenv)/(sideFrameHeight+boxFrameHeight); // 1/2 of the envelope wedge angle
+
+  double xpos=0; double ypos=0; double zpos=0;
+
+  // Cool Inserts
+  name = coolName;
+  ypos = coolZ;
+
+  double     zCool;
+  int        copy=0;
+  Rotation3D rot; // should be different for different elements
+  Volume     parentVol = ns.volume(parentName);
+  
+  for (int j1=0; j1<2; j1++){  // j1: 0 inserts below the hybrid
+    //     1 inserts below the wafer
+    if (dlHybrid > dlTop) {
+      zCool = sideFrameHeight+boxFrameHeight-coolRadShift[j1];  
+      if ( j1==0 ) zCool -= 0.5*coolHeight; 
+    } else {
+      zCool = coolRadShift[j1];  
+      if ( j1==0 ) zCool += 0.5*coolHeight; 
+    }
+
+    if ( j1==0 ) {
+      xpos = -0.5*(boxFrameWidth-coolWidth);
+    } else {   
+      xpos = -(dxbotenv+(zCool-0.5*coolHeight)*tanEnv-0.5*coolWidth);      
+    }
+		   
+    zpos = zCool-zCenter;
+    for ( int j2=0; j2<2; j2++) {
+      copy++;
+      parentVol.placeVolume(ns.volume(name),Position(xpos,ypos,zpos));
+      LogDebug("TIDGeom") << name <<" number "
+                          << copy << " positioned in " << parentName << " at "
+                          << Position(xpos,ypos,zpos) << " with " << rot;
+      xpos = -xpos;
+    }
+  }
+
+  if ( doSpacers ) {
+    // Bottom Spacers (Alumina)
+    name = botSpacersName;
+    ypos = botSpacersZ;
+    double zBotSpacers;
+    if (dlHybrid > dlTop) {
+      zBotSpacers = sideFrameHeight+boxFrameHeight-0.5*botSpacersHeight;
+    } else {
+      zBotSpacers = 0.5*botSpacersHeight;
+    }
+    zpos = zBotSpacers - zCenter; 
+    parentVol.placeVolume(ns.volume(name),Position(0.0,ypos,zpos));
+    LogDebug("TIDGeom") << name <<" number "
+                        << 1 << " positioned in " << parentName << " at "
+                        << Position(0.0,ypos,zpos) << " with no rotation";       	
+    // Side Spacers (Alumina)
+    name = sidSpacersName;
+    ypos = sidSpacersZ;
+    double zSideSpacers;
+    if (dlHybrid > dlTop) {
+      zSideSpacers = sideFrameHeight+boxFrameHeight-sidSpacersRadShift;
+    } else {
+      zSideSpacers = sidSpacersRadShift;
+    }
+    zpos = zSideSpacers - zCenter; 
+    
+    copy=0;
+    xpos = dxbotenv+(zSideSpacers-0.5*sidSpacersHeight)*tanEnv-0.5*sidSpacersWidth+sideFrameOver;      
+
+    double phiy = 0e0, phiz = 0e0;
+    double phix=0.*CLHEP::deg; phiy=90.*CLHEP::deg; phiz=0.*CLHEP::deg;
+
+    double thetax = 0e0;
+    double thetay = 90.*CLHEP::deg;
+    double thetaz = thetaWafer;
+
+    for (int j1=0; j1<2; j1++){
+      copy++; 
+      // tilt Side Spacers (parallel to Side Frame)
+      thetax = 90.*CLHEP::deg+thetaz;
+      rot = make_rotation3D(thetax, phix, thetay, phiy, thetaz, phiz);
+      parentVol.placeVolume(ns.volume(name),Transform3D(rot,Position(xpos,ypos,zpos)));
+      LogDebug("TIDGeom") << name <<" number " << copy << " positioned in " << parentName << " at "
+                          << Position(xpos,ypos,zpos) << " with " << rot;
+      xpos   = -xpos;
+      thetaz = -thetaz;
+    }
+  }
+
+  // Loop over detectors to be placed
+  for (int k = 0; k < detectorN; k++) {
+    // Wafer
+    name = waferName[k];
+    xpos=0; 
+    ypos = waferZ[k];
+    double zWafer;
+    if (dlHybrid > dlTop) {
+      zWafer = botfr+0.5*fullHeight;
+    } else {
+      zWafer = boxFrameHeight+botfr+pitchHeight+0.5*fullHeight;
+    }
+    zpos = zWafer - zCenter;
+    Position tran(xpos, ypos, zpos);
+    rot = ns.rotation(waferRot[k]);
+    
+    parentVol.placeVolume(ns.volume(name),Transform3D(rot,tran)); // copyNr=k+1
+    LogDebug("TIDGeom") << name <<" number " << k+1 << " positioned in " << parentName << " at "
+                        << tran << " with " << rot;
+
+    //Pitch Adapter
+    name = pitchName[k];
+    if (k == 0) {
+      xpos = 0;
+    } else {
+      xpos = 0.5 * fullHeight * sin(detTilt);
+    }
+    ypos = pitchZ[k];
+    double zPitch;
+    if (dlHybrid > dlTop) {
+      zPitch = botfr+fullHeight+0.5*pitchHeight;
+    } else {
+      zPitch = boxFrameHeight+botfr+0.5*pitchHeight;
+    }
+    zpos = zPitch - zCenter;
+    rot = ns.rotation(pitchRot[k]);
+    tran = Position(xpos,ypos,zpos);
+    parentVol.placeVolume(ns.volume(name),Transform3D(rot,tran)); // copyNr=k+1
+    LogDebug("TIDGeom") << name <<" number " << k+1 << " positioned in " << parentName << " at "
+                        << tran << " with " << rot;
+
+    // Hybrid 
+    name = hybridName;
+    ypos = hybridZ[k];
+    double zHybrid;
+    if (dlHybrid > dlTop) {
+      zHybrid = botfr+fullHeight+pitchHeight+0.5*hybridHeight;
+    } else {
+      zHybrid = 0.5*hybridHeight;
+    }
+    zpos = zHybrid - zCenter;
+    tran = Position(0,ypos,zpos);
+    parentVol.placeVolume(ns.volume(name),tran); // copyNr=k+1
+    LogDebug("TIDGeom") << name <<" number "  << k+1 << " positioned in " << parentName << " at " << tran;
+
+    // Box frame
+    name = boxFrameName;
+    ypos = boxFrameZ[k];
+    double zBoxFrame;
+    if (dlHybrid > dlTop) {
+      zBoxFrame = sideFrameHeight+0.5*boxFrameHeight;
+    } else {
+      zBoxFrame = 0.5*boxFrameHeight;
+    }
+    zpos = zBoxFrame - zCenter;
+    tran = Position(0,ypos,zpos);
+    parentVol.placeVolume(ns.volume(name),tran); // copyNr=k+1
+    LogDebug("TIDGeom") << name <<" number " << k+1 << " positioned in " << parentName << " at " << tran;
+
+    // Side frame
+    name = sideFrameName[k];
+    ypos = sideFrameZ[k];
+    double zSideFrame;
+    if (dlHybrid > dlTop) {
+      zSideFrame = 0.5*sideFrameHeight;
+    } else {
+      zSideFrame = boxFrameHeight+0.5*sideFrameHeight;
+    }
+    zpos = zSideFrame-zCenter;
+    rot  = ns.rotation(sideFrameRot[k]);
+    tran = Position(0,ypos,zpos);
+    parentVol.placeVolume(ns.volume(name),Transform3D(rot,tran));
+    LogDebug("TIDGeom") << name <<" number "
+                        << k+1 << " positioned in " << parentName << " at "
+                        << tran << " with " << rot;
+    // Kapton circuit
+    name = kaptonName[k];
+    ypos = kaptonZ[k];
+    double zKapton;
+    double kaptonExtraHeight=0;
+    if (dlHybrid > dlTop) {
+      if ( k == 1 ) kaptonExtraHeight = dlTop*sin(detTilt)-fullHeight*(1-cos(detTilt));
+      kaptonExtraHeight = 0.5*fabs(kaptonExtraHeight);
+      zKapton = 0.5*(kaptonHeight+kaptonExtraHeight);
+    } else {
+      if ( k == 1 ) kaptonExtraHeight = dlBottom*sin(detTilt)-fullHeight*(1-cos(detTilt));
+      kaptonExtraHeight = 0.5*fabs(kaptonExtraHeight);
+      zKapton = boxFrameHeight+sideFrameHeight-0.5*(kaptonHeight+kaptonExtraHeight);
+    }
+    zpos = zKapton-zCenter;
+    rot  = ns.rotation(kaptonRot[k]);
+    tran = Position(0,ypos,zpos);
+    parentVol.placeVolume(ns.volume(name),Transform3D(rot,tran));
+    LogDebug("TIDGeom") << name <<" number "
+                        << k+1 << " positioned in " << parentName << " at "
+                        << tran << " with " << rot;
+  }
+  LogDebug("TIDGeom") << "<<== End of DDTIDModulePosAlgo positioning ...";
+  return 1;
+}
+
+// first argument is the type from the xml file
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTIDModulePosAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTIDRingAlgo.cpp b/DDCMS/src/plugins/DDTIDRingAlgo.cpp
index 3437688a8..d646bd04d 100644
--- a/DDCMS/src/plugins/DDTIDRingAlgo.cpp
+++ b/DDCMS/src/plugins/DDTIDRingAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream  str;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
   Volume         mother     = ns.volume(args.parentName());
@@ -46,20 +41,16 @@ static long algorithm(Detector& /* description */,
   double         sICC       = args.value<double>("ICCShift");            //Shift of ICC       per to R
   vector<double> zICC       = args.value<vector<double> >("ICCZ");        //                   in Z
 
-  str << "Parent " << mother.name() 
-      << "\tModule " << moduleName[0] << ", "
-      << moduleName[1] << "\tICC " << iccName 
-      << "\tNameSpace " << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str);
-
-  str << "Parameters for positioning--"
-      << " StartAngle " << startAngle/CLHEP::deg
-      << " Copy Numbers " << number << " Modules at R " 
-      << rModule << " Z " << zModule[0] << ", " << zModule[1] 
-      << " ICCs at R " << rICC << " Z " << zICC[0] << ", " 
-      << zICC[1]; 
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str);
-
+  LogDebug("TIDGeom") << "Parent " << mother.name() 
+                      << "\tModule " << moduleName[0] << ", "
+                      << moduleName[1] << "\tICC " << iccName 
+                      << "\tNameSpace " << ns.name;
+  LogDebug("TIDGeom") << "Parameters for positioning--"
+                      << " StartAngle " << startAngle/CLHEP::deg
+                      << " Copy Numbers " << number << " Modules at R " 
+                      << rModule << " Z " << zModule[0] << ", " << zModule[1] 
+                      << " ICCs at R " << rICC << " Z " << zICC[0] << ", " 
+                      << zICC[1]; 
   double theta = 90.*CLHEP::deg;
   double phiy  = 0.*CLHEP::deg;
   double dphi  = CLHEP::twopi/number;
@@ -95,11 +86,9 @@ static long algorithm(Detector& /* description */,
     Rotation3D  rotation = make_rotation3D(theta, phix, thetay, phiy, theta, phiz);
     // int copyNr = i+1;
     /* PlacedVolume pv = */ mother.placeVolume(module, Transform3D(rotation,trmod));
-    str << module.name() << " number "
-        << i+1 << " positioned in " << mother.name() << " at "
-        << trmod << " with " << rotation;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str);
-
+    LogDebug("TIDGeom") << module.name() << " number "
+                        << i+1 << " positioned in " << mother.name() << " at "
+                        << trmod << " with " << rotation;
     //Now the ICC
     if (i%2 == 0 ) {
       zpos = zICC[0];
@@ -113,13 +102,12 @@ static long algorithm(Detector& /* description */,
     // int copyNr = i+1;
     Position tricc(xpos, ypos, zpos);
     /* PlacedVolume pv = */ mother.placeVolume(icc, Transform3D(rotation,tricc));
-    str << iccName << " number " 
-        << i+1 << " positioned in " << mother.name() << " at "
-        << tricc << " with " << rotation;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTIDRingAlgo",str);
+    LogDebug("TIDGeom") << iccName << " number " 
+                        << i+1 << " positioned in " << mother.name() << " at "
+                        << tricc << " with " << rotation;
   }
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTIDRingAlgo___DISABLED,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTIDRingAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTOBAxCableAlgo.cpp b/DDCMS/src/plugins/DDTOBAxCableAlgo.cpp
new file mode 100644
index 000000000..ed8042acb
--- /dev/null
+++ b/DDCMS/src/plugins/DDTOBAxCableAlgo.cpp
@@ -0,0 +1,139 @@
+//==========================================================================
+//  AIDA Detector description implementation 
+//--------------------------------------------------------------------------
+// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+// All rights reserved.
+//
+// For the licensing terms see $DD4hepINSTALL/LICENSE.
+// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+//
+// Author     : M.Frank
+//
+//==========================================================================
+//
+// Specialized generic detector constructor
+// 
+//==========================================================================
+
+// Framework include files
+#include "DD4hep/DetFactoryHelper.h"
+#include "DDCMS/DDCMSPlugins.h"
+
+using namespace std;
+using namespace dd4hep;
+using namespace dd4hep::cms;
+
+static long algorithm(Detector& /* description */,
+                      ParsingContext& ctxt,
+                      xml_h e,
+                      SensitiveDetector& /* sens */)
+{
+  Namespace      ns(ctxt, e, true);
+  AlgoArguments  args(ctxt, e);
+  vector<string> sectorNumber = args.vecStr("SectorNumber");         // Id. Number of the sectors
+  double sectorRin = args.dble("SectorRin");                         // Inner radius of service sectors  
+  double sectorRout = args.dble("SectorRout");                       // Outer radius of service sectors  
+  double sectorDz = args.dble("SectorDz");                           // Sector half-length
+  double sectorDeltaPhi_B = args.dble("SectorDeltaPhi_B");           // Sector B phi width [A=C=0.5*(360/sectors)]
+  vector<double> sectorStartPhi = args.vecDble("SectorStartPhi");    // Starting phi for the service sectors
+  vector<string> sectorMaterial_A = args.vecStr("SectorMaterial_A"); // Material for the A sectors
+  vector<string> sectorMaterial_B = args.vecStr("SectorMaterial_B"); // Material for the B sectors
+  vector<string> sectorMaterial_C = args.vecStr("SectorMaterial_C"); // Material for the C sectors
+
+
+  for (int i=0; i<(int)(sectorNumber.size()); i++)
+    LogDebug("TOBGeom") << "DDTOBAxCableAlgo debug: sectorNumber[" << i
+                        << "] = " << sectorNumber[i];
+  
+  LogDebug("TOBGeom") << "DDTOBAxCableAlgo debug: Axial Service Sectors half-length " << sectorDz
+                      << "\tRin " << sectorRin << "\tRout = " << sectorRout
+                      << "\tPhi of sectors position:";
+  for (int i=0; i<(int)(sectorNumber.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tPhi = " << sectorStartPhi[i];
+  LogDebug("TOBGeom") << "DDTOBAxCableAlgo debug: List of materials for the sectors/3 parts";
+  //
+  LogDebug("TOBGeom") << "DDTOBAxCableAlgo debug: Sector/3 A";
+  for (int i=0; i<(int)(sectorNumber.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tsectorMaterial_A = " << sectorMaterial_A[i];
+  //
+  LogDebug("TOBGeom") << "DDTOBAxCableAlgo debug: Sector/3 B";
+  for (int i=0; i<(int)(sectorNumber.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tsectorMaterial_B = " << sectorMaterial_B[i];
+  //
+  LogDebug("TOBGeom") << "DDTOBAxCableAlgo debug: Sector/3 C";
+  for (int i=0; i<(int)(sectorNumber.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tsectorMaterial_C = " << sectorMaterial_C[i];
+
+  string tubsName = args.parentName();
+  Volume tubsVol = ns.volume(tubsName);
+  // Loop over sectors (sectorNumber vector)
+  for (int i=0; i<(int)(sectorNumber.size()); i++) {    
+    Solid solid;
+    string  name;
+    double  dz, rin, rout, startphi, widthphi, deltaphi;
+    
+    // Axial Services
+    // Each sector is divided in 3 parts from phi[i] to phi[i+1]
+    
+    widthphi = ( (i+1 == (int)(sectorStartPhi.size())) ?
+                 (sectorStartPhi[0]+CLHEP::twopi)-sectorStartPhi[i] :
+                 (sectorStartPhi[i+1]-sectorStartPhi[i]) );
+    // First Part: A
+    name  = "TOBAxService_" + sectorNumber[i] + "A";
+    dz   = sectorDz;
+    rin  = sectorRin;
+    rout = sectorRout;
+    startphi = sectorStartPhi[i];
+    deltaphi = 0.5 * (widthphi - sectorDeltaPhi_B);    
+    solid = ns.addSolid(name,Tube(rin, rout, dz, startphi, deltaphi));
+    LogDebug("TOBGeom") << solid.name() << " Tubs made of " 
+                        << sectorMaterial_A[i] << " from " 
+                        << startphi/CLHEP::deg << " to "
+                        << (startphi+deltaphi)/CLHEP::deg << " with Rin " 
+                        << rin << " Rout " << rout << " ZHalf " << dz;
+    Volume sectorLogic = ns.addVolume(Volume(name,solid, ns.material(sectorMaterial_A[i])));
+    tubsVol.placeVolume(sectorLogic); // copyNr: i+1
+    LogDebug("TOBGeom") << sectorLogic.name() << " number " << i+1 
+                        << " positioned in " << tubsName 
+                        << " with no translation and no rotation";
+
+    // Second Part: B
+    name  = "TOBAxService_" + sectorNumber[i] + "B";
+    startphi += deltaphi;
+    deltaphi = sectorDeltaPhi_B;
+    solid = ns.addSolid(name, Tube(rin, rout, dz, startphi, deltaphi));
+    LogDebug("TOBGeom") << solid.name() << " Tubs made of " 
+                        << sectorMaterial_B[i] << " from " << startphi/CLHEP::deg
+                        << " to " << (startphi+deltaphi)/CLHEP::deg
+                        << " with Rin " << rin << " Rout " << rout 
+                        << " ZHalf " << dz;
+    
+    sectorLogic = ns.addVolume(Volume(name, solid, ns.material(sectorMaterial_B[i])));
+    tubsVol.placeVolume(sectorLogic); // copyNr: i+1
+    LogDebug("TOBGeom") << sectorLogic.name() << " number " << i+1 
+                        << " positioned in " << tubsName 
+                        << " with no translation and no rotation";
+    
+    // Third Part: C
+    name  = "TOBAxService_" + sectorNumber[i] + "C";
+    startphi += deltaphi;
+    deltaphi = 0.5 * (widthphi - sectorDeltaPhi_B);    
+    solid = ns.addSolid(name,Tube(rin, rout, dz, startphi, deltaphi));
+    LogDebug("TOBGeom") << solid.name() << " Tubs made of " 
+                        << sectorMaterial_C[i] << " from " 
+                        << startphi/CLHEP::deg << " to " 
+                        << (startphi+deltaphi)/CLHEP::deg << " with Rin " 
+                        << rin << " Rout " << rout << " ZHalf " << dz;
+    sectorLogic = ns.addVolume(Volume(name, solid, ns.material(sectorMaterial_C[i])));
+    tubsVol.placeVolume(sectorLogic); // copyNr: i+1
+    LogDebug("TOBGeom") << sectorLogic.name() << " number " << i+1 
+                        << " positioned in " << tubsName 
+                        << " with no translation and no rotation";
+  }
+  LogDebug("TOBGeom") << "<<== End of DDTOBAxCableAlgo construction ...";
+  return 1;
+}
+
+// first argument is the type from the xml file
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTOBAxCableAlgo,algorithm)
+
diff --git a/DDCMS/src/plugins/DDTOBRadCableAlgo.cpp b/DDCMS/src/plugins/DDTOBRadCableAlgo.cpp
new file mode 100644
index 000000000..96ed78ab9
--- /dev/null
+++ b/DDCMS/src/plugins/DDTOBRadCableAlgo.cpp
@@ -0,0 +1,209 @@
+//==========================================================================
+//  AIDA Detector description implementation 
+//--------------------------------------------------------------------------
+// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+// All rights reserved.
+//
+// For the licensing terms see $DD4hepINSTALL/LICENSE.
+// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+//
+// Author     : M.Frank
+//
+//==========================================================================
+//
+// Specialized generic detector constructor
+// 
+//==========================================================================
+
+// Framework include files
+#include "DD4hep/DetFactoryHelper.h"
+#include "DDCMS/DDCMSPlugins.h"
+
+using namespace std;
+using namespace dd4hep;
+using namespace dd4hep::cms;
+
+static long algorithm(Detector& /* description */,
+                      ParsingContext& ctxt,
+                      xml_h e,
+                      SensitiveDetector& /* sens */)
+{
+  Namespace      ns(ctxt, e, true);
+  AlgoArguments  args(ctxt, e);
+  double         diskDz = args.dble("DiskDz");               // Disk  thickness
+  double         rMax = args.dble("RMax");                   // Maximum radius
+  double         cableT = args.dble("CableT");               // Cable thickness
+  vector<double> rodRin = args.vecDble("RodRin");            // Radii for inner rods
+  vector<double> rodRout = args.vecDble("RodRout");          // Radii for outer rods
+  vector<string> cableM = args.vecStr("CableMaterial");      // Materials for cables
+  double         connW = args.dble("ConnW");                 // Connector width
+  double         connT = args.dble("ConnT");                 // Connector thickness
+  vector<string> connM = args.vecStr("ConnMaterial");        // Materials for connectors
+  vector<double> coolR1 = args.vecDble("CoolR1");            // Radii for cooling manifold
+  vector<double> coolR2 = args.vecDble("CoolR2");            // Radii for return cooling manifold
+  double         coolRin = args.dble("CoolRin");             // Inner radius of cooling manifold
+  double         coolRout1 = args.dble("CoolRout1");         // Outer radius of cooling manifold
+  double         coolRout2 = args.dble("CoolRout2");         // Outer radius of cooling fluid in cooling manifold
+  double         coolStartPhi1 = args.dble("CoolStartPhi1"); // Starting Phi of cooling manifold
+  double         coolDeltaPhi1 = args.dble("CoolDeltaPhi1"); // Phi Range of cooling manifold
+  double         coolStartPhi2 = args.dble("CoolStartPhi2"); // Starting Phi of cooling fluid in of cooling manifold
+  double         coolDeltaPhi2 = args.dble("CoolDeltaPhi2"); // Phi Range of of cooling fluid in cooling manifold
+  string         coolM1 = args.str("CoolMaterial1");         // Material for cooling manifold
+  string         coolM2 = args.str("CoolMaterial2");         // Material for cooling fluid
+  vector<string> names = args.vecStr("RingName");            // Names of layers
+
+  string parentName = args.parentName();
+  LogDebug("TOBGeom") << "DDTOBRadCableAlgo debug: Parent " << parentName << " NameSpace " << ns.name;
+  LogDebug("TOBGeom") << "DDTOBRadCableAlgo debug: Disk Half width " << diskDz 
+                      << "\tRMax " << rMax  << "\tCable Thickness " << cableT 
+                      << "\tRadii of disk position and cable materials:";
+  for (int i=0; i<(int)(rodRin.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tRin = " << rodRin[i] 
+                        << "\tRout = " << rodRout[i] << "  " << cableM[i];
+  LogDebug("TOBGeom") << "DDTOBRadCableAlgo debug: Connector Width = " 
+                      << connW << "\tThickness = " << connT 
+                      << "\tMaterials: ";
+  for (int i=0; i<(int)(connM.size()); i++)
+    LogDebug("TOBGeom") << "\tconnM[" << i << "] = " << connM[i];
+  LogDebug("TOBGeom") << "DDTOBRadCableAlgo debug: Cool Manifold Torus Rin = " << coolRin
+                      << " Rout = " << coolRout1
+                      << "\t Phi start = " << coolStartPhi1 << " Phi Range = " << coolDeltaPhi1
+                      << "\t Material = " << coolM1
+                      << "\t Radial positions:";
+  for (int i=0; i<(int)(coolR1.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i <<"]\tR = " << coolR1[i];
+  for (int i=0; i<(int)(coolR2.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i <<"]\tR = " << coolR2[i];
+  LogDebug("TOBGeom") << "DDTOBRadCableAlgo debug: Cooling Fluid Torus Rin = " << coolRin
+                      << " Rout = " << coolRout2
+                      << "\t Phi start = " << coolStartPhi2 << " Phi Range = " << coolDeltaPhi2
+                      << "\t Material = " << coolM2
+                      << "\t Radial positions:";
+  for (int i=0; i<(int)(coolR1.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i <<"]\tR = " << coolR1[i];
+  for (int i=0; i<(int)(coolR2.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i <<"]\tR = " << coolR2[i];
+  for (int i=0; i<(int)(names.size()); i++)
+    LogDebug("TOBGeom") << "DDTOBRadCableAlgo debug: names[" << i	<< "] = " << names[i];
+
+  Volume disk = ns.volume(parentName);  
+  // Loop over sub disks
+  for (int i=0; i<(int)(names.size()); i++) {
+    Solid solid;
+    string  name;
+    double  dz, rin, rout;
+    
+    // Cooling Manifolds
+    name  = "TOBCoolingManifold" + names[i] + "a";
+    dz    = coolRout1;
+    solid = ns.addSolid(name,Torus(coolRin,coolRout1,coolR1[i],coolStartPhi1,coolDeltaPhi1));
+    LogDebug("TOBGeom") << name << " Torus made of " 
+                        << coolM1 << " from " << coolStartPhi1/CLHEP::deg 
+                        << " to " << (coolStartPhi1+coolDeltaPhi1)/CLHEP::deg 
+                        << " with Rin " << coolRin << " Rout " << coolRout1
+                        << " R torus " << coolR1[i];
+    Volume coolManifoldLogic_a = ns.addVolume(Volume(name,solid,ns.material(coolM1)));
+    Position r1(0, 0, (dz-diskDz));
+    disk.placeVolume(coolManifoldLogic_a,r1);  // i+1
+    LogDebug("TOBGeom") << name << " number " << i+1 
+                        << " positioned in " << disk.name() << " at " << r1
+                        << " with no rotation";
+
+    // Cooling Fluid (in Cooling Manifold)
+    name  = "TOBCoolingManifoldFluid" + names[i] + "a";
+    solid = ns.addSolid(name,Torus(coolRin,coolRout2,coolR1[i],coolStartPhi2,coolDeltaPhi2));
+    LogDebug("TOBGeom") << name << " Torus made of " 
+                        << coolM2 << " from " << coolStartPhi2/CLHEP::deg 
+                        << " to " << (coolStartPhi2+coolDeltaPhi2)/CLHEP::deg 
+                        << " with Rin " << coolRin << " Rout " << coolRout2
+                        << " R torus " << coolR1[i];
+    Volume coolManifoldFluidLogic_a = ns.addVolume(Volume(name,solid,ns.material(coolM2)));
+    disk.placeVolume(coolManifoldFluidLogic_a); // i+1
+    LogDebug("TOBGeom") << name << " number " << i+1 
+                        << " positioned in " << coolM2
+                        << " with no translation and no rotation";
+
+    name  = "TOBCoolingManifold" + names[i] + "r";
+    dz    = coolRout1;
+    solid = ns.addSolid(name,Torus(coolRin,coolRout1,coolR2[i],coolStartPhi1,coolDeltaPhi1));
+    LogDebug("TOBGeom") << name << " Torus made of " 
+                        << coolM1 << " from " << coolStartPhi1/CLHEP::deg 
+                        << " to " << (coolStartPhi1+coolDeltaPhi1)/CLHEP::deg 
+                        << " with Rin " << coolRin << " Rout " << coolRout1
+                        << " R torus " << coolR2[i];
+    Volume coolManifoldLogic_r = ns.addVolume(Volume(name,solid,ns.material(coolM1)));
+    r1 = Position(0, 0, (dz-diskDz));
+    disk.placeVolume(coolManifoldLogic_r, r1); // i+1
+    LogDebug("TOBGeom") << name << " number " << i+1 
+                        << " positioned in " << disk.name() << " at " << r1
+                        << " with no rotation";
+
+    // Cooling Fluid (in Cooling Manifold)
+    name  = "TOBCoolingManifoldFluid" + names[i] + "r";
+    solid = ns.addSolid(name,Torus(coolRin,coolRout2,coolR2[i],coolStartPhi2,coolDeltaPhi2));
+    LogDebug("TOBGeom") << name << " Torus made of " 
+                        << coolM2 << " from " << coolStartPhi2/CLHEP::deg 
+                        << " to " << (coolStartPhi2+coolDeltaPhi2)/CLHEP::deg 
+                        << " with Rin " << coolRin << " Rout " << coolRout2
+                        << " R torus " << coolR2[i];
+    Volume coolManifoldFluidLogic_r = ns.addVolume(Volume(name, solid, ns.material(coolM2)));
+    disk.placeVolume(coolManifoldFluidLogic_r); // i+1
+    LogDebug("TOBGeom") << name << " number " << i+1 
+                        << " positioned in " << coolM2
+                        << " with no translation and no rotation";
+    
+    // Connectors
+    name  = "TOBConn" + names[i];
+    dz    = 0.5*connT;
+    rin   = 0.5*(rodRin[i]+rodRout[i])-0.5*connW;
+    rout  = 0.5*(rodRin[i]+rodRout[i])+0.5*connW;
+    solid = ns.addSolid(name,Tube(rin, rout, dz));
+    LogDebug("TOBGeom") << name << " Tubs made of " 
+                        << connM[i] << " from 0 to " << CLHEP::twopi/CLHEP::deg
+                        << " with Rin " << rin << " Rout " << rout 
+                        << " ZHalf " << dz;
+    Volume connLogic = ns.addVolume(Volume(name, solid, ns.material(connM[i])));
+    Position r2(0, 0, (dz-diskDz));
+    disk.placeVolume(connLogic,r2); // i+1
+    LogDebug("TOBGeom") << name << " number " << i+1 
+                        << " positioned in " << disk.name() << " at " << r2 
+                        << " with no rotation";
+
+    // Now the radial cable
+    name  = "TOBRadServices" + names[i];
+    rin   = 0.5*(rodRin[i]+rodRout[i]);
+    rout = ( i+1 == (int)(names.size()) ? rMax : 0.5*(rodRin[i+1]+rodRout[i+1]));
+    vector<double> pgonZ;
+    pgonZ.emplace_back(-0.5*cableT); 
+    pgonZ.emplace_back(cableT*(rin/rMax-0.5));
+    pgonZ.emplace_back(0.5*cableT);
+    vector<double> pgonRmin;
+    pgonRmin.emplace_back(rin); 
+    pgonRmin.emplace_back(rin); 
+    pgonRmin.emplace_back(rin); 
+    vector<double> pgonRmax;
+    pgonRmax.emplace_back(rout); 
+    pgonRmax.emplace_back(rout); 
+    pgonRmax.emplace_back(rout); 
+    solid = ns.addSolid(name,Polycone(0, CLHEP::twopi, pgonRmin, pgonRmax, pgonZ));
+    LogDebug("TOBGeom") << name <<" Polycone made of "
+                        << cableM[i] << " from 0 to " 
+                        << CLHEP::twopi/CLHEP::deg << " and with " 
+                        << pgonZ.size() << " sections";
+    for (int ii = 0; ii < (int)(pgonZ.size()); ii++)
+      LogDebug("TOBGeom") << "\t[" << ii << "]\tZ = " << pgonZ[ii] 
+                          << "\tRmin = " << pgonRmin[ii] << "\tRmax = " << pgonRmax[ii];
+    Volume cableLogic = ns.addVolume(Volume(name, solid, ns.material(cableM[i])));
+    Position r3(0, 0, (diskDz-(i+0.5)*cableT));
+    disk.placeVolume(cableLogic, r3); // i+1
+    LogDebug("TOBGeom") << name << " number " <<i+1
+                        << " positioned in " << disk.name() << " at " << r3
+                        << " with no rotation";
+  }
+  LogDebug("TOBGeom") << "<<== End of DDTOBRadCableAlgo construction ...";
+  return 1;
+}
+
+// first argument is the type from the xml file
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTOBRadCableAlgo,algorithm)
+
diff --git a/DDCMS/src/plugins/DDTOBRodAlgo.cpp b/DDCMS/src/plugins/DDTOBRodAlgo.cpp
index 94642942e..50d52780f 100644
--- a/DDCMS/src/plugins/DDTOBRodAlgo.cpp
+++ b/DDCMS/src/plugins/DDTOBRodAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,15 +28,282 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
-  Volume         mother     = ns.volume(args.parentName());
+  string         parentName    = args.parentName();
+  string         central       = args.str("CentralName");        // Name of the central piece
+					      
+  double         shift         = args.dble("Shift");          // Shift in z
+  vector<string> sideRod       = args.vecStr("SideRodName");        // Name of the Side Rod
+  vector<double> sideRodX      = args.vecDble("SideRodX");       // x-positions
+  vector<double> sideRodY      = args.vecDble("SideRodY");       // y-positions
+  vector<double> sideRodZ      = args.vecDble("SideRodZ");       // z-positions
+  string         endRod1       = args.str("EndRod1Name");        // Name of the End Rod of type 1
+  vector<double> endRod1Y      = args.vecDble("EndRod1Y");       // y-positions
+  vector<double> endRod1Z      = args.vecDble("EndRod1Z");       // z-positions
+  string         endRod2       = args.str("EndRod2Name");        // Name of the End Rod of type 2
+  double         endRod2Y      = args.dble("EndRod2Y");          // y-position
+  double         endRod2Z      = args.dble("EndRod2Z");          // z-position
+					      
+  string         cable         = args.str("CableName");          // Name of the Mother cable
+  double         cableZ        = args.dble("CableZ");            // z-position
+					      
+  string         clamp         = args.str("ClampName");          // Name of the clamp
+  vector<double> clampX        = args.vecDble("ClampX");         // x-positions
+  vector<double> clampZ        = args.vecDble("ClampZ");         // z-positions
+  string         sideCool      = args.str("SideCoolName");       // Name of the Side Cooling Tube
+  vector<double> sideCoolX     = args.vecDble("SideCoolX");      // x-positions
+  vector<double> sideCoolY     = args.vecDble("SideCoolY");      // y-positions to avoid overlap with the module (be at the same level of EndCool)
+  vector<double> sideCoolZ     = args.vecDble("SideCoolZ");      // z-positions
+  string         endCool       = args.str("EndCoolName");        // Name of the End Cooling Tube
+  string         endCoolRot    = args.str("EndCoolRot");         // Rotation matrix name for end cool
+  double         endCoolY      = args.dble("EndCoolY");          // y-position to avoid overlap with the module
+  double         endCoolZ      = args.dble("EndCoolZ");          // z-position
+					      
+  string         optFibre      = args.str("OptFibreName");       // Name of the Optical Fibre
+  vector<double> optFibreX     = args.vecDble("optFibreX");      // x-positions
+  vector<double> optFibreZ     = args.vecDble("optFibreZ");      // z-positions
+					      
+  string         sideClamp1    = args.str("SideClamp1Name");     // Name of the side clamp of type 1
+  vector<double> sideClampX    = args.vecDble("SideClampX");     // x-positions
+  vector<double> sideClamp1DZ  = args.vecDble("SideClamp1DZ");   // Delta(z)-positions
+  string         sideClamp2    = args.str("SideClamp2Name");     // Name of the side clamp of type 2
+  vector<double> sideClamp2DZ  = args.vecDble("SideClamp2DZ");   // Delta(z)-positions
+					      
+  string         module        = args.str("ModuleName");         // Name of the detector modules
+  vector<string> moduleRot     = args.vecStr("ModuleRot");      // Rotation matrix name for module
+  vector<double> moduleY       = args.vecDble("ModuleY");        // y-positions
+  vector<double> moduleZ       = args.vecDble("ModuleZ");        // z-positions
+  vector<string> connect       = args.vecStr("ICCName");;        // Name of the connectors
+  vector<double> connectY      = args.vecDble("ICCY");       // y-positions
+  vector<double> connectZ      = args.vecDble("ICCZ");       // z-positions
+					      
+  string         aohName       = args.str("AOHName");        // AOH name
+  vector<double> aohCopies     = args.vecDble("AOHCopies");      // AOH copies to be positioned on each ICC
+  vector<double> aohX          = args.vecDble("AOHx");           // AOH translation with respect small-ICC center (X)
+  vector<double> aohY          = args.vecDble("AOHy");           // AOH translation with respect small-ICC center (Y)
+  vector<double> aohZ          = args.vecDble("AOHz");           // AOH translation with respect small-ICC center (Z)
+
+  LogDebug("TOBGeom") << "Parent " << parentName << " Central " << central << " NameSpace "
+                      << ns.name << "\tShift " << shift;
+  for (int i=0; i<(int)(sideRod.size()); i++) {
+    LogDebug("TOBGeom") << sideRod[i] << " to be positioned " << sideRodX.size() 
+                        <<" times at y = " << sideRodY[i] << " z = " << sideRodZ[i] << " and x";
+    for (double j : sideRodX)
+      LogDebug("TOBGeom") << "\tsideRodX[" << i << "] = " << j;
+  }
+  LogDebug("TOBGeom") << endRod1 << " to be "
+                      << "positioned " << endRod1Y.size() << " times at";
+  for (int i=0; i<(int)(endRod1Y.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\ty = " << endRod1Y[i] 
+                        << "\tz = " << endRod1Z[i];
+  LogDebug("TOBGeom") << endRod2 << " to be "
+                      << "positioned at y = " << endRod2Y << " z = " 
+                      << endRod2Z;
+  LogDebug("TOBGeom") << cable << " to be "
+                      << "positioned at z = " << cableZ;
+  LogDebug("TOBGeom") << clamp << " to be "
+                      << "positioned " << clampX.size() << " times at";
+  for (int i=0; i<(int)(clampX.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tx = " << clampX[i] << "\tz = "
+                        << clampZ[i];
+  LogDebug("TOBGeom") << sideCool << " to be "
+                      << "positioned " << sideCoolX.size() << " times at";
+  for (int i=0; i<(int)(sideCoolX.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tx = " << sideCoolX[i]
+                        << "\ty = " << sideCoolY[i]
+                        << "\tz = " << sideCoolZ[i];
+  LogDebug("TOBGeom") << endCool <<" to be "
+                      << "positioned with " << endCoolRot << " rotation at"
+                      << " y = " << endCoolY
+                      << " z = " << endCoolZ;
+  LogDebug("TOBGeom") << optFibre << " to be "
+                      << "positioned " << optFibreX.size() << " times at";
+  for (int i=0; i<(int)(optFibreX.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tx = " << optFibreX[i] 
+                        << "\tz = " << optFibreZ[i];
+  LogDebug("TOBGeom") << sideClamp1 << " to be "
+                      << "positioned " << sideClampX.size() << " times at";
+  for (int i=0; i<(int)(sideClampX.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tx = " << sideClampX[i] 
+                        << "\tdz = " << sideClamp1DZ[i];
+  LogDebug("TOBGeom") << sideClamp2 << " to be "
+                      << "positioned " << sideClampX.size() << " times at";
+  for (int i=0; i<(int)(sideClampX.size()); i++)
+    LogDebug("TOBGeom") << "\t[" << i << "]\tx = " << sideClampX[i]
+                        << "\tdz = " << sideClamp2DZ[i];
+  LogDebug("TOBGeom") << "DDTOBRodAlgo debug:\t" << module <<" positioned "
+                      << moduleRot.size() << " times";
+  for (int i=0; i<(int)(moduleRot.size()); i++) 
+    LogDebug("TOBGeom") << "\tRotation " << moduleRot[i] << "\ty = " 
+                        << moduleY[i] << "\tz = " << moduleZ[i];
+  LogDebug("TOBGeom") << "DDTOBRodAlgo debug:\t" << connect.size() 
+                      << " ICC positioned with no rotation";
+  for (int i=0; i<(int)(connect.size()); i++)
+    LogDebug("TOBGeom") << "\t" << connect[i] << "\ty = " << connectY[i] 
+                        << "\tz = " << connectZ[i];
+  LogDebug("TOBGeom") << "DDTOBRodAlgo debug:\t" << aohName <<" AOH will be positioned on ICC's";
+  for (int i=0; i<(int)(aohCopies.size()); i++)
+    LogDebug("TOBGeom") << " copies " << aohCopies[i] << "\tx = " << aohX[i]
+                        << "\ty = " << aohY[i] << "\tz = " << aohZ[i];
+
+  string centName = central;
+  string child;
+  string rodName = parentName;
+  Volume rod = ns.volume(rodName);
+
+  // Side Rods
+  for (int i=0; i<(int)(sideRod.size()); i++) {
+    for (int j=0; j<(int)(sideRodX.size()); j++) {
+      Position r(sideRodX[j], sideRodY[i], sideRodZ[i]);
+      child = sideRod[i];
+      rod.placeVolume(ns.volume(child), /* j+1, */ r);
+      LogDebug("TOBGeom") << child << " number " << j+1 << " positioned in "
+                          << rodName << " at " << r << " with no rotation";
+    }
+  }
+  // Clamps
+  for (int i=0; i<(int)(clampX.size()); i++) {
+    Position r(clampX[i], 0, shift+clampZ[i]);
+    child = clamp;
+    rod.placeVolume(ns.volume(child), /* i+1, */ r);
+    LogDebug("TOBGeom") << child << " number " << i+1 << " positioned in "
+                        << rodName << " at " << r << " with no rotation";
+  }
+  // Side Cooling tubes
+  for (int i=0; i<(int)(sideCoolX.size()); i++) {
+    Position r(sideCoolX[i], sideCoolY[i], shift+sideCoolZ[i]);
+    child = sideCool;
+    rod.placeVolume(ns.volume(child), /* i+1, */ r);
+    LogDebug("TOBGeom") << child << " number " << i+1 << " positioned in "
+                        << rodName << " at " << r << " with no rotation";
+  }
+  // Optical Fibres
+  for (int i=0; i<(int)(optFibreX.size()); i++) {
+    Position r(optFibreX[i], 0, shift+optFibreZ[i]);
+    child = optFibre;
+    rod.placeVolume(ns.volume(child), /* i+1, */ r);
+    LogDebug("TOBGeom") << child << " number " << i+1 << " positioned in "
+                        << rodName << " at " << r << " with no rotation";
+  }
+
+  // Side Clamps
+  for (int i=0; i<(int)(sideClamp1DZ.size()); i++) {
+    int j = i/2;
+    Position r(sideClampX[i],moduleY[j],shift+moduleZ[j]+sideClamp1DZ[i]);
+    child = sideClamp1;
+    rod.placeVolume(ns.volume(child), /* i+1, */ r);
+    LogDebug("TOBGeom") << child << " number " << i+1 << " positioned in " << rodName << " at "
+                        << r << " with no rotation";
+  }
+  for (int i=0; i<(int)(sideClamp2DZ.size()); i++) {
+    int j = i/2;
+    Position r(sideClampX[i],moduleY[j],shift+moduleZ[j]+sideClamp2DZ[i]);
+    child = sideClamp2;
+    rod.placeVolume(ns.volume(child), /* i+1, */ r);
+    LogDebug("TOBGeom") << child << " number " << i+1 << " positioned in " << rodName << " at "
+                        << r << " with no rotation";
+  }
+
+  Volume cent = ns.volume(centName);
+  // End Rods
+  for (int i=0; i<(int)(endRod1Y.size()); i++) {
+    Position r(0, endRod1Y[i], shift+endRod1Z[i]);
+    child = endRod1;
+    cent.placeVolume(ns.volume(child), /* i+1, */ r);
+    LogDebug("TOBGeom") << child << " number " << i+1 << " positioned in " << centName << " at "
+                        << r << " with no rotation";
+  }
+  Position r1(0, endRod2Y, shift+endRod2Z);
+  child = endRod2;
+  cent.placeVolume(ns.volume(child), /* 1, */ r1);
+  LogDebug("TOBGeom") << child << " number 1 " << "positioned in " << centName << " at " << r1 
+                      << " with no rotation";
+
+  // End cooling tubes
+  Position r2(0, endCoolY, shift+endCoolZ);
+  Rotation3D rot2 = ns.rotation(endCoolRot);
+  child = endCool;
+  cent.placeVolume(ns.volume(child), /* 1, */ Transform3D(rot2,r2));
+  LogDebug("TOBGeom") << child << " number 1 " << "positioned in " << centName << " at " << r2 
+                      << " with " << rot2;
+
+  //Mother cable
+  Position r3(0, 0, shift+cableZ);
+  child = cable;
+  cent.placeVolume(ns.volume(child), /* 1, */ r3);
+  LogDebug("TOBGeom") << child << " number 1 " << "positioned in " << centName << " at " << r3
+                      << " with no rotation";
+
+  //Modules
+  for (int i=0; i<(int)(moduleRot.size()); i++) {
+    Position r(0, moduleY[i], shift+moduleZ[i]);
+    Rotation3D rot = ns.rotation(moduleRot[i]);
+    child = module;
+    cent.placeVolume(ns.volume(child), /* i+1, */ Transform3D(rot,r));
+    LogDebug("TOBGeom") << child << " number " 
+                        << i+1 << " positioned in " << centName << " at "
+                        << r << " with " << rot;
+  }
+
+  //Connectors (ICC, CCUM, ...)
+  for (int i=0; i<(int)(connect.size()); i++) {
+    Position r(0, connectY[i], shift+connectZ[i]);
+    child = connect[i];
+    cent.placeVolume(ns.volume(child), /* i+1, */ r);
+    LogDebug("TOBGeom") << child << " number " << i+1 << " positioned in " << centName << " at "
+                        << r << " with no rotation";
+  }
 
-  str << "Not implemented. To be done.... " << mother.name();
-  printout(WARNING,"DDTOBRodAlgo",str);
+  //AOH (only on ICCs)
+  int copyNumber = 0;
+  for (int i=0; i<(int)(aohCopies.size()); i++) {
+    if(aohCopies[i] != 0) {
+      // first copy with (+aohX,+aohZ) translation
+      copyNumber++;
+      Position r(aohX[i] + 0, aohY[i] + connectY[i], aohZ[i] + shift+connectZ[i]);
+      child = aohName;
+      cent.placeVolume(ns.volume(child), r); // copyNumber
+      LogDebug("TOBGeom") << child << " number " << copyNumber << " positioned in " << centName << " at "
+                          << r << " with no rotation";
+      // if two copies add a copy with (-aohX,-aohZ) translation
+      if(aohCopies[i] == 2) {
+        copyNumber++;
+        r = Position(-aohX[i] + 0, aohY[i] + connectY[i], -aohZ[i] + shift+connectZ[i]);
+        child = aohName;
+        cent.placeVolume(ns.volume(child), r); // copyNumber
+        LogDebug("TOBGeom") << child << " number " << copyNumber << " positioned in " << centName << " at "
+                            << r << " with no rotation";
+      }
+      // if four copies add 3 copies with (-aohX,+aohZ) (-aohX,-aohZ) (+aohX,+aohZ) and translations
+      if(aohCopies[i] == 4) {
+        Position rr;
+        for (unsigned int j = 1; j<4; j++ ) {
+          copyNumber++;
+          child = aohName;
+          switch(j) {
+          case 1:
+            rr = Position(-aohX[i] + 0, aohY[i] + connectY[i], +aohZ[i] + shift+connectZ[i]);
+            cent.placeVolume(ns.volume(child), rr); // copyNumber
+            break;
+          case 2:
+            rr = Position(-aohX[i] + 0, aohY[i] + connectY[i], -aohZ[i] + shift+connectZ[i]);
+            cent.placeVolume(ns.volume(child), rr); // copyNumber
+            break;
+          case 3:
+            rr = Position(+aohX[i] + 0, aohY[i] + connectY[i], -aohZ[i] + shift+connectZ[i]);
+            cent.placeVolume(ns.volume(child), rr); // copyNumber
+            break;
+          }
+          LogDebug("TOBGeom") << child << " number " << copyNumber << " positioned in " << centName << " at "
+                              << rr << " with no rotation";
+        }
+      }
+    }
+  }  
+  LogDebug("TOBGeom") << "<<== End of DDTOBRodAlgo construction ...";
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTOBRodAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTOBRodAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTrackerAngular.cpp b/DDCMS/src/plugins/DDTrackerAngular.cpp
index bf6e48c61..7611265dc 100644
--- a/DDCMS/src/plugins/DDTrackerAngular.cpp
+++ b/DDCMS/src/plugins/DDTrackerAngular.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long  algorithm(Detector& /* description */,
                        xml_h e,
                        SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt,e,true);
   AlgoArguments  args(ctxt, e);
   // Header section of original DDTrackerAngular.h
@@ -43,33 +38,26 @@ static long  algorithm(Detector& /* description */,
   double         startAngle  = args.value<double>("StartAngle");      //Start anle
   double         radius      = args.value<double>("Radius");          //Radius
   vector<double> center      = args.value<vector<double> >("Center"); //Phi values
-  double         delta;          //Increment in phi
   Volume         mother      = ns.volume(args.parentName());
   Volume         child       = ns.volume(args.value<string>("ChildName"));
 
+  double         delta = 0e0;                                         //Increment in phi
   // Code section of original DDTrackerAngular.cc
   if (fabs(rangeAngle-360.0*CLHEP::deg)<0.001*CLHEP::deg) { 
     delta    =   rangeAngle/double(n);
-  } else {
-    if (n > 1) {
-      delta    =   rangeAngle/double(n-1);
-    } else {
-      delta = 0.;
-    }
+  } else if (n > 1) {
+    delta    =   rangeAngle/double(n-1);
   }  
 
-  str << "debug: Parameters for positioning:: n "
+  LogDebug("TrackerGeom") << "debug: Parameters for positioning:: n "
       << n << " Start, Range, Delta " 
       << startAngle/CLHEP::deg << " " 
       << rangeAngle/CLHEP::deg << " " << delta/CLHEP::deg
       << " Radius " << radius << " Centre " << center[0] 
       << ", " << center[1] << ", "<<center[2];
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str);
-
-  str << "debug: Parent " << mother.name() 
+  LogDebug("TrackerGeom") << "debug: Parent " << mother.name() 
       << "\tChild " << child.name() << " NameSpace "
       << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str);
 
   double theta  = 90.*CLHEP::deg;
   int    copy   = startCopyNo;
@@ -87,11 +75,10 @@ static long  algorithm(Detector& /* description */,
         rotation = ns.rotation(ns.prepend(rotstr));
       }
       else  {
-        str << "Creating a new "
+        LogDebug("TrackerGeom") << "Creating a new "
             << "rotation: " << rotstr << "\t90., " 
             << phix/CLHEP::deg << ", 90.," 
             << phiy/CLHEP::deg <<", 0, 0";
-        printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str);
         RotationZYX   rot;
         rotation = make_rotation3D(theta, phix, theta, phiy, 0., 0.);
       }
@@ -102,10 +89,9 @@ static long  algorithm(Detector& /* description */,
     double zpos = center[2];
     Position tran(xpos, ypos, zpos);
     mother.placeVolume(child, Transform3D(rotation,tran));
-    str << "test " << child.name() << " number " 
-        << copy << " positioned in " << mother.name() << " at "
-        << tran  << " with " << rotation;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerAngular",str);
+    LogDebug("TrackerGeom") << "test " << child.name() << " number " 
+                            << copy << " positioned in " << mother.name() << " at "
+                            << tran  << " with " << rotation;
     copy += incrCopyNo;
     phi  += delta;
   }
@@ -113,4 +99,4 @@ static long  algorithm(Detector& /* description */,
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTrackerAngular,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTrackerAngular,algorithm)
diff --git a/DDCMS/src/plugins/DDTrackerLinear.cpp b/DDCMS/src/plugins/DDTrackerLinear.cpp
index 92b5cef54..2d9533784 100644
--- a/DDCMS/src/plugins/DDTrackerLinear.cpp
+++ b/DDCMS/src/plugins/DDTrackerLinear.cpp
@@ -17,23 +17,17 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
-using namespace dd4hep::detail;
 using namespace dd4hep::cms;
 
-static long create_element(Detector& /* description */,
-                           ParsingContext& ctxt,
-                           xml_h e,
-                           SensitiveDetector& /* sens */)
+static long algorithm(Detector& /* description */,
+                      ParsingContext& ctxt,
+                      xml_h e,
+                      SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
   int            startcn = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1;
@@ -48,8 +42,8 @@ static long create_element(Detector& /* description */,
   Volume         mother  = ns.volume(args.parentName());
   Volume         child   = ns.volume(args.value<string>("ChildName"));
 
-  printout(INFO,"DDTrackerLinear","+++ Executing Algorithm. rParent:%s",mother.name());
-  str << "debug: Parent " << mother.name() 
+  LogDebug("TrackerGeom") << "+++ Executing Algorithm. rParent:" << mother.name();
+  LogDebug("TrackerGeom") << "debug: Parent " << mother.name() 
       << "\tChild " << child.name() << " NameSpace " 
       << ns.name << "\tNumber " << number 
       << "\tAxis (theta/phi) " << theta/dd4hep::deg << ", "
@@ -57,7 +51,6 @@ static long create_element(Detector& /* description */,
       << ", "  << delta << "\tCentre " << centre[0] << ", "
       << centre[1] << ", " << centre[2] << "\tRotation "
       << rotMat;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerLinear",str);
 
   Position direction(sin(theta)*cos(phi),sin(theta)*sin(phi),cos(theta));
   Position base(centre[0],centre[1],centre[2]);
@@ -71,14 +64,13 @@ static long create_element(Detector& /* description */,
     /* PlacedVolume pv = */ rotMat.empty()
       ? mother.placeVolume(child,Transform3D(rot,tran))
       : mother.placeVolume(child,tran);
-    str << child.name() << " number "
-        << ci << " positioned in " << mother.name() << " at "
-        << tran << " with " << rot;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerLinear",str);
+    LogDebug("TrackerGeom") << child.name() << " number "
+                            << ci << " positioned in " << mother.name() << " at "
+                            << tran << " with " << rot;
   }
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTrackerLinear,create_element)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTrackerLinear,algorithm)
 
diff --git a/DDCMS/src/plugins/DDTrackerPhiAlgo.cpp b/DDCMS/src/plugins/DDTrackerPhiAlgo.cpp
index 9e231d4e0..29119f4d3 100644
--- a/DDCMS/src/plugins/DDTrackerPhiAlgo.cpp
+++ b/DDCMS/src/plugins/DDTrackerPhiAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,13 +28,12 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
   Volume         mother      = ns.volume(args.parentName());
   Volume         child       = ns.volume(args.childName());
   int            startcn     = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1;
-  int            incrcn      = args.find("IncrCopyNo") ? args.value<int>("IncrCopyNo") : 1;
+  int            incrcn      = args.find("IncrCopyNo")  ? args.value<int>("IncrCopyNo")  : 1;
   vector<double> phi         = args.value<vector<double> >("Phi");         // Phi values
   vector<double> zpos        = args.value<vector<double> >("ZPos");        // Z positions
   int            numcopies   = args.find("NumCopies") ? args.value<int>("NumCopies") : int(phi.size());
@@ -46,27 +41,21 @@ static long algorithm(Detector& /* description */,
   double         tilt        = args.value<double>("Tilt");
 
   if ( numcopies != int(phi.size()) )  {
-    str << "error: Parameter "
+    LogDebug("TrackerGeom") << "error: Parameter "
         << "NumCopies does not agree with the size "
         << "of the Phi vector. It was adjusted to "
         << "be the size of the Phi vector and may "
         << "lead to crashes or errors.";
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str);
   }
-
-  str << "debug: Parameters for position"
+  LogDebug("TrackerGeom") << "debug: Parameters for position"
                           << "ing:: " << " Radius " << radius << " Tilt " 
                           << tilt/CLHEP::deg << " Copies " << phi.size() 
                           << " at";
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str);
-  for (int i=0; i<(int)(phi.size()); i++)  {
-    str << "\t[" << i << "] phi = " << phi[i]/CLHEP::deg 
+  for (int i=0; i<(int)(phi.size()); i++)
+    LogDebug("TrackerGeom") << "\t[" << i << "] phi = " << phi[i]/CLHEP::deg 
         << " z = " << zpos[i];
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str);
-  }
-  str <<  "debug: Parent " << mother.name()
+  LogDebug("TrackerGeom") <<  "debug: Parent " << mother.name()
       <<"\tChild " << child.name() << " NameSpace " << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str);
 
   double theta  = 90.*CLHEP::deg;
   int ci = startcn;
@@ -78,15 +67,14 @@ static long algorithm(Detector& /* description */,
     Rotation3D rot = make_rotation3D(theta, phix, theta, phiy, 0., 0.);
     Position   tran(xpos, ypos, zpos[i]);
     /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rot,tran));
-    str << "test: " << child.name() << " number "
+    LogDebug("TrackerGeom") << "test: " << child.name() << " number "
         << ci << " positioned in " << mother.name() << " at "
         << tran  << " with " << rot;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAlgo",str);
     ci = ci+incrcn;
   }
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTrackerPhiAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTrackerPhiAlgo,algorithm)
 
diff --git a/DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp b/DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp
index b56945947..5ad9bdaa6 100644
--- a/DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp
+++ b/DDCMS/src/plugins/DDTrackerPhiAltAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream  str;
   Namespace     ns(ctxt, e, true);
   AlgoArguments args(ctxt, e);
   Volume        mother      = ns.volume(args.parentName());
@@ -47,16 +42,14 @@ static long algorithm(Detector& /* description */,
   int           startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1; //Start copy number
   int           incrCopyNo  = args.find("IncrCopyNo")  ? args.value<int>("IncrCopyNo")  : 1; //Increment in copy number
 
-  str << "Parameters for positioning-- Tilt " << tilt 
-      << "\tStartAngle " << startAngle/CLHEP::deg 
-      << "\tRangeAngle " << rangeAngle/CLHEP::deg 
-      << "\tRin " << radiusIn << "\tRout " << radiusOut 
-      << "\t ZPos " << zpos << "\tCopy Numbers " << number 
-      << " Start/Increment " << startCopyNo << ", " 
-      << incrCopyNo;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAltAlgo",str);
-  str << "Parent " << mother.name() << "\tChild " << child.name() << " NameSpace " << ns.name;
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAltAlgo",str);
+  LogDebug("TrackerGeom") << "Parent " << mother.name() << "\tChild " << child.name() << " NameSpace " << ns.name;
+  LogDebug("TrackerGeom") << "Parameters for positioning-- Tilt " << tilt 
+                          << "\tStartAngle " << startAngle/CLHEP::deg 
+                          << "\tRangeAngle " << rangeAngle/CLHEP::deg 
+                          << "\tRin " << radiusIn << "\tRout " << radiusOut 
+                          << "\t ZPos " << zpos << "\tCopy Numbers " << number 
+                          << " Start/Increment " << startCopyNo << ", " 
+                          << incrCopyNo;
 
   if (number > 0) {
     double theta  = 90.*CLHEP::deg;
@@ -88,11 +81,10 @@ static long algorithm(Detector& /* description */,
       }
       Position tran(xpos, ypos, zpos);  
       /* PlacedVolume pv = */ mother.placeVolume(child,Transform3D(rotation,tran));
-      str << "" << child.name() 
-          << " number " << copyNo << " positioned in " 
-          << mother.name() << " at " << tran << " with " 
-          << rotation;
-      printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerPhiAltAlgo",str);
+      LogDebug("TrackerGeom") << "" << child.name() 
+                              << " number " << copyNo << " positioned in " 
+                              << mother.name() << " at " << tran << " with " 
+                              << rotation;
       copyNo += incrCopyNo;
     }
   }
@@ -100,5 +92,5 @@ static long algorithm(Detector& /* description */,
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTrackerPhiAltAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTrackerPhiAltAlgo,algorithm)
 
diff --git a/DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp b/DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp
index 57faf42ec..d2d9c8a88 100644
--- a/DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp
+++ b/DDCMS/src/plugins/DDTrackerXYZPosAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
   int            startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1;
@@ -44,18 +39,16 @@ static long algorithm(Detector& /* description */,
   vector<double> zvec        = args.value<vector<double> >("ZPositions");    // Z positions
   vector<string> rotMat      = args.value<vector<string> >("Rotations");   // Names of rotation matrices
 
-  str << "debug: Parent " << mother.name() 
-      << "\tChild " << child.name() << " NameSpace " 
-      << ns.name << "\tCopyNo (Start/Increment) " 
-      << startCopyNo << ", " << incrCopyNo << "\tNumber " 
-      << xvec.size() << ", " << yvec.size() << ", " << zvec.size();
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerXYZPosAlgo",str);
+  LogDebug("TrackerGeom") << "debug: Parent " << mother.name() 
+                          << "\tChild " << child.name() << " NameSpace " 
+                          << ns.name << "\tCopyNo (Start/Increment) " 
+                          << startCopyNo << ", " << incrCopyNo << "\tNumber " 
+                          << xvec.size() << ", " << yvec.size() << ", " << zvec.size();
   for (int i = 0; i < (int)(zvec.size()); i++) {
-    str << "\t[" << i << "]\tX = " << xvec[i]
-        << "\t[" << i << "]\tY = " << yvec[i] 
-        << "\t[" << i << "]\tZ = " << zvec[i] 
-        << ", Rot.Matrix = " << rotMat[i];
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerXYZPosAlgo",str);
+    LogDebug("TrackerGeom") << "\t[" << i << "]\tX = " << xvec[i]
+                            << "\t[" << i << "]\tY = " << yvec[i] 
+                            << "\t[" << i << "]\tZ = " << zvec[i] 
+                            << ", Rot.Matrix = " << rotMat[i];
   }
 
   for (int i=0, copy = startCopyNo; i<(int)(zvec.size()); i++) {
@@ -64,15 +57,13 @@ static long algorithm(Detector& /* description */,
     /* PlacedVolume pv = */ rotMat[i] != "NULL"
       ? mother.placeVolume(child,Transform3D(ns.rotation(rotMat[i]),tran))
       : mother.placeVolume(child,tran);
-    str << "test: " << child.name() 
-        <<" number " << copy << " positioned in " 
-        << mother.name() << " at " << tran << " with " << rot;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerXYZPosAlgo",str);
+    LogDebug("TrackerGeom") << "test: " << child.name() 
+                            <<" number " << copy << " positioned in " 
+                            << mother.name() << " at " << tran << " with " << rot;
     copy += incrCopyNo;
   }
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTrackerXYZPosAlgo,algorithm)
-
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTrackerXYZPosAlgo,algorithm)
diff --git a/DDCMS/src/plugins/DDTrackerZPosAlgo.cpp b/DDCMS/src/plugins/DDTrackerZPosAlgo.cpp
index e375c43dd..c7e97b94b 100644
--- a/DDCMS/src/plugins/DDTrackerZPosAlgo.cpp
+++ b/DDCMS/src/plugins/DDTrackerZPosAlgo.cpp
@@ -17,12 +17,8 @@
 
 // Framework include files
 #include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
 #include "DDCMS/DDCMSPlugins.h"
 
-// C/C++ include files
-#include <sstream>
-
 using namespace std;
 using namespace dd4hep;
 using namespace dd4hep::cms;
@@ -32,7 +28,6 @@ static long algorithm(Detector& /* description */,
                       xml_h e,
                       SensitiveDetector& /* sens */)
 {
-  stringstream   str;
   Namespace      ns(ctxt, e, true);
   AlgoArguments  args(ctxt, e);
   int            startCopyNo = args.find("StartCopyNo") ? args.value<int>("StartCopyNo") : 1;
@@ -42,16 +37,13 @@ static long algorithm(Detector& /* description */,
   vector<double> zvec        = args.value<vector<double> >("ZPositions");    // Z positions
   vector<string> rotMat      = args.value<vector<string> >("Rotations");   // Names of rotation matrices
 
-  str << "debug: Parent " << mother.name() 
-      << "\tChild " << child.name() << " NameSpace " 
-      << ns.name << "\tCopyNo (Start/Increment) " 
-      << startCopyNo << ", " << incrCopyNo << "\tNumber " << zvec.size();
-  printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerZPosAlgo",str);
-  for (int i = 0; i < (int)(zvec.size()); i++) {
-    str << "\t[" << i << "]\tZ = " << zvec[i]
-        << ", Rot.Matrix = " << rotMat[i];
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerZPosAlgo",str);
-  }
+  LogDebug("TrackerGeom") << "debug: Parent " << mother.name() 
+                          << "\tChild " << child.name() << " NameSpace " 
+                          << ns.name << "\tCopyNo (Start/Increment) " 
+                          << startCopyNo << ", " << incrCopyNo << "\tNumber " << zvec.size();
+  for (int i = 0; i < (int)(zvec.size()); i++)
+    LogDebug("TrackerGeom") << "\t[" << i << "]\tZ = " << zvec[i]
+                            << ", Rot.Matrix = " << rotMat[i];
 
   for (int i=0, copy = startCopyNo; i<(int)(zvec.size()); i++) {
     Position tran(0, 0, zvec[i]);
@@ -59,15 +51,14 @@ static long algorithm(Detector& /* description */,
     /* PlacedVolume pv = */ rotMat[i] != "NULL"
       ? mother.placeVolume(child,Transform3D(ns.rotation(rotMat[i]),tran))
       : mother.placeVolume(child,tran);
-    str << "test: " << child.name() 
-        <<" number " << copy << " positioned in " 
-        << mother.name() << " at " << tran << " with " << rot;
-    printout(ctxt.debug_algorithms ? ALWAYS : DEBUG,"DDTrackerZPosAlgo",str);
+    LogDebug("TrackerGeom") << "test: " << child.name() 
+                            <<" number " << copy << " positioned in " 
+                            << mother.name() << " at " << tran << " with " << rot;
     copy += incrCopyNo;
   }
   return 1;
 }
 
 // first argument is the type from the xml file
-DECLARE_DDCMS_DETELEMENT(track_DDTrackerZPosAlgo,algorithm)
+DECLARE_DDCMS_DETELEMENT(DDCMS_track_DDTrackerZPosAlgo,algorithm)
 
diff --git a/DDCond/src/Type1/Manager_Type1.cpp b/DDCond/src/Type1/Manager_Type1.cpp
index 5a0a3d287..d05fa6258 100644
--- a/DDCond/src/Type1/Manager_Type1.cpp
+++ b/DDCond/src/Type1/Manager_Type1.cpp
@@ -81,13 +81,14 @@ namespace {
     if ( typ && !iov->has_range() ) return typ;
     return 0;
   }
+#if 0
   /// Helper: Specialized IOV check for range IOV values
   template <> const IOVType* check_iov_type<Range>(const Manager_Type1* o, const IOV* iov)   {
     const IOVType* typ = check_iov_type<void>(o,iov);
     if ( typ && iov->has_range() ) return typ;
     return 0;
   }
-
+#endif
   /// Helper: Check conditions result for consistency
   template <typename T> void __check_values__(const Manager_Type1* o, Condition::key_type key, const IOV* iov)  
   {
diff --git a/DDCore/include/DD4hep/VolumeProcessor.h b/DDCore/include/DD4hep/VolumeProcessor.h
new file mode 100644
index 000000000..f1bedab30
--- /dev/null
+++ b/DDCore/include/DD4hep/VolumeProcessor.h
@@ -0,0 +1,179 @@
+//==========================================================================
+//  AIDA Detector description implementation 
+//--------------------------------------------------------------------------
+// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+// All rights reserved.
+//
+// For the licensing terms see $DD4hepINSTALL/LICENSE.
+// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+//
+// Author     : M.Frank
+//
+//==========================================================================
+#ifndef DD4HEP_DDCORE_VOLUMEPROCESSOR_H
+#define DD4HEP_DDCORE_VOLUMEPROCESSOR_H
+
+// Framework includes
+#include "DD4hep/DetElement.h"
+#include "DD4hep/Volumes.h"
+
+// C/C++ include files
+#include <memory>
+
+/// Namespace for the AIDA detector description toolkit
+namespace dd4hep {
+
+  /// Generic PlacedVolume processor
+  /**
+   *   Please note that the principle of locality applies:
+   *   The object is designed for stack allocation and configuration.
+   *   It may NOT be shared across threads!
+   *
+   *   \author  M.Frank
+   *   \version 1.0
+   *   \date    31/05/2017
+   *   \ingroup DD4HEP_CORE
+   */
+  class PlacedVolumeProcessor {
+  public:
+    /// Initializing constructor
+    PlacedVolumeProcessor() = default;
+    /// R-value copy from a temporary (Since processor is reference)
+    PlacedVolumeProcessor(PlacedVolumeProcessor&& copy) = default;
+    /// Default copy constructor
+    PlacedVolumeProcessor(const PlacedVolumeProcessor& copy) = default;
+    /// Default destructor
+    virtual ~PlacedVolumeProcessor();
+    /// Default assignment
+    PlacedVolumeProcessor& operator=(const PlacedVolumeProcessor& copy) = default;
+    /// Callback to output PlacedVolume information of an single Placement
+    virtual int operator()(PlacedVolume pv, int level)  const = 0;
+    /// Callback to output PlacedVolume information of an entire Placement
+    virtual int process(PlacedVolume pv, int level, bool recursive)  const;
+  };
+
+  /// PlacedVolume scanner using a Processor object
+  /**
+   *   Please see the documentation of the
+   *   PlacedVolumeProcessor base class for further information.
+   *   The only requirement to the object is to fullfill the callback signature.
+   *
+   *   \author  M.Frank
+   *   \version 1.0
+   *   \date    31/05/2017
+   *   \ingroup DD4HEP_CORE
+   */
+  template <typename T> class PlacementProcessor : virtual public PlacedVolumeProcessor  {
+  public:
+    /// Reference to execution object implementing operator()(PlacedVolume pv, int level)
+    T& processor;
+  public:
+    /// Default constructor
+    PlacementProcessor() = delete;
+    /// Default constructor
+    PlacementProcessor(T& p) : processor(p) {}
+    /// Default move constructor is disabled
+    PlacementProcessor(T&& p) = delete;
+    /// R-value copy from a temporary (Since processor is reference)
+    PlacementProcessor(PlacementProcessor&& copy) = default;
+    /// Default copy constructor
+    PlacementProcessor(const PlacementProcessor& copy) = default;
+    /// Default destructor
+    virtual ~PlacementProcessor() = default;
+    /// Default assignment
+    PlacementProcessor& operator=(const PlacementProcessor& copy) = default;
+    /// Callback to output detector information of an single placement
+    virtual int operator()(PlacedVolume pv, int level)  const final
+    {   return (processor)(pv, level);         }
+  };
+
+  /// Instantiation helper
+  template <typename T> inline
+  PlacementProcessor<typename std::remove_reference<T>::type> placementProcessor(T&& proc)
+  { return PlacementProcessor<typename std::remove_reference<T>::type>(std::forward<T>(proc)); }
+
+  /// Wrapper to call objects in the form of a PlacedVolume processor.
+  /**
+   *   \author  M.Frank
+   *   \version 1.0
+   *   \date    31/05/2017
+   *   \ingroup DD4HEP_CORE
+   */
+  template <typename T> class PlacementProcessorShared : public PlacedVolumeProcessor {
+  public:
+    /// Reference to execution object implementing operator()(PlacedVolume pv, int level)
+    std::shared_ptr<T> processor;
+  public:
+    /// Default constructor
+    PlacementProcessorShared() = delete;
+    /// Default constructor
+    PlacementProcessorShared(std::shared_ptr<T>& p) : processor(p) {}
+    /// Default copy constructor
+    PlacementProcessorShared(const PlacementProcessorShared& copy) = default;
+    /// Default destructor
+    virtual ~PlacementProcessorShared() = default;
+    /// Default assignment
+    PlacementProcessorShared& operator=(const PlacementProcessorShared& copy) = default;
+    /// Callback to output detector information of an single DetElement
+    virtual int operator()(PlacedVolume pv, int level)  const final
+    {  return (*processor)(pv, level);                 }
+  };
+
+  /// Helper to run placement scan through volume hierarchies scans
+  /**
+   *   This wrapper converts any object, which has the signature
+   *   int operator()(DetElement de, int level) const
+   *   The object is automatically wrapped to a PlacedVolumeProcessor
+   *   and the PlacedVolume tree is scanned depending on the scanning
+   *   arguments.
+   *  
+   *   \author  M.Frank
+   *   \version 1.0
+   *   \date    01/04/2016
+   *   \ingroup DD4HEP_CORE
+   */
+  class PlacedVolumeScanner  {
+  public:
+    /// Default constructor
+    PlacedVolumeScanner() = default;
+    /// Copy constructor
+    PlacedVolumeScanner(const PlacedVolumeScanner& copy) = default;
+    /// Assignment operator
+    PlacedVolumeScanner& operator=(const PlacedVolumeScanner& copy) = default;
+
+    /// Constructor performing the scan internally
+    template <typename Q>
+    PlacedVolumeScanner(Q& proc, DetElement start, int level=0, bool recursive=true)
+    {  scan(proc, start.placement(), level, recursive);     }
+
+    /// Constructor performing the scan internally
+    template <typename Q>
+    PlacedVolumeScanner(const Q& proc, DetElement start, int level=0, bool recursive=true)
+    {  scan(proc, start.placement(), level, recursive);     }
+
+    /// Constructor performing the scan internally
+    template <typename Q>
+    PlacedVolumeScanner(Q& proc, PlacedVolume start, int level=0, bool recursive=true)
+    {  scan(proc, start, level, recursive);     }
+
+    /// Constructor performing the scan internally
+    template <typename Q>
+    PlacedVolumeScanner(const Q& proc, PlacedVolume start, int level=0, bool recursive=true)
+    {  scan(proc, start, level, recursive);     }
+
+    /// PlacedVolume element tree scanner using wrapped PlacedVolumeProcessor objects
+    template <typename Q>
+    int scan(Q& p, PlacedVolume start, int level=0, bool recursive=true)  const {
+      auto proc = placementProcessor(p);
+      return proc.process(start, level, recursive);
+    }
+
+    /// PlacedVolume element tree scanner using wrapped PlacedVolumeProcessor objects
+    template <typename Q>
+    int scan(const Q& p, PlacedVolume start, int level=0, bool recursive=true) const {
+      auto proc = placementProcessor(p);
+      return proc.process(start, level, recursive);
+    }
+  };
+}      /* End namespace dd4hep               */
+#endif /* DD4HEP_DDCORE_VOLUMEPROCESSOR_H    */
diff --git a/DDCore/include/DD4hep/Volumes.h b/DDCore/include/DD4hep/Volumes.h
index 05fcea464..3f3405797 100644
--- a/DDCore/include/DD4hep/Volumes.h
+++ b/DDCore/include/DD4hep/Volumes.h
@@ -141,6 +141,24 @@ namespace dd4hep {
     typedef PlacedVolumeExtension         Object;
     typedef PlacedVolumeExtension::VolIDs VolIDs;
 
+    /// Abstract base for processing callbacks to PlacedVolume objects
+    /** Helper to facilitate building plugins, which instrument
+     *  placements and volumes e.g. during geometry scans.
+     *
+     *  \author  M.Frank
+     *  \version 1.0
+     *  \ingroup DD4HEP_CORE
+     */
+    class Processor {
+    public:
+      /// Default constructor
+      Processor();
+      /// Default destructor
+      virtual ~Processor();
+      /// Container callback for object processing
+      virtual int processPlacement(PlacedVolume pv) = 0;
+    };
+
     /// Default constructor
     PlacedVolume() = default;
     /// Copy assignment
diff --git a/DDCore/src/GeoDictionary.h b/DDCore/src/GeoDictionary.h
index aa3d3d8ff..7900069a0 100644
--- a/DDCore/src/GeoDictionary.h
+++ b/DDCore/src/GeoDictionary.h
@@ -19,6 +19,7 @@
 // Framework include files
 #include "DD4hep/Volumes.h"
 #include "DD4hep/Shapes.h"
+#include "DD4hep/VolumeProcessor.h"
 
 // C/C++ include files
 #include <vector>
@@ -44,6 +45,8 @@ using namespace std;
 #pragma link C++ class dd4hep::Handle<TGeoVolume>+;
 
 #pragma link C++ class dd4hep::PlacedVolume+;
+#pragma link C++ class dd4hep::PlacedVolume::Processor+;
+
 #ifndef __ROOTCLING__
 template vector<pair<string, int> >;
 template vector<pair<string, int> >::iterator;
@@ -122,5 +125,8 @@ template vector<pair<string, int> >::iterator;
 #pragma link C++ class dd4hep::UnionSolid+;
 #pragma link C++ class dd4hep::IntersectionSolid+;
 
+#pragma link C++ class dd4hep::PlacedVolumeProcessor+;
+#pragma link C++ class dd4hep::PlacedVolumeScanner+;
+
 #endif  // __CINT__
 #endif  /* DD4HEP_DDCORE_ROOTDICTIONARY_H  */
diff --git a/DDCore/src/RootDictionary.h b/DDCore/src/RootDictionary.h
index 8009d57e0..8f2fcc9e5 100644
--- a/DDCore/src/RootDictionary.h
+++ b/DDCore/src/RootDictionary.h
@@ -29,10 +29,11 @@
 #include "DD4hep/World.h"
 #include "DD4hep/DD4hepUI.h"
 #include "DD4hep/Callback.h"
-#include "DD4hep/DetectorData.h"
 #include "DD4hep/Conditions.h"
 #include "DD4hep/Alignments.h"
 #include "DD4hep/FieldTypes.h"
+#include "DD4hep/DetectorData.h"
+#include "DD4hep/DetectorProcessor.h"
 #include "DD4hep/ComponentProperties.h"
 
 // C/C++ include files
@@ -98,7 +99,7 @@ template class pair<dd4hep::Callback,unsigned long>;
 #pragma link C++ class map<string, dd4hep::Handle<dd4hep::NamedObject> >+;
 #pragma link C++ class map<string, dd4hep::Handle<dd4hep::NamedObject> >::iterator;
 #pragma link C++ class map<string, dd4hep::Handle<dd4hep::NamedObject> >::const_iterator;
-#pragma link C++ class dd4hep::dd4hepUI;
+#pragma link C++ class dd4hep::detail::DD4hepUI;
 
 #ifdef R__MACOSX
 // We only need these declarations for the clang compiler
@@ -245,6 +246,7 @@ template class dd4hep::Handle<TNamed>;
 #pragma link C++ class dd4hep::WorldObject+;
 #pragma link C++ class dd4hep::Handle<dd4hep::WorldObject>+;
 #pragma link C++ class dd4hep::DetElement+;
+#pragma link C++ class dd4hep::DetElement::Processor+;
 #pragma link C++ class dd4hep::DetElementObject+;
 #pragma link C++ class dd4hep::Handle<dd4hep::DetElementObject>+;
 #pragma link C++ class vector<dd4hep::DetElement>+;
@@ -253,6 +255,9 @@ template class dd4hep::Handle<TNamed>;
 #pragma link C++ class map<string,dd4hep::DetElement>::iterator;
 #pragma link C++ class map<string,dd4hep::DetElement>::const_iterator;
 
+#pragma link C++ class dd4hep::DetectorProcessor+;
+#pragma link C++ class dd4hep::DetectorScanner+;
+
 #ifdef R__MACOSX
 // We only need these declarations for the clang compiler
 #pragma link C++ function operator==( const map<string, dd4hep::DetElement >::iterator&,const map<string, dd4hep::DetElement >::iterator& );
diff --git a/DDCore/src/VolumeManager.cpp b/DDCore/src/VolumeManager.cpp
index 2d6bc5cf7..231947ee3 100644
--- a/DDCore/src/VolumeManager.cpp
+++ b/DDCore/src/VolumeManager.cpp
@@ -194,14 +194,13 @@ namespace dd4hep {
       /// Populate the Volume manager
       void populate(DetElement e) {
         //const char* typ = 0;//::getenv("VOLMGR_NEW");
-        const DetElement::Children& c = e.children();
         SensitiveDetector parent_sd;
         if ( e->flag&DetElement::Object::HAVE_SENSITIVE_DETECTOR )  {
           parent_sd = m_detDesc.sensitiveDetector(e.name());
         }
         //printout(INFO, "VolumeManager", "++ Executing %s plugin manager version",typ ? "***NEW***" : "***OLD***");
-        for (const auto& i : c )  {
-          DetElement de = i.second;
+        //for (const auto& i : c )  {
+          DetElement de = e;//i.second;
           PlacedVolume pv = de.placement();
           if (pv.isValid()) {
             Chain chain;
@@ -209,11 +208,12 @@ namespace dd4hep {
             SensitiveDetector sd = parent_sd;
             m_entries.clear();
             scanPhysicalVolume(de, de, pv, coding, sd, chain);
-            continue;
+            //continue;
+            return;
           }
           printout(WARNING, "VolumeManager", "++ Detector element %s of type %s has no placement.", 
                    de.name(), de.type().c_str());
-        }
+          //}
       }
       /// Scan a single physical volume and look for sensitive elements below
       size_t scanPhysicalVolume(DetElement& parent, DetElement e, PlacedVolume pv, 
diff --git a/DDCore/src/VolumeProcessor.cpp b/DDCore/src/VolumeProcessor.cpp
new file mode 100644
index 000000000..84444e085
--- /dev/null
+++ b/DDCore/src/VolumeProcessor.cpp
@@ -0,0 +1,41 @@
+//==========================================================================
+//  AIDA Detector description implementation 
+//--------------------------------------------------------------------------
+// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+// All rights reserved.
+//
+// For the licensing terms see $DD4hepINSTALL/LICENSE.
+// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+//
+// Author     : M.Frank
+//
+//==========================================================================
+
+// Framework includes
+#include "DD4hep/Printout.h"
+#include "DD4hep/VolumeProcessor.h"
+
+using namespace dd4hep;
+
+/// Default destructor
+PlacedVolumeProcessor::~PlacedVolumeProcessor()   {
+}
+
+/// Callback to output PlacedVolume information of an entire DetElement
+int PlacedVolumeProcessor::process(PlacedVolume pv, int level, bool recursive)  const  {
+  if ( pv.isValid() )  {
+    int ret = (*this)(pv, level);
+    TGeoNode* node = pv.ptr();
+    if ( recursive )  {
+      for (Int_t idau = 0, ndau = node->GetNdaughters(); idau < ndau; ++idau) {
+        PlacedVolume placement(node->GetDaughter(idau));
+        if ( placement.data() ) {
+          ret += process(placement,level+1,recursive);
+        }
+      }
+    }
+    return ret;
+  }
+  except("PlacedVolume","Cannot process an invalid PlacedVolume element");
+  return 0;
+}
diff --git a/DDCore/src/Volumes.cpp b/DDCore/src/Volumes.cpp
index 348715d5d..185f07fae 100644
--- a/DDCore/src/Volumes.cpp
+++ b/DDCore/src/Volumes.cpp
@@ -303,6 +303,14 @@ static TGeoVolume* _createTGeoVolumeAssembly(const string& name)  {
   return e;
 }
 
+/// Default constructor
+PlacedVolume::Processor::Processor()   {
+}
+
+/// Default destructor
+PlacedVolume::Processor::~Processor()   {
+}
+
 /// Default constructor
 PlacedVolumeExtension::PlacedVolumeExtension()
   : TGeoExtension(), magic(0), refCount(0), volIDs() {
@@ -504,7 +512,7 @@ static PlacedVolume _addNode(TGeoVolume* par, TGeoVolume* daughter, TGeoMatrix*
   }
   TGeoVolume* parent = par;
   TObjArray* a = parent->GetNodes();
-  Int_t id = a ? a->GetEntries() : 0;
+  Int_t id = 5*(a ? a->GetEntries() : 0);
   if (transform && transform != detail::matrix::_identity()) {
     string nam = string(daughter->GetName()) + "_placement";
     transform->SetName(nam.c_str());
@@ -521,7 +529,9 @@ static PlacedVolume _addNode(TGeoVolume* par, TGeoVolume* daughter, TGeoMatrix*
     }
   }
   parent->AddNode(daughter, id, transform);
-  geo_node_t* n = static_cast<geo_node_t*>(parent->GetNode(id));
+  //geo_node_t* n = static_cast<geo_node_t*>(parent->GetNode(id));
+  TString nam_id = TString::Format("%s_%d", daughter->GetName(), id);
+  geo_node_t* n = static_cast<geo_node_t*>(parent->GetNode(nam_id));
   n->geo_node_t::SetUserExtension(new PlacedVolume::Object());
   return PlacedVolume(n);
 }
diff --git a/DDCore/src/plugins/StandardPlugins.cpp b/DDCore/src/plugins/StandardPlugins.cpp
index 4345a1cea..5574a27a6 100644
--- a/DDCore/src/plugins/StandardPlugins.cpp
+++ b/DDCore/src/plugins/StandardPlugins.cpp
@@ -20,6 +20,7 @@
 #include "DD4hep/DD4hepUnits.h"
 #include "DD4hep/DetectorTools.h"
 #include "DD4hep/PluginCreators.h"
+#include "DD4hep/VolumeProcessor.h"
 #include "DD4hep/DetectorProcessor.h"
 #include "DD4hep/DD4hepRootPersistency.h"
 #include "XML/DocumentHandler.h"
@@ -68,12 +69,27 @@ DECLARE_CONSTRUCTOR(Detector_constructor,create_description_instance)
  */
 static long display(Detector& description, int argc, char** argv) {
   TGeoManager& mgr = description.manager();
+  int vislevel = 4, visopt = 1;
   const char* opt = "ogl";
-  if (argc > 0) {
-    opt = argv[0];
+  for(int i = 0; i < argc && argv[i]; ++i)  {
+    if ( 0 == ::strncmp("-option",argv[i],4) )
+      opt = argv[++i];
+    else if ( 0 == ::strncmp("-level",argv[i],4) )
+      vislevel = ::atol(argv[++i]);
+    else if ( 0 == ::strncmp("-visopt",argv[i],4) )
+      visopt = ::atol(argv[++i]);
+    else  {
+      cout <<
+        "Usage: -plugin <name> -arg [-arg]                                                 \n"
+        "     -option <string> ROOT Draw option.    Default: 'ogl'                         \n"
+        "     -level  <number> Visualization level  [TGeoManager::SetVisLevel]  Default: 4 \n"
+        "     -visopt <number> Visualization option [TGeoManager::SetVisOption] Default: 1 \n"       
+        "\tArguments given: " << arguments(argc,argv) << endl << flush;
+      ::exit(EINVAL);
+    }
   }
-  mgr.SetVisLevel(4);
-  mgr.SetVisOption(1);
+  mgr.SetVisLevel(vislevel);
+  mgr.SetVisOption(visopt);
   TGeoVolume* vol = mgr.GetTopVolume();
   if (vol) {
     vol->Draw(opt);
@@ -644,6 +660,7 @@ DECLARE_APPLY(DD4hepCheckNominals,check_nominals)
  */
 static long dump_volume_tree(Detector& description, int argc, char** argv) {
   struct Actor {
+    bool m_printPathes = false;
     bool m_printVolIDs = false;
     bool m_printPointers = false;
     bool m_printPositions = false;
@@ -659,11 +676,12 @@ static long dump_volume_tree(Detector& description, int argc, char** argv) {
         char c = ::tolower(av[i][0]);
         char* p = av[i];
         if ( c == '-' ) { ++p; c = ::tolower(av[i][1]); }
-        if      ( ::strncmp(p,"volume_ids",3) == 0 ) m_printVolIDs = true;
-        else if ( ::strncmp(p,"positions",3) == 0  ) m_printPositions      = true;
-        else if ( ::strncmp(p,"materials",3) == 0  ) m_printMaterials      = true;
-        else if ( ::strncmp(p,"pointers",3) == 0   ) m_printPointers       = true;
-        else if ( ::strncmp(p,"sensitive",3) == 0  ) m_printSensitivesOnly = true;
+        if      ( ::strncmp(p,"volume_ids",3) == 0  ) m_printVolIDs         = true;
+        else if ( ::strncmp(p,"pathes",3)     == 0  ) m_printPathes         = true;
+        else if ( ::strncmp(p,"positions",3)  == 0  ) m_printPositions      = true;
+        else if ( ::strncmp(p,"materials",3)  == 0  ) m_printMaterials      = true;
+        else if ( ::strncmp(p,"pointers",3)   == 0  ) m_printPointers       = true;
+        else if ( ::strncmp(p,"sensitive",3)  == 0  ) m_printSensitivesOnly = true;
       }
     }
     ~Actor()  {
@@ -675,13 +693,17 @@ static long dump_volume_tree(Detector& description, int argc, char** argv) {
       }
     }
 
-    long dump(TGeoNode* ideal, TGeoNode* aligned,int level, PlacedVolume::VolIDs volids)  {
+    long dump(string prefix, TGeoNode* ideal, TGeoNode* aligned, int level, PlacedVolume::VolIDs volids)  {
       char fmt[128];
-      string opt_info;
       PlacedVolume pv(ideal);
       bool sensitive = false;
+      string opt_info, pref = prefix;
 
       ++m_numNodes;
+      if ( m_printPathes )   {
+        pref += "/";
+        pref += aligned->GetName();
+      }
       if ( m_printPositions || m_printVolIDs )  {
         stringstream log;
         if ( m_printPointers )    {
@@ -732,25 +754,25 @@ static long dump_volume_tree(Detector& description, int argc, char** argv) {
         char sens = pv.volume().isSensitive() ? 'S' : ' ';
         if ( m_printPointers )    {
           if ( ideal == aligned )  {
-            ::snprintf(fmt,sizeof(fmt),"%03d [Ideal:%p] %%-%ds %%-16s (%%s) \t %c %%s",
+            ::snprintf(fmt,sizeof(fmt),"%03d %%s [Ideal:%p] %%-%ds %%-16s (%%s) \t %c %%s",
                        level+1,(void*)ideal,2*level+1,sens);
           }
           else  {
-            ::snprintf(fmt,sizeof(fmt),"%03d Ideal:%p Aligned:%p %%-%ds %%-16s (%%s) %c %%s",
+            ::snprintf(fmt,sizeof(fmt),"%03d %%s Ideal:%p Aligned:%p %%-%ds %%-16s (%%s) %c %%s",
                        level+1,(void*)ideal,(void*)aligned,2*level+1,sens);
           }
         }
         else  {
           if ( ideal == aligned )  {
-            ::snprintf(fmt,sizeof(fmt),"%03d %%-%ds %%-16s (%%s) \t %c %%s",
+            ::snprintf(fmt,sizeof(fmt),"%03d %%s %%-%ds %%-16s (%%s) \t %c %%s",
                        level+1,2*level+1,sens);
           }
           else  {
-            ::snprintf(fmt,sizeof(fmt),"%03d Ideal:%p Aligned:%p %%-%ds %%-16s (%%s) %c %%s",
+            ::snprintf(fmt,sizeof(fmt),"%03d %%s Ideal:%p Aligned:%p %%-%ds %%-16s (%%s) %c %%s",
                        level+1,(void*)ideal,(void*)aligned,2*level+1,sens);
           }
         }
-        printout(INFO,"VolumeDump",fmt,"",
+        printout(INFO,"VolumeDump",fmt,pref.c_str(),"",
                  aligned->GetName(),
                  volume ? volume->GetShape()->IsA()->GetName() : "[Invalid Volume]",
                  opt_info.c_str());
@@ -761,19 +783,19 @@ static long dump_volume_tree(Detector& description, int argc, char** argv) {
         Material mat = vol.material();
         TGeoMaterial* mptr = mat->GetMaterial();
         bool ok = mat.A() == mptr->GetA() && mat.Z() == mptr->GetZ();
-        ::snprintf(fmt,sizeof(fmt),"%03d  %%-%ds Material: %%-16s A:%%f %%f   Z:%%f %%f",
+        ::snprintf(fmt,sizeof(fmt),"%03d %%s %%-%ds Material: %%-16s A:%%f %%f   Z:%%f %%f",
                    level+1,2*level+1);
         ++m_numMaterial;
         if ( !ok ) ++m_numMaterialERR;
         printout(ok ? INFO : ERROR,
-                 "VolumeDump", fmt, "", mat.name(), mat.A(), mptr->GetA(), mat.Z(), mptr->GetZ());
+                 "VolumeDump", fmt, pref.c_str(), "", mat.name(), mat.A(), mptr->GetA(), mat.Z(), mptr->GetZ());
       }
       for (Int_t idau = 0, ndau = aligned->GetNdaughters(); idau < ndau; ++idau)  {
         if ( ideal )   {
           TGeoNode*   ideal_daughter   = ideal->GetDaughter(idau);
           const char* daughter_name    = ideal_daughter->GetName();
           TGeoNode*   aligned_daughter = volume->GetNode(daughter_name);
-          dump(ideal_daughter, aligned_daughter, level+1, volids);
+          dump(pref, ideal_daughter, aligned_daughter, level+1, volids);
         }
         else  {
           printout(ERROR,"VolumeDump"," <ERROR: INVALID IDEAL Translation matrix>: %s",aligned->GetName());
@@ -787,7 +809,7 @@ static long dump_volume_tree(Detector& description, int argc, char** argv) {
   detail::tools::placementPath(description.world(), path);
   PlacedVolume  pv = detail::tools::findNode(description.world().placement(),place);
   Actor actor(argc,argv);
-  return actor.dump(description.world().placement().ptr(),pv.ptr(),0,PlacedVolume::VolIDs());
+  return actor.dump("",description.world().placement().ptr(),pv.ptr(),0,PlacedVolume::VolIDs());
 }
 DECLARE_APPLY(DD4hepVolumeDump,dump_volume_tree)
 
@@ -805,18 +827,79 @@ DECLARE_APPLY(DD4hepVolumeDump,dump_volume_tree)
  *  \date    18/11/2016
  */
 static int detelement_processor(Detector& description, int argc, char** argv)   {
+  bool       recursive = true;
   DetElement det = description.world();
   unique_ptr<DetectorProcessor> proc(dd4hep::createProcessor<DetectorProcessor>(description, argc, argv));
   for(int i=0, num=std::min(argc,3); i<num; ++i)  {
-    if ( 0 == ::strncmp(argv[i],"-detector",4) )  {
-      det = detail::tools::findElement(description, argv[++i]);
-      break;
+    if ( 0 == ::strncmp(argv[i],"-recursive",4) )
+      recursive = true;
+    else if ( 0 == ::strncmp(argv[i],"-no-recursive",7) )
+      recursive = false;
+    else if ( 0 == ::strncmp(argv[i],"-detector",4) )  {
+      string path = argv[++i];
+      det = detail::tools::findElement(description, path);
+      if ( det.isValid() )   {
+        continue;
+      }
+      except("DetElementProcessor",
+             "++ The detector element path:%s is not part of this description!",
+             path.c_str());
+    }
+    else  {
+      except("DetElementProcessor","++ Unknown plugin argument: %s",argv[i]);
     }
   }
-  return DetectorScanner().scan(*proc,det);
+  return DetectorScanner().scan(*proc, det, 0, recursive);
 }
 DECLARE_APPLY(DD4hep_DetElementProcessor,detelement_processor)
 
+// ======================================================================================
+/// Plugin function: Apply arbitrary functor callback on the tree of detector elements
+/**
+ *  Factory: dd4hep_DetElementProcessor
+ *
+ *  Invokation: -plugin dd4hep_DetElementProcessor 
+ *                      -detector /path/to/detElement (default: /world)
+ *                      -processor <factory-name> <processor-args>
+ *
+ *  \author  M.Frank
+ *  \version 1.0
+ *  \date    18/11/2016
+ */
+static int placed_volume_processor(Detector& description, int argc, char** argv)   {
+  bool         recursive = true;
+  PlacedVolume pv = description.world().placement();
+  unique_ptr<PlacedVolumeProcessor> proc(dd4hep::createProcessor<PlacedVolumeProcessor>(description, argc, argv));
+  
+  for(int i=0, num=std::min(argc,3); i<num; ++i)  {
+    if ( 0 == ::strncmp(argv[i],"-recursive",4) )
+      recursive = true;
+    else if ( 0 == ::strncmp(argv[i],"-no-recursive",7) )
+      recursive = false;
+    else if ( 0 == ::strncmp(argv[i],"-detector",4) )  {
+      string path = argv[++i];
+      DetElement det = detail::tools::findElement(description, path);
+      if ( det.isValid() )  {
+        pv = det.placement();
+        if ( pv.isValid() )  {
+          continue;
+        }
+        except("PlacedVolumeProcessor",
+               "++ The detector element with path:%s has no valid placement!",
+               path.c_str());
+      }
+      except("PlacedVolumeProcessor",
+             "++ The detector element path:%s is not part of this description!",
+             path.c_str());
+    }
+    else  {
+      except("PlacedVolumeProcessor","++ Unknown plugin argument: %s",argv[i]);
+    }
+  }
+  return PlacedVolumeScanner().scan(*proc, pv, 0, recursive);
+}
+DECLARE_APPLY(DD4hep_PlacedVolumeProcessor,placed_volume_processor)
+
 /// Basic entry point to print out the detector element hierarchy
 /**
  *  Factory: DD4hepDetectorDump, DD4hepDetectorVolumeDump
diff --git a/DDDB/src/plugins/CondDB2DDDB.cpp b/DDDB/src/plugins/CondDB2DDDB.cpp
index 33b0a6fc0..bac677d95 100644
--- a/DDDB/src/plugins/CondDB2DDDB.cpp
+++ b/DDDB/src/plugins/CondDB2DDDB.cpp
@@ -25,6 +25,7 @@
 #include "DDDB/DDDBDimension.h"
 #include "DDDB/DDDBHelper.h"
 #include "DDDB/DDDBConversion.h"
+#include "Math/Polar2D.h"
 
 // C/C++ include files
 
@@ -45,7 +46,7 @@ namespace dd4hep {
     using cond::AbstractMap;
 
     typedef AbstractMap::Params ConditionParams;
-
+    struct PositionRPhiZ {};
     struct DDDBLogVolRef {};
     struct DDDBElementRef  {};
     struct DDDBMaterialRef  {};
@@ -310,6 +311,11 @@ namespace dd4hep {
     template <> void Conv<DDDBConditionParam>::convert(xml_h element) const;
     template <> void Conv<Delta>::convert(xml_h element) const;
 
+    template <> void Conv<Position>::convert(xml_h element) const;
+    template <> void Conv<PositionRPhiZ>::convert(xml_h element) const;
+    template <> void Conv<RotationZYX>::convert(xml_h element) const;
+    template <> void Conv<Transform3D>::convert(xml_h element) const;
+
     void extract_transformation(Detector& description, void* context, xml_coll_t& collection, Transform3D& tr, int which=-1);
     void build_transformation(Detector& description, void* context, xml_h element, Transform3D& tr, int which=-1)   {
       xml_coll_t p(element,_U(star));
@@ -883,6 +889,15 @@ namespace dd4hep {
       //dddb_print(p);
     }
 
+    /// Specialized conversion of <posRPhiZ/> entities
+    template <> void Conv<PositionRPhiZ>::convert(xml_h element) const {
+      dddb_dim_t dim = element;
+      ROOT::Math::Polar2D<double> dim2(dim.r(0.0), dim.phi(0.0));
+      Position*  pos = _option<Position>();
+      pos->SetXYZ(dim2.X(), dim2.Y(), dim.z(0.0));
+      //dddb_print(p);
+    }
+
     /// Specialized conversion of <rotXYZ/> entities
     template <> void Conv<RotationZYX>::convert(xml_h element) const {
       dddb_dim_t   dim = element;
@@ -1620,6 +1635,13 @@ namespace dd4hep {
             apply = 1;
             ++count;
           }
+          else if ( tag == "posRPhiZ" && (which<0 || count == which) )   {
+            ROOT::Math::Polar2D<double> dim2(dim.r(0.0), dim.phi(0.0));
+            apply_trafo(apply, pos, rot, trafo, tr);
+            pos.SetXYZ(dim2.X(), dim2.Y(), dim.z(0.0));
+            apply = 1;
+            ++count;
+          }
           else if ( tag == "rotXYZ" && (which<0 || count == (which+1)) )  {
             rot.SetComponents(dim.rotZ(0.0), dim.rotY(0.0), dim.rotX(0.0));
             apply = 2;
diff --git a/DDG4/include/DDG4/DDG4Dict.h b/DDG4/include/DDG4/DDG4Dict.h
index 78fe3e90f..b08c80f8c 100644
--- a/DDG4/include/DDG4/DDG4Dict.h
+++ b/DDG4/include/DDG4/DDG4Dict.h
@@ -131,8 +131,6 @@ namespace dd4hep {
     inline ParticleExtension::~ParticleExtension()  {    }
     /// Default constructor
     inline Geant4Particle::Geant4Particle()   {     }
-    /// Copy constructor
-    inline Geant4Particle::Geant4Particle(const Geant4Particle&)   {  NO_CALL   }
     /// Default destructor
     inline Geant4Particle::~Geant4Particle()   {     }
     /// Remove daughter from set
diff --git a/DDG4/include/DDG4/Geant4InputAction.h b/DDG4/include/DDG4/Geant4InputAction.h
index 1125ed150..7c4be855a 100644
--- a/DDG4/include/DDG4/Geant4InputAction.h
+++ b/DDG4/include/DDG4/Geant4InputAction.h
@@ -56,7 +56,8 @@ namespace dd4hep  {
         EVENT_READER_NO_DIRECT=2,
         EVENT_READER_NO_PRIMARIES=4,
         EVENT_READER_NO_FACTORY=6,
-        EVENT_READER_IO_ERROR=8
+        EVENT_READER_IO_ERROR=8,
+        EVENT_READER_EOF=10
       };
     protected:
       /// File name to be opened and read
diff --git a/DDG4/include/DDG4/Geant4Particle.h b/DDG4/include/DDG4/Geant4Particle.h
index 7b3fc5764..9cce168b6 100644
--- a/DDG4/include/DDG4/Geant4Particle.h
+++ b/DDG4/include/DDG4/Geant4Particle.h
@@ -79,7 +79,7 @@ namespace dd4hep {
          G4PARTICLE_GEN_DECAYED+G4PARTICLE_GEN_DOCUMENTATION+
 	 G4PARTICLE_GEN_BEAM+G4PARTICLE_GEN_OTHER),
       G4PARTICLE_GEN_STATUS          = 0x3FF, // Mask for generator status (bit 0...9)
-
+      G4PARTICLE_GEN_STATUS_MASK     = 0xFFFF,// Mask for the raw generator status (max 65k values)
       // Simulation status of a given particle
       G4PARTICLE_SIM_CREATED         = 1<<10, // True if the particle has been created by the simulation program (rather than the generator)
       G4PARTICLE_SIM_BACKSCATTER     = 1<<11, // True if the particle is the result of a backscatter from a calorimeter shower.
@@ -102,9 +102,6 @@ namespace dd4hep {
      *  \ingroup DD4HEP_SIMULATION
      */
     class Geant4Particle {
-    private:
-      /// Copy constructor
-      Geant4Particle(const Geant4Particle& c);
     public:
       typedef std::set<int> Particles;
       /// Reference counter
@@ -114,13 +111,15 @@ namespace dd4hep {
       int g4Parent = 0, reason = 0, mask = 0;
       int steps  = 0, secondaries = 0, pdgID = 0;
       int status = 0, colorFlow[2] {0,0};
-      char charge = 0, _spare[3] {0,0,0};
+      unsigned short genStatus= 0;
+      char  charge = 0;
+      char  _spare[1] {0};
       float spin[3] {0E0,0E0,0E0};
-      // 12 ints + 4 floats should be aligned to 8 bytes....
-      double vsx = 0E0, vsy = 0E0, vsz = 0E0;
-      double vex = 0E0, vey = 0E0, vez = 0E0;
-      double psx = 0E0, psy = 0E0, psz = 0E0;
-      double pex = 0E0, pey = 0E0, pez = 0E0;
+      // 12 ints + 4 bytes + 3 floats should be aligned to 8 bytes....
+      double vsx  = 0E0, vsy  = 0E0, vsz = 0E0;
+      double vex  = 0E0, vey  = 0E0, vez = 0E0;
+      double psx  = 0E0, psy  = 0E0, psz = 0E0;
+      double pex  = 0E0, pey  = 0E0, pez = 0E0;
       double mass = 0E0, time = 0E0, properTime = 0E0;
       /// The list of daughters of this MC particle
       Particles parents;
@@ -137,8 +136,12 @@ namespace dd4hep {
       Geant4Particle();
       /// Constructor with ID initialization
       Geant4Particle(int part_id);
+      /// NO copy constructor
+      Geant4Particle(const Geant4Particle& copy) = delete;
       /// Default destructor
       virtual ~Geant4Particle();
+      /// NO assignment operation
+      Geant4Particle& operator=(const Geant4Particle& copy) = delete;
       /// Increase reference count
       Geant4Particle* addRef()  {
         ++ref;
diff --git a/DDG4/lcio/Geant4Output2LCIO.cpp b/DDG4/lcio/Geant4Output2LCIO.cpp
index b88373eb0..d49b99665 100644
--- a/DDG4/lcio/Geant4Output2LCIO.cpp
+++ b/DDG4/lcio/Geant4Output2LCIO.cpp
@@ -21,7 +21,6 @@
 #include "G4Threading.hh"
 #include "G4AutoLock.hh"
 
-#include "LCIOParticleExtension.h"
 #include "DD4hep/Detector.h"
 #include <G4Version.hh>
 
@@ -241,14 +240,8 @@ lcio::LCCollectionVec* Geant4Output2LCIO::saveParticles(Geant4ParticleMap* parti
 
       // Set generator status
       q->setGeneratorStatus(0);
-
-      // see if we have preserved the original generator code in the stdhep or LCIO reader
-      const LCIOParticleExtension* p_ext = dynamic_cast< LCIOParticleExtension*>( p->extension.get() ) ;
-
-      if( p_ext ) {
-
-	q->setGeneratorStatus(  p_ext->generatorStatus ) ;
-
+      if( p->genStatus ) {
+        q->setGeneratorStatus( p->genStatus ) ;
       } else {
 
 	if ( mask.isSet(G4PARTICLE_GEN_STABLE) )             q->setGeneratorStatus(1);
diff --git a/DDG4/lcio/LCIOEventReader.cpp b/DDG4/lcio/LCIOEventReader.cpp
index b403aaf85..64aedadaa 100644
--- a/DDG4/lcio/LCIOEventReader.cpp
+++ b/DDG4/lcio/LCIOEventReader.cpp
@@ -14,7 +14,6 @@
 
 // Framework include files
 #include "LCIOEventReader.h"
-#include "LCIOParticleExtension.h"
 #include "DD4hep/Printout.h"
 #include "DDG4/Geant4Primary.h"
 #include "DDG4/Geant4Context.h"
@@ -127,12 +126,8 @@ LCIOEventReader::readParticles(int event_number,
     else if ( genStatus == 4 ) status.set(G4PARTICLE_GEN_BEAM);
     else
       status.set(G4PARTICLE_GEN_OTHER);
-
-    // store the original generator status in case it is not in [0,4]
-    LCIOParticleExtension* p_ext = new LCIOParticleExtension ;
-    p_ext->generatorStatus =  mcp->getGeneratorStatus();
-    p->extension.adopt( p_ext ) ;
-
+    // Copy raw generator status
+    p->genStatus = genStatus&G4PARTICLE_GEN_STATUS_MASK;
 
     //fg: we simply add all particles without parents as with their own vertex.
     //    This might include the incoming beam particles, e.g. in
diff --git a/DDG4/lcio/LCIOFileReader.cpp b/DDG4/lcio/LCIOFileReader.cpp
index 69fd8c7ec..9a4c96aca 100644
--- a/DDG4/lcio/LCIOFileReader.cpp
+++ b/DDG4/lcio/LCIOFileReader.cpp
@@ -124,7 +124,7 @@ dd4hep::sim::LCIOFileReader::readParticleCollection(int /*event_number*/, EVENT:
       return EVENT_READER_OK;
     }
   }
-  return EVENT_READER_ERROR;
+  return EVENT_READER_EOF;
 }
 
 /// Set the parameters for the class, in particular the name of the MCParticle
diff --git a/DDG4/lcio/LCIOParticleExtension.h b/DDG4/lcio/LCIOParticleExtension.h
deleted file mode 100644
index 3519c3cd7..000000000
--- a/DDG4/lcio/LCIOParticleExtension.h
+++ /dev/null
@@ -1,50 +0,0 @@
-//==========================================================================
-//  AIDA Detector description implementation 
-//--------------------------------------------------------------------------
-// Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
-// All rights reserved.
-//
-// For the licensing terms see $DD4hepINSTALL/LICENSE.
-// For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
-//
-// Author     : M.Frank
-//
-//==========================================================================
-
-#ifndef DD4HEP_LCIOParticleExtension_H
-#define DD4HEP_LCIOParticleExtension_H
-
-#include "DDG4/Geant4Particle.h"
-
-/// Namespace for the AIDA detector description toolkit
-namespace dd4hep  {
-
-  /// Namespace for the Geant4 based simulation part of the AIDA detector description toolkit
-  namespace sim  {
-
-
-   /** Simple helper class for additional MCParticle information
-    *  used with LCIO readers and writers.
-    * 
-    *  @author  F.Gaede, DESY
-    *  @version 1.0
-    *  @ingroup DD4HEP_SIMULATION
-    */
-    class LCIOParticleExtension : public ParticleExtension{
-
-    public:
-
-      /// original generator status
-      int generatorStatus ;
-
-      /// Default constructor
-      LCIOParticleExtension() {}
-
-      /// Default destructor
-      virtual ~LCIOParticleExtension() {} ;
-   
-    };
-  }
-}
-
-#endif
diff --git a/DDG4/lcio/LCIOStdHepReader.cpp b/DDG4/lcio/LCIOStdHepReader.cpp
index 8351577ba..9acf2bef6 100644
--- a/DDG4/lcio/LCIOStdHepReader.cpp
+++ b/DDG4/lcio/LCIOStdHepReader.cpp
@@ -92,7 +92,7 @@ LCIOStdHepReader::moveToEvent(int event_number) {
     printout(INFO,"LCIOStdHepReader::moveToEvent","Event number before skipping: %d", m_currEvent );
     while ( m_currEvent < event_number ) {
       EVENT::LCCollection* particles = m_reader->readEvent();
-      if ( 0 == particles ) return EVENT_READER_ERROR;
+      if ( 0 == particles ) return EVENT_READER_EOF;
       delete particles;
       ++m_currEvent;
     }
@@ -108,6 +108,6 @@ LCIOStdHepReader::readParticleCollection(int /*event_number*/, EVENT::LCCollecti
   *particles = m_reader->readEvent();
   ++m_currEvent;
 
-  if ( 0 == *particles ) return EVENT_READER_ERROR;
+  if ( 0 == *particles ) return EVENT_READER_EOF;
   return EVENT_READER_OK;
 }
diff --git a/DDG4/plugins/Geant4EventReaderHepEvt.cpp b/DDG4/plugins/Geant4EventReaderHepEvt.cpp
index 02bf25b1b..1cac6db73 100644
--- a/DDG4/plugins/Geant4EventReaderHepEvt.cpp
+++ b/DDG4/plugins/Geant4EventReaderHepEvt.cpp
@@ -156,10 +156,12 @@ Geant4EventReaderHepEvt::readParticles(int /* event_number */,
 
 
   // First check the input file status
-  if ( !m_input.good() || m_input.eof() )   {
+  if ( m_input.eof() )   {
+    return EVENT_READER_EOF;
+  }
+  else if ( !m_input.good() )   {
     return EVENT_READER_IO_ERROR;
   }
-
   //static const double c_light = 299.792;// mm/ns
   //
   //  Read the event, check for errors
@@ -167,7 +169,7 @@ Geant4EventReaderHepEvt::readParticles(int /* event_number */,
   unsigned NHEP(0);  // number of entries
   m_input >> NHEP;
 
-  if( m_input.eof() ){ return EVENT_READER_IO_ERROR; }
+  if( m_input.eof() )  { return EVENT_READER_EOF; }
 
 
   //check loop variable read from input file and chack that is reasonable
@@ -175,7 +177,7 @@ Geant4EventReaderHepEvt::readParticles(int /* event_number */,
 
   if( NHEP > 1e6 ){ 
     printout(ERROR,"EventReaderHepEvt::readParticles","Cannot read in more than million particles, but  %d requested", NHEP );
-    return EVENT_READER_IO_ERROR; 
+    return EVENT_READER_EOF; 
   }
 
   
@@ -223,7 +225,7 @@ Geant4EventReaderHepEvt::readParticles(int /* event_number */,
               >> VHEP4;
 
     if(m_input.eof())
-      return EVENT_READER_IO_ERROR;
+      return EVENT_READER_EOF;
 
     //
     //  create a MCParticle and fill it from stdhep info
@@ -262,6 +264,8 @@ Geant4EventReaderHepEvt::readParticles(int /* event_number */,
     else if ( ISTHEP == 2 ) status.set(G4PARTICLE_GEN_DECAYED);
     else if ( ISTHEP == 3 ) status.set(G4PARTICLE_GEN_DOCUMENTATION);
     else                    status.set(G4PARTICLE_GEN_DOCUMENTATION);
+    //  RAW Generator status
+    p->genStatus = ISTHEP&G4PARTICLE_GEN_STATUS_MASK;
 
     //fixme: need to define the correct logic for selecting the particle to use
     //       for the _one_ event vertex 
diff --git a/DDG4/plugins/Geant4EventReaderHepMC.cpp b/DDG4/plugins/Geant4EventReaderHepMC.cpp
index 47dfbeb5a..af680ba41 100644
--- a/DDG4/plugins/Geant4EventReaderHepMC.cpp
+++ b/DDG4/plugins/Geant4EventReaderHepMC.cpp
@@ -232,7 +232,7 @@ Geant4EventReaderHepMC::readParticles(int /* ev_id */,
   primary_vertex->z = 0;
 
   if ( !m_events->ok() )  {
-    return EVENT_READER_IO_ERROR;
+    return EVENT_READER_EOF;
   }
   else if ( m_events->read() )  {
     EventStream::Particles& parts = m_events->particles();
@@ -266,18 +266,18 @@ Geant4EventReaderHepMC::readParticles(int /* ev_id */,
 
       //ad particles to the 'primary vertex'
       if ( p->parents.size() == 0 )  {
-	PropertyMask status(p->status);
-	if ( status.isSet(G4PARTICLE_GEN_EMPTY) || status.isSet(G4PARTICLE_GEN_DOCUMENTATION) )
-	  primary_vertex->in.insert(p->id);  // Beam particles and primary quarks etc.
-	else
-	  primary_vertex->out.insert(p->id); // Stuff, to be given to Geant4 together with daughters
+        PropertyMask status(p->status);
+        if ( status.isSet(G4PARTICLE_GEN_EMPTY) || status.isSet(G4PARTICLE_GEN_DOCUMENTATION) )
+          primary_vertex->in.insert(p->id);  // Beam particles and primary quarks etc.
+        else
+          primary_vertex->out.insert(p->id); // Stuff, to be given to Geant4 together with daughters
       }
       
     }
     ++m_currEvent;
     return EVENT_READER_OK;
   }
-  return EVENT_READER_IO_ERROR;
+  return EVENT_READER_EOF;
 }
 
 void HepMC::fix_particles(EventStream& info)  {
@@ -436,7 +436,8 @@ int HepMC::read_particle(EventStream &info, istringstream& input, Geant4Particle
   else if ( stat == 0x3 ) status.set(G4PARTICLE_GEN_DOCUMENTATION);
   else if ( stat == 0x4 ) status.set(G4PARTICLE_GEN_DOCUMENTATION);
   else if ( stat == 0xB ) status.set(G4PARTICLE_GEN_DOCUMENTATION);
-
+  p->genStatus = stat&G4PARTICLE_GEN_STATUS_MASK;
+  
   // read flow patterns if any exist
   for (int i = 0; i < size; ++i ) {
     input >> p->colorFlow[0] >> p->colorFlow[1];
@@ -629,8 +630,8 @@ int HepMC::read_pdf(EventStream &, istringstream & input)  {
     int pdf_id1=0, pdf_id2=0;
     input >> pdf_id1 >> pdf_id2;
     /*
-    pdf->set_pdf_id1( pdf_id1 );
-    pdf->set_pdf_id2( pdf_id2 );
+      pdf->set_pdf_id1( pdf_id1 );
+      pdf->set_pdf_id2( pdf_id2 );
     */
   }
   return input.fail() ? 0 : 1;
diff --git a/DDG4/src/Geant4InputAction.cpp b/DDG4/src/Geant4InputAction.cpp
index cbba3e422..f07a39010 100644
--- a/DDG4/src/Geant4InputAction.cpp
+++ b/DDG4/src/Geant4InputAction.cpp
@@ -95,7 +95,7 @@ Geant4EventReader::moveToEvent(int event_number)   {
 #else
 /// Move to the indicated event number.
 Geant4EventReader::EventReaderStatus
-Geant4EventReader::moveToEvent(int event_number)   {
+Geant4EventReader::moveToEvent(int /* event_number */)   {
   return EVENT_READER_OK;
 }
 #endif
@@ -159,7 +159,9 @@ int Geant4InputAction::readParticles(int evt_number,
   }
   int status = m_reader->moveToEvent(evid);
   if ( Geant4EventReader::EVENT_READER_OK != status )  {
-    string msg = issue(evid)+"Error when moving to event - may be end of file.";
+    string msg = issue(evid)+"Error when moving to event - ";
+    if ( status == Geant4EventReader::EVENT_READER_EOF ) msg += " EOF: [end of file].";
+    else msg += " Unknown error condition";
     if ( m_abort )  {
       abortRun(msg,"Error when reading file %s",m_input.c_str());
       return status;
@@ -172,7 +174,9 @@ int Geant4InputAction::readParticles(int evt_number,
 
 
   if ( Geant4EventReader::EVENT_READER_OK != status )  {
-    string msg = issue(evid)+"Error when moving to event - may be end of file.";
+    string msg = issue(evid)+"Error when moving to event - ";
+    if ( status == Geant4EventReader::EVENT_READER_EOF ) msg += " EOF: [end of file].";
+    else msg += " Unknown error condition";
     if ( m_abort )  {
       abortRun(msg,"Error when reading file %s",m_input.c_str());
       return status;
diff --git a/DDG4/src/Geant4Particle.cpp b/DDG4/src/Geant4Particle.cpp
index 0a7071e10..89aa18c13 100644
--- a/DDG4/src/Geant4Particle.cpp
+++ b/DDG4/src/Geant4Particle.cpp
@@ -34,59 +34,16 @@ typedef detail::ReferenceBitMask<int> PropertyMask;
 ParticleExtension::~ParticleExtension() {
 }
 
-/// Copy constructor
-Geant4Particle::Geant4Particle(const Geant4Particle& c)
-: ref(1), id(c.id), originalG4ID(c.originalG4ID), g4Parent(c.g4Parent), reason(c.reason), mask(c.mask),
-  steps(c.steps), secondaries(c.secondaries), pdgID(c.pdgID),
-  status(c.status), charge(0),
-  vsx(c.vsx), vsy(c.vsy), vsz(c.vsz),
-  vex(c.vex), vey(c.vey), vez(c.vez),
-  psx(c.psx), psy(c.psy), psz(c.psz),
-  pex(c.pex), pey(c.pey), pez(c.pez),
-  mass(c.mass), time(c.time), properTime(c.properTime),
-  parents(c.parents), daughters(c.daughters), extension(),
-  process(c.process)//, definition(c.definition)
-{
-  InstanceCount::increment(this);
-  spin[0] = c.spin[0];
-  spin[1] = c.spin[1];
-  spin[2] = c.spin[2];
-  colorFlow[0] = c.colorFlow[0];
-  colorFlow[1] = c.colorFlow[1];
-}
-
 /// Default constructor
-Geant4Particle::Geant4Particle()
-: ref(1), id(0), originalG4ID(0), g4Parent(0), reason(0), mask(0),
-  steps(0), secondaries(0), pdgID(0),
-  status(0), charge(0),
-  vsx(0.0), vsy(0.0), vsz(0.0),
-  vex(0.0), vey(0.0), vez(0.0),
-  psx(0.0), psy(0.0), psz(0.0),
-  pex(0.0), pey(0.0), pez(0.0),
-  mass(0.0), time(0.0), properTime(0.0),
-  daughters(), extension(), process(0)//, definition(0)
+Geant4Particle::Geant4Particle() : ref(1)
 {
   InstanceCount::increment(this);
-  spin[0] = spin[1] = spin[2] = 0;
-  colorFlow[0] = colorFlow[1] = 0;
 }
 
 /// Constructor with ID initialization
-Geant4Particle::Geant4Particle(int part_id)
-: ref(1), id(part_id), originalG4ID(part_id), g4Parent(0), reason(0), mask(0),
-  steps(0), secondaries(0), pdgID(0),
-  status(0), charge(0),
-  vsx(0.0), vsy(0.0), vsz(0.0),
-  vex(0.0), vey(0.0), vez(0.0),
-  psx(0.0), psy(0.0), psz(0.0),
-  pex(0.0), pey(0.0), pez(0.0),
-  mass(0.0), time(0.0), properTime(0.0),
-  daughters(), extension(), process(0)//, definition(0)
+Geant4Particle::Geant4Particle(int part_id) : ref(1), id(part_id), originalG4ID(part_id)
 {
   InstanceCount::increment(this);
-  spin[0] = spin[1] = spin[2] = 0;
-  colorFlow[0] = colorFlow[1] = 0;
 }
 
 /// Default destructor
@@ -111,6 +68,7 @@ Geant4Particle& Geant4Particle::get_data(Geant4Particle& c)   {
     reason      = c.reason;
     mask        = c.mask;
     status      = c.status;
+    genStatus   = c.genStatus;
     charge      = c.charge;
     steps       = c.steps;
     secondaries = c.secondaries;
diff --git a/DDG4/src/Geant4ParticleHandler.cpp b/DDG4/src/Geant4ParticleHandler.cpp
index c13fbbd09..6cad82846 100644
--- a/DDG4/src/Geant4ParticleHandler.cpp
+++ b/DDG4/src/Geant4ParticleHandler.cpp
@@ -226,6 +226,7 @@ void Geant4ParticleHandler::begin(const G4Track* track)   {
     m_currTrack.reason       = prim_part->reason|reason;
     m_currTrack.mask         = prim_part->mask;
     m_currTrack.status       = prim_part->status;
+    m_currTrack.genStatus    = prim_part->genStatus;
     m_currTrack.spin[0]      = prim_part->spin[0];
     m_currTrack.spin[1]      = prim_part->spin[1];
     m_currTrack.spin[2]      = prim_part->spin[2];
@@ -241,6 +242,7 @@ void Geant4ParticleHandler::begin(const G4Track* track)   {
     m_currTrack.reason       = reason;
     m_currTrack.mask         = 0;
     m_currTrack.status       = G4PARTICLE_SIM_CREATED;
+    m_currTrack.genStatus    = 0;
     m_currTrack.spin[0]      = 0;
     m_currTrack.spin[1]      = 0;
     m_currTrack.spin[2]      = 0;
diff --git a/UtilityApps/src/run_plugin.h b/UtilityApps/src/run_plugin.h
index 295a521eb..0c0d88cb3 100644
--- a/UtilityApps/src/run_plugin.h
+++ b/UtilityApps/src/run_plugin.h
@@ -71,22 +71,28 @@ namespace {
   std::ostream& print_default_args()  {
     std::cout << 
       "        -build_type <number/string> Specify the build type                         \n"
-      "                     [OPTIONAL]     MUST come immediately after the -compact input.\n"
+      "                        [OPTIONAL]     MUST come immediately after the -compact input.\n"
       "                                    Default for each file is: BUILD_DEFAULT [=1]   \n"
       "                                    Allowed: BUILD_SIMU [=1], BUILD_RECO [=2],     \n"
       "                                    BUILD_DISPLAY [=3] or BUILD_ENVELOPE [=4]      \n"
-      "        -destroy     [OPTIONAL]     Force destruction of the Detector instance     \n"
+      "        -destroy        [OPTIONAL]  Force destruction of the Detector instance     \n"
       "                                    before exiting the application                 \n"
-      "        -volmgr      [OPTIONAL]     Load and populate phys.volume manager to       \n"
+      "        -no-destroy     [OPTIONAL]  Inhibit destruction of the Detector instance   \n"
+      "        -volmgr         [OPTIONAL]  Load and populate phys.volume manager to       \n"
       "                                    check the volume ids for duplicates etc.       \n"
+      "        -no-volmgr      [OPTIONAL]  Inhibit loading phys.volume manager            \n"
+      "        -interpreter    [OPTIONAL]  Start ROOT C++ interpreter after execution.    \n"
+      "        -no-interpreter [OPTIONAL]  Inhibit ROOT C++ interpreter.                  \n"
       "        -print      <number/string> Specify output level. Default: INFO(=3)        \n"
-      "                     [OPTIONAL]     Allowed values: VERBOSE(=1), DEBUG(=2),        \n"
+      "                        [OPTIONAL]  Allowed values: VERBOSE(=1), DEBUG(=2),        \n"
       "                                    INFO(=3), WARNING(=4), ERROR(=5), FATAL(=6)    \n"
       "                                    The lower the level, the more printout...      \n"
+      "        -dry-run        [OPTIONAL]  Only load description. No execution.           \n"
       "        -plugin <name> <args>       Execute plugin <name> after loading geometry.  \n"
-      "                                    All arguments following until the next '-'     \n"
-      "                                    are considered as arguments to the plugin.     \n"
-      "        -ui                         Install ROOT interpreter UI for dd4hep         \n"
+      "                                    All arguments following until the next         \n"
+      "                                    '-plugin' tag are considered as arguments      \n"
+      "                                    to the current plugin.                         \n"
+      "        -ui             [OPTIONAL]  Install ROOT interpreter UI for dd4hep         \n"
       "                                    Will show up in the global interpreter variable\n"
       "                                    'dd4hep::ROOTUI* gdd4hepUI' and allows the user\n"
       "                                    to interact with the the Detector instance from the\n"
diff --git a/examples/DDCMS/CMS-tracker2.png b/examples/DDCMS/CMS-tracker2.png
new file mode 100644
index 0000000000000000000000000000000000000000..55f737849000c897e2a9d37c104a5db9eb4b1758
GIT binary patch
literal 259860
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%0A+(!_{P}bIe()p{OK0>D?|ZqLVb@a;BV^qZ{Isn
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%0D)eR0YA(~q8x5X&ixcNIi
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
P00000NkvXXu0mjf0AlA}

literal 0
HcmV?d00001

diff --git a/examples/DDCMS/data/cms_tracker.xml b/examples/DDCMS/data/cms_tracker.xml
index c353d197c..66da5a09d 100644
--- a/examples/DDCMS/data/cms_tracker.xml
+++ b/examples/DDCMS/data/cms_tracker.xml
@@ -1,16 +1,16 @@
 <?xml version="1.0"?>
 <DDDefinition>
   <debug>
+    <debug_rotations/>
+    <debug_materials/>
 <!-- 
     <debug_shapes/>
     <debug_volumes/>
     <debug_constants/>
-    <debug_rotations/>
-    <debug_materials/>
     <debug_includes/>
     <debug_namespaces/>
-    <debug_algorithms/>
     <debug_placements/>
+    <debug_algorithms/>
 -->
   </debug>
   <open_geometry/>
@@ -62,29 +62,46 @@
         <vis name="pixbarladderhalf_PixelBarrelCFStripHalf"      alpha="1"     r="1"    g="0.1"  b="0.1" showDaughters="true" visible="true"/>
       <vis name="pixbarladderhalf_PixelBarrelLadderHalf"         alpha="0.8"   r="0.6"  g="0.6"  b="0.0" showDaughters="true" visible="true"/>
 
-          <vis name="pixbarladderfull_PixelBarrelCable1Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true" visible="true"/>
-          <vis name="pixbarladderfull_PixelBarrelCable2Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true" visible="true"/>
-          <vis name="pixbarladderfull_PixelBarrelCable3Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true" visible="true"/>
-          <vis name="pixbarladderfull_PixelBarrelCable4Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true" visible="true"/>
-        <vis name="pixbarladderfull_PixelBarrelCableBoxFull"     alpha="0.4"   r="0.4"  g="0.2"  b="0.2" showDaughters="true" visible="true"/>
-        <vis name="pixbarladderfull_PixelBarrelModuleBoxFull"    alpha="0.6"   r="0.2"  g="0.2"  b="0.2" showDaughters="true" visible="true"/>
-        <vis name="pixbarladderfull_PixelBarrelCFStripFull"      alpha="1"     r="1"    g="0.1"  b="0.1" showDaughters="true" visible="true"/>
-      <vis name="pixbarladderfull_PixelBarrelLadderFull"         alpha="0.8"   r="0.6"  g="0.6"  b="0.0" showDaughters="true" visible="true"/>
-
-        <vis name="pixbarlayer0_PixelBarrelLayer0Coolant"        alpha="0.5"   r="0"    g="0.4"  b="0.6" showDaughters="true" visible="false"/>
-      <vis name="pixbarlayer0_PixelBarrelLayer0CoolTube"         alpha="1.0"   r="0"    g="0.2"  b="0.8" showDaughters="true" visible="true"/>
-    <vis name="pixbarlayer0_PixelBarrelLayer0"                   alpha="0.5"   r="0.6"  g="0.6"  b="0.6" showDaughters="true" visible="true"/>
-
-        <vis name="pixbarlayer1_PixelBarrelLayer1Coolant"        alpha="0.5"   r="0"    g="0.4"  b="0.6" showDaughters="true" visible="false"/>
-      <vis name="pixbarlayer1_PixelBarrelLayer1CoolTube"         alpha="1.0"   r="0"    g="0.2"  b="0.8" showDaughters="true" visible="true"/>
-    <vis name="pixbarlayer1_PixelBarrelLayer1"                   alpha="0.5"   r="0.6"  g="0.6"  b="0.6" showDaughters="true" visible="true"/>
-
-        <vis name="pixbarlayer2_PixelBarrelLayer2Coolant"        alpha="0.5"   r="0"    g="0.4"  b="0.6" showDaughters="true" visible="false"/>
-      <vis name="pixbarlayer2_PixelBarrelLayer2CoolTube"         alpha="1.0"   r="0"    g="0.2"  b="0.8" showDaughters="true" visible="true"/>
-    <vis name="pixbarlayer2_PixelBarrelLayer2"                   alpha="0.5"   r="0.6"  g="0.6"  b="0.6" showDaughters="true" visible="true"/>
-
+          <vis name="pixbarladderfull_PixelBarrelCable1Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true"  visible="true"/>
+          <vis name="pixbarladderfull_PixelBarrelCable2Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true"  visible="true"/>
+          <vis name="pixbarladderfull_PixelBarrelCable3Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true"  visible="true"/>
+          <vis name="pixbarladderfull_PixelBarrelCable4Full"     alpha="1.0"   r="0"    g="1"    b="1"   showDaughters="true"  visible="true"/>
+        <vis name="pixbarladderfull_PixelBarrelCableBoxFull"     alpha="0.4"   r="0.4"  g="0.2"  b="0.2" showDaughters="true"  visible="true"/>
+        <vis name="pixbarladderfull_PixelBarrelModuleBoxFull"    alpha="0.6"   r="0.2"  g="0.2"  b="0.2" showDaughters="true"  visible="true"/>
+        <vis name="pixbarladderfull_PixelBarrelCFStripFull"      alpha="1"     r="1"    g="0.1"  b="0.1" showDaughters="true"  visible="true"/>
+      <vis name="pixbarladderfull_PixelBarrelLadderFull"         alpha="0.8"   r="0.6"  g="0.6"  b="0.0" showDaughters="true"  visible="true"/>
+
+        <vis name="pixbarlayer0_PixelBarrelLayer0Coolant"        alpha="0.5"   r="0"    g="0.4"  b="0.6" showDaughters="true"  visible="false"/>
+      <vis name="pixbarlayer0_PixelBarrelLayer0CoolTube"         alpha="1.0"   r="0"    g="0.2"  b="0.8" showDaughters="true"  visible="true"/>
+    <vis name="pixbarlayer0_PixelBarrelLayer0"                   alpha="0.5"   r="0.6"  g="0.6"  b="0.6" showDaughters="true"  visible="true"/>
+
+        <vis name="pixbarlayer1_PixelBarrelLayer1Coolant"        alpha="0.5"   r="0"    g="0.4"  b="0.6" showDaughters="true"  visible="false"/>
+      <vis name="pixbarlayer1_PixelBarrelLayer1CoolTube"         alpha="1.0"   r="0"    g="0.2"  b="0.8" showDaughters="true"  visible="true"/>
+    <vis name="pixbarlayer1_PixelBarrelLayer1"                   alpha="0.5"   r="0.6"  g="0.6"  b="0.6" showDaughters="true"  visible="true"/>
+
+        <vis name="pixbarlayer2_PixelBarrelLayer2Coolant"        alpha="0.5"   r="0"    g="0.4"  b="0.6" showDaughters="true"  visible="false"/>
+      <vis name="pixbarlayer2_PixelBarrelLayer2CoolTube"         alpha="1.0"   r="0"    g="0.2"  b="0.8" showDaughters="true"  visible="true"/>
+    <vis name="pixbarlayer2_PixelBarrelLayer2"                   alpha="0.5"   r="0.6"  g="0.6"  b="0.6" showDaughters="true"  visible="true"/>f 
+    <vis name="solid-light-grey"                                 alpha="0.5"   r="0.5"  g="0.5"  b="0.5" showDaughters="true"  visible="true"/>
+    <vis name="solid-red"                                        alpha="1.0"   r="1.0"  g="0.0"  b="0.0" showDaughters="true"  visible="true"/>
+    <vis name="solid-green"                                      alpha="1.0"   r="0.0"  g="1.0"  b="0.0" showDaughters="true"  visible="true"/>
+    <vis name="solid-blue"                                       alpha="1.0"   r="0.0"  g="0.0"  b="1.0" showDaughters="true"  visible="true"/>
+    <vis name="CMS_Invisible"                                    alpha="1"     r="0.0"  g="0.0"  b="1"   showDaughters="true"  visible="false"/>
+
+    <vismaterial name="AL"                type="solid-light-grey"/>
+    <vismaterial name="SI"                type="solid-red"/>
+    <vismaterial name="materials_Air"     type="CMS_Invisible"/>
+    <vismaterial name="materials_E_Air"   type="CMS_Invisible"/>
+    <vismaterial name="materials_H_Air"   type="CMS_Invisible"/>
+    <vismaterial name="materials_M_B_Air" type="CMS_Invisible"/>
+    <vismaterial name="materials_M_F_Air" type="CMS_Invisible"/>
+    <vismaterial name="materials_T_Air"   type="CMS_Invisible"/>
+    <vismaterial name="materials_V_Air"   type="CMS_Invisible"/>
+    <vismaterial name="trackermaterial_T_Aluminium" type="solid-light-grey"/>
+    <vismaterial name="tecmaterial_TEC_petalinsert" type="solid-blue"/>
   </VisSection>
 
+  <DisabledAlgo  name="track:DDTOBRadCableAlgo"/>
   <ConstantsSection label="pixfwd" eval="true">
         <Constant name="AnchorZ" value="0.*mm"/>
         <Constant name="ZPixelForward" value="325.*mm"/>
@@ -97,15 +114,12 @@
     <Include ref="materials.xml"/>
     <Include ref="trackermaterial.xml"/>
     <Include ref="tibtidcommonmaterial.xml"/>
-    <Include ref="pixfwdMaterials.xml"/>
 
     <Include ref="vacuum.xml"/>
     <Include ref="cmsextent.xml"/>
     <Include ref="cms.xml"/>
 
-<!--
--->
-
+    <Include ref="pixfwdMaterials.xml"/>
     <Include ref="pixbarmaterial.xml"/>
     <Include ref="pixbarladder.xml"/>
     <Include ref="pixbarladderfull.xml"/>
@@ -116,9 +130,6 @@
     <Include ref="pixbarlayer2.xml"/>
     <Include ref="pixbar.xml"/>
 
-<!--
--->
-
     <Include ref="tecmaterial.xml"/>
 
     <Include ref="tecpetpar.xml"/>
@@ -183,8 +194,6 @@
     <Include ref="tec.xml"/>
     <Include ref="tecservices.xml"/>
 
-<!--
--->
     <Include ref="tibmaterial.xml"/>
 
     <Include ref="tibmodpar.xml"/>
@@ -223,8 +232,6 @@
 
     <Include ref="tib.xml"/>
 
-<!--
--->
     <Include ref="tidmaterial.xml"/>
     <Include ref="tidmodpar.xml"/>
     <Include ref="tidringpar.xml"/>
@@ -250,18 +257,14 @@
     <Include ref="tibtidservices.xml"/>
     <Include ref="tibtidservicesb.xml"/>
     <Include ref="tibtidservicesf.xml"/>
-<!--
--->
 
     <Include ref="tobmaterial.xml"/>
     <Include ref="tobmodpar.xml"/>
-
+    <Include ref="tobrodpar.xml"/>
     <Include ref="tobmodule0.xml"/>
     <Include ref="tobmodule2.xml"/>
     <Include ref="tobmodule4.xml"/>
 
-    <Include ref="tobrodpar.xml"/>
-
     <Include ref="tobrod0.xml"/>
     <Include ref="tobrod0c.xml"/>
     <Include ref="tobrod0h.xml"/>
@@ -288,14 +291,14 @@
     <Include ref="tobrod5.xml"/>
     <Include ref="tobrod5h.xml"/>
     <Include ref="tobrod5l.xml"/>
-
     <Include ref="tob.xml"/>
 
+    <Include ref="pixfwdCommon.xml"/>
 
 <!--
-    <Include ref="pixfwdCommon.xml"/>
-    <Include ref="pixfwdPanelBase.xml"/>
+    <Include ref="pixfwdBlade.xml"/>
     <Include ref="pixfwdPanel.xml"/>
+    <Include ref="pixfwdPanelBase.xml"/>
     <Include ref="pixfwdDisk.xml"/>
     <Include ref="pixfwdCylinder.xml"/>
     <Include ref="pixfwdNipple.xml"/>
@@ -308,27 +311,23 @@
     <Include ref="pixfwdPlaq2x5.xml"/>
 
     <Include ref="pixfwd.xml"/>
-
 -->
 
+    <Include ref="trackerbulkhead.xml"/>
+
     <Include ref="trackertib.xml"/>
     <Include ref="trackertid.xml"/>
     <Include ref="trackertec.xml"/>
-    <Include ref="trackertob.xml"/>
-    <Include ref="trackerbulkhead.xml"/>
+
     <Include ref="trackerother.xml"/>
     <Include ref="trackerpixbar.xml"/>
+
     <Include ref="tracker.xml"/>
+    <Include ref="trackertob.xml"/>
 
   </IncludeSection>
 
   <PosPartSection label="">
-<!--
-    <PosPart copyNumber="1">
-	<rParent name="world_volume"/>
-	<rChild name="tec:TEC"/>
-    </PosPart>
--->
     <PosPart copyNumber="2">
 	<rParent name="world_volume"/>
 	<rChild name="tracker:Tracker"/>
diff --git a/examples/DDCMS/data/pixfwdBlade.xml b/examples/DDCMS/data/pixfwdBlade.xml
index 6588cc68b..b8b8c0450 100644
--- a/examples/DDCMS/data/pixfwdBlade.xml
+++ b/examples/DDCMS/data/pixfwdBlade.xml
@@ -45,7 +45,7 @@
          
          -->
     <!-- Blade geometry parameters: Input from drawings -->
-    <ConstantsSection label="Input" eval="true">
+    <ConstantsSection label="Common" eval="true">
         <Constant name="T01" value="0.5*mm"/>
         <!-- Blade01.gif -->
         <Constant name="T02" value="3.0*mm"/>
diff --git a/examples/DDDB/CMakeLists.txt b/examples/DDDB/CMakeLists.txt
index 01c92760a..a805bcb8c 100644
--- a/examples/DDDB/CMakeLists.txt
+++ b/examples/DDDB/CMakeLists.txt
@@ -31,6 +31,7 @@ if (DD4HEP_USE_XERCESC)
     )
   #---Package installation procedure(s) -----------------------------------------
   install ( PROGRAMS scripts/run_dddb.sh DESTINATION bin)
+  install ( PROGRAMS scripts/display_dddb.sh DESTINATION bin)
   install ( PROGRAMS scripts/extract_dddb.sh DESTINATION bin)
   install ( FILES    data/DDDB.tar.gz DESTINATION examples/DDDB)
   #---Testing--------------------------------------------------------------------
diff --git a/examples/DDDB/scripts/display_dddb.sh b/examples/DDDB/scripts/display_dddb.sh
new file mode 100755
index 000000000..fdb7390ea
--- /dev/null
+++ b/examples/DDDB/scripts/display_dddb.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+#==========================================================================
+#  AIDA Detector description implementation 
+#--------------------------------------------------------------------------
+# Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
+# All rights reserved.
+#
+# For the licensing terms see $DD4hepINSTALL/LICENSE.
+# For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
+#
+#==========================================================================
+#
+#  @author M.Frank
+#
+#==========================================================================
+if test -z "${DDDB_DIR}"; then
+    target=/tmp;
+    if test -n "$USER"; then
+        target=/tmp/$USER;
+    fi;
+    DDDB_DIR=${target}/DDDB;
+fi;
+export DDDB_DIR;
+. ${DD4hepINSTALL}/bin/run_test_DDDB.sh \
+  ${DD4hepINSTALL}/bin/run_dddb.sh \
+  -config DD4hep_ConditionsManagerInstaller \
+  -visualize \
+  -attr file:${DDDB_DIR}/Visattrs.xml $*
diff --git a/examples/DDDB/scripts/run_dddb.sh b/examples/DDDB/scripts/run_dddb.sh
index 9911c2e16..1ed14f98f 100755
--- a/examples/DDDB/scripts/run_dddb.sh
+++ b/examples/DDDB/scripts/run_dddb.sh
@@ -27,6 +27,7 @@ if test -z "${DDDB_DIR}"; then
     fi;
     DDDB_DIR=${target}/DDDB;
 fi;
+export DDDB_DIR;
 loader="-loader DDDB_FileReader";
 params="-params file:${DDDB_DIR}/Parameters.xml";
 input="-input file:${DDDB_DIR}/DDDB/lhcb.xml";
-- 
GitLab