ATLAS Offline Software
|
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector. More...
#include <MuonReadoutElement.h>
Classes | |
struct | defineArgs |
Helper struct to ship the defining arguments of the detector element around. More... | |
Public Member Functions | |
MuonReadoutElement (const defineArgs &args) | |
virtual | ~MuonReadoutElement () |
MuonReadoutElement ()=delete | |
MuonReadoutElement (const MuonReadoutElement &)=delete | |
MuonReadoutElement & | operator= (const MuonReadoutElement &)=delete |
virtual StatusCode | initElement ()=0 |
Element initialization. More... | |
const GeoAlignableTransform * | alignableTransform () const |
Returnsthe alignable transform of the readout element. More... | |
Identifier | identify () const override final |
Return the athena identifier. More... | |
IdentifierHash | identHash () const |
Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class. More... | |
int | stationName () const |
Returns the stationName (BIS, BOS, etc) encoded into the integer. More... | |
int | stationEta () const |
Returns the stationEta (positive A site, negative O site) More... | |
int | stationPhi () const |
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall)) More... | |
Muon::MuonStationIndex::ChIndex | chamberIndex () const |
Returns the chamber index of the Identifier (MMS & STS) have the same chamber Index (EIS) More... | |
virtual IdentifierHash | measurementHash (const Identifier &measId) const =0 |
Constructs the identifier hash from the full measurement Identifier. More... | |
virtual IdentifierHash | layerHash (const Identifier &measId) const =0 |
virtual Identifier | measurementId (const IdentifierHash &measHash) const =0 |
Converts the measurement hash back to the full Identifier. More... | |
const std::string & | chamberDesign () const |
The chamber design refers to the construction parameters of a readout element. More... | |
const Muon::IMuonIdHelperSvc * | idHelperSvc () const |
Returns the pointer to the muonIdHelperSvc. More... | |
Amg::Vector3D | center (const ActsGeometryContext &ctx) const |
Returns the detector center (Which is the same as the detector center of the first measurement layer) More... | |
Amg::Vector3D | center (const ActsGeometryContext &ctx, const Identifier &id) const |
Returns the center of a given detector layer using the complete Identifier of the measurement. More... | |
Amg::Vector3D | center (const ActsGeometryContext &ctx, const IdentifierHash &hash) const |
Returns the center of a given detector layer using the Identifier hash of the measurement. More... | |
Amg::Transform3D | globalToLocalTrans (const ActsGeometryContext &ctx) const |
Transformations to translate between local <-> global coordinates. More... | |
Amg::Transform3D | globalToLocalTrans (const ActsGeometryContext &ctx, const Identifier &id) const |
Returns the global to local transformation into the rest frame of a given measurement layer. More... | |
Amg::Transform3D | globalToLocalTrans (const ActsGeometryContext &ctx, const IdentifierHash &hash) const |
Returns the global to local transformation into the rest frame of a given measurement layer. More... | |
const Amg::Transform3D & | localToGlobalTrans (const ActsGeometryContext &ctx) const |
Returns the local to global transformation into the ATLAS coordinate system. More... | |
const Amg::Transform3D & | localToGlobalTrans (const ActsGeometryContext &ctx, const Identifier &id) const |
const Amg::Transform3D & | localToGlobalTrans (const ActsGeometryContext &ctx, const IdentifierHash &id) const |
const Amg::Transform3D & | transform (const Acts::GeometryContext &gctx) const override final |
Returns the transformation to the origin of the chamber coordinate system. More... | |
const Acts::Surface & | surface () const override final |
Returns the surface associated to the readout element plane. More... | |
Acts::Surface & | surface () override final |
const Acts::Surface & | surface (const IdentifierHash &hash) const |
Returns the sufrface associated to a wire / measurement plane in the detector. More... | |
Acts::Surface & | surface (const IdentifierHash &hash) |
std::shared_ptr< Acts::Surface > | surfacePtr (const IdentifierHash &hash) const |
Returns the pointer associated to a certain wire / plane. More... | |
void | setChamberLink (const Chamber *chamber) |
Sets the link to the enclosing chamber. More... | |
void | setSectorLink (const SpectrometerSector *envelope) |
Set the link to the enclosing sector envelope. More... | |
const SpectrometerSector * | msSector () const |
Returns the pointer to the envelope volume enclosing all chambers in the sector. More... | |
const Chamber * | chamber () const |
Returns the pointer to the chamber enclosing this readout element. More... | |
std::vector< std::shared_ptr< Acts::Surface > > | getSurfaces () const |
Returns all surfaces that are associated with the active readout planes. More... | |
void | releaseUnAlignedTrfs () const |
Releases all cached transforms that are not connected with alignment. More... | |
unsigned int | storeAlignedTransforms (const ActsTrk::DetectorAlignStore &store) const override final |
Caches the aligned transformation in the provided store. Returns the number of cached elements. More... | |
bool | msgLvl (const MSG::Level lvl) const |
Test the output level. More... | |
MsgStream & | msg () const |
The standard message stream. More... | |
MsgStream & | msg (const MSG::Level lvl) const |
The standard message stream. More... | |
void | setLevel (MSG::Level lvl) |
Change the current logging level. More... | |
virtual DetectorType | detectorType () const =0 |
Returns the detector element type. More... | |
Protected Member Functions | |
const Amg::Transform3D & | toStation (const ActsTrk::DetectorAlignStore *alignStore) const |
Returns the local -> global transformation to go from the volume center origin. More... | |
template<class MuonDetImpl > | |
StatusCode | insertTransform (const IdentifierHash &hash) |
Inserts a transfomration for caching. More... | |
StatusCode | createGeoTransform () |
StatusCode | strawSurfaceFactory (const IdentifierHash &hash, std::shared_ptr< Acts::LineBounds > lBounds) |
StatusCode | planeSurfaceFactory (const IdentifierHash &hash, std::shared_ptr< Acts::PlanarBounds > pBounds) |
Static Protected Member Functions | |
static IdentifierHash | geoTransformHash () |
Returns the hash that is associated with the surface cache holding the transformation that is placing the ReadoutElement inside the ATLAS coordinate system. More... | |
Private Types | |
using | TransformCacheMap = std::unordered_map< IdentifierHash, std::unique_ptr< ActsTrk::TransformCache > > |
Cache all local to global transformations. More... | |
Private Member Functions | |
void | initMessaging () const |
Initialize our message level and MessageSvc. More... | |
Private Attributes | |
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "MuonReadoutElement"} |
const defineArgs | m_args {} |
IdentifierHash | m_detElHash {} |
Cache of the detector element hash. More... | |
Muon::MuonStationIndex::ChIndex | m_chIdx {Muon::MuonStationIndex::ChIndex::ChUnknown} |
Cache the chamber index of the Identifier. More... | |
int | m_stName {-1} |
Cache the station name of the identifier. More... | |
int | m_stEta {-1} |
Cache the station eta of the identifier. More... | |
int | m_stPhi {-1} |
Cache the station phi of the identifier. More... | |
TransformCacheMap | m_localToGlobalCaches |
ActsTrk::SurfaceCacheSet | m_surfaces |
Cache of all associated surfaces. More... | |
const SpectrometerSector * | m_msSectorLink {} |
Pointer to the associated MS-sector & MuonChamber. More... | |
const Chamber * | m_chambLink {nullptr} |
std::string | m_nm |
Message source name. More... | |
boost::thread_specific_ptr< MsgStream > | m_msg_tls |
MsgStream instance (a std::cout like with print-out levels) More... | |
std::atomic< IMessageSvc * > | m_imsg { nullptr } |
MessageSvc pointer. More... | |
std::atomic< MSG::Level > | m_lvl { MSG::NIL } |
Current logging level. More... | |
std::atomic_flag m_initialized | ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
Messaging initialized (initMessaging) More... | |
Friends | |
class | ActsTrk::TransformCacheDetEle< MuonGMR4::MuonReadoutElement > |
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
The segmentation of the detectors varies along the MS subsystems and is documented further in the specific sub detector classes. As rule of thumb, detectors sitting on at a different MS layer or station Index, stationEta or station phi are represented by at least one MuonReadoutElement. The MuonReadout elements are constructed from the RAW geometry provided by GeoModelSvc. The class below is pure virtual and implements the minimal set of methods shared by all muon detector technolgies.
Definition at line 38 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache all local to global transformations.
Definition at line 210 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
MuonGMR4::MuonReadoutElement::MuonReadoutElement | ( | const defineArgs & | args | ) |
Definition at line 23 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
virtualdefault |
|
delete |
|
delete |
const GeoAlignableTransform* MuonGMR4::MuonReadoutElement::alignableTransform | ( | ) | const |
Returnsthe alignable transform of the readout element.
Amg::Vector3D MuonGMR4::MuonReadoutElement::center | ( | const ActsGeometryContext & | ctx | ) | const |
Returns the detector center (Which is the same as the detector center of the first measurement layer)
Amg::Vector3D MuonGMR4::MuonReadoutElement::center | ( | const ActsGeometryContext & | ctx, |
const Identifier & | id | ||
) | const |
Returns the center of a given detector layer using the complete Identifier of the measurement.
Amg::Vector3D MuonGMR4::MuonReadoutElement::center | ( | const ActsGeometryContext & | ctx, |
const IdentifierHash & | hash | ||
) | const |
Returns the center of a given detector layer using the Identifier hash of the measurement.
Returns the pointer to the chamber enclosing this readout element.
const std::string& MuonGMR4::MuonReadoutElement::chamberDesign | ( | ) | const |
The chamber design refers to the construction parameters of a readout element.
Used for the retrieval of the chamber parameters E.g. the chambers BOL1A8 & BOL2A8 are identical in terms of number of tubes, dimensions etc.
Muon::MuonStationIndex::ChIndex MuonGMR4::MuonReadoutElement::chamberIndex | ( | ) | const |
Returns the chamber index of the Identifier (MMS & STS) have the same chamber Index (EIS)
|
protected |
Check that the alignable node has been assigned
Definition at line 36 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
pure virtualinherited |
Returns the detector element type.
Implemented in MuonGMR4::sTgcReadoutElement, MuonGMR4::MdtReadoutElement, ActsDetectorElement, MuonGMR4::MmReadoutElement, MuonGMR4::RpcReadoutElement, MuonGMR4::TgcReadoutElement, and ActsTrk::SurfaceCache.
|
staticprotected |
Returns the hash that is associated with the surface cache holding the transformation that is placing the ReadoutElement inside the ATLAS coordinate system.
Definition at line 44 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
std::vector< std::shared_ptr< Acts::Surface > > MuonGMR4::MuonReadoutElement::getSurfaces | ( | ) | const |
Returns all surfaces that are associated with the active readout planes.
Definition at line 152 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
Amg::Transform3D MuonGMR4::MuonReadoutElement::globalToLocalTrans | ( | const ActsGeometryContext & | ctx | ) | const |
Transformations to translate between local <-> global coordinates.
They follow the common ATLAS conventations that the origin is located in the center of the detector layer x-axis: Points towards the sky y-axis: Points towards the edges of ATLAS z-axis: Points along the beamline The transformations always include the corrections from the A-Lines of the alignment system Returns the global to local transformation into the rest frame of the detector (Coincides with the first measurement layer)
Definition at line 78 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
Amg::Transform3D MuonGMR4::MuonReadoutElement::globalToLocalTrans | ( | const ActsGeometryContext & | ctx, |
const Identifier & | id | ||
) | const |
Returns the global to local transformation into the rest frame of a given measurement layer.
Amg::Transform3D MuonGMR4::MuonReadoutElement::globalToLocalTrans | ( | const ActsGeometryContext & | ctx, |
const IdentifierHash & | hash | ||
) | const |
Returns the global to local transformation into the rest frame of a given measurement layer.
IdentifierHash MuonGMR4::MuonReadoutElement::identHash | ( | ) | const |
Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class.
|
finaloverridevirtual |
Return the athena identifier.
The Identifier is identical with the first measurment channel in readout element (E.g. Strip 1 in Layer 1 in the NSW)
Implements ActsTrk::IDetectorElementBase.
const Muon::IMuonIdHelperSvc* MuonGMR4::MuonReadoutElement::idHelperSvc | ( | ) | const |
Returns the pointer to the muonIdHelperSvc.
|
pure virtual |
Element initialization.
Implemented in MuonGMR4::sTgcReadoutElement, MuonGMR4::MmReadoutElement, MuonGMR4::MdtReadoutElement, MuonGMR4::RpcReadoutElement, and MuonGMR4::TgcReadoutElement.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
protected |
Inserts a transfomration for caching.
|
pure virtual |
const Amg::Transform3D & MuonGMR4::MuonReadoutElement::localToGlobalTrans | ( | const ActsGeometryContext & | ctx | ) | const |
Returns the local to global transformation into the ATLAS coordinate system.
Definition at line 81 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
const Amg::Transform3D& MuonGMR4::MuonReadoutElement::localToGlobalTrans | ( | const ActsGeometryContext & | ctx, |
const Identifier & | id | ||
) | const |
const Amg::Transform3D & MuonGMR4::MuonReadoutElement::localToGlobalTrans | ( | const ActsGeometryContext & | ctx, |
const IdentifierHash & | id | ||
) | const |
Definition at line 50 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
pure virtual |
Constructs the identifier hash from the full measurement Identifier.
The hash is always defined w.r.t the specific detector element and used to access the information in memory quickly
Implemented in MuonGMR4::sTgcReadoutElement, MuonGMR4::RpcReadoutElement, MuonGMR4::MdtReadoutElement, MuonGMR4::MmReadoutElement, and MuonGMR4::TgcReadoutElement.
|
pure virtual |
Converts the measurement hash back to the full Identifier.
Implemented in MuonGMR4::sTgcReadoutElement, MuonGMR4::RpcReadoutElement, MuonGMR4::MdtReadoutElement, MuonGMR4::MmReadoutElement, and MuonGMR4::TgcReadoutElement.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
|
inlineinherited |
Test the output level.
lvl | The message level to test against |
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
const SpectrometerSector* MuonGMR4::MuonReadoutElement::msSector | ( | ) | const |
Returns the pointer to the envelope volume enclosing all chambers in the sector.
|
delete |
|
protected |
Definition at line 125 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
void MuonGMR4::MuonReadoutElement::releaseUnAlignedTrfs | ( | ) | const |
Releases all cached transforms that are not connected with alignment.
Definition at line 62 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
Sets the link to the enclosing chamber.
Definition at line 145 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
inherited |
Change the current logging level.
Use this rather than msg().setLevel() for proper operation with MT.
Definition at line 28 of file AthMessaging.cxx.
void MuonGMR4::MuonReadoutElement::setSectorLink | ( | const SpectrometerSector * | envelope | ) |
Set the link to the enclosing sector envelope.
Definition at line 148 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
int MuonGMR4::MuonReadoutElement::stationEta | ( | ) | const |
Returns the stationEta (positive A site, negative O site)
int MuonGMR4::MuonReadoutElement::stationName | ( | ) | const |
Returns the stationName (BIS, BOS, etc) encoded into the integer.
int MuonGMR4::MuonReadoutElement::stationPhi | ( | ) | const |
Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
|
finaloverridevirtual |
Caches the aligned transformation in the provided store. Returns the number of cached elements.
Implements ActsTrk::IDetectorElement.
Definition at line 68 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
protected |
Definition at line 102 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
finaloverride |
Returns the surface associated to the readout element plane.
Definition at line 97 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
finaloverride |
Definition at line 98 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
Acts::Surface & MuonGMR4::MuonReadoutElement::surface | ( | const IdentifierHash & | hash | ) |
Definition at line 100 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
const Acts::Surface & MuonGMR4::MuonReadoutElement::surface | ( | const IdentifierHash & | hash | ) | const |
Returns the sufrface associated to a wire / measurement plane in the detector.
Definition at line 99 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
std::shared_ptr< Acts::Surface > MuonGMR4::MuonReadoutElement::surfacePtr | ( | const IdentifierHash & | hash | ) | const |
Returns the pointer associated to a certain wire / plane.
Definition at line 89 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
protected |
Returns the local -> global transformation to go from the volume center origin.
Definition at line 59 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
finaloverride |
Returns the transformation to the origin of the chamber coordinate system.
Definition at line 85 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
friend |
Definition at line 174 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
private |
Definition at line 198 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
Definition at line 217 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache the chamber index of the Identifier.
Definition at line 202 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache of the detector element hash.
Definition at line 200 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Definition at line 196 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
mutableprivateinherited |
MessageSvc pointer.
Definition at line 135 of file AthMessaging.h.
|
private |
Definition at line 211 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
mutableprivateinherited |
Current logging level.
Definition at line 138 of file AthMessaging.h.
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
private |
Pointer to the associated MS-sector & MuonChamber.
Definition at line 216 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
private |
Cache the station eta of the identifier.
Definition at line 206 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache the station name of the identifier.
Definition at line 204 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache the station phi of the identifier.
Definition at line 208 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache of all associated surfaces.
Definition at line 214 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.