4#ifndef ActsGeoUtils_TransformCache_H
5#define ActsGeoUtils_TransformCache_H
124 #ifndef SIMULATIONBASE
155 template<
typename CachingDetectorEle>
162 const CachingDetectorEle* parentEle);
Cached unique_ptr with atomic update.
Eigen::Affine3d Transform3D
detail::TrfStoreTicketCounter TicketCounter
virtual ~AlignableGeoPositioning()
Default destructors.
const unsigned int m_clientNo
Slot at which the aligned transforms can be put in the external DetectorAlignStore.
const Amg::Transform3D & getTransform(const DetectorAlignStore *store) const
Returns the matching transformation from the alignment store.
const Amg::Transform3D & getTransform(const GeometryContext &gctx) const
returns the cached transform from the Acts Geometry context
IdentifierHash hash() const
Returns the sensor hash of this transformation cache.
AlignableGeoPositioning(AlignableGeoPositioning &&other) noexcept=delete
Delete the move constructor.
virtual void releaseNominalCache() const
resets the nominal cache associated with the detector element
const Amg::Transform3D & getTransform(const Acts::GeometryContext &tgContext) const
returns the cached transform from the Acts Geometry context
DetectorType detectorType() const
returns the detector type of the cache
bool storeTransform(DetectorAlignStore &store) const
Store the final transform in the mutable alignment store.
const IdentifierHash m_hash
AlignableGeoPositioning(const AlignableGeoPositioning &other) noexcept=delete
Delete the copy constructor.
AlignableGeoPositioning & operator=(const AlignableGeoPositioning &other) noexcept=delete
Delete the copy assignment operator.
virtual Amg::Transform3D fetchTransform(const DetectorAlignStore *store) const =0
AlignableGeoPositioning(const IdentifierHash &cacheHash, const DetectorType type)
Standard constrcutor.
AlignableGeoPositioning & operator=(AlignableGeoPositioning &other) noexcept=delete
Delete the move assignment operator.
const DetectorType m_type
CxxUtils::CachedUniquePtrT< Amg::Transform3D > m_nomCache ATLAS_THREAD_SAFE
Cache to hold the nominal transform, if no DetectorAlignStore is provided The cache is automatically ...
ATLAS interface of a detector element.
Interface extension for caches used to hold the transforms of surfaces from the readout geometry.
virtual ~IReadoutSurfacePositioning()
Destructor.
const SurfacePlacement * placement() const
Returns the pointer to the associated surface placement.
std::shared_ptr< SurfacePlacement > m_placement
Holder of the surface placement pointer.
std::shared_ptr< Acts::Surface > m_surface
Holder of the surface owned by the surface placement.
friend class SurfacePlacement
virtual Identifier identify() const =0
Returns the Identifier of the.
AlignableGeoPositioning(const IdentifierHash &cacheHash, const DetectorType type)
Copy the constructors from the base class.
virtual void releaseNominalCache() const final
Release the nominal transform stored in the cache.
virtual const IDetectorElement * parent() const =0
Returns the parent IDetectorElement owning the cache.
ReadoutSurfacePositioning(const IdentifierHash &hash, const CachingDetectorEle *parentEle)
: Standard constructor taking the hash of the sensor element and and the TransformMaker expressed usu...
const CachingDetectorEle * parent() const override final
Returns the parent IDetectorElement owning the cache.
Identifier identify() const override final
Returns the Identifier of the.
Amg::Transform3D fetchTransform(const DetectorAlignStore *store) const override final
const CachingDetectorEle * m_parent
: Helper class to assign a @ActsSurfacePlacementBase to the Acts::Surfaces in order to make them alig...
In order that the TransformStore is able to provide enough memory to store the transform centrally,...
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...
Cached pointer with atomic update.
This is a "hash" representation of an Identifier.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
@ UnDefined
Small Thing Gap chambers (NSW).
This class is not to needed in AthSimulation.
Definition of ATLAS Math & Geometry primitives (Amg).
Eigen::Affine3d Transform3D