Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsExamples::Contextual::InternallyAlignedDetectorElement Class Reference

#include <acts/blob/sPHENIX/Examples/Detectors/ContextualDetector/include/ActsExamples/ContextualDetector/InternallyAlignedDetectorElement.hpp>

+ Inheritance diagram for ActsExamples::Contextual::InternallyAlignedDetectorElement:
+ Collaboration diagram for ActsExamples::Contextual::InternallyAlignedDetectorElement:

Classes

struct  ContextType
 

Public Member Functions

const Acts::Transform3transform (const Acts::GeometryContext &gctx) const override
 
const Acts::Transform3nominalTransform (const Acts::GeometryContext &gctx) const
 
void addAlignedTransform (const Acts::Transform3 &alignedTransform, unsigned int iov)
 
void clearAlignedTransform (unsigned int iov)
 
- Public Member Functions inherited from ActsExamples::Generic::GenericDetectorElement
 GenericDetectorElement (const Identifier identifier, std::shared_ptr< const Acts::Transform3 > transform, std::shared_ptr< const Acts::PlanarBounds > pBounds, double thickness, std::shared_ptr< const Acts::ISurfaceMaterial > material=nullptr, std::shared_ptr< const Acts::DigitizationModule > digitizationModule=nullptr)
 
 GenericDetectorElement (const Identifier identifier, std::shared_ptr< const Acts::Transform3 > transform, std::shared_ptr< const Acts::DiscBounds > dBounds, double thickness, std::shared_ptr< const Acts::ISurfaceMaterial > material=nullptr, std::shared_ptr< const Acts::DigitizationModule > digitizationModule=nullptr)
 
Identifier identifier () const final
 Identifier.
 
const Acts::Transform3transform (const Acts::GeometryContext &gctx) const override
 
const Acts::Surfacesurface () const override
 Return surface associated with this detector element.
 
Acts::Surfacesurface () override
 Non-cost access to surface associated with this detector element.
 
void assignIdentifier (const Identifier &identifier)
 Set the identifier after construction (sometimes needed)
 
double thickness () const override
 The maximal thickness of the detector element wrt normal axis.
 
const std::shared_ptr< const
Acts::DigitizationModule
digitizationModule () const override
 Retrieve the DigitizationModule.
 

Private Attributes

std::unordered_map< unsigned
int, Acts::Transform3
m_alignedTransforms
 
std::mutex m_alignmentMutex
 

Additional Inherited Members

- Public Types inherited from ActsExamples::Generic::GenericDetectorElement
using ContextType = Acts::GeometryContext
 Broadcast the ContextType.
 

Detailed Description

This is a lightweight type of detector element, it simply implements the base class.

The AlignedDetectorElement demonstrates how a GeometryContext can be used if it carries an interval of validity concept

The nominal transform is only used to once create the alignment store and then in a contextual call the actual detector element position is taken internal multi component store - the latter has to be filled though from an external source

Definition at line 40 of file InternallyAlignedDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 40 of file InternallyAlignedDetectorElement.hpp

Member Function Documentation

void ActsExamples::Contextual::InternallyAlignedDetectorElement::addAlignedTransform ( const Acts::Transform3 alignedTransform,
unsigned int  iov 
)
inline

Return local to global transform associated with this identifier

Parameters
alignedTransformis a new transform
iovis the batch for which it is meant

Definition at line 109 of file InternallyAlignedDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 109 of file InternallyAlignedDetectorElement.hpp

References m_alignedTransforms, and m_alignmentMutex.

void ActsExamples::Contextual::InternallyAlignedDetectorElement::clearAlignedTransform ( unsigned int  iov)
inline

Definition at line 115 of file InternallyAlignedDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 115 of file InternallyAlignedDetectorElement.hpp

References it, m_alignedTransforms, and m_alignmentMutex.

const Acts::Transform3 & ActsExamples::Contextual::InternallyAlignedDetectorElement::nominalTransform ( const Acts::GeometryContext gctx) const
inline

Return the nominal local to global transform

Note
the geometry context will hereby be ignored

Definition at line 104 of file InternallyAlignedDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 104 of file InternallyAlignedDetectorElement.hpp

References Acts::Test::transform.

Referenced by transform().

+ Here is the caller graph for this function:

const Acts::Transform3 & ActsExamples::Contextual::InternallyAlignedDetectorElement::transform ( const Acts::GeometryContext gctx) const
inlineoverridevirtual

Return local to global transform associated with this identifier

Parameters
gctxThe current geometry context object, e.g. alignment
Note
this is called from the surface().transform(gctx)

Implements Acts::DetectorElementBase.

Definition at line 80 of file InternallyAlignedDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 80 of file InternallyAlignedDetectorElement.hpp

References Acts::aTransform, m_alignedTransforms, m_alignmentMutex, nominalTransform(), and to_string().

+ Here is the call graph for this function:

Member Data Documentation

std::unordered_map<unsigned int, Acts::Transform3> ActsExamples::Contextual::InternallyAlignedDetectorElement::m_alignedTransforms
private

Definition at line 76 of file InternallyAlignedDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 76 of file InternallyAlignedDetectorElement.hpp

Referenced by addAlignedTransform(), clearAlignedTransform(), and transform().

std::mutex ActsExamples::Contextual::InternallyAlignedDetectorElement::m_alignmentMutex
mutableprivate

Definition at line 77 of file InternallyAlignedDetectorElement.hpp.

View newest version in sPHENIX GitHub at line 77 of file InternallyAlignedDetectorElement.hpp

Referenced by addAlignedTransform(), clearAlignedTransform(), and transform().


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