Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:26:29

0001 #ifndef _Tracker_TrajectorySmoother_H_
0002 #define _Tracker_TrajectorySmoother_H_
0003 
0004 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0005 
0006 class TkCloner;
0007 
0008 /** Interface class for trajectory smoothers, 
0009  *  i.e. objects improving a Trajectory built elsewhere. 
0010  */
0011 class TrajectorySmoother {
0012 public:
0013   typedef std::vector<Trajectory> TrajectoryContainer;
0014   typedef TrajectoryContainer::iterator TrajectoryIterator;
0015 
0016   virtual ~TrajectorySmoother() {}
0017 
0018   virtual TrajectoryContainer trajectories(const Trajectory& traj) const {
0019     Trajectory&& nt = trajectory(traj);
0020     if (nt.isValid())
0021       return TrajectoryContainer(1, nt);
0022     return TrajectoryContainer();
0023   }
0024   virtual Trajectory trajectory(const Trajectory&) const = 0;
0025 
0026   virtual TrajectorySmoother* clone() const = 0;
0027   // FIXME a prototype: final inplementaiton may differ
0028   virtual void setHitCloner(TkCloner const*) = 0;
0029 };
0030 
0031 #endif