From 3db7b403ec962c679318a1a1e370492fef5cd9af Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Wed, 14 Oct 2020 00:27:03 +0200 Subject: [PATCH 1/2] Migrate rest of {Cosmic,GlobalCosmic,Global,L2,L3,Standalone}MuonProducer to EventSetup consumes --- .../src/CosmicMuonProducer.cc | 4 +-- .../src/GlobalCosmicMuonProducer.cc | 4 +-- .../src/GlobalMuonProducer.cc | 4 +-- .../src/GlobalMuonProducer.h | 2 +- RecoMuon/L2MuonProducer/src/L2MuonProducer.cc | 3 ++- RecoMuon/L3MuonProducer/src/L3MuonProducer.cc | 2 +- .../src/StandAloneMuonProducer.cc | 2 +- .../TrackingTools/interface/MuonTrackFinder.h | 18 +++++++------ RecoMuon/TrackingTools/src/MuonTrackFinder.cc | 26 ++++++++++--------- 9 files changed, 34 insertions(+), 31 deletions(-) diff --git a/RecoMuon/CosmicMuonProducer/src/CosmicMuonProducer.cc b/RecoMuon/CosmicMuonProducer/src/CosmicMuonProducer.cc index 9c09f91c3e36b..c976b8de89c59 100644 --- a/RecoMuon/CosmicMuonProducer/src/CosmicMuonProducer.cc +++ b/RecoMuon/CosmicMuonProducer/src/CosmicMuonProducer.cc @@ -23,7 +23,6 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "DataFormats/TrackReco/interface/Track.h" @@ -59,7 +58,8 @@ CosmicMuonProducer::CosmicMuonProducer(const ParameterSet& iConfig) { theService = std::make_unique(serviceParameters, consumesCollector()); theTrackFinder = std::make_unique(std::make_unique(tbpar, theService.get(), iC), - std::make_unique(trackLoaderParameters, iC, theService.get())); + std::make_unique(trackLoaderParameters, iC, theService.get()), + iC); produces(); produces(); diff --git a/RecoMuon/CosmicMuonProducer/src/GlobalCosmicMuonProducer.cc b/RecoMuon/CosmicMuonProducer/src/GlobalCosmicMuonProducer.cc index f594ad77dba3b..cc4c515b7b0d0 100644 --- a/RecoMuon/CosmicMuonProducer/src/GlobalCosmicMuonProducer.cc +++ b/RecoMuon/CosmicMuonProducer/src/GlobalCosmicMuonProducer.cc @@ -21,7 +21,6 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "DataFormats/MuonReco/interface/MuonTrackLinks.h" @@ -51,7 +50,8 @@ GlobalCosmicMuonProducer::GlobalCosmicMuonProducer(const edm::ParameterSet& iCon edm::ConsumesCollector iC = consumesCollector(); theTrackFinder = std::make_unique( std::make_unique(tbpar, theService.get(), iC), - std::make_unique(trackLoaderParameters, iC, theService.get())); + std::make_unique(trackLoaderParameters, iC, theService.get()), + iC); produces(); produces(); diff --git a/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.cc b/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.cc index d4659320972fd..c75f7c2f1007a 100644 --- a/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.cc +++ b/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.cc @@ -64,7 +64,7 @@ GlobalMuonProducer::GlobalMuonProducer(const ParameterSet& parameterSet) { auto mtl = std::make_unique(trackLoaderParameters, iC, theService); auto gmtb = std::make_unique(trajectoryBuilderParameters, theService, iC); - theTrackFinder = new MuonTrackFinder(std::move(gmtb), std::move(mtl)); + theTrackFinder = std::make_unique(std::move(gmtb), std::move(mtl), iC); setAlias(parameterSet.getParameter("@module_label")); produces().setBranchAlias(theAlias + "Tracks"); @@ -82,8 +82,6 @@ GlobalMuonProducer::~GlobalMuonProducer() { LogTrace("Muon|RecoMuon|GlobalMuonProducer") << "destructor called" << endl; if (theService) delete theService; - if (theTrackFinder) - delete theTrackFinder; } // diff --git a/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.h b/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.h index 0e025aae8eece..d85b1a8212bea 100644 --- a/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.h +++ b/RecoMuon/GlobalMuonProducer/src/GlobalMuonProducer.h @@ -52,7 +52,7 @@ class GlobalMuonProducer : public edm::stream::EDProducer<> { edm::EDGetTokenT staAssoMapToken; edm::EDGetTokenT updatedStaAssoMapToken; - MuonTrackFinder* theTrackFinder; + std::unique_ptr theTrackFinder; /// the event setup proxy, it takes care the services update MuonServiceProxy* theService; diff --git a/RecoMuon/L2MuonProducer/src/L2MuonProducer.cc b/RecoMuon/L2MuonProducer/src/L2MuonProducer.cc index 462727bbb7bbe..8d17c298bcea0 100644 --- a/RecoMuon/L2MuonProducer/src/L2MuonProducer.cc +++ b/RecoMuon/L2MuonProducer/src/L2MuonProducer.cc @@ -88,7 +88,8 @@ L2MuonProducer::L2MuonProducer(const ParameterSet& parameterSet) { theTrackFinder = std::make_unique(std::move(trajectoryBuilder), std::make_unique(trackLoaderParameters, iC, theService.get()), - std::make_unique(true)); + std::make_unique(true), + iC); produces(); produces("UpdatedAtVtx"); diff --git a/RecoMuon/L3MuonProducer/src/L3MuonProducer.cc b/RecoMuon/L3MuonProducer/src/L3MuonProducer.cc index b1e21b59d3c2e..8a32ac1828428 100644 --- a/RecoMuon/L3MuonProducer/src/L3MuonProducer.cc +++ b/RecoMuon/L3MuonProducer/src/L3MuonProducer.cc @@ -58,7 +58,7 @@ L3MuonProducer::L3MuonProducer(const ParameterSet& parameterSet) { // instantiate the concrete trajectory builder in the Track Finder auto mtl = std::make_unique(trackLoaderParameters, iC, theService.get()); auto l3mtb = std::make_unique(trajectoryBuilderParameters, theService.get(), iC); - theTrackFinder = std::make_unique(std::move(l3mtb), std::move(mtl)); + theTrackFinder = std::make_unique(std::move(l3mtb), std::move(mtl), iC); theL2SeededTkLabel = trackLoaderParameters.getUntrackedParameter("MuonSeededTracksInstance", std::string()); diff --git a/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc b/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc index ca8fee965d758..f0d44e4ee3f4d 100644 --- a/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc +++ b/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc @@ -80,7 +80,7 @@ StandAloneMuonProducer::StandAloneMuonProducer(const ParameterSet& parameterSet) trajectoryBuilder = std::make_unique(trajectoryBuilderParameters, theService.get(), iC); } - theTrackFinder = std::make_unique(std::move(trajectoryBuilder), std::move(trackLoader)); + theTrackFinder = std::make_unique(std::move(trajectoryBuilder), std::move(trackLoader), iC); setAlias(parameterSet.getParameter("@module_label")); diff --git a/RecoMuon/TrackingTools/interface/MuonTrackFinder.h b/RecoMuon/TrackingTools/interface/MuonTrackFinder.h index dd599cf2ebe24..260a0cf3930cd 100644 --- a/RecoMuon/TrackingTools/interface/MuonTrackFinder.h +++ b/RecoMuon/TrackingTools/interface/MuonTrackFinder.h @@ -12,17 +12,15 @@ #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "RecoMuon/TrackingTools/interface/MuonCandidate.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" -#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/FrameworkfwdMostUsed.h" #include -namespace edm { - class ParameterSet; - class Event; - class EventSetup; -} // namespace edm class TrackerTopology; +class TrackerTopologyRcd; class MuonTrajectoryBuilder; class MuonTrajectoryCleaner; @@ -37,12 +35,14 @@ class MuonTrackFinder { public: /// Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagator. MuonTrackFinder(std::unique_ptr ConcreteMuonTrajectoryBuilder, - std::unique_ptr trackLoader); + std::unique_ptr trackLoader, + edm::ConsumesCollector iC); /// Constructor, with user-defined cleaner. For the STA reconstruction the trackLoader must have the propagator. MuonTrackFinder(std::unique_ptr ConcreteMuonTrajectoryBuilder, std::unique_ptr trackLoader, - std::unique_ptr cleaner); + std::unique_ptr cleaner, + edm::ConsumesCollector iC); /// destructor virtual ~MuonTrackFinder(); @@ -68,6 +68,8 @@ class MuonTrackFinder { void load(CandidateContainer&, edm::Event&, const TrackerTopology& ttopo); private: + const edm::ESGetToken theTtopoToken; + std::unique_ptr theTrajBuilder; std::unique_ptr theTrajCleaner; diff --git a/RecoMuon/TrackingTools/src/MuonTrackFinder.cc b/RecoMuon/TrackingTools/src/MuonTrackFinder.cc index 7bc1c91e8d889..20590ae1c5a8b 100644 --- a/RecoMuon/TrackingTools/src/MuonTrackFinder.cc +++ b/RecoMuon/TrackingTools/src/MuonTrackFinder.cc @@ -30,16 +30,20 @@ using namespace edm; // Constructor, with default cleaner. For the STA reconstruction the trackLoader must have the propagator. MuonTrackFinder::MuonTrackFinder(std::unique_ptr ConcreteMuonTrajectoryBuilder, - std::unique_ptr trackLoader) - : theTrajBuilder(std::move(ConcreteMuonTrajectoryBuilder)), - theTrajCleaner(new MuonTrajectoryCleaner()), - theTrackLoader(std::move(trackLoader)) {} + std::unique_ptr trackLoader, + edm::ConsumesCollector iC) + : MuonTrackFinder(std::move(ConcreteMuonTrajectoryBuilder), + std::move(trackLoader), + std::make_unique(), + iC) {} // Constructor, with user-defined cleaner. For the STA reconstruction the trackLoader must have the propagator. MuonTrackFinder::MuonTrackFinder(std::unique_ptr ConcreteMuonTrajectoryBuilder, std::unique_ptr trackLoader, - std::unique_ptr cleaner) - : theTrajBuilder(std::move(ConcreteMuonTrajectoryBuilder)), + std::unique_ptr cleaner, + edm::ConsumesCollector iC) + : theTtopoToken(iC.esConsumes()), + theTrajBuilder(std::move(ConcreteMuonTrajectoryBuilder)), theTrajCleaner(std::move(cleaner)), theTrackLoader(std::move(trackLoader)) {} @@ -72,8 +76,7 @@ edm::OrphanHandle MuonTrackFinder::reconstruct( // Percolate the event setEvent(event); - edm::ESHandle httopo; - es.get().get(httopo); + const auto& ttopo = es.getData(theTtopoToken); // Trajectory container TrajectoryContainer muonTrajectories; @@ -96,7 +99,7 @@ edm::OrphanHandle MuonTrackFinder::reconstruct( // convert the trajectories into tracks and load them in to the event LogTrace(metname) << "Convert the trajectories into tracks and load them in to the event" << endl; - return load(muonTrajectories, event, *httopo); + return load(muonTrajectories, event, ttopo); } // reconstruct trajectories @@ -106,8 +109,7 @@ void MuonTrackFinder::reconstruct(const std::vector& staCandColl, Eve // percolate the event setEvent(event); - edm::ESHandle httopo; - es.get().get(httopo); + const auto& ttopo = es.getData(theTtopoToken); // Muon Candidate container CandidateContainer muonCandidates; @@ -126,5 +128,5 @@ void MuonTrackFinder::reconstruct(const std::vector& staCandColl, Eve // convert the trajectories into staTracks and load them into the event LogTrace(metname) << "Load Muon Candidates into the event" << endl; - load(muonCandidates, event, *httopo); + load(muonCandidates, event, ttopo); } From a7a3422e2d574c986b1b2ef52aedd9adb76e767c Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Wed, 14 Oct 2020 16:45:47 +0200 Subject: [PATCH 2/2] Remove unnecessary forward declarations and includes --- RecoMuon/TrackingTools/interface/MuonTrackFinder.h | 3 --- RecoMuon/TrackingTools/src/MuonTrackFinder.cc | 3 --- 2 files changed, 6 deletions(-) diff --git a/RecoMuon/TrackingTools/interface/MuonTrackFinder.h b/RecoMuon/TrackingTools/interface/MuonTrackFinder.h index 260a0cf3930cd..45bc28edca76e 100644 --- a/RecoMuon/TrackingTools/interface/MuonTrackFinder.h +++ b/RecoMuon/TrackingTools/interface/MuonTrackFinder.h @@ -19,9 +19,6 @@ #include -class TrackerTopology; -class TrackerTopologyRcd; - class MuonTrajectoryBuilder; class MuonTrajectoryCleaner; class MuonTrackLoader; diff --git a/RecoMuon/TrackingTools/src/MuonTrackFinder.cc b/RecoMuon/TrackingTools/src/MuonTrackFinder.cc index 20590ae1c5a8b..66677f586e192 100644 --- a/RecoMuon/TrackingTools/src/MuonTrackFinder.cc +++ b/RecoMuon/TrackingTools/src/MuonTrackFinder.cc @@ -22,9 +22,6 @@ #include "TrackingTools/GeomPropagators/interface/Propagator.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" -#include "Geometry/Records/interface/TrackerTopologyRcd.h" - using namespace std; using namespace edm;