CMS 3D CMS Logo

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  LocalPoint localPosition(float strip) const override {
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.
42  }
43 
61  LocalPoint localPosition(const MeasurementPoint&) const override;
62 
66  MeasurementPoint measurementPosition( const LocalPoint& ) const override;
67 
74  float strip(const LocalPoint&) const override;
75 
79  float stripAngle(float strip) const override;
80 
85  virtual int channel(int strip) const = 0;
86  int channel(const LocalPoint& lp) const override = 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
float strip(const LocalPoint &) const override
virtual int channel(int strip) const =0
MeasurementPoint measurementPosition(const LocalPoint &) const override
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
float stripAngle(float strip) const override
LocalPoint localPosition(float strip) const override
LocalPoint localPosition(float strip) const override