10#ifndef MUONREADOUTGEOMETRY_CSCREADOUTELEMENT_H
11#define MUONREADOUTGEOMETRY_CSCREADOUTELEMENT_H
20 class CombinedMuonAlignModule;
23class CscInternalAlignmentPar;
123 double StripWidth(
int chlayer,
int measphi)
const;
124 double StripPitch(
int chlayer,
int measphi)
const;
139 inline double excent()
const;
Scalar eta() const
pseudorapidity method
constexpr std::array< T, N > make_array(const T &def_val)
Helper function to initialize in-place arrays with non-zero values.
int wireLayer(const Identifier &id) const
bool measuresPhi(const Identifier &id) const override
CscReadoutElement(GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr)
This is a "hash" representation of an Identifier.
double lengthUpToMaxWidth() const
void set_wirepitch(double)
Amg::Vector3D localClusterPos(int eta, int wireLayer, int measPhi, double x0) const
takes into account internal alignment parameters, hence gives generally answer (local here is the sta...
void set_nwirelayers(int)
virtual int numberOfLayers(bool) const override final
number of layers in phi/eta projection
virtual int surfaceHash(const Identifier &id) const override final
returns the hash function to be used to look up the surface and surface transform for a given identif...
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position If the strip number is outside the range of valid strips, the function will return fal...
Amg::Vector3D localStripPos(const Identifier &id) const
takes into account internal alignment parameters, hence gives generally accurate answer (local here i...
double stripLength(int chamberLayer, int measuresPhi, int stripNumber, double &epsilon) const
std::array< double, maxwlay > m_wireplanez
Amg::Vector3D nominalLocalStripPos(const Identifier &id) const
ignores internal alignment parameters, hence gives generally incorrect answer (local here is the stat...
double getGasGapIntAlign_t(int gasGap) const
Amg::Vector3D localStripLayerPos(const IdentifierHash &id) const
double shortWidth() const
double StripPitch(int chlayer, int measphi) const
double StripWidth(int chlayer, int measphi) const
double m_first_strip_localcoo
virtual int layerHash(const Identifier &id) const override final
returns the hash function to be used to look up the center and the normal of the tracking surface for...
double cathodeReadoutPitch(int chLayer, int measuresPhi) const
void set_nwiresperlayer(int)
friend class Muon::CombinedMuonAlignModule
void set_nstripsperlayer(int)
void set_stripwidth(double)
virtual bool measuresPhi(const Identifier &id) const override final
returns whether the given identifier measures phi or not
Amg::Vector3D nominalLocalClusterPos(int eta, int wireLayer, int measPhi, double x0) const
ignores internal alignment parameters, hence gives generally incorrect answer (local here is the stat...
virtual int stripNumber(const Amg::Vector2D &pos, const Identifier &id) const override final
strip number corresponding to local position.
Amg::Vector3D wireLayerPos(const Identifier &id) const
void set_strippitch(double)
double getGasGapIntAlign_rots(int gasGap) const
double getGasGapIntAlign_rotz(int gasGap) const
friend class MuonChamberLite
double getGasGapIntAlign_z(int gasGap) 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...
int NetaStripLayers() const
Amg::Vector3D globalToLocalCoords(const Amg::Vector3D &x, const Identifier &id) const
double activeWidth(int measuresPhi) const
double sinStereo(const Identifier &stripId) const
Amg::Vector3D globalPos(const Amg::Vector3D &localP) const
station-level method: does not depend on the strip view/layer, hence it cannot account for internal a...
double lengthCorrection(int measuresPhi, double stripPos) const
virtual int numberOfStrips(const Identifier &layerId) const override final
number of strips per layer
double m_RlengthUpToMaxWidth
virtual ~CscReadoutElement()
Amg::Vector3D localPos(const Amg::Vector3D &globalP) const
station-level method: does not depend on the strip view/layer, hence it cannot account for internal a...
double m_anodecathode_distance
int NphiStrips(int gasgaplayer) const
Amg::Vector3D localToGlobalCoords(const Amg::Vector3D &x, const Identifier &id) const
localToGlobalCoords and Transf connect the Gas Gap Frame (defined as a Sensitive Detector) to the Glo...
Amg::Transform3D nominalTransform(const Identifier &id) const
like tracking Transform but nominal - returns a transform not a reference to it
double getGasGapIntAlign_rott(int gasGap) const
double m_cscIntTransl[4][3]
Amg::Vector3D stripPosOnTrackingSurface(const Identifier &id) const
nominal strip pos in the tracking local frame of the measurement surface
void set_first_strip_localcoo(double)
Amg::Vector3D stripPos(const Identifier &id) const
takes into account internal alignment parameters, hence gives accurate answer
double xCoordinateInTrackingFrame(const Identifier &id) const
void set_nstriplayers(int)
virtual double distanceToReadout(const Amg::Vector2D &pos, const Identifier &id) const override final
distance to readout.
Amg::Transform3D globalToLocalTransf(const Identifier &id) const
Amg::Vector3D nominalCenter(int gasGap) const
like tracking center but nominal - returns a Amg::Vector3D not a reference to it
friend class Muon::CscAlignModule
CscReadoutElement(GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr)
Amg::Vector3D nominalGlobalPos(const Amg::Vector3D &localP) const
ignores internal alignment parameters, hence gives generally incorrect answer
double roxacellWidth() const
Amg::Transform3D localToGlobalTransf(const Identifier &id) const
void setChamberLayer(int cl)
virtual void fillCache() override
int NetaStrips(int gasgaplayer) const
virtual int boundaryHash(const Identifier &id) const override final
returns the hash function to be used to look up the surface boundary for a given identifier
Amg::Vector3D originForInternalALines(int gasGap) const
like tracking center but nominal - returns a Amg::Vector3D not a reference to it
Amg::Vector3D localWireLayerPos(const Identifier &id) const
virtual bool containsId(const Identifier &id) const override
Amg::Vector3D nominalStripPos(const Identifier &id) const
ignores internal alignment parameters, hence gives generally incorrect answer
Amg::Vector3D localStripLayerPos(const Identifier &id) const
int maxNumberOfStrips(int measuresPhi) const
double anodeCathodeDistance() const
int NphiStripLayers() const
void setCscInternalAlignmentPar(const ALinePar &)
void set_first_wire_localcoo(double)
double getGasGapIntAlign_s(int gasGap) const
double m_first_wire_localcoo
Amg::Vector3D stripLayerPos(const Identifier &id) const
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
MuonClusterReadoutElement(GeoVFullPhysVol *pv, MuonDetectorManager *mgr, Trk::DetectorElemType detType)
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
const CscIdHelper * cscIdHelper() const
const MuonDetectorManager * manager() const
double getLongSsize() const
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 2, 1 > Vector2D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the Athena extensions are properly loaded.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.