ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
MuonGM::MuonReadoutElement Class Referenceabstract

Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc. More...

#include <MuonReadoutElement.h>

Inheritance diagram for MuonGM::MuonReadoutElement:
Collaboration diagram for MuonGM::MuonReadoutElement:

Public Member Functions

virtual ~MuonReadoutElement ()
 
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...
 
virtual bool containsId (const Identifier &id) const =0
 
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)
 
virtual void clearCache ()=0
 
virtual void fillCache ()=0
 
void refreshCache ()
 
const Muon::IMuonIdHelperSvcidHelperSvc () const
 
Trk::DetectorElemType detectorType () const override final
 Return the Detector element type. More...
 
virtual const Amg::Transform3Dtransform () const =0
 Return local to global transform. More...
 
virtual const Amg::Transform3Dtransform (const Identifier &id) const =0
 Return local to global transform associated with this identifier. More...
 
virtual const Surfacesurface () const =0
 Return surface associated with this detector element. More...
 
virtual const Surfacesurface (const Identifier &id) const =0
 Return surface associated with this identifier, which should come from the PrepRawData object (i.e. More...
 
virtual const SurfaceBounds & bounds () const =0
 Return the boundaries of the element. More...
 
virtual const SurfaceBounds & bounds (const Identifier &id) const =0
 Return the boundaries of the surface associated with this identifier. More...
 
virtual const Amg::Vector3Dcenter () const =0
 Return the center of the element. More...
 
virtual const Amg::Vector3Dcenter (const Identifier &id) const =0
 Return the center of the surface associated with this identifier In the case of silicon it returns the same as center() More...
 
virtual const Amg::Vector3Dnormal () const =0
 Return the normal of the element. More...
 
virtual const Amg::Vector3Dnormal (const Identifier &id) const =0
 Return the normal of the surface associated with this identifier In the case of silicon it returns the same as normal() 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

 MuonReadoutElement (GeoVFullPhysVol *pv, MuonDetectorManager *mgr, Trk::DetectorElemType detType)
 
const MuonDetectorManagermanager () const
 

Protected Attributes

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

void setIndexOfREinMuonStation ()
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

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

Detailed Description

Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.

It's a Trk::TrkDetElementBase, therefore it must implement the generic tracking interfaces requested to the geometry: center, normal, surfaceBound, transform. It is synched to the raw geometry via the pointer, required by the constructor, to its corresponding GeoVFullPhysVol. A MuonReadoutElement holds a pointer to its parent MuonStation.

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

Constructor & Destructor Documentation

◆ ~MuonReadoutElement()

MuonGM::MuonReadoutElement::~MuonReadoutElement ( )
virtualdefault

◆ MuonReadoutElement()

MuonGM::MuonReadoutElement::MuonReadoutElement ( GeoVFullPhysVol *  pv,
MuonDetectorManager mgr,
Trk::DetectorElemType  detType 
)
protected

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

34  :
36  AthMessaging{to_string(detType)+"MuonReadoutElement"},
37  m_type{detType},
38  m_muon_mgr{mgr} {
39  if (!m_idHelperSvc.retrieve().isSuccess()) {
40  ATH_MSG_FATAL("Failed to retrieve the MuonIdHelperSvc");
41  throw std::runtime_error("Invalid MuonIdHelperSvc");
42  }
43  }

Member Function Documentation

◆ absTransform()

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

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
virtual

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
virtual

◆ bounds() [1/2]

virtual const SurfaceBounds& Trk::TrkDetElementBase::bounds ( ) const
pure virtualinherited

◆ bounds() [2/2]

virtual const SurfaceBounds& Trk::TrkDetElementBase::bounds ( const Identifier id) const
pure virtualinherited

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()

Implemented in MuonGM::MdtReadoutElement, InDetDD::TRT_BaseElement, MuonGM::MuonClusterReadoutElement, and InDetDD::SolidStateDetectorElementBase.

◆ center() [1/2]

virtual const Amg::Vector3D& Trk::TrkDetElementBase::center ( ) const
pure virtualinherited

◆ center() [2/2]

virtual const Amg::Vector3D& Trk::TrkDetElementBase::center ( const Identifier id) const
pure virtualinherited

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

Implemented in InDetDD::TRT_BaseElement, MuonGM::MuonClusterReadoutElement, InDetDD::SolidStateDetectorElementBase, and MuonGM::MdtReadoutElement.

◆ clearCache()

virtual void MuonGM::MuonReadoutElement::clearCache ( )
pure virtual

◆ containsId()

virtual bool MuonGM::MuonReadoutElement::containsId ( const Identifier id) const
pure virtual

◆ defTransform()

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

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

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

◆ detectorElementHash()

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

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
inlinefinaloverridevirtual

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 }

◆ fillCache()

virtual void MuonGM::MuonReadoutElement::fillCache ( )
pure virtual

◆ getIndexOfREinMuonStation()

int MuonGM::MuonReadoutElement::getIndexOfREinMuonStation ( ) const

◆ getLongRsize()

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

◆ getLongSsize()

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

◆ getLongZsize()

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

◆ getRsize()

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

◆ getSsize()

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

◆ getStationEta()

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

◆ getStationIndex()

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

◆ getStationName()

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

◆ getStationPhi()

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

◆ getStationS()

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

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
inline

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
inline

◆ getTechnologyType()

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

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

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

◆ getZsize()

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

◆ globalPosition()

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

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
virtual

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
virtual

◆ hasCutouts()

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

◆ identify()

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

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
inlinefinaloverridevirtual

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
inline

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

◆ largeSector()

bool MuonGM::MuonReadoutElement::largeSector ( ) const

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  }

◆ manager()

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

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

◆ normal() [1/2]

virtual const Amg::Vector3D& Trk::TrkDetElementBase::normal ( ) const
pure virtualinherited

◆ normal() [2/2]

virtual const Amg::Vector3D& Trk::TrkDetElementBase::normal ( const Identifier id) const
pure virtualinherited

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

Implemented in InDetDD::TRT_BaseElement, MuonGM::MuonClusterReadoutElement, InDetDD::SolidStateDetectorElementBase, and MuonGM::MdtReadoutElement.

◆ parentMuonStation()

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

◆ parentMuonStationPos()

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

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

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

◆ parentStationPV()

PVConstLink MuonGM::MuonReadoutElement::parentStationPV ( ) const

◆ refreshCache()

void MuonGM::MuonReadoutElement::refreshCache ( )

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

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

◆ setHasCutouts()

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

◆ setIdentifier()

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

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 ( )
private

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)

◆ setLongSsize()

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

◆ setLongZsize()

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

◆ setParentMuonStation()

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

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 ( )

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)

◆ setRsize()

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

◆ setSsize()

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

◆ setStationName()

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

◆ setStationS()

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

◆ setTechnologyName()

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

◆ setZsize()

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

◆ sideA()

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

◆ sideC()

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

◆ smallSector()

bool MuonGM::MuonReadoutElement::smallSector ( ) const

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

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

◆ surface() [1/2]

virtual const Surface& Trk::TrkDetElementBase::surface ( ) const
pure virtualinherited

Return surface associated with this detector element.

Implemented in InDetDD::SolidStateDetectorElementBase, MuonGM::MdtReadoutElement, InDetDD::TRT_BaseElement, and MuonGM::MuonClusterReadoutElement.

◆ surface() [2/2]

virtual const Surface& Trk::TrkDetElementBase::surface ( const Identifier id) const
pure virtualinherited

Return surface associated with this identifier, which should come from the PrepRawData object (i.e.

Surface s = PRD.detElement().surface( PRD.identify() ). This is only really relevant for the TRT (where there are several surfaces per detector element). For other detector elements it will just return surface() ... the Identifier is ignored.

Implemented in MuonGM::MdtReadoutElement, InDetDD::TRT_BaseElement, MuonGM::MuonClusterReadoutElement, and InDetDD::SolidStateDetectorElementBase.

◆ toParentStation()

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

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/2]

virtual const Amg::Transform3D& Trk::TrkDetElementBase::transform ( ) const
pure virtualinherited

◆ transform() [2/2]

virtual const Amg::Transform3D& Trk::TrkDetElementBase::transform ( const Identifier id) const
pure virtualinherited

Return local to global transform associated with this identifier.

Implemented in MuonGM::MdtReadoutElement, InDetDD::TRT_BaseElement, MuonGM::MuonClusterReadoutElement, and InDetDD::SolidStateDetectorElementBase.

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

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

detector element hash identifier

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

◆ m_eta

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

Identifier field of the station eta.

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

◆ m_hasCutouts

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

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

extended data-collection identifier

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

◆ m_idhash

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

data-collection hash identifier

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

◆ m_idHelperSvc

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

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

index of this RE in the mother MuonStation

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

◆ m_LongRsize

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

◆ m_LongSsize

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

◆ m_LongZsize

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

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

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

◆ m_parentStationPV

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

◆ m_phi

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

Identifier field of the station phi.

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

◆ m_Rsize

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

◆ m_Ssize

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

◆ m_stationS

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

◆ m_statname

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

examples are BMS5, CSS1, EML1

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

◆ m_stIdx

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

Identifier field of the station index.

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

◆ m_techname

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

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

◆ m_Zsize

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

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::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
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
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::MuonReadoutElement::m_Zsize
double m_Zsize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:145
Trk::TrkDetElementBase::TrkDetElementBase
TrkDetElementBase(const GeoVFullPhysVol *fullPhysVol)
Constructor from GeoVFullPhysVolume.
Definition: TrkDetElementBase.cxx:7
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
MuonGM::MuonReadoutElement::m_detectorElIdhash
IdentifierHash m_detectorElIdhash
detector element hash identifier
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:167
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
MuonGM::MuonReadoutElement::fillCache
virtual void fillCache()=0
Trk::DetectorElemType::Tgc
@ Tgc
Trk::DetectorElemType::TRT
@ TRT
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::MuonReadoutElement::m_Ssize
double m_Ssize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:143
MuonGM::MuonReadoutElement::setParentStationPV
void setParentStationPV()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:77
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
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
x
#define x
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
MuonGM::MuonReadoutElement::setIndexOfREinMuonStation
void setIndexOfREinMuonStation()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:104
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
Trk::DetectorElemType::Csc
@ Csc
Trk::TrkDetElementBase::detectorType
virtual DetectorElemType detectorType() const =0
Return the Detector element type.
MuonGM::MuonReadoutElement::m_phi
int m_phi
Identifier field of the station phi.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:177
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
Trk::DetectorElemType::Silicon
@ Silicon
MuonGM::MuonReadoutElement::clearCache
virtual void clearCache()=0
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
Trk::DetectorElemType::SolidState
@ SolidState
MuonGM::MuonReadoutElement::m_Rsize
double m_Rsize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:144
MuonGM::MuonReadoutElement::parentMuonStation
const MuonStation * parentMuonStation() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:135
master.flag
bool flag
Definition: master.py:29
MuonGM::MuonReadoutElement::m_parentStationPV
PVConstLink m_parentStationPV
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:179
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
MuonGM::MuonStation::getNativeToAmdbLRS
const Amg::Transform3D & getNativeToAmdbLRS() const
Definition: MuonStation.h:182
MuonGM::MuonReadoutElement::m_hasCutouts
bool m_hasCutouts
true is there are cutouts in the readdout-element
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:158
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
MuonGM::MuonReadoutElement::m_LongSsize
double m_LongSsize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:146
Trk::DetectorElemType::sTgc
@ sTgc
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
MuonGM::MuonReadoutElement::m_idhash
IdentifierHash m_idhash
data-collection hash identifier
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:166
MuonGM::MuonReadoutElement::m_LongZsize
double m_LongZsize
size in the specified direction
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:148
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
Trk::DetectorElemType::Rpc
@ Rpc
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
MuonGM::MuonReadoutElement::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:163
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
MuonGM::MuonReadoutElement::identify
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:184
python.changerun.pv
pv
Definition: changerun.py:81
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
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
python.compressB64.c
def c
Definition: compressB64.py:93
MuonGM::MuonReadoutElement::parentStationPV
PVConstLink parentStationPV() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:100
MuonGM::MuonReadoutElement::getStationEta
int getStationEta() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:193
Trk::DetectorElemType::Mdt
@ Mdt
fitman.k
k
Definition: fitman.py:528