ATLAS Offline Software
MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/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 #ifndef MUONREADOUTGEOMETRYR4_MDTREADOUTELEMENT_H
5 #define MUONREADOUTGEOMETRYR4_MDTREADOUTELEMENT_H
6 
9 
10 #ifndef SIMULATIONBASE
11 # include "Acts/Surfaces/TrapezoidBounds.hpp"
12 #endif
13 namespace MuonGMR4 {
14 
16 
17  public:
18 
20  struct parameterBook {
24  // the number of tubes of the first layer
25  std::vector<MdtTubeLayerPtr> tubeLayers{};
26 
28  std::set<IdentifierHash> removedTubes{};
29 
31  double tubeWall{0.};
33  double tubeInnerRad{0.};
35  double tubePitch{0.};
37  double wireTension{0.};
39  double endPlugLength{0.};
41  double deadLength{0.};
43  double radLengthX0{0.};
51  double shortHalfX{0.};
52  double longHalfX{0.};
54  double halfY{0.};
56  double halfHeight{0.};
58  double readoutSide{1.};
61 #ifndef SIMULATIONBASE
64 #endif
65 
66  };
67 
69  public parameterBook {};
70 
72 
73  const parameterBook& getParameters() const;
77  }
79  double thickness() const override final;
80 
81  StatusCode initElement() override final;
83  unsigned int multilayer() const;
85  unsigned int numLayers() const;
87  unsigned int numTubesInLay() const;
88 
91  static unsigned int tubeNumber(const IdentifierHash& hash);
94  static unsigned int layerNumber(const IdentifierHash& hash);
96  static IdentifierHash measurementHash(unsigned int layerNumber, unsigned int tubeNumber);
97 
98 
103 
105  IdentifierHash layerHash(const Identifier& measId) const override final;
108  Identifier measurementId(const IdentifierHash& measHash) const override final;
109 
111 
113  bool isBarrel() const;
114 
116  double tubePitch() const;
120  double tubeRadius() const;
122  double moduleWidthS() const;
124  double moduleWidthL() const;
126  double moduleHeight() const;
129 
130 
133  const Identifier& measId) const;
134 
137 
140  const Identifier& measId) const;
141 
143  const IdentifierHash& measId) const;
146  const Identifier& measId) const;
148  const IdentifierHash& measId) const;
152  const Identifier& measId,
153  const Amg::Vector3D& globPoint) const;
155  const IdentifierHash& measHash,
156  const Amg::Vector3D& globPoint) const;
157 
159 
161 
163 
164 #ifndef SIMULATIONBASE
165  std::map<Identifier, std::shared_ptr<Acts::Surface>> getSurfaces() const override final;
166 #endif
167 
169  private:
182 
183 
190 };
191 
192 std::ostream& operator<<(std::ostream& ostr, const MdtReadoutElement::parameterBook& pars);
193 } // namespace MuonGMR4
194 
195 namespace ActsTrk{
196  template <> Amg::Transform3D
198 }
199 
201 #endif
MdtIdHelper::multilayer
int multilayer(const Identifier &id) const
Access to components of the ID.
Definition: MdtIdHelper.cxx:722
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:69
MuonGMR4::parameterBook
MmReadoutElement::parameterBook parameterBook
Definition: MmReadoutElement.cxx:18
MuonGMR4::MdtReadoutElement::parameterBook::tubeBounds
ActsTrk::SurfaceBoundSetPtr< Acts::LineBounds > tubeBounds
Sets of surface bounds which is shared amongst all readout elements used to assign the same bound obj...
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:62
MuonGMR4::MdtReadoutElement::localTubePos
Amg::Vector3D localTubePos(const IdentifierHash &hash) const
Returns the tube position in the chamber coordinate frame.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:139
MuonGMR4::MdtReadoutElement::parameterBook::removedTubes
std::set< IdentifierHash > removedTubes
List of tube places without tubes.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:28
MuonGMR4::MdtReadoutElement::numTubesInLay
unsigned int numTubesInLay() const
Returns the number of tubes per layer.
MuonGMR4::MdtReadoutElement::parameterBook::layerBounds
ActsTrk::SurfaceBoundSetPtr< Acts::TrapezoidBounds > layerBounds
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:63
ActsTrk::DetectorType
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
Definition: GeometryDefs.h:17
MdtReadoutElement.icc
MuonGMR4::MdtReadoutElement::parameterBook::tubeLayers
std::vector< MdtTubeLayerPtr > tubeLayers
Vector defining the position of all tubes in each tube layer.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:25
ActsTrk::DetectorAlignStore
Definition: DetectorAlignStore.h:20
MuonGMR4::MdtReadoutElement::tubeLength
double tubeLength(const IdentifierHash &hash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:175
MuonGMR4::MdtReadoutElement::isBarrel
bool isBarrel() const
States whether the chamber is built into the barrel or not.
MuonGMR4::MdtReadoutElement::moduleThickness
double moduleThickness() const
Returns the thickness of the chamber.
MuonGMR4::MdtReadoutElement::parameterBook::halfHeight
double halfHeight
Height of the chamber ~ number of layers.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:56
MuonGMR4::MdtReadoutElement::measurementHash
static IdentifierHash measurementHash(unsigned int layerNumber, unsigned int tubeNumber)
Transform the layer and tube number to the measurementHash.
MuonGMR4::MdtReadoutElement::m_isBarrel
bool m_isBarrel
Flag defining whether the chamber is barrel or not.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:189
MuonGMR4::MdtReadoutElement::toChamberLayer
Amg::Transform3D toChamberLayer(const IdentifierHash &hash) const
Returns the transformation into the rest frame of the tube x-axis: Pointing towards the next layer y-...
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:158
ActsTrk::TransformCacheDetEle
Definition: TransformCache.h:65
MuonGMR4::MuonReadoutElement
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h:38
MuonGMR4::MdtReadoutElement::activeTubeLength
double activeTubeLength(const IdentifierHash &hash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:169
MuonGMR4::MdtReadoutElement::readOutPos
Amg::Vector3D readOutPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the readout card.
MuonGMR4::MdtReadoutElement::initElement
StatusCode initElement() override final
Element initialization.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:40
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
MuonGMR4::MdtReadoutElement::tubeRadius
double tubeRadius() const
Adds the thickness of the tube wall onto the radius.
MdtTubeLayer.h
MuonGMR4::MdtReadoutElement::parameterBook::readoutSide
double readoutSide
Is the readout chip at positive or negative Z?
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:58
MuonGMR4::MdtReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:35
MuonGMR4::MdtReadoutElement::multilayer
unsigned int multilayer() const
Returns the multi layer of the MdtReadoutElement.
MuonGMR4::MdtReadoutElement::wireLength
double wireLength(const IdentifierHash &hash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:178
MuonGMR4::MdtReadoutElement::layerNumber
static unsigned int layerNumber(const IdentifierHash &hash)
Transforms the identifier hash into a layer number ranging from (0-numLayers()-1)
MuonGMR4::MdtReadoutElement::parameterBook::tubeInnerRad
double tubeInnerRad
Inner radius of the tubes.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:33
MuonGMR4::MdtReadoutElement::parameterBook::halfY
double halfY
Length ~ number of tubes.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:54
MuonGMR4
A muon chamber is a collection of readout elements belonging to the same station.
Definition: ChamberAssembleTool.h:16
MuonGMR4::MdtReadoutElement::m_pars
parameterBook m_pars
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:184
MuonGMR4::MdtReadoutElement::moduleWidthS
double moduleWidthS() const
Returns the length of the bottom edge of the chamber (short width)
MuonGMR4::MdtReadoutElement::getSurfaces
std::map< Identifier, std::shared_ptr< Acts::Surface > > getSurfaces() const override final
Returns all surfaces that are associated with the active readout planes.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:195
MuonGMR4::MdtReadoutElement::parameterBook::tubeWall
double tubeWall
Thickness of the tube walls.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:31
MuonGMR4::MdtReadoutElement::parameterBook
Set of parameters to describe a MDT chamber.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:20
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
MuonGMR4::MuonReadoutElement::idHelperSvc
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonGMR4::MdtReadoutElement::numLayers
unsigned int numLayers() const
Returns the number of tube layer.
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MdtIdHelper
Definition: MdtIdHelper.h:61
MuonGMR4::MdtReadoutElement::m_stML
int m_stML
Identifier index of the multilayer (1-2)
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:187
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:28
MuonGMR4::MdtReadoutElement::innerTubeRadius
double innerTubeRadius() const
Returns the inner tube radius.
MuonGMR4::MdtReadoutElement::moduleHeight
double moduleHeight() const
Returns the height of the chamber (Distance bottom - topWidth)
ActsTrk::DetectorType::Mdt
@ Mdt
MuonSpectrometer.
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
MuonGMR4::MdtReadoutElement::parameterBook::wireTension
double wireTension
Tension parameter Used in the SaggedLine surfaces.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:37
MuonGMR4::MdtReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:15
MuonGMR4::MdtReadoutElement::distanceToReadout
double distanceToReadout(const ActsGeometryContext &ctx, const Identifier &measId, const Amg::Vector3D &globPoint) const
Returns the distance along the wire from the readout card The distance is given as the delta z of the...
Muon::IMuonIdHelperSvc::mdtIdHelper
virtual const MdtIdHelper & mdtIdHelper() const =0
access to MdtIdHelper
MuonGMR4::MdtReadoutElement::MdtReadoutElement
MdtReadoutElement(defineArgs &&args)
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:30
MuonGMR4::MuonReadoutElement::defineArgs
Helper struct to ship the defining arguments of the detector element around.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h:43
MuonIdHelper::isBarrel
bool isBarrel(const Identifier &id) const
Definition: MuonIdHelper.cxx:829
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
MuonGMR4::MdtReadoutElement::tubePitch
double tubePitch() const
Returns the pitch between 2 tubes in a layer.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::MdtReadoutElement::parameterBook::tubePitch
double tubePitch
Distance between 2 tubes in the layer.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:35
MuonGMR4::MdtReadoutElement::thickness
double thickness() const override final
Overload from the Acts::DetectorElement (2 * halfheight)
MuonGMR4::MdtReadoutElement::tubeNumber
static unsigned int tubeNumber(const IdentifierHash &hash)
Transforms the idenfier hash into a tube number ranging from (0- numTubesInLay()-1)
MuonGMR4::MdtReadoutElement::parameterBook::endPlugLength
double endPlugLength
Depth of the endplug into the active tube volume.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:39
MuonGMR4::MdtReadoutElement::m_idHelper
const MdtIdHelper & m_idHelper
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:185
ActsTrk::TransformCacheDetEle::fetchTransform
Amg::Transform3D fetchTransform(const DetectorAlignStore *store) const override final
MuonGMR4::MdtReadoutElement::parameterBook::shortHalfX
double shortHalfX
The chambers have either a rectangular or a trapezoidal shape to first approximation.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:51
MuonGMR4::MdtReadoutElement::parameterBook::radLengthX0
double radLengthX0
Radiadtion length.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:43
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
MuonGMR4::MdtReadoutElement::layerHash
IdentifierHash layerHash(const Identifier &measId) const override final
Transforms the Identifier into the layer hash.
MuonGMR4::MdtReadoutElement::detectorType
ActsTrk::DetectorType detectorType() const override final
Overload from the ActsTrk::IDetectorElement.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:75
MuonGMR4::MdtReadoutElement::parameterBook::longHalfX
double longHalfX
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:52
MuonGMR4::MdtReadoutElement::parameterBook::deadLength
double deadLength
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:41
MuonGMR4::MdtReadoutElement::globalTubePos
Amg::Vector3D globalTubePos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the tube center.
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:34
ActsTrk::SurfaceBoundSetPtr
std::shared_ptr< SurfaceBoundSet< BoundType > > SurfaceBoundSetPtr
Aberivation to create a new SurfaceBoundSetPtr.
Definition: SurfaceBoundSet.h:50
MuonGMR4::MdtReadoutElement::getParameters
const parameterBook & getParameters() const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:34
MuonGMR4::MdtReadoutElement::toTubeFrame
Amg::Transform3D toTubeFrame(const IdentifierHash &hash) const
Returns the transformation into the rest frame of the tube x-axis: Pointing towards the next layer y-...
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx:163
MuonGMR4::MdtReadoutElement::highVoltPos
Amg::Vector3D highVoltPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the High Voltage connectors.
IdentifierHash
Definition: IdentifierHash.h:38
MuonGMR4::operator<<
std::ostream & operator<<(std::ostream &ostr, const CutOutArea &cut)
Definition: CutOutArea.h:23
MuonGMR4::MdtReadoutElement::moduleWidthL
double moduleWidthL() const
Returns the length of the top edge of the chamber (top width)
MuonReadoutElement.h
MuonGMR4::MdtReadoutElement::isValid
bool isValid(const IdentifierHash &measHash) const
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
MuonGMR4::MdtReadoutElement::defineArgs
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MdtReadoutElement.h:69