CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Topology.h
Go to the documentation of this file.
1 #ifndef Geometry_CommonTopologies_Topology_H
2 #define Geometry_CommonTopologies_Topology_H
3 
9 
10 class GeomDetType;
11 
40 
41 
42 class Topology {
43 public:
47  class LocalTrackAngles : public Vector2D {
48  public:
50  LocalTrackAngles(const Base & v) : Base(v) {}
51  LocalTrackAngles(double dxdz, double dydz) : Base(dxdz,dydz) {}
52  double dxdz() const { return x(); }
53  double dydz() const { return y(); }
54  };
59  public:
60  LocalTrackPred(double x, double y, double dxdz, double dydz) : point_(x,y),angles_(dxdz,dydz){}
63  LocalTrackPred(const AlgebraicVector5& localTrajPar) :
64  point_(localTrajPar[3], localTrajPar[4]), angles_(localTrajPar[1], localTrajPar[2]) {}
65  const Local2DPoint& point() const {return point_;}
66  const LocalTrackAngles& angles() const {return angles_;}
67  private:
70  };
71 
72  virtual ~Topology() {}
73 
74  // Conversion between measurement (strip, pixel, ...) coordinates
75  // and local cartesian coordinates
76 
77  virtual LocalPoint localPosition( const MeasurementPoint& ) const = 0;
78 
79  virtual LocalError
80  localError( const MeasurementPoint&, const MeasurementError& ) const = 0;
81 
82  virtual MeasurementPoint measurementPosition( const LocalPoint&) const = 0;
83 
84  virtual MeasurementError
85  measurementError( const LocalPoint&, const LocalError& ) const = 0;
86 
87  virtual int channel( const LocalPoint& p) const = 0;
88 
89  // new sets of methods taking also an angle
91  virtual LocalPoint localPosition(const MeasurementPoint &mp, const LocalTrackPred &/*trkPred*/) const {
92  return localPosition(mp);
93  }
94 
96  virtual LocalError
98  const LocalTrackPred &/*trkPred*/) const {
99  return localError(mp,me);
100  }
101 
103  virtual MeasurementPoint measurementPosition( const LocalPoint &lp, const LocalTrackAngles &/*dir*/) const {
104  return measurementPosition(lp);
105  }
106 
108  virtual MeasurementError
109  measurementError( const LocalPoint &lp, const LocalError &le, const LocalTrackAngles &/*dir*/) const {
110  return measurementError(lp, le);
111  }
112 
114  virtual int channel( const LocalPoint &lp, const LocalTrackAngles &/*dir*/) const {
115  return channel(lp);
116  }
117 
118 
119 private:
120 
121 };
122 
123 #endif
virtual MeasurementPoint measurementPosition(const LocalPoint &lp, const LocalTrackAngles &) const
conversion taking also the angle from the track state
Definition: Topology.h:103
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
virtual LocalPoint localPosition(const MeasurementPoint &mp, const LocalTrackPred &) const
conversion taking also the angle from the predicted track state
Definition: Topology.h:91
virtual MeasurementError measurementError(const LocalPoint &lp, const LocalError &le, const LocalTrackAngles &) const
conversion taking also the angle from the track state
Definition: Topology.h:109
Point2DBase< double, LocalTag > Local2DPoint
Definition: Topology.h:55
LocalTrackPred(double x, double y, double dxdz, double dydz)
Definition: Topology.h:60
double dydz() const
Definition: Topology.h:53
LocalTrackPred(const AlgebraicVector5 &localTrajPar)
Definition: Topology.h:63
LocalTrackAngles(const Base &v)
Definition: Topology.h:50
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
Vector2D::MathVector MathVector2D
Definition: Topology.h:45
Basic2DVector< double > Vector2D
Definition: Topology.h:44
LocalTrackAngles angles_
local x, y
Definition: Topology.h:69
const LocalTrackAngles & angles() const
Definition: Topology.h:66
virtual int channel(const LocalPoint &p) const =0
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
double y() const
Cartesian y coordinate.
double dxdz() const
Definition: Topology.h:52
Local2DPoint point_
Definition: Topology.h:68
virtual int channel(const LocalPoint &lp, const LocalTrackAngles &) const
conversion taking also the angle from the track state
Definition: Topology.h:114
ROOT::Math::SVector< double, 5 > AlgebraicVector5
virtual LocalError localError(const MeasurementPoint &, const MeasurementError &) const =0
const Local2DPoint & point() const
Definition: Topology.h:65
Basic2DVector< double > Base
Definition: Topology.h:49
LocalTrackAngles(double dxdz, double dydz)
Definition: Topology.h:51
double x() const
Cartesian x coordinate.
virtual ~Topology()
Definition: Topology.h:72
virtual LocalError localError(const MeasurementPoint &mp, const MeasurementError &me, const LocalTrackPred &) const
conversion taking also the angle from the predicted track state
Definition: Topology.h:97