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 00014 #include "TrackingTools/TrackFitters/interface/TrajectoryFitterRecord.h" 00015 00016 class TrajectoryFitter { 00017 public: 00018 00019 typedef TrajectoryFitterRecord Record; 00020 typedef Trajectory::RecHitContainer RecHitContainer; 00021 00022 virtual ~TrajectoryFitter() {} 00023 00024 virtual std::vector<Trajectory> fit(const Trajectory&) const = 0; 00025 virtual std::vector<Trajectory> fit(const TrajectorySeed&, 00026 const RecHitContainer&) const = 0; 00027 virtual std::vector<Trajectory> fit(const TrajectorySeed&, 00028 const RecHitContainer&, 00029 const TrajectoryStateOnSurface&) const = 0; 00030 00031 virtual TrajectoryFitter* clone() const = 0; 00032 }; 00033 00034 #endif