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 00019 class CompositeTSG : public TrackerSeedGenerator { 00020 00021 public: 00022 typedef std::vector<TrajectorySeed> BTSeedCollection; 00023 typedef std::pair<const Trajectory*, reco::TrackRef> TrackCand; 00024 00025 CompositeTSG(const edm::ParameterSet &pset); 00026 virtual ~CompositeTSG(); 00027 00029 void init(const MuonServiceProxy *service); 00031 void setEvent(const edm::Event &event); 00032 00034 virtual void trackerSeeds(const TrackCand&, const TrackingRegion&, BTSeedCollection &) =0; 00035 00036 protected: 00037 00038 unsigned int nTSGs() { return theTSGs.size();} 00039 std::vector<TrackerSeedGenerator*> theTSGs; 00040 std::vector<std::string> theNames; 00041 std::string theCategory; 00042 00043 const MuonServiceProxy * theProxyService; 00044 }; 00045 00046 00047 #endif