ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::AlignableGeoPositioning Class Referenceabstract

#include <TransformCache.h>

Inheritance diagram for ActsTrk::AlignableGeoPositioning:
Collaboration diagram for ActsTrk::AlignableGeoPositioning:

Public Member Functions

 AlignableGeoPositioning (const IdentifierHash &cacheHash, const DetectorType type)
 Standard constrcutor.
 AlignableGeoPositioning (const AlignableGeoPositioning &other) noexcept=delete
 Delete the copy constructor.
AlignableGeoPositioningoperator= (const AlignableGeoPositioning &other) noexcept=delete
 Delete the copy assignment operator.
 AlignableGeoPositioning (AlignableGeoPositioning &&other) noexcept=delete
 Delete the move constructor.
AlignableGeoPositioningoperator= (AlignableGeoPositioning &other) noexcept=delete
 Delete the move assignment operator.
virtual ~AlignableGeoPositioning ()
 Default destructors.
IdentifierHash hash () const
 Returns the sensor hash of this transformation cache.
const Amg::Transform3DgetTransform (const DetectorAlignStore *store) const
 Returns the matching transformation from the alignment store.
const Amg::Transform3DgetTransform (const GeometryContext &gctx) const
 returns the cached transform from the Acts Geometry context
bool storeTransform (DetectorAlignStore &store) const
 Store the final transform in the mutable alignment store.
const Amg::Transform3DgetTransform (const Acts::GeometryContext &tgContext) const
 returns the cached transform from the Acts Geometry context
virtual void releaseNominalCache () const
 resets the nominal cache associated with the detector element
DetectorType detectorType () const
 returns the detector type of the cache

Protected Member Functions

virtual Amg::Transform3D fetchTransform (const DetectorAlignStore *store) const =0

Private Types

using TicketCounter = detail::TrfStoreTicketCounter

Private Attributes

const IdentifierHash m_hash {}
const DetectorType m_type {DetectorType::UnDefined}
const unsigned int m_clientNo {TicketCounter::drawTicket(m_type)}
 Slot at which the aligned transforms can be put in the external DetectorAlignStore.
CxxUtils::CachedUniquePtrT< Amg::Transform3D > m_nomCache ATLAS_THREAD_SAFE {}
 Cache to hold the nominal transform, if no DetectorAlignStore is provided The cache is automatically erased as soon as an instantiated store is presented to the class.

Detailed Description

Definition at line 42 of file TransformCache.h.

Member Typedef Documentation

◆ TicketCounter

Constructor & Destructor Documentation

◆ AlignableGeoPositioning() [1/3]

ActsTrk::AlignableGeoPositioning::AlignableGeoPositioning ( const IdentifierHash & cacheHash,
const DetectorType type )
explicit

Standard constrcutor.

Parameters
cacheHashIdentifier hash which may be used to identify which transform shall be constructed
typeThe ATLAS subdetector type defining in which subsystem's detector align store the transform is written

Definition at line 18 of file TransformCache.cxx.

19 :
IdentifierHash hash() const
Returns the sensor hash of this transformation cache.

◆ AlignableGeoPositioning() [2/3]

ActsTrk::AlignableGeoPositioning::AlignableGeoPositioning ( const AlignableGeoPositioning & other)
deletenoexcept

Delete the copy constructor.

◆ AlignableGeoPositioning() [3/3]

ActsTrk::AlignableGeoPositioning::AlignableGeoPositioning ( AlignableGeoPositioning && other)
deletenoexcept

Delete the move constructor.

◆ ~AlignableGeoPositioning()

ActsTrk::AlignableGeoPositioning::~AlignableGeoPositioning ( )
virtual

Default destructors.

Definition at line 15 of file TransformCache.cxx.

15 {
17 }
const unsigned int m_clientNo
Slot at which the aligned transforms can be put in the external DetectorAlignStore.
static void giveBackTicket(const DetectorType detType, unsigned int ticketNo)
Return back a ticket for the specified detector type such that its slot can be used by another instan...

Member Function Documentation

◆ detectorType()

DetectorType ActsTrk::AlignableGeoPositioning::detectorType ( ) const

returns the detector type of the cache

Definition at line 34 of file TransformCache.cxx.

34{ return m_type; }

◆ fetchTransform()

◆ getTransform() [1/3]

const Amg::Transform3D & ActsTrk::AlignableGeoPositioning::getTransform ( const Acts::GeometryContext & tgContext) const

returns the cached transform from the Acts Geometry context

Parameters
tgContextThe geometry context to be unpacked to the ATLAS geometry context

◆ getTransform() [2/3]

const Amg::Transform3D & ActsTrk::AlignableGeoPositioning::getTransform ( const DetectorAlignStore * store) const

Returns the matching transformation from the alignment store.

If a nullptr is given, then it's equivalent to the case that the transformation is pointing to a perfectly aligned surface. In this case, the internal nominal transformation cache is invoked.

Parameters
storePointer to the detector aligment store

◆ getTransform() [3/3]

const Amg::Transform3D & ActsTrk::AlignableGeoPositioning::getTransform ( const GeometryContext & gctx) const

returns the cached transform from the Acts Geometry context

Parameters
gctxThe geometry context holding the aligned transforms

◆ hash()

IdentifierHash ActsTrk::AlignableGeoPositioning::hash ( ) const

Returns the sensor hash of this transformation cache.

◆ operator=() [1/2]

AlignableGeoPositioning & ActsTrk::AlignableGeoPositioning::operator= ( AlignableGeoPositioning & other)
deletenoexcept

Delete the move assignment operator.

◆ operator=() [2/2]

AlignableGeoPositioning & ActsTrk::AlignableGeoPositioning::operator= ( const AlignableGeoPositioning & other)
deletenoexcept

Delete the copy assignment operator.

◆ releaseNominalCache()

void ActsTrk::AlignableGeoPositioning::releaseNominalCache ( ) const
virtual

resets the nominal cache associated with the detector element

Reimplemented in ActsTrk::IReadoutSurfacePositioning.

Definition at line 22 of file TransformCache.cxx.

22 {
23 m_nomCache.release();
24 }

◆ storeTransform()

bool ActsTrk::AlignableGeoPositioning::storeTransform ( DetectorAlignStore & store) const

Store the final transform in the mutable alignment store.

Returns true whether a new transform was stored

Parameters
storeThe reference to the store where the cache stores its transform

Definition at line 26 of file TransformCache.cxx.

26 {
27 if (store.detType != detectorType() ||
28 store.trackingAlignment->getTransform(m_clientNo) != nullptr){
29 return false;
30 }
31 store.trackingAlignment->setTransform(m_clientNo, fetchTransform(&store));
32 return true;
33 }
DetectorType detectorType() const
returns the detector type of the cache
virtual Amg::Transform3D fetchTransform(const DetectorAlignStore *store) const =0
TestStore store
Definition TestStore.cxx:23

Member Data Documentation

◆ ATLAS_THREAD_SAFE

CxxUtils::CachedUniquePtrT<Amg::Transform3D> m_nomCache ActsTrk::AlignableGeoPositioning::ATLAS_THREAD_SAFE {}
mutableprivate

Cache to hold the nominal transform, if no DetectorAlignStore is provided The cache is automatically erased as soon as an instantiated store is presented to the class.

Definition at line 99 of file TransformCache.h.

99{};

◆ m_clientNo

const unsigned int ActsTrk::AlignableGeoPositioning::m_clientNo {TicketCounter::drawTicket(m_type)}
private

Slot at which the aligned transforms can be put in the external DetectorAlignStore.

Definition at line 95 of file TransformCache.h.

static unsigned int drawTicket(const DetectorType detType)
Returns a unique ID to the client under which the client can store its transfomrm inside the containe...

◆ m_hash

const IdentifierHash ActsTrk::AlignableGeoPositioning::m_hash {}
private

Definition at line 90 of file TransformCache.h.

90{};

◆ m_type

const DetectorType ActsTrk::AlignableGeoPositioning::m_type {DetectorType::UnDefined}
private

Definition at line 91 of file TransformCache.h.

@ UnDefined
Small Thing Gap chambers (NSW).

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