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 (defineArgs &&args) | |
MuonReadoutElement ()=delete | |
MuonReadoutElement (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... | |
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 Acts::Transform3 & | 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 (GeoModel::TransientConstSharedPtr< MuonChamber > chamber) |
Set's the link to the MuonChamber object to which the MuonReadoutElement belongs to. More... | |
const MuonChamber * | getChamber () const |
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 transformation into the center of the readout volume. 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 |
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... | |
GeoModel::TransientConstSharedPtr< MuonChamber > | m_chambLink {} |
Pointer to the associated MuonChamber. More... | |
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 204 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
MuonGMR4::MuonReadoutElement::MuonReadoutElement | ( | defineArgs && | args | ) |
Definition at line 18 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
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.
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 31 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, and MuonGMR4::TgcReadoutElement.
|
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 39 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
const MuonChamber * MuonGMR4::MuonReadoutElement::getChamber | ( | ) | const |
Definition at line 142 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 73 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::IDetectorElement.
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 76 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 45 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.
|
protected |
Definition at line 120 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 57 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
void MuonGMR4::MuonReadoutElement::setChamberLink | ( | GeoModel::TransientConstSharedPtr< MuonChamber > | chamber | ) |
Set's the link to the MuonChamber object to which the MuonReadoutElement belongs to.
Definition at line 139 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.
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 63 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
protected |
Definition at line 97 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
finaloverride |
Returns the surface associated to the readout element plane.
Definition at line 92 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
finaloverride |
Definition at line 93 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
Acts::Surface & MuonGMR4::MuonReadoutElement::surface | ( | const IdentifierHash & | hash | ) |
Definition at line 95 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 94 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 84 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
protected |
Returns the transformation into the center of the readout volume.
Definition at line 54 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
finaloverride |
Returns the transformation to the origin of the chamber coordinate system.
Definition at line 80 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.
|
friend |
Definition at line 166 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
private |
Definition at line 191 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Pointer to the associated MuonChamber.
Definition at line 210 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache the chamber index of the Identifier.
Definition at line 195 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache of the detector element hash.
Definition at line 193 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Definition at line 188 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
mutableprivateinherited |
MessageSvc pointer.
Definition at line 135 of file AthMessaging.h.
|
private |
Definition at line 205 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.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
private |
Cache the station eta of the identifier.
Definition at line 199 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache the station name of the identifier.
Definition at line 197 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache the station phi of the identifier.
Definition at line 201 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.
|
private |
Cache of all associated surfaces.
Definition at line 208 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.