Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // Forward declare classes from same package (RecoMuon):
0016 class MuonServiceProxy;
0017 class TrackerSeedGenerator;
0018 class MuonTrackingRegionBuilder;
0019 class TrackerSeedCleaner;
0020 class TrackerTopologyRcd;
0021 
0022 //
0023 // Generate tracker seeds from L2 muons
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