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