File indexing completed on 2024-04-06 12:27:16
0001 #ifndef RecoMuon_TrackerSeedGenerator_TSGFromL2Muon_H
0002 #define RecoMuon_TrackerSeedGenerator_TSGFromL2Muon_H
0003
0004 #include "FWCore/Framework/interface/stream/EDProducer.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Framework/interface/EventSetup.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0009 #include "DataFormats/Common/interface/Handle.h"
0010 #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeed.h"
0011 #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeedCollection.h"
0012 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0013 #include <vector>
0014
0015
0016 class MuonServiceProxy;
0017 class TrackerSeedGenerator;
0018 class MuonTrackingRegionBuilder;
0019 class TrackerSeedCleaner;
0020 class TrackerTopologyRcd;
0021
0022
0023
0024
0025 class TSGFromL2Muon : public edm::stream::EDProducer<> {
0026 public:
0027 TSGFromL2Muon(const edm::ParameterSet& cfg);
0028 ~TSGFromL2Muon() override;
0029 void beginRun(const edm::Run& run, const edm::EventSetup& es) override;
0030 void produce(edm::Event& ev, const edm::EventSetup& es) override;
0031 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0032
0033 private:
0034 edm::InputTag theL2CollectionLabel;
0035 std::unique_ptr<MuonServiceProxy> theService;
0036 double thePtCut, thePCut;
0037 std::unique_ptr<MuonTrackingRegionBuilder> theRegionBuilder;
0038 std::unique_ptr<TrackerSeedGenerator> theTkSeedGenerator;
0039 std::unique_ptr<TrackerSeedCleaner> theSeedCleaner;
0040 edm::EDGetTokenT<reco::TrackCollection> l2muonToken;
0041 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> theTTopoToken;
0042 };
0043 #endif