File indexing completed on 2024-09-07 04:38:13
0001 #ifndef TrackingTools_PatternTools_TrajectoryBuilder_h
0002 #define TrackingTools_PatternTools_TrajectoryBuilder_h
0003
0004 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
0005 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0006 #include "FWCore/Framework/interface/Event.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008
0009 class TrajectorySeed;
0010
0011
0012
0013
0014
0015
0016
0017
0018 class TrajectoryBuilder {
0019 public:
0020 typedef std::vector<Trajectory> TrajectoryContainer;
0021 typedef TrajectoryContainer::iterator TrajectoryIterator;
0022
0023 virtual ~TrajectoryBuilder() {}
0024
0025 virtual TrajectoryContainer trajectories(const TrajectorySeed&) const = 0;
0026
0027 virtual void trajectories(const TrajectorySeed& seed, TrajectoryContainer& out) const {
0028 TrajectoryContainer&& ret = trajectories(seed);
0029 out = std::move(ret);
0030 }
0031
0032
0033
0034
0035 virtual void rebuildSeedingRegion(const TrajectorySeed&, TrajectoryContainer& result) const {
0036 LogDebug("TrajectoryBuilding") << "WARNING: you are using a trajectory builder which is not overloading the "
0037 "rebuildSeedingRegion method because there is not an implementation yet: output "
0038 "TrajectoryContainer is equal to inputTrajectoryContainer";
0039 }
0040
0041 virtual void setEvent(const edm::Event& event) const = 0;
0042 virtual void unset() const {};
0043 };
0044
0045 #endif