00001 #ifndef FastSimulation_Muons_FastTSGFromL2Muon_H 00002 #define FastSimulation_Muons_FastTSGFromL2Muon_H 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00007 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" 00008 00009 #include <vector> 00010 namespace edm { class ParameterSet; class Event; class EventSetup; } 00011 00012 class MuonServiceProxy; 00013 class MuonTrackingRegionBuilder; 00014 class RectangularEtaPhiTrackingRegion; 00015 class SimTrack; 00016 //class TH1F; 00017 00018 // 00019 // generate seeds corresponding to L2 muons 00020 // 00021 00022 class FastTSGFromL2Muon : public edm::EDProducer { 00023 00024 public: 00025 00026 FastTSGFromL2Muon(const edm::ParameterSet& cfg); 00027 virtual ~FastTSGFromL2Muon(); 00028 virtual void beginRun(edm::Run& run, edm::EventSetup const& es); 00029 virtual void produce(edm::Event& ev, const edm::EventSetup& es); 00030 00031 private: 00032 00033 bool clean(reco::TrackRef muRef, 00034 RectangularEtaPhiTrackingRegion* region, 00035 const BasicTrajectorySeed* aSeed, 00036 const SimTrack& theSimTrack); 00037 00038 private: 00039 00040 edm::ParameterSet theConfig; 00041 edm::InputTag theSimTrackCollectionLabel; 00042 edm::InputTag theL2CollectionLabel; 00043 std::vector<edm::InputTag> theSeedCollectionLabels; 00044 00045 // bool useTFileService_; 00046 00047 MuonServiceProxy* theService; 00048 double thePtCut; 00049 MuonTrackingRegionBuilder* theRegionBuilder; 00050 00051 // TH1F* h_nSeedPerTrack; 00052 // TH1F* h_nGoodSeedPerTrack; 00053 // TH1F* h_nGoodSeedPerEvent; 00054 00055 }; 00056 #endif