ATLAS Offline Software
MmReadoutElement.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONREADOUTGEOMETRYR4_MMREADOUTELEMENT_H
5 #define MUONREADOUTGEOMETRYR4_MMREADOUTELEMENT_H
6 
10 
11 #ifndef SIMULATIONBASE
12 # include "Acts/Surfaces/TrapezoidBounds.hpp"
13 #endif
14 
15 
16 namespace MuonGMR4 {
17 
19 
20  public:
21 
23  struct parameterBook {
26  double halfThickness{0.};
28  double halfShortWidth{0.};
30  double halfLongWidth{0.};
32  double halfHeight{0.};
34  unsigned int nGasGaps{0};
36  std::vector<int> readoutSide{};
38  std::vector<StripLayerPtr> layers{};
39 
40 #ifndef SIMULATIONBASE
42 #endif
43 
44 
45  };
46 
48  public parameterBook {};
49 
51 
52  const parameterBook& getParameters() const;
56  }
57 
58 
60  double thickness() const override final;
61 
65  double moduleHeight() const;
67  double moduleWidthS() const;
69  double moduleWidthL() const;
79  unsigned int nGasGaps() const;
88 
89  StatusCode initElement() override final;
90 
94 
95  // measurementHash : Creates a channelHash based on channel's and gasGap's number, which are
96  // retrieved through the MmIdHelper by inputting the calculated channel Identifier.
98  // layerHash : Creates a layerHash based solely on gasGap's number, which is
99  // retrieved through the MmIdHelper by inputting the calculated channel Identifier.
100  IdentifierHash layerHash(const Identifier& measId) const override final;
101  // layerHash : Creates a layerHash based on the first 4 bits of the channelHash,
102  // which retrieve the layer.
104  // measurementId : Retrieves the channel Identifier based on the above created channelHash (measurementHash)
105  Identifier measurementId(const IdentifierHash& measHash) const override final;
106 
107  static IdentifierHash createHash(const int gasGap, const int strip);
117 
120 
121  friend ActsTrk::TransformCacheDetEle<MmReadoutElement>;
122 #ifndef SIMULATIONBASE
123  std::map<Identifier, std::shared_ptr<Acts::Surface>> getSurfaces() const override final;
124 #endif
125  private:
126 
127 
128 
129  static unsigned int gasGapNumber(const IdentifierHash& measHash);
130  static unsigned int stripNumber(const IdentifierHash& measHash);
131 
133 
135 
137 
139 
140 };
141 std::ostream& operator<<(std::ostream& ostr, const MmReadoutElement::parameterBook& pars);
142 } // namespace MuonGMR4
143 
144 namespace ActsTrk{
145  template <> Amg::Transform3D
147 }
148 
149 
151 #endif
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
MuonGMR4::MmReadoutElement::moduleWidthS
double moduleWidthS() const
Returns the width at the short edge.
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:69
MuonGMR4::MmReadoutElement::m_idHelper
const MmIdHelper & m_idHelper
Definition: MmReadoutElement.h:134
MuonGMR4::MmReadoutElement
Definition: MmReadoutElement.h:18
MuonGMR4::parameterBook
MmReadoutElement::parameterBook parameterBook
Definition: MmReadoutElement.cxx:18
MuonGMR4::MmReadoutElement::stripLength
double stripLength(const IdentifierHash &measHash) const
Returns the strip length.
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
MuonGMR4::MmReadoutElement::fromGapToChamOrigin
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
Definition: MmReadoutElement.cxx:68
MuonGMR4::MmReadoutElement::createHash
static IdentifierHash createHash(const int gasGap, const int strip)
MuonGMR4::MmReadoutElement::nGasGaps
unsigned int nGasGaps() const
Returns the number of gas gaps.
ActsTrk::DetectorType
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
Definition: GeometryDefs.h:17
MuonGMR4::MmReadoutElement::parameterBook
Set of parameters to describe a RPC chamber.
Definition: MmReadoutElement.h:23
ActsTrk::DetectorAlignStore
Definition: DetectorAlignStore.h:20
MuonGMR4::MmReadoutElement::gapLengthS
double gapLengthS(const IdentifierHash &layerHash) const
Length of gas Gap on short side.
MuonGMR4::MmReadoutElement::MmReadoutElement
MmReadoutElement(defineArgs &&args)
Definition: MmReadoutElement.cxx:25
MuonGMR4::MuonReadoutElement
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h:38
MuonGMR4::MmReadoutElement::detectorType
ActsTrk::DetectorType detectorType() const override final
Overload from the ActsTrk::IDetectorElement.
Definition: MmReadoutElement.h:54
MuonGMR4::MmReadoutElement::parameterBook::halfThickness
double halfThickness
Trapezoid dimensions of MicroMegas envelope half-thickness along z-axis.
Definition: MmReadoutElement.h:26
StripDesign.h
MuonGMR4::MmReadoutElement::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: MmReadoutElement.cxx:105
MuonGMR4::MmReadoutElement::parameterBook::readoutSide
std::vector< int > readoutSide
Readout sides.
Definition: MmReadoutElement.h:36
MuonGMR4::MmReadoutElement::gapLengthL
double gapLengthL(const IdentifierHash &layerHash) const
Length of gas Gap on long side.
MuonGMR4::MmReadoutElement::numStrips
unsigned int numStrips(const IdentifierHash &layerHash) const
Returns the number of total active strips.
MuonGMR4::MmReadoutElement::parameterBook::halfShortWidth
double halfShortWidth
width of the lower edge
Definition: MmReadoutElement.h:28
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
Muon::IMuonIdHelperSvc::mmIdHelper
virtual const MmIdHelper & mmIdHelper() const =0
access to CscIdHelper
MmIdHelper::multilayer
int multilayer(const Identifier &id) const
Definition: MmIdHelper.cxx:796
MuonGMR4::MmReadoutElement::moduleThickness
double moduleThickness() const
Returns the module thickness.
MuonGMR4::MmReadoutElement::parameterBook::nGasGaps
unsigned int nGasGaps
number of gasGaps
Definition: MmReadoutElement.h:34
MuonGMR4::MmReadoutElement::multilayer
int multilayer() const
Returns the multi layer of the element [1-2].
MuonGMR4
A muon chamber is a collection of readout elements belonging to the same station.
Definition: ChamberAssembleTool.h:16
MuonGMR4::MmReadoutElement::m_pars
parameterBook m_pars
Definition: MmReadoutElement.h:132
MuonGMR4::MmReadoutElement::stripPosition
Amg::Vector3D stripPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
MuonGMR4::MmReadoutElement::moduleWidthL
double moduleWidthL() const
Returns the width at the top edge.
ActsTrk::DetectorType::Mm
@ Mm
Maybe not needed in the migration.
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::MmReadoutElement::stripNumber
static unsigned int stripNumber(const IdentifierHash &measHash)
MuonGMR4::MmReadoutElement::parameterBook::halfHeight
double halfHeight
length in the radial direction
Definition: MmReadoutElement.h:32
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGMR4::MmReadoutElement::measurementId
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
MuonGMR4::MmReadoutElement::readoutSide
int readoutSide(const IdentifierHash &measHash) const
Returns the readout side.
MuonGMR4::MmReadoutElement::m_multilayer
const int m_multilayer
Definition: MmReadoutElement.h:136
MuonGMR4::MmReadoutElement::firstStrip
unsigned int firstStrip(const IdentifierHash &layerHash) const
Returns the first active strip.
MuonGMR4::MmReadoutElement::parameterBook::halfLongWidth
double halfLongWidth
width of the upper edge
Definition: MmReadoutElement.h:30
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:28
MuonGMR4::MmReadoutElement::parameterBook::layers
std::vector< StripLayerPtr > layers
Pointers to the strip layers.
Definition: MmReadoutElement.h:38
MuonGMR4::MmReadoutElement::leftStripEdge
Amg::Vector3D leftStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge.
MuonGMR4::MmReadoutElement::stripLayer
const StripLayer & stripLayer(const Identifier &measId) const
MmReadoutElement.icc
MuonGMR4::MmReadoutElement::getParameters
const parameterBook & getParameters() const
Definition: MmReadoutElement.cxx:30
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
MuonGMR4::MmReadoutElement::thickness
double thickness() const override final
Overload from the Acts::DetectorElement (2 * halfheight)
MuonGMR4::MuonReadoutElement::defineArgs
Helper struct to ship the defining arguments of the detector element around.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonReadoutElement.h:43
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::MmReadoutElement::gapHeight
double gapHeight(const IdentifierHash &layerHash) const
Height of gas Gap.
StripLayer.h
MuonGMR4::StripLayer
Definition: StripLayer.h:10
ActsTrk::TransformCacheDetEle::fetchTransform
Amg::Transform3D fetchTransform(const DetectorAlignStore *store) const override final
MmIdHelper
Definition: MmIdHelper.h:54
MuonGMR4::MmReadoutElement::measurementHash
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
MuonGMR4::MmReadoutElement::gasGapNumber
static unsigned int gasGapNumber(const IdentifierHash &measHash)
MuonGMR4::MmReadoutElement::layerHash
IdentifierHash layerHash(const Identifier &measId) const override final
MuonGMR4::MmReadoutElement::parameterBook::layerBounds
ActsTrk::SurfaceBoundSetPtr< Acts::TrapezoidBounds > layerBounds
Definition: MmReadoutElement.h:41
MuonGMR4::MmReadoutElement::moduleHeight
double moduleHeight() const
Returns the height along the z-axis.
MuonGMR4::MmReadoutElement::rightStripEdge
Amg::Vector3D rightStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge.
MuonGMR4::MmReadoutElement::initElement
StatusCode initElement() override final
Element initialization.
Definition: MmReadoutElement.cxx:32
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
IdentifierHash
Definition: IdentifierHash.h:38
MuonGMR4::operator<<
std::ostream & operator<<(std::ostream &ostr, const CutOutArea &cut)
Definition: CutOutArea.h:23
MuonReadoutElement.h
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
MuonGMR4::MmReadoutElement::defineArgs
Definition: MmReadoutElement.h:48