00001 #ifndef RecoMuon_MuonSeedGenerator_MuonSeedFinder_H 00002 #define RecoMuon_MuonSeedGenerator_MuonSeedFinder_H 00003 00016 #include "RecoMuon/MuonSeedGenerator/src/MuonSeedVFinder.h" 00017 #include "RecoMuon/MuonSeedGenerator/src/MuonSeedPtExtractor.h" 00018 #include "RecoMuon/MuonSeedGenerator/src/MuonCSCSeedFromRecHits.h" 00019 #include "RecoMuon/MuonSeedGenerator/src/MuonDTSeedFromRecHits.h" 00020 #include "RecoMuon/MuonSeedGenerator/src/MuonOverlapSeedFromRecHits.h" 00021 00022 #include <vector> 00023 00024 class MuonSeedFinder: public MuonSeedVFinder 00025 { 00026 public: 00028 MuonSeedFinder(const edm::ParameterSet & pset); 00029 00031 virtual ~MuonSeedFinder(){}; 00032 00033 // Operations 00034 00035 virtual void setBField(const MagneticField * field); 00036 00037 void seeds(const MuonTransientTrackingRecHit::MuonRecHitContainer & hits, 00038 std::vector<TrajectorySeed> & result); 00039 00040 private: 00041 00042 float computePt(MuonTransientTrackingRecHit::ConstMuonRecHitPointer muon, const MagneticField *field) const; 00043 00044 void analyze() const; 00045 MuonSeedPtExtractor thePtExtractor; 00046 // put a parameterSet instead of 00047 // static SimpleConfigurable<float> theMinMomentum; 00048 float theMinMomentum; 00049 const MagneticField * theField; 00050 00051 MuonDTSeedFromRecHits theBarrel; 00052 MuonOverlapSeedFromRecHits theOverlap; 00053 MuonCSCSeedFromRecHits theEndcap; 00054 00055 }; 00056 #endif