ATLAS Offline Software
Loading...
Searching...
No Matches
GeoAlignmentStore.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7void GeoAlignmentStore::setDelta(const GeoAlignableTransform* axf, const GeoTrf::Transform3D& xf) {
8 setDelta(axf, std::make_shared<GeoTrf::Transform3D>(xf));
9}
10
11void GeoAlignmentStore::setDelta(const GeoAlignableTransform* axf, std::shared_ptr<const GeoTrf::Transform3D> trans) {
12 m_deltas->setTransform(axf, std::move(trans));
13}
14void GeoAlignmentStore::setAbsPosition(const GeoNodePositioning* fpv, const GeoTrf::Transform3D& xf) {
15 m_absPositions->setTransform(fpv, xf);
16}
17void GeoAlignmentStore::setDefAbsPosition(const GeoNodePositioning* fpv, const GeoTrf::Transform3D& xf) {
18 m_defAbsPositions->setTransform(fpv, xf);
19}
21 m_deltas->lock();
22}
27
28
29bool GeoAlignmentStore::posCacheLocked() const { return m_deltas->isLocked(); }
30bool GeoAlignmentStore::deltaCacheLocked() const { return m_absPositions->isLocked(); }
31
32
34 bool allGood{m_deltas->append(*other.m_deltas)};
35 allGood = m_absPositions->append(*other.m_absPositions) && allGood;
36 allGood = m_defAbsPositions->append(*other.m_defAbsPositions) && allGood;
37 return allGood;
38}
39
50 m_absPositions = std::make_unique<PositioningMap>();
51 m_defAbsPositions = std::make_unique<PositioningMap>();
52}
bool deltaCacheLocked() const
Returns whether the delta transform cache is locked.
PositioningMapPtr m_absPositions
bool posCacheLocked() const
Returns whether the position cache is locked.
GeoModel::TransientConstSharedPtr< PositioningMap > PositioningMapPtr
bool append(const GeoAlignmentStore &other)
: Copies, the deltas, the absolute and the nominal positions of the other map to this object.
PositioningMapPtr getDefAbsPositions() const
PositioningMapPtr getAbsPositions() const
virtual void setDelta(const GeoAlignableTransform *alignableNode, const GeoTrf::Transform3D &transform) override
: Assign the alignment delta transform with a alignable GeoModel node
void clearPosCache()
: Clears the position cache
GeoModel::TransientConstSharedPtr< DeltaMap > DeltaMapPtr
virtual void setDefAbsPosition(const GeoNodePositioning *fullPhysVol, const GeoTrf::Transform3D &unAlignedTrf) override final
: Caches the aboslute transform of the perfectly aligned physical volume.
PositioningMapPtr m_defAbsPositions
void lockDelta()
: Locks the delta transform cache
GeoAlignmentStore()=default
Default constructor.
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...
void lockPosCache()
: Locks the position cache
DeltaMapPtr getDeltas() const