CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/Geometry/CommonTopologies/interface/RadialStripTopology.h

Go to the documentation of this file.
00001 #ifndef _RADIAL_STRIP_TOPOLOGY_H_
00002 #define _RADIAL_STRIP_TOPOLOGY_H_
00003 
00004 #include "Geometry/CommonTopologies/interface/StripTopology.h"
00005 
00028 class RadialStripTopology : public StripTopology {
00029  public:
00030 
00031  
00035   virtual ~RadialStripTopology(){}
00036 
00037   // =========================================================
00038   // StripTopology interface - implement pure virtual methods
00039   // =========================================================
00040 
00045   virtual LocalPoint localPosition(float strip) const=0;
00046 
00060   virtual LocalPoint localPosition(const MeasurementPoint&) const=0;
00061 
00068   virtual LocalError localError(float strip, float stripErr2) const=0;
00069 
00075   virtual LocalError localError(const MeasurementPoint&, const MeasurementError&) const=0;
00076 
00084   virtual float strip(const LocalPoint&) const=0;
00085 
00086 
00093   virtual float pitch() const GCC11_FINAL;
00094 
00099   virtual float localPitch(const LocalPoint&) const=0;
00100 
00112   virtual float stripAngle(float strip) const=0;
00113 
00117   virtual int nstrips() const=0;
00118 
00122   virtual float stripLength() const=0;
00123 
00127   virtual float localStripLength(const LocalPoint& ) const=0;
00128 
00129 
00130   // =========================================================
00131   // Topology interface (not already implemented for 
00132   // StripTopology interface)
00133   // =========================================================
00134 
00135   virtual MeasurementPoint measurementPosition( const LocalPoint& ) const=0;
00136 
00137   virtual MeasurementError measurementError( const LocalPoint&, const LocalError& ) const=0;
00138 
00146   virtual int channel( const LocalPoint& ) const=0;
00147 
00148 
00149   // =========================================================
00150   // RadialStripTopology interface itself
00151   // =========================================================
00152 
00156    virtual float angularWidth() const=0;
00157 
00161   virtual float phiPitch(void) const=0;
00162 
00166    virtual float detHeight() const=0;
00167 
00171    virtual float yExtentOfStripPlane() const=0; // same as detHeight()
00172 
00178    virtual float centreToIntersection() const=0;
00184    virtual float originToIntersection() const=0;
00197    virtual float phiOfOneEdge() const=0;
00198 
00203    virtual float xOfStrip(int strip, float y) const=0;
00204  
00208   virtual int nearestStrip(const LocalPoint&) const=0;
00209 
00213   virtual float yAxisOrientation() const=0;
00214   
00218   virtual float yCentreOfStripPlane() const=0;
00219   
00223   virtual float yDistanceToIntersection( float y ) const=0;
00224 
00225   friend std::ostream & operator<<(std::ostream&, const RadialStripTopology& );
00226 
00227 
00228 };
00229 
00230 #endif
00231 
00232