CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Geometry/CommonTopologies/interface/RectangularStripTopology.h

Go to the documentation of this file.
00001 #ifndef Geometry_CommonTopologies_RectangularStripTopology_H
00002 #define Geometry_CommonTopologies_RectangularStripTopology_H
00003 
00009 #include "Geometry/CommonTopologies/interface/StripTopology.h"
00010 
00011 class RectangularStripTopology GCC11_FINAL : public StripTopology {
00012 public:
00013 
00014   RectangularStripTopology(int nstrips, float pitch, float detlength);
00015 
00016   virtual LocalPoint localPosition(float strip) const;
00017 
00018   virtual LocalPoint localPosition(const MeasurementPoint&) const;
00019   
00020   virtual LocalError 
00021   localError(float strip, float stripErr2) const;
00022   
00023   virtual LocalError 
00024   localError(const MeasurementPoint&, const MeasurementError&) const;
00025   
00026   virtual float strip(const LocalPoint&) const;
00027 
00028   // the number of strip span by the segment between the two points..
00029   virtual float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2)  const ; 
00030 
00031 
00032   virtual MeasurementPoint measurementPosition(const LocalPoint&) const;
00033     
00034   virtual MeasurementError 
00035   measurementError(const LocalPoint&, const LocalError&) const;
00036 
00037   virtual int channel(const LocalPoint& lp) const {  return std::min(int(strip(lp)),theNumberOfStrips-1); }
00038 
00039   virtual float pitch() const { return thePitch; }
00040 
00041   virtual float localPitch(const LocalPoint&) const { return thePitch;}
00042   
00043   virtual float stripAngle(float strip) const {  return 0;}
00044 
00045   virtual int nstrips() const { return theNumberOfStrips;}
00046 
00047   virtual float stripLength() const {return theStripLength;}
00048 
00049   virtual float localStripLength(const LocalPoint& /*aLP*/) const {
00050     return stripLength();
00051   }
00052 
00053 private:
00054   float thePitch;
00055   int   theNumberOfStrips;
00056   float theStripLength;
00057   float theOffset;   
00058 };
00059 
00060 #endif
00061 
00062