test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
14  virtual ~StripTopology() {}
15 
16  // GF: I hate the stupid hiding feature of C++, see
17  // http://www.parashift.com/c%2B%2B-faq-lite/strange-inheritance.html#faq-23.9
19  virtual LocalPoint localPosition( float strip ) const = 0;
21  virtual LocalPoint localPosition( float strip, const Topology::LocalTrackPred &/*trkPred*/) const {
22  return localPosition(strip);
23  }
24  virtual LocalError localError( float strip, float stripErr2 ) const = 0;
25 
27  virtual LocalError localError( float strip, float stripErr2,
28  const Topology::LocalTrackPred &/*trkPred*/) const {
29  return localError(strip, stripErr2);
30  }
31  using Topology::localError; // see comment about hiding an C++ 'using' feature above
32  virtual float strip( const LocalPoint& ) const = 0;
33 
35  virtual float strip( const LocalPoint& lp, const Topology::LocalTrackAngles &/*ltp*/ ) const {
36  return strip(lp);
37  }
38 
39  // the number of strip span by the segment between the two points..
40  virtual float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const {
41  return (measurementPosition(lp1)-measurementPosition(lp2)).x();
42  }
43 
44  virtual float pitch() const = 0;
45  virtual float localPitch( const LocalPoint& ) const = 0;
46 
48  virtual float localPitch( const LocalPoint& lp, const Topology::LocalTrackAngles &/*ltp*/ ) const {
49  return localPitch(lp);
50  }
51  virtual float stripAngle( float strip ) const = 0;
52 
53  virtual int nstrips() const = 0;
54 
55  virtual float stripLength() const = 0;
56  virtual float localStripLength(const LocalPoint& aLP) const = 0;
57 
59  virtual float localStripLength( const LocalPoint& lp, const Topology::LocalTrackAngles &/*ltp*/ ) const {
60  return localStripLength(lp);
61  }
62 
63 };
64 
65 #endif
virtual int nstrips() const =0
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
virtual float stripAngle(float strip) const =0
virtual float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const
Definition: StripTopology.h:40
virtual ~StripTopology()
Definition: StripTopology.h:14
virtual float strip(const LocalPoint &) const =0
virtual float localPitch(const LocalPoint &) const =0
virtual float stripLength() const =0
virtual MeasurementPoint measurementPosition(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:59
virtual float strip(const LocalPoint &lp, const Topology::LocalTrackAngles &) const
conversion taking also the angle from the track state (LocalTrajectoryParameters) ...
Definition: StripTopology.h:35
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 LocalPoint localPosition(float strip, const Topology::LocalTrackPred &) const
conversion taking also the predicted track state
Definition: StripTopology.h:21
virtual float localPitch(const LocalPoint &lp, const Topology::LocalTrackAngles &) const
conversion taking also the angle from the track state (LocalTrajectoryParameters) ...
Definition: StripTopology.h:48
virtual LocalError localError(float strip, float stripErr2, const Topology::LocalTrackPred &) const
conversion taking also the angle from the predicted track state
Definition: StripTopology.h:27