From 11e5b6bce7315949f4184a0832e6393e1aad8144 Mon Sep 17 00:00:00 2001
From: Markus Frank <markus.frank@cern.ch>
Date: Wed, 19 Feb 2014 13:29:55 +0000
Subject: [PATCH] Fix compiler trouble after import

---
 DDRec/CMakeLists.txt                          |   8 +-
 DDRec/include/DDRec/BarrelDetector.h          |  21 +-
 DDRec/include/DDRec/Calorimeter.h             |   3 +-
 .../DDRec/CylindricalBarrelCalorimeter.h      |   4 +-
 DDRec/include/DDRec/CylindricalCalorimeter.h  |   4 +-
 .../DDRec/CylindricalEndcapCalorimeter.h      |   4 +-
 DDRec/include/DDRec/EndcapDetector.h          |  21 +-
 DDRec/include/DDRec/LayerStack.h              |  81 ++++----
 DDRec/include/DDRec/LayeredSubdetector.h      |  93 +++++----
 .../DDRec/PolyhedralBarrelCalorimeter.h       |   4 +-
 DDRec/include/DDRec/PolyhedralCalorimeter.h   |   4 +-
 DDRec/include/DDRec/PolyhedralDetector.h      |  53 ++---
 .../DDRec/PolyhedralEndcapCalorimeter.h       |   4 +-
 DDRec/include/DDRec/VertexBarrelDetector.h    |  30 +++
 DDRec/src/LayerStack.cpp                      | 185 +++++++++---------
 DDRec/src/LayeredSubdetector.cpp              |  25 ++-
 DDRec/src/VertexBarrelDetector.cpp            |  14 ++
 17 files changed, 300 insertions(+), 258 deletions(-)
 create mode 100644 DDRec/include/DDRec/VertexBarrelDetector.h
 create mode 100644 DDRec/src/VertexBarrelDetector.cpp

diff --git a/DDRec/CMakeLists.txt b/DDRec/CMakeLists.txt
index 0f2db97e8..99c93ba9d 100644
--- a/DDRec/CMakeLists.txt
+++ b/DDRec/CMakeLists.txt
@@ -2,15 +2,17 @@ cmake_minimum_required(VERSION 2.8.0 FATAL_ERROR)
 
 project(DDRec)
 
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include ${ROOT_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/DDSegmentation/include )
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include 
+		    ${ROOT_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/DDSegmentation/include 
+		    ${CMAKE_SOURCE_DIR}/DDCore/include)
 
 file(GLOB sources src/*.cpp)
 
 add_library(DD4hepRec SHARED ${sources} )
 
-target_link_libraries(DD4hepRec ${ROOT_LIBRARIES} DDSegmentation Geom Reflex ${libraries})
+target_link_libraries(DD4hepRec ${ROOT_LIBRARIES} DDSegmentation DD4hepCore Geom Reflex ${libraries})
 
-SET( CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wno-long-long")
+SET(CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wno-long-long")
 SET_TARGET_PROPERTIES( DD4hepRec PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
 
 #--- install target-------------------------------------
diff --git a/DDRec/include/DDRec/BarrelDetector.h b/DDRec/include/DDRec/BarrelDetector.h
index aa135ea44..3ef9b1695 100644
--- a/DDRec/include/DDRec/BarrelDetector.h
+++ b/DDRec/include/DDRec/BarrelDetector.h
@@ -12,18 +12,19 @@
 
 namespace DD4hep {
 
-namespace DDRec {
-class BarrelDetector: virtual public DetElement {
+  namespace DDRec {
+    class BarrelDetector: virtual public Geometry::DetElement {
 
-public:
-	BarrelDetector(const DetElement& e) : DetElement(e) {};
-	virtual ~BarrelDetector() {}
+    public:
+      typedef Geometry::DetElement DetElement;
+      BarrelDetector(const DetElement& e) : DetElement(e) {};
+      virtual ~BarrelDetector() {}
 
-	bool isBarrel() const {
-		return true;
-	}
-};
+      bool isBarrel() const {
+	return true;
+      }
+    };
 
-} /* namespace DDRec */
+  } /* namespace DDRec */
 } /* namespace DD4hep */
 #endif /* BARRELDETECTOR_H_ */
diff --git a/DDRec/include/DDRec/Calorimeter.h b/DDRec/include/DDRec/Calorimeter.h
index d78bdc6a2..22a349993 100644
--- a/DDRec/include/DDRec/Calorimeter.h
+++ b/DDRec/include/DDRec/Calorimeter.h
@@ -8,8 +8,7 @@
 #ifndef CALORIMETER_H_
 #define CALORIMETER_H_
 
-#include "DD4hep/Detector.h"
-#include "LayeredSubdetector.h"
+#include "DDRec/LayeredSubdetector.h"
 
 namespace DD4hep {
 
diff --git a/DDRec/include/DDRec/CylindricalBarrelCalorimeter.h b/DDRec/include/DDRec/CylindricalBarrelCalorimeter.h
index 70bea24a5..11de520ba 100644
--- a/DDRec/include/DDRec/CylindricalBarrelCalorimeter.h
+++ b/DDRec/include/DDRec/CylindricalBarrelCalorimeter.h
@@ -8,8 +8,8 @@
 #ifndef CYLINDRICALBARRELCALORIMETER_H_
 #define CYLINDRICALBARRELCALORIMETER_H_
 
-#include "CylindricalCalorimeter.h"
-#include "BarrelDetector.h"
+#include "DDRec/CylindricalCalorimeter.h"
+#include "DDRec/BarrelDetector.h"
 
 namespace DD4hep {
 namespace DDRec {
diff --git a/DDRec/include/DDRec/CylindricalCalorimeter.h b/DDRec/include/DDRec/CylindricalCalorimeter.h
index 976c0f350..718fa834c 100644
--- a/DDRec/include/DDRec/CylindricalCalorimeter.h
+++ b/DDRec/include/DDRec/CylindricalCalorimeter.h
@@ -8,8 +8,8 @@
 #ifndef CYLINDRICALCALORIMETER_H_
 #define CYLINDRICALCALORIMETER_H_
 
-#include "CylindricalDetector.h"
-#include "Calorimeter.h"
+#include "DDRec/CylindricalDetector.h"
+#include "DDRec/Calorimeter.h"
 
 namespace DD4hep {
 namespace DDRec {
diff --git a/DDRec/include/DDRec/CylindricalEndcapCalorimeter.h b/DDRec/include/DDRec/CylindricalEndcapCalorimeter.h
index 958c37be7..7d86c3199 100644
--- a/DDRec/include/DDRec/CylindricalEndcapCalorimeter.h
+++ b/DDRec/include/DDRec/CylindricalEndcapCalorimeter.h
@@ -8,8 +8,8 @@
 #ifndef CYLINDRICALENDCAPCALORIMETER_H_
 #define CYLINDRICALENDCAPCALORIMETER_H_
 
-#include "CylindricalCalorimeter.h"
-#include "EndcapDetector.h"
+#include "DDRec/CylindricalCalorimeter.h"
+#include "DDRec/EndcapDetector.h"
 
 namespace DD4hep {
 namespace DDRec {
diff --git a/DDRec/include/DDRec/EndcapDetector.h b/DDRec/include/DDRec/EndcapDetector.h
index 07f5be5ba..1a27b9209 100644
--- a/DDRec/include/DDRec/EndcapDetector.h
+++ b/DDRec/include/DDRec/EndcapDetector.h
@@ -11,18 +11,19 @@
 #include "DD4hep/Detector.h"
 
 namespace DD4hep {
-namespace DDRec {
+  namespace DDRec {
 
-class EndcapDetector: virtual public DetElement {
-public:
-	EndcapDetector(const DetElement& e) : DetElement(e) {}
-	virtual ~EndcapDetector() {}
+    class EndcapDetector: virtual public Geometry::DetElement {
+    public:
+      typedef Geometry::DetElement DetElement;
+    EndcapDetector(const DetElement& e) : DetElement(e) {}
+      virtual ~EndcapDetector() {}
 
-	bool isEndcap() const {
-		return true;
-	}
-};
+      bool isEndcap() const {
+	return true;
+      }
+    };
 
-} /* namespace DDRec */
+  } /* namespace DDRec */
 } /* namespace DD4hep */
 #endif /* ENDCAPDETECTOR_H_ */
diff --git a/DDRec/include/DDRec/LayerStack.h b/DDRec/include/DDRec/LayerStack.h
index efc9f7540..49f4c376e 100644
--- a/DDRec/include/DDRec/LayerStack.h
+++ b/DDRec/include/DDRec/LayerStack.h
@@ -13,45 +13,46 @@
 #include <vector>
 
 namespace DD4hep {
-namespace DDRec {
-
-class LayerStack {
-public:
-	LayerStack(const DetElement& det);
-	LayerStack(const LayerStack& layerStack, const DetElement& det);
-	virtual ~LayerStack();
-	virtual int getNumberOfLayers() const = 0;
-	virtual int getNumberOfModules(int layerIndex = 1) const = 0;
-	virtual DetElement getModule(int layerIndex = 1, int moduleIndex = 1) const = 0;
-	double getThickness(int layerIndex = 1, int moduleIndex = 1) const;
-	double getRadiationLengths(int layerIndex = 1, int moduleIndex = 1) const;
-	double getInteractionLengths(int layerIndex = 1, int moduleIndex = 1) const;
-	double getTotalThickness(int moduleIndex = 1) const;
-	double getTotalInteractionLengths(int moduleIndex = 1) const;
-	double getTotalRadiationLengths(int moduleIndex = 1) const;
-	virtual int getNumberOfSlices(int layerIndex = 1, int moduleIndex = 1) const = 0;
-	virtual DetElement getSlice(int layerIndex = 1, int moduleIndex = 1, int sliceIndex = 1) const = 0;
-	virtual int getNumberOfSensors(int layerIndex = 1, int moduleIndex = 1) const = 0;
-	virtual DetElement getSensor(int layerIndex = 1, int moduleIndex = 1, int sensorIndex = 1) const = 0;
-
-protected:
-	DetElement det;
-};
-
-class PolyhedralCalorimeterLayerStack: public LayerStack {
-public:
-	PolyhedralCalorimeterLayerStack(const DetElement& det);
-	PolyhedralCalorimeterLayerStack(const PolyhedralCalorimeterLayerStack& layerStack, const DetElement& det);
-	virtual ~PolyhedralCalorimeterLayerStack();
-	int getNumberOfLayers() const;
-	int getNumberOfModules(int layerIndex = 1) const;
-	DetElement getModule(int layerIndex = 1, int moduleIndex = 1) const;
-	int getNumberOfSlices(int layerIndex = 1, int moduleIndex = 1) const;
-	DetElement getSlice(int layerIndex = 1, int moduleIndex = 1, int sliceIndex = 1) const;
-	int getNumberOfSensors(int layerIndex = 1, int moduleIndex = 1) const;
-	DetElement getSensor(int layerIndex = 1, int moduleIndex = 1, int sensorIndex = 1) const;
-};
-
-} /* namespace DDRec */
+  namespace DDRec {
+
+    class LayerStack {
+    public:
+      typedef Geometry::DetElement DetElement;
+      LayerStack(const DetElement& det);
+      LayerStack(const LayerStack& layerStack, const DetElement& det);
+      virtual ~LayerStack();
+      virtual int getNumberOfLayers() const = 0;
+      virtual int getNumberOfModules(int layerIndex = 1) const = 0;
+      virtual DetElement getModule(int layerIndex = 1, int moduleIndex = 1) const = 0;
+      double getThickness(int layerIndex = 1, int moduleIndex = 1) const;
+      double getRadiationLengths(int layerIndex = 1, int moduleIndex = 1) const;
+      double getInteractionLengths(int layerIndex = 1, int moduleIndex = 1) const;
+      double getTotalThickness(int moduleIndex = 1) const;
+      double getTotalInteractionLengths(int moduleIndex = 1) const;
+      double getTotalRadiationLengths(int moduleIndex = 1) const;
+      virtual int getNumberOfSlices(int layerIndex = 1, int moduleIndex = 1) const = 0;
+      virtual DetElement getSlice(int layerIndex = 1, int moduleIndex = 1, int sliceIndex = 1) const = 0;
+      virtual int getNumberOfSensors(int layerIndex = 1, int moduleIndex = 1) const = 0;
+      virtual DetElement getSensor(int layerIndex = 1, int moduleIndex = 1, int sensorIndex = 1) const = 0;
+
+    protected:
+      DetElement det;
+    };
+
+    class PolyhedralCalorimeterLayerStack: public LayerStack {
+    public:
+      PolyhedralCalorimeterLayerStack(const DetElement& det);
+      PolyhedralCalorimeterLayerStack(const PolyhedralCalorimeterLayerStack& layerStack, const DetElement& det);
+      virtual ~PolyhedralCalorimeterLayerStack();
+      int getNumberOfLayers() const;
+      int getNumberOfModules(int layerIndex = 1) const;
+      DetElement getModule(int layerIndex = 1, int moduleIndex = 1) const;
+      int getNumberOfSlices(int layerIndex = 1, int moduleIndex = 1) const;
+      DetElement getSlice(int layerIndex = 1, int moduleIndex = 1, int sliceIndex = 1) const;
+      int getNumberOfSensors(int layerIndex = 1, int moduleIndex = 1) const;
+      DetElement getSensor(int layerIndex = 1, int moduleIndex = 1, int sensorIndex = 1) const;
+    };
+
+  } /* namespace DDRec */
 } /* namespace DD4hep */
 #endif /* LAYERSTACK_H_ */
diff --git a/DDRec/include/DDRec/LayeredSubdetector.h b/DDRec/include/DDRec/LayeredSubdetector.h
index ee3dd84ce..7882d2594 100644
--- a/DDRec/include/DDRec/LayeredSubdetector.h
+++ b/DDRec/include/DDRec/LayeredSubdetector.h
@@ -8,71 +8,70 @@
 #ifndef LAYEREDSUBDETECTOR_H_
 #define LAYEREDSUBDETECTOR_H_
 
-#include "LayerStack.h"
-
-#include "DD4hep/Detector.h"
+#include "DDRec/LayerStack.h"
 
 namespace DD4hep {
-namespace DDRec {
+  namespace DDRec {
 
-class LayeredSubdetector: virtual public DetElement {
-public:
-	LayeredSubdetector(const DetElement& e);
-	virtual ~LayeredSubdetector();
+    class LayeredSubdetector: virtual public Geometry::DetElement {
+    public:
+      typedef Geometry::DetElement DetElement;
+      LayeredSubdetector(const DetElement& e);
+      virtual ~LayeredSubdetector();
 
-	inline bool isLayered() const {
-		return true;
-	}
+      inline bool isLayered() const {
+	return true;
+      }
 
-	inline int getNumberOfLayers() const {
-		return layerStack->getNumberOfLayers();
-	}
+      inline int getNumberOfLayers() const {
+	return layerStack->getNumberOfLayers();
+      }
 
-	inline int getNumberOfSensors(int layerIndex, int moduleIndex = 1) const {
-		return layerStack->getNumberOfSensors(layerIndex, moduleIndex);
-	}
+      inline int getNumberOfSensors(int layerIndex, int moduleIndex = 1) const {
+	return layerStack->getNumberOfSensors(layerIndex, moduleIndex);
+      }
 
-	inline DetElement getSensor(int layerIndex, int moduleIndex = 1, int sensorIndex = 1) const {
-		return layerStack->getSensor(layerIndex, moduleIndex, sensorIndex);
-	}
+      inline DetElement getSensor(int layerIndex, int moduleIndex = 1, int sensorIndex = 1) const {
+	return layerStack->getSensor(layerIndex, moduleIndex, sensorIndex);
+      }
 
-	inline double getLayerThickness(int layerIndex, int moduleIndex = 1) const {
-		return layerStack->getThickness(layerIndex, moduleIndex);
-	}
+      inline double getLayerThickness(int layerIndex, int moduleIndex = 1) const {
+	return layerStack->getThickness(layerIndex, moduleIndex);
+      }
 
-	inline double getInteractionLengths(int layerIndex, int moduleIndex = 1) const {
-		return layerStack->getInteractionLengths(layerIndex, moduleIndex);
-	}
+      inline double getInteractionLengths(int layerIndex, int moduleIndex = 1) const {
+	return layerStack->getInteractionLengths(layerIndex, moduleIndex);
+      }
 
-	inline double getRadiationLengths(int layerIndex, int moduleIndex = 1) const {
-		return layerStack->getRadiationLengths(layerIndex, moduleIndex);
-	}
+      inline double getRadiationLengths(int layerIndex, int moduleIndex = 1) const {
+	return layerStack->getRadiationLengths(layerIndex, moduleIndex);
+      }
 
-	inline double getMipEnergyLoss(int layerIndex, int moduleIndex = 1) const {
-		return 0.;
-	}
+      inline double getMipEnergyLoss(int /* layerIndex */, int /* moduleIndex */ = 1) const {
+	return 0.;
+      }
 
-	inline double getTotalThickness(int moduleIndex = 1) const {
-		return layerStack->getTotalThickness(moduleIndex);
-	}
+      inline double getTotalThickness(int moduleIndex = 1) const {
+	return layerStack->getTotalThickness(moduleIndex);
+      }
 
-	inline double getTotalInteractionLengths(int moduleIndex = 1) const {
-		return layerStack->getTotalInteractionLengths(moduleIndex);
-	}
+      inline double getTotalInteractionLengths(int moduleIndex = 1) const {
+	return layerStack->getTotalInteractionLengths(moduleIndex);
+      }
 
-	inline double getTotalRadiationLengths(int moduleIndex = 1) const {
-		return layerStack->getTotalRadiationLengths(moduleIndex);
-	}
+      inline double getTotalRadiationLengths(int moduleIndex = 1) const {
+	return layerStack->getTotalRadiationLengths(moduleIndex);
+      }
 
-protected:
-	LayerStack* layerStack;
+    protected:
+      LayerStack* layerStack;
 
-private:
-	void getExtension();
+    private:
+      void getExtension();
 
-};
+    };
 
-} /* namespace DDRec */
+  } /* namespace DDRec */
 } /* namespace DD4hep */
 
 #endif /* LAYEREDSUBDETECTOR_H_ */
diff --git a/DDRec/include/DDRec/PolyhedralBarrelCalorimeter.h b/DDRec/include/DDRec/PolyhedralBarrelCalorimeter.h
index 0bf79bcc4..bcdef3a44 100644
--- a/DDRec/include/DDRec/PolyhedralBarrelCalorimeter.h
+++ b/DDRec/include/DDRec/PolyhedralBarrelCalorimeter.h
@@ -8,8 +8,8 @@
 #ifndef POLYHEDRALBARRELCALORIMETER_H_
 #define POLYHEDRALBARRELCALORIMETER_H_
 
-#include "BarrelDetector.h"
-#include "PolyhedralCalorimeter.h"
+#include "DDRec/BarrelDetector.h"
+#include "DDRec/PolyhedralCalorimeter.h"
 
 namespace DD4hep {
 namespace DDRec {
diff --git a/DDRec/include/DDRec/PolyhedralCalorimeter.h b/DDRec/include/DDRec/PolyhedralCalorimeter.h
index 1424ccb01..e3ca95bab 100644
--- a/DDRec/include/DDRec/PolyhedralCalorimeter.h
+++ b/DDRec/include/DDRec/PolyhedralCalorimeter.h
@@ -8,8 +8,8 @@
 #ifndef POLYHEDRALCALORIMETER_H_
 #define POLYHEDRALCALORIMETER_H_
 
-#include "PolyhedralDetector.h"
-#include "Calorimeter.h"
+#include "DDRec/PolyhedralDetector.h"
+#include "DDRec/Calorimeter.h"
 
 namespace DD4hep {
 namespace DDRec {
diff --git a/DDRec/include/DDRec/PolyhedralDetector.h b/DDRec/include/DDRec/PolyhedralDetector.h
index 67eaed1d4..95f827e41 100644
--- a/DDRec/include/DDRec/PolyhedralDetector.h
+++ b/DDRec/include/DDRec/PolyhedralDetector.h
@@ -11,33 +11,34 @@
 #include "DD4hep/Detector.h"
 
 namespace DD4hep {
-namespace DDRec {
-class PolyhedralDetector : virtual public DetElement {
-public:
-	PolyhedralDetector(const DetElement& e) : DetElement(e) {}
-	virtual ~PolyhedralDetector() {}
+  namespace DDRec {
+    class PolyhedralDetector : virtual public Geometry::DetElement {
+    public:
+      typedef Geometry::DetElement DetElement;
+      PolyhedralDetector(const DetElement& e) : DetElement(e) {}
+      virtual ~PolyhedralDetector() {}
 
-	int getNSides() const {
-		return getPolyhedra()->GetNedges();
-	}
-	double getRMin() const {
-		return getPolyhedra()->GetRmin(0);
-	}
-	double getRMax() const {
-		return getPolyhedra()->GetRmax(0);
-	}
-	double getZMin() const {
-		return getPolyhedra()->GetZ(0);
-	}
-	double getZMax() const {
-		return getPolyhedra()->GetZ(1);
-	}
+      int getNSides() const {
+	return getPolyhedra()->GetNedges();
+      }
+      double getRMin() const {
+	return getPolyhedra()->GetRmin(0);
+      }
+      double getRMax() const {
+	return getPolyhedra()->GetRmax(0);
+      }
+      double getZMin() const {
+	return getPolyhedra()->GetZ(0);
+      }
+      double getZMax() const {
+	return getPolyhedra()->GetZ(1);
+      }
 
-protected:
-	PolyhedraRegular getPolyhedra() const {
-		return PolyhedraRegular(volume().solid());
-	}
-};
-} /* namespace DDRec */
+    protected:
+      PolyhedraRegular getPolyhedra() const {
+	return PolyhedraRegular(volume().solid());
+      }
+    };
+  } /* namespace DDRec */
 } /* namespace DD4hep */
 #endif /* POLYHEDRALDETECTOR_H_ */
diff --git a/DDRec/include/DDRec/PolyhedralEndcapCalorimeter.h b/DDRec/include/DDRec/PolyhedralEndcapCalorimeter.h
index 73f444870..1529a6466 100644
--- a/DDRec/include/DDRec/PolyhedralEndcapCalorimeter.h
+++ b/DDRec/include/DDRec/PolyhedralEndcapCalorimeter.h
@@ -8,8 +8,8 @@
 #ifndef POLYHEDRALENDCAPCALORIMETER_H_
 #define POLYHEDRALENDCAPCALORIMETER_H_
 
-#include "EndcapDetector.h"
-#include "PolyhedralCalorimeter.h"
+#include "DDRec/EndcapDetector.h"
+#include "DDRec/PolyhedralCalorimeter.h"
 
 namespace DD4hep {
 namespace DDRec {
diff --git a/DDRec/include/DDRec/VertexBarrelDetector.h b/DDRec/include/DDRec/VertexBarrelDetector.h
new file mode 100644
index 000000000..53989f0fc
--- /dev/null
+++ b/DDRec/include/DDRec/VertexBarrelDetector.h
@@ -0,0 +1,30 @@
+/*
+ * VertexBarrelDetector.h
+ *
+ *  Created on: 17/02/2014
+ *      Author: Markus Frank, CERN
+ */
+#ifndef VERTEXBARRELDETECTOR_H_
+#define VERTEXBARRELDETECTOR_H_
+
+#include "DDRec/BarrelDetector.h"
+#include "DDRec/LayeredSubdetector.h"
+
+namespace DD4hep {
+  namespace DDRec {
+
+    class VertexBarrelDetector
+      : virtual public BarrelDetector, 
+      virtual public LayeredSubdetector
+      {
+    public:
+	typedef Geometry::DetElement DetElement;
+      /// Constructor from handle
+      VertexBarrelDetector(const DetElement& e);
+      /// Standard destructor
+      virtual ~VertexBarrelDetector();
+    };
+
+  } /* namespace DDRec */
+} /* namespace DD4hep */
+#endif /* VERTEXBARRELDETECTOR_H_ */
diff --git a/DDRec/src/LayerStack.cpp b/DDRec/src/LayerStack.cpp
index 077dac642..e3db80084 100644
--- a/DDRec/src/LayerStack.cpp
+++ b/DDRec/src/LayerStack.cpp
@@ -5,23 +5,23 @@
  *      Author: Christian Grefe, CERN
  */
 
-#include "LayerStack.h"
-#include "Exceptions.h"
-#include "DD4hep/Detector.h"
+#include "DDRec/LayerStack.h"
+#include "DDRec/Exceptions.h"
 #include "DD4hep/Shapes.h"
 
 #include <sstream>
 
-namespace DD4hep {
-namespace DDRec{
-
+using namespace DD4hep::Geometry;
+using namespace DD4hep::DDRec;
 using std::stringstream;
 
-LayerStack::LayerStack(const DetElement& det) : det(det) {
+LayerStack::LayerStack(const DetElement& d) : det(d) {
 
 }
 
-LayerStack::LayerStack(const LayerStack& layerStack, const DetElement& det) : det(det) {
+LayerStack::LayerStack(const LayerStack& /* layerStack */, const DetElement& d) 
+: det(d) 
+{
 
 }
 
@@ -30,51 +30,51 @@ LayerStack::~LayerStack() {
 }
 
 double LayerStack::getThickness(int layerIndex, int moduleIndex) const {
-	double thickness = 0.;
-	for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
-		thickness += Box(getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().solid())->GetDZ();
-	}
-	return thickness;
+  double thickness = 0.;
+  for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
+    thickness += Box(getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().solid())->GetDZ();
+  }
+  return thickness;
 }
 
 double LayerStack::getRadiationLengths(int layerIndex, int moduleIndex) const {
-	double radiationLengths = 0.;
-	for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
-		radiationLengths += Box(getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().solid())->GetDZ() / getSlice(layerIndex, moduleIndex).volume().material().radLength();
-	}
-	return radiationLengths;
+  double radiationLengths = 0.;
+  for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
+    radiationLengths += Box(getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().solid())->GetDZ() / getSlice(layerIndex, moduleIndex).volume().material().radLength();
+  }
+  return radiationLengths;
 }
 
 double LayerStack::getInteractionLengths(int layerIndex, int moduleIndex) const {
-	double interactionLengths = 0.;
-	for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
-		interactionLengths += Box(getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().solid())->GetDZ() / getSlice(layerIndex, moduleIndex).volume().material().intLength();
-	}
-	return interactionLengths;
+  double interactionLengths = 0.;
+  for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
+    interactionLengths += Box(getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().solid())->GetDZ() / getSlice(layerIndex, moduleIndex).volume().material().intLength();
+  }
+  return interactionLengths;
 }
 
 double LayerStack::getTotalThickness(int moduleIndex) const {
-	double thickness = 0.;
-	for (int layerIndex = 0; layerIndex < getNumberOfLayers(); layerIndex++) {
-		thickness += getThickness(layerIndex+1, moduleIndex);
-	}
-	return thickness;
+  double thickness = 0.;
+  for (int layerIndex = 0; layerIndex < getNumberOfLayers(); layerIndex++) {
+    thickness += getThickness(layerIndex+1, moduleIndex);
+  }
+  return thickness;
 }
 
 double LayerStack::getTotalInteractionLengths(int moduleIndex) const {
-	double interactionLengths = 0.;
-	for (int layerIndex = 0; layerIndex < getNumberOfLayers(); layerIndex++) {
-		interactionLengths += getInteractionLengths(layerIndex+1, moduleIndex);
-	}
-	return interactionLengths;
+  double interactionLengths = 0.;
+  for (int layerIndex = 0; layerIndex < getNumberOfLayers(); layerIndex++) {
+    interactionLengths += getInteractionLengths(layerIndex+1, moduleIndex);
+  }
+  return interactionLengths;
 }
 
 double LayerStack::getTotalRadiationLengths(int moduleIndex) const {
-	double radiationLengths = 0.;
-	for (int layerIndex = 0; layerIndex < getNumberOfLayers(); layerIndex++) {
-		radiationLengths += getRadiationLengths(layerIndex+1, moduleIndex);
-	}
-	return radiationLengths;
+  double radiationLengths = 0.;
+  for (int layerIndex = 0; layerIndex < getNumberOfLayers(); layerIndex++) {
+    radiationLengths += getRadiationLengths(layerIndex+1, moduleIndex);
+  }
+  return radiationLengths;
 }
 
 PolyhedralCalorimeterLayerStack::PolyhedralCalorimeterLayerStack(const DetElement& det) : LayerStack(det) {
@@ -90,76 +90,73 @@ PolyhedralCalorimeterLayerStack::~PolyhedralCalorimeterLayerStack() {
 }
 
 int PolyhedralCalorimeterLayerStack::getNumberOfLayers() const {
-	stringstream moduleName;
-	moduleName << "stave1";
-	DetElement module = det.child(moduleName.str());
-	if (not module.isValid()) {
-		std::cerr << "Invalid module name " << moduleName.str() << std::endl;
-		return 0;
-	}
-	return module.children().size();
+  stringstream moduleName;
+  moduleName << "stave1";
+  DetElement module = det.child(moduleName.str());
+  if (not module.isValid()) {
+    std::cerr << "Invalid module name " << moduleName.str() << std::endl;
+    return 0;
+  }
+  return module.children().size();
 }
 
-int PolyhedralCalorimeterLayerStack::getNumberOfModules(int layerIndex) const {
-	return det.children().size();
+int PolyhedralCalorimeterLayerStack::getNumberOfModules(int /* layerIndex */) const {
+  return det.children().size();
 }
 
 DetElement PolyhedralCalorimeterLayerStack::getModule(int layerIndex, int moduleIndex) const {
-	stringstream moduleName;
-	moduleName << "stave" << moduleIndex;
-	DetElement module = det.child(moduleName.str());
-	if (not module.isValid()) {
-		std::cerr << "Invalid module name " << moduleName.str() << std::endl;
-		return DetElement();
-	}
-	stringstream layerName;
-	layerName << "layer" << layerIndex;
-	DetElement layer = module.child(layerName.str());
-	if (not layer.isValid()) {
-		std::cerr << "Invalid layer name " << layerName.str() << std::endl;
-		return DetElement();
-	}
-	return layer;
+  stringstream moduleName;
+  moduleName << "stave" << moduleIndex;
+  DetElement module = det.child(moduleName.str());
+  if (not module.isValid()) {
+    std::cerr << "Invalid module name " << moduleName.str() << std::endl;
+    return DetElement();
+  }
+  stringstream layerName;
+  layerName << "layer" << layerIndex;
+  DetElement layer = module.child(layerName.str());
+  if (not layer.isValid()) {
+    std::cerr << "Invalid layer name " << layerName.str() << std::endl;
+    return DetElement();
+  }
+  return layer;
 }
 
 int PolyhedralCalorimeterLayerStack::getNumberOfSlices(int layerIndex, int moduleIndex) const {
-	return getModule(layerIndex, moduleIndex).children().size();
+  return getModule(layerIndex, moduleIndex).children().size();
 }
 
 DetElement PolyhedralCalorimeterLayerStack::getSlice(int layerIndex, int moduleIndex, int sliceIndex) const {
-	stringstream sliceName;
-	sliceName << "slice" << sliceIndex;
-	DetElement slice = getModule(layerIndex, moduleIndex).child(sliceName.str());
-	if (not slice.isValid()) {
-		std::cerr << "Invalid slice name " << sliceName.str() << std::endl;
-		return DetElement();
-	}
-	return getModule(layerIndex, moduleIndex).child(sliceName.str());
+  stringstream sliceName;
+  sliceName << "slice" << sliceIndex;
+  DetElement slice = getModule(layerIndex, moduleIndex).child(sliceName.str());
+  if (not slice.isValid()) {
+    std::cerr << "Invalid slice name " << sliceName.str() << std::endl;
+    return DetElement();
+  }
+  return getModule(layerIndex, moduleIndex).child(sliceName.str());
 }
 
 int PolyhedralCalorimeterLayerStack::getNumberOfSensors(int layerIndex, int moduleIndex) const {
-	int nSensors = 0;
-	for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
-		if (getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().isSensitive()) {
-			nSensors++;
-		}
-	}
-	return nSensors;
+  int nSensors = 0;
+  for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
+    if (getSlice(layerIndex, moduleIndex, sliceIndex+1).volume().isSensitive()) {
+      nSensors++;
+    }
+  }
+  return nSensors;
 }
 
 DetElement PolyhedralCalorimeterLayerStack::getSensor(int layerIndex, int moduleIndex, int sensorIndex) const {
-	int nSensors = 0;
-	for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
-		DetElement slice = getSlice(layerIndex, moduleIndex, sliceIndex+1);
-		if (slice.volume().isSensitive()) {
-			nSensors++;
-		}
-		if (nSensors == sensorIndex) {
-			return slice;
-		}
-	}
-	throw OutsideGeometryException("No sensor with index " + sensorIndex);
-}
-
-} /* namespace DDRec */
-} /* namespace DD4hep */
+  int nSensors = 0;
+  for (int sliceIndex = 0; sliceIndex < getNumberOfSlices(layerIndex, moduleIndex); sliceIndex++) {
+    DetElement slice = getSlice(layerIndex, moduleIndex, sliceIndex+1);
+    if (slice.volume().isSensitive()) {
+      nSensors++;
+    }
+    if (nSensors == sensorIndex) {
+      return slice;
+    }
+  }
+  throw OutsideGeometryException("No sensor with index " + sensorIndex);
+}
diff --git a/DDRec/src/LayeredSubdetector.cpp b/DDRec/src/LayeredSubdetector.cpp
index cccc4c59d..7d1612953 100644
--- a/DDRec/src/LayeredSubdetector.cpp
+++ b/DDRec/src/LayeredSubdetector.cpp
@@ -1,23 +1,20 @@
-#include "LayeredSubdetector.h"
+#include "DDRec/LayeredSubdetector.h"
 
-namespace DD4hep {
-namespace DDRec{
+using namespace DD4hep::Geometry;
+using namespace DD4hep::DDRec;
 
-LayeredSubdetector::LayeredSubdetector(const DetElement& e) :
-		DetElement(e) {
-	getExtension();
+LayeredSubdetector::LayeredSubdetector(const DetElement& e)
+ : DetElement(e) 
+{
+  getExtension();
 }
 
 LayeredSubdetector::~LayeredSubdetector() {
-
 }
 
 void LayeredSubdetector::getExtension() {
-	layerStack = isValid() ? extension<LayerStack>() : 0;
-	if (layerStack == 0) {
-		std::cout << "Failed to get the extension" << std::endl;
-	}
+  layerStack = isValid() ? extension<LayerStack>() : 0;
+  if (layerStack == 0) {
+    std::cout << "Failed to get the extension" << std::endl;
+  }
 }
-
-} /* namespace DDRec */
-} /* namespace DD4hep */
diff --git a/DDRec/src/VertexBarrelDetector.cpp b/DDRec/src/VertexBarrelDetector.cpp
new file mode 100644
index 000000000..f4c939cec
--- /dev/null
+++ b/DDRec/src/VertexBarrelDetector.cpp
@@ -0,0 +1,14 @@
+#include "DDRec/VertexBarrelDetector.h"
+
+using namespace DD4hep::Geometry;
+using namespace DD4hep::DDRec;
+
+/// Constructor from handle
+VertexBarrelDetector::VertexBarrelDetector(const DetElement& e) 
+  : BarrelDetector(e), LayeredSubdetector(e) 
+{
+}
+
+/// Standard destructor
+VertexBarrelDetector::~VertexBarrelDetector() {
+}
-- 
GitLab