ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::TGeoDetectorElement Class Reference

#include <acts/blob/master/Plugins/TGeo/include/Acts/Plugins/TGeo/TGeoDetectorElement.hpp>

+ Inheritance diagram for Acts::TGeoDetectorElement:
+ Collaboration diagram for Acts::TGeoDetectorElement:

Public Types

using ContextType = GeometryContext
 Broadcast the context type.
 

Public Member Functions

 TGeoDetectorElement (const Identifier &identifier, TGeoNode *tGeoDetElement, const TGeoMatrix *mGlobal=nullptr, const std::string &axes="XYZ", double scalor=1., bool isDisc=false, std::shared_ptr< const Acts::ISurfaceMaterial > material=nullptr, std::shared_ptr< const Acts::DigitizationModule > digitizationModule=nullptr)
 
 TGeoDetectorElement (const Identifier &identifier, const TGeoMatrix &transform, TGeoNode *tGeoDetElement, const std::string &axes="XYZ", double scalor=1., bool isDisc=false, std::shared_ptr< const Acts::ISurfaceMaterial > material=nullptr, std::shared_ptr< const Acts::DigitizationModule > digitizationModule=nullptr)
 
 ~TGeoDetectorElement () override
 Destructor.
 
Identifier identifier () const final
 Identifier.
 
const Transform3Dtransform (const GeometryContext &gctx) const final
 
const Surfacesurface () const final
 Return surface associated with this identifier, which should come from the.
 
double thickness () const final
 Returns the thickness of the module.
 
const std::shared_ptr< const
Acts::DigitizationModule
digitizationModule () const final
 Retrieve the DigitizationModule.
 

Protected Member Functions

void construct (const Double_t *rotation=nullptr, const Double_t *translation=nullptr, const std::string &axes="XYZ", double scalor=1., bool isDisc=false, std::shared_ptr< const Acts::ISurfaceMaterial > material=nullptr)
 

Private Attributes

TGeoNode * m_detElement {nullptr}
 DD4hep detector element, just linked - not owned.
 
std::shared_ptr< const
Acts::Transform3D
m_transform {nullptr}
 Transformation of the detector element.
 
std::shared_ptr< const Vector3Dm_center {nullptr}
 Center position of the detector element.
 
std::shared_ptr< const Vector3Dm_normal {nullptr}
 Normal vector to the detector element.
 
Identifier m_identifier
 Identifier of the detector element.
 
std::shared_ptr< const
SurfaceBounds
m_bounds {nullptr}
 Boundaries of the detector element.
 
double m_thickness {0.}
 Thickness of this detector element.
 
std::shared_ptr< const Surfacem_surface {nullptr}
 Corresponding Surface.
 
std::shared_ptr< const
Acts::DigitizationModule
m_digitizationModule {nullptr}
 The Digitization module.
 

Detailed Description

DetectorElement plugin for ROOT TGeo shapes. Added possibility to hand over transformation matrix.

Definition at line 35 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 35 of file TGeoDetectorElement.hpp

Member Typedef Documentation

Broadcast the context type.

Definition at line 38 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 38 of file TGeoDetectorElement.hpp

Constructor & Destructor Documentation

Acts::TGeoDetectorElement::TGeoDetectorElement ( const Identifier identifier,
TGeoNode *  tGeoDetElement,
const TGeoMatrix *  mGlobal = nullptr,
const std::string &  axes = "XYZ",
double  scalor = 1.,
bool  isDisc = false,
std::shared_ptr< const Acts::ISurfaceMaterial material = nullptr,
std::shared_ptr< const Acts::DigitizationModule digitizationModule = nullptr 
)

Constructor

Parameters
identifieris the detector identifier
tGeoDetElementis the TGeoNode which should be represented
mGlobalto global is the (optional) transform applied to the TGeoNode
axesis 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.
Note
This parameter only needs to be set for plane modules
Parameters
scaloris the scale factor for unit conversion if needed
isDiscin case the sensitive detector module should be translated as disc (e.g. for endcaps) this flag should be set to true
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
materialPossible material of detector element
digitizationModuleShared pointer to the geometric digitization description

Definition at line 35 of file TGeoDetectorElement.cpp.

View newest version in sPHENIX GitHub at line 35 of file TGeoDetectorElement.cpp

References construct(), m_detElement, and surface().

+ Here is the call graph for this function:

Acts::TGeoDetectorElement::TGeoDetectorElement ( const Identifier identifier,
const TGeoMatrix &  transform,
TGeoNode *  tGeoDetElement,
const std::string &  axes = "XYZ",
double  scalor = 1.,
bool  isDisc = false,
std::shared_ptr< const Acts::ISurfaceMaterial material = nullptr,
std::shared_ptr< const Acts::DigitizationModule digitizationModule = nullptr 
)

Alternative Constructor when the localToGlobal transform is already known for the detector element (e.g. usage in DD4hepPlugin)

Parameters
identifieris the detector identifier
transformthe full transformation matrix of the detector element (local to global)
tGeoDetElementis the TGeoNode which should be represented
axesis 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

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.
    Note
    This parameter only needs to be set for plane modules
    Parameters
    scaloris the scale factor for unit conversion if needed
    isDiscin case the sensitive detector module should be translated as disc (e.g. for endcaps) this flag should be set to true
    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
    materialPossible material of detector element
    digitizationModuleShared pointer to the geometric digitization description
    Note - it calles the construct() method directly

Definition at line 70 of file TGeoDetectorElement.cpp.

View newest version in sPHENIX GitHub at line 70 of file TGeoDetectorElement.cpp

References construct().

+ Here is the call graph for this function:

Acts::TGeoDetectorElement::~TGeoDetectorElement ( )
overridedefault

Destructor.

Member Function Documentation

void Acts::TGeoDetectorElement::construct ( const Double_t *  rotation = nullptr,
const Double_t *  translation = nullptr,
const std::string &  axes = "XYZ",
double  scalor = 1.,
bool  isDisc = false,
std::shared_ptr< const Acts::ISurfaceMaterial material = nullptr 
)
protected

Construct method called from the constructor directly

Note
parameter definitions are given in the constructor

Definition at line 86 of file TGeoDetectorElement.cpp.

View newest version in sPHENIX GitHub at line 86 of file TGeoDetectorElement.cpp

References a, ab, kdfinder::abs(), b, M_PI, Acts::TGeoPrimitivesHelpers::makeTransform(), max, min, Acts::VectorHelpers::phi(), phi, Acts::Test::phiMin, radius, second, surface(), and v.

Referenced by TGeoDetectorElement().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const std::shared_ptr< const Acts::DigitizationModule > Acts::TGeoDetectorElement::digitizationModule ( ) const
inlinefinalvirtual

Retrieve the DigitizationModule.

Implements Acts::IdentifiedDetectorElement.

Definition at line 193 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 193 of file TGeoDetectorElement.hpp

References m_digitizationModule.

Identifier Acts::TGeoDetectorElement::identifier ( ) const
inlinefinalvirtual

Identifier.

Implements Acts::IdentifiedDetectorElement.

Definition at line 175 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 175 of file TGeoDetectorElement.hpp

References m_identifier.

const Surface & Acts::TGeoDetectorElement::surface ( ) const
inlinefinalvirtual

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

Implements Acts::DetectorElementBase.

Definition at line 184 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 184 of file TGeoDetectorElement.hpp

References m_surface.

Referenced by Acts::DD4hepLayerBuilder::createSensitiveSurface(), and TGeoDetectorElement().

+ Here is the caller graph for this function:

double Acts::TGeoDetectorElement::thickness ( ) const
inlinefinalvirtual

Returns the thickness of the module.

Implements Acts::DetectorElementBase.

Definition at line 188 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 188 of file TGeoDetectorElement.hpp

References m_thickness.

const Transform3D & Acts::TGeoDetectorElement::transform ( const GeometryContext gctx) const
inlinefinalvirtual

Return local to global transform associated with this identifier

Parameters
gctxThe current geometry context object, e.g. alignment

Implements Acts::DetectorElementBase.

Definition at line 179 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 179 of file TGeoDetectorElement.hpp

References m_transform.

Member Data Documentation

std::shared_ptr<const SurfaceBounds> Acts::TGeoDetectorElement::m_bounds {nullptr}
private

Boundaries of the detector element.

Definition at line 166 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 166 of file TGeoDetectorElement.hpp

std::shared_ptr<const Vector3D> Acts::TGeoDetectorElement::m_center {nullptr}
private

Center position of the detector element.

Definition at line 160 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 160 of file TGeoDetectorElement.hpp

TGeoNode* Acts::TGeoDetectorElement::m_detElement {nullptr}
private

DD4hep detector element, just linked - not owned.

Definition at line 156 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 156 of file TGeoDetectorElement.hpp

Referenced by TGeoDetectorElement().

std::shared_ptr<const Acts::DigitizationModule> Acts::TGeoDetectorElement::m_digitizationModule {nullptr}
private

The Digitization module.

Definition at line 172 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 172 of file TGeoDetectorElement.hpp

Referenced by digitizationModule().

Identifier Acts::TGeoDetectorElement::m_identifier
private

Identifier of the detector element.

Definition at line 164 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 164 of file TGeoDetectorElement.hpp

Referenced by identifier().

std::shared_ptr<const Vector3D> Acts::TGeoDetectorElement::m_normal {nullptr}
private

Normal vector to the detector element.

Definition at line 162 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 162 of file TGeoDetectorElement.hpp

std::shared_ptr<const Surface> Acts::TGeoDetectorElement::m_surface {nullptr}
private

Corresponding Surface.

Definition at line 170 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 170 of file TGeoDetectorElement.hpp

Referenced by surface().

double Acts::TGeoDetectorElement::m_thickness {0.}
private

Thickness of this detector element.

Definition at line 168 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 168 of file TGeoDetectorElement.hpp

Referenced by thickness().

std::shared_ptr<const Acts::Transform3D> Acts::TGeoDetectorElement::m_transform {nullptr}
private

Transformation of the detector element.

Definition at line 158 of file TGeoDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 158 of file TGeoDetectorElement.hpp

Referenced by transform().


The documentation for this class was generated from the following files: