CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/TrackingTools/PatternTools/interface/TrajectoryBuilder.h

Go to the documentation of this file.
00001 #ifndef TrackingTools_PatternTools_TrajectoryBuilder_h
00002 #define TrackingTools_PatternTools_TrajectoryBuilder_h
00003 
00004 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
00005 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00006 #include "FWCore/Framework/interface/Event.h"
00007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00008 
00009 class TrajectorySeed;
00010 
00018 class TrajectoryBuilder {
00019 public:
00020 
00021   typedef std::vector<Trajectory> TrajectoryContainer;
00022   typedef TrajectoryContainer::iterator TrajectoryIterator;
00023 
00024   virtual ~TrajectoryBuilder() {};
00025 
00026   virtual TrajectoryContainer trajectories(const TrajectorySeed&) const = 0;
00027 
00028   virtual void trajectories(const TrajectorySeed& seed, TrajectoryContainer &out) const {
00029         TrajectoryContainer ret = trajectories(seed);
00030         out.swap(ret);
00031   }
00032 
00036   virtual void  rebuildSeedingRegion(const TrajectorySeed&,
00037                                      TrajectoryContainer& result) const {    
00038     LogDebug("TrajectoryBuilding") 
00039       << "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";
00040   }
00041 
00042   virtual void setEvent(const edm::Event& event) const = 0;
00043   virtual void unset() const {};
00044 };
00045 
00046 
00047 #endif