File DD4hepDetectorElement.hpp

namespace Acts


This file is foreseen for the Geometry module to replace Extent

class DD4hepDetectorElement : public Acts::TGeoDetectorElement
#include <Acts/Plugins/DD4hep/DD4hepDetectorElement.hpp>

DetectorElement class implementation for DD4hep geometry.

DetectorElement plugin for DD4hep detector elements. DD4hep is based on TGeo shapes, therefore the DD4hepDetectorElement inherits from TGeoDetectorElement. The full geometrical information is provided by the TGeoDetectorElement. The DD4hepDetectorElement extends the TGeoDetectorElement by containing a segmentation for the readout.

Public Types

using ContextType = GeometryContext

Broadcast the context type.

Public Functions

DD4hepDetectorElement(const dd4hep::DetElement detElement, const std::string &axes = "XYZ", double scalor = 1., bool isDisc = false, std::shared_ptr<const ISurfaceMaterial> material = nullptr, const std::shared_ptr<const DigitizationModule> &digitizationModule = nullptr)


Example options are:

  • ”XYZ” -> identical frame definition (default value)

  • ”YZX” -> node y axis is tracking x axis, etc.

  • ”XzY” -> negative node z axis is tracking y axis, etc.


In the translation from a 3D geometry (TGeo) which only knows tubes to a 2D geometry (Tracking geometry) a distinction if the module should be described as a cylinder or a disc surface needs to be done. Since this information can not be taken just from the geometry description (both can be described as TGeoTubeSeg), one needs to set the flag ‘isDisc’ in case a volume with shape TGeoTubeSeg should be translated to a disc surface. Per default it will be translated into a cylindrical surface.

  • scalor – is the scale factor for unit conversion if needed

  • isDisc – in case the sensitive detector module should be translated as disc (e.g. for endcaps) this flag should be set to true

  • digitizationModule – Optional digitization configuration for the element

  • material – Optional material of detector element

  • detElement – The DD4hep DetElement which should be linked to a surface

  • axes – is the axis orientation with respect to the tracking frame it is a string of the three characters x, y and z (standing for the three axes) There is a distinction between capital and lower case characters :

    • capital -> positive orientation of the axis

    • lower case -> negative oriantation of the axis

~DD4hepDetectorElement() override = default

Private Members

dd4hep::DetElement m_detElement

DD4hep detector element.

dd4hep::Segmentation m_segmentation

DD4hep segmentation.