CMS 3D CMS Logo

StripTopology.h
Go to the documentation of this file.
1 #ifndef Geometry_CommonTopologies_StripTopology_H
2 #define Geometry_CommonTopologies_StripTopology_H
3 
5 
11 class StripTopology : public Topology {
12 public:
13  ~StripTopology() override {}
14 
15  // GF: I hate the stupid hiding feature of C++, see
16  // http://www.parashift.com/c%2B%2B-faq-lite/strange-inheritance.html#faq-23.9
18  virtual LocalPoint localPosition(float strip) const = 0;
20  virtual LocalPoint localPosition(float strip, const Topology::LocalTrackPred& /*trkPred*/) const {
21  return localPosition(strip);
22  }
23  virtual LocalError localError(float strip, float stripErr2) const = 0;
24 
26  virtual LocalError localError(float strip, float stripErr2, const Topology::LocalTrackPred& /*trkPred*/) const {
27  return localError(strip, stripErr2);
28  }
29  using Topology::localError; // see comment about hiding an C++ 'using' feature above
30  virtual float strip(const LocalPoint&) const = 0;
31 
33  virtual float strip(const LocalPoint& lp, const Topology::LocalTrackAngles& /*ltp*/) const { return strip(lp); }
34 
35  // the number of strip span by the segment between the two points..
36  virtual float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const {
37  return (measurementPosition(lp1) - measurementPosition(lp2)).x();
38  }
39 
40  virtual float pitch() const = 0;
41  virtual float localPitch(const LocalPoint&) const = 0;
42 
44  virtual float localPitch(const LocalPoint& lp, const Topology::LocalTrackAngles& /*ltp*/) const {
45  return localPitch(lp);
46  }
47  virtual float stripAngle(float strip) const = 0;
48 
49  virtual int nstrips() const = 0;
50 
51  virtual float stripLength() const = 0;
52  virtual float localStripLength(const LocalPoint& aLP) const = 0;
53 
55  virtual float localStripLength(const LocalPoint& lp, const Topology::LocalTrackAngles& /*ltp*/) const {
56  return localStripLength(lp);
57  }
58 };
59 
60 #endif
virtual int nstrips() const =0
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
virtual float stripAngle(float strip) const =0
virtual float strip(const LocalPoint &) const =0
virtual float localStripLength(const LocalPoint &lp, const Topology::LocalTrackAngles &) const
conversion taking also the angle from the track state (LocalTrajectoryParameters) ...
Definition: StripTopology.h:55
virtual float localPitch(const LocalPoint &) const =0
virtual float stripLength() const =0
~StripTopology() override
Definition: StripTopology.h:13
virtual float strip(const LocalPoint &lp, const Topology::LocalTrackAngles &) const
conversion taking also the angle from the track state (LocalTrajectoryParameters) ...
Definition: StripTopology.h:33
virtual LocalError localError(float strip, float stripErr2, const Topology::LocalTrackPred &) const
conversion taking also the angle from the predicted track state
Definition: StripTopology.h:26
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
virtual float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const
Definition: StripTopology.h:36
virtual LocalError localError(const MeasurementPoint &, const MeasurementError &) const =0
virtual LocalError localError(float strip, float stripErr2) const =0
virtual float localStripLength(const LocalPoint &aLP) const =0
virtual float pitch() const =0
virtual LocalPoint localPosition(float strip) const =0
virtual float localPitch(const LocalPoint &lp, const Topology::LocalTrackAngles &) const
conversion taking also the angle from the track state (LocalTrajectoryParameters) ...
Definition: StripTopology.h:44
virtual LocalPoint localPosition(float strip, const Topology::LocalTrackPred &) const
conversion taking also the predicted track state
Definition: StripTopology.h:20