00001 #ifndef _TrajectoryFitter_H_ 00002 #define _TrajectoryFitter_H_ 00003 00004 #include "TrackingTools/PatternTools/interface/Trajectory.h" 00005 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" 00006 00007 class TrajectorySeed; 00008 class TrajectoryStateOnSurface; 00009 00015 class TrajectoryFitter { 00016 public: 00017 00018 typedef Trajectory::RecHitContainer RecHitContainer; 00019 00020 virtual ~TrajectoryFitter() {} 00021 00022 virtual std::vector<Trajectory> fit(const Trajectory&) const = 0; 00023 virtual std::vector<Trajectory> fit(const TrajectorySeed&, 00024 const RecHitContainer&) const = 0; 00025 virtual std::vector<Trajectory> fit(const TrajectorySeed&, 00026 const RecHitContainer&, 00027 const TrajectoryStateOnSurface&) const = 0; 00028 00029 virtual TrajectoryFitter* clone() const = 0; 00030 }; 00031 00032 #endif