00001 #ifndef RecoMuon_L2MuonSeedGenerator_L2MuonSeedGenerator_H 00002 #define RecoMuon_L2MuonSeedGenerator_L2MuonSeedGenerator_H 00003 00004 //------------------------------------------------- 00005 // 00020 // 00021 //-------------------------------------------------- 00022 00023 #include "FWCore/Framework/interface/EDProducer.h" 00024 #include "FWCore/Utilities/interface/InputTag.h" 00025 00026 class MuonServiceProxy; 00027 class MeasurementEstimator; 00028 class TrajectorySeed; 00029 class TrajectoryStateOnSurface; 00030 00031 namespace edm {class ParameterSet; class Event; class EventSetup;} 00032 00033 class L2MuonSeedGenerator : public edm::EDProducer { 00034 00035 public: 00036 00038 explicit L2MuonSeedGenerator(const edm::ParameterSet&); 00039 00041 ~L2MuonSeedGenerator(); 00042 00043 virtual void produce(edm::Event&, const edm::EventSetup&); 00044 00045 private: 00046 00047 edm::InputTag theSource; 00048 edm::InputTag theL1GMTReadoutCollection; 00049 edm::InputTag theOfflineSeedLabel; 00050 std::string thePropagatorName; 00051 00052 const double theL1MinPt; 00053 const double theL1MaxEta; 00054 const unsigned theL1MinQuality; 00055 const bool useOfflineSeed; 00056 00058 MuonServiceProxy *theService; 00059 00060 MeasurementEstimator *theEstimator; 00061 00062 const TrajectorySeed* associateOfflineSeedToL1( edm::Handle<edm::View<TrajectorySeed> > &, 00063 std::vector<int> &, 00064 TrajectoryStateOnSurface &); 00065 00066 }; 00067 00068 #endif