ATLAS Offline Software
MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.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_RPCREADOUTELEMENT_H
5 #define MUONREADOUTGEOMETRYR4_RPCREADOUTELEMENT_H
6 
10 
11 namespace Acts{
12  class RectangleBounds;
13 }
14 
15 namespace MuonGMR4 {
16 
18 
19  public:
21  struct parameterBook {
23 
25  double halfLength{0.};
27  double halfThickness{0.};
29  double halfWidth{0.};
32  unsigned int nGasGaps{0};
35  int nPanelsInPhi{0};
36  std::vector<StripLayerPtr> layers{};
37 
40 #ifndef SIMULATIONBASE
42 #endif
43  };
44 
46  public parameterBook {};
47 
49  virtual ~RpcReadoutElement();
50  const parameterBook& getParameters() const;
54  }
56  double thickness() const override final;
57 
58  StatusCode initElement() override final;
59 
61  int doubletZ() const;
63  int doubletR() const;
66 
68  unsigned int nGasGaps() const;
73 
75  unsigned int nEtaStrips() const;
77  unsigned int nPhiStrips() const;
80 
82  double stripEtaPitch() const;
84  double stripPhiPitch() const;
86  double stripEtaWidth() const;
88  double stripPhiWidth() const;
94  double gasGapPitch() const;
95 
96 
106 
107  enum class EdgeSide{
108  readOut,
109  highVoltage,
110  };
116  double distanceToEdge(const IdentifierHash& layerHash,
117  const Amg::Vector2D& posInStripPlane,
118  const EdgeSide side) const;
119 
123  IdentifierHash measurementHash(const Identifier& measId) const override final;
124 
125  IdentifierHash layerHash(const Identifier& measId) const override final;
126  IdentifierHash layerHash(const IdentifierHash& measHash) const;
127 
128  Identifier measurementId(const IdentifierHash& measHash) const override final;
129 
132  static IdentifierHash createHash(const unsigned int strip,
133  const unsigned int gasGap,
134  const unsigned int doubPhi,
135  const bool measPhi);
136 
138 
139 
141  const StripLayer& sensorLayout(const IdentifierHash& measHash) const;
142  private:
143  static unsigned int stripNumber(const IdentifierHash& measHash);
144  static unsigned int gasGapNumber(const IdentifierHash& measHash);
145  static unsigned int doubletPhiNumber(const IdentifierHash& measHash);
146  static bool measuresPhi(const IdentifierHash& measHash);
147 
148 
151  Amg::Vector3D chamberStripPos(const IdentifierHash& measHash) const;
152 
153 
154 
158  // -> 2: chamber is mounted on top of the Mdts
165 
167  double m_gasThickness{0.};
168 
169  };
170 std::ostream& operator<<(std::ostream& ostr, const RpcReadoutElement::parameterBook& pars);
171 } // namespace MuonGMR4
172 
173 namespace ActsTrk{
174  template <> Amg::Transform3D
177  template <> Identifier
179 }
180 
181 
183 #endif
MuonGMR4::RpcReadoutElement::doubletPhiMax
int doubletPhiMax() const
Returns the maximum phi panel.
MuonGMR4::RpcReadoutElement::m_idHelper
const RpcIdHelper & m_idHelper
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:156
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
SGTest::store
TestStore store
Definition: TestStore.cxx:23
MuonGMR4::RpcReadoutElement::stripPhiLength
double stripPhiLength() const
Returns the length of a phi strip.
GeoModel::TransientConstSharedPtr< StripDesign >
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
MuonGMR4::RpcReadoutElement::parameterBook::halfWidth
double halfWidth
Elongation within the sector
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:29
MuonGMR4::RpcReadoutElement::measuresPhi
static bool measuresPhi(const IdentifierHash &measHash)
MuonGMR4::RpcReadoutElement::defineArgs
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:46
python.CaloAddPedShiftConfig.args
args
Definition: CaloAddPedShiftConfig.py:45
ActsTrk::TransformCacheDetEle::identify
Identifier identify() const override final
ActsTrk::DetectorType
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
Definition: GeometryDefs.h:17
MuonGMR4::RpcReadoutElement::doubletR
int doubletR() const
Returns the doublet R field of the MuonReadoutElement identifier.
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
RpcIdHelper::doubletZ
int doubletZ(const Identifier &id) const
Definition: RpcIdHelper.cxx:1061
ActsTrk::DetectorAlignStore
Definition: DetectorAlignStore.h:20
MuonGMR4::RpcReadoutElement::stripEtaPitch
double stripEtaPitch() const
Strip pitch in eta.
MuonGMR4::RpcReadoutElement::doubletPhiNumber
static unsigned int doubletPhiNumber(const IdentifierHash &measHash)
MuonGMR4::RpcReadoutElement::m_pars
parameterBook m_pars
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:155
ActsTrk::TransformCacheDetEle
Definition: Tracking/Acts/ActsGeoUtils/ActsGeoUtils/Defs.h:26
MuonGMR4::RpcReadoutElement::parameterBook::halfThickness
double halfThickness
Half thickness of the Rpc module.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:27
MuonGMR4::RpcReadoutElement::parameterBook::layers
std::vector< StripLayerPtr > layers
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:36
MuonGMR4::RpcReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
MuonGMR4::RpcReadoutElement::nGasGaps
unsigned int nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
MuonGMR4::MuonReadoutElement
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h:38
MuonGMR4::RpcReadoutElement::parameterBook::nPanelsInPhi
int nPanelsInPhi
Each gas gap is usually subdivided into 2 phi panels which is actually the sector granularity of the ...
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:35
StripDesign.h
MuonGMR4::RpcReadoutElement::parameterBook::etaDesign
StripDesignPtr etaDesign
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:39
MuonGMR4::RpcReadoutElement::stripPhiPitch
double stripPhiPitch() const
Strip pitch in phi.
MuonGMR4::RpcReadoutElement::rightStripEdge
Amg::Vector3D rightStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge at negative local Y.
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
MuonGMR4::RpcReadoutElement::nPhiPanels
int nPhiPanels() const
Returns the number of phi panels (1 or 2)
MuonGMR4::RpcReadoutElement::layerHash
IdentifierHash layerHash(const IdentifierHash &measHash) const
MuonGMR4::RpcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:17
MuonGMR4::RpcReadoutElement::EdgeSide
EdgeSide
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:107
RpcIdHelper
Definition: RpcIdHelper.h:51
MuonGMR4::RpcReadoutElement::getParameters
const parameterBook & getParameters() const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:34
MuonGMR4::RpcReadoutElement::parameterBook
Set of parameters to describe a RPC chamber.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:21
MuonGMR4::RpcReadoutElement::nEtaStrips
unsigned int nEtaStrips() const
Number of strips measuring the eta coordinate.
TRT::Hit::side
@ side
Definition: HitInfo.h:83
MuonGMR4::RpcReadoutElement::m_doubletR
const int m_doubletR
doublet R -> 1: chamber is mounted below the Mdts
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:159
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:19
RpcIdHelper::doubletR
int doubletR(const Identifier &id) const
Definition: RpcIdHelper.cxx:1059
Acts
Definition: ChamberAssembleTool.h:18
MuonGMR4::RpcReadoutElement::parameterBook::phiDesign
StripDesignPtr phiDesign
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:38
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::RpcReadoutElement::parameterBook::halfLength
double halfLength
RPC panel dimensions.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:25
MuonGMR4::RpcReadoutElement::doubletPhi
int doubletPhi() const
Returns the doublet Phi field of the MuonReadoutElement identifier.
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGMR4::RpcReadoutElement::stripPosition
Amg::Vector3D stripPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
MuonGMR4::RpcReadoutElement::doubletZ
int doubletZ() const
Returns the doublet Z field of the MuonReadoutElement identifier.
MuonGMR4::RpcReadoutElement::measurementHash
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
MuonGMR4::RpcReadoutElement::initElement
StatusCode initElement() override final
Element initialization.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:36
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
MuonGMR4::RpcReadoutElement::m_doubletPhi
const int m_doubletPhi
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:164
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
MuonGMR4::MuonReadoutElement::defineArgs
Helper struct to ship the defining arguments of the detector element around.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h:43
MuonGMR4::RpcReadoutElement::sensorLayout
const StripLayer & sensorLayout(const IdentifierHash &measHash) const
Access to the StripLayer associated to a given measurement Hash.
MuonGMR4::RpcReadoutElement::m_gasThickness
double m_gasThickness
Distance between 2 gas gaps (Radial direction)
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:167
MuonGMR4::RpcReadoutElement::layerHash
IdentifierHash layerHash(const Identifier &measId) const override final
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
MuonGMR4::RpcReadoutElement::nPhiStrips
unsigned int nPhiStrips() const
Number of strips measuring the phi coordinate.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::RpcReadoutElement::parameterBook::layerBounds
ActsTrk::SurfaceBoundSetPtr< Acts::RectangleBounds > layerBounds
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:41
MuonGMR4::RpcReadoutElement::distanceToEdge
double distanceToEdge(const IdentifierHash &layerHash, const Amg::Vector2D &posInStripPlane, const EdgeSide side) const
Returns the disance to the readout.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:115
MuonGMR4::RpcReadoutElement::~RpcReadoutElement
virtual ~RpcReadoutElement()
StripLayer.h
MuonGMR4::StripLayer
Definition: StripLayer.h:10
ActsTrk::TransformCacheDetEle::fetchTransform
Amg::Transform3D fetchTransform(const DetectorAlignStore *store) const override final
MuonGMR4::RpcReadoutElement::leftStripEdge
Amg::Vector3D leftStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global posiition of the strip edge at positive local Y.
MuonGMR4::RpcReadoutElement::chamberStripPos
Amg::Vector3D chamberStripPos(const IdentifierHash &measHash) const
Returns the local strip position w.r.t. to the chamber origin.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:111
MuonGMR4::RpcReadoutElement::nStrips
unsigned int nStrips(const IdentifierHash &hash) const
Returns the number of strips.
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
MuonGMR4::RpcReadoutElement::m_doubletZ
const int m_doubletZ
Associated doublet Z (Ranges from 1-3) If doubletZ is 3, there's generally the possibility that the m...
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:163
MuonGMR4::RpcReadoutElement::RpcReadoutElement
RpcReadoutElement(defineArgs &&args)
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:29
MuonGMR4::RpcReadoutElement::gasGapNumber
static unsigned int gasGapNumber(const IdentifierHash &measHash)
ActsTrk::DetectorType::Rpc
@ Rpc
Monitored Drift Tubes.
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:55
MuonGMR4::RpcReadoutElement::stripPhiWidth
double stripPhiWidth() const
Strip width in phi.
ActsTrk::SurfaceBoundSetPtr
std::shared_ptr< SurfaceBoundSet< BoundType > > SurfaceBoundSetPtr
Aberivation to create a new SurfaceBoundSetPtr.
Definition: Tracking/Acts/ActsGeoUtils/ActsGeoUtils/Defs.h:19
MuonGMR4::RpcReadoutElement::parameterBook::nGasGaps
unsigned int nGasGaps
The number of gas gaps (along the radial direction) in the RPC chamber (2 or 3)
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:32
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
MuonGMR4::RpcReadoutElement::fromGapToChamOrigin
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:70
RpcReadoutElement.icc
MuonReadoutElement.h
MuonGMR4::RpcReadoutElement::detectorType
ActsTrk::DetectorType detectorType() const override final
Overload from the ActsTrk::IDetectorElement.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:52
MuonGMR4::operator<<
std::ostream & operator<<(std::ostream &ostr, const Chamber::defineArgs &args)
Definition: Chamber.cxx:14
MuonGMR4::RpcReadoutElement::stripEtaWidth
double stripEtaWidth() const
Strip width in eta.
MuonGMR4::RpcReadoutElement::stripEtaLength
double stripEtaLength() const
Returns the length of an eta strip.
MuonGMR4::RpcReadoutElement::thickness
double thickness() const override final
Overload from the Acts::DetectorElement (2 * halfheight)
Muon::IMuonIdHelperSvc::rpcIdHelper
virtual const RpcIdHelper & rpcIdHelper() const =0
access to RpcIdHelper
MuonGMR4::RpcReadoutElement::stripNumber
static unsigned int stripNumber(const IdentifierHash &measHash)
RpcIdHelper::doubletPhi
int doubletPhi(const Identifier &id) const
Definition: RpcIdHelper.cxx:1063
MuonGMR4::RpcReadoutElement::gasGapPitch
double gasGapPitch() const
Returns the thickness of a RPC gasgap.
MuonGMR4::RpcReadoutElement::createHash
static IdentifierHash createHash(const unsigned int strip, const unsigned int gasGap, const unsigned int doubPhi, const bool measPhi)
Constructs an Identifier hash from the Identifier fields controlled by this readout element
Identifier
Definition: IdentifierFieldParser.cxx:14