ATLAS Offline Software
MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONREADOUTGEOMETRYR4_RPCREADOUTELEMENT_H
5 #define MUONREADOUTGEOMETRYR4_RPCREADOUTELEMENT_H
6 
10 
11 #ifndef SIMULATIONBASE
12 # include "Acts/Utilities/BoundFactory.hpp"
13 #endif
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 nGasGaps{0};
35  int nPanelsInPhi{0};
36  std::vector<StripLayerPtr> layers{};
37 
41  double readoutSide{-1};
42 #ifndef SIMULATIONBASE
43  std::shared_ptr<Acts::SurfaceBoundFactory> layerBounds{};
44 #endif
45  };
46 
48  public parameterBook {};
49 
51  virtual ~RpcReadoutElement();
52  const parameterBook& getParameters() const;
56  }
58  double thickness() const override final;
59 
60  StatusCode initElement() override final;
61 
63  int doubletZ() const;
65  int doubletR() const;
68 
70  unsigned nGasGaps() const;
75 
77  unsigned nEtaStrips() const;
79  unsigned nPhiStrips() const;
82 
84  double stripEtaPitch() const;
86  double stripPhiPitch() const;
88  double stripEtaWidth() const;
90  double stripPhiWidth() const;
96  double gasGapPitch() const;
97 
98 
108 
109  enum class EdgeSide{
110  readOut,
111  highVoltage,
112  };
117  double distanceToEdge(const IdentifierHash& measHash,
118  const Amg::Vector2D& posInStripPlane,
119  const EdgeSide side) const;
120 
124  IdentifierHash measurementHash(const Identifier& measId) const override final;
125 
126  IdentifierHash layerHash(const Identifier& measId) const override final;
127  IdentifierHash layerHash(const IdentifierHash& measHash) const;
128 
129  Identifier measurementId(const IdentifierHash& measHash) const override final;
130 
133  static IdentifierHash createHash(const unsigned strip,
134  const unsigned gasGap,
135  const unsigned doubPhi,
136  const bool measPhi);
137 
139 
140 
142  const StripLayer& sensorLayout(const IdentifierHash& measHash) const;
144  const StripDesign& stripDesign(const IdentifierHash& meaHash) const;
145  private:
146  static unsigned stripNumber(const IdentifierHash& measHash);
147  static unsigned gasGapNumber(const IdentifierHash& measHash);
148  static unsigned doubletPhiNumber(const IdentifierHash& measHash);
149  static bool measuresPhi(const IdentifierHash& measHash);
150 
151 
154  Amg::Vector3D chamberStripPos(const IdentifierHash& measHash) const;
155 
156 
157 
161  // -> 2: chamber is mounted on top of the Mdts
168 
170  double m_gasThickness{0.};
171 
172  };
173 std::ostream& operator<<(std::ostream& ostr, const RpcReadoutElement::parameterBook& pars);
174 } // namespace MuonGMR4
175 
176 namespace ActsTrk{
177  template <> Amg::Transform3D
180  template <> Identifier
182 }
183 
184 
186 #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:159
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::createHash
static IdentifierHash createHash(const unsigned strip, const unsigned gasGap, const unsigned doubPhi, const bool measPhi)
Constructs an Identifier hash from the Identifier fields controlled by this readout element
MuonGMR4::RpcReadoutElement::parameterBook::halfWidth
double halfWidth
Elongation within the sector
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:29
MuonGMR4::StripDesign
Definition: StripDesign.h:30
MuonGMR4::RpcReadoutElement::measuresPhi
static bool measuresPhi(const IdentifierHash &measHash)
MuonGMR4::RpcReadoutElement::defineArgs
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:48
MuonGMR4::RpcReadoutElement::nGasGaps
unsigned nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
python.CaloAddPedShiftConfig.args
args
Definition: CaloAddPedShiftConfig.py:47
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:1053
ActsTrk::DetectorAlignStore
Definition: DetectorAlignStore.h:20
MuonGMR4::RpcReadoutElement::stripEtaPitch
double stripEtaPitch() const
Strip pitch in eta.
MuonGMR4::RpcReadoutElement::m_pars
parameterBook m_pars
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:158
ActsTrk::TransformCacheDetEle
Definition: Tracking/Acts/ActsGeoUtils/ActsGeoUtils/Defs.h:22
MuonGMR4::RpcReadoutElement::parameterBook::nGasGaps
unsigned 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
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::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:109
RpcIdHelper
Definition: RpcIdHelper.h:51
MuonGMR4::RpcReadoutElement::parameterBook::layerBounds
std::shared_ptr< Acts::SurfaceBoundFactory > layerBounds
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:43
MuonGMR4::RpcReadoutElement::getParameters
const parameterBook & getParameters() const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:33
MuonGMR4::RpcReadoutElement::parameterBook
Set of parameters to describe a RPC chamber.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:21
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:162
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:1051
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::nEtaStrips
unsigned nEtaStrips() const
Number of strips measuring the eta coordinate.
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::stripDesign
const StripDesign & stripDesign(const IdentifierHash &meaHash) const
Access the associated strip design for a given measurement hash.
MuonGMR4::RpcReadoutElement::initElement
StatusCode initElement() override final
Element initialization.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:35
MuonGMR4::RpcReadoutElement::stripNumber
static unsigned stripNumber(const IdentifierHash &measHash)
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:167
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:170
MuonGMR4::RpcReadoutElement::layerHash
IdentifierHash layerHash(const Identifier &measId) const override final
MuonGMR4::MuonReadoutElement::identify
Identifier identify() const override final
Return the athena identifier.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::RpcReadoutElement::doubletPhiNumber
static unsigned doubletPhiNumber(const IdentifierHash &measHash)
MuonGMR4::RpcReadoutElement::~RpcReadoutElement
virtual ~RpcReadoutElement()
MuonGMR4::RpcReadoutElement::parameterBook::readoutSide
double readoutSide
at which side is the readout plane of the strip
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:41
StripLayer.h
MuonGMR4::StripLayer
The StripLayer interfaces the 2D description of the strip plane layout with the 3D description of the...
Definition: StripLayer.h:19
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:112
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:108
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:166
MuonGMR4::RpcReadoutElement::nStrips
unsigned nStrips(const IdentifierHash &hash) const
Returns the number of strips.
MuonGMR4::RpcReadoutElement::RpcReadoutElement
RpcReadoutElement(defineArgs &&args)
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:28
ActsTrk::DetectorType::Rpc
@ Rpc
Monitored Drift Tubes.
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:24
MuonGMR4::RpcReadoutElement::stripPhiWidth
double stripPhiWidth() const
Strip width in phi.
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::distanceToEdge
double distanceToEdge(const IdentifierHash &measHash, const Amg::Vector2D &posInStripPlane, const EdgeSide side) const
Returns the disance to the readout.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:117
MuonGMR4::RpcReadoutElement::fromGapToChamOrigin
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:71
RpcReadoutElement.icc
MuonReadoutElement.h
MuonGMR4::RpcReadoutElement::gasGapNumber
static unsigned gasGapNumber(const IdentifierHash &measHash)
MuonGMR4::RpcReadoutElement::detectorType
ActsTrk::DetectorType detectorType() const override final
Overload from the ActsTrk::IDetectorElement.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:54
MuonGMR4::operator<<
std::ostream & operator<<(std::ostream &ostr, const Chamber::defineArgs &args)
Definition: Chamber.cxx:15
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::nPhiStrips
unsigned nPhiStrips() const
Number of strips measuring the phi coordinate.
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
RpcIdHelper::doubletPhi
int doubletPhi(const Identifier &id) const
Definition: RpcIdHelper.cxx:1055
MuonGMR4::RpcReadoutElement::gasGapPitch
double gasGapPitch() const
Returns the thickness of a RPC gasgap.
Identifier
Definition: IdentifierFieldParser.cxx:14