ATLAS Offline Software
Loading...
Searching...
No Matches
MuonGMR4::RpcReadoutElement Class Reference

#include <RpcReadoutElement.h>

Inheritance diagram for MuonGMR4::RpcReadoutElement:
Collaboration diagram for MuonGMR4::RpcReadoutElement:

Classes

struct  defineArgs
struct  parameterBook
 Set of parameters to describe a RPC chamber. More...

Public Types

enum class  EdgeSide { readOut , highVoltage }

Public Member Functions

 RpcReadoutElement (defineArgs &&args)
virtual ~RpcReadoutElement ()
const parameterBookgetParameters () const
ActsTrk::DetectorType detectorType () const override final
 Overload from the ActsTrk::IDetectorElement.
double thickness () const override final
 Overload from the Acts::DetectorElement (2 * halfheight)
StatusCode initElement () override final
 Initialization of the readout elements.
int doubletZ () const
 Returns the doublet Z field of the MuonReadoutElement identifier.
int doubletR () const
 Returns the doublet R field of the MuonReadoutElement identifier.
int doubletPhi () const
 Returns the doublet Phi field of the MuonReadoutElement identifier.
unsigned nGasGaps () const
 Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
int nPhiPanels () const
 Returns the number of phi panels (1 or 2)
int doubletPhiMax () const
 Returns the maximum phi panel.
unsigned nEtaStrips () const
 Number of strips measuring the eta coordinate.
unsigned nPhiStrips () const
 Number of strips measuring the phi coordinate.
unsigned nStrips (const IdentifierHash &hash) const
 Returns the number of strips.
double stripEtaPitch () const
 Strip pitch in eta.
double stripPhiPitch () const
 Strip pitch in phi.
double stripEtaWidth () const
 Strip width in eta.
double stripPhiWidth () const
 Strip width in phi.
double stripEtaLength () const
 Returns the length of an eta strip.
double stripPhiLength () const
 Returns the length of a phi strip.
double gasGapPitch () const
 Returns the thickness of a RPC gasgap.
Amg::Vector3D stripPosition (const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
 Returns the position of the strip center.
Amg::Vector3D stripPosition (const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
Amg::Vector3D rightStripEdge (const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
 Returns the global position of the strip edge at negative local Y.
Amg::Vector3D rightStripEdge (const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
Amg::Vector3D leftStripEdge (const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
 Returns the global posiition of the strip edge at positive local Y.
Amg::Vector3D leftStripEdge (const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
double distanceToEdge (const IdentifierHash &measHash, const Amg::Vector3D &posInStripPlane, const EdgeSide side) const
 Returns the disance to the readout.
IdentifierHash measurementHash (const Identifier &measId) const override final
 Constructs the identifier hash from the full measurement Identifier.
IdentifierHash layerHash (const Identifier &measId) const override final
 The layer hash removes the bits from the IdentifierHash corresponding to the measurement's channel number and sets them to zero.
IdentifierHash layerHash (const IdentifierHash &measHash) const
Identifier measurementId (const IdentifierHash &measHash) const override final
 Back conversion of the measurement hash to a full Athena Identifier The behaviour is undefined if a layer hash is parsed.
const StripLayerPtrsensorLayout (const IdentifierHash &measHash) const
 Access to the StripLayer associated to a given measurement Hash.
const StripDesignstripDesign (const IdentifierHash &meaHash) const
 Access the associated strip design for a given measurement hash.
const GeoAlignableTransform * alignableTransform () const
 Return the alignable transform node of the readout element.
Identifier identify () const override final
 Return the ATLAS identifier.
IdentifierHash identHash () const
 Returns the hash of the readout element which is identical to the detector element hash provided by the associated idHelper.
int stationName () const
 Returns the stationName (BIS, BOS, etc) encoded into the integer.
int stationEta () const
 Returns the stationEta (positive A site, negative C site)
int stationPhi () const
 Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))
Muon::MuonStationIndex::ChIndex chamberIndex () const
 Returns the chamber index of the Identifier (MMS & STS) have the same chamber Index (EIS)
const std::string & chamberDesign () const
 The chamber design refers to the construction parameters of a readout element.
const Muon::IMuonIdHelperSvcidHelperSvc () const
 Returns the pointer to the muonIdHelperSvc.
Amg::Vector3D center (const ActsTrk::GeometryContext &ctx) const
 Returns the geometrical center point of the readout element.
Amg::Vector3D center (const ActsTrk::GeometryContext &ctx, const Identifier &id) const
 Returns the origin of the readout element's transform.
Amg::Vector3D center (const ActsTrk::GeometryContext &ctx, const IdentifierHash &hash) const
 Returns the origin of the readout element's transform.
Amg::Transform3D globalToLocalTransform (const ActsTrk::GeometryContext &ctx) const
 Returns the transformation from the global ATLAS coordinate system into the local coordinate system of the readout element.
Amg::Transform3D globalToLocalTransform (const ActsTrk::GeometryContext &ctx, const Identifier &id) const
 Returns the transformations from the ATLAS coordinate system into the local coordinate system of the readout sensor.
Amg::Transform3D globalToLocalTransform (const ActsTrk::GeometryContext &ctx, const IdentifierHash &hash) const
 Returns the transformations from the ATLAS coordinate system into the local coordinate system using the measurement / layer hash mechanism.
const Amg::Transform3DlocalToGlobalTransform (const ActsTrk::GeometryContext &ctx) const
 Returns the transformation from the local coordinate system of the readout element into the global ATLAS coordinate system (inverse of globalToLocal).
const Amg::Transform3DlocalToGlobalTransform (const ActsTrk::GeometryContext &ctx, const Identifier &id) const
 Returns the transformation from the local coordinate system of the readout element into the global ATLAS coordinate system (inverse of globalToLocal).
const Amg::Transform3DlocalToGlobalTransform (const ActsTrk::GeometryContext &ctx, const IdentifierHash &id) const
 Returns the transformation from the local coordinate system of the readout element into the global ATLAS coordinate system (inverse of globalToLocal).
const Amg::Transform3Dtransform (const Acts::GeometryContext &gctx) const override final
 Wrapper function of the localToGlobalTransform method to satisfy the Acts::IDetectorElementBase interface.
const Acts::Surface & surface () const override final
 Returns the surface associated with the readout element.
Acts::Surface & surface () override final
 Returns the mutable surface associated with the readout element.
const Acts::Surface & surface (const IdentifierHash &hash) const
 Returns the surface associated with the transform of a given readout layer.
Acts::Surface & surface (const IdentifierHash &hash)
 Returns the mutable surface associated with the transform of a given readout layer.
std::shared_ptr< Acts::Surface > surfacePtr (const IdentifierHash &hash) const
 Returns the mutable surface pointer associated with the transform of a given readout layer.
std::vector< std::shared_ptr< Acts::Surface > > getSurfaces () const
 Returns all surfaces that are associated with the active readout planes.
void setChamberLink (const Chamber *chamber)
 Sets the link to the enclosing chamber.
void setSectorLink (const SpectrometerSector *envelope)
 Set the link to the enclosing sector envelope.
const SpectrometerSectormsSector () const
 Returns the pointer to the envelope volume enclosing all chambers in the sector.
const Chamberchamber () const
 Returns the pointer to the chamber enclosing this readout element.
void releaseUnAlignedTrfs () const
 Release all transforms from the memory that are not connected with a geometry context but cached by the readout element itself.
unsigned int storeAlignedTransforms (const ActsTrk::DetectorAlignStore &store) const override final
 Construct the final aligned transformations and store them in the alignment store.
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.

Static Public Member Functions

static IdentifierHash createHash (const unsigned strip, const unsigned gasGap, const unsigned doubPhi, const bool measPhi)
 Constructs an Identifier hash from the Identifier fields controlled by this readout element.

Protected Member Functions

const Amg::Transform3DtoStation (const ActsTrk::DetectorAlignStore *alignStore) const
 Returns the transformation from the GeoModel tree and applies the A-lines if a valid alignment store pointer is provided.
template<class MuonDetImpl>
StatusCode insertTransform (const IdentifierHash &hash)
 Constructs the TransformDetEleCache associated with the hash of the given Mdt tube or strip layer.
StatusCode createGeoTransform ()
 Creates the TransformCacheDetEle corresponding the generic local -> global transformation of the readout element.
StatusCode strawSurfaceFactory (const IdentifierHash &hash, std::shared_ptr< const Acts::LineBounds > lBounds)
 Invokes the factory to create straw surfaces && to associate them with the particular transform cache.
StatusCode planeSurfaceFactory (const IdentifierHash &hash, std::shared_ptr< const Acts::PlanarBounds > pBounds)
 Invokes the factory to create plane surfaces && to associate them with the particular transform cache.

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.

Private Types

using TransformCacheMap = std::vector<std::unique_ptr<ActsTrk::TransformCache>>
 The transform caches corresponding to the surfaces of the tubes and gas gap planes.

Private Member Functions

Amg::Transform3D fromGapToChamOrigin (const IdentifierHash &layerHash) const
Amg::Vector3D chamberStripPos (const IdentifierHash &measHash) const
 Returns the local strip position w.r.t. to the chamber origin.
const ActsTrk::TransformCachetransformCache (const IdentifierHash &measHash) const
 Returns the pointer to the TransformCache associated with this measurement hash.
void initMessaging () const
 Initialize our message level and MessageSvc.

Static Private Member Functions

static unsigned stripNumber (const IdentifierHash &measHash)
static unsigned gasGapNumber (const IdentifierHash &measHash)
static unsigned doubletPhiNumber (const IdentifierHash &measHash)
static bool measuresPhi (const IdentifierHash &measHash)

Private Attributes

parameterBook m_pars {}
const RpcIdHelperm_idHelper {idHelperSvc()->rpcIdHelper()}
const int m_doubletR {m_idHelper.doubletR(identify())}
 doublet R -> 1: chamber is mounted below the Mdts
const int m_doubletZ {m_idHelper.doubletZ(identify())}
 Associated doublet Z (Ranges from 1-3) If doubletZ is 3, there's generally the possibility that the module is additionally split according to doublet Phi.
const int m_doubletPhi {m_idHelper.doubletPhi(identify())}
double m_gasThickness {0.}
 Distance between 2 gas gaps (Radial direction)
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "MuonReadoutElement"}
 IdHelperSvc for Identifier manipulation.
const defineArgs m_args {}
IdentifierHash m_detElHash {}
 Cache of the detector element hash.
int m_stName {-1}
 Cache the station name of the identifier.
int m_stEta {-1}
 Cache the station eta of the identifier.
int m_stPhi {-1}
 Cache the station phi of the identifier.
TransformCacheMap m_localToGlobalCaches {}
std::unique_ptr< ActsTrk::TransformCachem_centralTrfCache {}
 Cache of the transform of the readout element itself.
Muon::MuonStationIndex::ChIndex m_chIdx {Muon::MuonStationIndex::ChIndex::ChUnknown}
 Cache the chamber index of the Identifier.
ActsTrk::SurfaceCacheSet m_surfaces
 Cache of all associated surfaces.
const SpectrometerSectorm_msSectorLink {}
 Pointer to the associated MS-sector & MuonChamber.
const Chamberm_chambLink {nullptr}
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels)
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging)

Friends

class ActsTrk::TransformCacheDetEle< RpcReadoutElement >

Detailed Description

Member Typedef Documentation

◆ TransformCacheMap

using MuonGMR4::MuonReadoutElement::TransformCacheMap = std::vector<std::unique_ptr<ActsTrk::TransformCache>>
privateinherited

The transform caches corresponding to the surfaces of the tubes and gas gap planes.

Definition at line 271 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

Member Enumeration Documentation

◆ EdgeSide

Enumerator
readOut 
highVoltage 

Definition at line 109 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h.

109 {
110 readOut,
111 highVoltage,
112 };

Constructor & Destructor Documentation

◆ RpcReadoutElement()

MuonGMR4::RpcReadoutElement::RpcReadoutElement ( defineArgs && args)

◆ ~RpcReadoutElement()

MuonGMR4::RpcReadoutElement::~RpcReadoutElement ( )
virtualdefault

Member Function Documentation

◆ alignableTransform()

const GeoAlignableTransform * MuonGMR4::MuonReadoutElement::alignableTransform ( ) const
inherited

Return the alignable transform node of the readout element.

◆ center() [1/3]

Amg::Vector3D MuonGMR4::MuonReadoutElement::center ( const ActsTrk::GeometryContext & ctx) const
inherited

Returns the geometrical center point of the readout element.

Parameters
ctxGeometry context to take the alignment corrections into account

◆ center() [2/3]

Amg::Vector3D MuonGMR4::MuonReadoutElement::center ( const ActsTrk::GeometryContext & ctx,
const Identifier & id ) const
inherited

Returns the origin of the readout element's transform.

Parameters
ctxGeometry context to take the alignment corrections into account
idIdentifier of the measurement channel to be retrieved

◆ center() [3/3]

Amg::Vector3D MuonGMR4::MuonReadoutElement::center ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & hash ) const
inherited

Returns the origin of the readout element's transform.

Parameters
ctxGeometry context to take the alignment corrections into account
hashMeasurement hash of the transform to be retrieved

◆ chamber()

const Chamber * MuonGMR4::MuonReadoutElement::chamber ( ) const
inherited

Returns the pointer to the chamber enclosing this readout element.

◆ chamberDesign()

const std::string & MuonGMR4::MuonReadoutElement::chamberDesign ( ) const
inherited

The chamber design refers to the construction parameters of a readout element.

It's used for the retrieval of the chamber meta data containing the information about the number of sensors, their sepration etc.

◆ chamberIndex()

Muon::MuonStationIndex::ChIndex MuonGMR4::MuonReadoutElement::chamberIndex ( ) const
inherited

Returns the chamber index of the Identifier (MMS & STS) have the same chamber Index (EIS)

◆ chamberStripPos()

Amg::Vector3D MuonGMR4::RpcReadoutElement::chamberStripPos ( const IdentifierHash & measHash) const
private

Returns the local strip position w.r.t. to the chamber origin.

Definition at line 114 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx.

114 {
115 const StripLayerPtr& layout{sensorLayout(measHash)};
116 return layout->toOrigin() * layout->localStripPosition(stripNumber(measHash), measuresPhi(measHash));
117}
static bool measuresPhi(const IdentifierHash &measHash)
static unsigned stripNumber(const IdentifierHash &measHash)
const StripLayerPtr & sensorLayout(const IdentifierHash &measHash) const
Access to the StripLayer associated to a given measurement Hash.
GeoModel::TransientConstSharedPtr< StripLayer > StripLayerPtr
Definition StripLayer.h:100
str layout
Definition TileTB.py:76

◆ createGeoTransform()

StatusCode MuonGMR4::MuonReadoutElement::createGeoTransform ( )
protectedinherited

Creates the TransformCacheDetEle corresponding the generic local -> global transformation of the readout element.

Needs to be called by each technology during initialization

Check that the alignable node has been assigned

Definition at line 32 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

32 {
34 if(!alignableTransform()) {
35 ATH_MSG_FATAL("The readout element "<<idHelperSvc()->toStringDetEl(identify())<<" has no assigned alignable node");
36 return StatusCode::FAILURE;
37 }
38 m_centralTrfCache = std::make_unique<TransformCacheDetEle<MuonReadoutElement>>(geoTransformHash(), this);
39 return StatusCode::SUCCESS;
40}
#define ATH_MSG_FATAL(x)
std::unique_ptr< ActsTrk::TransformCache > m_centralTrfCache
Cache of the transform of the readout element itself.
Identifier identify() const override final
Return the ATLAS identifier.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
static IdentifierHash geoTransformHash()
Returns the hash that is associated with the surface cache holding the transformation that is placing...
const GeoAlignableTransform * alignableTransform() const
Return the alignable transform node of the readout element.

◆ createHash()

IdentifierHash MuonGMR4::RpcReadoutElement::createHash ( const unsigned strip,
const unsigned gasGap,
const unsigned doubPhi,
const bool measPhi )
static

Constructs an Identifier hash from the Identifier fields controlled by this readout element.

◆ detectorType()

ActsTrk::DetectorType MuonGMR4::RpcReadoutElement::detectorType ( ) const
inlinefinaloverridevirtual

◆ distanceToEdge()

double MuonGMR4::RpcReadoutElement::distanceToEdge ( const IdentifierHash & measHash,
const Amg::Vector3D & posInStripPlane,
const EdgeSide side ) const

Returns the disance to the readout.

Parameters
measHashHash of the measurement to check
posInStripPlaneLocal position of the crossing point on the plane (In gasGap frame)
sideSwitch indicating whether the readout or the highVoltage side is targeted.

For the moment define the readOut to be at negative y while the highVolt is at positive

Recall that the phi & eta measurements are expressed on the same surface In case of eta measurements check y otherwise the x component

Definition at line 119 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx.

121 {
122 const StripLayerPtr& layout{sensorLayout(measHeash)};
123 const StripDesign& design{layout->design(measuresPhi(measHeash))};
125 const double refPoint{design.longHalfHeight() * (side == EdgeSide::readOut ? -1. : 1.) * m_pars.readoutSide};
128 return std::abs(refPoint - layout->to2D(posInStripPlane, measuresPhi(measHeash)).y());
129}
#define y

◆ doubletPhi()

int MuonGMR4::RpcReadoutElement::doubletPhi ( ) const

Returns the doublet Phi field of the MuonReadoutElement identifier.

◆ doubletPhiMax()

int MuonGMR4::RpcReadoutElement::doubletPhiMax ( ) const

Returns the maximum phi panel.

◆ doubletPhiNumber()

unsigned MuonGMR4::RpcReadoutElement::doubletPhiNumber ( const IdentifierHash & measHash)
staticprivate

◆ doubletR()

int MuonGMR4::RpcReadoutElement::doubletR ( ) const

Returns the doublet R field of the MuonReadoutElement identifier.

◆ doubletZ()

int MuonGMR4::RpcReadoutElement::doubletZ ( ) const

Returns the doublet Z field of the MuonReadoutElement identifier.

◆ fromGapToChamOrigin()

Amg::Transform3D MuonGMR4::RpcReadoutElement::fromGapToChamOrigin ( const IdentifierHash & layerHash) const
private

Definition at line 73 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx.

73 {
74 return sensorLayout(hash)->toOrigin();
75}

◆ gasGapNumber()

unsigned MuonGMR4::RpcReadoutElement::gasGapNumber ( const IdentifierHash & measHash)
staticprivate

◆ gasGapPitch()

double MuonGMR4::RpcReadoutElement::gasGapPitch ( ) const

Returns the thickness of a RPC gasgap.

◆ geoTransformHash()

IdentifierHash MuonGMR4::MuonReadoutElement::geoTransformHash ( )
staticprotectedinherited

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 41 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

41 {
42 static const IdentifierHash hash{static_cast<unsigned>(~0)-1};
43 return hash;
44}

◆ getParameters()

const parameterBook & MuonGMR4::RpcReadoutElement::getParameters ( ) const

◆ getSurfaces()

std::vector< std::shared_ptr< Acts::Surface > > MuonGMR4::MuonReadoutElement::getSurfaces ( ) const
inherited

Returns all surfaces that are associated with the active readout planes.

Definition at line 146 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

146 {
147 std::vector<std::shared_ptr<Acts::Surface>> surfaces{};
148 surfaces.reserve(m_surfaces.size());
149 for (const std::unique_ptr<SurfaceCache>& cache : m_surfaces) {
150 if (cache->hash() != geoTransformHash()) {
151 surfaces.push_back(cache->getSurface());
152 ATH_MSG_VERBOSE("Add surface "<<idHelperSvc()->toString(cache->identify())
153 <<std::endl<<(surfaces.back()->bounds()));
154 }
155 }
156 return surfaces;
157}
#define ATH_MSG_VERBOSE(x)
std::string toString(const MuonGMR4::MuonReadoutElement *re)

◆ globalToLocalTransform() [1/3]

Amg::Transform3D MuonGMR4::MuonReadoutElement::globalToLocalTransform ( const ActsTrk::GeometryContext & ctx) const
inherited

Returns the transformation from the global ATLAS coordinate system into the local coordinate system of the readout element.

The local axes are oriented such that x-axis: Is parallel to the sensors measuring the eta coordinate (e.g. parallel to the Mdt tube wire) y-axis: Is parallel to the sensors measuring the phi coordinate (e.g. to the next tube wire) z-axis: Points vertically outwards the chamber (e.g. radially outwards for barrel or to the endcap cavern wall)

Parameters
ctxGeometry context to take the alignment corrections into account

Definition at line 71 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

71 {
73}
Amg::Transform3D globalToLocalTransform(const ActsTrk::GeometryContext &ctx) const
Returns the transformation from the global ATLAS coordinate system into the local coordinate system o...

◆ globalToLocalTransform() [2/3]

Amg::Transform3D MuonGMR4::MuonReadoutElement::globalToLocalTransform ( const ActsTrk::GeometryContext & ctx,
const Identifier & id ) const
inherited

Returns the transformations from the ATLAS coordinate system into the local coordinate system of the readout sensor.

The orientiation of the axes depends on whether the sensor is described by a plane or by a tube wire. In the former case, the axes are oriented such that x-axis: Points to the next eta sensor such that local-x always constrains the precision coordinate y-axis: Points to the next phi sensor such that local y always constains the coordinate along the precision sensor z-axis: Is the cross-product of the other two For Mdt tubes the axis orientiation is such that x-axis: Points to the next tube in the same tube-layer y-axis: Points to the next tube-layer plane z-axis: Points along the tube wire

Parameters
ctxGeometry context to take the alignment corrections into account
idIdentifier of the measurement for which the transform shall be retrieved

◆ globalToLocalTransform() [3/3]

Amg::Transform3D MuonGMR4::MuonReadoutElement::globalToLocalTransform ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & hash ) const
inherited

Returns the transformations from the ATLAS coordinate system into the local coordinate system using the measurement / layer hash mechanism.

For strip-like detectors a layer hash must always be parsed. For the Mdts a measurement or layer hash can be parsed depending on whether the plane transform or the particular tube transform shall be retrieved.

Parameters
ctxGeometry context to take the alignment corrections into account.
hashHash of the transform to fetch (Measurement or layer hash).

◆ identHash()

IdentifierHash MuonGMR4::MuonReadoutElement::identHash ( ) const
inherited

Returns the hash of the readout element which is identical to the detector element hash provided by the associated idHelper.

◆ identify()

Identifier MuonGMR4::MuonReadoutElement::identify ( ) const
finaloverridevirtualinherited

Return the ATLAS identifier.

Implements ActsTrk::IDetectorElementBase.

◆ idHelperSvc()

const Muon::IMuonIdHelperSvc * MuonGMR4::MuonReadoutElement::idHelperSvc ( ) const
inherited

Returns the pointer to the muonIdHelperSvc.

◆ initElement()

StatusCode MuonGMR4::RpcReadoutElement::initElement ( )
finaloverridevirtual

Initialization of the readout elements.

Transforms & surfaces for each readout layer are created

Check that the alignable node has been assigned

Implements MuonGMR4::MuonReadoutElement.

Definition at line 35 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx.

35 {
38
39 ATH_MSG_DEBUG("Parameter book "<<parameterBook());
40 if (m_pars.layers.empty()) {
41 ATH_MSG_FATAL("The readout element "<<idHelperSvc()->toStringDetEl(identify())<<" doesn't have any layers defined");
42 return StatusCode::FAILURE;
43 }
44#ifndef SIMULATIONBASE
46 m_pars.layerBounds->makeBounds<Acts::RectangleBounds>(m_pars.halfWidth,
47 m_pars.halfLength)));
48#endif
49 for (unsigned int layer = 0; layer < m_pars.layers.size(); ++layer) {
50 IdentifierHash layHash{layer};
51 if (!m_pars.layers[layer]) {
52 ATH_MSG_VERBOSE("Layer "<<layer <<" has not sensor layout associated.");
53 continue;
54 }
55 ATH_MSG_VERBOSE("New layer "<<layHash<<", doubletPhi: "<<doubletPhiNumber(layHash)
56 <<", gasGap: "<<gasGapNumber(layHash)<<", measPhi: "<<measuresPhi(layHash));
58#ifndef SIMULATIONBASE
59 const StripDesign& design{sensorLayout(layHash)->design()};
61 m_pars.layerBounds->makeBounds<Acts::RectangleBounds>(design.halfWidth(),
62 design.shortHalfHeight())));
63#endif
64 }
66 chamberStripPos(createHash(1, 1, doubletPhi(), false))).mag();
67#ifndef SIMULATIONBASE
68 m_pars.layerBounds.reset();
69#endif
70 return StatusCode::SUCCESS;
71}
Scalar mag() const
mag method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
StatusCode planeSurfaceFactory(const IdentifierHash &hash, std::shared_ptr< const Acts::PlanarBounds > pBounds)
Invokes the factory to create plane surfaces && to associate them with the particular transform cache...
StatusCode createGeoTransform()
Creates the TransformCacheDetEle corresponding the generic local -> global transformation of the read...
StatusCode insertTransform(const IdentifierHash &hash)
Constructs the TransformDetEleCache associated with the hash of the given Mdt tube or strip layer.
int doubletPhi() const
Returns the doublet Phi field of the MuonReadoutElement identifier.
static IdentifierHash createHash(const unsigned strip, const unsigned gasGap, const unsigned doubPhi, const bool measPhi)
Constructs an Identifier hash from the Identifier fields controlled by this readout element.
Amg::Vector3D chamberStripPos(const IdentifierHash &measHash) const
Returns the local strip position w.r.t. to the chamber origin.
static unsigned doubletPhiNumber(const IdentifierHash &measHash)
static unsigned gasGapNumber(const IdentifierHash &measHash)
MmReadoutElement::parameterBook parameterBook
@ layer
Definition HitInfo.h:79

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ insertTransform()

template<class MuonDetImpl>
StatusCode MuonGMR4::MuonReadoutElement::insertTransform ( const IdentifierHash & hash)
protectedinherited

Constructs the TransformDetEleCache associated with the hash of the given Mdt tube or strip layer.

The method is templated over the specific implementation of the readout element as the TransformCacheDetEle implements the assembly of the final transforms. The method returns a failure of an instance for the same hash has already been invoked earlier

Parameters
hashMeasurement / layer hash to identifier the transform of the readout layer

◆ layerHash() [1/2]

IdentifierHash MuonGMR4::RpcReadoutElement::layerHash ( const Identifier & measId) const
finaloverridevirtual

The layer hash removes the bits from the IdentifierHash corresponding to the measurement's channel number and sets them to zero.

It's used to access the transform associated to the measurement's strip plane or to the tube layer

Implements MuonGMR4::MuonReadoutElement.

◆ layerHash() [2/2]

IdentifierHash MuonGMR4::RpcReadoutElement::layerHash ( const IdentifierHash & measHash) const

◆ leftStripEdge() [1/2]

Amg::Vector3D MuonGMR4::RpcReadoutElement::leftStripEdge ( const ActsTrk::GeometryContext & ctx,
const Identifier & measId ) const

Returns the global posiition of the strip edge at positive local Y.

◆ leftStripEdge() [2/2]

Amg::Vector3D MuonGMR4::RpcReadoutElement::leftStripEdge ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & measHash ) const

Definition at line 109 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx.

109 {
110 return localToGlobalTransform(ctx, layerHash(measHash)) *
111 sensorLayout(measHash)->localStripRightEdge(stripNumber(measHash), measuresPhi(measHash));
112}
const Amg::Transform3D & localToGlobalTransform(const ActsTrk::GeometryContext &ctx) const
Returns the transformation from the local coordinate system of the readout element into the global AT...
IdentifierHash layerHash(const Identifier &measId) const override final
The layer hash removes the bits from the IdentifierHash corresponding to the measurement's channel nu...

◆ localToGlobalTransform() [1/3]

const Amg::Transform3D & MuonGMR4::MuonReadoutElement::localToGlobalTransform ( const ActsTrk::GeometryContext & ctx) const
inherited

Returns the transformation from the local coordinate system of the readout element into the global ATLAS coordinate system (inverse of globalToLocal).

Parameters
ctxGeometry context to take the alignment corrections into account.

Definition at line 74 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

74 {
76}

◆ localToGlobalTransform() [2/3]

const Amg::Transform3D & MuonGMR4::MuonReadoutElement::localToGlobalTransform ( const ActsTrk::GeometryContext & ctx,
const Identifier & id ) const
inherited

Returns the transformation from the local coordinate system of the readout element into the global ATLAS coordinate system (inverse of globalToLocal).

Parameters
ctxGeometry context to take the alignment corrections into account
idIdentifier of the measurement for which the transform shall be retrieved

◆ localToGlobalTransform() [3/3]

const Amg::Transform3D & MuonGMR4::MuonReadoutElement::localToGlobalTransform ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & id ) const
inherited

Returns the transformation from the local coordinate system of the readout element into the global ATLAS coordinate system (inverse of globalToLocal).

Parameters
ctxGeometry context to take the alignment corrections into account
hashHash of the transform to fetch (Measurement or layer hash).

◆ measurementHash()

IdentifierHash MuonGMR4::RpcReadoutElement::measurementHash ( const Identifier & measId) const
finaloverridevirtual

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

Implements MuonGMR4::MuonReadoutElement.

◆ measurementId()

Identifier MuonGMR4::RpcReadoutElement::measurementId ( const IdentifierHash & measHash) const
finaloverridevirtual

Back conversion of the measurement hash to a full Athena Identifier The behaviour is undefined if a layer hash is parsed.

Parameters
measHashMeasurement hash to convert

Implements MuonGMR4::MuonReadoutElement.

◆ measuresPhi()

bool MuonGMR4::RpcReadoutElement::measuresPhi ( const IdentifierHash & measHash)
staticprivate

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
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 167 of file AthMessaging.h.

168{
169 MsgStream* ms = m_msg_tls.get();
170 if (!ms) {
171 if (!m_initialized.test_and_set()) initMessaging();
172 ms = new MsgStream(m_imsg,m_nm);
173 m_msg_tls.reset( ms );
174 }
175
176 ms->setLevel (m_lvl);
177 return *ms;
178}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void initMessaging() const
Initialize our message level and MessageSvc.

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level lvl) const
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 182 of file AthMessaging.h.

183{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 // If user did not set explicit message level we have to initialize
154 // the messaging and retrieve the default via the MessageSvc.
155 if (m_lvl==MSG::NIL && !m_initialized.test_and_set()) initMessaging();
156
157 if (m_lvl <= lvl) {
158 msg() << lvl;
159 return true;
160 } else {
161 return false;
162 }
163}

◆ msSector()

const SpectrometerSector * MuonGMR4::MuonReadoutElement::msSector ( ) const
inherited

Returns the pointer to the envelope volume enclosing all chambers in the sector.

◆ nEtaStrips()

unsigned MuonGMR4::RpcReadoutElement::nEtaStrips ( ) const

Number of strips measuring the eta coordinate.

◆ nGasGaps()

unsigned MuonGMR4::RpcReadoutElement::nGasGaps ( ) const

Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)

◆ nPhiPanels()

int MuonGMR4::RpcReadoutElement::nPhiPanels ( ) const

Returns the number of phi panels (1 or 2)

◆ nPhiStrips()

unsigned MuonGMR4::RpcReadoutElement::nPhiStrips ( ) const

Number of strips measuring the phi coordinate.

◆ nStrips()

unsigned MuonGMR4::RpcReadoutElement::nStrips ( const IdentifierHash & hash) const

Returns the number of strips.

◆ planeSurfaceFactory()

StatusCode MuonGMR4::MuonReadoutElement::planeSurfaceFactory ( const IdentifierHash & hash,
std::shared_ptr< const Acts::PlanarBounds > pBounds )
protectedinherited

Invokes the factory to create plane surfaces && to associate them with the particular transform cache.

Parameters
hashLayer hash of the readout plane of interest
lBoundsBounds describing the rectangle or trapezoidal surface's dimensions

Definition at line 118 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

119 {
120
121 //get the local to global transform cache
122 const TransformCache* cache = transformCache(hash);
123 if (!cache) {
124 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
125 <<" no transform cache available for hash "<<hash);
126 return StatusCode::FAILURE;
127 }
128 auto insert_itr = m_surfaces.insert(std::make_unique<SurfaceCache>(cache));
129 if(!insert_itr.second){
130 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
131 <<" Insertion to muon surface cache failed for hash "<<hash);
132 return StatusCode::FAILURE;
133 }
134 //Create a plane surface for the surface cache
135 (*insert_itr.first)->setSurface(Acts::Surface::makeShared<Acts::PlaneSurface>(pBounds, **insert_itr.first));
136 return StatusCode::SUCCESS;
137}
const ActsTrk::TransformCache * transformCache(const IdentifierHash &measHash) const
Returns the pointer to the TransformCache associated with this measurement hash.

◆ releaseUnAlignedTrfs()

void MuonGMR4::MuonReadoutElement::releaseUnAlignedTrfs ( ) const
inherited

Release all transforms from the memory that are not connected with a geometry context but cached by the readout element itself.

Definition at line 49 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

49 {
50 for (const auto& cache : m_localToGlobalCaches) {
51 if (cache){
52 cache->releaseNominalCache();
53 }
54 }
55 m_centralTrfCache->releaseNominalCache();
56}

◆ rightStripEdge() [1/2]

Amg::Vector3D MuonGMR4::RpcReadoutElement::rightStripEdge ( const ActsTrk::GeometryContext & ctx,
const Identifier & measId ) const

Returns the global position of the strip edge at negative local Y.

◆ rightStripEdge() [2/2]

Amg::Vector3D MuonGMR4::RpcReadoutElement::rightStripEdge ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & measHash ) const

Definition at line 97 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx.

97 {
98 return localToGlobalTransform(ctx, layerHash(measHash)) *
99 sensorLayout(measHash)->localStripLeftEdge(stripNumber(measHash), measuresPhi(measHash));
100}

◆ sensorLayout()

const StripLayerPtr & MuonGMR4::RpcReadoutElement::sensorLayout ( const IdentifierHash & measHash) const

Access to the StripLayer associated to a given measurement Hash.

◆ setChamberLink()

void MuonGMR4::MuonReadoutElement::setChamberLink ( const Chamber * chamber)
inherited

Sets the link to the enclosing chamber.

Definition at line 139 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

139 {
141}
const Chamber * chamber() const
Returns the pointer to the chamber enclosing this readout element.

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
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.

29{
30 m_lvl = lvl;
31}

◆ setSectorLink()

void MuonGMR4::MuonReadoutElement::setSectorLink ( const SpectrometerSector * envelope)
inherited

Set the link to the enclosing sector envelope.

Definition at line 142 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

142 {
143 m_msSectorLink = envelope;
144}
const SpectrometerSector * m_msSectorLink
Pointer to the associated MS-sector & MuonChamber.

◆ stationEta()

int MuonGMR4::MuonReadoutElement::stationEta ( ) const
inherited

Returns the stationEta (positive A site, negative C site)

◆ stationName()

int MuonGMR4::MuonReadoutElement::stationName ( ) const
inherited

Returns the stationName (BIS, BOS, etc) encoded into the integer.

◆ stationPhi()

int MuonGMR4::MuonReadoutElement::stationPhi ( ) const
inherited

Returns the stationPhi (1-8) -> sector (2*phi - (isSmall))

◆ storeAlignedTransforms()

unsigned MuonGMR4::MuonReadoutElement::storeAlignedTransforms ( const ActsTrk::DetectorAlignStore & store) const
finaloverridevirtualinherited

Construct the final aligned transformations and store them in the alignment store.

Returns the number of how many transformations have been stored

Implements ActsTrk::IDetectorElement.

Definition at line 58 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

58 {
59 if (store.detType != detectorType()) return 0;
60 unsigned int aligned{1};
61 m_centralTrfCache->getTransform(&store);
62 for (const auto& cache : m_localToGlobalCaches) {
63 if (cache) {
64 cache->getTransform(&store);
65 }
66 ++aligned;
67 }
68 return aligned;
69}
virtual DetectorType detectorType() const =0
Returns the detector element type.
TestStore store
Definition TestStore.cxx:23

◆ strawSurfaceFactory()

StatusCode MuonGMR4::MuonReadoutElement::strawSurfaceFactory ( const IdentifierHash & hash,
std::shared_ptr< const Acts::LineBounds > lBounds )
protectedinherited

Invokes the factory to create straw surfaces && to associate them with the particular transform cache.

Parameters
hashMeasurement hash of the tube of interest
lBoundsSurface bound object describing the straw radius and the active tube length

Definition at line 95 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

96 {
97
98 //get the local to global transform cache
99 const TransformCache* cache = transformCache(hash);
100 if (!cache) {
101 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
102 <<" no transform cache available for hash "<<hash);
103 return StatusCode::FAILURE;
104 }
105
106 auto insert_itr = m_surfaces.insert(std::make_unique<SurfaceCache>(cache));
107 if(!insert_itr.second){
108 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
109 <<" Insertion to muon surface cache failed for hash "<<hash);
110 return StatusCode::FAILURE;
111 }
112 //Create straw surface for the surface cache
113 (*insert_itr.first)->setSurface(Acts::Surface::makeShared<Acts::StrawSurface>(lBounds, **insert_itr.first));
114 return StatusCode::SUCCESS;
115
116}

◆ stripDesign()

const StripDesign & MuonGMR4::RpcReadoutElement::stripDesign ( const IdentifierHash & meaHash) const

Access the associated strip design for a given measurement hash.

◆ stripEtaLength()

double MuonGMR4::RpcReadoutElement::stripEtaLength ( ) const

Returns the length of an eta strip.

◆ stripEtaPitch()

double MuonGMR4::RpcReadoutElement::stripEtaPitch ( ) const

Strip pitch in eta.

◆ stripEtaWidth()

double MuonGMR4::RpcReadoutElement::stripEtaWidth ( ) const

Strip width in eta.

◆ stripNumber()

unsigned MuonGMR4::RpcReadoutElement::stripNumber ( const IdentifierHash & measHash)
staticprivate

◆ stripPhiLength()

double MuonGMR4::RpcReadoutElement::stripPhiLength ( ) const

Returns the length of a phi strip.

◆ stripPhiPitch()

double MuonGMR4::RpcReadoutElement::stripPhiPitch ( ) const

Strip pitch in phi.

◆ stripPhiWidth()

double MuonGMR4::RpcReadoutElement::stripPhiWidth ( ) const

Strip width in phi.

◆ stripPosition() [1/2]

Amg::Vector3D MuonGMR4::RpcReadoutElement::stripPosition ( const ActsTrk::GeometryContext & ctx,
const Identifier & measId ) const

Returns the position of the strip center.

◆ stripPosition() [2/2]

Amg::Vector3D MuonGMR4::RpcReadoutElement::stripPosition ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & measHash ) const

Definition at line 85 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx.

85 {
86 return localToGlobalTransform(ctx, layerHash(measHash)) *
87 sensorLayout(measHash)->localStripPosition(stripNumber(measHash), measuresPhi(measHash));
88}

◆ surface() [1/4]

const Acts::Surface & MuonGMR4::MuonReadoutElement::surface ( ) const
finaloverrideinherited

Returns the surface associated with the readout element.

It is placed in the center of the readout element's volume and has the volumes surface bounds

Definition at line 90 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

90{ return surface(geoTransformHash()); }
const Acts::Surface & surface() const override final
Returns the surface associated with the readout element.

◆ surface() [2/4]

Acts::Surface & MuonGMR4::MuonReadoutElement::surface ( )
finaloverrideinherited

Returns the mutable surface associated with the readout element.

Definition at line 91 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

91{ return surface(geoTransformHash()); }

◆ surface() [3/4]

Acts::Surface & MuonGMR4::MuonReadoutElement::surface ( const IdentifierHash & hash)
inherited

Returns the mutable surface associated with the transform of a given readout layer.

(E.g. tube or the strip plane)

Parameters
hashHash of the surface to fetch (Measurement or layer hash).

Definition at line 93 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

93{ return *surfacePtr(hash); }
std::shared_ptr< Acts::Surface > surfacePtr

◆ surface() [4/4]

const Acts::Surface & MuonGMR4::MuonReadoutElement::surface ( const IdentifierHash & hash) const
inherited

Returns the surface associated with the transform of a given readout layer.

(E.g. tube or the strip plane)

Parameters
hashHash of the surface to fetch (Measurement or layer hash).

Definition at line 92 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

92{ return *surfacePtr(hash); }

◆ surfacePtr()

std::shared_ptr< Acts::Surface > MuonGMR4::MuonReadoutElement::surfacePtr ( const IdentifierHash & hash) const
inherited

Returns the mutable surface pointer associated with the transform of a given readout layer.

(E.g. tube or the strip plane)

Parameters
hashHash of the surface to fetch (Measurement or layer hash).

Definition at line 82 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

82 {
83 SurfaceCacheSet::const_iterator cache = m_surfaces.find(hash);
84 if(cache != m_surfaces.end()) return (*cache)->getSurface();
85 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<"() -- Hash "<<hash
86 <<" is unknown to "<<idHelperSvc()->toStringDetEl(identify()));
87 return nullptr;
88}

◆ thickness()

double MuonGMR4::RpcReadoutElement::thickness ( ) const
finaloverride

Overload from the Acts::DetectorElement (2 * halfheight)

◆ toStation()

const Amg::Transform3D & MuonGMR4::MuonReadoutElement::toStation ( const ActsTrk::DetectorAlignStore * alignStore) const
protectedinherited

Returns the transformation from the GeoModel tree and applies the A-lines if a valid alignment store pointer is provided.

The local coordinate system in GeoModel differs from the system used by the localToGlobaTransformations. It is referred to the AMDB coordinate system used to describe the MS in Run 1-3 x-axis: Points along the thickness of the readout element (e.g. radially outwards for barrel chambers or along global Z for detector mounted in the endcaps) y-axis: Points along the edge which is parallel to the eta sensors z-axis: Points along towards the next eta sensor

Definition at line 46 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

46 {
47 return getMaterialGeom()->getAbsoluteTransform(alignStore ? alignStore->geoModelAlignment.get() : nullptr);
48}
std::shared_ptr< GeoAlignmentStore > geoModelAlignment
Store containing the aligned GeoModel nodes.

◆ transform()

const Acts::Transform3 & MuonGMR4::MuonReadoutElement::transform ( const Acts::GeometryContext & gctx) const
finaloverrideinherited

Wrapper function of the localToGlobalTransform method to satisfy the Acts::IDetectorElementBase interface.

Parameters
gctxActs representation of the GeometryContext

Definition at line 78 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

78 {
79 const GeometryContext *gctx = anygctx.get<const GeometryContext *>();
81}

◆ transformCache()

const ActsTrk::TransformCache * MuonGMR4::MuonReadoutElement::transformCache ( const IdentifierHash & measHash) const
privateinherited

Returns the pointer to the TransformCache associated with this measurement hash.

Parameters
measHashMeasurement hash for which the cache shall be returned

◆ ActsTrk::TransformCacheDetEle< RpcReadoutElement >

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_args

const defineArgs MuonGMR4::MuonReadoutElement::m_args {}
privateinherited

◆ m_centralTrfCache

std::unique_ptr<ActsTrk::TransformCache> MuonGMR4::MuonReadoutElement::m_centralTrfCache {}
privateinherited

Cache of the transform of the readout element itself.

Definition at line 274 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

274{};

◆ m_chambLink

const Chamber* MuonGMR4::MuonReadoutElement::m_chambLink {nullptr}
privateinherited

◆ m_chIdx

◆ m_detElHash

IdentifierHash MuonGMR4::MuonReadoutElement::m_detElHash {}
privateinherited

Cache of the detector element hash.

Definition at line 263 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

263{};

◆ m_doubletPhi

const int MuonGMR4::RpcReadoutElement::m_doubletPhi {m_idHelper.doubletPhi(identify())}
private

◆ m_doubletR

const int MuonGMR4::RpcReadoutElement::m_doubletR {m_idHelper.doubletR(identify())}
private

doublet R -> 1: chamber is mounted below the Mdts

Definition at line 162 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h.

162{m_idHelper.doubletR(identify())};

◆ m_doubletZ

const int MuonGMR4::RpcReadoutElement::m_doubletZ {m_idHelper.doubletZ(identify())}
private

Associated doublet Z (Ranges from 1-3) If doubletZ is 3, there's generally the possibility that the module is additionally split according to doublet Phi.

Definition at line 166 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h.

166{m_idHelper.doubletZ(identify())};

◆ m_gasThickness

double MuonGMR4::RpcReadoutElement::m_gasThickness {0.}
private

Distance between 2 gas gaps (Radial direction)

Definition at line 170 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h.

170{0.};

◆ m_idHelper

const RpcIdHelper& MuonGMR4::RpcReadoutElement::m_idHelper {idHelperSvc()->rpcIdHelper()}
private

Definition at line 159 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h.

virtual const RpcIdHelper & rpcIdHelper() const =0
access to RpcIdHelper

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> MuonGMR4::MuonReadoutElement::m_idHelperSvc {"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "MuonReadoutElement"}
privateinherited

IdHelperSvc for Identifier manipulation.

Definition at line 259 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

259{"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "MuonReadoutElement"};

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_localToGlobalCaches

TransformCacheMap MuonGMR4::MuonReadoutElement::m_localToGlobalCaches {}
privateinherited

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_msSectorLink

const SpectrometerSector* MuonGMR4::MuonReadoutElement::m_msSectorLink {}
privateinherited

Pointer to the associated MS-sector & MuonChamber.

Definition at line 283 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

283{};

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_pars

parameterBook MuonGMR4::RpcReadoutElement::m_pars {}
private

◆ m_stEta

int MuonGMR4::MuonReadoutElement::m_stEta {-1}
privateinherited

Cache the station eta of the identifier.

Definition at line 267 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

267{-1};

◆ m_stName

int MuonGMR4::MuonReadoutElement::m_stName {-1}
privateinherited

Cache the station name of the identifier.

Definition at line 265 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

265{-1};

◆ m_stPhi

int MuonGMR4::MuonReadoutElement::m_stPhi {-1}
privateinherited

Cache the station phi of the identifier.

Definition at line 269 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

269{-1};

◆ m_surfaces

ActsTrk::SurfaceCacheSet MuonGMR4::MuonReadoutElement::m_surfaces
privateinherited

Cache of all associated surfaces.

Definition at line 281 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.


The documentation for this class was generated from the following files: