File indexing completed on 2025-01-09 23:33:53
0001 #ifndef RecoMuon_L3MuonProducer_L3MuonProducer_H
0002 #define RecoMuon_L3MuonProducer_L3MuonProducer_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include "FWCore/Framework/interface/stream/EDProducer.h"
0015
0016
0017 #include "DataFormats/TrackReco/interface/Track.h"
0018 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0019 #include "DataFormats/TrackReco/interface/TrackToTrackMap.h"
0020 #include "DataFormats/MuonReco/interface/MuonTrackLinks.h"
0021 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0022 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
0023 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0024 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0025 #include <memory>
0026
0027 namespace edm {
0028 class ParameterSet;
0029 class Event;
0030 class EventSetup;
0031 }
0032
0033 class MuonTrackFinder;
0034 class MuonServiceProxy;
0035
0036 class L3MuonProducer : public edm::stream::EDProducer<> {
0037 public:
0038
0039 L3MuonProducer(const edm::ParameterSet&);
0040
0041
0042 ~L3MuonProducer() override;
0043
0044
0045 void produce(edm::Event&, const edm::EventSetup&) override;
0046 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0047
0048 private:
0049
0050 edm::InputTag theL2CollectionLabel;
0051
0052
0053 std::string theL2SeededTkLabel;
0054
0055 edm::EDGetTokenT<reco::TrackCollection> l2MuonToken_;
0056 edm::EDGetTokenT<std::vector<Trajectory> > l2MuonTrajToken_;
0057 edm::EDGetTokenT<TrajTrackAssociationCollection> l2AssoMapToken_;
0058 edm::EDGetTokenT<reco::TrackToTrackMap> updatedL2AssoMapToken_;
0059
0060 std::unique_ptr<MuonTrackFinder> theTrackFinder;
0061
0062
0063 std::unique_ptr<MuonServiceProxy> theService;
0064 };
0065
0066 #endif