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(){delete thePtExtractor;} 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 // put a parameterSet instead of 00046 // static SimpleConfigurable<float> theMinMomentum; 00047 float theMinMomentum; 00048 const MagneticField * theField; 00049 00050 MuonDTSeedFromRecHits theBarrel; 00051 MuonOverlapSeedFromRecHits theOverlap; 00052 MuonCSCSeedFromRecHits theEndcap; 00053 00054 }; 00055 #endif