ATLAS Offline Software
Loading...
Searching...
No Matches
MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/TgcReadoutElement.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_TGCREADOUTELEMENT_H
5#define MUONREADOUTGEOMETRYR4_TGCREADOUTELEMENT_H
6
11
12#ifndef SIMULATIONBASE
13# include "Acts/Utilities/BoundFactory.hpp"
14#endif
15
16
17namespace MuonGMR4 {
18
20
21 public:
22
27 double halfThickness{0.};
29 double halfHeight{0.};
31 double halfWidthShort{0.};
33 double halfWidthLong{0.};
34 // The number of gasgaps in a channel
35 unsigned nGasGaps{0};
37 std::array<StripLayerPtr, 6> sensorLayouts{};
38#ifndef SIMULATIONBASE
40 std::shared_ptr<Acts::SurfaceBoundFactory> layerBounds;
41#endif
42 };
43
46
49
50 const parameterBook& getParameters() const;
55 double thickness() const override final;
56 StatusCode initElement() override final;
57
58
59
67
69 unsigned nGasGaps() const;
78
82 unsigned numStrips(const IdentifierHash& layHash) const;
87
91 Amg::Vector3D channelPosition(const ActsTrk::GeometryContext& ctx, const Identifier& measId) const;
92 Amg::Vector3D channelPosition(const ActsTrk::GeometryContext& ctx, const IdentifierHash& measHash) const;
93
99
103 friend class ActsTrk::TransformCacheDetEle<TgcReadoutElement>;
104 private:
108 double m_gasThickness{0.};
109
110
114 public:
117 static IdentifierHash constructHash(unsigned measCh,
118 unsigned gasGap,
119 const bool isStrip);
124 const bool isStrip);
126 static unsigned channelNumber(const IdentifierHash& measHash);
128 static unsigned gasGapNumber(const IdentifierHash& measHash);
130 static bool isStrip(const IdentifierHash& measHash);
131 };
132std::ostream& operator<<(std::ostream& ostr, const TgcReadoutElement::parameterBook& pars);
133} // namespace MuonGMR4
134
135namespace ActsTrk{
136 template <> Amg::Transform3D
138 template <> Identifier
140}
141
143#endif
Eigen::Matrix< double, 3, 1 > Vector3D
Amg::Transform3D fetchTransform(const DetectorAlignStore *store) const override final
Identifier identify() const override final
Returns the Identifier of the transform cache.
This is a "hash" representation of an Identifier.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
const StripLayerPtr & sensorLayout(const IdentifierHash &hash) const
Returns the pointer to the strip layer associated with the gas gap.
unsigned numWireGangs(const IdentifierHash &layHash) const
Returns the number of wire gangs for a given gasGap [1-3].
ActsTrk::DetectorType detectorType() const override final
Overload from the ActsTrk::IDetectorElement.
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
Amg::Vector3D channelPosition(const ActsTrk::GeometryContext &ctx, const Identifier &measId) const
Returns the center of the measurement channel eta measurement: wire gang center phi measurement: stri...
double moduleWidthS() const
Returns the length of the bottom edge of the chamber (short width)
static bool isStrip(const IdentifierHash &measHash)
Unpacks whether the measurement hash is a strip.
double gasGapPitch() const
Returns the thickness of the gasGap.
static unsigned channelNumber(const IdentifierHash &measHash)
Unpacks the channel number from the measurement hash.
static unsigned gasGapNumber(const IdentifierHash &measHash)
Unpacks the gas gap number from the measurement hash.
const RadialStripDesign & stripLayout(const IdentifierHash &layHash) const
Returns access to the strip design of the given gasGap [1-3] If the gap does not have strips an excep...
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
static IdentifierHash constructHash(unsigned measCh, unsigned gasGap, const bool isStrip)
Constructs the Hash out of the Identifier fields (channel, gasGap, isStrip)
const WireGroupDesign & wireGangLayout(const IdentifierHash &layHash) const
Returns access to the wire group design of the given gasGap [1-3] If the gap does not have a wires an...
double moduleHeight() const
Returns the height of the chamber (Distance bottom - topWidth)
Amg::Vector3D chamberStripPos(const IdentifierHash &measHash) const
Returns the local strip position w.r.t. to the chamber origin.
double thickness() const override final
unsigned numChannels(const IdentifierHash &measHash) const
Returns the number of readout channels.
double moduleWidthL() const
Returns the length of the top edge of the chamber (top width)
unsigned nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
static IdentifierHash flipIsStrip(const IdentifierHash &meashHash, const bool isStrip)
Flips the isStrip bit from a parsed measurment hash.
double moduleThickness() const
Returns the thickness of the chamber.
unsigned numStrips(const IdentifierHash &layHash) const
Returns the number of strips for a given gasGap [1-3].
IdentifierHash layerHash(const Identifier &measId) const override final
virtual const TgcIdHelper & tgcIdHelper() const =0
access to TgcIdHelper
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
@ Tgc
Resitive Plate Chambers.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
std::ostream & operator<<(std::ostream &ostr, const Chamber::defineArgs &args)
Definition Chamber.cxx:14
GeoModel::TransientConstSharedPtr< StripLayer > StripLayerPtr
Definition StripLayer.h:100
std::array< StripLayerPtr, 6 > sensorLayouts
We have maximum 3 gasgaps times eta / phi measurement.
#define private