ATLAS Offline Software
Loading...
Searching...
No Matches
GeoAlignmentStore Class Reference

Ensure that the extensions for the Vector3D are properly loaded. More...

#include <GeoAlignmentStore.h>

Inheritance diagram for GeoAlignmentStore:
Collaboration diagram for GeoAlignmentStore:

Public Types

using DeltaMap = TransformMap<GeoAlignableTransform, GeoTrf::Transform3D>
using DeltaMapPtr = GeoModel::TransientConstSharedPtr<DeltaMap>
using PositioningMap = TransformMap<GeoNodePositioning, GeoTrf::Transform3D>
using PositioningMapPtr = GeoModel::TransientConstSharedPtr<PositioningMap>

Public Member Functions

 GeoAlignmentStore ()=default
 Default constructor.
virtual ~GeoAlignmentStore () override=default
 Default destructor.
virtual void setDelta (const GeoAlignableTransform *alignableNode, const GeoTrf::Transform3D &transform) override
 : Assign the alignment delta transform with a alignable GeoModel node
void setDelta (const GeoAlignableTransform *alignableNode, std::shared_ptr< const GeoTrf::Transform3D > trans)
 : Assign the alignment delta transform with a alignable GeoModel node
virtual const GeoTrf::Transform3D * getDelta (const GeoAlignableTransform *alignableNode) const override final
 : Retrieve the alignment distortion associated with the alignable node.
virtual void setAbsPosition (const GeoNodePositioning *fullPhysVol, const GeoTrf::Transform3D &physVolTrf) override final
 : Caches the absolute transform including the alignment distortions that's associated with the full physical volume.
virtual const GeoTrf::Transform3D * getAbsPosition (const GeoNodePositioning *fullPhysVol) const override final
 : Returns the aligned transform associated with the full physical volume.
virtual void setDefAbsPosition (const GeoNodePositioning *fullPhysVol, const GeoTrf::Transform3D &unAlignedTrf) override final
 : Caches the aboslute transform of the perfectly aligned physical volume.
virtual const GeoTrf::Transform3D * getDefAbsPosition (const GeoNodePositioning *fullPhysVol) const override final
 : Returns the nominal position of the full phyiscal volume.
bool append (const GeoAlignmentStore &other)
 : Copies, the deltas, the absolute and the nominal positions of the other map to this object.
void clearPosCache ()
 : Clears the position cache
void lockDelta ()
 : Locks the delta transform cache
void lockPosCache ()
 : Locks the position cache
DeltaMapPtr getDeltas () const
PositioningMapPtr getAbsPositions () const
PositioningMapPtr getDefAbsPositions () const

Private Attributes

DeltaMapPtr m_deltas {std::make_unique<DeltaMap>()}
PositioningMapPtr m_absPositions {std::make_unique<PositioningMap>()}
PositioningMapPtr m_defAbsPositions {std::make_unique<PositioningMap>()}

Detailed Description

Ensure that the extensions for the Vector3D are properly loaded.

Ensure that the extensions for the Vector3D are properly loaded

Definition at line 24 of file GeoAlignmentStore.h.

Member Typedef Documentation

◆ DeltaMap

using GeoAlignmentStore::DeltaMap = TransformMap<GeoAlignableTransform, GeoTrf::Transform3D>

Definition at line 76 of file GeoAlignmentStore.h.

◆ DeltaMapPtr

◆ PositioningMap

using GeoAlignmentStore::PositioningMap = TransformMap<GeoNodePositioning, GeoTrf::Transform3D>

Definition at line 79 of file GeoAlignmentStore.h.

◆ PositioningMapPtr

Constructor & Destructor Documentation

◆ GeoAlignmentStore()

GeoAlignmentStore::GeoAlignmentStore ( )
default

Default constructor.

◆ ~GeoAlignmentStore()

virtual GeoAlignmentStore::~GeoAlignmentStore ( )
overridevirtualdefault

Default destructor.

Member Function Documentation

◆ append()

bool GeoAlignmentStore::append ( const GeoAlignmentStore & other)

: Copies, the deltas, the absolute and the nominal positions of the other map to this object.

Returns false if the two maps partially overlap.

Definition at line 29 of file GeoAlignmentStore.cxx.

29 {
30 return (other.m_absPositions == m_absPositions || m_absPositions->append(*other.m_absPositions)) &&
31 (m_defAbsPositions == other.m_defAbsPositions || m_defAbsPositions->append(*other.m_defAbsPositions)) &&
32 (other.m_deltas == m_deltas || m_deltas->append(*other.m_deltas));
33}
PositioningMapPtr m_absPositions
PositioningMapPtr m_defAbsPositions

◆ clearPosCache()

void GeoAlignmentStore::clearPosCache ( )

: Clears the position cache

Definition at line 44 of file GeoAlignmentStore.cxx.

44 {
45 m_absPositions = std::make_unique<PositioningMap>();
46 m_defAbsPositions = std::make_unique<PositioningMap>();
47}

◆ getAbsPosition()

const GeoTrf::Transform3D * GeoAlignmentStore::getAbsPosition ( const GeoNodePositioning * fullPhysVol) const
inlinefinaloverridevirtual

: Returns the aligned transform associated with the full physical volume.

Returns a nullptr if the physical volume has not been added before

Definition at line 95 of file GeoAlignmentStore.h.

95 {
96 return m_absPositions->getTransform(fpv);
97}

◆ getAbsPositions()

GeoAlignmentStore::PositioningMapPtr GeoAlignmentStore::getAbsPositions ( ) const

Definition at line 38 of file GeoAlignmentStore.cxx.

38 {
39 return m_absPositions;
40}

◆ getDefAbsPosition()

const GeoTrf::Transform3D * GeoAlignmentStore::getDefAbsPosition ( const GeoNodePositioning * fullPhysVol) const
inlinefinaloverridevirtual

: Returns the nominal position of the full phyiscal volume.

Returns a nullptr if the nominal position of the full physical volume has not been added before to the map

Definition at line 98 of file GeoAlignmentStore.h.

98 {
99 return m_defAbsPositions->getTransform(fpv);
100}

◆ getDefAbsPositions()

GeoAlignmentStore::PositioningMapPtr GeoAlignmentStore::getDefAbsPositions ( ) const

Definition at line 41 of file GeoAlignmentStore.cxx.

41 {
42 return m_defAbsPositions;
43}

◆ getDelta()

const GeoTrf::Transform3D * GeoAlignmentStore::getDelta ( const GeoAlignableTransform * alignableNode) const
inlinefinaloverridevirtual

: Retrieve the alignment distortion associated with the alignable node.

Returns a nullptr if no distorion has been set before

Parameters
alignableNodePointer to the alignable node in the GeoModel tree

Definition at line 92 of file GeoAlignmentStore.h.

92 {
93 return m_deltas->getTransform(axf);
94}

◆ getDeltas()

GeoAlignmentStore::DeltaMapPtr GeoAlignmentStore::getDeltas ( ) const

Definition at line 35 of file GeoAlignmentStore.cxx.

35 {
36 return m_deltas;
37}

◆ lockDelta()

void GeoAlignmentStore::lockDelta ( )

: Locks the delta transform cache

Definition at line 20 of file GeoAlignmentStore.cxx.

20 {
21 m_deltas->lock();
22}

◆ lockPosCache()

void GeoAlignmentStore::lockPosCache ( )

: Locks the position cache

Definition at line 23 of file GeoAlignmentStore.cxx.

23 {
24 m_absPositions->lock();
25 m_defAbsPositions->lock();
26}

◆ setAbsPosition()

void GeoAlignmentStore::setAbsPosition ( const GeoNodePositioning * fullPhysVol,
const GeoTrf::Transform3D & physVolTrf )
finaloverridevirtual

: Caches the absolute transform including the alignment distortions that's associated with the full physical volume.

Parameters
fullPhysVolFull physical volume in the GeoModel tree to which the transforms belongs to
physVolTrfAligned placement of the physical volume in space

Definition at line 14 of file GeoAlignmentStore.cxx.

14 {
15 m_absPositions->setTransform(fpv, xf);
16}

◆ setDefAbsPosition()

void GeoAlignmentStore::setDefAbsPosition ( const GeoNodePositioning * fullPhysVol,
const GeoTrf::Transform3D & unAlignedTrf )
finaloverridevirtual

: Caches the aboslute transform of the perfectly aligned physical volume.

Parameters
fullPhysVolFull physical volume in the GeoModel tree to which the transforms belongs to
unAlignedTrfNominal placement of the full physical volume.

Definition at line 17 of file GeoAlignmentStore.cxx.

17 {
18 m_defAbsPositions->setTransform(fpv, xf);
19}

◆ setDelta() [1/2]

void GeoAlignmentStore::setDelta ( const GeoAlignableTransform * alignableNode,
const GeoTrf::Transform3D & transform )
overridevirtual

: Assign the alignment delta transform with a alignable GeoModel node

Parameters
alignableNodeTransform node in the GeoModel tree to align
transformDistortion of the node and the subsequent subtree

Definition at line 7 of file GeoAlignmentStore.cxx.

7 {
8 setDelta(axf, std::make_shared<GeoTrf::Transform3D>(xf));
9}
virtual void setDelta(const GeoAlignableTransform *alignableNode, const GeoTrf::Transform3D &transform) override
: Assign the alignment delta transform with a alignable GeoModel node

◆ setDelta() [2/2]

void GeoAlignmentStore::setDelta ( const GeoAlignableTransform * alignableNode,
std::shared_ptr< const GeoTrf::Transform3D > trans )

: Assign the alignment delta transform with a alignable GeoModel node

Parameters
alignableNodeTransform node in the GeoModel tree to align
transformDistortion of the node and the subsequent subtree

Definition at line 11 of file GeoAlignmentStore.cxx.

11 {
12 m_deltas->setTransform(axf, std::move(trans));
13}

Member Data Documentation

◆ m_absPositions

PositioningMapPtr GeoAlignmentStore::m_absPositions {std::make_unique<PositioningMap>()}
private

Definition at line 83 of file GeoAlignmentStore.h.

83{std::make_unique<PositioningMap>()};

◆ m_defAbsPositions

PositioningMapPtr GeoAlignmentStore::m_defAbsPositions {std::make_unique<PositioningMap>()}
private

Definition at line 84 of file GeoAlignmentStore.h.

84{std::make_unique<PositioningMap>()};

◆ m_deltas

DeltaMapPtr GeoAlignmentStore::m_deltas {std::make_unique<DeltaMap>()}
private

Definition at line 82 of file GeoAlignmentStore.h.

82{std::make_unique<DeltaMap>()};

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