4#ifndef MUONREADOUTGEOMETRYR4_STGCREADOUTELEMENT_H
5#define MUONREADOUTGEOMETRYR4_STGCREADOUTELEMENT_H
15# include "Acts/Utilities/BoundFactory.hpp"
191 const unsigned channelType,
192 const unsigned channel,
193 const unsigned wireInGrp = 0);
Eigen::Affine3d Transform3D
This is a "hash" representation of an Identifier.
Identifier identify() const override final
Return the athena identifier.
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns the pointer to the muonIdHelperSvc.
MuonReadoutElement(const defineArgs &args)
The StripLayer interfaces the 2D description of the strip plane layout with the 3D description of the...
unsigned numChannels(const IdentifierHash &measHash) const
Returns the number of strips / wires / pads in a given gasGap.
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
const PadDesign & padDesign(const IdentifierHash &measHash) const
Retrieves the readoutElement Layer given the Identifier/Hash.
Amg::Vector3D leftStripEdge(const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
static unsigned gasGapNumber(const IdentifierHash &measHash)
Returns the gasGap (0 to 3) for a given identifierHash.
double padHeight(const IdentifierHash &measHash) const
Returns the height of all the pads that are not adjacent to the bottom edge of the trapezoid active a...
unsigned padEta(const IdentifierHash &measHash) const
Returns the Eta index of the pad for the given pad identifier.
double sFrameWidth() const
Width of the chamber frame on the short side.
double gasGapThickness() const
Returns the thickness of the gas gap.
double firstStripPitch(const IdentifierHash &measHash) const
Gas Gaps.
static unsigned chType(const IdentifierHash &measHash)
Returns the channel type for a given identifierHash.
int multilayer() const
Returns the multilayer of the sTgcReadoutElement.
StatusCode initElement() override final
Element initialization.
unsigned nChTypes() const
Number of Channel Types.
virtual ~sTgcReadoutElement()
localCornerArray localPadCorners(const IdentifierHash &measHash) const
std::array< Amg::Vector3D, 4 > globalCornerArray
Returns an array of four 3D vectors representing corner positions of the pads.
unsigned padNumberSeq(const IdentifierHash &measHash) const
Returns the pad number in the sequential numbering (1,2,3,...17,18,19,20,...)scheme from a pad identi...
double stripLength(const IdentifierHash &measHash) const
Length of each strip.
sTgcReadoutElement(defineArgs &&args)
std::array< Amg::Vector2D, 4 > localCornerArray
Returns an array of four 2D vectors representing corner positions of the pads.
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
double thickness() const override final
Thickness of the chamber.
double padPhiShift(const IdentifierHash &measHash) const
Returns the staggering shift of inner pad edges in the phi direction.
int padNumber(const Amg::Vector2D &hitPos, const IdentifierHash &measHash) const
Returns the pad Number given local position of hit and Identifier/Hash.
const sTgcIdHelper & m_idHelper
Amg::Vector3D rightStripEdge(const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
double sChamberLength() const
Length of the chamber on the short side.
const StripDesign & stripDesign(const IdentifierHash &measHash) const
Retrieves the readoutElement Layer given the Identifier/Hash.
globalCornerArray globalPadCorners(const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
ActsTrk::DetectorType detectorType() const override final
Overload from the ActsTrk::IDetectorElement.
bool isEtaZero(const IdentifierHash &measurementHash, const Amg::Vector2D &localPosition) const
unsigned numLayers() const
Returns the number of gas gap layers.
unsigned maxPadEta(const IdentifierHash &measHash) const
Returns the maximum number of pads that can be contained in a column of a pad. Used to match the pad ...
double lFrameWidth() const
Width of the chamber frame on the long side.
double anglePadPhi(const IdentifierHash &measHash) const
Returns the angular pitch of the pads in the phi direction.
IdentifierHash layerHash(const Identifier &measId) const override final
Transforms the Identifier into a layer hash.
unsigned numPadEta(const IdentifierHash &measHash) const
Returns the number of pads in the eta direction in the given layer.
unsigned padPhi(const IdentifierHash &measHash) const
Returns the Phi index of the pad for the given pad identifier.
const parameterBook & getParameters() const
double beamlineRadius(const IdentifierHash &measHash) const
Returns the distance between the gasGap center and the beamline.
double chamberHeight() const
Height of the chamber.
ReadoutChannelType
ReadoutChannelType to distinguish the available readout channels Pad - pad readout channel Strip - et...
Amg::Vector3D localPosition(const IdentifierHash &measHash) const
Returns the local position in the local gasGap frame.
double lChamberLength() const
Length of the chamber on the long side.
static unsigned channelNumber(const IdentifierHash &measHash)
Returns channel position for a given identifierHash.
Amg::Transform3D fromGapToChamOrigin(const IdentifierHash &layerHash) const
Returns the transform to go from the gasGap -> chamber origin.
Amg::Vector3D globalChannelPosition(const ActsTrk::GeometryContext &ctx, const IdentifierHash &measHash) const
Returns the global pad/strip/wireGroup position.
unsigned numPadPhi(const IdentifierHash &measHash) const
Returns the number of pads in the Phi direction in the given gasGap layer.
std::pair< unsigned, unsigned > padEtaPhi(const IdentifierHash &measHash) const
Returns a pair of Eta and Phi index for the given pad identifier.
Amg::Vector2D localChannelPosition(const IdentifierHash &measHash) const
Returns the local position of the measurement in the repsective frame.
const WireGroupDesign & wireDesign(const IdentifierHash &measHash) const
Retrieves the readoutElement Layer given the Identifier/Hash.
static IdentifierHash createHash(const unsigned gasGap, const unsigned channelType, const unsigned channel, const unsigned wireInGrp=0)
Create a measurement hash from the Identifier fields.
double gasGapPitch() const
Distance between 2 gas gaps.
const StripLayer & stripLayer(const IdentifierHash &measId) const
virtual const sTgcIdHelper & stgcIdHelper() 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.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Affine3d Transform3D
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)
Helper struct to ship the defining arguments of the detector element around.
Set of parameters to describe an sTGC chamber.
std::vector< StripLayer > stripLayers
Associated strip & wire layers.
double sFrameWidth
Width of the chamber frame on the short side.
std::vector< StripLayer > padLayers
Associated wire & pad layers.
double yCutout
Diamond cutout height.
double halfChamberHeight
sTGC Chamber Details
double sHalfChamberLength
Length of the chamber on the short side.
unsigned numLayers
Number of gas gap layers.
double halfChamberTck
Thickness of the chamber.
unsigned nChTypes
Number of channel types.
std::vector< double > firstStripPitch
firstStripPitch needed for the globalChannelPosition function
double lFrameWidth
Width of the chamber frame on the long side.
std::shared_ptr< Acts::SurfaceBoundFactory > layerBounds
double gasTck
Thickness of the gas gap.
double lHalfChamberLength
Length of the chamber on the long side.