CMS 3D CMS Logo

Public Member Functions | Friends

CSCStripTopology Class Reference

#include <CSCStripTopology.h>

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

List of all members.

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 ()

Friends

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

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.

                                                                                               :
   OffsetRadialStripTopology( ns, aw, dh, r, aoff, ymid ) {}
CSCStripTopology::~CSCStripTopology ( ) [virtual]

Definition at line 7 of file CSCStripTopology.cc.

{}

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 LogTrace, M_PI_2, CSCRadialStripTopology::originToIntersection(), OffsetRadialStripTopology::stripAngle(), and funct::tan().

Referenced by CSCLayerGeometry::intersectionOfStripAndWire().

                                                                           {
  
  const float fprec = 1.E-06;

  // slope of strip
  float strangle = M_PI_2 - stripAngle( strip ); 
  float ms = 0;
  if ( fabs(strangle) > fprec ) ms = tan( strangle );

  // intercept of strip
  float cs = - originToIntersection();

  LogTrace("CSCStripTopology|CSC") << "CSCStripTopology: strip=" << strip <<
    ", strip angle = " << strangle <<
    ", intercept on y axis=" << cs;

  return std::pair<float,float>(ms, cs);
}
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().

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

Friends And Related Function Documentation

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

Definition at line 41 of file CSCStripTopology.cc.

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