CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/TrackingTools/TrackFitters/interface/KFSplittingFitter.h

Go to the documentation of this file.
00001 #ifndef CD_KFSplittingFitter_H_
00002 #define CD_KFSplittingFitter_H_
00003 
00013 #include "TrackingTools/TrackFitters/interface/KFTrajectoryFitter.h"
00014 
00015 class KFSplittingFitter : public KFTrajectoryFitter {
00016 
00017 private:
00018 
00019   typedef TrajectoryStateOnSurface TSOS;
00020   typedef FreeTrajectoryState FTS;
00021   typedef TrajectoryMeasurement TM;
00022   
00023 public:
00024 
00025   KFSplittingFitter(const Propagator& aPropagator,
00026                     const TrajectoryStateUpdator& aUpdator,
00027                     const MeasurementEstimator& aEstimator) :
00028     KFTrajectoryFitter(aPropagator, aUpdator, aEstimator) {}
00029 
00030 
00031   KFSplittingFitter(const Propagator* aPropagator,
00032                     const TrajectoryStateUpdator* aUpdator,
00033                     const MeasurementEstimator* aEstimator) : 
00034     KFTrajectoryFitter(aPropagator, aUpdator, aEstimator) {}
00035 
00036   virtual KFSplittingFitter* clone() const {
00037     return new KFSplittingFitter(propagator(),updator(),estimator());
00038   }
00039   
00040   virtual std::vector<Trajectory> fit(const Trajectory& aTraj) const;
00041   virtual std::vector<Trajectory> fit(const TrajectorySeed& aSeed,
00042                                       const RecHitContainer& hits, 
00043                                       const TSOS& firstPredTsos) const;
00044 
00045 
00046 };
00047 
00048 #endif //CD_KFSplittingFitter_H_