File DD4hepLayerBuilder.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
Note
this is foreseen for the ‘Geometry’ module
-
class DD4hepLayerBuilder : public Acts::ILayerBuilder
- #include <Acts/Plugins/DD4hep/DD4hepLayerBuilder.hpp>
build layers of one cylinder-endcap setup from DD4hep input
This class is an implementation of the Acts::ILayerBuilder, creating the central (layers of barrel), the negative and positive layers (layers of endcaps) of one hierarchy (e.g. PixelDetector, StripDetector,…) with input from DD4hep.
Public Functions
-
DD4hepLayerBuilder(const Acts::DD4hepLayerBuilder::Config &config, std::unique_ptr<const Logger> logger)
Constructor.
- Parameters
config – is the configuration struct
logger – is the logging instance
-
~DD4hepLayerBuilder() override
Destructor.
-
virtual const LayerVector centralLayers(const GeometryContext &gctx) const final
LayerBuilder interface method.
- Parameters
gctx – the geometry context for this build call
- Returns
the layers at the central sector
-
inline Config getConfiguration() const
get the configuration object
-
inline virtual const std::string &identification() const final
Name identification.
- Returns
the string based identification of this configuration
-
virtual const LayerVector negativeLayers(const GeometryContext &gctx) const final
LayerBuilder interface method.
- Parameters
gctx – the geometry context for this build call
- Returns
the layers at negative side
-
virtual const LayerVector positiveLayers(const GeometryContext &gctx) const final
LayerBuilder interface method.
- Parameters
gctx – the geometry context for this build call
- Returns
the layers at positive side
-
void setConfiguration(const Config &config)
set the configuration object
- Parameters
config – is the configuration struct
-
void setLogger(std::unique_ptr<const Logger> logger)
set logging instance
Private Functions
-
Acts::Transform3 convertTransform(const TGeoMatrix *tGeoTrans) const¶
-
std::shared_ptr<const Acts::Surface> createSensitiveSurface(const dd4hep::DetElement &detElement, bool isDisc = false) const¶
Private helper function to create a sensitive surface from a given detector element.
- Parameters
detElement – the DD4hep::DetElement of sensitive surface to be created
isDisc – in case the sensitive detector module should be translated as disc (e.g. for endcaps) this flag should be set to true
-
const LayerVector endcapLayers(const GeometryContext &gctx, const std::vector<dd4hep::DetElement> &dendcapLayers, const std::string &side) const¶
Private helper method to be called for endcap layers.
- Parameters
gctx – the geometry context for this build call
dendcapLayers – Vector of detector elements for the endcap layers
side – Which endcap side it is
- Returns
the layers for either endcap side
Private helper function collecting all sensitive detector elements of a layer.
- Parameters
detElement – the DD4hep::DetElement of the layer
surfaces – the vector of surfaces which should be filled with the sensitive detector elements
Private Members
-
struct Config
- #include <Acts/Plugins/DD4hep/DD4hepLayerBuilder.hpp>
nested configuration struct for steering of the layer builder
Public Members
-
BinningType bTypePhi = equidistant
the binning type of the contained surfaces in phi (equidistant/arbitrary)
-
BinningType bTypeR = equidistant
the binning type of the contained surfaces in r (equidistant/arbitrary)
-
BinningType bTypeZ = equidistant
the binning type of the contained surfaces in z (equidistant/arbitrary)
-
std::vector<dd4hep::DetElement> centralLayers
the DD4hep::DetElements of the layers of the central volume (barrel)
Note
if the current volume has no layers this parameter will not be set
-
std::string configurationName = "undefined"
string based identification
-
double defaultThickness = UnitConstants::fm
In case no surfaces (to be contained by the layer) are handed over, the layer thickness will be set to this value.
- Attention
The default thickness should be set thin enough that no touching or overlapping with the next layer can happen.
Note
Layers containing surfaces per default are not allowed to be attached to each other (navigation will bail at this point). However, to allow material layers (not containing surfaces) to be attached to each other, this default thickness is needed. In this way, the layer will be thin (with space to the next layer), but the material will have the’real’ thickness.
-
std::shared_ptr<const LayerCreator> layerCreator = nullptr
layer creator which is internally used to build layers
-
std::vector<dd4hep::DetElement> negativeLayers
the DD4hep::DetElements of the layers of the negative volume (negative endcap)
Note
if the current volume has no endcaps or no layers this parameter will not be set
-
std::vector<dd4hep::DetElement> positiveLayers
the DD4hep::DetElements of the layers of the positive volume (positive endcap)
Note
if the current volume has no endcaps or no layers this parameter will not be set
-
BinningType bTypePhi = equidistant
-
DD4hepLayerBuilder(const Acts::DD4hepLayerBuilder::Config &config, std::unique_ptr<const Logger> logger)
-
class DD4hepLayerBuilder : public Acts::ILayerBuilder
-
namespace dd4hep¶