|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MUONREADOUTGEOMETRY_MUONCLUSTERREADOUTELEMENT_H
6 #define MUONREADOUTGEOMETRY_MUONCLUSTERREADOUTELEMENT_H
19 class MuonDetectorManager;
137 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" "<<__func__<<
" Requesting surface but cache is empty");
138 throw std::runtime_error(
"Empty surface cache");
150 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" "<<__func__<<
" Requesting transform but cache is empty");
151 throw std::runtime_error(
"Empty transform cache");
163 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" "<<__func__<<
" Requesting center but cache is empty");
164 throw std::runtime_error(
"Empty center cache");
175 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" "<<__func__<<
" Requesting normal but cache is empty");
176 throw std::runtime_error(
"Empty normal cache");
187 ATH_MSG_FATAL(__FILE__<<
":"<<__LINE__<<
" "<<__func__<<
" Requesting bounds but cache is empty");
188 throw std::runtime_error(
"Empty bounds cache");
198 std::vector<const Trk::Surface*> elementSurfaces;
202 elementSurfaces.reserve(
m_surfaceData->m_layerSurfaces.size());
203 for (
const std::unique_ptr<Trk::PlaneSurface>&
ptr :
m_surfaceData->m_layerSurfaces) {
204 elementSurfaces.emplace_back(
ptr.get());
208 return elementSurfaces;
212 #endif // MUONREADOUTGEOMETRY_MUONCLUSTERREADOUTELEMENT_H
std::vector< Amg::Vector3D > m_layerNormals
all surfaces on the muon strip detectors have the same normal vector
virtual const Amg::Transform3D & transform() const override
Return local to global transform.
~MuonClusterReadoutElement()
Ensure that the Athena extensions are properly loaded.
virtual const Amg::Vector3D & normal() const override
Return the normal of the element.
virtual const Amg::Vector3D & center() const override
Return the center of the element.
Eigen::Matrix< double, 2, 1 > Vector2D
virtual void clearCache() override final
clear the cache of the readout elememt
virtual std::vector< const Trk::Surface * > surfaces() const
returns all the surfaces contained in this detector element
bool const RAWDATA *ch2 const
virtual int boundaryHash(const Identifier &id) const =0
returns the hash function to be used to look up the surface boundary for a given identifier
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
virtual bool spacePointPosition(const Identifier &phiId, const Identifier &etaId, Amg::Vector3D &pos) const =0
Global space point position for a given pair of phi and eta identifiers If one of the identifiers is ...
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const =0
strip position If the strip number is outside the range of valid strips, the function will return fal...
virtual bool spacePointPosition(const Identifier &phiId, const Identifier &etaId, Amg::Vector2D &pos) const =0
space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in th...
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
virtual bool measuresPhi(const Identifier &id) const =0
returns whether the given identifier measures phi or not
std::unique_ptr< SurfaceData > m_surfaceData
virtual double distanceToReadout(const Amg::Vector2D &pos, const Identifier &id) const =0
distance to readout.
struct to hold information needed for TrkDetElementBase, takes owership of all pointers
Eigen::Affine3d Transform3D
virtual int numberOfStrips(const Identifier &layerId) const =0
number of strips per layer
std::vector< Amg::Transform3D > m_layerTransforms
there are two transformation per layer as the eta/phi surfaces are rotated by 90 degrees wrt eachothe...
virtual int numberOfLayers(bool measuresPhi) const =0
number of layers in phi/eta projection
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
virtual int layerHash(const Identifier &id) const =0
returns the hash function to be used to look up the center and the normal of the tracking surface for...
virtual int stripNumber(const Amg::Vector2D &pos, const Identifier &id) const =0
strip number corresponding to local position.
virtual int numberOfStrips(int layer, bool measuresPhi) const =0
Eigen::Matrix< double, 3, 1 > Vector3D
std::vector< Amg::Vector3D > m_layerCenters
the eta and phi surfaces for a given layer share the same center: Total number = number of layers
std::vector< std::unique_ptr< Trk::PlaneSurface > > m_layerSurfaces
there are two surfaces per layer as the eta/phi surfaces are rotated by 90 degrees wrt eachother: Tot...
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
std::vector< std::unique_ptr< Trk::SurfaceBounds > > m_surfBounds
the eta and phi bounds of the individual layers are not all identical in the muon system (sTGC stairc...
virtual const Trk::SurfaceBounds & bounds() const override
Return the boundaries of the element.
virtual int surfaceHash(const Identifier &id) const =0
returns the hash function to be used to look up the surface and surface transform for a given identif...