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