Go to the documentation of this file.00001 #ifndef SiTrackerMRHTools_GroupedDAFHitCollector_h
00002 #define SiTrackerMRHTools_GroupedDAFHitCollector_h
00003 #include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h"
00004 #include "RecoTracker/SiTrackerMRHTools/interface/MultiRecHitCollector.h"
00005 #include <vector>
00006
00007 class Propagator;
00008 class MeasurementEstimator;
00009 class SiTrackerMultiRecHitUpdator;
00010
00011 class GroupedDAFHitCollector :public MultiRecHitCollector {
00012 public:
00013 explicit GroupedDAFHitCollector(const MeasurementTracker* measurementTracker,
00014 const SiTrackerMultiRecHitUpdator* updator,
00015 const MeasurementEstimator* est,
00016 const Propagator* propagator,
00017 const Propagator* reversePropagator
00018 ):MultiRecHitCollector(measurementTracker), theLM(measurementTracker), theUpdator(updator), theEstimator(est), thePropagator(propagator), theReversePropagator(reversePropagator){}
00019
00020
00021 virtual ~GroupedDAFHitCollector(){}
00022
00023
00024
00025
00026
00027
00028
00029 virtual std::vector<TrajectoryMeasurement> recHits(const Trajectory&) const;
00030
00031 const SiTrackerMultiRecHitUpdator* getUpdator() const {return theUpdator;}
00032 const MeasurementEstimator* getEstimator() const {return theEstimator;}
00033 const Propagator* getPropagator() const {return thePropagator;}
00034 const Propagator* getReversePropagator() const {return theReversePropagator;}
00035
00036 private:
00037 void buildMultiRecHits(const std::vector<TrajectoryMeasurementGroup>& measgroup, std::vector<TrajectoryMeasurement>& result) const;
00038
00039 private:
00040 LayerMeasurements theLM;
00041 const SiTrackerMultiRecHitUpdator* theUpdator;
00042 const MeasurementEstimator* theEstimator;
00043 const Propagator* thePropagator;
00044 const Propagator* theReversePropagator;
00045
00046
00047
00048 };
00049
00050
00051 #endif