00001 #ifndef RecoMuon_TrackerSeedGenerator_H 00002 #define RecoMuon_TrackerSeedGenerator_H 00003 00008 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" 00009 #include "DataFormats/TrackReco/interface/Track.h" 00010 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00011 00012 class Trajectory; 00013 class TrackingRegion; 00014 class MuonServiceProxy; 00015 00016 namespace edm {class ParameterSet; class Event; class EventSetup;} 00017 00018 class TrackerSeedGenerator { 00019 00020 public: 00021 typedef std::vector<TrajectorySeed> BTSeedCollection; 00022 00023 TrackerSeedGenerator() : theEvent(0), theProxyService(0) {} 00024 00025 typedef std::pair<const Trajectory*, reco::TrackRef> TrackCand; 00026 00027 virtual void init(const MuonServiceProxy *service); 00028 00030 virtual ~TrackerSeedGenerator() {} 00031 00032 virtual void trackerSeeds(const TrackCand&, const TrackingRegion&, BTSeedCollection &); 00033 00034 virtual void setEvent(const edm::Event&); 00035 00036 const edm::Event *getEvent() const { return theEvent;} 00037 00038 private: 00039 00040 virtual void run(TrajectorySeedCollection &seeds, 00041 const edm::Event &ev, const edm::EventSetup &es, const TrackingRegion& region) {} 00042 protected: 00043 const edm::Event * theEvent; 00044 const MuonServiceProxy * theProxyService; 00045 00046 }; 00047 00048 #endif 00049