00001 #ifndef RecoMuon_TrackerSeedGenerator_CompositeTSG_H 00002 #define RecoMuon_TrackerSeedGenerator_CompositeTSG_H 00003 00012 #include "RecoMuon/TrackerSeedGenerator/interface/TrackerSeedGenerator.h" 00013 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00014 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" 00015 00016 class TrackingRegion; 00017 class MuonServiceProxy; 00018 class TrackerTopology; 00019 00020 class CompositeTSG : public TrackerSeedGenerator { 00021 00022 public: 00023 typedef std::vector<TrajectorySeed> BTSeedCollection; 00024 typedef std::pair<const Trajectory*, reco::TrackRef> TrackCand; 00025 00026 CompositeTSG(const edm::ParameterSet &pset); 00027 virtual ~CompositeTSG(); 00028 00030 void init(const MuonServiceProxy *service); 00032 void setEvent(const edm::Event &event); 00033 00035 virtual void trackerSeeds(const TrackCand&, const TrackingRegion&, const TrackerTopology *, BTSeedCollection &) =0; 00036 00037 protected: 00038 00039 unsigned int nTSGs() { return theTSGs.size();} 00040 std::vector<TrackerSeedGenerator*> theTSGs; 00041 std::vector<std::string> theNames; 00042 std::string theCategory; 00043 00044 const MuonServiceProxy * theProxyService; 00045 }; 00046 00047 00048 #endif