![]() |
![]() |
00001 #ifndef Tracker_MeasurementEstimator_H 00002 #define Tracker_MeasurementEstimator_H 00003 00004 #include "DataFormats/GeometryVector/interface/Vector2DBase.h" 00005 #include "DataFormats/GeometryVector/interface/LocalTag.h" 00006 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" 00007 00008 #include <utility> 00009 00010 class BoundPlane; 00011 class TrajectoryStateOnSurface; 00012 class Surface; 00013 00021 class MeasurementEstimator { 00022 public: 00023 00024 typedef Vector2DBase< float, LocalTag> Local2DVector; 00025 00026 virtual ~MeasurementEstimator() {} 00027 00028 typedef std::pair<bool,double> HitReturnType; 00029 typedef bool SurfaceReturnType; 00030 00037 virtual HitReturnType estimate( const TrajectoryStateOnSurface& ts, 00038 const TransientTrackingRecHit& hit) const = 0; 00039 00044 virtual SurfaceReturnType estimate( const TrajectoryStateOnSurface& ts, 00045 const BoundPlane& plane) const = 0; 00046 00047 /* virtual SurfaceReturnType estimate( const TrajectoryStateOnSurface& ts, */ 00048 /* const BoundSurface& plane) const; */ 00049 00050 virtual MeasurementEstimator* clone() const = 0; 00051 00060 virtual Local2DVector 00061 maximalLocalDisplacement( const TrajectoryStateOnSurface& ts, 00062 const BoundPlane& plane) const; 00063 }; 00064 00065 #endif // Tracker_MeasurementEstimator_H