00001 #ifndef RecoMuon_MuonSeedGenerator_RPCSeedFinder_H 00002 #define RecoMuon_MuonSeedGenerator_RPCSeedFinder_H 00003 00004 00013 #include "RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.h" 00014 #include <DataFormats/TrajectorySeed/interface/TrajectorySeed.h> 00015 #include <RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h> 00016 #include <FWCore/ParameterSet/interface/ParameterSet.h> 00017 #include <FWCore/Framework/interface/EventSetup.h> 00018 #include <vector> 00019 #include <algorithm> 00020 00021 namespace edm {class EventSetup;} 00022 00023 class RPCSeedFinder 00024 { 00025 typedef MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer; 00026 typedef MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer; 00027 typedef MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer; 00028 typedef MuonTransientTrackingRecHit::ConstMuonRecHitContainer ConstMuonRecHitContainer; 00029 typedef RPCSeedPattern::weightedTrajectorySeed weightedTrajectorySeed; 00030 00031 public: 00032 RPCSeedFinder(); 00033 ~RPCSeedFinder(); 00034 void configure(const edm::ParameterSet& iConfig); 00035 void setOutput(std::vector<weightedTrajectorySeed> *goodweightedRef, std::vector<weightedTrajectorySeed> *candidateweightedRef); 00036 void setrecHits(ConstMuonRecHitContainer &recHits); 00037 void setEventSetup(const edm::EventSetup& iSetup); 00038 void seed(); 00039 00040 private: 00041 // Signal for call fillLayers() 00042 bool isrecHitsset; 00043 bool isConfigured; 00044 bool isOutputset; 00045 bool isEventSetupset; 00046 const edm::EventSetup *eSetup; 00047 RPCSeedPattern oneSeed; 00048 //ConstMuonRecHitContainer theRecHits; 00049 std::vector<weightedTrajectorySeed> *goodweightedSeedsRef; 00050 std::vector<weightedTrajectorySeed> *candidateweightedSeedsRef; 00051 }; 00052 #endif