ATLAS Offline Software
MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONREADOUTGEOMETRY_MDTREADOUTELEMENT_H
6 #define MUONREADOUTGEOMETRY_MDTREADOUTELEMENT_H
7 
9 #include "CxxUtils/CachedValue.h"
11 #include "CxxUtils/ArrayHelper.h"
15 class BLinePar;
17 
18 namespace Trk {
19  class CylinderBounds;
20  class SurfaceBounds;
21 } // namespace Trk
22 
23 namespace MuonGM {
24 
47  constexpr int maxnlayers = 4;
48  constexpr int maxnsteps = 10;
49 
50  class MdtReadoutElement final : public MuonReadoutElement {
51  friend class ::MuonReadoutGeomCnvAlg;
52  friend class MuonChamber;
53  friend class MuonChamberLite;
54 
55  public:
56  MdtReadoutElement(GeoVFullPhysVol* pv, const std::string& stName,MuonDetectorManager* mgr);
57 
58  ~MdtReadoutElement() = default;
59 
61  unsigned int nMDTinStation() const {
62  return m_nMDTinStation;
63  }
64  void setNMdtInStation(unsigned int numMdt) { m_nMDTinStation = numMdt;}
65 
68  bool barrel() const;
70  bool endcap() const;
72  int getMultilayer() const;
74  int getNLayers() const;
76  int getNtubesperlayer() const;
78  int getNtubesinastep() const;
80  void setMultilayer(const int ml);
82  void setNLayers(const int nl);
83 
84  bool getWireFirstLocalCoordAlongZ(int tubeLayer, double& coord) const;
85  bool getWireFirstLocalCoordAlongR(int tubeLayer, double& coord) const;
86 
87  bool containsId(const Identifier& id) const override;
88 
89  // detector specific
90  double tubeLength(const int tubeLayer, const int tube) const;
91  double getActiveTubeLength(const int tubeLayer, const int tube) const;
92  double getWireLength(const int tubeLayer, const int tube) const;
93  double tubeLength(const Identifier& id) const;
95  double innerTubeRadius() const;
97  double outerTubeRadius() const;
99  double tubePitch() const;
100 
101 
103  const Amg::Transform3D& localToGlobalTransf(const int tubeLayer, const int tube) const;
104 
106  Amg::Transform3D nodeform_localToGlobalTransf(const int tubeLayer, const int tube) const;
107 
108  // global to local(tube frame) coord.
109  Amg::Transform3D globalToLocalTransf(const int tubeLayer, const int tube) const;
111 
113  Amg::Transform3D nodeform_globalToLocalTransf(const int tubeLayer, const int tube) const;
114 
115  // in the native MDT reference system
117  Amg::Vector3D localTubePos(const int tubelayer, const int tube) const;
118 
120  Amg::Vector3D nodeform_localTubePos(const int tubelayer, const int tube) const;
121 
123  Amg::Vector3D tubePos(const Identifier& id) const;
124  Amg::Vector3D tubePos(const int tubelayer, const int tube) const;
127  Amg::Vector3D nodeform_tubePos(const int tubelayer, const int tube) const;
128 
129 
130  // Readout / HV side
132  double signedRODistanceFromTubeCentre(const int tubeLayer, const int tube) const;
133 
134  double RODistanceFromTubeCentre(const Identifier& id) const;
135  double RODistanceFromTubeCentre(const int tubeLayer, const int tube) const;
136 
137  double distanceFromRO(const Amg::Vector3D& GlobalHitPosition, const Identifier& id) const;
138  double distanceFromRO(const Amg::Vector3D& GlobalHitPosition, const int tubelayer, const int tube) const;
139 
140  int isAtReadoutSide(const Amg::Vector3D& GlobalHitPosition, const Identifier& id) const;
141  int isAtReadoutSide(const Amg::Vector3D& GlobalHitPosition, const int tubelayer, const int tube) const;
142 
144  Amg::Vector3D localROPos(const int tubelayer, const int tube) const;
145 
146  Amg::Vector3D ROPos(const int tubelayer, const int tube) const;
147  Amg::Vector3D ROPos(const Identifier& id) const;
148 
149  Amg::Vector3D tubeFrame_localROPos(const int tubelayer, const int tube) const;
151 
152  // defining B-line parameters
153  void setBLinePar(const BLinePar* bLine);
154  void clearBLinePar();
155  const BLinePar* getBLinePar() const { return m_BLinePar; }
156 
160 
161  void clearCache() override final;
162  void fillCache() override final;
163 
164  virtual const Trk::Surface& surface() const override final;
165  virtual const Trk::SaggedLineSurface& surface(const Identifier& id) const override final;
166  virtual const Trk::SaggedLineSurface& surface(const int tubeLayer, const int tube) const;
167  virtual const Trk::SurfaceBounds& bounds() const override final;
168  virtual const Trk::CylinderBounds& bounds(const Identifier& id) const override final;
169  virtual const Trk::CylinderBounds& bounds(const int tubeLayer, const int tube) const;
170 
171  virtual const Amg::Transform3D& transform(const Identifier& id) const override final;
172  virtual const Amg::Transform3D& transform() const override final;
173  const Amg::Transform3D& transform(const int tubeLayer, const int tube) const;
174 
175  virtual const Amg::Vector3D& center(const Identifier&) const override final;
176  virtual const Amg::Vector3D& center() const override final;
177  const Amg::Vector3D& center(const int tubeLayer, const int tube) const;
178 
179  virtual const Amg::Vector3D& normal(const Identifier&) const override final;
180  virtual const Amg::Vector3D& normal() const override final;
181 
183  std::vector<const Trk::Surface*> surfaces() const;
184 
187 
188 
189  private:
190  // Called from MuonChamber
191  void geoInitDone();
192 
193 
194  double getTubeLengthForCaching(const int tubeLayer, const int tube) const;
195  double getNominalTubeLengthWoCutouts(const int tubeLayer, const int tube) const;
197  // methods handling deformations
199 
200 
202  const double width_narrow,
203  const double width_wide,
204  const double height,
205  const double thickness,
206  const Amg::Vector3D& fixedPoint) const;
207  void wireEndpointsAsBuilt(Amg::Vector3D& locAMDBWireEndP, Amg::Vector3D& locAMDBWireEndN, const int tubelayer,
208  const int tube) const;
209 
213 
214  unsigned int m_nMDTinStation{0};
215  int m_multilayer{0};
216  int m_nlayers{-1};
217  double m_tubepitch{-9999.};
218  double m_tubelayerpitch{-9999.};
220  int m_nsteps{-1};
222  double m_tubelenStepSize{-9999.};
223  double m_cutoutShift{-9999.};
224  double m_endpluglength{-9999.};
225  double m_deadlength{-9999.};
226  bool m_inBarrel{false};
227  std::array<double, maxnsteps> m_tubelength{make_array<double, maxnsteps>(-9999.)};
228  std::array<double, maxnlayers> m_firstwire_x{make_array<double, maxnlayers>(-9999.)};
229  std::array<double, maxnlayers> m_firstwire_y{make_array<double, maxnlayers>(-9999.)};
230  double m_innerRadius{-9999.};
231  double m_tubeWallThickness{-9999.};
232  CxxUtils::CachedValue<int> m_zsignRO_tubeFrame{}; // comes from AMDB CRO location in the station
233 
235  const Amg::Transform3D& toDeform) const;
236 
237 
239  const Amg::Transform3D& toDeform) ;
240 
241 
242  struct GeoInfo {
244  Amg::Transform3D m_transform{Amg::Transform3D::Identity()};
246  };
247  std::unique_ptr<GeoInfo> makeGeoInfo(const int tubelayer, const int tube) const;
248  const GeoInfo& geoInfo(const int tubeLayer, const int tube) const;
249  Amg::Transform3D deformedTransform(const int tubelayer, const int tube) const;
250 
251  std::vector<CxxUtils::CachedUniquePtr<GeoInfo> > m_tubeGeo{}; // one per tube
252  std::vector<CxxUtils::CachedUniquePtr<GeoInfo> > m_backupTubeGeo{}; // one per tube
253  std::vector<CxxUtils::CachedUniquePtr<Amg::Transform3D> > m_deformTransf{}; // one per tube
254 
255  const BLinePar* m_BLinePar{nullptr};
257  std::vector<CxxUtils::CachedUniquePtr<Trk::SaggedLineSurface> > m_tubeSurfaces{}; // one per tube
258  std::vector<CxxUtils::CachedUniquePtr<Trk::CylinderBounds> > m_tubeBounds{}; // one per step in tube-length
259 
264  mutable std::atomic<bool> m_haveTubeSurfaces{false};
265  mutable std::atomic<bool> m_haveTubeGeo{false};
266  mutable std::atomic<bool> m_haveTubeBounds{false};
267  mutable std::atomic<bool> m_haveDeformTransf{false};
268 
269  // the single surface information representing the DetElement
272  };
273 
274 } // namespace MuonGM
276 #endif // MUONREADOUTGEOMETRY_MDTREADOUTELEMENT_H
MuonIdHelper::stationNameIndex
int stationNameIndex(const std::string &name) const
Definition: MuonIdHelper.cxx:846
MuonReadoutGeomCnvAlg
The MuonReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the lega...
Definition: MuonReadoutGeomCnvAlg.h:31
MuonGM::MdtReadoutElement::wireEndpointsAsBuilt
void wireEndpointsAsBuilt(Amg::Vector3D &locAMDBWireEndP, Amg::Vector3D &locAMDBWireEndN, const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:705
MuonGM::MdtReadoutElement::geoInitDone
void geoInitDone()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:93
MuonGM::MdtReadoutElement::m_firstwire_x
std::array< double, maxnlayers > m_firstwire_x
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:228
MuonGM::MdtReadoutElement::getNLayers
int getNLayers() const
Returns the number of tube layers inside the multilayer.
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
MuonGM::MdtReadoutElement::m_ntubesinastep
int m_ntubesinastep
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:221
MuonGM::MdtReadoutElement::center
virtual const Amg::Vector3D & center() const override final
Return the center of the element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:898
MuonGM::MdtReadoutElement::m_stIdx_BOL
const int m_stIdx_BOL
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:212
MuonGM::MdtReadoutElement::tubeLength
double tubeLength(const int tubeLayer, const int tube) const
MuonGM::MdtReadoutElement::localToGlobalTransf
const Amg::Transform3D & localToGlobalTransf(const int tubeLayer, const int tube) const
MuonGM::MdtReadoutElement::m_deformTransf
std::vector< CxxUtils::CachedUniquePtr< Amg::Transform3D > > m_deformTransf
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:253
MuonGM::MdtReadoutElement::geoInfo
const GeoInfo & geoInfo(const int tubeLayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:795
MuonGM::MdtReadoutElement::MdtReadoutElement
MdtReadoutElement(GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:60
MuonGM::MdtReadoutElement::innerTubeRadius
double innerTubeRadius() const
Returns the inner tube radius excluding the aluminium walls.
MuonGM::MdtReadoutElement::makeGeoInfo
std::unique_ptr< GeoInfo > makeGeoInfo(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:790
MuonGM::MdtReadoutElement::localROPos
Amg::Vector3D localROPos(const Identifier &id) const
MuonGM::MdtReadoutElement::isAtReadoutSide
int isAtReadoutSide(const Amg::Vector3D &GlobalHitPosition, const Identifier &id) const
MuonGM::MdtReadoutElement::m_ntubesperlayer
int m_ntubesperlayer
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:219
MuonGM::MdtReadoutElement::tubeFrame_localROPos
Amg::Vector3D tubeFrame_localROPos(const Identifier &id) const
MuonGM::MdtReadoutElement::localNominalTubePosWoCutouts
Amg::Vector3D localNominalTubePosWoCutouts(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:421
MuonGM::MdtReadoutElement::m_haveTubeBounds
std::atomic< bool > m_haveTubeBounds
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:266
MuonGM::MdtReadoutElement::tubePitch
double tubePitch() const
Returns the distance between 2 tubes in a tube layer.
CxxUtils::CachedUniquePtrT
Cached pointer with atomic update.
Definition: CachedUniquePtr.h:54
MuonGM::MdtReadoutElement::globalTransform
Amg::Transform3D globalTransform(const Amg::Vector3D &tubePos, const Amg::Transform3D &toDeform) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:391
MuonGM::MdtReadoutElement::getWireFirstLocalCoordAlongZ
bool getWireFirstLocalCoordAlongZ(int tubeLayer, double &coord) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:80
MuonGM::MdtReadoutElement::m_haveTubeGeo
std::atomic< bool > m_haveTubeGeo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:265
MuonGM::MdtReadoutElement::RODistanceFromTubeCentre
double RODistanceFromTubeCentre(const Identifier &id) const
MuonGM::MuonChamber
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonChamber.h:29
MuonGM::MdtReadoutElement::m_tubelayerpitch
double m_tubelayerpitch
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:218
MuonGM::MdtReadoutElement::bounds
virtual const Trk::SurfaceBounds & bounds() const override final
Return the boundaries of the element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:900
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
MuonGM::MdtReadoutElement::nodeform_localTubePos
Amg::Vector3D nodeform_localTubePos(const Identifier &id) const
MuonGM::MdtReadoutElement::nodeform_localToGlobalTransf
Amg::Transform3D nodeform_localToGlobalTransf(const Identifier &id) const
MuonGM::MdtReadoutElement::m_idHelper
const MdtIdHelper & m_idHelper
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:210
MuonGM::MdtReadoutElement::getTubeLengthForCaching
double getTubeLengthForCaching(const int tubeLayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:103
MuonGM::MdtReadoutElement::barrel
bool barrel() const
Returns whether the chamber is in the barrel (Assement on first later in stationName)
MuonGM::MdtReadoutElement::transform
virtual const Amg::Transform3D & transform() const override final
Return local to global transform.
MuonGM::MdtReadoutElement::getBLinePar
const BLinePar * getBLinePar() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:155
MuonGM::MdtReadoutElement::m_tubeBounds
std::vector< CxxUtils::CachedUniquePtr< Trk::CylinderBounds > > m_tubeBounds
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:258
MuonGM::MdtReadoutElement::m_zsignRO_tubeFrame
CxxUtils::CachedValue< int > m_zsignRO_tubeFrame
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:232
MuonGM::MdtReadoutElement::normal
virtual const Amg::Vector3D & normal() const override final
Return the normal of the element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:870
MuonGM::MdtReadoutElement::setNMdtInStation
void setNMdtInStation(unsigned int numMdt)
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:64
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
MuonGM::MdtReadoutElement::GeoInfo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:242
MuonGM::MdtReadoutElement::m_cutoutShift
double m_cutoutShift
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:223
MuonGM::MdtReadoutElement::~MdtReadoutElement
~MdtReadoutElement()=default
MuonGM::MdtReadoutElement::surfaces
std::vector< const Trk::Surface * > surfaces() const
returns all the surfaces contained in this detector element
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:70
MuonGM::maxnsteps
constexpr int maxnsteps
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:48
MuonGM::MdtReadoutElement::m_firstwire_y
std::array< double, maxnlayers > m_firstwire_y
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:229
MuonGM::MdtReadoutElement::distanceFromRO
double distanceFromRO(const Amg::Vector3D &GlobalHitPosition, const Identifier &id) const
MuonGM::MuonReadoutElement
Base class for the XxxReadoutElement, with Xxx = Mdt, Rpc, Tgc, Csc.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:40
MuonGM::MuonChamberLite
Definition: MuonChamberLite.h:31
MuonGM::MdtReadoutElement::deformedTransform
Amg::Transform3D deformedTransform(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:461
MuonGM::MuonReadoutElement::idHelperSvc
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:136
MuonGM::MdtReadoutElement::globalToLocalTransf
Amg::Transform3D globalToLocalTransf(const int tubeLayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:400
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
MuonGM::MdtReadoutElement::getWireLength
double getWireLength(const int tubeLayer, const int tube) const
MuonGM::MdtReadoutElement::nodeform_tubePos
Amg::Vector3D nodeform_tubePos(const Identifier &id) const
Returns the global position of the tube excluding the B-line & As-built corrections.
MuonGM::MdtReadoutElement::clearCache
void clearCache() override final
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:912
EventPrimitivesToStringConverter.h
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:50
MuonGM::MdtReadoutElement::fromIdealToDeformed
const Amg::Transform3D & fromIdealToDeformed(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:433
MuonGM::MdtReadoutElement::m_haveTubeSurfaces
std::atomic< bool > m_haveTubeSurfaces
Flag whether any elements have been inserted into the corresponding vectors.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:264
MuonGM::MdtReadoutElement::m_haveDeformTransf
std::atomic< bool > m_haveDeformTransf
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:267
MuonGM::MdtReadoutElement::localTubePos
Amg::Vector3D localTubePos(const Identifier &id) const
MuonGM::MdtReadoutElement::clearBLinePar
void clearBLinePar()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:69
MuonGM::MdtReadoutElement::GeoInfo::m_transform
Amg::Transform3D m_transform
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:244
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
MuonGM::MdtReadoutElement::m_nMDTinStation
unsigned int m_nMDTinStation
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:214
vector
Definition: MultiHisto.h:13
MuonGM::MdtReadoutElement::m_tubeSurfaces
std::vector< CxxUtils::CachedUniquePtr< Trk::SaggedLineSurface > > m_tubeSurfaces
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:257
MuonGM::MdtReadoutElement::getActiveTubeLength
double getActiveTubeLength(const int tubeLayer, const int tube) const
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
CachedUniquePtr.h
Cached unique_ptr with atomic update.
MuonGM::MdtReadoutElement::m_stIdx_BIS
const int m_stIdx_BIS
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:211
MuonGM::MdtReadoutElement::outerTubeRadius
double outerTubeRadius() const
Returns the tube radius taking the thickness of the tubes into account.
CxxUtils::CachedValue< int >
ArrayHelper.h
MuonGM::MdtReadoutElement::setNLayers
void setNLayers(const int nl)
Sets the number of layers.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:68
MdtIdHelper
Definition: MdtIdHelper.h:61
MuonGM::MdtReadoutElement::m_elemNormal
CxxUtils::CachedValue< Amg::Vector3D > m_elemNormal
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:256
MuonGM::MdtReadoutElement::nMDTinStation
unsigned int nMDTinStation() const
How many MDT chambers are in the station.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:61
MuonGM::maxnlayers
constexpr int maxnlayers
An MdtReadoutElement corresponds to a single MDT multilayer; therefore typicaly a MDT chamber consist...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:47
MuonGM::MdtReadoutElement::getMultilayer
int getMultilayer() const
Returns the multilayer represented by the readout element.
MuonReadoutElement.h
MuonGM::MdtReadoutElement::localToGlobalTransf
const Amg::Transform3D & localToGlobalTransf(const Identifier &id) const
MuonGM::MdtReadoutElement::m_deadlength
double m_deadlength
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:225
MuonGM::MdtReadoutElement::m_inBarrel
bool m_inBarrel
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:226
MuonGM::MdtReadoutElement::signedRODistanceFromTubeCentre
double signedRODistanceFromTubeCentre(const Identifier &id) const
BLinePar
Definition: BLinePar.h:14
MuonGM::MdtReadoutElement::ROPos
Amg::Vector3D ROPos(const Identifier &id) const
MuonGM::MdtReadoutElement::fillCache
void fillCache() override final
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:951
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
MuonGM::MdtReadoutElement::posOnDefChamWire
Amg::Vector3D posOnDefChamWire(const Amg::Vector3D &locAMDBPos, const double width_narrow, const double width_wide, const double height, const double thickness, const Amg::Vector3D &fixedPoint) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:572
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
MuonGM::MdtReadoutElement::m_BLinePar
const BLinePar * m_BLinePar
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:255
CachedValue.h
Cached value with atomic update.
MuonGM::MdtReadoutElement::getNtubesinastep
int getNtubesinastep() const
Returns the number of tubes in the endcap trapezoid sharing the same length.
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
MuonGM::MdtReadoutElement::getNominalTubeLengthWoCutouts
double getNominalTubeLengthWoCutouts(const int tubeLayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:407
MuonGM::MdtReadoutElement::globalToLocalTransf
Amg::Transform3D globalToLocalTransf(const Identifier &id) const
Muon::IMuonIdHelperSvc::mdtIdHelper
virtual const MdtIdHelper & mdtIdHelper() const =0
access to MdtIdHelper
MuonGM::MdtReadoutElement::m_tubeGeo
std::vector< CxxUtils::CachedUniquePtr< GeoInfo > > m_tubeGeo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:251
MuonGM::MdtReadoutElement::setBLinePar
void setBLinePar(const BLinePar *bLine)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:942
MuonGM::MdtReadoutElement::endcap
bool endcap() const
Returns whether the chamber is in the endcap.
MuonGM::MdtReadoutElement::tubeLength
double tubeLength(const Identifier &id) const
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonDetectorManager.h
MuonGM::MdtReadoutElement::tubeToMultilayerTransf
Amg::Transform3D tubeToMultilayerTransf(const Identifier &id) const
MuonGM::MdtReadoutElement::nodeform_globalToLocalTransf
Amg::Transform3D nodeform_globalToLocalTransf(const Identifier &id) const
JetVoronoiDiagramHelpers::coord
double coord
Definition: JetVoronoiDiagramHelpers.h:45
MuonGM::MdtReadoutElement::m_associatedBounds
CxxUtils::CachedUniquePtr< Trk::SurfaceBounds > m_associatedBounds
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:271
MuonGM::MdtReadoutElement::ROPos
Amg::Vector3D ROPos(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:288
MuonGM::MdtReadoutElement::m_endpluglength
double m_endpluglength
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:224
MuonGM::MdtReadoutElement::tubeFrame_localROPos
Amg::Vector3D tubeFrame_localROPos(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:282
MuonGM::MdtReadoutElement::m_tubeWallThickness
double m_tubeWallThickness
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:231
SaggedLineSurface.h
MuonGM::MdtReadoutElement::tubePos
Amg::Vector3D tubePos(const Identifier &id) const
Returns the global position of the given tube.
MuonGM::MdtReadoutElement::getWireFirstLocalCoordAlongR
bool getWireFirstLocalCoordAlongR(int tubeLayer, double &coord) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:86
MuonGM::MdtReadoutElement::m_tubelength
std::array< double, maxnsteps > m_tubelength
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:227
MuonGM::MdtReadoutElement::m_multilayer
int m_multilayer
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:215
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:49
MuonGM::MdtReadoutElement::setMultilayer
void setMultilayer(const int ml)
Sets the multilayer number.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:67
MuonGM::MdtReadoutElement::GeoInfo::GeoInfo
GeoInfo(const Amg::Transform3D &transform)
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:243
MuonGM::MdtReadoutElement::m_backupTubeGeo
std::vector< CxxUtils::CachedUniquePtr< GeoInfo > > m_backupTubeGeo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:252
MuonGM::MdtReadoutElement::surface
virtual const Trk::Surface & surface() const override final
Return surface associated with this detector element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:875
python.changerun.pv
pv
Definition: changerun.py:81
MuonGM::MdtReadoutElement::m_nsteps
int m_nsteps
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:220
MuonGM::MdtReadoutElement::GeoInfo::m_center
Amg::Vector3D m_center
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:245
MuonGM::MdtReadoutElement::containsId
bool containsId(const Identifier &id) const override
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:1013
MuonGM::MdtReadoutElement::m_tubepitch
double m_tubepitch
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:217
MuonGM::MdtReadoutElement::getNtubesperlayer
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
MuonGM::MdtReadoutElement::m_associatedSurface
CxxUtils::CachedUniquePtr< Trk::Surface > m_associatedSurface
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:270
calibdata.tube
tube
Definition: calibdata.py:31
MuonGM::MdtReadoutElement::m_nlayers
int m_nlayers
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:216
MuonGM::MdtReadoutElement::m_tubelenStepSize
double m_tubelenStepSize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:222
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
MdtReadoutElement.icc
MuonGM::MdtReadoutElement::m_innerRadius
double m_innerRadius
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:230