|
ATLAS Offline Software
|
Go to the documentation of this file.
12 #include "GeoModelKernel/GeoDefinitions.h"
13 #include "GeoModelKernel/GeoPhysVol.h"
14 #include "GeoModelKernel/GeoTransform.h"
35 TrkDetElementBase(
pv),
39 if (!m_idHelperSvc.retrieve().isSuccess()) {
41 throw std::runtime_error(
"Invalid MuonIdHelperSvc");
58 if (
c ==
'E' ||
c ==
'F' ||
c ==
'G')
return false;
59 if (
c ==
'M' ||
c ==
'R')
return true;
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");
80 std::string::size_type npos;
81 PVConstLink pStat = PVConstLink(
nullptr);
82 PVConstLink myphysvol(getMaterialGeom());
84 std::string
name = (myphysvol->getLogVol())->
getName();
85 if ((npos =
name.find(
"Station")) != std::string::npos) {
88 for (
unsigned int k = 0;
k < 10;
k++) {
89 pStat = myphysvol->getParent();
90 if (pStat == PVConstLink(
nullptr))
break;
92 if ((npos =
name.find(
"Station")) != std::string::npos) {
break; }
106 if (
par == PVConstLink(
nullptr)) {
108 throw std::runtime_error(
"Parent station is a nullptr");
110 Query<unsigned int>
c =
par->indexOf(getMaterialGeom());
119 if (
par == PVConstLink(
nullptr)) {
121 throw std::runtime_error(
"Parent station is a nullptr");
125 return GeoTrf::Transform3D::Identity();
160 throw std::runtime_error(
"Invalid Identifier set");
virtual Amg::Transform3D AmdbLRSToGlobalTransform() const
Ensure that the Athena extensions are properly loaded.
std::string m_statname
examples are BMS5, CSS1, EML1
const Amg::Transform3D & absTransform() const
Identifier m_id
extended data-collection identifier
std::string m_techname
MDT or RPC or TGC or CSC plus a two digits subtype; example RPC17.
int m_eta
Identifier field of the station eta.
IdentifierHash m_detectorElIdhash
detector element hash identifier
virtual void fillCache()=0
PVConstLink getPhysVol() const
virtual Amg::Transform3D GlobalToAmdbLRSTransform() const
Amg::Transform3D getTransform() const
void setParentStationPV()
void setLongRsize(double)
const MuonStation * m_parentMuonStation
void setIndexOfREinMuonStation()
int m_phi
Identifier field of the station phi.
virtual void clearCache()=0
virtual Amg::Vector3D GlobalToAmdbLRSCoords(const Amg::Vector3D &x) const
void setIdentifier(const Identifier &id)
Sets the Identifier, hashes & station names.
const MuonStation * parentMuonStation() const
Eigen::Affine3d Transform3D
PVConstLink m_parentStationPV
void setTechnologyName(const std::string &str)
Class to provide easy MsgStream access and capabilities.
const Amg::Transform3D & getNativeToAmdbLRS() const
const Amg::Vector3D globalPosition() const
void setLongSsize(double)
int getIndexOfREinMuonStation() const
void setStationName(const std::string &)
std::string to_string(const DetectorType &type)
IdentifierHash m_idhash
data-collection hash identifier
void setLongZsize(double)
Eigen::Matrix< double, 3, 1 > Vector3D
double m_LongZsize
size in the specified direction
Amg::Transform3D toParentStation() const
virtual Amg::Vector3D AmdbLRSToGlobalCoords(const Amg::Vector3D &x) const
virtual ~MuonReadoutElement()
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
int m_indexOfREinMuonStation
index of this RE in the mother MuonStation
int m_stIdx
Identifier field of the station index.
Amg::Vector3D parentMuonStationPos() const
MuonReadoutElement(GeoVFullPhysVol *pv, MuonDetectorManager *mgr, Trk::DetectorElemType detType)
PVConstLink parentStationPV() const
void setParentMuonStation(const MuonStation *)