File TGeoDetectorElement.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

class TGeoDetectorElement : public Acts::IdentifiedDetectorElement
#include <Acts/Plugins/TGeo/TGeoDetectorElement.hpp>

DetectorElement plugin for ROOT TGeo shapes.

Added possibility to hand over transformation matrix.

Subclassed by Acts::DD4hepDetectorElement

Public Types

using ContextType = GeometryContext

Broadcast the context type.

Public Functions

TGeoDetectorElement(const Identifier &identifier, const TGeoNode &tGeoNode, const TGeoMatrix &tGeoMatrix = TGeoIdentity(), const std::string &axes = "XYZ", double scalor = 10., std::shared_ptr<const Acts::ISurfaceMaterial> material = nullptr)

Constructor.

Note

this constructor used auto-translation

Note

This parameter only needs to be set for plane modules

Note

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.

Parameters
  • identifier – is the detector identifier

  • tGeoNode – is the TGeoNode which should be represented

  • tGeoMatrix – The Matrix to global (i.e. ACTS transform)

  • 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 orientation of the axis 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.

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

  • material – Possible material of detector element

TGeoDetectorElement(const Identifier &identifier, const TGeoNode &tGeoNode, const Transform3 &tgTransform, std::shared_ptr<const PlanarBounds> tgBounds, double tgThickness = 0.)

Constructor with pre-computed surface.

Note

this detector element constructor needs everything pre-computed.

Parameters
  • identifier – is the detector identifier

  • tGeoNode – is the TGeoNode which should be represented

  • tgTransform – the transform of this detector element

  • tgBounds – the bounds of this surface

  • tgThickness – the thickness of this detector element

TGeoDetectorElement(const Identifier &identifier, const TGeoNode &tGeoNode, const Transform3 &tgTransform, std::shared_ptr<const DiscBounds> tgBounds, double tgThickness = 0.)

Constructor with pre-computed disk surface.

Note

this detector element constructor needs everything pre-computed.

Parameters
  • identifier – is the detector identifier

  • tGeoNode – is the TGeoNode which should be represented

  • tgTransform – the transform of this detector element

  • tgBounds – the bounds of this surface

  • tgThickness – the thickness of this detector element

~TGeoDetectorElement() override
inline virtual const std::shared_ptr<const DigitizationModule> digitizationModule() const final

Retrieve the DigitizationModule.

inline virtual Identifier identifier() const final

Retrieve the Identifier.

inline const Surface &surface() const override

Return surface associated with this identifier, which should come from the.

inline const TGeoNode &tgeoNode() const

Return the TGeoNode for back navigation.

inline double thickness() const override

Returns the thickness of the module.

inline const Transform3 &transform(const GeometryContext &gctx) const override

Return local to global transform associated with this identifier.

Parameters

gctx – The current geometry context object, e.g. alignment

Private Members

std::shared_ptr<const SurfaceBounds> m_bounds = {nullptr}

Boundaries of the detector element.

const TGeoNode *m_detElement = {nullptr}

Pointer to TGeoNode (not owned)

Identifier m_identifier

Identifier of the detector element.

std::shared_ptr<Surface> m_surface = {nullptr}

Corresponding Surface.

double m_thickness = {0.}

Thickness of this detector element.

Transform3 m_transform = Transform3::Identity()

Transformation of the detector element.