CMS 3D CMS Logo

TrajectoryBuilder.h
Go to the documentation of this file.
1 #ifndef TrackingTools_PatternTools_TrajectoryBuilder_h
2 #define TrackingTools_PatternTools_TrajectoryBuilder_h
3 
8 
9 class TrajectorySeed;
10 
19 public:
20 
21  typedef std::vector<Trajectory> TrajectoryContainer;
22  typedef TrajectoryContainer::iterator TrajectoryIterator;
23 
24  virtual ~TrajectoryBuilder() {};
25 
26  virtual TrajectoryContainer trajectories(const TrajectorySeed&) const = 0;
27 
28  virtual void trajectories(const TrajectorySeed& seed, TrajectoryContainer &out) const {
29  TrajectoryContainer && ret = trajectories(seed);
30  out = std::move(ret);
31  }
32 
36  virtual void rebuildSeedingRegion(const TrajectorySeed&,
37  TrajectoryContainer& result) const {
38  LogDebug("TrajectoryBuilding")
39  << "WARNING: you are using a trajectory builder which is not overloading the rebuildSeedingRegion method because there is not an implementation yet: output TrajectoryContainer is equal to inputTrajectoryContainer";
40  }
41 
42  virtual void setEvent(const edm::Event& event) const = 0;
43  virtual void unset() const {};
44 };
45 
46 
47 #endif
#define LogDebug(id)
virtual void setEvent(const edm::Event &event) const =0
virtual void rebuildSeedingRegion(const TrajectorySeed &, TrajectoryContainer &result) const
virtual TrajectoryContainer trajectories(const TrajectorySeed &) const =0
std::vector< Trajectory > TrajectoryContainer
virtual void trajectories(const TrajectorySeed &seed, TrajectoryContainer &out) const
virtual void unset() const
virtual ~TrajectoryBuilder()
TrajectoryContainer::iterator TrajectoryIterator
def move(src, dest)
Definition: eostools.py:511
Definition: event.py:1