ATLAS Offline Software
Public Types | Public Member Functions | Private Attributes | List of all members
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. More...
 
virtual ~GeoAlignmentStore () override=default
 Default destructor. More...
 
virtual void setDelta (const GeoAlignableTransform *alignableNode, const GeoTrf::Transform3D &transform) override
 : Assign the alignment delta transform with a alignable GeoModel node More...
 
void setDelta (const GeoAlignableTransform *alignableNode, std::shared_ptr< const GeoTrf::Transform3D > trans)
 : Assign the alignment delta transform with a alignable GeoModel node More...
 
virtual const GeoTrf::Transform3D * getDelta (const GeoAlignableTransform *alignableNode) const override final
 : Retrieve the alignment distortion associated with the alignable node. More...
 
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. More...
 
virtual const GeoTrf::Transform3D * getAbsPosition (const GeoNodePositioning *fullPhysVol) const override final
 : Returns the aligned transform associated with the full physical volume. More...
 
virtual void setDefAbsPosition (const GeoNodePositioning *fullPhysVol, const GeoTrf::Transform3D &unAlignedTrf) override final
 : Caches the aboslute transform of the perfectly aligned physical volume. More...
 
virtual const GeoTrf::Transform3D * getDefAbsPosition (const GeoNodePositioning *fullPhysVol) const override final
 : Returns the nominal position of the full phyiscal volume. More...
 
bool append (const GeoAlignmentStore &other)
 : Copies, the deltas, the absolute and the nominal positions of the other map to this object. More...
 
void clearPosCache ()
 : Clears the position cache More...
 
void lockDelta ()
 : Locks the delta transform cache More...
 
void lockPosCache ()
 : Locks the position cache More...
 
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

Definition at line 77 of file GeoAlignmentStore.h.

◆ PositioningMap

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

Definition at line 79 of file GeoAlignmentStore.h.

◆ PositioningMapPtr

Definition at line 80 of file GeoAlignmentStore.h.

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 }

◆ 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  {
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  {
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 }

◆ 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.

◆ m_defAbsPositions

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

Definition at line 84 of file GeoAlignmentStore.h.

◆ m_deltas

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

Definition at line 82 of file GeoAlignmentStore.h.


The documentation for this class was generated from the following files:
TransformMap::setTransform
bool setTransform(const T *obj, const X &xf) const
: Adds a transform object to the map.
GeoAlignmentStore::m_defAbsPositions
PositioningMapPtr m_defAbsPositions
Definition: GeoAlignmentStore.h:84
GeoAlignmentStore::m_absPositions
PositioningMapPtr m_absPositions
Definition: GeoAlignmentStore.h:83
TransformMap::getTransform
const X * getTransform(const T *obj) const
: Returns the transform that's associated with input object.
TransformMap::append
bool append(const TransformMap &other)
: Copies all key value pairs from the external map and appends it to this map instance.
GeoAlignmentStore::setDelta
virtual void setDelta(const GeoAlignableTransform *alignableNode, const GeoTrf::Transform3D &transform) override
: Assign the alignment delta transform with a alignable GeoModel node
Definition: GeoAlignmentStore.cxx:7
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
TransformMap::lock
void lock()
: Lock the map which switches off the mutex protection mechanism.
GeoAlignmentStore::m_deltas
DeltaMapPtr m_deltas
Definition: GeoAlignmentStore.h:82