ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
MuonGM::TgcReadoutElement Class Referencefinal

A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains several TgcReadoutElements. More...

#include <TgcReadoutElement.h>

Inheritance diagram for MuonGM::TgcReadoutElement:
Collaboration diagram for MuonGM::TgcReadoutElement:

Public Member Functions

 TgcReadoutElement (GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr)
 
virtual ~TgcReadoutElement ()=default
 
virtual double distanceToReadout (const Amg::Vector2D &pos, const Identifier &id) const override
 distance to readout. More...
 
virtual int stripNumber (const Amg::Vector2D &pos, const Identifier &id) const override final
 strip number corresponding to local position. More...
 
virtual bool stripPosition (const Identifier &id, Amg::Vector2D &pos) const override
 strip position If the strip number is outside the range of valid strips, the function will return false More...
 
virtual int layerHash (const Identifier &id) const override
 returns the hash function to be used to look up the center and the normal of the tracking surface for a given identifier More...
 
virtual int surfaceHash (const Identifier &id) const override
 returns the hash function to be used to look up the surface and surface transform for a given identifier More...
 
virtual int boundaryHash (const Identifier &id) const override
 returns the hash function to be used to look up the surface boundary for a given identifier More...
 
virtual bool measuresPhi (const Identifier &id) const override
 returns whether the given identifier measures phi or not More...
 
virtual int numberOfLayers (bool isStrip) const override
 number of layers in phi/eta projection More...
 
virtual int numberOfStrips (const Identifier &layerId) const override
 number of strips per layer More...
 
virtual int numberOfStrips (int layer, bool isStrip) const override
 
virtual bool spacePointPosition (const Identifier &phiId, const Identifier &etaId, Amg::Vector2D &pos) const override
 space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in the reference frame of the phi projection. More...
 
virtual bool spacePointPosition (const Identifier &phiId, const Identifier &etaId, Amg::Vector3D &pos) const override
 Global space point position for a given pair of phi and eta identifiers If one of the identifiers is outside the valid range, the function will return false. More...
 
Amg::Vector3D localSpacePoint (const Identifier &stripId, const Amg::Vector3D &etaHitPos, const Amg::Vector3D &phiHitPos) const
 
virtual bool containsId (const Identifier &id) const override
 
int chamberType () const
 
int nGasGaps () const
 Returns the number of gas gaps associated with the readout element (2 or 3) More...
 
bool validGap (int gasGap) const
 Returns whether the gasGap is within the allowed range [1-nGasGaps()]. More...
 
int nStrips (int gasGap) const
 Returns the number of strips in a given gas gap. More...
 
bool validStrip (int gasGap, int strip) const
 Returns whether the strip in the given gasgap is within the allowed range
More...
 
double stripWidth (int gasGap, int strip) const
 Returns the width of a given strip in the gasGap i. More...
 
double stripLength () const
 Returns the length of each strip which is equal to the height of the chamber. More...
 
double stripPitch (int gasGap, int strip) const
 Returns the pitch of the given strip in gasGap i. More...
 
double stripPitch (int gasGap, int strip, double radialPos) const
 Returns the pitch of the given strip in gasGap i evaluated at a local positiion along the strip. More...
 
double stripLowEdgeLocX (int gasGap, int strip, double radialPos) const
 Returns the local X of the left edge of the strip at a given local radial position. More...
 
double stripHighEdgeLocX (int gasGap, int strip, double radialPos) const
 Returns the local X of the right edge of the strip at a given local radial position. More...
 
double stripCenterLocX (int gasGap, int strip, double radialPos) const
 Returns the local X of the strip center at a given local radial position. More...
 
double physicalDistanceFromBase () const
 
double stripPosOnLargeBase (int strip) const
 
double stripPosOnShortBase (int strip) const
 
double stripDeltaPhi () const
 
double stripDeltaPhi (int gasGap, int strip) const
 
bool validGang (int gasGap, int wireGang) const
 Returns whether the wire gang in the given gasgap is within the allowed range. More...
 
int nWires (int gasGap) const
 Returns the total number of wires in a given gas gap. More...
 
int nWires (int gasGap, int gang) const
 Returns the number of wires in a given gang in gas gap i. More...
 
int nWireGangs (int gasGap) const
 Returns the number of wire gangs (Random grouping of wires) in a given gas gap. More...
 
double nPitchesToGang (int gasGap, int gang) const
 Returns the number of wire pitches that have to be travelled to reach gang i. More...
 
double gangRadialLength (int gasGap, int gang) const
 Returns the length of the wire gang along the radial direction [pitch x N_{wire}^{gang}]. More...
 
double gangShortWidth (int gasGap, int gang) const
 Returns the length of the most bottom wire in the gang. More...
 
double gangCentralWidth (int gasGap, int gang) const
 Returns the length of the central wire in the gang. More...
 
double gangLongWidth (int gasGap, int gang) const
 Returns the length of the most top wire in the gang. More...
 
double gangThickness () const
 Returns the spatial thickness of the wire gang. More...
 
double wireLength (int wire) const
 Returns the length of a wire. More...
 
double wirePitch () const
 Returns the pitch of the wires. More...
 
double stripShortWidth (int, int) const
 
double stripLongWidth (int, int) const
 
const Amg::Transform3DlocalToGlobalTransf (const Identifier &id) const
 Returns the local -> global transformation x-axis: Parallel to the wires (strips) if the Identifier belongs to a wire (strip) y-axis: Perpendicular axis in the transverse plane z-axis: Along the beam-axis. More...
 
Amg::Transform3D globalToLocalTransf (const Identifier &id) const
 Returns the global -> local transformation. More...
 
Amg::Vector3D channelPos (const Identifier &id) const
 Returns the position of the active channel (wireGang or strip) More...
 
Amg::Vector3D channelPos (int gasGap, bool isStrip, int channel) const
 
Amg::Vector3D wireGangPos (const Identifier &id) const
 Returns the global position of a wireGang. More...
 
Amg::Vector3D wireGangPos (int gasGap, int gang) const
 
Amg::Vector3D stripPos (int gasGap, int strip) const
 Returns the global position of a strip. More...
 
Amg::Vector3D stripPos (const Identifier &id) const
 
Amg::Vector3D stripDir (int gasGap, int strip) const
 Returns the direction of a strip. More...
 
Amg::Vector3D stripDir (const Identifier &id) const
 
bool isEndcap () const
 Returns true if the chamber is belonging to the 48-fold TxE chambers. More...
 
bool isForward () const
 Returns true if the chamber is mounted on the most inner ring, i.e. a TxF chamber. More...
 
bool isDoublet () const
 Returns true if the chamber has 2 gasgaps. More...
 
bool isTriplet () const
 Returns true if the chamber has 3 gasgaps. More...
 
double chamberLocPhiMin () const
 Returns the minimum angle measured from the center that's covered by the chamber. More...
 
double chamberLocPhiMax () const
 Returns the maximum angle measured from the center that's covered by the chamber. More...
 
double length () const
 
double frameZwidth () const
 
double frameXwidth () const
 
double chamberWidth (double z) const
 
int nPhiChambers () const
 
int nPhiSectors () const
 
void setPlaneZ (double value, int gasGap)
 Set the local Z coordinate of the i-th gasGap [1-3]. More...
 
int findGang (int gasGap, const Amg::Vector3D &extPos) const
 Returns the gang number that's closest to the given external position. More...
 
int findStrip (int gasGap, const Amg::Vector3D &extPos) const
 Returns the strip number that's closest to the given external position. More...
 
void setReadOutName (const std::string &rName)
 
void setReadOutParams (GeoModel::TransientConstSharedPtr< TgcReadoutParams > pars)
 
void setFrameThickness (const double frameH, const double frameAB)
 
std::string readOutName () const
 
const TgcReadoutParamsgetReadoutParams () const
 
virtual void fillCache () override
 
virtual void clearCache () override final
 clear the cache of the readout elememt More...
 
virtual const Trk::PlaneSurfacesurface () const override
 access to chamber surface (phi orientation), uses the first gas gap More...
 
virtual const Trk::PlaneSurfacesurface (const Identifier &id) const override
 access to layer surfaces More...
 
const Trk::PlaneSurfacesurface (int surfHash) const
 access to layer surfaces More...
 
virtual const Trk::SurfaceBoundsbounds () const override
 Return the boundaries of the element. More...
 
virtual const Trk::SurfaceBoundsbounds (const Identifier &id) const override
 Return the boundaries of the surface associated with this identifier. More...
 
const Trk::SurfaceBoundsbounds (int boundHash) const
 
virtual const Amg::Vector3Dcenter () const override
 Return the center of the element. More...
 
virtual const Amg::Vector3Dcenter (const Identifier &id) const override
 Return the center of the surface associated with this identifier In the case of silicon it returns the same as center() More...
 
const Amg::Vector3Dcenter (int layHash) const
 
virtual const Amg::Vector3Dnormal () const override
 Return the normal of the element. More...
 
virtual const Amg::Vector3Dnormal (const Identifier &id) const override
 Return the normal of the surface associated with this identifier In the case of silicon it returns the same as normal() More...
 
const Amg::Vector3Dnormal (int layHash) const
 
virtual const Amg::Transform3Dtransform () const override
 Return local to global transform. More...
 
virtual const Amg::Transform3Dtransform (const Identifier &id) const override
 Return local to global transform associated with this identifier. More...
 
const Amg::Transform3Dtransform (int surfHash) const
 
virtual std::vector< const Trk::Surface * > surfaces () const
 returns all the surfaces contained in this detector element More...
 
Identifier identify () const override final
 Returns the ATLAS Identifier of the MuonReadOutElement. More...
 
IdentifierHash identifyHash () const override final
 Returns the IdentifierHash of the MuonStation, i.e. More...
 
IdentifierHash detectorElementHash () const
 Returns the IdentifierHash of the detector element. More...
 
void setIdentifier (const Identifier &id)
 Sets the Identifier, hashes & station names. More...
 
int getStationIndex () const
 
int getStationEta () const
 
int getStationPhi () const
 
const Amg::Vector3D globalPosition () const
 
const Amg::Transform3DabsTransform () const
 
const Amg::Transform3DdefTransform () const
 
virtual Amg::Vector3D AmdbLRSToGlobalCoords (const Amg::Vector3D &x) const
 
virtual Amg::Transform3D AmdbLRSToGlobalTransform () const
 
virtual Amg::Vector3D GlobalToAmdbLRSCoords (const Amg::Vector3D &x) const
 
virtual Amg::Transform3D GlobalToAmdbLRSTransform () const
 
std::string getTechnologyType () const
 
const std::string & getTechnologyName () const
 
void setTechnologyName (const std::string &str)
 
std::string getStationType () const
 
const std::string & getStationName () const
 
void setStationName (const std::string &)
 
double getSsize () const
 
double getRsize () const
 
double getZsize () const
 
double getLongSsize () const
 
double getLongRsize () const
 
double getLongZsize () const
 
double getStationS () const
 Seems to be exclusively used by the MDTs --> Move it to MdtReadoutElement. More...
 
void setStationS (double)
 
void setLongSsize (double)
 
void setLongRsize (double)
 
void setLongZsize (double)
 
void setSsize (double)
 
void setRsize (double)
 
void setZsize (double)
 
bool largeSector () const
 
bool smallSector () const
 
bool sideA () const
 
bool sideC () const
 
void setParentStationPV (const PVConstLink &)
 
void setParentStationPV ()
 
PVConstLink parentStationPV () const
 
const MuonStationparentMuonStation () const
 
void setParentMuonStation (const MuonStation *)
 
Amg::Transform3D toParentStation () const
 
Amg::Vector3D parentMuonStationPos () const
 
int getIndexOfREinMuonStation () const
 
bool hasCutouts () const
 
void setHasCutouts (bool flag)
 
void refreshCache ()
 
const Muon::IMuonIdHelperSvcidHelperSvc () const
 
Trk::DetectorElemType detectorType () const override final
 Return the Detector element type. More...
 
std::string detectorTypeString () const
 Returns a string of the Detector element type. More...
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Protected Member Functions

const MuonDetectorManagermanager () const
 

Protected Attributes

std::unique_ptr< SurfaceDatam_surfaceData {}
 
double m_Ssize {-9999.}
 
double m_Rsize {-9999.}
 
double m_Zsize {-9999.}
 
double m_LongSsize {-9999.}
 
double m_LongRsize {-9999.}
 
double m_LongZsize {-9999.}
 size in the specified direction More...
 
std::string m_techname {"TTT0"}
 MDT or RPC or TGC or CSC plus a two digits subtype; example RPC17. More...
 
std::string m_statname {"XXX0"}
 examples are BMS5, CSS1, EML1 More...
 
int m_caching {-1}
 0 if we want to avoid caching geometry info for tracking interface More...
 
bool m_hasCutouts {false}
 true is there are cutouts in the readdout-element More...
 

Private Member Functions

Amg::Vector3D localChannelPos (const Identifier &id) const
 Returns the local position of the active channel (wireGang or strip) More...
 
Amg::Vector3D localChannelPos (int gasGap, bool isStrip, int channel) const
 
Amg::Vector3D localStripPos (int gasGap, int strip) const
 
Amg::Vector3D localStripPos (const Identifier &id) const
 
Amg::Vector3D localStripDir (int gasGap, int strip) const
 Returns the local strip direction of a strip. More...
 
Amg::Vector3D localStripDir (const Identifier &id) const
 
Amg::Vector3D localWireGangPos (int gasGap, int gang) const
 Returns the local position fo a wireGang. More...
 
Amg::Vector3D localWireGangPos (const Identifier &id) const
 
Amg::Vector3D localGasGapPos (int gg) const
 Returns the local position of the gasGap in the AMDB coordinate system. More...
 
double stripLocalX (const int stripNum, const double locY, const double refPoint) const
 Returns the local X given the reference point E.g. More...
 
double wireGangLocalX (const int gasGap, const int gangNum) const
 Returns the local X of the wire gang in gasGap i
More...
 
double wireGangBottomX (int gasGap, int gangNum) const
 Returns the local X of the bottom wire in the wireGang i in gasGap j. More...
 
double wireGangTopX (int gasGap, int gangNum) const
 Returns the local X of the top wire in the wireGang i in gasGap j. More...
 
std::pair< double, int > stripNumberToFetch (int gasGap, int inStrip) const
 Returns whether a strip needs to be flipped and the final strip number parsed to the TgcReadoutParams to fetch its absolute position. More...
 
void setIndexOfREinMuonStation ()
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Static Private Member Functions

static int surfaceHash (int GasGap, bool isStrip)
 

Private Attributes

const TgcIdHelperm_idHelper {idHelperSvc()->tgcIdHelper()}
 
std::array< double, s_maxGasGapm_gasPlaneZ {make_array<double, s_maxGasGap>(-9999.)}
 
std::string m_readout_name {}
 
GeoModel::TransientConstSharedPtr< TgcReadoutParamsm_readoutParams {nullptr}
 
double m_stripSlope {0.}
 Cache of the function call 1. More...
 
double m_locMinPhi {0.}
 
double m_locMaxPhi {0.}
 
int m_stIdxT4E {m_idHelper.stationNameIndex("T4E")}
 
double m_frameH {0.}
 
double m_frameAB {0.}
 
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {"Muon::MuonIdHelperSvc/MuonIdHelperSvc", "MuonDetectorManager"}
 
Trk::DetectorElemType m_type {Trk::DetectorElemType::SolidState}
 
Identifier m_id {0}
 extended data-collection identifier More...
 
IdentifierHash m_idhash {0}
 data-collection hash identifier More...
 
IdentifierHash m_detectorElIdhash {0}
 detector element hash identifier More...
 
int m_indexOfREinMuonStation {-999}
 index of this RE in the mother MuonStation More...
 
double m_stationS {0.}
 
int m_stIdx {-1}
 Identifier field of the station index. More...
 
int m_eta {-1}
 Identifier field of the station eta. More...
 
int m_phi {-1}
 Identifier field of the station phi. More...
 
PVConstLink m_parentStationPV {nullptr}
 
const MuonStationm_parentMuonStation {nullptr}
 
MuonDetectorManagerm_muon_mgr {nullptr}
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Static Private Attributes

static constexpr int s_maxGasGap {3}
 

Detailed Description

A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains several TgcReadoutElements.

TgcReadoutElements are identified by StationName, StationEta, StationPhi, Technology=3. Therefore the granularity of the data-collections is equal to the granularity of the geometry description (1 collection -> 1 TgcReadoutElement).

Pointers to all TgcReadoutElements are created in the build() method of the MuonChamber class, and are held in arrays by the MuonDetectorManager, which is responsible for storing, deleting and provide access to these objects.

A TgcReadoutElement holds properties related to its internal structure (i.e. number of strip panels) and general geometrical properties (size); it implements tracking interfaces and provide access to typical readout-geometry information: i.e. number of strips, strip and wire-gang positions, etc.

The globalToLocalCoords and globalToLocalTransform methods (+ their opposite) define the link between the ATLAS global reference frame and the internal (geo-model defined) local reference frame of any gas gap volume (which is the frame where local coordinates of SimHits, in output from G4, are expressed).

Definition at line 42 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h.

Constructor & Destructor Documentation

◆ TgcReadoutElement()

MuonGM::TgcReadoutElement::TgcReadoutElement ( GeoVFullPhysVol *  pv,
const std::string &  stName,
MuonDetectorManager mgr 
)

Definition at line 35 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

35  :
37  setStationName(stName);
38  // get the setting of the caching flag from the manager
39  }

◆ ~TgcReadoutElement()

virtual MuonGM::TgcReadoutElement::~TgcReadoutElement ( )
virtualdefault

Member Function Documentation

◆ absTransform()

const Amg::Transform3D & MuonGM::MuonReadoutElement::absTransform ( ) const
inlineinherited

Definition at line 210 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

210 { return getMaterialGeom()->getAbsoluteTransform(); }

◆ AmdbLRSToGlobalCoords()

Amg::Vector3D MuonGM::MuonReadoutElement::AmdbLRSToGlobalCoords ( const Amg::Vector3D x) const
virtualinherited

Reimplemented in MuonGM::sTgcReadoutElement, and MuonGM::MMReadoutElement.

Definition at line 141 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

141  {
142  return AmdbLRSToGlobalTransform() * x;
143  }

◆ AmdbLRSToGlobalTransform()

Amg::Transform3D MuonGM::MuonReadoutElement::AmdbLRSToGlobalTransform ( ) const
virtualinherited

◆ boundaryHash()

virtual int MuonGM::TgcReadoutElement::boundaryHash ( const Identifier id) const
overridevirtual

returns the hash function to be used to look up the surface boundary for a given identifier

Implements MuonGM::MuonClusterReadoutElement.

◆ bounds() [1/3]

const Trk::SurfaceBounds & MuonGM::MuonClusterReadoutElement::bounds ( ) const
inlineoverridevirtualinherited

Return the boundaries of the element.

Implements Trk::TrkDetElementBase.

Definition at line 127 of file MuonClusterReadoutElement.h.

127 { return bounds(0); }

◆ bounds() [2/3]

const Trk::SurfaceBounds & MuonGM::MuonClusterReadoutElement::bounds ( const Identifier id) const
inlineoverridevirtualinherited

Return the boundaries of the surface associated with this identifier.

For TRT this will be a straw, while for silicon it returns the same as bounds()

Implements Trk::TrkDetElementBase.

Definition at line 133 of file MuonClusterReadoutElement.h.

133 { return bounds(boundaryHash(id)); }

◆ bounds() [3/3]

const Trk::SurfaceBounds & MuonGM::MuonClusterReadoutElement::bounds ( int  boundHash) const
inlineinherited

Definition at line 185 of file MuonClusterReadoutElement.h.

185  {
186  if (!m_surfaceData) {
187  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<" Requesting bounds but cache is empty");
188  throw std::runtime_error("Empty bounds cache");
189  }
190  if (hash == -1 || hash >= (int)m_surfaceData->m_surfBounds.size()) {
191  ATH_MSG_WARNING("normal hash out of range: " << hash << " elements " << m_surfaceData->m_surfBounds.size());
192  return *m_surfaceData->m_surfBounds.front();
193  }
194  return *m_surfaceData->m_surfBounds[hash];
195  }

◆ center() [1/3]

const Amg::Vector3D & MuonGM::MuonClusterReadoutElement::center ( ) const
inlineoverridevirtualinherited

Return the center of the element.

Implements Trk::TrkDetElementBase.

Definition at line 125 of file MuonClusterReadoutElement.h.

125 { return center(0); }

◆ center() [2/3]

const Amg::Vector3D & MuonGM::MuonClusterReadoutElement::center ( const Identifier id) const
inlineoverridevirtualinherited

Return the center of the surface associated with this identifier In the case of silicon it returns the same as center()

Implements Trk::TrkDetElementBase.

Definition at line 131 of file MuonClusterReadoutElement.h.

131 { return center(layerHash(id)); }

◆ center() [3/3]

const Amg::Vector3D & MuonGM::MuonClusterReadoutElement::center ( int  layHash) const
inlineinherited

Definition at line 161 of file MuonClusterReadoutElement.h.

161  {
162  if (!m_surfaceData) {
163  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<" Requesting center but cache is empty");
164  throw std::runtime_error("Empty center cache");
165  }
166  if (hash == -1 || hash >= (int)m_surfaceData->m_layerCenters.size()) {
167  ATH_MSG_WARNING("center hash out of range: " << hash << " elements " << m_surfaceData->m_layerCenters.size());
168  return m_surfaceData->m_layerCenters.front();
169  }
170  return m_surfaceData->m_layerCenters[hash];
171  }

◆ chamberLocPhiMax()

double MuonGM::TgcReadoutElement::chamberLocPhiMax ( ) const

Returns the maximum angle measured from the center that's covered by the chamber.

◆ chamberLocPhiMin()

double MuonGM::TgcReadoutElement::chamberLocPhiMin ( ) const

Returns the minimum angle measured from the center that's covered by the chamber.

◆ chamberType()

int MuonGM::TgcReadoutElement::chamberType ( ) const

◆ chamberWidth()

double MuonGM::TgcReadoutElement::chamberWidth ( double  z) const

◆ channelPos() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::channelPos ( const Identifier id) const

Returns the position of the active channel (wireGang or strip)

◆ channelPos() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::channelPos ( int  gasGap,
bool  isStrip,
int  channel 
) const

◆ clearCache()

void MuonGM::MuonClusterReadoutElement::clearCache ( )
finaloverridevirtualinherited

clear the cache of the readout elememt

Implements MuonGM::MuonReadoutElement.

Definition at line 13 of file MuonClusterReadoutElement.cxx.

13 { m_surfaceData.reset(); }

◆ containsId()

bool MuonGM::TgcReadoutElement::containsId ( const Identifier id) const
overridevirtual

Implements MuonGM::MuonReadoutElement.

Definition at line 282 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

282  {
283  int gasGap = m_idHelper.gasGap(id);
284  if (gasGap < 1 || gasGap > nGasGaps()) return false;
285 
286  int isStrip = m_idHelper.isStrip(id);
287  int ch = m_idHelper.channel(id);
288  if (isStrip == 0) {
289  if (ch < 1 || ch > nWireGangs(gasGap)) return false;
290  } else if (isStrip == 1) {
291  if (ch < 1 || ch > nStrips(gasGap)) return false;
292  } else
293  return false;
294 
295  return true;
296  }

◆ defTransform()

const Amg::Transform3D & MuonGM::MuonReadoutElement::defTransform ( ) const
inlineinherited

Definition at line 212 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

212 { return getMaterialGeom()->getDefAbsoluteTransform(); }

◆ detectorElementHash()

IdentifierHash MuonGM::MuonReadoutElement::detectorElementHash ( ) const
inlineinherited

Returns the IdentifierHash of the detector element.

Unlike the identifyHash, this hash is unique for each readout element

Definition at line 186 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

186 { return m_detectorElIdhash; }

◆ detectorType()

Trk::DetectorElemType MuonGM::MuonReadoutElement::detectorType ( ) const
inlinefinaloverridevirtualinherited

Return the Detector element type.

Implements Trk::TrkDetElementBase.

Definition at line 138 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

138 { return m_type; }

◆ detectorTypeString()

std::string Trk::TrkDetElementBase::detectorTypeString ( ) const
inherited

Returns a string of the Detector element type.

Definition at line 10 of file TrkDetElementBase.cxx.

10  {
11  auto type = detectorType();
13  return "SolidState";
15  return "Silicon";
16  else if (type == Trk::DetectorElemType::TRT)
17  return "TRT";
18  else if (type == Trk::DetectorElemType::Csc)
19  return "Csc";
20  else if (type == Trk::DetectorElemType::Mdt)
21  return "Mdt";
22  else if (type == Trk::DetectorElemType::Rpc)
23  return "Rpc";
24  else if (type == Trk::DetectorElemType::Tgc)
25  return "Tgc";
27  return "sTgc";
28  else if (type == Trk::DetectorElemType::MM)
29  return "Mm";
30  return "Unknown";
31 }

◆ distanceToReadout()

double MuonGM::TgcReadoutElement::distanceToReadout ( const Amg::Vector2D pos,
const Identifier id 
) const
overridevirtual

distance to readout.

If the local position is outside the active volume, the function first shift the position back into the active volume

Implements MuonGM::MuonClusterReadoutElement.

Definition at line 298 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

298  {
299  THROW_EXCEPT("distanceToReadout() -- method not implemented");
300  return 0.;
301  }

◆ fillCache()

void MuonGM::TgcReadoutElement::fillCache ( )
overridevirtual

Implements MuonGM::MuonReadoutElement.

Definition at line 238 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

238  {
239  if (m_surfaceData) {
240  ATH_MSG_WARNING( "calling fillCache on an already filled cache" );
241  return;
242  }
243  m_surfaceData = std::make_unique<SurfaceData>();
244  m_stripSlope = 1. / (getRsize() - 2. * physicalDistanceFromBase());
245  m_locMinPhi = -std::atan2((getLongSsize() - getSsize()) / 2, length());
246  m_locMaxPhi = std::atan2((getLongSsize() - getSsize()) / 2, length());
247 
248  // loop over all gas gaps
249  for (int gp = 1; gp <= nGasGaps(); ++gp) {
250  // loop over phi/eta projections
251  for (bool isStrip : {false, true}) {
253  const Amg::Translation3D xfp{localGasGapPos(gp)};
254  Amg::Transform3D trans3D = absTransform() * xfp;
255  Amg::RotationMatrix3D muonTRotation(trans3D.rotation());
256  Amg::RotationMatrix3D surfaceTRotation{Amg::RotationMatrix3D::Identity()};
257  surfaceTRotation.col(0) = muonTRotation.col(1);
258  surfaceTRotation.col(1) = muonTRotation.col(2);
259  surfaceTRotation.col(2) = muonTRotation.col(0);
260  Amg::Transform3D trans(surfaceTRotation);
261  if (!isStrip) trans = trans * Amg::getRotateZ3D(M_PI / 2);
262  Amg::Translation3D t(trans3D.translation());
263  trans.pretranslate(trans3D.translation());
264  m_surfaceData->m_layerTransforms.push_back(std::move(trans));
265  m_surfaceData->m_layerSurfaces.emplace_back(std::make_unique<Trk::PlaneSurface>(*this, id));
266 
267  if (isStrip) {
268  m_surfaceData->m_layerCenters.push_back(m_surfaceData->m_layerTransforms.back().translation());
269  m_surfaceData->m_layerNormals.push_back(m_surfaceData->m_layerTransforms.back().linear() * Amg::Vector3D::UnitZ());
270  }
271  }
272  }
273 
274  m_surfaceData->m_surfBounds.emplace_back(std::make_unique<Trk::TrapezoidBounds>(getSsize() / 2.,
275  getLongSsize() / 2.,
276  getRsize() / 2.)); // phi measurement
277  m_surfaceData->m_surfBounds.emplace_back(std::make_unique<Trk::RotatedTrapezoidBounds>(getRsize() / 2.,
278  getSsize() / 2.,
279  getLongSsize() / 2.)); // eta measurement
280  }

◆ findGang()

int MuonGM::TgcReadoutElement::findGang ( int  gasGap,
const Amg::Vector3D extPos 
) const

Returns the gang number that's closest to the given external position.

Definition at line 199 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

199  {
200 #ifndef NDEBUG
201  if (!validGap(gasGap)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" given.");
202 #endif
203  double z = localPos.z();
204  for (int gang = 1; gang <= nWireGangs(gasGap); ++gang) {
205  if (z < wireGangTopX(gasGap, gang)) return gang;
206  }
207  return nWireGangs(gasGap);
208  }

◆ findStrip()

int MuonGM::TgcReadoutElement::findStrip ( int  gasGap,
const Amg::Vector3D extPos 
) const

Returns the strip number that's closest to the given external position.

Definition at line 210 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

210  {
211 #ifndef NDEBUG
212  if (!validGap(gasGap)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" given.");
213 #endif
214  double x = localPos.x();
215  double z = localPos.z();
216  for (int strip = 1; strip <= nStrips(gasGap); ++strip) {
217  if (stripLowEdgeLocX(gasGap, strip, z) < x && x < stripHighEdgeLocX(gasGap, strip, z)) return strip;
218  }
219  return nStrips(gasGap);
220  }

◆ frameXwidth()

double MuonGM::TgcReadoutElement::frameXwidth ( ) const

Definition at line 55 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

55 { return m_frameAB; }

◆ frameZwidth()

double MuonGM::TgcReadoutElement::frameZwidth ( ) const

Definition at line 54 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

54 { return m_frameH; }

◆ gangCentralWidth()

double MuonGM::TgcReadoutElement::gangCentralWidth ( int  gasGap,
int  gang 
) const

Returns the length of the central wire in the gang.

Definition at line 92 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

92  {
93 #ifndef NDEBUG
94  if (!validGang(gasGap, gang)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & wire gang "<<gang<<" given.");
95 #endif
96  return chamberWidth(wireGangLocalX(gasGap, gang)) - frameXwidth() * 2.;
97  }

◆ gangLongWidth()

double MuonGM::TgcReadoutElement::gangLongWidth ( int  gasGap,
int  gang 
) const

Returns the length of the most top wire in the gang.

Definition at line 86 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

86  {
87 #ifndef NDEBUG
88  if (!validGang(gasGap, gang)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & wire gang "<<gang<<" given.");
89 #endif
90  return chamberWidth(wireGangTopX(gasGap, gang)) - frameXwidth() * 2.;
91  }

◆ gangRadialLength()

double MuonGM::TgcReadoutElement::gangRadialLength ( int  gasGap,
int  gang 
) const

Returns the length of the wire gang along the radial direction [pitch x N_{wire}^{gang}].

Definition at line 72 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

72  {
73 #ifndef NDEBUG
74  if (!validGang(gasGap, gang)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & wire gang "<<gang<<" given.");
75 #endif
76  return wirePitch() * nWires(gasGap, gang);
77  }

◆ gangShortWidth()

double MuonGM::TgcReadoutElement::gangShortWidth ( int  gasGap,
int  gang 
) const

Returns the length of the most bottom wire in the gang.

Definition at line 79 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

79  {
80 #ifndef NDEBUG
81  if (!validGang(gasGap, gang)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & wire gang "<<gang<<" given.");
82 #endif
83  return chamberWidth(wireGangBottomX(gasGap, gang)) - frameXwidth() * 2.;
84  }

◆ gangThickness()

double MuonGM::TgcReadoutElement::gangThickness ( ) const

Returns the spatial thickness of the wire gang.

◆ getIndexOfREinMuonStation()

int MuonGM::MuonReadoutElement::getIndexOfREinMuonStation ( ) const
inherited

◆ getLongRsize()

double MuonGM::MuonReadoutElement::getLongRsize ( ) const
inlineinherited

◆ getLongSsize()

double MuonGM::MuonReadoutElement::getLongSsize ( ) const
inlineinherited

◆ getLongZsize()

double MuonGM::MuonReadoutElement::getLongZsize ( ) const
inlineinherited

◆ getReadoutParams()

const TgcReadoutParams* MuonGM::TgcReadoutElement::getReadoutParams ( ) const

◆ getRsize()

double MuonGM::MuonReadoutElement::getRsize ( ) const
inlineinherited

◆ getSsize()

double MuonGM::MuonReadoutElement::getSsize ( ) const
inlineinherited

◆ getStationEta()

int MuonGM::MuonReadoutElement::getStationEta ( ) const
inlineinherited

◆ getStationIndex()

int MuonGM::MuonReadoutElement::getStationIndex ( ) const
inlineinherited

◆ getStationName()

const std::string & MuonGM::MuonReadoutElement::getStationName ( ) const
inlineinherited

◆ getStationPhi()

int MuonGM::MuonReadoutElement::getStationPhi ( ) const
inlineinherited

◆ getStationS()

double MuonGM::MuonReadoutElement::getStationS ( ) const
inlineinherited

Seems to be exclusively used by the MDTs --> Move it to MdtReadoutElement.

Definition at line 202 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

202 { return m_stationS; }

◆ getStationType()

std::string MuonGM::MuonReadoutElement::getStationType ( ) const
inlineinherited

Definition at line 189 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

189 { return m_statname.substr(0,3); }

◆ getTechnologyName()

const std::string & MuonGM::MuonReadoutElement::getTechnologyName ( ) const
inlineinherited

◆ getTechnologyType()

std::string MuonGM::MuonReadoutElement::getTechnologyType ( ) const
inlineinherited

Definition at line 187 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

187 { return m_techname.substr(0, 3); }

◆ getZsize()

double MuonGM::MuonReadoutElement::getZsize ( ) const
inlineinherited

◆ globalPosition()

const Amg::Vector3D MuonGM::MuonReadoutElement::globalPosition ( ) const
inherited

Definition at line 47 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

47 { return absTransform().translation(); }

◆ GlobalToAmdbLRSCoords()

Amg::Vector3D MuonGM::MuonReadoutElement::GlobalToAmdbLRSCoords ( const Amg::Vector3D x) const
virtualinherited

Reimplemented in MuonGM::sTgcReadoutElement, and MuonGM::MMReadoutElement.

Definition at line 149 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

149  {
150  return GlobalToAmdbLRSTransform() * x;
151  }

◆ GlobalToAmdbLRSTransform()

Amg::Transform3D MuonGM::MuonReadoutElement::GlobalToAmdbLRSTransform ( ) const
virtualinherited

◆ globalToLocalTransf()

Amg::Transform3D MuonGM::TgcReadoutElement::globalToLocalTransf ( const Identifier id) const

Returns the global -> local transformation.

◆ hasCutouts()

bool MuonGM::MuonReadoutElement::hasCutouts ( ) const
inlineinherited

◆ identify()

Identifier MuonGM::MuonReadoutElement::identify ( ) const
inlinefinaloverridevirtualinherited

Returns the ATLAS Identifier of the MuonReadOutElement.

Usually the Identifier corresponds to the first channel covered by the Element

Implements Trk::TrkDetElementBase.

Definition at line 184 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

184 { return m_id; }

◆ identifyHash()

IdentifierHash MuonGM::MuonReadoutElement::identifyHash ( ) const
inlinefinaloverridevirtualinherited

Returns the IdentifierHash of the MuonStation, i.e.

2 readoutelements with same sationIndex, stationEta, stationPhi have the same identifiyHash

Implements Trk::TrkDetElementBase.

Definition at line 185 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

185 { return m_idhash; }

◆ idHelperSvc()

const Muon::IMuonIdHelperSvc* MuonGM::MuonReadoutElement::idHelperSvc ( ) const
inlineinherited

◆ 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  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ isDoublet()

bool MuonGM::TgcReadoutElement::isDoublet ( ) const

Returns true if the chamber has 2 gasgaps.

◆ isEndcap()

bool MuonGM::TgcReadoutElement::isEndcap ( ) const

Returns true if the chamber is belonging to the 48-fold TxE chambers.

◆ isForward()

bool MuonGM::TgcReadoutElement::isForward ( ) const

Returns true if the chamber is mounted on the most inner ring, i.e. a TxF chamber.

◆ isTriplet()

bool MuonGM::TgcReadoutElement::isTriplet ( ) const

Returns true if the chamber has 3 gasgaps.

◆ largeSector()

bool MuonGM::MuonReadoutElement::largeSector ( ) const
inherited

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

49  {
50  // this doesn't apply to TGC
51  if(m_statname.size() >= 3){
52  char c = m_statname[2];
53  if (c == 'L')
54  return true;
55  else if (c == 'S')
56  return false;
57  else {
58  if (c == 'E' || c == 'F' || c == 'G') return false;
59  if (c == 'M' || c == 'R') return true;
60  }
61  }
62  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" largeSector() - is this station a larger sector answer is no for readout element "<<m_idHelperSvc->toStringDetEl(identify()));
63  throw std::runtime_error("Unknown sector");
64  return false;
65  }

◆ layerHash()

virtual int MuonGM::TgcReadoutElement::layerHash ( const Identifier id) const
overridevirtual

returns the hash function to be used to look up the center and the normal of the tracking surface for a given identifier

Implements MuonGM::MuonClusterReadoutElement.

◆ length()

double MuonGM::TgcReadoutElement::length ( ) const

Definition at line 53 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

53 { return getRsize() - 2. * frameZwidth(); }

◆ localChannelPos() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localChannelPos ( const Identifier id) const
private

Returns the local position of the active channel (wireGang or strip)

◆ localChannelPos() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localChannelPos ( int  gasGap,
bool  isStrip,
int  channel 
) const
private

◆ localGasGapPos()

Amg::Vector3D MuonGM::TgcReadoutElement::localGasGapPos ( int  gg) const
private

Returns the local position of the gasGap in the AMDB coordinate system.

Definition at line 49 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

49  {
50  return m_gasPlaneZ[gg - 1] * Amg::Vector3D::UnitX();
51  }

◆ localSpacePoint()

Amg::Vector3D MuonGM::TgcReadoutElement::localSpacePoint ( const Identifier stripId,
const Amg::Vector3D etaHitPos,
const Amg::Vector3D phiHitPos 
) const

Definition at line 315 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

317  {
318 
319 
320  const Amg::Transform3D globToLoc{transform(stripId).inverse()};
321  const Amg::Vector3D lEtaHitPos = globToLoc * etaHitPos;
322  const Amg::Vector3D lPhiHitPos = globToLoc * phiHitPos;
323  const Amg::Vector3D phiHitDir = localStripDir(stripId);
324 
325  ATH_MSG_VERBOSE("local space piont 2D "<<idHelperSvc()->toString(stripId)
326  <<"eta hit: "<<Amg::toString(lEtaHitPos)<<" phi hit:"<<Amg::toString(lPhiHitPos)
327  <<"phi dir: "<<Amg::toString(phiHitDir));
328  return lPhiHitPos +
329  Amg::intersect<3>(lEtaHitPos, Amg::Vector3D::UnitX(), lPhiHitPos, phiHitDir).value_or(0) * phiHitDir;
330 
331  }

◆ localStripDir() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localStripDir ( const Identifier id) const
private

◆ localStripDir() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localStripDir ( int  gasGap,
int  strip 
) const
private

Returns the local strip direction of a strip.

◆ localStripPos() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localStripPos ( const Identifier id) const
private

◆ localStripPos() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localStripPos ( int  gasGap,
int  strip 
) const
private

◆ localToGlobalTransf()

const Amg::Transform3D& MuonGM::TgcReadoutElement::localToGlobalTransf ( const Identifier id) const

Returns the local -> global transformation x-axis: Parallel to the wires (strips) if the Identifier belongs to a wire (strip) y-axis: Perpendicular axis in the transverse plane z-axis: Along the beam-axis.

◆ localWireGangPos() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localWireGangPos ( const Identifier id) const
private

◆ localWireGangPos() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::localWireGangPos ( int  gasGap,
int  gang 
) const
private

Returns the local position fo a wireGang.

◆ manager()

const MuonDetectorManager * MuonGM::MuonReadoutElement::manager ( ) const
inlineprotectedinherited

◆ measuresPhi()

virtual bool MuonGM::TgcReadoutElement::measuresPhi ( const Identifier id) const
overridevirtual

returns whether the given identifier measures phi or not

Implements MuonGM::MuonClusterReadoutElement.

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

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

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

180 { return msg() << lvl; }

◆ 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_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ nGasGaps()

int MuonGM::TgcReadoutElement::nGasGaps ( ) const

Returns the number of gas gaps associated with the readout element (2 or 3)

◆ normal() [1/3]

const Amg::Vector3D & MuonGM::MuonClusterReadoutElement::normal ( ) const
inlineoverridevirtualinherited

Return the normal of the element.

Implements Trk::TrkDetElementBase.

Definition at line 126 of file MuonClusterReadoutElement.h.

126 { return normal(0); }

◆ normal() [2/3]

const Amg::Vector3D & MuonGM::MuonClusterReadoutElement::normal ( const Identifier id) const
inlineoverridevirtualinherited

Return the normal of the surface associated with this identifier In the case of silicon it returns the same as normal()

Implements Trk::TrkDetElementBase.

Definition at line 132 of file MuonClusterReadoutElement.h.

132 { return normal(layerHash(id)); }

◆ normal() [3/3]

const Amg::Vector3D & MuonGM::MuonClusterReadoutElement::normal ( int  layHash) const
inlineinherited

Definition at line 173 of file MuonClusterReadoutElement.h.

173  {
174  if (!m_surfaceData) {
175  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<" Requesting normal but cache is empty");
176  throw std::runtime_error("Empty normal cache");
177  }
178  if (hash == -1 || hash >= (int)m_surfaceData->m_layerNormals.size()) {
179  ATH_MSG_WARNING("normal hash out of range: " << hash << " elements " << m_surfaceData->m_layerNormals.size());
180  return m_surfaceData->m_layerNormals.front();
181  }
182  return m_surfaceData->m_layerNormals[hash];
183  }

◆ nPhiChambers()

int MuonGM::TgcReadoutElement::nPhiChambers ( ) const

◆ nPhiSectors()

int MuonGM::TgcReadoutElement::nPhiSectors ( ) const

◆ nPitchesToGang()

double MuonGM::TgcReadoutElement::nPitchesToGang ( int  gasGap,
int  gang 
) const

Returns the number of wire pitches that have to be travelled to reach gang i.

◆ nStrips()

int MuonGM::TgcReadoutElement::nStrips ( int  gasGap) const

Returns the number of strips in a given gas gap.

◆ numberOfLayers()

virtual int MuonGM::TgcReadoutElement::numberOfLayers ( bool  isStrip) const
overridevirtual

number of layers in phi/eta projection

Implements MuonGM::MuonClusterReadoutElement.

◆ numberOfStrips() [1/2]

virtual int MuonGM::TgcReadoutElement::numberOfStrips ( const Identifier layerId) const
overridevirtual

number of strips per layer

Implements MuonGM::MuonClusterReadoutElement.

◆ numberOfStrips() [2/2]

virtual int MuonGM::TgcReadoutElement::numberOfStrips ( int  layer,
bool  isStrip 
) const
overridevirtual

◆ nWireGangs()

int MuonGM::TgcReadoutElement::nWireGangs ( int  gasGap) const

Returns the number of wire gangs (Random grouping of wires) in a given gas gap.

◆ nWires() [1/2]

int MuonGM::TgcReadoutElement::nWires ( int  gasGap) const

Returns the total number of wires in a given gas gap.

◆ nWires() [2/2]

int MuonGM::TgcReadoutElement::nWires ( int  gasGap,
int  gang 
) const

Returns the number of wires in a given gang in gas gap i.

◆ parentMuonStation()

const MuonStation * MuonGM::MuonReadoutElement::parentMuonStation ( ) const
inherited

◆ parentMuonStationPos()

Amg::Vector3D MuonGM::MuonReadoutElement::parentMuonStationPos ( ) const
inherited

Definition at line 137 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

137  {
138  return parentMuonStation()->getTransform().translation();
139  }

◆ parentStationPV()

PVConstLink MuonGM::MuonReadoutElement::parentStationPV ( ) const
inherited

◆ physicalDistanceFromBase()

double MuonGM::TgcReadoutElement::physicalDistanceFromBase ( ) const

◆ readOutName()

std::string MuonGM::TgcReadoutElement::readOutName ( ) const

◆ refreshCache()

void MuonGM::MuonReadoutElement::refreshCache ( )
inherited

Definition at line 177 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

177  {
178  clearCache();
179  fillCache();
180  }

◆ setFrameThickness()

void MuonGM::TgcReadoutElement::setFrameThickness ( const double  frameH,
const double  frameAB 
)

Definition at line 45 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

45  {
46  m_frameH = frameH;
47  m_frameAB = frameAB;
48  }

◆ setHasCutouts()

void MuonGM::MuonReadoutElement::setHasCutouts ( bool  flag)
inlineinherited

◆ setIdentifier()

void MuonGM::MuonReadoutElement::setIdentifier ( const Identifier id)
inherited

Sets the Identifier, hashes & station names.

Definition at line 156 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

156  {
157  m_id = id;
158  if (!m_idHelperSvc->isMuon(id)) {
159  ATH_MSG_FATAL("The Identifier "<<m_idHelperSvc->toString(id)<<" is not a muon one.");
160  throw std::runtime_error("Invalid Identifier set");
161  }
162  m_stIdx = m_idHelperSvc->stationName(id);
163  m_eta = m_idHelperSvc->stationEta(id);
164  m_phi = m_idHelperSvc->stationPhi(id);
165  m_idhash = m_idHelperSvc->moduleHash(id);
166  m_detectorElIdhash = m_idHelperSvc->detElementHash(id);
167  }

◆ setIndexOfREinMuonStation()

void MuonGM::MuonReadoutElement::setIndexOfREinMuonStation ( )
privateinherited

Definition at line 104 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

104  {
105  PVConstLink par = parentStationPV();
106  if (par == PVConstLink(nullptr)) {
107  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" No parent station found for "<<m_idHelperSvc->toStringDetEl(identify()));
108  throw std::runtime_error("Parent station is a nullptr");
109  }
110  Query<unsigned int> c = par->indexOf(getMaterialGeom());
111  if (c.isValid()) {
113  } else
115  }

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

◆ setLongRsize()

void MuonGM::MuonReadoutElement::setLongRsize ( double  v)
inherited

◆ setLongSsize()

void MuonGM::MuonReadoutElement::setLongSsize ( double  v)
inherited

◆ setLongZsize()

void MuonGM::MuonReadoutElement::setLongZsize ( double  v)
inherited

◆ setParentMuonStation()

void MuonGM::MuonReadoutElement::setParentMuonStation ( const MuonStation mstat)
inherited

Definition at line 128 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

128  {
129  m_parentMuonStation = mstat;
130  if (mstat->getPhysVol()) {
131  setParentStationPV(mstat->getPhysVol());
132  }
133  }

◆ setParentStationPV() [1/2]

void MuonGM::MuonReadoutElement::setParentStationPV ( )
inherited

Definition at line 77 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

77  {
78  if (m_parentStationPV) return;
79 
80  std::string::size_type npos;
81  PVConstLink pStat = PVConstLink(nullptr);
82  PVConstLink myphysvol(getMaterialGeom());
83 
84  std::string name = (myphysvol->getLogVol())->getName();
85  if ((npos = name.find("Station")) != std::string::npos) {
86  pStat = myphysvol;
87  } else {
88  for (unsigned int k = 0; k < 10; k++) {
89  pStat = myphysvol->getParent();
90  if (pStat == PVConstLink(nullptr)) break;
91  name = (pStat->getLogVol())->getName();
92  if ((npos = name.find("Station")) != std::string::npos) { break; }
93  myphysvol = pStat;
94  }
95  }
96  m_parentStationPV = pStat;
98  }

◆ setParentStationPV() [2/2]

void MuonGM::MuonReadoutElement::setParentStationPV ( const PVConstLink &  x)
inherited

◆ setPlaneZ()

void MuonGM::TgcReadoutElement::setPlaneZ ( double  value,
int  gasGap 
)

Set the local Z coordinate of the i-th gasGap [1-3].

Definition at line 40 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

40 { m_gasPlaneZ[gasGap - 1] = value; }

◆ setReadOutName()

void MuonGM::TgcReadoutElement::setReadOutName ( const std::string &  rName)

◆ setReadOutParams()

void MuonGM::TgcReadoutElement::setReadOutParams ( GeoModel::TransientConstSharedPtr< TgcReadoutParams pars)

Definition at line 42 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

42  {
43  m_readoutParams = std::move(pars);
44  }

◆ setRsize()

void MuonGM::MuonReadoutElement::setRsize ( double  v)
inherited

◆ setSsize()

void MuonGM::MuonReadoutElement::setSsize ( double  v)
inherited

◆ setStationName()

void MuonGM::MuonReadoutElement::setStationName ( const std::string &  str)
inherited

◆ setStationS()

void MuonGM::MuonReadoutElement::setStationS ( double  v)
inherited

◆ setTechnologyName()

void MuonGM::MuonReadoutElement::setTechnologyName ( const std::string &  str)
inherited

◆ setZsize()

void MuonGM::MuonReadoutElement::setZsize ( double  v)
inherited

◆ sideA()

bool MuonGM::MuonReadoutElement::sideA ( ) const
inlineinherited

◆ sideC()

bool MuonGM::MuonReadoutElement::sideC ( ) const
inlineinherited

◆ smallSector()

bool MuonGM::MuonReadoutElement::smallSector ( ) const
inherited

Definition at line 67 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

67  {
68  // this doesn't apply to TGC
69  return (!largeSector());
70  }

◆ spacePointPosition() [1/2]

bool MuonGM::TgcReadoutElement::spacePointPosition ( const Identifier phiId,
const Identifier etaId,
Amg::Vector2D pos 
) const
overridevirtual

space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in the reference frame of the phi projection.

If one of the identifiers is outside the valid range, the function will return false

Implements MuonGM::MuonClusterReadoutElement.

Definition at line 332 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

332  {
334  if (!spacePointPosition(phiId, etaId, gpos) ||
335  !surface(phiId).globalToLocal(gpos, gpos, pos)) {
336  ATH_MSG_WARNING( " stripPosition:: globalToLocal failed " << Amg::toString(surface(phiId).transform().inverse() * gpos,2));
337  return false;
338  }
339  return true;
340  }

◆ spacePointPosition() [2/2]

bool MuonGM::TgcReadoutElement::spacePointPosition ( const Identifier phiId,
const Identifier etaId,
Amg::Vector3D pos 
) const
overridevirtual

Global space point position for a given pair of phi and eta identifiers If one of the identifiers is outside the valid range, the function will return false.

Implements MuonGM::MuonClusterReadoutElement.

Definition at line 341 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

341  {
342  // get orientation angle of strip to rotate back from local frame to strip
343  if (nStrips(m_idHelper.gasGap(phiId)) <= 1) {
344  ATH_MSG_VERBOSE("No strips defined for plane "<<idHelperSvc()->toString(phiId));
346  return false;
347  }
348  pos = transform(phiId) * localSpacePoint(phiId, channelPos(etaId), channelPos(phiId));
349  return true;
350  }

◆ stripCenterLocX()

double MuonGM::TgcReadoutElement::stripCenterLocX ( int  gasGap,
int  strip,
double  radialPos 
) const

Returns the local X of the strip center at a given local radial position.

Definition at line 123 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

123  {
124 #ifndef NDEBUG
125  if (!validStrip(gasGap, strip)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & strip "<<strip<<" given.");
126 #endif
127  const auto [flip, pickStrip] = stripNumberToFetch(gasGap, strip);
128  return flip * stripLocalX(pickStrip, z, m_readoutParams->stripCenter(pickStrip));
129  }

◆ stripDeltaPhi() [1/2]

double MuonGM::TgcReadoutElement::stripDeltaPhi ( ) const

Definition at line 99 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

99  {
100  // number of strips in exclusive phi coverage of a chamber in T[1-3] and T4
101  constexpr std::array<double, 4> nDivInChamberPhi{29.5, 29.5, 29.5, 31.5};
102  double dphi{0.};
103 
104  int iStation = CxxUtils::atoi(&getStationType()[1]);
105  if (iStation != 4 || getStationType()[2] != 'E') { // except for station T4E
106  dphi = 360. * CLHEP::degree / (nPhiChambers()) / nDivInChamberPhi[iStation - 1];
107  } else { // T4E
108  dphi = 360. * CLHEP::degree / 36. / nDivInChamberPhi[iStation - 1];
109  }
110  return dphi;
111  }

◆ stripDeltaPhi() [2/2]

double MuonGM::TgcReadoutElement::stripDeltaPhi ( int  gasGap,
int  strip 
) const

Definition at line 113 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

113  {
114  double dphi = stripDeltaPhi();
115  // half strip
116  if ((strip >= 31 && ((getStationEta() > 0 && gasGap == 1) || (getStationEta() < 0 && gasGap != 1))) ||
117  (strip <= 2 && ((getStationEta() > 0 && gasGap != 1) || (getStationEta() < 0 && gasGap == 1))))
118  dphi = dphi / 2.;
119 
120  return dphi;
121  }

◆ stripDir() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::stripDir ( const Identifier id) const

◆ stripDir() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::stripDir ( int  gasGap,
int  strip 
) const

Returns the direction of a strip.

◆ stripHighEdgeLocX()

double MuonGM::TgcReadoutElement::stripHighEdgeLocX ( int  gasGap,
int  strip,
double  radialPos 
) const

Returns the local X of the right edge of the strip at a given local radial position.

Definition at line 138 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

138  {
139 #ifndef NDEBUG
140  if (!validStrip(gasGap, strip)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & strip "<<strip<<" given.");
141 #endif
142  const auto [flip, pickStrip] = stripNumberToFetch(gasGap, strip+1);
143  return flip * stripLocalX(pickStrip, z, 0.5*(stripPosOnLargeBase(pickStrip) + stripPosOnShortBase(pickStrip)));
144  }

◆ stripLength()

double MuonGM::TgcReadoutElement::stripLength ( ) const

Returns the length of each strip which is equal to the height of the chamber.

◆ stripLocalX()

double MuonGM::TgcReadoutElement::stripLocalX ( const int  stripNum,
const double  locY,
const double  refPoint 
) const
private

Returns the local X given the reference point E.g.

left edge, center, an external position along the radial coordinate [-R/2; R/2], and the strip number

◆ stripLongWidth()

double MuonGM::TgcReadoutElement::stripLongWidth ( int  gasGap,
int  strip 
) const

Definition at line 162 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

162  {
163  // projection of strip on local X axis at max(Z)
164 #ifndef NDEBUG
165  if (!validStrip(gasGap, strip)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & strip "<<strip<<" given.");
166 #endif
167 
168  if ((getStationEta() > 0 && gasGap == 1) || (getStationEta() < 0 && gasGap != 1)) {
169  return stripPosOnLargeBase(strip + 1) - stripPosOnLargeBase(strip);
170  } else {
171  return -(stripPosOnLargeBase(33 - strip) - stripPosOnLargeBase(33 - (strip - 1)));
172  }
173  }

◆ stripLowEdgeLocX()

double MuonGM::TgcReadoutElement::stripLowEdgeLocX ( int  gasGap,
int  strip,
double  radialPos 
) const

Returns the local X of the left edge of the strip at a given local radial position.

Definition at line 130 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

130  {
131 #ifndef NDEBUG
132  if (!validStrip(gasGap, strip)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & wire strip "<<strip<<" given.");
133 #endif
134  const auto [flip, pickStrip] = stripNumberToFetch(gasGap, strip-1);
135  return flip * stripLocalX(pickStrip, z, 0.5*(stripPosOnLargeBase(pickStrip) + stripPosOnShortBase(pickStrip)));
136  }

◆ stripNumber()

int MuonGM::TgcReadoutElement::stripNumber ( const Amg::Vector2D pos,
const Identifier id 
) const
finaloverridevirtual

strip number corresponding to local position.

If the local position is outside the active volume, the function first shift the position back into the active volume

Implements MuonGM::MuonClusterReadoutElement.

Definition at line 302 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

302  {
303  THROW_EXCEPT("stripNumber() -- method not implemented");
304  return 0. ;
305  }

◆ stripNumberToFetch()

std::pair<double, int> MuonGM::TgcReadoutElement::stripNumberToFetch ( int  gasGap,
int  inStrip 
) const
private

Returns whether a strip needs to be flipped and the final strip number parsed to the TgcReadoutParams to fetch its absolute position.

◆ stripPitch() [1/2]

double MuonGM::TgcReadoutElement::stripPitch ( int  gasGap,
int  strip 
) const

Returns the pitch of the given strip in gasGap i.

Definition at line 176 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

176  {
177  return stripPitch(gasGap, strip, 0.);
178  }

◆ stripPitch() [2/2]

double MuonGM::TgcReadoutElement::stripPitch ( int  gasGap,
int  strip,
double  radialPos 
) const

Returns the pitch of the given strip in gasGap i evaluated at a local positiion along the strip.

< strip pitch depending on local z position (R in global coordinate)

Definition at line 180 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

180  {
182  #ifndef NDEBUG
183  if (!validStrip(gasGap, strip)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & strip "<<strip<<" given.");
184  #endif
185  if (1 < strip && strip < 32) {
186  double stripCurrCen = stripCenterLocX(gasGap, strip, z);
187  double stripNextCen = stripCenterLocX(gasGap, strip + 1, z);
188  double stripPrevCen = stripCenterLocX(gasGap, strip - 1, z);
189  return std::max(stripNextCen - stripCurrCen , stripCurrCen - stripPrevCen);
190  } else if (strip == 1) {
191  return stripCenterLocX(gasGap, strip + 1, z) - stripCenterLocX(gasGap, strip, z);
192  } else if (strip == 32) {
193  return stripCenterLocX(gasGap, strip, z) - stripCenterLocX(gasGap, strip - 1, z);
194  }
195  return 0.;
196  }

◆ stripPos() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::stripPos ( const Identifier id) const

◆ stripPos() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::stripPos ( int  gasGap,
int  strip 
) const

Returns the global position of a strip.

◆ stripPosition()

bool MuonGM::TgcReadoutElement::stripPosition ( const Identifier id,
Amg::Vector2D pos 
) const
overridevirtual

strip position If the strip number is outside the range of valid strips, the function will return false

please don't copy the inefficient code below!! Look at the RpcReadoutElement for a proper implementation

Implements MuonGM::MuonClusterReadoutElement.

Definition at line 306 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

306  {
308  Amg::Vector3D gpos = channelPos(id);
309  if (!surface(id).globalToLocal(gpos, gpos, pos)) {
310  ATH_MSG_WARNING( " stripPosition:: globalToLocal failed " <<Amg::toString(surface(id).transform().inverse() * gpos,2));
311  return false;
312  }
313  return true;
314  }

◆ stripPosOnLargeBase()

double MuonGM::TgcReadoutElement::stripPosOnLargeBase ( int  strip) const

◆ stripPosOnShortBase()

double MuonGM::TgcReadoutElement::stripPosOnShortBase ( int  strip) const

◆ stripShortWidth()

double MuonGM::TgcReadoutElement::stripShortWidth ( int  gasGap,
int  strip 
) const

Definition at line 150 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

150  {
151  // projection of strip on local X axis at min(Z)
152 #ifndef NDEBUG
153  if (!validStrip(gasGap, strip)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & strip "<<strip<<" given.");
154 #endif
155  if ((getStationEta() > 0 && gasGap == 1) || (getStationEta() < 0 && gasGap != 1)) {
156  return stripPosOnShortBase(strip + 1) - stripPosOnShortBase(strip);
157  } else {
158  return -(stripPosOnShortBase(33 - strip) - stripPosOnShortBase(33 - (strip - 1)));
159  }
160  }

◆ stripWidth()

double MuonGM::TgcReadoutElement::stripWidth ( int  gasGap,
int  strip 
) const

Returns the width of a given strip in the gasGap i.

< stripWidth depends on global R (almost pointing geometry+trapezoidal strips); returns the width at the center of the plane

Definition at line 146 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

146  {
148  return std::abs(stripShortWidth(gasGap, strip) + stripLongWidth(gasGap, strip)) / 2.;
149  }

◆ surface() [1/3]

const Trk::PlaneSurface & MuonGM::MuonClusterReadoutElement::surface ( ) const
inlineoverridevirtualinherited

access to chamber surface (phi orientation), uses the first gas gap

Implements Trk::TrkDetElementBase.

Definition at line 123 of file MuonClusterReadoutElement.h.

123 { return surface(0); }

◆ surface() [2/3]

const Trk::PlaneSurface & MuonGM::MuonClusterReadoutElement::surface ( const Identifier id) const
inlineoverridevirtualinherited

access to layer surfaces

Implements Trk::TrkDetElementBase.

Definition at line 129 of file MuonClusterReadoutElement.h.

129 { return surface(surfaceHash(id)); }

◆ surface() [3/3]

const Trk::PlaneSurface & MuonGM::MuonClusterReadoutElement::surface ( int  surfHash) const
inlineinherited

access to layer surfaces

Definition at line 135 of file MuonClusterReadoutElement.h.

135  {
136  if (!m_surfaceData) {
137  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<" Requesting surface but cache is empty");
138  throw std::runtime_error("Empty surface cache");
139  }
140  if (hash == -1 || hash >= (int)m_surfaceData->m_layerSurfaces.size()) {
141  ATH_MSG_WARNING(" surface hash out of range: " << hash << " elements "
142  << m_surfaceData->m_layerSurfaces.size());
143  return *m_surfaceData->m_layerSurfaces.front();
144  }
145  return *m_surfaceData->m_layerSurfaces[hash];
146  }

◆ surfaceHash() [1/2]

virtual int MuonGM::TgcReadoutElement::surfaceHash ( const Identifier id) const
overridevirtual

returns the hash function to be used to look up the surface and surface transform for a given identifier

Implements MuonGM::MuonClusterReadoutElement.

◆ surfaceHash() [2/2]

static int MuonGM::TgcReadoutElement::surfaceHash ( int  GasGap,
bool  isStrip 
)
staticprivate

◆ surfaces()

std::vector< const Trk::Surface * > MuonGM::MuonClusterReadoutElement::surfaces ( ) const
inlinevirtualinherited

returns all the surfaces contained in this detector element

Definition at line 197 of file MuonClusterReadoutElement.h.

197  {
198  std::vector<const Trk::Surface*> elementSurfaces;
199 
200  // create when first time requested and when possible
201  if (m_surfaceData) {
202  elementSurfaces.reserve(m_surfaceData->m_layerSurfaces.size());
203  for (const std::unique_ptr<Trk::PlaneSurface>& ptr : m_surfaceData->m_layerSurfaces) {
204  elementSurfaces.emplace_back(ptr.get());
205  }
206  }
207  // return the element surfaces
208  return elementSurfaces;
209  }

◆ toParentStation()

Amg::Transform3D MuonGM::MuonReadoutElement::toParentStation ( ) const
inherited

Definition at line 117 of file MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx.

117  {
118  PVConstLink par = parentStationPV();
119  if (par == PVConstLink(nullptr)) {
120  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" No parent station found for "<<m_idHelperSvc->toStringDetEl(identify()));
121  throw std::runtime_error("Parent station is a nullptr");
122  }
123 
124  if (m_indexOfREinMuonStation >= 0) return par->getXToChildVol((unsigned int)m_indexOfREinMuonStation);
125  return GeoTrf::Transform3D::Identity();
126  }

◆ transform() [1/3]

const Amg::Transform3D & MuonGM::MuonClusterReadoutElement::transform ( ) const
inlineoverridevirtualinherited

Return local to global transform.

Implements Trk::TrkDetElementBase.

Definition at line 124 of file MuonClusterReadoutElement.h.

124 { return transform(0); }

◆ transform() [2/3]

const Amg::Transform3D & MuonGM::MuonClusterReadoutElement::transform ( const Identifier id) const
inlineoverridevirtualinherited

Return local to global transform associated with this identifier.

Implements Trk::TrkDetElementBase.

Definition at line 130 of file MuonClusterReadoutElement.h.

130 { return transform(surfaceHash(id)); }

◆ transform() [3/3]

const Amg::Transform3D & MuonGM::MuonClusterReadoutElement::transform ( int  surfHash) const
inlineinherited

Definition at line 148 of file MuonClusterReadoutElement.h.

148  {
149  if (!m_surfaceData) {
150  ATH_MSG_FATAL(__FILE__<<":"<<__LINE__<<" "<<__func__<<" Requesting transform but cache is empty");
151  throw std::runtime_error("Empty transform cache");
152  }
153  if (hash == -1 || hash >= (int)m_surfaceData->m_layerTransforms.size()) {
154  ATH_MSG_WARNING("transform hash out of range: " << hash << " elements "
155  << m_surfaceData->m_layerTransforms.size());
156  return m_surfaceData->m_layerTransforms.front();
157  }
158  return m_surfaceData->m_layerTransforms[hash];
159  }

◆ validGang()

bool MuonGM::TgcReadoutElement::validGang ( int  gasGap,
int  wireGang 
) const

Returns whether the wire gang in the given gasgap is within the allowed range.

Definition at line 230 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

230  {
231  return validGap(gasGap) && (1 <= gang && gang <= (nWireGangs(gasGap) + 1));
232  }

◆ validGap()

bool MuonGM::TgcReadoutElement::validGap ( int  gasGap) const

Returns whether the gasGap is within the allowed range [1-nGasGaps()].

Definition at line 222 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

222  {
223  bool isValid = (1 <= gasGap && gasGap <= nGasGaps());
224  if (!isValid) {
225  ATH_MSG_WARNING( " gas gap is out of range; limits are 1-" << nGasGaps() );
226  }
227  return isValid;
228  }

◆ validStrip()

bool MuonGM::TgcReadoutElement::validStrip ( int  gasGap,
int  strip 
) const

Returns whether the strip in the given gasgap is within the allowed range

Definition at line 234 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

234  {
235  return validGap(gasGap) && (1 <= strip && strip <= nStrips(gasGap));
236  }

◆ wireGangBottomX()

double MuonGM::TgcReadoutElement::wireGangBottomX ( int  gasGap,
int  gangNum 
) const
private

Returns the local X of the bottom wire in the wireGang i in gasGap j.

Definition at line 56 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

56  {
57 #ifndef NDEBUG
58  if (!validGang(gasGap, gang)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & wire gang "<<gang<<" given.");
59 #endif
60  return wireGangLocalX(gasGap, gang) - 0.5* gangRadialLength(gasGap, gang);
61  }

◆ wireGangLocalX()

double MuonGM::TgcReadoutElement::wireGangLocalX ( const int  gasGap,
const int  gangNum 
) const
private

Returns the local X of the wire gang in gasGap i

◆ wireGangPos() [1/2]

Amg::Vector3D MuonGM::TgcReadoutElement::wireGangPos ( const Identifier id) const

Returns the global position of a wireGang.

◆ wireGangPos() [2/2]

Amg::Vector3D MuonGM::TgcReadoutElement::wireGangPos ( int  gasGap,
int  gang 
) const

◆ wireGangTopX()

double MuonGM::TgcReadoutElement::wireGangTopX ( int  gasGap,
int  gangNum 
) const
private

Returns the local X of the top wire in the wireGang i in gasGap j.

Definition at line 63 of file MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx.

63  {
64 #ifndef NDEBUG
65  if (!validGang(gasGap, gang)) THROW_EXCEPT("Invalid gasGap "<<gasGap<<" & wire gang "<<gang<<" given.");
66 #endif
67  return wireGangLocalX(gasGap, gang) + 0.5 * gangRadialLength(gasGap, gang);
68  }

◆ wireLength()

double MuonGM::TgcReadoutElement::wireLength ( int  wire) const

Returns the length of a wire.

The wire numbering is following scheme where the 1st wire coincides with the bottom edge of the readout element

◆ wirePitch()

double MuonGM::TgcReadoutElement::wirePitch ( ) const

Returns the pitch of the wires.

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_caching

int MuonGM::MuonReadoutElement::m_caching {-1}
protectedinherited

0 if we want to avoid caching geometry info for tracking interface

Definition at line 156 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_detectorElIdhash

IdentifierHash MuonGM::MuonReadoutElement::m_detectorElIdhash {0}
privateinherited

detector element hash identifier

Definition at line 167 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_eta

int MuonGM::MuonReadoutElement::m_eta {-1}
privateinherited

Identifier field of the station eta.

Definition at line 175 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_frameAB

double MuonGM::TgcReadoutElement::m_frameAB {0.}
private

◆ m_frameH

double MuonGM::TgcReadoutElement::m_frameH {0.}
private

◆ m_gasPlaneZ

std::array<double, s_maxGasGap> MuonGM::TgcReadoutElement::m_gasPlaneZ {make_array<double, s_maxGasGap>(-9999.)}
private

◆ m_hasCutouts

bool MuonGM::MuonReadoutElement::m_hasCutouts {false}
protectedinherited

true is there are cutouts in the readdout-element

Definition at line 158 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_id

Identifier MuonGM::MuonReadoutElement::m_id {0}
privateinherited

extended data-collection identifier

Definition at line 165 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_idhash

IdentifierHash MuonGM::MuonReadoutElement::m_idhash {0}
privateinherited

data-collection hash identifier

Definition at line 166 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_idHelper

const TgcIdHelper& MuonGM::TgcReadoutElement::m_idHelper {idHelperSvc()->tgcIdHelper()}
private

◆ m_idHelperSvc

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

◆ m_imsg

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

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_indexOfREinMuonStation

int MuonGM::MuonReadoutElement::m_indexOfREinMuonStation {-999}
privateinherited

index of this RE in the mother MuonStation

Definition at line 169 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_locMaxPhi

double MuonGM::TgcReadoutElement::m_locMaxPhi {0.}
private

◆ m_locMinPhi

double MuonGM::TgcReadoutElement::m_locMinPhi {0.}
private

◆ m_LongRsize

double MuonGM::MuonReadoutElement::m_LongRsize {-9999.}
protectedinherited

◆ m_LongSsize

double MuonGM::MuonReadoutElement::m_LongSsize {-9999.}
protectedinherited

◆ m_LongZsize

double MuonGM::MuonReadoutElement::m_LongZsize {-9999.}
protectedinherited

size in the specified direction

Definition at line 148 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_lvl

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

Current logging level.

Definition at line 138 of file AthMessaging.h.

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

MuonDetectorManager* MuonGM::MuonReadoutElement::m_muon_mgr {nullptr}
privateinherited

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_parentMuonStation

const MuonStation* MuonGM::MuonReadoutElement::m_parentMuonStation {nullptr}
privateinherited

◆ m_parentStationPV

PVConstLink MuonGM::MuonReadoutElement::m_parentStationPV {nullptr}
privateinherited

◆ m_phi

int MuonGM::MuonReadoutElement::m_phi {-1}
privateinherited

Identifier field of the station phi.

Definition at line 177 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_readout_name

std::string MuonGM::TgcReadoutElement::m_readout_name {}
private

◆ m_readoutParams

GeoModel::TransientConstSharedPtr<TgcReadoutParams> MuonGM::TgcReadoutElement::m_readoutParams {nullptr}
private

◆ m_Rsize

double MuonGM::MuonReadoutElement::m_Rsize {-9999.}
protectedinherited

◆ m_Ssize

double MuonGM::MuonReadoutElement::m_Ssize {-9999.}
protectedinherited

◆ m_stationS

double MuonGM::MuonReadoutElement::m_stationS {0.}
privateinherited

◆ m_statname

std::string MuonGM::MuonReadoutElement::m_statname {"XXX0"}
protectedinherited

examples are BMS5, CSS1, EML1

Definition at line 154 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_stIdx

int MuonGM::MuonReadoutElement::m_stIdx {-1}
privateinherited

Identifier field of the station index.

Definition at line 173 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_stIdxT4E

int MuonGM::TgcReadoutElement::m_stIdxT4E {m_idHelper.stationNameIndex("T4E")}
private

◆ m_stripSlope

double MuonGM::TgcReadoutElement::m_stripSlope {0.}
private

Cache of the function call 1.

/ (getRsize() - 2. * physicalDistanceFromBase()) which is the active height of the readout element

Definition at line 282 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h.

◆ m_surfaceData

std::unique_ptr<SurfaceData> MuonGM::MuonClusterReadoutElement::m_surfaceData {}
protectedinherited

Definition at line 120 of file MuonClusterReadoutElement.h.

◆ m_techname

std::string MuonGM::MuonReadoutElement::m_techname {"TTT0"}
protectedinherited

MDT or RPC or TGC or CSC plus a two digits subtype; example RPC17.

Definition at line 152 of file MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h.

◆ m_type

Trk::DetectorElemType MuonGM::MuonReadoutElement::m_type {Trk::DetectorElemType::SolidState}
privateinherited

◆ m_Zsize

double MuonGM::MuonReadoutElement::m_Zsize {-9999.}
protectedinherited

◆ s_maxGasGap

constexpr int MuonGM::TgcReadoutElement::s_maxGasGap {3}
staticconstexprprivate

The documentation for this class was generated from the following files:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
MuonGM::TgcReadoutElement::physicalDistanceFromBase
double physicalDistanceFromBase() const
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
MuonGM::TgcReadoutElement::stripPosOnShortBase
double stripPosOnShortBase(int strip) const
MuonGM::TgcReadoutElement::m_readout_name
std::string m_readout_name
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:278
MuonGM::MuonClusterReadoutElement::transform
virtual const Amg::Transform3D & transform() const override
Return local to global transform.
Definition: MuonClusterReadoutElement.h:124
MuonGM::TgcReadoutElement::m_idHelper
const TgcIdHelper & m_idHelper
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:273
MuonGM::TgcReadoutElement::m_frameAB
double m_frameAB
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:289
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
MuonGM::MuonReadoutElement::AmdbLRSToGlobalTransform
virtual Amg::Transform3D AmdbLRSToGlobalTransform() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:145
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
MuonGM::TgcReadoutElement::localStripDir
Amg::Vector3D localStripDir(int gasGap, int strip) const
Returns the local strip direction of a strip.
MuonGM::MuonReadoutElement::m_statname
std::string m_statname
examples are BMS5, CSS1, EML1
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:154
MuonGM::MuonReadoutElement::absTransform
const Amg::Transform3D & absTransform() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:210
MuonGM::MuonReadoutElement::m_id
Identifier m_id
extended data-collection identifier
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:165
max
#define max(a, b)
Definition: cfImp.cxx:41
MuonGM::TgcReadoutElement::chamberWidth
double chamberWidth(double z) const
MuonGM::MuonReadoutElement::m_techname
std::string m_techname
MDT or RPC or TGC or CSC plus a two digits subtype; example RPC17.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:152
MuonGM::TgcReadoutElement::spacePointPosition
virtual bool spacePointPosition(const Identifier &phiId, const Identifier &etaId, Amg::Vector2D &pos) const override
space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in th...
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:332
MuonGM::MuonReadoutElement::m_Zsize
double m_Zsize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:145
MuonGM::MuonClusterReadoutElement::MuonClusterReadoutElement
MuonClusterReadoutElement(GeoVFullPhysVol *pv, MuonDetectorManager *mgr, Trk::DetectorElemType detType)
Definition: MuonClusterReadoutElement.cxx:8
MuonGM::MuonClusterReadoutElement::normal
virtual const Amg::Vector3D & normal() const override
Return the normal of the element.
Definition: MuonClusterReadoutElement.h:126
MuonGM::MuonReadoutElement::m_LongRsize
double m_LongRsize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:147
MuonGM::MuonReadoutElement::m_eta
int m_eta
Identifier field of the station eta.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:175
TgcIdHelper::gasGap
int gasGap(const Identifier &id) const override
get the hashes
Definition: TgcIdHelper.cxx:642
MuonGM::MuonReadoutElement::m_detectorElIdhash
IdentifierHash m_detectorElIdhash
detector element hash identifier
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:167
MuonGM::TgcReadoutElement::stripHighEdgeLocX
double stripHighEdgeLocX(int gasGap, int strip, double radialPos) const
Returns the local X of the right edge of the strip at a given local radial position.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:138
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
MuonGM::MuonClusterReadoutElement::center
virtual const Amg::Vector3D & center() const override
Return the center of the element.
Definition: MuonClusterReadoutElement.h:125
MuonGM::MuonReadoutElement::fillCache
virtual void fillCache()=0
MuonGM::TgcReadoutElement::m_locMaxPhi
double m_locMaxPhi
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:284
Trk::DetectorElemType::Tgc
@ Tgc
Trk::DetectorElemType::TRT
@ TRT
MuonGM::TgcReadoutElement::stripDeltaPhi
double stripDeltaPhi() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:99
MuonGM::MuonReadoutElement::largeSector
bool largeSector() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:49
MuonGM::MuonReadoutElement::GlobalToAmdbLRSTransform
virtual Amg::Transform3D GlobalToAmdbLRSTransform() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:153
MuonGM::MuonStation::getTransform
Amg::Transform3D getTransform() const
Definition: MuonStation.h:169
MuonGM::TgcReadoutElement::nPhiChambers
int nPhiChambers() const
MuonGM::MuonReadoutElement::m_Ssize
double m_Ssize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:143
MuonGM::TgcReadoutElement::stripCenterLocX
double stripCenterLocX(int gasGap, int strip, double radialPos) const
Returns the local X of the strip center at a given local radial position.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:123
MuonGM::TgcReadoutElement::validGap
bool validGap(int gasGap) const
Returns whether the gasGap is within the allowed range [1-nGasGaps()].
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:222
M_PI
#define M_PI
Definition: ActiveFraction.h:11
MuonGM::TgcReadoutElement::wireGangBottomX
double wireGangBottomX(int gasGap, int gangNum) const
Returns the local X of the bottom wire in the wireGang i in gasGap j.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:56
MuonGM::MuonReadoutElement::setParentStationPV
void setParentStationPV()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:77
athena.value
value
Definition: athena.py:122
MuonGM::MuonReadoutElement::m_parentMuonStation
const MuonStation * m_parentMuonStation
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:180
MuonGM::MuonReadoutElement::m_type
Trk::DetectorElemType m_type
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:164
MuonGM::MuonReadoutElement::m_stationS
double m_stationS
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:171
MuonGM::TgcReadoutElement::m_stripSlope
double m_stripSlope
Cache of the function call 1.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:282
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:214
MuonGM::MuonReadoutElement::getLongSsize
double getLongSsize() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:199
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
x
#define x
MuonGM::MuonClusterReadoutElement::boundaryHash
virtual int boundaryHash(const Identifier &id) const =0
returns the hash function to be used to look up the surface boundary for a given identifier
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
MuonGM::MuonClusterReadoutElement::surface
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
Definition: MuonClusterReadoutElement.h:123
MuonGM::MuonReadoutElement::setIndexOfREinMuonStation
void setIndexOfREinMuonStation()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:104
MuonGM::TgcReadoutElement::stripLowEdgeLocX
double stripLowEdgeLocX(int gasGap, int strip, double radialPos) const
Returns the local X of the left edge of the strip at a given local radial position.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:130
MuonGM::TgcReadoutElement::nGasGaps
int nGasGaps() const
Returns the number of gas gaps associated with the readout element (2 or 3)
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
keylayer_zslicemap.strip
strip
Definition: keylayer_zslicemap.py:151
Trk::DetectorElemType::Csc
@ Csc
Trk::TrkDetElementBase::detectorType
virtual DetectorElemType detectorType() const =0
Return the Detector element type.
MuonGM::TgcReadoutElement::channelPos
Amg::Vector3D channelPos(const Identifier &id) const
Returns the position of the active channel (wireGang or strip)
Amg::getRotateZ3D
Amg::Transform3D getRotateZ3D(double angle)
get a rotation transformation around Z-axis
Definition: GeoPrimitivesHelpers.h:270
MuonGM::MuonReadoutElement::m_phi
int m_phi
Identifier field of the station phi.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:177
TgcIdHelper::channel
int channel(const Identifier &id) const override
Definition: TgcIdHelper.cxx:649
MuonGM::MuonReadoutElement::idHelperSvc
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:136
MuonGM::MuonReadoutElement::getSsize
double getSsize() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:196
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
python.compareNtuple.rName
rName
Definition: compareNtuple.py:22
Trk::DetectorElemType::Silicon
@ Silicon
MuonGM::MuonClusterReadoutElement::m_surfaceData
std::unique_ptr< SurfaceData > m_surfaceData
Definition: MuonClusterReadoutElement.h:120
MuonGM::TgcReadoutElement::wireGangTopX
double wireGangTopX(int gasGap, int gangNum) const
Returns the local X of the top wire in the wireGang i in gasGap j.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:63
THROW_EXCEPT
#define THROW_EXCEPT(MESSAGE)
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:24
MuonGM::TgcReadoutElement::stripNumberToFetch
std::pair< double, int > stripNumberToFetch(int gasGap, int inStrip) const
Returns whether a strip needs to be flipped and the final strip number parsed to the TgcReadoutParams...
MuonGM::MuonReadoutElement::clearCache
virtual void clearCache()=0
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
Trk::DetectorElemType::SolidState
@ SolidState
z
#define z
MuonGM::MuonReadoutElement::m_Rsize
double m_Rsize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:144
MuonGM::TgcReadoutElement::m_gasPlaneZ
std::array< double, s_maxGasGap > m_gasPlaneZ
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:276
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
MuonGM::TgcReadoutElement::localGasGapPos
Amg::Vector3D localGasGapPos(int gg) const
Returns the local position of the gasGap in the AMDB coordinate system.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:49
MuonGM::TgcReadoutElement::frameXwidth
double frameXwidth() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:55
MuonGM::TgcReadoutElement::nWires
int nWires(int gasGap) const
Returns the total number of wires in a given gas gap.
MuonGM::TgcReadoutElement::validStrip
bool validStrip(int gasGap, int strip) const
Returns whether the strip in the given gasgap is within the allowed range
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:234
MuonGM::MuonReadoutElement::parentMuonStation
const MuonStation * parentMuonStation() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:135
master.flag
bool flag
Definition: master.py:29
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGM::MuonReadoutElement::m_parentStationPV
PVConstLink m_parentStationPV
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:179
MuonGM::TgcReadoutElement::gangRadialLength
double gangRadialLength(int gasGap, int gang) const
Returns the length of the wire gang along the radial direction [pitch x N_{wire}^{gang}].
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:72
MuonGM::MuonStation::getNativeToAmdbLRS
const Amg::Transform3D & getNativeToAmdbLRS() const
Definition: MuonStation.h:182
MuonGM::TgcReadoutElement::localSpacePoint
Amg::Vector3D localSpacePoint(const Identifier &stripId, const Amg::Vector3D &etaHitPos, const Amg::Vector3D &phiHitPos) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:315
MuonGM::TgcReadoutElement::m_locMinPhi
double m_locMinPhi
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:283
MuonGM::MuonReadoutElement::m_hasCutouts
bool m_hasCutouts
true is there are cutouts in the readdout-element
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:158
MuonGM::TgcReadoutElement::nStrips
int nStrips(int gasGap) const
Returns the number of strips in a given gas gap.
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
MuonGM::TgcReadoutElement::validGang
bool validGang(int gasGap, int wireGang) const
Returns whether the wire gang in the given gasgap is within the allowed range.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:230
TgcIdHelper::isStrip
int isStrip(const Identifier &id) const
isStrip corresponds to measuresPhi
Definition: TgcIdHelper.cxx:645
MuonGM::TgcReadoutElement::nWireGangs
int nWireGangs(int gasGap) const
Returns the number of wire gangs (Random grouping of wires) in a given gas gap.
MuonGM::MuonReadoutElement::setStationName
void setStationName(const std::string &)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:169
MuonGM::MuonReadoutElement::m_LongSsize
double m_LongSsize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:146
MuonGM::TgcReadoutElement::m_readoutParams
GeoModel::TransientConstSharedPtr< TgcReadoutParams > m_readoutParams
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:279
Trk::DetectorElemType::sTgc
@ sTgc
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
MuonGM::TgcReadoutElement::stripLongWidth
double stripLongWidth(int, int) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:162
MuonGM::MuonClusterReadoutElement::layerHash
virtual int layerHash(const Identifier &id) const =0
returns the hash function to be used to look up the center and the normal of the tracking surface for...
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
MuonGM::TgcReadoutElement::wireGangLocalX
double wireGangLocalX(const int gasGap, const int gangNum) const
Returns the local X of the wire gang in gasGap i
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
MuonGM::TgcReadoutElement::frameZwidth
double frameZwidth() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:54
MuonGM::MuonReadoutElement::m_idhash
IdentifierHash m_idhash
data-collection hash identifier
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:166
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGM::TgcReadoutElement::wirePitch
double wirePitch() const
Returns the pitch of the wires.
MuonGM::MuonReadoutElement::m_LongZsize
double m_LongZsize
size in the specified direction
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:148
MuonGM::TgcReadoutElement::stripShortWidth
double stripShortWidth(int, int) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:150
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
MuonGM::TgcReadoutElement::stripPitch
double stripPitch(int gasGap, int strip) const
Returns the pitch of the given strip in gasGap i.
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:176
python.PyAthena.v
v
Definition: PyAthena.py:157
MuonGM::MuonReadoutElement::m_muon_mgr
MuonDetectorManager * m_muon_mgr
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:181
Trk::DetectorElemType::MM
@ MM
MuonGM::MuonReadoutElement::getRsize
double getRsize() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:197
Trk::DetectorElemType::Rpc
@ Rpc
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonGM::MuonReadoutElement::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:163
Amg::RotationMatrix3D
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Definition: GeoPrimitives.h:49
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
MuonGM::MuonReadoutElement::getStationType
std::string getStationType() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:189
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
MuonGM::MuonReadoutElement::identify
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:184
MuonGM::TgcReadoutElement::stripPosOnLargeBase
double stripPosOnLargeBase(int strip) const
MuonGM::TgcReadoutElement::length
double length() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/TgcReadoutElement.cxx:53
python.changerun.pv
pv
Definition: changerun.py:81
CxxUtils::atoi
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
Definition: Control/CxxUtils/Root/StringUtils.cxx:85
TgcIdHelper::channelID
Identifier channelID(int stationName, int stationEta, int stationPhi, int gasGap, int isStrip, int channel) const
Definition: TgcIdHelper.cxx:583
MuonGM::MuonReadoutElement::m_indexOfREinMuonStation
int m_indexOfREinMuonStation
index of this RE in the mother MuonStation
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:169
MuonGM::MuonReadoutElement::m_stIdx
int m_stIdx
Identifier field of the station index.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:173
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
MuonGM::TgcReadoutElement::stripLocalX
double stripLocalX(const int stripNum, const double locY, const double refPoint) const
Returns the local X given the reference point E.g.
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
MuonGM::MuonClusterReadoutElement::bounds
virtual const Trk::SurfaceBounds & bounds() const override
Return the boundaries of the element.
Definition: MuonClusterReadoutElement.h:127
NSWL1::globalToLocal
Polygon globalToLocal(const Polygon &pol, float z, const Trk::PlaneSurface &surf)
Definition: GeoUtils.cxx:103
python.compressB64.c
def c
Definition: compressB64.py:93
MuonGM::MuonReadoutElement::parentStationPV
PVConstLink parentStationPV() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:100
MuonGM::MuonClusterReadoutElement::surfaceHash
virtual int surfaceHash(const Identifier &id) const =0
returns the hash function to be used to look up the surface and surface transform for a given identif...
python.SystemOfUnits.degree
tuple degree
Definition: SystemOfUnits.py:106
MuonGM::MuonReadoutElement::getStationEta
int getStationEta() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:193
Trk::DetectorElemType::Mdt
@ Mdt
MuonGM::TgcReadoutElement::m_frameH
double m_frameH
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:288
fitman.k
k
Definition: fitman.py:528
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32