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;
16 namespace MuonGMR4{
17  class ReadoutGeomCnvAlg;
18 }
19 namespace Trk {
20  class CylinderBounds;
21  class SurfaceBounds;
22 } // namespace Trk
23 
24 namespace MuonGM {
25 
48  constexpr int maxnlayers = 4;
49  constexpr int maxnsteps = 10;
50 
51  class MdtReadoutElement final : public MuonReadoutElement {
53  friend class MuonChamber;
54  friend class MuonChamberLite;
55 
56  public:
57  MdtReadoutElement(GeoVFullPhysVol* pv, const std::string& stName,MuonDetectorManager* mgr);
58 
59  ~MdtReadoutElement() = default;
60 
62  unsigned int nMDTinStation() const {
63  return m_nMDTinStation;
64  }
65  void setNMdtInStation(unsigned int numMdt) { m_nMDTinStation = numMdt;}
66 
69  bool barrel() const;
71  bool endcap() const;
73  int getMultilayer() const;
75  int getNLayers() const;
77  int getNtubesperlayer() const;
79  int getNtubesinastep() const;
81  void setMultilayer(const int ml);
83  void setNLayers(const int nl);
84 
85  bool getWireFirstLocalCoordAlongZ(int tubeLayer, double& coord) const;
86  bool getWireFirstLocalCoordAlongR(int tubeLayer, double& coord) const;
87 
88  bool containsId(const Identifier& id) const override;
89 
90  // detector specific
91  double tubeLength(const int tubeLayer, const int tube) const;
92  double getActiveTubeLength(const int tubeLayer, const int tube) const;
93  double getWireLength(const int tubeLayer, const int tube) const;
94  double tubeLength(const Identifier& id) const;
96  double innerTubeRadius() const;
98  double outerTubeRadius() const;
100  double tubePitch() const;
101 
102 
104  const Amg::Transform3D& localToGlobalTransf(const int tubeLayer, const int tube) const;
105 
107  Amg::Transform3D nodeform_localToGlobalTransf(const int tubeLayer, const int tube) const;
108 
109  // global to local(tube frame) coord.
110  Amg::Transform3D globalToLocalTransf(const int tubeLayer, const int tube) const;
112 
114  Amg::Transform3D nodeform_globalToLocalTransf(const int tubeLayer, const int tube) const;
115 
116  // in the native MDT reference system
118  Amg::Vector3D localTubePos(const int tubelayer, const int tube) const;
119 
121  Amg::Vector3D nodeform_localTubePos(const int tubelayer, const int tube) const;
122 
124  Amg::Vector3D tubePos(const Identifier& id) const;
125  Amg::Vector3D tubePos(const int tubelayer, const int tube) const;
128  Amg::Vector3D nodeform_tubePos(const int tubelayer, const int tube) const;
129 
130 
131  // Readout / HV side
133  double signedRODistanceFromTubeCentre(const int tubeLayer, const int tube) const;
134 
135  double RODistanceFromTubeCentre(const Identifier& id) const;
136  double RODistanceFromTubeCentre(const int tubeLayer, const int tube) const;
137 
138  double distanceFromRO(const Amg::Vector3D& GlobalHitPosition, const Identifier& id) const;
139  double distanceFromRO(const Amg::Vector3D& GlobalHitPosition, const int tubelayer, const int tube) const;
140 
141  int isAtReadoutSide(const Amg::Vector3D& GlobalHitPosition, const Identifier& id) const;
142  int isAtReadoutSide(const Amg::Vector3D& GlobalHitPosition, const int tubelayer, const int tube) const;
143 
145  Amg::Vector3D localROPos(const int tubelayer, const int tube) const;
146 
147  Amg::Vector3D ROPos(const int tubelayer, const int tube) const;
148  Amg::Vector3D ROPos(const Identifier& id) const;
149 
150  Amg::Vector3D tubeFrame_localROPos(const int tubelayer, const int tube) const;
152 
153  // defining B-line parameters
154  void setBLinePar(const BLinePar* bLine);
155  void clearBLinePar();
156  const BLinePar* getBLinePar() const { return m_BLinePar; }
157 
161 
162  void clearCache() override final;
163  void fillCache() override final;
164 
165  virtual const Trk::Surface& surface() const override final;
166  virtual const Trk::SaggedLineSurface& surface(const Identifier& id) const override final;
167  virtual const Trk::SaggedLineSurface& surface(const int tubeLayer, const int tube) const;
168  virtual const Trk::SurfaceBounds& bounds() const override final;
169  virtual const Trk::CylinderBounds& bounds(const Identifier& id) const override final;
170  virtual const Trk::CylinderBounds& bounds(const int tubeLayer, const int tube) const;
171 
172  virtual const Amg::Transform3D& transform(const Identifier& id) const override final;
173  virtual const Amg::Transform3D& transform() const override final;
174  const Amg::Transform3D& transform(const int tubeLayer, const int tube) const;
175 
176  virtual const Amg::Vector3D& center(const Identifier&) const override final;
177  virtual const Amg::Vector3D& center() const override final;
178  const Amg::Vector3D& center(const int tubeLayer, const int tube) const;
179 
180  virtual const Amg::Vector3D& normal(const Identifier&) const override final;
181  virtual const Amg::Vector3D& normal() const override final;
182 
184  std::vector<const Trk::Surface*> surfaces() const;
185 
188 
189 
190  private:
191  // Called from MuonChamber
192  void geoInitDone();
193 
194 
195  double getTubeLengthForCaching(const int tubeLayer, const int tube) const;
196  double getNominalTubeLengthWoCutouts(const int tubeLayer, const int tube) const;
198  // methods handling deformations
200 
201 
203  const double width_narrow,
204  const double width_wide,
205  const double height,
206  const double thickness,
207  const Amg::Vector3D& fixedPoint) const;
208  void wireEndpointsAsBuilt(Amg::Vector3D& locAMDBWireEndP, Amg::Vector3D& locAMDBWireEndN, const int tubelayer,
209  const int tube) const;
210 
214 
215  unsigned int m_nMDTinStation{0};
216  int m_multilayer{0};
217  int m_nlayers{-1};
218  double m_tubepitch{-9999.};
219  double m_tubelayerpitch{-9999.};
221  int m_nsteps{-1};
223  double m_tubelenStepSize{-9999.};
224  double m_cutoutShift{-9999.};
225  double m_endpluglength{-9999.};
226  double m_deadlength{-9999.};
227  bool m_inBarrel{false};
228  std::array<double, maxnsteps> m_tubelength{make_array<double, maxnsteps>(-9999.)};
229  std::array<double, maxnlayers> m_firstwire_x{make_array<double, maxnlayers>(-9999.)};
230  std::array<double, maxnlayers> m_firstwire_y{make_array<double, maxnlayers>(-9999.)};
231  double m_innerRadius{-9999.};
232  double m_tubeWallThickness{-9999.};
233  CxxUtils::CachedValue<int> m_zsignRO_tubeFrame{}; // comes from AMDB CRO location in the station
234 
236  const Amg::Transform3D& toDeform) const;
237 
238 
240  const Amg::Transform3D& toDeform) ;
241 
242 
243  struct GeoInfo {
245  Amg::Transform3D m_transform{Amg::Transform3D::Identity()};
247  };
248  std::unique_ptr<GeoInfo> makeGeoInfo(const int tubelayer, const int tube) const;
249  const GeoInfo& geoInfo(const int tubeLayer, const int tube) const;
250  Amg::Transform3D deformedTransform(const int tubelayer, const int tube) const;
251 
252  std::vector<CxxUtils::CachedUniquePtr<GeoInfo> > m_tubeGeo{}; // one per tube
253  std::vector<CxxUtils::CachedUniquePtr<GeoInfo> > m_backupTubeGeo{}; // one per tube
254  std::vector<CxxUtils::CachedUniquePtr<Amg::Transform3D> > m_deformTransf{}; // one per tube
255 
256  const BLinePar* m_BLinePar{nullptr};
258  std::vector<CxxUtils::CachedUniquePtr<Trk::SaggedLineSurface> > m_tubeSurfaces{}; // one per tube
259  std::vector<CxxUtils::CachedUniquePtr<Trk::CylinderBounds> > m_tubeBounds{}; // one per step in tube-length
260 
265  mutable std::atomic<bool> m_haveTubeSurfaces{false};
266  mutable std::atomic<bool> m_haveTubeGeo{false};
267  mutable std::atomic<bool> m_haveTubeBounds{false};
268  mutable std::atomic<bool> m_haveDeformTransf{false};
269 
270  // the single surface information representing the DetElement
273  };
274 
275 } // namespace MuonGM
277 #endif // MUONREADOUTGEOMETRY_MDTREADOUTELEMENT_H
MuonIdHelper::stationNameIndex
int stationNameIndex(const std::string &name) const
Definition: MuonIdHelper.cxx:842
MuonGM::MdtReadoutElement::wireEndpointsAsBuilt
void wireEndpointsAsBuilt(Amg::Vector3D &locAMDBWireEndP, Amg::Vector3D &locAMDBWireEndN, const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:716
MuonGM::MdtReadoutElement::geoInitDone
void geoInitDone()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:94
MuonGM::MdtReadoutElement::m_firstwire_x
std::array< double, maxnlayers > m_firstwire_x
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:229
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:222
MuonGM::MdtReadoutElement::center
virtual const Amg::Vector3D & center() const override final
Return the center of the element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:914
MuonGM::MdtReadoutElement::m_stIdx_BOL
const int m_stIdx_BOL
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:213
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:254
MuonGM::MdtReadoutElement::geoInfo
const GeoInfo & geoInfo(const int tubeLayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:811
MuonGM::MdtReadoutElement::MdtReadoutElement
MdtReadoutElement(GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:61
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:806
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:220
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:422
MuonGM::MdtReadoutElement::m_haveTubeBounds
std::atomic< bool > m_haveTubeBounds
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:267
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:392
MuonGM::MdtReadoutElement::getWireFirstLocalCoordAlongZ
bool getWireFirstLocalCoordAlongZ(int tubeLayer, double &coord) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:81
MuonGM::MdtReadoutElement::m_haveTubeGeo
std::atomic< bool > m_haveTubeGeo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:266
MuonGM::MdtReadoutElement::RODistanceFromTubeCentre
double RODistanceFromTubeCentre(const Identifier &id) const
MuonGM::MuonChamber
Definition: MuonChamber.h:29
MuonGM::MdtReadoutElement::m_tubelayerpitch
double m_tubelayerpitch
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:219
MuonGM::MdtReadoutElement::bounds
virtual const Trk::SurfaceBounds & bounds() const override final
Return the boundaries of the element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:916
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
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:211
MuonGM::MdtReadoutElement::getTubeLengthForCaching
double getTubeLengthForCaching(const int tubeLayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:104
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:156
MuonGM::MdtReadoutElement::m_tubeBounds
std::vector< CxxUtils::CachedUniquePtr< Trk::CylinderBounds > > m_tubeBounds
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:259
MuonGM::MdtReadoutElement::m_zsignRO_tubeFrame
CxxUtils::CachedValue< int > m_zsignRO_tubeFrame
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:233
MuonGM::MdtReadoutElement::normal
virtual const Amg::Vector3D & normal() const override final
Return the normal of the element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:886
MuonGM::MdtReadoutElement::setNMdtInStation
void setNMdtInStation(unsigned int numMdt)
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:65
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
MuonGM::MdtReadoutElement::GeoInfo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:243
MuonGM::MdtReadoutElement::m_cutoutShift
double m_cutoutShift
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:224
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:71
MuonGM::maxnsteps
constexpr int maxnsteps
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:49
MuonGM::MdtReadoutElement::m_firstwire_y
std::array< double, maxnlayers > m_firstwire_y
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:230
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:462
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:401
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:928
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:20
EventPrimitivesToStringConverter.h
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:51
MuonGM::MdtReadoutElement::fromIdealToDeformed
const Amg::Transform3D & fromIdealToDeformed(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:434
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:265
MuonGM::MdtReadoutElement::m_haveDeformTransf
std::atomic< bool > m_haveDeformTransf
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:268
MuonGM::MdtReadoutElement::localTubePos
Amg::Vector3D localTubePos(const Identifier &id) const
MuonGM::MdtReadoutElement::clearBLinePar
void clearBLinePar()
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:70
MuonGM::MdtReadoutElement::GeoInfo::m_transform
Amg::Transform3D m_transform
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:245
MuonGM::MdtReadoutElement::m_nMDTinStation
unsigned int m_nMDTinStation
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:215
vector
Definition: MultiHisto.h:13
MuonGM::MdtReadoutElement::m_tubeSurfaces
std::vector< CxxUtils::CachedUniquePtr< Trk::SaggedLineSurface > > m_tubeSurfaces
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:258
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:212
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:69
MdtIdHelper
Definition: MdtIdHelper.h:61
MuonGM::MdtReadoutElement::m_elemNormal
CxxUtils::CachedValue< Amg::Vector3D > m_elemNormal
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:257
MuonGM::MdtReadoutElement::nMDTinStation
unsigned int nMDTinStation() const
How many MDT chambers are in the station.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:62
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:48
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:226
MuonGM::MdtReadoutElement::m_inBarrel
bool m_inBarrel
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:227
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:967
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:583
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:256
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:408
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:252
MuonGM::MdtReadoutElement::setBLinePar
void setBLinePar(const BLinePar *bLine)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:958
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:272
MuonGM::MdtReadoutElement::ROPos
Amg::Vector3D ROPos(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:289
MuonGMR4::ReadoutGeomCnvAlg
Definition: ReadoutGeomCnvAlg.h:32
MuonGM::MdtReadoutElement::m_endpluglength
double m_endpluglength
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:225
MuonGM::MdtReadoutElement::tubeFrame_localROPos
Amg::Vector3D tubeFrame_localROPos(const int tubelayer, const int tube) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:283
MuonGM::MdtReadoutElement::m_tubeWallThickness
double m_tubeWallThickness
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:232
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:87
MuonGM::MdtReadoutElement::m_tubelength
std::array< double, maxnsteps > m_tubelength
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:228
MuonGM::MdtReadoutElement::m_multilayer
int m_multilayer
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:216
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:50
MuonGM::MdtReadoutElement::setMultilayer
void setMultilayer(const int ml)
Sets the multilayer number.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:68
MuonGM::MdtReadoutElement::GeoInfo::GeoInfo
GeoInfo(const Amg::Transform3D &transform)
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:244
MuonGM::MdtReadoutElement::m_backupTubeGeo
std::vector< CxxUtils::CachedUniquePtr< GeoInfo > > m_backupTubeGeo
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:253
MuonGM::MdtReadoutElement::surface
virtual const Trk::Surface & surface() const override final
Return surface associated with this detector element.
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:891
python.changerun.pv
pv
Definition: changerun.py:81
MuonGM::MdtReadoutElement::m_nsteps
int m_nsteps
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:221
MuonGM::MdtReadoutElement::GeoInfo::m_center
Amg::Vector3D m_center
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:246
MuonGM::MdtReadoutElement::containsId
bool containsId(const Identifier &id) const override
Definition: MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx:1029
MuonGM::MdtReadoutElement::m_tubepitch
double m_tubepitch
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:218
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:271
calibdata.tube
tube
Definition: calibdata.py:31
MuonGM::MdtReadoutElement::m_nlayers
int m_nlayers
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:217
MuonGM::MdtReadoutElement::m_tubelenStepSize
double m_tubelenStepSize
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:223
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:231
Identifier
Definition: IdentifierFieldParser.cxx:14