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_