4#ifndef ActsGeoUtils_TransformCache_H
5#define ActsGeoUtils_TransformCache_H
127 #ifndef SIMULATIONBASE
158 template<
typename CachingDetectorEle>
165 const CachingDetectorEle* parentEle);
Cached unique_ptr with atomic update.
Eigen::Affine3d Transform3D
const Amg::Isometry3D & getTransform(const GeometryContext &gctx) const
returns the cached transform from the Acts Geometry context
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.
CxxUtils::CachedUniquePtrT< Amg::Isometry3D > m_nomCache ATLAS_THREAD_SAFE
Cache to hold the nominal transform, if no DetectorAlignStore is provided The cache is automatically ...
IdentifierHash hash() const
Returns the sensor hash of this transformation cache.
AlignableGeoPositioning(AlignableGeoPositioning &&other) noexcept=delete
Delete the move constructor.
const Amg::Isometry3D & getTransform(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
bool storeTransform(DetectorAlignStore &store) const
Store the final transform in the mutable alignment store.
const IdentifierHash m_hash
const Amg::Isometry3D & getTransform(const DetectorAlignStore *store) const
Returns the matching transformation from the alignment store.
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
Assembles the transform from the readout geometry.
AlignableGeoPositioning(const IdentifierHash &cacheHash, const DetectorType type)
Standard constrcutor.
AlignableGeoPositioning & operator=(AlignableGeoPositioning &other) noexcept=delete
Delete the move assignment operator.
const DetectorType m_type
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
Assembles the transform from the readout geometry.
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::Isometry3d Isometry3D
Eigen::Affine3d Transform3D