|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #ifndef TRT_BaseElement_h
12 #define TRT_BaseElement_h 1
25 #include "Identifier/Identifier.h"
27 #include "CLHEP/Geometry/Transform3D.h"
28 #include "CLHEP/Geometry/Point3D.h"
41 class SurfaceCacheBase;
Ensure that the extensions for the Vector3D are properly loaded.
virtual const double & strawLength() const =0
Active straw length.
virtual int strawDirection() const =0
StrawDirection.
virtual HepGeom::Transform3D calculateStrawTransform(int straw) const =0
to be overloaded by the extended classes
const std::vector< const Trk::Surface * > & surfaces() const
Returns the full list of all detection surfaces associated to this detector element.
void updateAllCaches()
Update all caches.
virtual const Trk::Surface & elementSurface() const =0
creates surface for detector element, to be implemented in derived class
const GeoTrf::Transform3D & defTransform() const
Get Default Transform (of module in barrel, layer in endcap) from GeoModel before alignment correctio...
void deleteCache()
Helper method for cache dealing.
unsigned int nStraws() const
Number of straws in the element.
Cached pointer with atomic update.
Amg::Vector3D strawAxis(int straw) const
Straw axis.
const Amg::Vector3D & strawCenter(int straw) const
Straw Surface: Local -> global transform of the straw via integer.
TRT_BaseElement(const GeoVFullPhysVol *volume, const Identifier &id, const TRT_ID *idHelper, const TRT_Conditions *conditions)
Constructor:
bool const RAWDATA *ch2 const
const TRT_BaseElement & operator=(const TRT_BaseElement &right)
Illegal operations:
std::unique_ptr< SurfaceCacheBase > createSurfaceCacheHelper(int straw) const
std::vector< CxxUtils::CachedUniquePtr< Trk::StraightLineSurface > > m_strawSurfaces
CxxUtils::CachedValue< SurfaceCache > m_surfaceCache
virtual void createSurfaceCache() const =0
create the surface cache of the detector element, to be implementd in the deried class
virtual ~TRT_BaseElement()=default
Destructor:
Eigen::Affine3d Transform3D
Cached unique_ptr with atomic update.
const TRT_ID * m_idHelper
Cached value with atomic update.
const TRT_Conditions * conditions() const
Return the TRT_Conditions object associated to this Detector element.
const HepGeom::Transform3D getAbsoluteTransform(int straw) const
This is an alias to strawTransform(int straw)
virtual Identifier identify() const override final
identifier of this detector element:
virtual TRT_BaseElement::Type type() const =0
Type information: returns BARREL or ENDCAP.
virtual IdentifierHash identifyHash() const override final
identifier hash
CxxUtils::CachedValue< std::vector< const Trk::Surface * > > m_surfaces
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
std::vector< CxxUtils::CachedUniquePtr< SurfaceCacheBase > > m_strawSurfacesCache
helper element surface for the cache
Cached value with atomic update.
void invalidateOther() const
invalidate action on the cache
void invalidate()
Invalidate cache.
Eigen::Matrix< double, 3, 1 > Vector3D
virtual const Trk::SurfaceBounds & bounds() const override final
Straw layer bounds.
virtual Trk::DetectorElemType detectorType() const override final
TrkDetElementBase interface detectorTyoe.
const Amg::Transform3D & strawTransform(unsigned int straw) const
Straw transform - fast access in array, in Tracking frame: Amg.
virtual const Amg::Vector3D & center() const override final
Element Surface: center of a straw layer.
const Trk::StraightLineSurface & strawSurface(int straw) const
Straw Surface: access to the surface via integer.
virtual const Trk::SurfaceBounds & strawBounds() const =0
the straw bounds
const TRT_Conditions * m_conditions
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
virtual const Amg::Vector3D & normal() const override final
Element Surface: normal of a straw layer.
virtual const Trk::Surface & surface() const override final
Element Surface: access to the Surface (straw layer)
CxxUtils::CachedUniquePtr< Trk::Surface > m_surface
virtual const Amg::Transform3D & transform() const override final
Element Surface: Get Transform of element in Tracking frame: Amg.