CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/TrackingTools/PatternTools/interface/TrajectorySmoother.h

Go to the documentation of this file.
00001 #ifndef _Tracker_TrajectorySmoother_H_
00002 #define _Tracker_TrajectorySmoother_H_
00003 
00004 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00005 #include "FWCore/Utilities/interface/GCC11Compatibility.h"
00006 
00007 
00011 class TrajectorySmoother {
00012 public:
00013 
00014   typedef std::vector<Trajectory> TrajectoryContainer;
00015   typedef TrajectoryContainer::iterator TrajectoryIterator;
00016 
00017   virtual ~TrajectorySmoother() {}
00018 
00019   virtual TrajectoryContainer trajectories(const Trajectory& traj) const {
00020     Trajectory && nt = trajectory(traj);
00021     if (nt.isValid()) return TrajectoryContainer(1,std::move(nt));
00022     return TrajectoryContainer();
00023   }
00024   virtual Trajectory trajectory(const Trajectory&) const =0;
00025 
00026   virtual TrajectorySmoother* clone() const = 0;
00027 };
00028 
00029 #endif