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 
39 class Topology {
40 public:
43  public:
44  LocalTrackAngles(double dxdz, double dydz) : dxdz_(dxdz), dydz_(dydz) {}
45  double dydz() const { return dydz_; }
46  double dxdz() const { return dxdz_; }
47  private:
48  double dxdz_, dydz_;
49  };
54  public:
55  LocalTrackPred(double x, double y, double dxdz, double dydz) : point_(x,y),angles_(dxdz,dydz){}
58  LocalTrackPred(const AlgebraicVector5& localTrajPar) :
59  point_(localTrajPar[3], localTrajPar[4]), angles_(localTrajPar[1], localTrajPar[2]) {}
60  const Local2DPoint& point() const {return point_;}
61  const LocalTrackAngles& angles() const {return angles_;}
62  private:
65  };
66 
67  virtual ~Topology() {}
68 
69  // Conversion between measurement (strip, pixel, ...) coordinates
70  // and local cartesian coordinates
71 
72  virtual LocalPoint localPosition( const MeasurementPoint& ) const = 0;
73 
74  virtual LocalError
75  localError( const MeasurementPoint&, const MeasurementError& ) const = 0;
76 
77  virtual MeasurementPoint measurementPosition( const LocalPoint&) const = 0;
78 
79  virtual MeasurementError
80  measurementError( const LocalPoint&, const LocalError& ) const = 0;
81 
82  virtual int channel( const LocalPoint& p) const = 0;
83 
84  // new sets of methods taking also an angle
86  virtual LocalPoint localPosition(const MeasurementPoint &mp, const LocalTrackPred &/*trkPred*/) const {
87  return localPosition(mp);
88  }
89 
91  virtual LocalError
93  const LocalTrackPred &/*trkPred*/) const {
94  return localError(mp,me);
95  }
96 
99  return measurementPosition(lp);
100  }
101 
103  virtual MeasurementError
104  measurementError( const LocalPoint &lp, const LocalError &le, const LocalTrackAngles &dir) const {
105  return measurementError(lp, le);
106  }
107 
109  virtual int channel( const LocalPoint &lp, const LocalTrackAngles &dir) const {
110  return channel(lp);
111  }
112 
113 
114 private:
115 
116 };
117 
118 #endif
virtual MeasurementError measurementError(const LocalPoint &lp, const LocalError &le, const LocalTrackAngles &dir) const
conversion taking also the angle from the track state
Definition: Topology.h:104
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:86
virtual MeasurementPoint measurementPosition(const LocalPoint &lp, const LocalTrackAngles &dir) const
conversion taking also the angle from the track state
Definition: Topology.h:98
Point2DBase< double, LocalTag > Local2DPoint
Definition: Topology.h:50
LocalTrackPred(double x, double y, double dxdz, double dydz)
Definition: Topology.h:55
double dydz() const
Definition: Topology.h:45
LocalTrackPred(const AlgebraicVector5 &localTrajPar)
Definition: Topology.h:58
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
virtual int channel(const LocalPoint &lp, const LocalTrackAngles &dir) const
conversion taking also the angle from the track state
Definition: Topology.h:109
LocalTrackAngles angles_
local x, y
Definition: Topology.h:64
const LocalTrackAngles & angles() const
Definition: Topology.h:61
virtual int channel(const LocalPoint &p) const =0
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
double dxdz() const
Definition: Topology.h:46
Local2DPoint point_
Definition: Topology.h:63
ROOT::Math::SVector< double, 5 > AlgebraicVector5
virtual LocalError localError(const MeasurementPoint &, const MeasurementError &) const =0
const Local2DPoint & point() const
Definition: Topology.h:60
LocalTrackAngles(double dxdz, double dydz)
Definition: Topology.h:44
dbl *** dir
Definition: mlp_gen.cc:35
Definition: DDAxes.h:10
virtual ~Topology()
Definition: Topology.h:67
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:92