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

#include <sTgcReadoutElement.h>

Inheritance diagram for MuonGMR4::sTgcReadoutElement:
Collaboration diagram for MuonGMR4::sTgcReadoutElement:

Classes

struct  defineArgs
struct  parameterBook
 Set of parameters to describe an sTGC chamber. More...

Public Types

enum  ReadoutChannelType { Pad = sTgcIdHelper::sTgcChannelTypes::Pad , Strip = sTgcIdHelper::sTgcChannelTypes::Strip , Wire = sTgcIdHelper::sTgcChannelTypes::Wire , WireInGrp }
 ReadoutChannelType to distinguish the available readout channels Pad - pad readout channel Strip - eta strip readout channel Wire - phi wire group readout channel WireIngrp - a particular wire in a given group. More...
using localCornerArray = std::array<Amg::Vector2D, 4>
 Returns an array of four 2D vectors representing corner positions of the pads.
using globalCornerArray = std::array<Amg::Vector3D, 4>
 Returns an array of four 3D vectors representing corner positions of the pads.

Public Member Functions

 sTgcReadoutElement (defineArgs &&args)
virtual ~sTgcReadoutElement ()
const parameterBookgetParameters () const
ActsTrk::DetectorType detectorType () const override final
 Overload from the ActsTrk::IDetectorElement.
StatusCode initElement () override final
 Element initialization.
double chamberHeight () const
 Height of the chamber.
double sChamberLength () const
 Length of the chamber on the short side.
double lChamberLength () const
 Length of the chamber on the long side.
double gasGapPitch () const
 Distance between 2 gas gaps.
double thickness () const override final
 Thickness of the chamber.
double sFrameWidth () const
 Width of the chamber frame on the short side.
double lFrameWidth () const
 Width of the chamber frame on the long side.
int multilayer () const
 Returns the multilayer of the sTgcReadoutElement.
unsigned int numLayers () const
 Returns the number of gas gap layers.
double gasGapThickness () const
 Returns the thickness of the gas gap.
double firstStripPitch (const Identifier &measId) const
 Gas Gaps.
double firstStripPitch (const IdentifierHash &measHash) const
unsigned int numChannels (const Identifier &measId) const
 Returns the number of strips / wires / pads in a given gasGap.
unsigned int numChannels (const IdentifierHash &measHash) const
 Returns the number of strips / wires / pads in a given gasGap.
double stripLength (const Identifier &measId) const
 Length of each strip.
double stripLength (const IdentifierHash &measHash) const
unsigned int nChTypes () const
 Number of Channel Types.
unsigned int numPadEta (const Identifier &measId) const
 Returns the number of pads in the eta direction in the given layer.
unsigned int numPadEta (const IdentifierHash &measHash) const
unsigned int numPadPhi (const Identifier &measId) const
 Returns the number of pads in the Phi direction in the given gasGap layer.
unsigned int numPadPhi (const IdentifierHash &measHash) const
double padHeight (const Identifier &measId) const
 Returns the height of all the pads that are not adjacent to the bottom edge of the trapezoid active area.
double padHeight (const IdentifierHash &measHash) const
double padPhiShift (const Identifier &measId) const
 Returns the staggering shift of inner pad edges in the phi direction.
double padPhiShift (const IdentifierHash &measHash) const
double anglePadPhi (const Identifier &measId) const
 Returns the angular pitch of the pads in the phi direction.
double anglePadPhi (const IdentifierHash &measHash) const
unsigned int maxPadEta (const Identifier &measId) const
 Returns the maximum number of pads that can be contained in a column of a pad. Used to match the pad numbering scheme.
unsigned int maxPadEta (const IdentifierHash &measHash) const
unsigned int padNumberSeq (const Identifier &measId) const
 Returns the pad number in the sequential numbering (1,2,3,...17,18,19,20,...)scheme from a pad identifier with conventional pad number (1, 2, 3, 19, 20,...)
unsigned int padNumberSeq (const IdentifierHash &measHash) const
std::pair< uint, uintpadEtaPhi (const Identifier &measId) const
 Returns a pair of Eta and Phi index for the given pad identifier.
std::pair< uint, uintpadEtaPhi (const IdentifierHash &measHash) const
unsigned int padEta (const Identifier &measId) const
 Returns the Eta index of the pad for the given pad identifier.
unsigned int padEta (const IdentifierHash &measHash) const
unsigned int padPhi (const Identifier &measId) const
 Returns the Phi index of the pad for the given pad identifier.
unsigned int padPhi (const IdentifierHash &measHash) const
double beamlineRadius (const Identifier &measId) const
 Returns the distance between the gasGap center and the beamline.
double beamlineRadius (const IdentifierHash &measHash) const
localCornerArray localPadCorners (const Identifier &measId) const
localCornerArray localPadCorners (const IdentifierHash &measHash) const
globalCornerArray globalPadCorners (const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
globalCornerArray globalPadCorners (const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
int padNumber (const Amg::Vector2D &hitPos, const Identifier &measId) const
 Returns the pad Number given local position of hit and Identifier/Hash.
int padNumber (const Amg::Vector2D &hitPos, const IdentifierHash &measHash) const
const StripDesignstripDesign (const Identifier &measId) const
 Retrieves the readoutElement Layer given the Identifier/Hash.
const StripDesignstripDesign (const IdentifierHash &measHash) const
const WireGroupDesignwireDesign (const Identifier &measId) const
 Retrieves the readoutElement Layer given the Identifier/Hash.
const WireGroupDesignwireDesign (const IdentifierHash &measHash) const
const PadDesignpadDesign (const Identifier &measId) const
 Retrieves the readoutElement Layer given the Identifier/Hash.
const PadDesignpadDesign (const IdentifierHash &measHash) const
Amg::Vector3D globalChannelPosition (const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
 Returns the global pad/strip/wireGroup position.
Amg::Vector3D globalChannelPosition (const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
Amg::Vector2D localChannelPosition (const Identifier &measId) const
 Returns the local pad/strip/wireGroup position.
Amg::Vector2D localChannelPosition (const IdentifierHash &measHash) const
Amg::Vector3D leftStripEdge (const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
Amg::Vector3D rightStripEdge (const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
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
 Transforms the Identifier into a layer hash.
Identifier measurementId (const IdentifierHash &measHash) const override final
 Converts the measurement hash back to the full Identifier.
const StripLayerstripLayer (const Identifier &measId) const
const StripLayerstripLayer (const IdentifierHash &measId) const
bool isEtaZero (const IdentifierHash &measurementHash, const Amg::Vector2D &localPosition) const
const GeoAlignableTransform * alignableTransform () const
 Returnsthe alignable transform of the readout element.
Identifier identify () const override final
 Return the athena identifier.
IdentifierHash identHash () const
 Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class.
int stationName () const
 Returns the stationName (BIS, BOS, etc) encoded into the integer.
int stationEta () const
 Returns the stationEta (positive A site, negative O 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 detector center (Which is the same as the detector center of the first measurement layer)
Amg::Vector3D center (const ActsTrk::GeometryContext &ctx, const Identifier &id) const
 Returns the center of a given detector layer using the complete Identifier of the measurement.
Amg::Vector3D center (const ActsTrk::GeometryContext &ctx, const IdentifierHash &hash) const
 Returns the center of a given detector layer using the Identifier hash of the measurement.
Amg::Transform3D globalToLocalTrans (const ActsTrk::GeometryContext &ctx) const
 Transformations to translate between local <-> global coordinates.
Amg::Transform3D globalToLocalTrans (const ActsTrk::GeometryContext &ctx, const Identifier &id) const
 Returns the global to local transformation into the rest frame of a given measurement layer.
Amg::Transform3D globalToLocalTrans (const ActsTrk::GeometryContext &ctx, const IdentifierHash &hash) const
 Returns the global to local transformation into the rest frame of a given measurement layer.
const Amg::Transform3DlocalToGlobalTrans (const ActsTrk::GeometryContext &ctx) const
 Returns the local to global transformation into the ATLAS coordinate system.
const Amg::Transform3DlocalToGlobalTrans (const ActsTrk::GeometryContext &ctx, const Identifier &id) const
const Amg::Transform3DlocalToGlobalTrans (const ActsTrk::GeometryContext &ctx, const IdentifierHash &id) const
const Amg::Transform3Dtransform (const Acts::GeometryContext &gctx) const override final
 Returns the transformation to the origin of the chamber coordinate system.
const Acts::Surface & surface () const override final
 Returns the surface associated to the readout element plane.
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.
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.
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.
std::vector< std::shared_ptr< Acts::Surface > > getSurfaces () const
 Returns all surfaces that are associated with the active readout planes.
void releaseUnAlignedTrfs () const
 Releases all cached transforms that are not connected with alignment.
unsigned int storeAlignedTransforms (const ActsTrk::DetectorAlignStore &store) const override final
 Caches the aligned transformation in the provided store. Returns the number of cached elements.
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 layerHash (const IdentifierHash &measHash)
static IdentifierHash createHash (const unsigned int gasGap, const unsigned int channelType, const unsigned int channel, const unsigned int wireInGrp=0)
 Create a measurement hash from the Identifier fields.

Protected Member Functions

const Amg::Transform3DtoStation (const ActsTrk::DetectorAlignStore *alignStore) const
 Returns the local -> global transformation to go from the volume center origin.
template<class MuonDetImpl>
StatusCode insertTransform (const IdentifierHash &hash)
 Inserts a transfomration for caching.
StatusCode createGeoTransform ()
StatusCode strawSurfaceFactory (const IdentifierHash &hash, std::shared_ptr< const Acts::LineBounds > lBounds)
StatusCode planeSurfaceFactory (const IdentifierHash &hash, std::shared_ptr< const 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.

Private Types

using TransformCacheMap = std::unordered_map<IdentifierHash, std::unique_ptr<ActsTrk::TransformCache>>
 Cache all local to global transformations.

Private Member Functions

Amg::Transform3D fromGapToChamOrigin (const IdentifierHash &layerHash) const
Amg::Vector3D chamberStripPos (const IdentifierHash &measHash) const
void initMessaging () const
 Initialize our message level and MessageSvc.

Static Private Member Functions

static unsigned int channelNumber (const IdentifierHash &measHash)
 Returns channel position for a given identifierHash.
static unsigned int chType (const IdentifierHash &measHash)
 Returns the channel type for a given identifierHash.
static unsigned int gasGapNumber (const IdentifierHash &measHash)
 Returns the gasGap (0 to 3) for a given identifierHash.

Private Attributes

parameterBook m_pars {}
const sTgcIdHelperm_idHelper {idHelperSvc()->stgcIdHelper()}
const int m_multiLayer {m_idHelper.multilayer(identify())}
double m_gasGapPitch {-1.}
const unsigned int m_hashShiftChType = 2*std::popcount(static_cast<unsigned int>(numLayers()))
 Auxillary variables to translate the Identifier to a measurement hash and back.
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "MuonReadoutElement"}
const defineArgs m_args {}
IdentifierHash m_detElHash {}
 Cache of the detector element hash.
Muon::MuonStationIndex::ChIndex m_chIdx {Muon::MuonStationIndex::ChIndex::ChUnknown}
 Cache the chamber index of the Identifier.
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
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< sTgcReadoutElement >

Detailed Description

Member Typedef Documentation

◆ globalCornerArray

Returns an array of four 3D vectors representing corner positions of the pads.

Definition at line 171 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h.

◆ localCornerArray

Returns an array of four 2D vectors representing corner positions of the pads.

Definition at line 167 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h.

◆ TransformCacheMap

using MuonGMR4::MuonReadoutElement::TransformCacheMap = std::unordered_map<IdentifierHash, std::unique_ptr<ActsTrk::TransformCache>>
privateinherited

Cache all local to global transformations.

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

Member Enumeration Documentation

◆ ReadoutChannelType

Constructor & Destructor Documentation

◆ sTgcReadoutElement()

MuonGMR4::sTgcReadoutElement::sTgcReadoutElement ( defineArgs && args)

◆ ~sTgcReadoutElement()

MuonGMR4::sTgcReadoutElement::~sTgcReadoutElement ( )
virtualdefault

Member Function Documentation

◆ alignableTransform()

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

Returnsthe alignable transform of the readout element.

◆ anglePadPhi() [1/2]

double MuonGMR4::sTgcReadoutElement::anglePadPhi ( const Identifier & measId) const

Returns the angular pitch of the pads in the phi direction.

◆ anglePadPhi() [2/2]

double MuonGMR4::sTgcReadoutElement::anglePadPhi ( const IdentifierHash & measHash) const

◆ beamlineRadius() [1/2]

double MuonGMR4::sTgcReadoutElement::beamlineRadius ( const Identifier & measId) const

Returns the distance between the gasGap center and the beamline.

◆ beamlineRadius() [2/2]

double MuonGMR4::sTgcReadoutElement::beamlineRadius ( const IdentifierHash & measHash) const

◆ center() [1/3]

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

Returns the detector center (Which is the same as the detector center of the first measurement layer)

◆ center() [2/3]

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

Returns the center of a given detector layer using the complete Identifier of the measurement.

◆ center() [3/3]

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

Returns the center of a given detector layer using the Identifier hash of the measurement.

◆ 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.

Used for the retrieval of the chamber parameters E.g. the chambers BOL1A8 & BOL2A8 are identical in terms of number of tubes, dimensions etc.

◆ chamberHeight()

double MuonGMR4::sTgcReadoutElement::chamberHeight ( ) const

Height of the chamber.

◆ 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::sTgcReadoutElement::chamberStripPos ( const IdentifierHash & measHash) const
private

Definition at line 212 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

212 {
213 const IdentifierHash lHash = layerHash(measHash);
214 unsigned int layIdx = static_cast<unsigned int>(lHash);
215 if (layIdx < m_pars.stripLayers.size()) {
216 const StripLayer& layout{m_pars.stripLayers[layIdx]};
217 return layout.toOrigin() * layout.localStripPosition(channelNumber(measHash));
218 }
219 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
220 <<" is out of range. Maximum range "<<m_pars.stripLayers.size());
221 return Amg::Vector3D::Zero();
222}
#define ATH_MSG_WARNING(x)
static unsigned int channelNumber(const IdentifierHash &measHash)
Returns channel position for a given identifierHash.
IdentifierHash layerHash(const Identifier &measId) const override final
Transforms the Identifier into a layer hash.
str layout
Definition TileTB.py:76

◆ channelNumber()

unsigned int MuonGMR4::sTgcReadoutElement::channelNumber ( const IdentifierHash & measHash)
staticprivate

Returns channel position for a given identifierHash.

◆ chType()

unsigned int MuonGMR4::sTgcReadoutElement::chType ( const IdentifierHash & measHash)
staticprivate

Returns the channel type for a given identifierHash.

◆ createGeoTransform()

StatusCode MuonGMR4::MuonReadoutElement::createGeoTransform ( )
protectedinherited

Check that the alignable node has been assigned

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

36 {
38 if(!alignableTransform()) {
39 ATH_MSG_FATAL("The readout element "<<idHelperSvc()->toStringDetEl(identify())<<" has no assigned alignable node");
40 return StatusCode::FAILURE;
41 }
43}
#define ATH_MSG_FATAL(x)
Identifier identify() const override final
Return the athena identifier.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
StatusCode insertTransform(const IdentifierHash &hash)
Inserts a transfomration for caching.
static IdentifierHash geoTransformHash()
Returns the hash that is associated with the surface cache holding the transformation that is placing...
const GeoAlignableTransform * alignableTransform() const
Returnsthe alignable transform of the readout element.

◆ createHash()

IdentifierHash MuonGMR4::sTgcReadoutElement::createHash ( const unsigned int gasGap,
const unsigned int channelType,
const unsigned int channel,
const unsigned int wireInGrp = 0 )
static

Create a measurement hash from the Identifier fields.

Parameters
gasGap in which the measurment sits
channelType (strip / pad/ wire / wireInGrp)
channel - electronics channel connected with the readout element
wireInGrp - number of a specific wire in the group (digi only)

◆ detectorType()

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

◆ firstStripPitch() [1/2]

double MuonGMR4::sTgcReadoutElement::firstStripPitch ( const Identifier & measId) const

Gas Gaps.

◆ firstStripPitch() [2/2]

double MuonGMR4::sTgcReadoutElement::firstStripPitch ( const IdentifierHash & measHash) const

◆ fromGapToChamOrigin()

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

Definition at line 103 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

103 {
104 return stripLayer(measHash).toOrigin();
105}
const Amg::Transform3D & toOrigin() const
Returns the transformation to go from the strip layer center to the origin of the Strip chamber.
const StripLayer & stripLayer(const Identifier &measId) const

◆ gasGapNumber()

unsigned int MuonGMR4::sTgcReadoutElement::gasGapNumber ( const IdentifierHash & measHash)
staticprivate

Returns the gasGap (0 to 3) for a given identifierHash.

◆ gasGapPitch()

double MuonGMR4::sTgcReadoutElement::gasGapPitch ( ) const

Distance between 2 gas gaps.

◆ gasGapThickness()

double MuonGMR4::sTgcReadoutElement::gasGapThickness ( ) const

Returns the thickness of the gas gap.

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

44 {
45 static const IdentifierHash hash{static_cast<unsigned>(~0)-1};
46 return hash;
47}

◆ getParameters()

const parameterBook & MuonGMR4::sTgcReadoutElement::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 153 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

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

◆ globalChannelPosition() [1/2]

Amg::Vector3D MuonGMR4::sTgcReadoutElement::globalChannelPosition ( const ActsTrk::GeometryContext & ctx,
const Identifier & measId ) const

Returns the global pad/strip/wireGroup position.

◆ globalChannelPosition() [2/2]

Amg::Vector3D MuonGMR4::sTgcReadoutElement::globalChannelPosition ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & measHash ) const

Definition at line 177 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

177 {
178 const IdentifierHash lHash = layerHash(measHash);
179 unsigned int layIdx = static_cast<unsigned int>(lHash);
180 unsigned int gasGap = gasGapNumber(measHash);
181 if((chType(measHash) < ReadoutChannelType::Pad || chType(measHash) > ReadoutChannelType::Wire) && gasGap < m_pars.padLayers.size()) {
182 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The channel type "<<chType(measHash)
183 <<"with the layer hash "<<layIdx<<" is invalid. Maximum range "<<m_pars.stripLayers.size());
184 return Amg::Vector3D::Zero();
185 }
186 Amg::Vector3D channelPos{Amg::Vector3D::Zero()};
187 Amg::Vector2D localChannel = localChannelPosition(measHash);
188 channelPos.block<2,1>(0,0) = std::move(localChannel);
189 return localToGlobalTrans(ctx, lHash) * channelPos;
190}
const Amg::Transform3D & localToGlobalTrans(const ActsTrk::GeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
Amg::Vector2D localChannelPosition(const Identifier &measId) const
Returns the local pad/strip/wireGroup position.
static unsigned int gasGapNumber(const IdentifierHash &measHash)
Returns the gasGap (0 to 3) for a given identifierHash.
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D

◆ globalPadCorners() [1/2]

globalCornerArray MuonGMR4::sTgcReadoutElement::globalPadCorners ( const ActsTrk::GeometryContext & ctx,
const Identifier & measId ) const

◆ globalPadCorners() [2/2]

globalCornerArray MuonGMR4::sTgcReadoutElement::globalPadCorners ( const ActsTrk::GeometryContext & ctx,
const IdentifierHash & measHash ) const

Definition at line 194 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

194 {
195 const IdentifierHash lHash = layerHash(measHash);
196 unsigned int layIdx = static_cast<unsigned int>(lHash);
197 unsigned int gasGap = gasGapNumber(measHash);
198 globalCornerArray gPadCorners{make_array<Amg::Vector3D, 4>(Amg::Vector3D::Zero())};
199 if (chType(measHash) == ReadoutChannelType::Pad && gasGap < m_pars.padLayers.size()) {
200 localCornerArray lPadCorners = localPadCorners(measHash);
201 for (unsigned int corner = 0; corner < lPadCorners.size(); ++corner) {
202 gPadCorners[corner].block<2,1>(0,0) = std::move(lPadCorners[corner]);
203 gPadCorners[corner] = localToGlobalTrans(ctx, lHash) * gPadCorners[corner];
204 }
205 return gPadCorners;
206 }
207 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
208 <<" is out of range. Maximum range "<<m_pars.padLayers.size());
209 return gPadCorners;
210}
constexpr std::array< T, N > make_array(const T &def_val)
Helper function to initialize in-place arrays with non-zero values.
Definition ArrayHelper.h:10
localCornerArray localPadCorners(const Identifier &measId) const
std::array< Amg::Vector3D, 4 > globalCornerArray
Returns an array of four 3D vectors representing corner positions of the pads.
std::array< Amg::Vector2D, 4 > localCornerArray
Returns an array of four 2D vectors representing corner positions of the pads.

◆ globalToLocalTrans() [1/3]

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

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.

78 {
80}
Amg::Transform3D globalToLocalTrans(const ActsTrk::GeometryContext &ctx) const
Transformations to translate between local <-> global coordinates.

◆ globalToLocalTrans() [2/3]

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

Returns the global to local transformation into the rest frame of a given measurement layer.

◆ globalToLocalTrans() [3/3]

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

Returns the global to local transformation into the rest frame of a given measurement layer.

◆ identHash()

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

Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class.

◆ identify()

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

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.

◆ idHelperSvc()

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

Returns the pointer to the muonIdHelperSvc.

◆ initElement()

StatusCode MuonGMR4::sTgcReadoutElement::initElement ( )
finaloverridevirtual

Element initialization.

Implements MuonGMR4::MuonReadoutElement.

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

32 {
33 ATH_MSG_DEBUG("Parameter book "<<parameterBook());
34
36#ifndef SIMULATIONBASE
37
39 m_pars.layerBounds->makeBounds<Acts::TrapezoidBounds>(m_pars.sHalfChamberLength,
40 m_pars.lHalfChamberLength,
41 m_pars.halfChamberHeight)));
42#endif
43
44 if (m_pars.stripLayers.empty() || m_pars.wireGroupLayers.empty()) {
45 ATH_MSG_FATAL("The readout element "<<idHelperSvc()->toStringDetEl(identify())<<" doesn't have any layers defined");
46 return StatusCode::FAILURE;
47 }
48 for (unsigned int layer = 0; layer < m_pars.stripLayers.size(); ++layer) {
49 IdentifierHash layHash{layer};
50 if (gasGapNumber(m_pars.stripLayers[layer].hash()) != layHash) {
51 ATH_MSG_FATAL("Layer "<<m_pars.stripLayers[layer]<<" has a very strange hash. Expect "<<layer);
52 return StatusCode::FAILURE;
53 }
54 ATH_CHECK(insertTransform<sTgcReadoutElement>(m_pars.stripLayers[layer].hash()));
55
56#ifndef SIMULATIONBASE
57 const StripDesign& design{m_pars.stripLayers[layer].design()};
58 ATH_CHECK(planeSurfaceFactory(m_pars.stripLayers[layer].hash(),
59 m_pars.layerBounds->makeBounds<Acts::TrapezoidBounds>(design.shortHalfHeight(),
60 design.longHalfHeight(),
61 design.halfWidth(),
62 90.*Gaudi::Units::deg)));
63#endif
64
65 }
66 for (unsigned int layer = 0; layer < m_pars.wireGroupLayers.size(); ++layer) {
67 IdentifierHash layHash{layer};
68 if (gasGapNumber(m_pars.wireGroupLayers[layer].hash()) != layHash) {
69 ATH_MSG_FATAL("Layer "<<m_pars.wireGroupLayers[layer]<<" has a very strange hash. Expect "<<layer);
70 return StatusCode::FAILURE;
71 }
72 ATH_CHECK(insertTransform<sTgcReadoutElement>(m_pars.wireGroupLayers[layer].hash()));
73#ifndef SIMULATIONBASE
74 const StripDesign& design{m_pars.wireGroupLayers[layer].design()};
75 ATH_CHECK(planeSurfaceFactory(m_pars.wireGroupLayers[layer].hash(),
76 m_pars.layerBounds->makeBounds<Acts::TrapezoidBounds>(design.shortHalfHeight(),
77 design.longHalfHeight(),
78 design.halfWidth())));
79#endif
80 }
81 for (unsigned int layer = 0; layer < m_pars.padLayers.size(); ++layer) {
82 IdentifierHash layHash{layer};
83 if (gasGapNumber(m_pars.padLayers[layer].hash()) != layHash) {
84 ATH_MSG_FATAL("Layer "<<m_pars.padLayers[layer]<<" has a very strange hash. Expect "<<layer);
85 return StatusCode::FAILURE;
86 }
88#ifndef SIMULATIONBASE
89 const StripDesign& design{m_pars.padLayers[layer].design()};
90 ATH_CHECK(planeSurfaceFactory(m_pars.padLayers[layer].hash(),
91 m_pars.layerBounds->makeBounds<Acts::TrapezoidBounds>(design.shortHalfHeight(),
92 design.longHalfHeight(),
93 design.halfWidth())));
94#endif
95
96 }
97 ActsTrk::GeometryContext gctx{};
100 return StatusCode::SUCCESS;
101}
Scalar mag() const
mag method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
Amg::Vector3D center(const ActsTrk::GeometryContext &ctx) const
Returns the detector center (Which is the same as the detector center of the first measurement layer)
StatusCode planeSurfaceFactory(const IdentifierHash &hash, std::shared_ptr< const Acts::PlanarBounds > pBounds)
static IdentifierHash createHash(const unsigned int gasGap, const unsigned int channelType, const unsigned int channel, const unsigned int wireInGrp=0)
Create a measurement hash from the Identifier fields.
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

Inserts a transfomration for caching.

◆ isEtaZero()

bool MuonGMR4::sTgcReadoutElement::isEtaZero ( const IdentifierHash & measurementHash,
const Amg::Vector2D & localPosition ) const

Definition at line 321 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

321 {
322 if(std::abs(m_idHelper.stationEta(identify())) != 1 ) return false; // if we are not in a Q1 ro element we do not have to check further
323 const WireGroupDesign& design = wireDesign(measurementHash); // function is not checking for channel type so we just use its gas gap info
324
325 double lpos = (chType(measurementHash) == ReadoutChannelType::Strip ? localPosition.x() : localPosition.y() );
326 if (lpos < design.halfWidth() - design.wireCutout()) return true;
327 return false;
328}
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
const WireGroupDesign & wireDesign(const Identifier &measId) const
Retrieves the readoutElement Layer given the Identifier/Hash.

◆ layerHash() [1/2]

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

Transforms the Identifier into a layer hash.

Implements MuonGMR4::MuonReadoutElement.

◆ layerHash() [2/2]

IdentifierHash MuonGMR4::sTgcReadoutElement::layerHash ( const IdentifierHash & measHash)
static

◆ lChamberLength()

double MuonGMR4::sTgcReadoutElement::lChamberLength ( ) const

Length of the chamber on the long side.

◆ leftStripEdge()

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

Definition at line 233 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

233 {
234 const IdentifierHash lHash = layerHash(measHash);
235 unsigned int gasGap = gasGapNumber(measHash);
236 unsigned int layIdx = static_cast<unsigned int>(lHash);
237
238 if(chType(measHash) == ReadoutChannelType::Strip){
239 if(gasGap > m_pars.stripLayers.size()){
240 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
241 <<" is out of range. Maximum range "<<m_pars.stripLayers.size());
242 return Amg::Vector3D::Zero();
243 }
244 Amg::Vector3D stripleftEdge{Amg::Vector3D::Zero()};
245 Amg::Vector2D localstripleftEdge{Amg::Vector2D::Zero()};
246 std::optional<Amg::Vector2D> stripleftEdgeOpt = stripDesign(measHash).leftEdge(channelNumber(measHash));
247 localstripleftEdge = std::move(*stripleftEdgeOpt);
248 stripleftEdge.block<2,1>(0,0) = std::move(localstripleftEdge);
249
250 return localToGlobalTrans(ctx, lHash)*stripleftEdge;
251
252 }else if(chType(measHash) == ReadoutChannelType::Wire){
253 if(gasGap > m_pars.wireGroupLayers.size()){
254 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
255 <<" is out of range. Maximum range "<<m_pars.wireGroupLayers.size());
256 return Amg::Vector3D::Zero();
257
258 }
259
260 Amg::Vector3D wireleftEdge{Amg::Vector3D::Zero()};
261 Amg::Vector2D localwireleftEdge{Amg::Vector2D::Zero()};
262 std::optional<Amg::Vector2D> wireleftedgeOpt = wireDesign(measHash).leftEdge(channelNumber(measHash));
263 localwireleftEdge = std::move(*wireleftedgeOpt);
264 wireleftEdge.block<2,1>(0,0) = std::move(localwireleftEdge);
265
266 return localToGlobalTrans(ctx, lHash)*wireleftEdge;
267
268 }
269
270 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
271 <<" is not valid Type "<< chType(measHash));
272 return Amg::Vector3D::Zero();
273
274}
CheckVector2D leftEdge(int stripNumb) const
Returns the left edge of the strip (Global numbering scheme)
const StripDesign & stripDesign(const Identifier &measId) const
Retrieves the readoutElement Layer given the Identifier/Hash.

◆ lFrameWidth()

double MuonGMR4::sTgcReadoutElement::lFrameWidth ( ) const

Width of the chamber frame on the long side.

◆ localChannelPosition() [1/2]

Amg::Vector2D MuonGMR4::sTgcReadoutElement::localChannelPosition ( const Identifier & measId) const

Returns the local pad/strip/wireGroup position.

◆ localChannelPosition() [2/2]

Amg::Vector2D MuonGMR4::sTgcReadoutElement::localChannelPosition ( const IdentifierHash & measHash) const

Shifting the first wireGroup center to the last wire of the first wireGroup

Defining the wireGroup center as the mean of the position of the last wire in the first group and the left edge of the active area defined for pads to match the R3 description

Shifting the last wireGroup center to the last wire of the second-last wireGroup

Defining the wireGroup center as the mean of the position of the last wire in the second last group and the right edge of the active area defined for pads to match the R3 description

In R3, the center of the normal wireGroup is defined on the 10th wire, whereas, in R4 the center is at the center of the wireGroup (between 10th and 11th wire).

Definition at line 107 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

107 {
108 if (chType(measHash) == ReadoutChannelType::Strip) {
109 Amg::Vector2D stripCenter{Amg::Vector2D::Zero()};
110 const StripDesign& design{stripDesign(measHash)};
111 const int ch = channelNumber(measHash);
112
113 std::optional<Amg::Vector2D> stripCenterOpt = design.center(ch);
114 if (!stripCenterOpt) {
115 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The strip " << ch << " doesn't intersect with the edges of the trapezoid.");
116 return stripCenter;
117 }
118 ATH_MSG_VERBOSE("Fetch local strip position "<<idHelperSvc()->toString(measurementId(measHash))<<" "
119 <<" "<<Amg::toString(*stripCenterOpt)<<" "<<design);
120 stripCenter = std::move(*stripCenterOpt);
121 if (ch == 1 && firstStripPitch(measHash) < 0.75 * design.stripPitch()) {
122 stripCenter.x() += 0.25 * design.stripWidth();
123 }
124 if (ch == design.numStrips() && firstStripPitch(measHash) > 0.75 * design.stripPitch()) {
125 stripCenter.x() -= 0.25 * design.stripWidth();
126 }
127 return stripCenter;
128 } else if (chType(measHash) == ReadoutChannelType::Wire) {
129 Amg::Vector2D wireGroupCenter{Amg::Vector2D::Zero()};
130 const WireGroupDesign& design{wireDesign(measHash)};
131 const int ch = channelNumber(measHash);
132 std::optional<Amg::Vector2D> wireGroupCenterOpt = design.center(ch);
133 if (!wireGroupCenterOpt) {
134 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The wireGroup" << ch << "doesn't intersect with the edges of the trapezoid.");
135 return wireGroupCenter;
136 }
137 wireGroupCenter = std::move(*wireGroupCenterOpt);
138 ATH_MSG_VERBOSE("Fetch local wire position "<<idHelperSvc()->toString(measurementId(measHash))<<" "
139 <<" "<<Amg::toString(wireGroupCenter)<<" "<<design);
140 if (ch == 1) {
141 ATH_MSG_DEBUG("The first wiregroup width is " <<design.numWiresInGroup(ch) << " firstWirePos: " << design.firstStripPos());
142 ATH_MSG_DEBUG("The last wire pos is: " << wireGroupCenter.x() + (0.5 * (design.numWiresInGroup(ch) + 1) - 1) * design.stripPitch() );
144 wireGroupCenter.x() = wireGroupCenter.x() + (0.5 * (design.numWiresInGroup(ch) + 1) - 1) * design.stripPitch();
147 wireGroupCenter.x() = 0.5 * (wireGroupCenter.x() - design.longHalfHeight());
148 } else if (ch == design.numStrips()) {
149 ATH_MSG_VERBOSE("The actual center of the last wire group is: " << wireGroupCenter.x());
151 wireGroupCenter.x() = wireGroupCenter.x() - 0.5 * (design.numWiresInGroup(ch) + 1) * design.stripPitch();
152 ATH_MSG_VERBOSE("The last wire of the last second group is at: " << wireGroupCenter.x());
155 wireGroupCenter.x() = 0.5 * (wireGroupCenter.x() + design.longHalfHeight());
156 }
159 return wireGroupCenter;
160 }
161 else if (chType(measHash) == ReadoutChannelType::Pad) {
162 Amg::Vector2D padCenter{Amg::Vector2D::Zero()};
163 std::optional<Amg::Vector2D> padCenterOpt = padDesign(measHash).stripPosition(channelNumber(measHash));
164 if (!padCenterOpt) {
165 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The pad" << channelNumber(measHash) << "doesn't is not a valid pad number.");
166 return padCenter;
167 }
168 padCenter = std::move(*padCenterOpt);
169 return padCenter;
170 }
171 else {
172 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<"Invalid channel type: " << chType(measHash));
173 return Amg::Vector2D::Zero();
174 }
175}
Amg::Vector2D stripPosition(int stripNum) const override final
Override from stripDesign. This function will give the center of the pad by taking the sequential cha...
double firstStripPitch(const Identifier &measId) const
Gas Gaps.
const PadDesign & padDesign(const Identifier &measId) const
Retrieves the readoutElement Layer given the Identifier/Hash.
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.

◆ localPadCorners() [1/2]

localCornerArray MuonGMR4::sTgcReadoutElement::localPadCorners ( const Identifier & measId) const

◆ localPadCorners() [2/2]

localCornerArray MuonGMR4::sTgcReadoutElement::localPadCorners ( const IdentifierHash & measHash) const

◆ localToGlobalTrans() [1/3]

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

Returns the local to global transformation into the ATLAS coordinate system.

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

81 {
83}

◆ localToGlobalTrans() [2/3]

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

◆ localToGlobalTrans() [3/3]

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

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

51 {
52 TransformCacheMap::const_iterator cache = m_localToGlobalCaches.find(hash);
53 if (cache != m_localToGlobalCaches.end()) return cache->second->getTransform(ctx.getStore(detectorType()).get());
54 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<"() -- "
55 <<idHelperSvc()->toStringDetEl(identify())<<" hash: "<<hash<<" is unknown.");
56 return dummyTrans;
57}
AlignmentStorePtr & getStore(const DetectorType type)
Returns the mutable alignable store for the ATLAS detector type (Pixel, Mdt, etc.)
virtual DetectorType detectorType() const =0
Returns the detector element type.
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition hcg.cxx:130

◆ maxPadEta() [1/2]

unsigned int MuonGMR4::sTgcReadoutElement::maxPadEta ( const Identifier & measId) const

Returns the maximum number of pads that can be contained in a column of a pad. Used to match the pad numbering scheme.

◆ maxPadEta() [2/2]

unsigned int MuonGMR4::sTgcReadoutElement::maxPadEta ( const IdentifierHash & measHash) const

◆ measurementHash()

IdentifierHash MuonGMR4::sTgcReadoutElement::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::sTgcReadoutElement::measurementId ( const IdentifierHash & measHash) const
finaloverridevirtual

Converts the measurement hash back to the full Identifier.

Implements MuonGMR4::MuonReadoutElement.

◆ 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 163 of file AthMessaging.h.

164{
165 MsgStream* ms = m_msg_tls.get();
166 if (!ms) {
167 if (!m_initialized.test_and_set()) initMessaging();
168 ms = new MsgStream(m_imsg,m_nm);
169 m_msg_tls.reset( ms );
170 }
171
172 ms->setLevel (m_lvl);
173 return *ms;
174}
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 178 of file AthMessaging.h.

179{ 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 (m_lvl <= lvl) {
154 msg() << lvl;
155 return true;
156 } else {
157 return false;
158 }
159}

◆ msSector()

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

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

◆ multilayer()

int MuonGMR4::sTgcReadoutElement::multilayer ( ) const

Returns the multilayer of the sTgcReadoutElement.

◆ nChTypes()

unsigned int MuonGMR4::sTgcReadoutElement::nChTypes ( ) const

Number of Channel Types.

◆ numChannels() [1/2]

unsigned int MuonGMR4::sTgcReadoutElement::numChannels ( const Identifier & measId) const

Returns the number of strips / wires / pads in a given gasGap.

Parameters
measIdIdentifier corresponding to the gasGap of interest

◆ numChannels() [2/2]

unsigned int MuonGMR4::sTgcReadoutElement::numChannels ( const IdentifierHash & measHash) const

Returns the number of strips / wires / pads in a given gasGap.

Parameters
measHashMeasurement hash corresponding to the gasGap of interest

◆ numLayers()

unsigned int MuonGMR4::sTgcReadoutElement::numLayers ( ) const

Returns the number of gas gap layers.

◆ numPadEta() [1/2]

unsigned int MuonGMR4::sTgcReadoutElement::numPadEta ( const Identifier & measId) const

Returns the number of pads in the eta direction in the given layer.

◆ numPadEta() [2/2]

unsigned int MuonGMR4::sTgcReadoutElement::numPadEta ( const IdentifierHash & measHash) const

◆ numPadPhi() [1/2]

unsigned int MuonGMR4::sTgcReadoutElement::numPadPhi ( const Identifier & measId) const

Returns the number of pads in the Phi direction in the given gasGap layer.

◆ numPadPhi() [2/2]

unsigned int MuonGMR4::sTgcReadoutElement::numPadPhi ( const IdentifierHash & measHash) const

◆ padDesign() [1/2]

const PadDesign & MuonGMR4::sTgcReadoutElement::padDesign ( const Identifier & measId) const

Retrieves the readoutElement Layer given the Identifier/Hash.

◆ padDesign() [2/2]

const PadDesign & MuonGMR4::sTgcReadoutElement::padDesign ( const IdentifierHash & measHash) const

◆ padEta() [1/2]

unsigned int MuonGMR4::sTgcReadoutElement::padEta ( const Identifier & measId) const

Returns the Eta index of the pad for the given pad identifier.

◆ padEta() [2/2]

unsigned int MuonGMR4::sTgcReadoutElement::padEta ( const IdentifierHash & measHash) const

◆ padEtaPhi() [1/2]

std::pair< uint, uint > MuonGMR4::sTgcReadoutElement::padEtaPhi ( const Identifier & measId) const

Returns a pair of Eta and Phi index for the given pad identifier.

◆ padEtaPhi() [2/2]

std::pair< uint, uint > MuonGMR4::sTgcReadoutElement::padEtaPhi ( const IdentifierHash & measHash) const

◆ padHeight() [1/2]

double MuonGMR4::sTgcReadoutElement::padHeight ( const Identifier & measId) const

Returns the height of all the pads that are not adjacent to the bottom edge of the trapezoid active area.

◆ padHeight() [2/2]

double MuonGMR4::sTgcReadoutElement::padHeight ( const IdentifierHash & measHash) const

◆ padNumber() [1/2]

int MuonGMR4::sTgcReadoutElement::padNumber ( const Amg::Vector2D & hitPos,
const Identifier & measId ) const

Returns the pad Number given local position of hit and Identifier/Hash.

◆ padNumber() [2/2]

int MuonGMR4::sTgcReadoutElement::padNumber ( const Amg::Vector2D & hitPos,
const IdentifierHash & measHash ) const

Definition at line 223 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

223 {
224 int padEta = padDesign(measHash).channelNumber(hitPos).first;
225 int padPhi = padDesign(measHash).channelNumber(hitPos).second;
226 bool is_valid{true};
227 const Identifier padID = m_idHelper.padID(identify(), multilayer(), gasGapNumber(measHash) + 1, chType(measHash),
228 padEta, padPhi, is_valid);
229 int channel = m_idHelper.channel(padID);
230 return channel;
231}
std::pair< int, int > channelNumber(const Amg::Vector2D &hitPos) const
Function to retrieve the pad eta and phi given a local position coordinate.
unsigned int padPhi(const Identifier &measId) const
Returns the Phi index of the pad for the given pad identifier.
int multilayer() const
Returns the multilayer of the sTgcReadoutElement.
unsigned int padEta(const Identifier &measId) const
Returns the Eta index of the pad for the given pad identifier.

◆ padNumberSeq() [1/2]

unsigned int MuonGMR4::sTgcReadoutElement::padNumberSeq ( const Identifier & measId) const

Returns the pad number in the sequential numbering (1,2,3,...17,18,19,20,...)scheme from a pad identifier with conventional pad number (1, 2, 3, 19, 20,...)

◆ padNumberSeq() [2/2]

unsigned int MuonGMR4::sTgcReadoutElement::padNumberSeq ( const IdentifierHash & measHash) const

◆ padPhi() [1/2]

unsigned int MuonGMR4::sTgcReadoutElement::padPhi ( const Identifier & measId) const

Returns the Phi index of the pad for the given pad identifier.

◆ padPhi() [2/2]

unsigned int MuonGMR4::sTgcReadoutElement::padPhi ( const IdentifierHash & measHash) const

◆ padPhiShift() [1/2]

double MuonGMR4::sTgcReadoutElement::padPhiShift ( const Identifier & measId) const

Returns the staggering shift of inner pad edges in the phi direction.

◆ padPhiShift() [2/2]

double MuonGMR4::sTgcReadoutElement::padPhiShift ( const IdentifierHash & measHash) const

◆ planeSurfaceFactory()

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

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

126 {
127
128 //get the local to global transform cache
129 TransformCacheMap::const_iterator transformCache = m_localToGlobalCaches.find(hash);
130 if (transformCache == m_localToGlobalCaches.end()) {
131 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
132 <<" no transform cache available for hash "<<hash);
133 return StatusCode::FAILURE;
134 }
135 auto insert_itr = m_surfaces.insert(std::make_unique<ActsTrk::SurfaceCache>(transformCache->second.get()));
136 if(!insert_itr.second){
137 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
138 <<" Insertion to muon surface cache failed for hash "<<hash);
139 return StatusCode::FAILURE;
140 }
141 //Create a plane surface for the surface cache
142 (*insert_itr.first)->setSurface(Acts::Surface::makeShared<Acts::PlaneSurface>(pBounds, **insert_itr.first));
143 return StatusCode::SUCCESS;
144}

◆ releaseUnAlignedTrfs()

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

Releases all cached transforms that are not connected with alignment.

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

62 {
63 for (const auto& cache : m_localToGlobalCaches) {
64 cache.second->releaseNominalCache();
65 }
66}

◆ rightStripEdge()

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

Definition at line 277 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/sTgcReadoutElement.cxx.

277 {
278 const IdentifierHash lHash = layerHash(measHash);
279 unsigned int gasGap = gasGapNumber(measHash);
280 unsigned int layIdx = static_cast<unsigned int>(lHash);
281
282 if(chType(measHash) == ReadoutChannelType::Strip){
283 if(gasGap > m_pars.stripLayers.size()){
284 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
285 <<" is out of range. Maximum range "<<m_pars.stripLayers.size());
286 return Amg::Vector3D::Zero();
287 }
288 Amg::Vector3D striprightEdge{Amg::Vector3D::Zero()};
289 Amg::Vector2D localstriprightEdge{Amg::Vector2D::Zero()};
290 std::optional<Amg::Vector2D> striprightEdgeOpt = stripDesign(measHash).rightEdge(channelNumber(measHash));
291 localstriprightEdge = std::move(*striprightEdgeOpt);
292 striprightEdge.block<2,1>(0,0) = std::move(localstriprightEdge);
293
294 return localToGlobalTrans(ctx, lHash)*striprightEdge;
295
296 }else if(chType(measHash) == ReadoutChannelType::Wire){
297 if(gasGap > m_pars.wireGroupLayers.size()){
298 ATH_MSG_WARNING(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
299 <<" is out of range. Maximum range "<<m_pars.wireGroupLayers.size());
300 return Amg::Vector3D::Zero();
301
302 }
303
304 Amg::Vector3D wirerightEdge{Amg::Vector3D::Zero()};
305 Amg::Vector2D localwirerightEdge{Amg::Vector2D::Zero()};
306 std::optional<Amg::Vector2D> wirerightedgeOpt = wireDesign(measHash).rightEdge(channelNumber(measHash));
307 localwirerightEdge = std::move(*wirerightedgeOpt);
308 wirerightEdge.block<2,1>(0,0) = std::move(localwirerightEdge);
309
310 return localToGlobalTrans(ctx, lHash)*wirerightEdge;
311
312 }
313
314 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" The layer hash "<<layIdx
315 <<" is not valid Type "<< chType(measHash));
316 return Amg::Vector3D::Zero();
317
318
319}
CheckVector2D rightEdge(int stripNumb) const
Returns the right edge of the strip (Global numbering scheme)

◆ sChamberLength()

double MuonGMR4::sTgcReadoutElement::sChamberLength ( ) const

Length of the chamber on the short side.

◆ setChamberLink()

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

Sets the link to the enclosing chamber.

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

146 {
148}
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 149 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx.

149 {
150 m_msSectorLink = envelope;
151}
const SpectrometerSector * m_msSectorLink
Pointer to the associated MS-sector & MuonChamber.

◆ sFrameWidth()

double MuonGMR4::sTgcReadoutElement::sFrameWidth ( ) const

Width of the chamber frame on the short side.

◆ stationEta()

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

Returns the stationEta (positive A site, negative O 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 int MuonGMR4::MuonReadoutElement::storeAlignedTransforms ( const ActsTrk::DetectorAlignStore & store) const
finaloverridevirtualinherited

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.

68 {
69 if (store.detType != detectorType()) return 0;
70 unsigned int aligned{0};
71 for (const auto& cache : m_localToGlobalCaches) {
72 cache.second->getTransform(&store);
73 ++aligned;
74 }
75 return aligned;
76}
TestStore store
Definition TestStore.cxx:23

◆ strawSurfaceFactory()

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

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

103 {
104
105 //get the local to global transform cache
106 TransformCacheMap::const_iterator transformCache = m_localToGlobalCaches.find(hash);
107 if (transformCache == m_localToGlobalCaches.end()) {
108 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
109 <<" no transform cache available for hash "<<hash);
110 return StatusCode::FAILURE;
111 }
112
113 auto insert_itr = m_surfaces.insert(std::make_unique<ActsTrk::SurfaceCache>(transformCache->second.get()));
114 if(!insert_itr.second){
115 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" - "<<idHelperSvc()->toString(identify())
116 <<" Insertion to muon surface cache failed for hash "<<hash);
117 return StatusCode::FAILURE;
118 }
119 //Create straw surface for the surface cache
120 (*insert_itr.first)->setSurface(Acts::Surface::makeShared<Acts::StrawSurface>(lBounds, **insert_itr.first));
121 return StatusCode::SUCCESS;
122
123}

◆ stripDesign() [1/2]

const StripDesign & MuonGMR4::sTgcReadoutElement::stripDesign ( const Identifier & measId) const

Retrieves the readoutElement Layer given the Identifier/Hash.

◆ stripDesign() [2/2]

const StripDesign & MuonGMR4::sTgcReadoutElement::stripDesign ( const IdentifierHash & measHash) const

◆ stripLayer() [1/2]

const StripLayer & MuonGMR4::sTgcReadoutElement::stripLayer ( const Identifier & measId) const

◆ stripLayer() [2/2]

const StripLayer & MuonGMR4::sTgcReadoutElement::stripLayer ( const IdentifierHash & measId) const

◆ stripLength() [1/2]

double MuonGMR4::sTgcReadoutElement::stripLength ( const Identifier & measId) const

Length of each strip.

◆ stripLength() [2/2]

double MuonGMR4::sTgcReadoutElement::stripLength ( const IdentifierHash & measHash) const

◆ surface() [1/4]

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

Returns the surface associated to the readout element plane.

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

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

◆ surface() [2/4]

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

◆ surface() [3/4]

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

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

100{ 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 sufrface associated to a wire / measurement plane in the detector.

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

99{ return *surfacePtr(hash); }

◆ surfacePtr()

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

Returns the pointer associated to a certain wire / plane.

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

89 {
90 ActsTrk::SurfaceCacheSet::const_iterator cache = m_surfaces.find(hash);
91 if(cache != m_surfaces.end()) return (*cache)->getSurface();
92 ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<"() -- Hash "<<hash
93 <<" is unknown to "<<idHelperSvc()->toStringDetEl(identify()));
94 return nullptr;
95}

◆ thickness()

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

Thickness of the chamber.

◆ toStation()

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

Returns the local -> global transformation to go from the volume center origin.

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

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

◆ transform()

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

Returns the transformation to the origin of the chamber coordinate system.

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

85 {
86 const ActsTrk::GeometryContext *gctx = anygctx.get<const ActsTrk::GeometryContext *>();
87 return localToGlobalTrans(*gctx, geoTransformHash());
88}

◆ wireDesign() [1/2]

const WireGroupDesign & MuonGMR4::sTgcReadoutElement::wireDesign ( const Identifier & measId) const

Retrieves the readoutElement Layer given the Identifier/Hash.

◆ wireDesign() [2/2]

const WireGroupDesign & MuonGMR4::sTgcReadoutElement::wireDesign ( const IdentifierHash & measHash) const

◆ ActsTrk::TransformCacheDetEle< sTgcReadoutElement >

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_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 200 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

200{};

◆ m_gasGapPitch

double MuonGMR4::sTgcReadoutElement::m_gasGapPitch {-1.}
private

◆ m_hashShiftChType

const unsigned int MuonGMR4::sTgcReadoutElement::m_hashShiftChType = 2*std::popcount(static_cast<unsigned int>(numLayers()))
private

Auxillary variables to translate the Identifier to a measurement hash and back.

Definition at line 244 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h.

◆ m_idHelper

const sTgcIdHelper& MuonGMR4::sTgcReadoutElement::m_idHelper {idHelperSvc()->stgcIdHelper()}
private

Definition at line 239 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h.

virtual const sTgcIdHelper & stgcIdHelper() const =0
access to TgcIdHelper

◆ m_idHelperSvc

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

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

196{"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 216 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h.

216{};

◆ m_multiLayer

const int MuonGMR4::sTgcReadoutElement::m_multiLayer {m_idHelper.multilayer(identify())}
private

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_pars

parameterBook MuonGMR4::sTgcReadoutElement::m_pars {}
private

◆ m_stEta

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

Cache the station eta of the identifier.

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

206{-1};

◆ m_stName

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

Cache the station name of the identifier.

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

204{-1};

◆ m_stPhi

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

Cache the station phi of the identifier.

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

208{-1};

◆ m_surfaces

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

Cache of all associated surfaces.

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


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