#include <CSCStripTopology.h>
Public Member Functions | |
virtual CSCStripTopology * | clone () 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) |
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.
Definition at line 28 of file CSCStripTopology.h.
CSCStripTopology::CSCStripTopology | ( | int | ns, |
float | aw, | ||
float | dh, | ||
float | r, | ||
float | aoff, | ||
float | ymid | ||
) |
Constructor
ns | number of strips |
aw | angular width of a strip |
dh | detector height (extent of strip plane along long symmetry axis)) |
r | radial distance from symmetry centre of strip plane to the point at which the outer edges of the two extreme strips (projected) intersect. |
aoff | offset of y symmetry axis from local y as fraction of angular strip width. |
ymid | local 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.
{}
virtual CSCStripTopology* CSCStripTopology::clone | ( | ) | const [pure virtual] |
Implemented in CSCGangedStripTopology, and CSCUngangedStripTopology.
Referenced by CSCLayerGeometry::CSCLayerGeometry(), and CSCLayerGeometry::operator=().
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); }
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; }