CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OffsetRadialStripTopology.h
Go to the documentation of this file.
1 #ifndef ABS_OFFSET_RADIAL_STRIP_TOPOLOGY_H
2 #define ABS_OFFSET_RADIAL_STRIP_TOPOLOGY_H
3 
15 #include <iosfwd>
16 
18 {
19 public:
20 
25  OffsetRadialStripTopology( int numberOfStrips, float stripPhiPitch,
26  float detectorHeight, float radialDistance, float stripOffset, float yCentre);
27 
29 
33  virtual float stripOffset( void ) const { return theStripOffset; }
34 
37  virtual LocalPoint localPosition(float strip) const {
38  // Pass through to base class since otherwise it is shadowed by the localPosition(const MP&).
39  // Note that base class version is OK because it uses stripAngle() which is overridden in ORST!
40  // Also note that xOfStrip from base class RST also works for ORST for the same reason.
41  return RadialStripTopology::localPosition( strip );
42  }
43 
61  virtual LocalPoint localPosition(const MeasurementPoint&) const;
62 
66  virtual MeasurementPoint measurementPosition( const LocalPoint& ) const;
67 
74  virtual float strip(const LocalPoint&) const;
75 
79  float stripAngle(float strip) const;
80 
85  virtual int channel(int strip) const = 0;
86  virtual int channel(const LocalPoint& lp) const = 0;
87 
88  friend std::ostream & operator<<(std::ostream &, const OffsetRadialStripTopology &);
89 
90  private:
95  LocalPoint toLocal(float xprime, float yprime) const;
100  LocalPoint toPrime(const LocalPoint&) const;
101 
102  float theStripOffset; // fraction of a strip offset from sym about y
103  float theCosOff; // cosine of angular offset
104  float theSinOff; // sine of angular offset
105 };
106 
107 #endif
108 
LocalPoint toLocal(float xprime, float yprime) const
virtual LocalPoint localPosition(float strip) const
virtual LocalPoint localPosition(float strip) const
LocalPoint toPrime(const LocalPoint &) const
OffsetRadialStripTopology(int numberOfStrips, float stripPhiPitch, float detectorHeight, float radialDistance, float stripOffset, float yCentre)
friend std::ostream & operator<<(std::ostream &, const OffsetRadialStripTopology &)
virtual float stripOffset(void) const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const
virtual int channel(int strip) const =0
float stripAngle(float strip) const
virtual float strip(const LocalPoint &) const