00001 #ifndef SiTrackerMRHTools_SimpleDAFHitCollector_h 00002 #define SiTrackerMRHTools_SimpleDAFHitCollector_h 00003 #include "RecoTracker/SiTrackerMRHTools/interface/MultiRecHitCollector.h" 00004 #include <vector> 00005 00006 class Propagator; 00007 class MeasurementEstimator; 00008 class SiTrackerMultiRecHitUpdator; 00009 00010 class SimpleDAFHitCollector :public MultiRecHitCollector { 00011 public: 00012 explicit SimpleDAFHitCollector(const MeasurementTracker* measurementTracker, 00013 const SiTrackerMultiRecHitUpdator* updator, 00014 const MeasurementEstimator* est, 00015 const Propagator* propagator 00016 ):MultiRecHitCollector(measurementTracker), theUpdator(updator), theEstimator(est), thePropagator(propagator){} 00017 00018 00019 virtual ~SimpleDAFHitCollector(){} 00020 00021 //given a trajectory it returns a collection 00022 //of TSiTrackerMultiRecHits and InvalidTransientRecHits. 00023 //For each measurement in the trajectory, measurements are looked for according to the 00024 //MeasurementDet::fastMeasurements method only in the detector where the original measurement lays. 00025 //If measurements are found a TSiTrackerMultiRecHit is built. 00026 //All the components will lay on the same detector 00027 00028 virtual std::vector<TrajectoryMeasurement> recHits(const Trajectory&) const; 00029 00030 const SiTrackerMultiRecHitUpdator* getUpdator() const {return theUpdator;} 00031 const MeasurementEstimator* getEstimator() const {return theEstimator;} 00032 const Propagator* getPropagator() const {return thePropagator;} 00033 00034 private: 00035 //TransientTrackingRecHit::ConstRecHitContainer buildMultiRecHits(const std::vector<TrajectoryMeasurementGroup>& measgroup) const; 00036 void buildMultiRecHits(const std::vector<TrajectoryMeasurement>& measgroup, std::vector<TrajectoryMeasurement>& result) const; 00037 00038 private: 00039 const SiTrackerMultiRecHitUpdator* theUpdator; 00040 const MeasurementEstimator* theEstimator; 00041 //this actually is not used in the fastMeasurement method 00042 const Propagator* thePropagator; 00043 00044 00045 }; 00046 00047 00048 #endif