|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MUONREADOUTGEOMETRY_TGCREADOUTELEMENT_H
6 #define MUONREADOUTGEOMETRY_TGCREADOUTELEMENT_H
9 #include "Identifier/Identifier.h"
258 const double refPoint)
const;
262 const int gangNum)
const;
276 std::array<double, s_maxGasGap>
m_gasPlaneZ{make_array<double, s_maxGasGap>(-9999.)};
295 #endif // MUONREADOUTGEOMETRY_TGCREADOUTELEMENT_H
int stationNameIndex(const std::string &name) const
double physicalDistanceFromBase() const
virtual int numberOfLayers(bool isStrip) const override
number of layers in phi/eta projection
double stripPosOnShortBase(int strip) const
std::string m_readout_name
bool isTriplet() const
Returns true if the chamber has 3 gasgaps.
const TgcIdHelper & m_idHelper
Ensure that the Athena extensions are properly loaded.
virtual double distanceToReadout(const Amg::Vector2D &pos, const Identifier &id) const override
distance to readout.
Amg::Vector3D localStripDir(int gasGap, int strip) const
Returns the local strip direction of a strip.
double chamberWidth(double z) const
virtual bool spacePointPosition(const Identifier &phiId, const Identifier &etaId, Amg::Vector2D &pos) const override
space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in th...
double stripHighEdgeLocX(int gasGap, int strip, double radialPos) const
Returns the local X of the right edge of the strip at a given local radial position.
virtual int stripNumber(const Amg::Vector2D &pos, const Identifier &id) const override final
strip number corresponding to local position.
bool isForward() const
Returns true if the chamber is mounted on the most inner ring, i.e. a TxF chamber.
Eigen::Matrix< double, 2, 1 > Vector2D
Amg::Vector3D channelPos(int gasGap, bool isStrip, int channel) const
double gangThickness() const
Returns the spatial thickness of the wire gang.
Amg::Vector3D wireGangPos(int gasGap, int gang) const
double stripDeltaPhi() const
static constexpr int s_maxGasGap
const std::string & readOutName() const
double stripCenterLocX(int gasGap, int strip, double radialPos) const
Returns the local X of the strip center at a given local radial position.
bool validGap(int gasGap) const
Returns whether the gasGap is within the allowed range [1-nGasGaps()].
double wireGangBottomX(int gasGap, int gangNum) const
Returns the local X of the bottom wire in the wireGang i in gasGap j.
virtual int boundaryHash(const Identifier &id) const override
returns the hash function to be used to look up the surface boundary for a given identifier
double stripLength() const
Returns the length of each strip which is equal to the height of the chamber.
virtual int numberOfStrips(int layer, bool isStrip) const override
bool isEndcap() const
Returns true if the chamber is belonging to the 48-fold TxE chambers.
int findGang(int gasGap, const Amg::Vector3D &extPos) const
Returns the gang number that's closest to the given external position.
virtual ~TgcReadoutElement()=default
double m_stripSlope
Cache of the function call 1.
Amg::Vector3D stripDir(int gasGap, int strip) const
Returns the direction of a strip.
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override
strip position If the strip number is outside the range of valid strips, the function will return fal...
Amg::Vector3D stripPos(const Identifier &id) const
double stripLowEdgeLocX(int gasGap, int strip, double radialPos) const
Returns the local X of the left edge of the strip at a given local radial position.
int nGasGaps() const
Returns the number of gas gaps associated with the readout element (2 or 3)
Amg::Vector3D wireGangPos(const Identifier &id) const
Returns the global position of a wireGang.
Amg::Vector3D channelPos(const Identifier &id) const
Returns the position of the active channel (wireGang or strip)
virtual bool measuresPhi(const Identifier &id) const override
returns whether the given identifier measures phi or not
const Muon::IMuonIdHelperSvc * idHelperSvc() const
static int surfaceHash(int GasGap, bool isStrip)
void setPlaneZ(double value, int gasGap)
Set the local Z coordinate of the i-th gasGap [1-3].
double wireGangTopX(int gasGap, int gangNum) const
Returns the local X of the top wire in the wireGang i in gasGap j.
std::pair< double, int > stripNumberToFetch(int gasGap, int inStrip) const
Returns whether a strip needs to be flipped and the final strip number parsed to the TgcReadoutParams...
double gangLongWidth(int gasGap, int gang) const
Returns the length of the most top wire in the gang.
virtual bool containsId(const Identifier &id) const override
double stripWidth(int gasGap, int strip) const
Returns the width of a given strip in the gasGap i.
Amg::Vector3D stripDir(const Identifier &id) const
double nPitchesToGang(int gasGap, int gang) const
Returns the number of wire pitches that have to be travelled to reach gang i.
Amg::Vector3D localStripPos(int gasGap, int strip) const
std::array< double, s_maxGasGap > m_gasPlaneZ
Amg::Vector3D localGasGapPos(int gg) const
Returns the local position of the gasGap in the AMDB coordinate system.
double frameXwidth() const
double gangShortWidth(int gasGap, int gang) const
Returns the length of the most bottom wire in the gang.
int nWires(int gasGap) const
Returns the total number of wires in a given gas gap.
bool validStrip(int gasGap, int strip) const
Returns whether the strip in the given gasgap is within the allowed range
Eigen::Affine3d Transform3D
Amg::Vector3D localStripDir(const Identifier &id) const
Amg::Vector3D localChannelPos(int gasGap, bool isStrip, int channel) const
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
double wireLength(int wire) const
Returns the length of a wire.
double gangRadialLength(int gasGap, int gang) const
Returns the length of the wire gang along the radial direction [pitch x N_{wire}^{gang}].
Amg::Vector3D localSpacePoint(const Identifier &stripId, const Amg::Vector3D &etaHitPos, const Amg::Vector3D &phiHitPos) const
virtual int numberOfStrips(const Identifier &layerId) const override
number of strips per layer
double gangCentralWidth(int gasGap, int gang) const
Returns the length of the central wire in the gang.
int nStrips(int gasGap) const
Returns the number of strips in a given gas gap.
bool validGang(int gasGap, int wireGang) const
Returns whether the wire gang in the given gasgap is within the allowed range.
int nWireGangs(int gasGap) const
Returns the number of wire gangs (Random grouping of wires) in a given gas gap.
const Amg::Transform3D & localToGlobalTransf(const Identifier &id) const
Returns the local -> global transformation x-axis: Parallel to the wires (strips) if the Identifier b...
Amg::Vector3D stripPos(int gasGap, int strip) const
Returns the global position of a strip.
GeoModel::TransientConstSharedPtr< TgcReadoutParams > m_readoutParams
double stripLongWidth(int, int) const
double wireGangLocalX(const int gasGap, const int gangNum) const
Returns the local X of the wire gang in gasGap i
double frameZwidth() const
Amg::Vector3D localChannelPos(const Identifier &id) const
Returns the local position of the active channel (wireGang or strip)
TgcReadoutElement(GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr)
Eigen::Matrix< double, 3, 1 > Vector3D
double wirePitch() const
Returns the pitch of the wires.
void setReadOutName(const std::string &rName)
void setReadOutParams(GeoModel::TransientConstSharedPtr< TgcReadoutParams > pars)
double stripShortWidth(int, int) const
virtual const TgcIdHelper & tgcIdHelper() const =0
access to TgcIdHelper
double stripPitch(int gasGap, int strip) const
Returns the pitch of the given strip in gasGap i.
int nWires(int gasGap, int gang) const
Returns the number of wires in a given gang in gas gap i.
double chamberLocPhiMax() const
Returns the maximum angle measured from the center that's covered by the chamber.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Amg::Vector3D localStripPos(const Identifier &id) const
double stripPosOnLargeBase(int strip) const
bool isDoublet() const
Returns true if the chamber has 2 gasgaps.
int findStrip(int gasGap, const Amg::Vector3D &extPos) const
Returns the strip number that's closest to the given external position.
Amg::Vector3D localWireGangPos(const Identifier &id) const
double chamberLocPhiMin() const
Returns the minimum angle measured from the center that's covered by the chamber.
double stripLocalX(const int stripNum, const double locY, const double refPoint) const
Returns the local X given the reference point E.g.
const TgcReadoutParams * getReadoutParams() const
void setFrameThickness(const double frameH, const double frameAB)
Amg::Vector3D localWireGangPos(int gasGap, int gang) const
Returns the local position fo a wireGang.
virtual int layerHash(const Identifier &id) const override
returns the hash function to be used to look up the center and the normal of the tracking surface for...
virtual void fillCache() override
Amg::Transform3D globalToLocalTransf(const Identifier &id) const
Returns the global -> local transformation.
virtual int surfaceHash(const Identifier &id) const override
returns the hash function to be used to look up the surface and surface transform for a given identif...