ATLAS Offline Software
GeoAlignmentStore.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 void GeoAlignmentStore::setDelta(const GeoAlignableTransform* axf, const GeoTrf::Transform3D& xf) {
8  setDelta(axf, std::make_shared<GeoTrf::Transform3D>(xf));
9 }
10 
11 void GeoAlignmentStore::setDelta(const GeoAlignableTransform* axf, std::shared_ptr<const GeoTrf::Transform3D> trans) {
12  m_deltas->setTransform(axf, std::move(trans));
13 }
14 void GeoAlignmentStore::setAbsPosition(const GeoNodePositioning* fpv, const GeoTrf::Transform3D& xf) {
15  m_absPositions->setTransform(fpv, xf);
16 }
17 void GeoAlignmentStore::setDefAbsPosition(const GeoNodePositioning* fpv, const GeoTrf::Transform3D& xf) {
19 }
21  m_deltas->lock();
22 }
26 }
27 
28 
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 }
34 
36  return m_deltas;
37 }
39  return m_absPositions;
40 }
42  return m_defAbsPositions;
43 }
45  m_absPositions = std::make_unique<PositioningMap>();
46  m_defAbsPositions = std::make_unique<PositioningMap>();
47 }
GeoAlignmentStore
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoAlignmentStore.h:24
GeoModel::TransientConstSharedPtr< DeltaMap >
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::lockDelta
void lockDelta()
: Locks the delta transform cache
Definition: GeoAlignmentStore.cxx:20
GeoAlignmentStore::setDefAbsPosition
virtual void setDefAbsPosition(const GeoNodePositioning *fullPhysVol, const GeoTrf::Transform3D &unAlignedTrf) override final
: Caches the aboslute transform of the perfectly aligned physical volume.
Definition: GeoAlignmentStore.cxx:17
GeoAlignmentStore::m_absPositions
PositioningMapPtr m_absPositions
Definition: GeoAlignmentStore.h:83
GeoAlignmentStore::getDefAbsPositions
PositioningMapPtr getDefAbsPositions() const
Definition: GeoAlignmentStore.cxx:41
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
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
GeoAlignmentStore::setAbsPosition
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 p...
Definition: GeoAlignmentStore.cxx:14
GeoAlignmentStore.h
GeoAlignmentStore::getAbsPositions
PositioningMapPtr getAbsPositions() const
Definition: GeoAlignmentStore.cxx:38
GeoAlignmentStore::getDeltas
DeltaMapPtr getDeltas() const
Definition: GeoAlignmentStore.cxx:35
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
GeoAlignmentStore::clearPosCache
void clearPosCache()
: Clears the position cache
Definition: GeoAlignmentStore.cxx:44
GeoAlignmentStore::append
bool append(const GeoAlignmentStore &other)
: Copies, the deltas, the absolute and the nominal positions of the other map to this object.
Definition: GeoAlignmentStore.cxx:29
GeoAlignmentStore::lockPosCache
void lockPosCache()
: Locks the position cache
Definition: GeoAlignmentStore.cxx:23
TransformMap::lock
void lock()
: Lock the map which switches off the mutex protection mechanism.
GeoAlignmentStore::m_deltas
DeltaMapPtr m_deltas
Definition: GeoAlignmentStore.h:82