|
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef MUONGEOMODELR4_MUONREADOUTELEMENT_H
5 #define MUONGEOMODELR4_MUONREADOUTELEMENT_H
10 #include <GaudiKernel/ServiceHandle.h>
11 #include <GeoModelKernel/GeoVDetectorElement.h>
12 #include <GeoModelKernel/GeoAlignableTransform.h>
27 class SpectrometerSector;
45 GeoIntrusivePtr<GeoVFullPhysVol>
physVol{
nullptr};
142 #ifndef SIMULATIONBASE
167 virtual double thickness()
const = 0;
185 #ifndef SIMULATIONBASE
210 using TransformCacheMap = std::unordered_map<IdentifierHash, std::unique_ptr<ActsTrk::TransformCache>>;
212 #ifndef SIMULATIONBASE
unsigned int storeAlignedTransforms(const ActsTrk::DetectorAlignStore &store) const override final
Caches the aligned transformation in the provided store. Returns the number of cached elements.
const Chamber * m_chambLink
const Chamber * chamber() const
Returns the pointer to the chamber enclosing this readout element.
const SpectrometerSector * msSector() const
Returns the pointer to the envelope volume enclosing all chambers in the sector.
Chamber
Define chamber types and locations.
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
const GeoAlignableTransform * alignTransform
Pointer to the alignable transformation.
std::set< std::unique_ptr< SurfaceCache >, std::less<> > SurfaceCacheSet
TransformCacheMap m_localToGlobalCaches
const Acts::Surface & surface() const override final
Returns the surface associated to the readout element plane.
MuonReadoutElement & operator=(const MuonReadoutElement &)=delete
std::vector< std::shared_ptr< Acts::Surface > > getSurfaces() const
Returns all surfaces that are associated with the active readout planes.
const std::string & chamberDesign() const
The chamber design refers to the construction parameters of a readout element.
ActsTrk::SurfaceCacheSet m_surfaces
Cache of all associated surfaces.
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
StatusCode createGeoTransform()
Amg::Transform3D globalToLocalTrans(const ActsGeometryContext &ctx) const
Transformations to translate between local <-> global coordinates.
const Amg::Transform3D & toStation(const ActsTrk::DetectorAlignStore *alignStore) const
Returns the local -> global transformation to go from the volume center origin.
virtual IdentifierHash layerHash(const Identifier &measId) const =0
bool const RAWDATA *ch2 const
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
std::unordered_map< IdentifierHash, std::unique_ptr< ActsTrk::TransformCache > > TransformCacheMap
Cache all local to global transformations.
int m_stPhi
Cache the station phi of the identifier.
int m_stName
Cache the station name of the identifier.
MuonReadoutElement()=delete
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
MuonReadoutElement(const MuonReadoutElement &)=delete
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
::StatusCode StatusCode
StatusCode definition for legacy code.
Eigen::Affine3d Transform3D
int m_stEta
Cache the station eta of the identifier.
Amg::Vector3D center(const ActsGeometryContext &ctx) const
Returns the detector center (Which is the same as the detector center of the first measurement layer)
Class to provide easy MsgStream access and capabilities.
virtual Identifier measurementId(const IdentifierHash &measHash) const =0
Converts the measurement hash back to the full Identifier.
IdentifierHash identHash() const
Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class...
Base class interface for the actual readout elements.
Include the GeoPrimitives which need to be put first.
Muon::MuonStationIndex::ChIndex m_chIdx
Cache the chamber index of the Identifier.
void setSectorLink(const SpectrometerSector *envelope)
Set the link to the enclosing sector envelope.
Definition of ATLAS Math & Geometry primitives (Amg)
std::string chambDesign
chamber design name as it's occuring in the parameter book tables E.g. BMS5, RPC10,...
static IdentifierHash geoTransformHash()
Returns the hash that is associated with the surface cache holding the transformation that is placing...
const GeoAlignableTransform * alignableTransform() const
Returnsthe alignable transform of the readout element.
Helper struct to ship the defining arguments of the detector element around.
StatusCode strawSurfaceFactory(const IdentifierHash &hash, std::shared_ptr< Acts::LineBounds > lBounds)
Identifier identify() const override final
Return the athena identifier.
Eigen::Matrix< double, 3, 1 > Vector3D
virtual StatusCode initElement()=0
Element initialization.
virtual ~MuonReadoutElement()
int stationName() const
Returns the stationName (BIS, BOS, etc) encoded into the integer.
StatusCode planeSurfaceFactory(const IdentifierHash &hash, std::shared_ptr< Acts::PlanarBounds > pBounds)
std::shared_ptr< Acts::Surface > surfacePtr(const IdentifierHash &hash) const
Returns the pointer associated to a certain wire / plane.
void releaseUnAlignedTrfs() const
Releases all cached transforms that are not connected with alignment.
IdentifierHash m_detElHash
Cache of the detector element hash.
virtual IdentifierHash measurementHash(const Identifier &measId) const =0
Constructs the identifier hash from the full measurement Identifier.
Muon::MuonStationIndex::ChIndex chamberIndex() const
Returns the chamber index of the Identifier (MMS & STS) have the same chamber Index (EIS)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
ChIndex
enum to classify the different chamber layers in the muon spectrometer
StatusCode insertTransform(const IdentifierHash &hash)
Inserts a transfomration for caching.
Identifier detElId
ATLAS identifier.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
int stationEta() const
Returns the stationEta (positive A site, negative O site)
void setChamberLink(const Chamber *chamber)
Sets the link to the enclosing chamber.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
GeoIntrusivePtr< GeoVFullPhysVol > physVol
Pointer to the underlying physical volume in GeoModel.
const Amg::Transform3D & transform(const Acts::GeometryContext &gctx) const override final
Returns the transformation to the origin of the chamber coordinate system.
int stationPhi() const
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
const SpectrometerSector * m_msSectorLink
Pointer to the associated MS-sector & MuonChamber.