CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MeasurementEstimator.h
Go to the documentation of this file.
1 #ifndef Tracker_MeasurementEstimator_H
2 #define Tracker_MeasurementEstimator_H
3 
6 #include <utility>
7 
8 class Plane;
10 class Surface;
11 class TrackingRecHit;
12 
21 public:
22 
23  struct OpaquePayload { virtual ~OpaquePayload(){} int tag=0;};
24 
26 
27  virtual ~MeasurementEstimator() {}
28 
29  typedef std::pair<bool,double> HitReturnType;
30  typedef bool SurfaceReturnType;
31 
39  const TrackingRecHit& hit) const = 0;
40 
41  /* verify the compatibility of the Hit with the Trajectory based
42  * on hit properties other than those used in estimate
43  * (that usually computes the compatibility of the Trajectory with the Hit)
44  *
45  */
46  virtual bool preFilter(const TrajectoryStateOnSurface&, OpaquePayload const &) const { return true;}
47 
48 
54  const Plane& plane) const = 0;
55 
56  virtual MeasurementEstimator* clone() const = 0;
57 
66  virtual Local2DVector
68  const Plane& plane) const;
69 };
70 
71 #endif // Tracker_MeasurementEstimator_H
Vector2DBase< float, LocalTag > Local2DVector
virtual bool preFilter(const TrajectoryStateOnSurface &, OpaquePayload const &) const
Definition: Plane.h:17
virtual MeasurementEstimator * clone() const =0
virtual HitReturnType estimate(const TrajectoryStateOnSurface &ts, const TrackingRecHit &hit) const =0
std::pair< bool, double > HitReturnType
virtual Local2DVector maximalLocalDisplacement(const TrajectoryStateOnSurface &ts, const Plane &plane) const