File indexing completed on 2024-04-06 12:26:51
0001 #include "RecoMuon/CosmicMuonProducer/src/CosmicMuonProducer.h"
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include <memory>
0015
0016
0017 #include "FWCore/Framework/interface/ConsumesCollector.h"
0018 #include "FWCore/Framework/interface/Frameworkfwd.h"
0019
0020 #include "FWCore/Framework/interface/Event.h"
0021 #include "FWCore/Framework/interface/MakerMacros.h"
0022
0023 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0024
0025 #include "FWCore/Framework/interface/EventSetup.h"
0026 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0027
0028 #include "DataFormats/TrackReco/interface/Track.h"
0029
0030 #include "RecoMuon/CosmicMuonProducer/interface/CosmicMuonTrajectoryBuilder.h"
0031 #include "RecoMuon/TrackingTools/interface/MuonTrackFinder.h"
0032 #include "RecoMuon/TrackingTools/interface/MuonTrackLoader.h"
0033 #include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h"
0034
0035 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
0036
0037 using namespace edm;
0038
0039
0040
0041
0042 CosmicMuonProducer::CosmicMuonProducer(const ParameterSet& iConfig) {
0043 ParameterSet tbpar = iConfig.getParameter<ParameterSet>("TrajectoryBuilderParameters");
0044
0045 theSeedCollectionToken =
0046 consumes<edm::View<TrajectorySeed> >(iConfig.getParameter<std::string>("MuonSeedCollectionLabel"));
0047
0048
0049 ParameterSet serviceParameters = iConfig.getParameter<ParameterSet>("ServiceParameters");
0050
0051
0052 ParameterSet trackLoaderParameters = iConfig.getParameter<ParameterSet>("TrackLoaderParameters");
0053
0054
0055
0056 edm::ConsumesCollector iC = consumesCollector();
0057
0058 theService = std::make_unique<MuonServiceProxy>(serviceParameters, consumesCollector());
0059 theTrackFinder =
0060 std::make_unique<MuonTrackFinder>(std::make_unique<CosmicMuonTrajectoryBuilder>(tbpar, theService.get(), iC),
0061 std::make_unique<MuonTrackLoader>(trackLoaderParameters, iC, theService.get()),
0062 iC);
0063
0064 produces<reco::TrackCollection>();
0065 produces<TrackingRecHitCollection>();
0066 produces<reco::TrackExtraCollection>();
0067 produces<std::vector<Trajectory> >();
0068 produces<TrajTrackAssociationCollection>();
0069 }
0070
0071 CosmicMuonProducer::~CosmicMuonProducer() {}
0072
0073
0074 void CosmicMuonProducer::produce(Event& iEvent, const EventSetup& iSetup) {
0075 LogInfo("CosmicMuonProducer") << "Analyzing event number: " << iEvent.id();
0076
0077 Handle<View<TrajectorySeed> > seeds;
0078 iEvent.getByToken(theSeedCollectionToken, seeds);
0079
0080
0081 theService->update(iSetup);
0082 theTrackFinder->reconstruct(seeds, iEvent, iSetup);
0083 }