CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoTracker/SiTrackerMRHTools/interface/SimpleDAFHitCollector.h

Go to the documentation of this file.
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