00001 #ifndef RecoMuon_TrackingTools_MuonBestMeasurementFinder_H 00002 #define RecoMuon_TrackingTools_MuonBestMeasurementFinder_H 00003 00019 #include <vector> 00020 00021 class Propagator; 00022 class MeasurementEstimator; 00023 class TrajectoryMeasurement; 00024 class MuonTransientTrackingRecHit; 00025 00026 class MuonBestMeasurementFinder { 00027 typedef std::vector<TrajectoryMeasurement*> TMContainer; 00028 typedef TMContainer::iterator TMIterator; 00029 00030 public: 00031 00033 MuonBestMeasurementFinder(); 00034 00036 virtual ~MuonBestMeasurementFinder(); 00037 00038 // Operations 00039 00041 TrajectoryMeasurement* findBestMeasurement(std::vector<TrajectoryMeasurement>& measC, 00042 const Propagator* propagator); 00043 00044 std::pair<double,int> lookAtSubRecHits(TrajectoryMeasurement* measurement, 00045 const Propagator* propagator); 00046 00047 const MeasurementEstimator* estimator() const { return theEstimator;} 00048 00049 protected: 00050 00051 private: 00052 00053 const MeasurementEstimator* theEstimator; 00054 00055 }; 00056 #endif 00057 00058