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 public:
24  float stripPhiPitch,
25  float detectorHeight,
26  float radialDistance,
27  float stripOffset,
28  float yCentre);
29 
31 
35  virtual float stripOffset(void) const { return theStripOffset; }
36 
39  LocalPoint localPosition(float strip) const override {
40  // Pass through to base class since otherwise it is shadowed by the localPosition(const MP&).
41  // Note that base class version is OK because it uses stripAngle() which is overridden in ORST!
42  // Also note that xOfStrip from base class RST also works for ORST for the same reason.
44  }
45 
63  LocalPoint localPosition(const MeasurementPoint&) const override;
64 
68  MeasurementPoint measurementPosition(const LocalPoint&) const override;
69 
76  float strip(const LocalPoint&) const override;
77 
81  float stripAngle(float strip) const override;
82 
87  virtual int channel(int strip) const = 0;
88  int channel(const LocalPoint& lp) const override = 0;
89 
90  friend std::ostream& operator<<(std::ostream&, const OffsetRadialStripTopology&);
91 
92 private:
97  LocalPoint toLocal(float xprime, float yprime) const;
102  LocalPoint toPrime(const LocalPoint&) const;
103 
104  float theStripOffset; // fraction of a strip offset from sym about y
105  float theCosOff; // cosine of angular offset
106  float theSinOff; // sine of angular offset
107 };
108 
109 #endif
LocalPoint localPosition(float strip) const override
float strip(const LocalPoint &) const override
LocalPoint toPrime(const LocalPoint &) const
virtual float stripOffset(void) const
MeasurementPoint measurementPosition(const LocalPoint &) const override
OffsetRadialStripTopology(int numberOfStrips, float stripPhiPitch, float detectorHeight, float radialDistance, float stripOffset, float yCentre)
LocalPoint localPosition(float strip) const override
friend std::ostream & operator<<(std::ostream &, const OffsetRadialStripTopology &)
virtual int channel(int strip) const =0
LocalPoint toLocal(float xprime, float yprime) const
float stripAngle(float strip) const override