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 class TrackerTopology; 00016 00017 namespace edm {class ParameterSet; class Event; class EventSetup;} 00018 00019 class TrackerSeedGenerator { 00020 00021 public: 00022 typedef std::vector<TrajectorySeed> BTSeedCollection; 00023 00024 TrackerSeedGenerator() : theEvent(0), theProxyService(0) {} 00025 00026 typedef std::pair<const Trajectory*, reco::TrackRef> TrackCand; 00027 00028 virtual void init(const MuonServiceProxy *service); 00029 00031 virtual ~TrackerSeedGenerator() {} 00032 00033 virtual void trackerSeeds(const TrackCand&, const TrackingRegion&, const TrackerTopology *, BTSeedCollection &); 00034 00035 virtual void setEvent(const edm::Event&); 00036 00037 const edm::Event *getEvent() const { return theEvent;} 00038 00039 private: 00040 00041 virtual void run(TrajectorySeedCollection &seeds, 00042 const edm::Event &ev, const edm::EventSetup &es, const TrackingRegion& region) {} 00043 protected: 00044 const edm::Event * theEvent; 00045 const MuonServiceProxy * theProxyService; 00046 00047 }; 00048 00049 #endif 00050