CMS 3D CMS Logo

List of all members | Public Member Functions | Friends
CSCStripTopology Class Referenceabstract

#include <CSCStripTopology.h>

Inheritance diagram for CSCStripTopology:
OffsetRadialStripTopology CSCRadialStripTopology RadialStripTopology StripTopology Topology CSCGangedStripTopology CSCUngangedStripTopology

Public Member Functions

virtual CSCStripTopologyclone () const =0
 
 CSCStripTopology (int ns, float aw, float dh, float r, float aoff, float ymid)
 
std::pair< float, float > equationOfStrip (float strip) const
 
virtual std::ostream & put (std::ostream &) const =0
 
std::pair< float, float > yLimitsOfStripPlane () const
 
 ~CSCStripTopology () override
 
- Public Member Functions inherited from OffsetRadialStripTopology
int channel (const LocalPoint &lp) const override=0
 
virtual int channel (int strip) const =0
 
LocalPoint localPosition (const MeasurementPoint &) const override
 
LocalPoint localPosition (float strip) const override
 
MeasurementPoint measurementPosition (const LocalPoint &) const override
 
 OffsetRadialStripTopology (int numberOfStrips, float stripPhiPitch, float detectorHeight, float radialDistance, float stripOffset, float yCentre)
 
float strip (const LocalPoint &) const override
 
float stripAngle (float strip) const override
 
virtual float stripOffset (void) const
 
 ~OffsetRadialStripTopology () override
 
- Public Member Functions inherited from CSCRadialStripTopology
float angularWidth () const override
 
float centreToIntersection () const override
 
 CSCRadialStripTopology (int ns, float aw, float dh, float r, float yAx=1.f, float yMid=0.)
 
float detHeight () const override
 
LocalError localError (const MeasurementPoint &, const MeasurementError &) const override
 
LocalError localError (float strip, float stripErr2) const override
 
float localPitch (const LocalPoint &) const override
 
float localStripLength (const LocalPoint &) const override
 
MeasurementError measurementError (const LocalPoint &, const LocalError &) const override
 
int nearestStrip (const LocalPoint &) const override
 
int nstrips () const override
 
float originToIntersection () const override
 
float phiOfOneEdge () const override
 
float phiPitch (void) const override
 
float stripLength () const override
 
float xOfStrip (int strip, float y) const override
 
float yAxisOrientation () const override
 
float yCentreOfStripPlane () const override
 
float yDistanceToIntersection (float y) const override
 
float yExtentOfStripPlane () const override
 
 ~CSCRadialStripTopology () override
 
- Public Member Functions inherited from RadialStripTopology
virtual LocalError localError (float strip, float stripErr2) const=0
 
virtual LocalError localError (float strip, float stripErr2, const Topology::LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalPoint localPosition (float strip) const=0
 
virtual LocalPoint localPosition (float strip, const Topology::LocalTrackPred &) const
 conversion taking also the predicted track state More...
 
float pitch () const final
 
 ~RadialStripTopology () override
 
- Public Member Functions inherited from StripTopology
virtual float coveredStrips (const LocalPoint &lp1, const LocalPoint &lp2) const
 
virtual LocalError localError (const MeasurementPoint &, const MeasurementError &) const=0
 
virtual LocalError localError (const MeasurementPoint &mp, const MeasurementError &me, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalError localError (float strip, float stripErr2, const Topology::LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual float localPitch (const LocalPoint &lp, const Topology::LocalTrackAngles &) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
virtual LocalPoint localPosition (const MeasurementPoint &) const=0
 
virtual LocalPoint localPosition (const MeasurementPoint &mp, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalPoint localPosition (float strip, const Topology::LocalTrackPred &) const
 conversion taking also the predicted track state More...
 
virtual float localStripLength (const LocalPoint &lp, const Topology::LocalTrackAngles &) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
virtual float strip (const LocalPoint &lp, const Topology::LocalTrackAngles &) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
 ~StripTopology () override
 
- Public Member Functions inherited from Topology
virtual int channel (const LocalPoint &lp, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
virtual LocalError localError (const MeasurementPoint &mp, const MeasurementError &me, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalPoint localPosition (const MeasurementPoint &mp, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual MeasurementError measurementError (const LocalPoint &lp, const LocalError &le, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
virtual MeasurementPoint measurementPosition (const LocalPoint &lp, const LocalTrackAngles &) const
 conversion taking also the angle from the track state More...
 
virtual ~Topology ()
 

Friends

std::ostream & operator<< (std::ostream &s, const CSCStripTopology &r)
 

Additional Inherited Members

- Public Types inherited from Topology
typedef Point2DBase< double, LocalTagLocal2DPoint
 
typedef Vector2D::MathVector MathVector2D
 
typedef Basic2DVector< double > Vector2D
 

Detailed Description

ABC interface for all endcap muon CSC radial strip topologies.
In the Endcap Muon CSCs, the cathode strips are strictly fan-shaped, each subtending a constant azimuthal angle, and project to a point. In every station and ring except for ME13 the nominal (perfect) geometry has this point of intersection (approximately) on the beam line. That constraint is unused as far as possible in order to allow non-perfect geometry and misalignment scenarios.
Note that the base class RST is concrete but this class is again abstract (for both historical and operational reasons.)
Alternate strip layers in each CSC are relatively offset by half-a-strip width (except in ME11) so the CSCStripTopology must be an OffsetRadialStripTopology, rather than a simple RadialStripTopology in which the long symmetry axis of the plane of strips is aligned with the local y axis of the detector.

Author
Tim Cox

Definition at line 28 of file CSCStripTopology.h.

Constructor & Destructor Documentation

◆ CSCStripTopology()

CSCStripTopology::CSCStripTopology ( int  ns,
float  aw,
float  dh,
float  r,
float  aoff,
float  ymid 
)

Constructor

Parameters
nsnumber of strips
awangular width of a strip
dhdetector height (extent of strip plane along long symmetry axis))
rradial distance from symmetry centre of strip plane to the point at which the outer edges of the two extreme strips (projected) intersect.
aoffoffset of y symmetry axis from local y as fraction of angular strip width.
ymidlocal y of symmetry centre of strip plane before it is offset.

Definition at line 4 of file CSCStripTopology.cc.

5  : OffsetRadialStripTopology(ns, aw, dh, r, aoff, ymid) {}

◆ ~CSCStripTopology()

CSCStripTopology::~CSCStripTopology ( )
override

Definition at line 7 of file CSCStripTopology.cc.

7 {}

Member Function Documentation

◆ clone()

virtual CSCStripTopology* CSCStripTopology::clone ( ) const
pure virtual

◆ equationOfStrip()

std::pair< float, float > CSCStripTopology::equationOfStrip ( float  strip) const

Return slope and intercept of straight line representing (centre-line of) a strip in 2-dim local coordinates.

The return value is a pair p with p.first = m, p.second = c, where y=mx+c.

Definition at line 9 of file CSCStripTopology.cc.

9  {
10  const float fprec = 1.E-06;
11 
12  // slope of strip
13  float strangle = M_PI_2 - stripAngle(strip);
14  float ms = 0;
15  if (fabs(strangle) > fprec)
16  ms = tan(strangle);
17 
18  // intercept of strip
19  float cs = -originToIntersection();
20 
21  LogTrace("CSCStripTopology|CSC") << "CSCStripTopology: strip=" << strip << ", strip angle = " << strangle
22  << ", intercept on y axis=" << cs;
23 
24  return std::pair<float, float>(ms, cs);
25 }

References fwrapper::cs, LogTrace, M_PI_2, CSCRadialStripTopology::originToIntersection(), OffsetRadialStripTopology::strip(), OffsetRadialStripTopology::stripAngle(), and funct::tan().

Referenced by CSCLayerGeometry::intersectionOfStripAndWire().

◆ put()

virtual std::ostream& CSCStripTopology::put ( std::ostream &  ) const
pure virtual

Virtual output function which is used to implement op<<

Implemented in CSCGangedStripTopology, and CSCUngangedStripTopology.

Referenced by operator<<().

◆ yLimitsOfStripPlane()

std::pair< float, float > CSCStripTopology::yLimitsOfStripPlane ( ) const

Return local y limits of strip plane

Definition at line 27 of file CSCStripTopology.cc.

27  {
28  // use functions from base class
29  float ylow = yCentreOfStripPlane() - yExtentOfStripPlane() / 2.;
30  float yhigh = yCentreOfStripPlane() + yExtentOfStripPlane() / 2.;
31 
32  return std::pair<float, float>(ylow, yhigh);
33 }

References CSCRadialStripTopology::yCentreOfStripPlane(), and CSCRadialStripTopology::yExtentOfStripPlane().

Referenced by CSCLayerGeometry::yLimitsOfStripPlane().

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  s,
const CSCStripTopology r 
)
friend

Definition at line 39 of file CSCStripTopology.cc.

39  {
40  st.put(os) << " isa " << static_cast<const OffsetRadialStripTopology&>(st);
41  return os;
42 }
CSCRadialStripTopology::yExtentOfStripPlane
float yExtentOfStripPlane() const override
Definition: CSCRadialStripTopology.h:174
fwrapper::cs
unique_ptr< ClusterSequence > cs
Definition: fastjetfortran_madfks.cc:47
CSCRadialStripTopology::yCentreOfStripPlane
float yCentreOfStripPlane() const override
Definition: CSCRadialStripTopology.h:223
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
OffsetRadialStripTopology::OffsetRadialStripTopology
OffsetRadialStripTopology(int numberOfStrips, float stripPhiPitch, float detectorHeight, float radialDistance, float stripOffset, float yCentre)
Definition: OffsetRadialStripTopology.cc:26
OffsetRadialStripTopology::stripAngle
float stripAngle(float strip) const override
Definition: OffsetRadialStripTopology.cc:82
alignCSCRings.r
r
Definition: alignCSCRings.py:93
OffsetRadialStripTopology::strip
float strip(const LocalPoint &) const override
Definition: OffsetRadialStripTopology.cc:73
M_PI_2
#define M_PI_2
Definition: CSCGattiFunction.cc:6
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
CSCRadialStripTopology::originToIntersection
float originToIntersection() const override
Definition: CSCRadialStripTopology.h:188
cuy.dh
dh
Definition: cuy.py:355