Go to the documentation of this file.00001 #ifndef _CSCRADIAL_STRIP_TOPOLOGY_H_
00002 #define _CSCRADIAL_STRIP_TOPOLOGY_H_
00003
00004 #include "Geometry/CommonTopologies/interface/RadialStripTopology.h"
00005
00028 class CSCRadialStripTopology : public RadialStripTopology {
00029 public:
00030
00045 CSCRadialStripTopology( int ns, float aw, float dh, float r, float yAx = 1.f, float yMid = 0.);
00046
00050 virtual ~CSCRadialStripTopology(){}
00051
00052
00053
00054
00055
00060 virtual LocalPoint localPosition(float strip) const;
00061
00075 virtual LocalPoint localPosition(const MeasurementPoint&) const;
00076
00083 virtual LocalError localError(float strip, float stripErr2) const;
00084
00090 virtual LocalError localError(const MeasurementPoint&, const MeasurementError&) const;
00091
00099 virtual float strip(const LocalPoint&) const;
00100
00101
00106 virtual float localPitch(const LocalPoint&) const;
00107
00119 virtual float stripAngle(float strip) const;
00120
00124 virtual int nstrips() const { return theNumberOfStrips; }
00125
00129 virtual float stripLength() const { return theDetHeight; }
00130
00134 virtual float localStripLength(const LocalPoint& ) const;
00135
00136
00137
00138
00139
00140
00141
00142 virtual MeasurementPoint measurementPosition( const LocalPoint& ) const;
00143
00144 virtual MeasurementError measurementError( const LocalPoint&, const LocalError& ) const;
00145
00153 virtual int channel( const LocalPoint& ) const;
00154
00155
00156
00157
00158
00159
00163 float angularWidth() const { return theAngularWidth;}
00164
00168 virtual float phiPitch(void) const { return angularWidth(); }
00169
00173 float detHeight() const { return theDetHeight;}
00174
00178 float yExtentOfStripPlane() const { return theDetHeight; }
00179
00185 float centreToIntersection() const { return theCentreToIntersection; }
00186
00192 float originToIntersection() const { return (theCentreToIntersection - yCentre); }
00193
00206 float phiOfOneEdge() const { return thePhiOfOneEdge; }
00207
00212 float xOfStrip(int strip, float y) const;
00213
00217 virtual int nearestStrip(const LocalPoint&) const;
00218
00222 float yAxisOrientation() const { return theYAxisOrientation; }
00223
00227 float yCentreOfStripPlane() const { return yCentre; }
00228
00232 float yDistanceToIntersection( float y ) const;
00233
00234 friend std::ostream & operator<<(std::ostream&, const RadialStripTopology& );
00235
00236 private:
00237
00238 int theNumberOfStrips;
00239 float theAngularWidth;
00240 float theDetHeight;
00241 float theCentreToIntersection;
00242 float thePhiOfOneEdge;
00243 float theYAxisOrientation;
00244 float yCentre;
00245 };
00246
00247 #endif
00248
00249