CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackingTools/TrackFitters/interface/TrajectoryFitter.h

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