CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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
 
virtual ~CSCStripTopology ()
 
- Public Member Functions inherited from OffsetRadialStripTopology
virtual int channel (int strip) const =0
 
virtual int channel (const LocalPoint &lp) const =0
 
virtual LocalPoint localPosition (float strip) const
 
virtual LocalPoint localPosition (const MeasurementPoint &) const
 
virtual MeasurementPoint measurementPosition (const LocalPoint &) const
 
 OffsetRadialStripTopology (int numberOfStrips, float stripPhiPitch, float detectorHeight, float radialDistance, float stripOffset, float yCentre)
 
virtual float strip (const LocalPoint &) const
 
float stripAngle (float strip) const
 
virtual float stripOffset (void) const
 
virtual ~OffsetRadialStripTopology ()
 
- Public Member Functions inherited from CSCRadialStripTopology
float angularWidth () const
 
float centreToIntersection () const
 
 CSCRadialStripTopology (int ns, float aw, float dh, float r, float yAx=1.f, float yMid=0.)
 
float detHeight () const
 
virtual LocalError localError (float strip, float stripErr2) const
 
virtual LocalError localError (const MeasurementPoint &, const MeasurementError &) const
 
virtual float localPitch (const LocalPoint &) const
 
virtual float localStripLength (const LocalPoint &) const
 
virtual MeasurementError measurementError (const LocalPoint &, const LocalError &) const
 
virtual int nearestStrip (const LocalPoint &) const
 
virtual int nstrips () const
 
float originToIntersection () const
 
float phiOfOneEdge () const
 
virtual float phiPitch (void) const
 
virtual float stripLength () const
 
float xOfStrip (int strip, float y) const
 
float yAxisOrientation () const
 
float yCentreOfStripPlane () const
 
float yDistanceToIntersection (float y) const
 
float yExtentOfStripPlane () const
 
virtual ~CSCRadialStripTopology ()
 
- Public Member Functions inherited from RadialStripTopology
virtual float pitch () const GCC11_FINAL
 
virtual ~RadialStripTopology ()
 
- Public Member Functions inherited from StripTopology
virtual float coveredStrips (const LocalPoint &lp1, const LocalPoint &lp2) const
 
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 (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...
 
virtual ~StripTopology ()
 
- 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,
LocalTag
Local2DPoint
 
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 ( 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.

4  :
5  OffsetRadialStripTopology( ns, aw, dh, r, aoff, ymid ) {}
OffsetRadialStripTopology(int numberOfStrips, float stripPhiPitch, float detectorHeight, float radialDistance, float stripOffset, float yCentre)
tuple dh
Definition: cuy.py:353
CSCStripTopology::~CSCStripTopology ( )
virtual

Definition at line 7 of file CSCStripTopology.cc.

7 {}

Member Function Documentation

virtual CSCStripTopology* CSCStripTopology::clone ( ) const
pure virtual
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.

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

Referenced by CSCLayerGeometry::intersectionOfStripAndWire().

9  {
10 
11  const float fprec = 1.E-06;
12 
13  // slope of strip
14  float strangle = M_PI_2 - stripAngle( strip );
15  float ms = 0;
16  if ( fabs(strangle) > fprec ) ms = tan( strangle );
17 
18  // intercept of strip
19  float cs = - originToIntersection();
20 
21  LogTrace("CSCStripTopology|CSC") << "CSCStripTopology: strip=" << strip <<
22  ", strip angle = " << strangle <<
23  ", intercept on y axis=" << cs;
24 
25  return std::pair<float,float>(ms, cs);
26 }
auto_ptr< ClusterSequence > cs
#define M_PI_2
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
#define LogTrace(id)
float stripAngle(float strip) const
virtual float strip(const LocalPoint &) const
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<<().

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

Return local y limits of strip plane

Definition at line 28 of file CSCStripTopology.cc.

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

Referenced by CSCLayerGeometry::yLimitsOfStripPlane().

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

Friends And Related Function Documentation

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

Definition at line 41 of file CSCStripTopology.cc.

42 {
43  st.put( os ) << " isa " << static_cast<const OffsetRadialStripTopology&>( st );
44  return os;
45 }