From 7e11783f97e55cbf0eb34138f7b0157ab12ad623 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Fri, 15 Oct 2021 13:26:48 -0500 Subject: [PATCH 1/3] removed unnecessary includes --- DQM/TrackingMonitor/src/TrackingRecoMaterialAnalyser.cc | 1 - RecoMuon/GlobalMuonProducer/src/TevMuonProducer.cc | 1 - RecoMuon/GlobalTrackingTools/interface/DynamicTruncation.h | 1 - RecoMuon/GlobalTrackingTools/interface/GlobalMuonRefitter.h | 1 - 4 files changed, 4 deletions(-) diff --git a/DQM/TrackingMonitor/src/TrackingRecoMaterialAnalyser.cc b/DQM/TrackingMonitor/src/TrackingRecoMaterialAnalyser.cc index 7b9cfdef9bd8c..c87e8fa5d6a7e 100644 --- a/DQM/TrackingMonitor/src/TrackingRecoMaterialAnalyser.cc +++ b/DQM/TrackingMonitor/src/TrackingRecoMaterialAnalyser.cc @@ -17,7 +17,6 @@ #include "DQMServices/Core/interface/DQMEDAnalyzer.h" #include "DQMServices/Core/interface/DQMStore.h" #include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" diff --git a/RecoMuon/GlobalMuonProducer/src/TevMuonProducer.cc b/RecoMuon/GlobalMuonProducer/src/TevMuonProducer.cc index 252767510251c..c7b34637f50bf 100644 --- a/RecoMuon/GlobalMuonProducer/src/TevMuonProducer.cc +++ b/RecoMuon/GlobalMuonProducer/src/TevMuonProducer.cc @@ -9,7 +9,6 @@ // Framework #include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/EDProducer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" diff --git a/RecoMuon/GlobalTrackingTools/interface/DynamicTruncation.h b/RecoMuon/GlobalTrackingTools/interface/DynamicTruncation.h index 02c081c285b72..5c82f3a9b7d69 100644 --- a/RecoMuon/GlobalTrackingTools/interface/DynamicTruncation.h +++ b/RecoMuon/GlobalTrackingTools/interface/DynamicTruncation.h @@ -20,7 +20,6 @@ #include "RecoMuon/GlobalTrackingTools/interface/DirectTrackerNavigation.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" diff --git a/RecoMuon/GlobalTrackingTools/interface/GlobalMuonRefitter.h b/RecoMuon/GlobalTrackingTools/interface/GlobalMuonRefitter.h index a08f89b9f2705..b6017e4046302 100644 --- a/RecoMuon/GlobalTrackingTools/interface/GlobalMuonRefitter.h +++ b/RecoMuon/GlobalTrackingTools/interface/GlobalMuonRefitter.h @@ -15,7 +15,6 @@ */ #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/EDProducer.h" #include "FWCore/Utilities/interface/InputTag.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" From 4e51b626592d86eab24ac1d9f7b43a61b78fe3b6 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Fri, 15 Oct 2021 13:28:29 -0500 Subject: [PATCH 2/3] Added esConsumes calls to Muon related code - Also updated some modules to no longer be legacy --- .../AlignmentMonitorMuonSystemMap1D.cc | 5 +- .../AlignmentMonitorMuonVsCurvature.cc | 5 +- .../AlignmentMonitorSegmentDifferences.cc | 5 +- .../plugins/TrackerToMuonPropagator.cc | 4 +- .../interface/MuonResidualsFromTrack.h | 5 +- .../plugins/CSCOverlapsAlignmentAlgorithm.cc | 2 +- .../plugins/MuonAlignmentFromReference.cc | 5 +- .../src/MuonResidualsFromTrack.cc | 8 +-- .../test/StandAloneTest.cc | 52 ++++++++++++------- .../plugins/TrackExtenderWithMTD.cc | 3 +- .../src/StandAloneMuonProducer.cc | 3 +- .../src/StandAloneTrajectoryBuilder.cc | 2 +- .../interface/DirectMuonTrajectoryBuilder.h | 5 +- .../TrackingTools/interface/MuonTrackLoader.h | 6 ++- .../src/DirectMuonTrajectoryBuilder.cc | 7 ++- RecoMuon/TrackingTools/src/MuonTrackLoader.cc | 32 ++++++------ .../TrackRefitter/interface/SeedTransformer.h | 30 +++++++---- .../interface/TrackTransformer.h | 3 -- .../TrackRefitter/src/SeedTransformer.cc | 24 +++++---- .../TrackRefitter/src/TrackTransformer.cc | 52 +++++-------------- 20 files changed, 139 insertions(+), 119 deletions(-) diff --git a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonSystemMap1D.cc b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonSystemMap1D.cc index 644c76b724fc4..76996cb3d005b 100644 --- a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonSystemMap1D.cc +++ b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonSystemMap1D.cc @@ -51,6 +51,7 @@ class AlignmentMonitorMuonSystemMap1D : public AlignmentMonitorBase { const edm::ESGetToken m_esTokenDetId; const edm::ESGetToken m_esTokenProp; const edm::ESGetToken m_esTokenMF; + const MuonResidualsFromTrack::BuilderToken m_esTokenBuilder; // parameters edm::InputTag m_muonCollectionTag; @@ -155,6 +156,7 @@ AlignmentMonitorMuonSystemMap1D::AlignmentMonitorMuonSystemMap1D(const edm::Para m_esTokenDetId(iC.esConsumes(edm::ESInputTag("", "MuonDetIdAssociator"))), m_esTokenProp(iC.esConsumes(edm::ESInputTag("", "SteppingHelixPropagatorAny"))), m_esTokenMF(iC.esConsumes()), + m_esTokenBuilder(iC.esConsumes(MuonResidualsFromTrack::builderESInputTag())), m_muonCollectionTag(cfg.getParameter("muonCollectionTag")), m_minTrackPt(cfg.getParameter("minTrackPt")), m_maxTrackPt(cfg.getParameter("maxTrackPt")), @@ -271,6 +273,7 @@ void AlignmentMonitorMuonSystemMap1D::event(const edm::Event &iEvent, const DetIdAssociator *muonDetIdAssociator_ = &iSetup.getData(m_esTokenDetId); const Propagator *prop = &iSetup.getData(m_esTokenProp); const MagneticField *magneticField = &iSetup.getData(m_esTokenMF); + auto builder = iSetup.getHandle(m_esTokenBuilder); if (m_muonCollectionTag.label().empty()) // use trajectories { @@ -287,7 +290,7 @@ void AlignmentMonitorMuonSystemMap1D::event(const edm::Event &iEvent, m_counter_trackdxy++; MuonResidualsFromTrack muonResidualsFromTrack( - iSetup, magneticField, globalGeometry, muonDetIdAssociator_, prop, traj, track, pNavigator(), 1000.); + builder, magneticField, globalGeometry, muonDetIdAssociator_, prop, traj, track, pNavigator(), 1000.); processMuonResidualsFromTrack(muonResidualsFromTrack, iEvent); } } // end if track has acceptable momentum diff --git a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonVsCurvature.cc b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonVsCurvature.cc index 33b6b1f12afa4..c674bc5e7639f 100644 --- a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonVsCurvature.cc +++ b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorMuonVsCurvature.cc @@ -49,6 +49,7 @@ class AlignmentMonitorMuonVsCurvature : public AlignmentMonitorBase { const edm::ESGetToken m_esTokenDetId; const edm::ESGetToken m_esTokenProp; const edm::ESGetToken m_esTokenMF; + const MuonResidualsFromTrack::BuilderToken m_esTokenBuilder; // parameters edm::InputTag m_muonCollectionTag; @@ -88,6 +89,7 @@ AlignmentMonitorMuonVsCurvature::AlignmentMonitorMuonVsCurvature(const edm::Para m_esTokenDetId(iC.esConsumes(edm::ESInputTag("", "MuonDetIdAssociator"))), m_esTokenProp(iC.esConsumes(edm::ESInputTag("", "SteppingHelixPropagatorAny"))), m_esTokenMF(iC.esConsumes()), + m_esTokenBuilder(iC.esConsumes(MuonResidualsFromTrack::builderESInputTag())), m_muonCollectionTag(cfg.getParameter("muonCollectionTag")), m_minTrackPt(cfg.getParameter("minTrackPt")), m_minTrackP(cfg.getParameter("minTrackP")), @@ -201,6 +203,7 @@ void AlignmentMonitorMuonVsCurvature::event(const edm::Event &iEvent, const DetIdAssociator *muonDetIdAssociator_ = &iSetup.getData(m_esTokenDetId); const Propagator *prop = &iSetup.getData(m_esTokenProp); const MagneticField *magneticField = &iSetup.getData(m_esTokenMF); + auto builder = iSetup.getHandle(m_esTokenBuilder); if (m_muonCollectionTag.label().empty()) // use trajectories { @@ -211,7 +214,7 @@ void AlignmentMonitorMuonVsCurvature::event(const edm::Event &iEvent, if (track->pt() > m_minTrackPt && track->p() > m_minTrackP && fabs(track->dxy(beamSpot->position())) < m_maxDxy) { MuonResidualsFromTrack muonResidualsFromTrack( - iSetup, magneticField, globalGeometry, muonDetIdAssociator_, prop, traj, track, pNavigator(), 1000.); + builder, magneticField, globalGeometry, muonDetIdAssociator_, prop, traj, track, pNavigator(), 1000.); processMuonResidualsFromTrack(muonResidualsFromTrack, traj); } // end if track pT is within range } // end loop over tracks diff --git a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorSegmentDifferences.cc b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorSegmentDifferences.cc index 185bf2bc5b79e..55234490d0000 100644 --- a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorSegmentDifferences.cc +++ b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorSegmentDifferences.cc @@ -49,6 +49,7 @@ class AlignmentMonitorSegmentDifferences : public AlignmentMonitorBase { const edm::ESGetToken m_esTokenDetId; const edm::ESGetToken m_esTokenProp; const edm::ESGetToken m_esTokenMF; + const MuonResidualsFromTrack::BuilderToken m_esTokenBuilder; // parameters edm::InputTag m_muonCollectionTag; @@ -121,6 +122,7 @@ AlignmentMonitorSegmentDifferences::AlignmentMonitorSegmentDifferences(const edm m_esTokenDetId(iC.esConsumes(edm::ESInputTag("", "MuonDetIdAssociator"))), m_esTokenProp(iC.esConsumes(edm::ESInputTag("", "SteppingHelixPropagatorAny"))), m_esTokenMF(iC.esConsumes()), + m_esTokenBuilder(iC.esConsumes(MuonResidualsFromTrack::builderESInputTag())), m_muonCollectionTag(cfg.getParameter("muonCollectionTag")), m_minTrackPt(cfg.getParameter("minTrackPt")), m_minTrackP(cfg.getParameter("minTrackP")), @@ -376,6 +378,7 @@ void AlignmentMonitorSegmentDifferences::event(const edm::Event &iEvent, const DetIdAssociator *muonDetIdAssociator_ = &iSetup.getData(m_esTokenDetId); const Propagator *prop = &iSetup.getData(m_esTokenProp); const MagneticField *magneticField = &iSetup.getData(m_esTokenMF); + auto builder = iSetup.getHandle(m_esTokenBuilder); if (m_muonCollectionTag.label().empty()) // use trajectories { @@ -386,7 +389,7 @@ void AlignmentMonitorSegmentDifferences::event(const edm::Event &iEvent, if (track->pt() > m_minTrackPt && track->p() > m_minTrackP && fabs(track->dxy(beamSpot->position())) < m_maxDxy) { MuonResidualsFromTrack muonResidualsFromTrack( - iSetup, magneticField, globalGeometry, muonDetIdAssociator_, prop, traj, track, pNavigator(), 1000.); + builder, magneticField, globalGeometry, muonDetIdAssociator_, prop, traj, track, pNavigator(), 1000.); processMuonResidualsFromTrack(muonResidualsFromTrack); } } // end loop over tracks diff --git a/Alignment/CommonAlignmentMonitor/plugins/TrackerToMuonPropagator.cc b/Alignment/CommonAlignmentMonitor/plugins/TrackerToMuonPropagator.cc index c2dcd5a0ce7a6..0100ad24a85a7 100644 --- a/Alignment/CommonAlignmentMonitor/plugins/TrackerToMuonPropagator.cc +++ b/Alignment/CommonAlignmentMonitor/plugins/TrackerToMuonPropagator.cc @@ -26,6 +26,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" // products @@ -105,7 +106,8 @@ TrackerToMuonPropagator::TrackerToMuonPropagator(const edm::ParameterSet& iConfi m_globalMuonTracks = iConfig.getParameter("globalMuonTracks"); m_refitTracker = iConfig.getParameter("refitTrackerTrack"); if (m_refitTracker) { - m_trackTransformer = new TrackTransformer(iConfig.getParameter("trackerTrackTransformer")); + m_trackTransformer = + new TrackTransformer(iConfig.getParameter("trackerTrackTransformer"), consumesCollector()); } else m_trackTransformer = nullptr; diff --git a/Alignment/MuonAlignmentAlgorithms/interface/MuonResidualsFromTrack.h b/Alignment/MuonAlignmentAlgorithms/interface/MuonResidualsFromTrack.h index 686e6341ba1d5..d3461ac33a3b7 100644 --- a/Alignment/MuonAlignmentAlgorithms/interface/MuonResidualsFromTrack.h +++ b/Alignment/MuonAlignmentAlgorithms/interface/MuonResidualsFromTrack.h @@ -51,8 +51,11 @@ class MuonResidualsFromTrack { public: + using BuilderToken = edm::ESGetToken; + static edm::ESInputTag builderESInputTag(); + // residuals from global muon trajectories - MuonResidualsFromTrack(const edm::EventSetup &iSetup, + MuonResidualsFromTrack(edm::ESHandle builder, edm::ESHandle magneticField, edm::ESHandle globalGeometry, edm::ESHandle muonDetIdAssociator_, diff --git a/Alignment/MuonAlignmentAlgorithms/plugins/CSCOverlapsAlignmentAlgorithm.cc b/Alignment/MuonAlignmentAlgorithms/plugins/CSCOverlapsAlignmentAlgorithm.cc index 0667893937ac8..3b7c793ada5ba 100644 --- a/Alignment/MuonAlignmentAlgorithms/plugins/CSCOverlapsAlignmentAlgorithm.cc +++ b/Alignment/MuonAlignmentAlgorithms/plugins/CSCOverlapsAlignmentAlgorithm.cc @@ -55,7 +55,7 @@ CSCOverlapsAlignmentAlgorithm::CSCOverlapsAlignmentAlgorithm(const edm::Paramete } if (m_slopeFromTrackRefit) { - m_trackTransformer = new TrackTransformer(iConfig.getParameter("TrackTransformer")); + m_trackTransformer = new TrackTransformer(iConfig.getParameter("TrackTransformer"), iC); } else { m_trackTransformer = nullptr; } diff --git a/Alignment/MuonAlignmentAlgorithms/plugins/MuonAlignmentFromReference.cc b/Alignment/MuonAlignmentAlgorithms/plugins/MuonAlignmentFromReference.cc index 1aa072191e10d..55e8b092b9fe4 100644 --- a/Alignment/MuonAlignmentAlgorithms/plugins/MuonAlignmentFromReference.cc +++ b/Alignment/MuonAlignmentAlgorithms/plugins/MuonAlignmentFromReference.cc @@ -116,6 +116,7 @@ class MuonAlignmentFromReference : public AlignmentAlgorithmBase { const edm::ESGetToken m_MagFieldToken; const edm::ESGetToken m_propToken; const edm::ESGetToken m_DetIdToken; + const MuonResidualsFromTrack::BuilderToken m_builderToken; // configutarion paramenters: edm::InputTag m_muonCollectionTag; @@ -199,6 +200,7 @@ MuonAlignmentFromReference::MuonAlignmentFromReference(const edm::ParameterSet& m_MagFieldToken(iC.esConsumes()), m_propToken(iC.esConsumes(edm::ESInputTag("", "SteppingHelixPropagatorAny"))), m_DetIdToken(iC.esConsumes(edm::ESInputTag("", "MuonDetIdAssociator"))), + m_builderToken(iC.esConsumes(MuonResidualsFromTrack::builderESInputTag())), m_muonCollectionTag(cfg.getParameter("muonCollectionTag")), m_reference(cfg.getParameter >("reference")), m_minTrackPt(cfg.getParameter("minTrackPt")), @@ -445,6 +447,7 @@ void MuonAlignmentFromReference::run(const edm::EventSetup& iSetup, const EventI const MagneticField* magneticField = &iSetup.getData(m_MagFieldToken); const Propagator* prop = &iSetup.getData(m_propToken); const DetIdAssociator* muonDetIdAssociator = &iSetup.getData(m_DetIdToken); + auto builder = iSetup.getHandle(m_builderToken); if (m_muonCollectionTag.label().empty()) // use trajectories { @@ -468,7 +471,7 @@ void MuonAlignmentFromReference::run(const edm::EventSetup& iSetup, const EventI m_counter_trackdxy++; if (m_debug) std::cout << "JUST BEFORE muonResidualsFromTrack" << std::endl; - MuonResidualsFromTrack muonResidualsFromTrack(iSetup, + MuonResidualsFromTrack muonResidualsFromTrack(builder, magneticField, globalGeometry, muonDetIdAssociator, diff --git a/Alignment/MuonAlignmentAlgorithms/src/MuonResidualsFromTrack.cc b/Alignment/MuonAlignmentAlgorithms/src/MuonResidualsFromTrack.cc index d845e80d2f81a..ea2d098795c1e 100644 --- a/Alignment/MuonAlignmentAlgorithms/src/MuonResidualsFromTrack.cc +++ b/Alignment/MuonAlignmentAlgorithms/src/MuonResidualsFromTrack.cc @@ -19,7 +19,9 @@ #include "TDecompChol.h" #include -MuonResidualsFromTrack::MuonResidualsFromTrack(const edm::EventSetup& iSetup, +edm::ESInputTag MuonResidualsFromTrack::builderESInputTag() { return edm::ESInputTag("", "WithTrackAngle"); } + +MuonResidualsFromTrack::MuonResidualsFromTrack(edm::ESHandle trackerRecHitBuilder, edm::ESHandle magneticField, edm::ESHandle globalGeometry, edm::ESHandle muonDetIdAssociator_, @@ -39,8 +41,6 @@ MuonResidualsFromTrack::MuonResidualsFromTrack(const edm::EventSetup& iSetup, clear(); - edm::ESHandle theTrackerRecHitBuilder; - iSetup.get().get("WithTrackAngle", theTrackerRecHitBuilder); reco::TransientTrack track(*m_recoTrack, &*magneticField, globalGeometry); TransientTrackingRecHit::ConstRecHitContainer recHitsForRefit; int iT = 0, iM = 0; @@ -52,7 +52,7 @@ MuonResidualsFromTrack::MuonResidualsFromTrack(const edm::EventSetup& iSetup, if (m_debug) std::cout << "Tracker Hit " << iT << " is found. Add to refit. Dimension: " << hit->dimension() << std::endl; - recHitsForRefit.push_back(theTrackerRecHitBuilder->build(&*hit)); + recHitsForRefit.push_back(trackerRecHitBuilder->build(&*hit)); } else if (hitId.det() == DetId::Muon) { // if ( hit->geographicalId().subdetId() == 3 && !theRPCInTheFit ) { // LogTrace("Reco|TrackingTools|TrackTransformer") << "RPC Rec Hit discarged"; diff --git a/Alignment/MuonAlignmentAlgorithms/test/StandAloneTest.cc b/Alignment/MuonAlignmentAlgorithms/test/StandAloneTest.cc index 33b988ead96a9..c7780c2c9b4b1 100644 --- a/Alignment/MuonAlignmentAlgorithms/test/StandAloneTest.cc +++ b/Alignment/MuonAlignmentAlgorithms/test/StandAloneTest.cc @@ -22,7 +22,7 @@ // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -57,7 +57,7 @@ // class decleration // -class StandAloneTest : public edm::EDAnalyzer { +class StandAloneTest : public edm::one::EDAnalyzer { public: explicit StandAloneTest(const edm::ParameterSet &); ~StandAloneTest(); @@ -69,7 +69,16 @@ class StandAloneTest : public edm::EDAnalyzer { // ----------member data --------------------------- - edm::InputTag m_Tracks; + const edm::InputTag m_Tracks; + const edm::EDGetTokenT m_tracksToken; + const edm::EDGetTokenT m_trajtracksmapToken; + + const MuonResidualsFromTrack::BuilderToken m_builderToken; + const edm::ESGetToken m_globalGeometryToken; + const edm::ESGetToken m_cscGeometryToken; + const edm::ESGetToken m_propToken; + const edm::ESGetToken m_magneticFieldToken; + const edm::ESGetToken m_muonDetIdAssociatorToken; // declare the TTree TTree *m_ttree; @@ -95,8 +104,17 @@ class StandAloneTest : public edm::EDAnalyzer { // constructors and destructor // StandAloneTest::StandAloneTest(const edm::ParameterSet &iConfig) - : m_Tracks(iConfig.getParameter("Tracks")) { + : m_Tracks(iConfig.getParameter("Tracks")), + m_tracksToken(consumes(m_Tracks)), + m_trajtracksmapToken(consumes(edm::InputTag("TrackRefitter", "Refitted"))), + m_builderToken(esConsumes(MuonResidualsFromTrack::builderESInputTag())), + m_globalGeometryToken(esConsumes()), + m_cscGeometryToken(esConsumes()), + m_propToken(esConsumes(edm::ESInputTag("", "SteppingHelixPropagatorAny"))), + m_magneticFieldToken(esConsumes()), + m_muonDetIdAssociatorToken(esConsumes(edm::ESInputTag("", "MuonDetIdAssociator"))) { edm::Service tFileService; + usesResource(TFileService::kSharedResource); // book the TTree m_ttree = tFileService->make("ttree", "ttree"); @@ -127,23 +145,17 @@ void StandAloneTest::analyze(const edm::Event &iEvent, const edm::EventSetup &iS } // get tracks and refitted from the Event - edm::Handle tracks; - iEvent.getByLabel(m_Tracks, tracks); - edm::Handle trajtracksmap; - iEvent.getByLabel("TrackRefitter", "Refitted", trajtracksmap); + edm::Handle tracks = iEvent.getHandle(m_tracksToken); + edm::Handle trajtracksmap = iEvent.getHandle(m_trajtracksmapToken); // get all tracking and CSC geometries from the EventSetup - edm::ESHandle globalGeometry; - iSetup.get().get(globalGeometry); - edm::ESHandle cscGeometry; - iSetup.get().get(cscGeometry); - - edm::ESHandle prop; - iSetup.get().get("SteppingHelixPropagatorAny", prop); - edm::ESHandle magneticField; - iSetup.get().get(magneticField); - edm::ESHandle muonDetIdAssociator_; - iSetup.get().get("MuonDetIdAssociator", muonDetIdAssociator_); + edm::ESHandle globalGeometry = iSetup.getHandle(m_globalGeometryToken); + edm::ESHandle cscGeometry = iSetup.getHandle(m_cscGeometryToken); + + auto builder = iSetup.getHandle(m_builderToken); + edm::ESHandle prop = iSetup.getHandle(m_propToken); + edm::ESHandle magneticField = iSetup.getHandle(m_magneticFieldToken); + edm::ESHandle muonDetIdAssociator_ = iSetup.getHandle(m_muonDetIdAssociatorToken); // loop over tracks for (reco::TrackCollection::const_iterator track = tracks->begin(); track != tracks->end(); ++track) { @@ -159,7 +171,7 @@ void StandAloneTest::analyze(const edm::Event &iEvent, const edm::EventSetup &iS // if good track, good trajectory if (track->pt() > 20. && traj != NULL && traj->isValid()) { // calculate all residuals on this track - MuonResidualsFromTrack muonResidualsFromTrack(iSetup, + MuonResidualsFromTrack muonResidualsFromTrack(builder, magneticField, globalGeometry, muonDetIdAssociator_, diff --git a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc index 14377ebefbda9..73392658106bf 100644 --- a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc +++ b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc @@ -3,6 +3,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" @@ -446,7 +447,7 @@ TrackExtenderWithMTDT::TrackExtenderWithMTDT(const ParameterSet } theEstimator = std::make_unique(estMaxChi2_, estMaxNSigma_); - theTransformer = std::make_unique(iConfig.getParameterSet("TrackTransformer")); + theTransformer = std::make_unique(iConfig.getParameterSet("TrackTransformer"), consumesCollector()); btlMatchChi2Token = produces>("btlMatchChi2"); etlMatchChi2Token = produces>("etlMatchChi2"); diff --git a/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc b/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc index f0d44e4ee3f4d..49ba82724ca27 100644 --- a/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc +++ b/RecoMuon/StandAloneMuonProducer/src/StandAloneMuonProducer.cc @@ -69,7 +69,8 @@ StandAloneMuonProducer::StandAloneMuonProducer(const ParameterSet& parameterSet) trajectoryBuilder = std::make_unique(trajectoryBuilderParameters, theService.get(), iC); else if (typeOfBuilder == "DirectMuonTrajectoryBuilder") - trajectoryBuilder = std::make_unique(trajectoryBuilderParameters, theService.get()); + trajectoryBuilder = + std::make_unique(trajectoryBuilderParameters, theService.get(), iC); else if (typeOfBuilder == "Exhaustive") trajectoryBuilder = std::make_unique(trajectoryBuilderParameters, theService.get(), iC); diff --git a/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc b/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc index 6bc45a7851416..d5a6b21230e88 100644 --- a/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc +++ b/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc @@ -101,7 +101,7 @@ StandAloneMuonTrajectoryBuilder::StandAloneMuonTrajectoryBuilder(const Parameter // The seed transformer (used to refit the seed and get the seed transient state) // ParameterSet seedTransformerPSet = par.getParameter("SeedTransformerParameters"); ParameterSet seedTransformerParameters = par.getParameter("SeedTransformerParameters"); - theSeedTransformer = new SeedTransformer(seedTransformerParameters); + theSeedTransformer = new SeedTransformer(seedTransformerParameters, iC); } void StandAloneMuonTrajectoryBuilder::setEvent(const edm::Event& event) { diff --git a/RecoMuon/TrackingTools/interface/DirectMuonTrajectoryBuilder.h b/RecoMuon/TrackingTools/interface/DirectMuonTrajectoryBuilder.h index e1087df97cf4a..b6be03bd6ade3 100644 --- a/RecoMuon/TrackingTools/interface/DirectMuonTrajectoryBuilder.h +++ b/RecoMuon/TrackingTools/interface/DirectMuonTrajectoryBuilder.h @@ -18,12 +18,13 @@ class TrajectorySeed; namespace edm { class ParameterSet; -} + class ConsumesCollector; +} // namespace edm class DirectMuonTrajectoryBuilder : public MuonTrajectoryBuilder { public: /// constructor - DirectMuonTrajectoryBuilder(const edm::ParameterSet&, const MuonServiceProxy*); + DirectMuonTrajectoryBuilder(const edm::ParameterSet&, const MuonServiceProxy*, edm::ConsumesCollector); /// destructor ~DirectMuonTrajectoryBuilder() override; diff --git a/RecoMuon/TrackingTools/interface/MuonTrackLoader.h b/RecoMuon/TrackingTools/interface/MuonTrackLoader.h index 7494da206f89c..58e60269369a0 100644 --- a/RecoMuon/TrackingTools/interface/MuonTrackLoader.h +++ b/RecoMuon/TrackingTools/interface/MuonTrackLoader.h @@ -24,6 +24,7 @@ #include "FWCore/Framework/interface/ConsumesCollector.h" #include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h" +#include "TrackingTools/TrackFitters/interface/TrajectoryFitter.h" namespace edm { class Event; @@ -39,6 +40,7 @@ class TrajectorySmoother; class ForwardDetLayer; class BarrelDetLayer; class TrackerTopology; +class TransientRecHitRecord; class MuonTrackLoader { public: @@ -98,8 +100,8 @@ class MuonTrackLoader { bool theTrajectoryFlag; bool theSmoothingStep; - std::string theSmootherName; - std::string theTrackerRecHitBuilderName; + edm::ESGetToken theSmootherToken; + edm::ESGetToken theTrackerRecHitBuilderToken; std::unique_ptr theSmoother; TkClonerImpl hitCloner; diff --git a/RecoMuon/TrackingTools/src/DirectMuonTrajectoryBuilder.cc b/RecoMuon/TrackingTools/src/DirectMuonTrajectoryBuilder.cc index 205f6b2e77b49..cef9887b2f564 100644 --- a/RecoMuon/TrackingTools/src/DirectMuonTrajectoryBuilder.cc +++ b/RecoMuon/TrackingTools/src/DirectMuonTrajectoryBuilder.cc @@ -9,18 +9,21 @@ #include "TrackingTools/TrackRefitter/interface/SeedTransformer.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" using namespace edm; using namespace std; -DirectMuonTrajectoryBuilder::DirectMuonTrajectoryBuilder(const ParameterSet& par, const MuonServiceProxy* service) +DirectMuonTrajectoryBuilder::DirectMuonTrajectoryBuilder(const ParameterSet& par, + const MuonServiceProxy* service, + ConsumesCollector iC) : theService(service) { // The seed transformer (used to refit the seed and get the seed transient state) // ParameterSet seedTransformerPSet = par.getParameter("SeedTransformerParameters"); ParameterSet seedTransformerParameters = par.getParameter("SeedTransformerParameters"); - theSeedTransformer = new SeedTransformer(seedTransformerParameters); + theSeedTransformer = new SeedTransformer(seedTransformerParameters, iC); } DirectMuonTrajectoryBuilder::~DirectMuonTrajectoryBuilder() { diff --git a/RecoMuon/TrackingTools/src/MuonTrackLoader.cc b/RecoMuon/TrackingTools/src/MuonTrackLoader.cc index 722bbfc8722cb..71d94c55983de 100644 --- a/RecoMuon/TrackingTools/src/MuonTrackLoader.cc +++ b/RecoMuon/TrackingTools/src/MuonTrackLoader.cc @@ -99,10 +99,13 @@ MuonTrackLoader::MuonTrackLoader(ParameterSet& parameterSet, // option to do or not the smoothing step. // the trajectories which are passed to the track loader are supposed to be non-smoothed theSmoothingStep = parameterSet.getParameter("DoSmoothing"); - if (theSmoothingStep) - theSmootherName = parameterSet.getParameter("Smoother"); + if (theSmoothingStep) { + auto smootherName = parameterSet.getParameter("Smoother"); + theSmootherToken = iC.esConsumes(edm::ESInputTag("", smootherName)); - theTrackerRecHitBuilderName = parameterSet.getParameter("TTRHBuilder"); + auto trackerRecHitBuilderName = parameterSet.getParameter("TTRHBuilder"); + theTrackerRecHitBuilderToken = iC.esConsumes(edm::ESInputTag("", trackerRecHitBuilderName)); + } // update at vertex theUpdatingAtVtx = parameterSet.getParameter("VertexConstraint"); @@ -206,13 +209,11 @@ OrphanHandle MuonTrackLoader::loadTracks(TrajectoryContai std::map tjTkMap; if (doSmoothing) { - edm::ESHandle aSmoother; - theService->eventSetup().get().get(theSmootherName, aSmoother); - theSmoother.reset(aSmoother->clone()); - edm::ESHandle theTrackerRecHitBuilder; - theService->eventSetup().get().get(theTrackerRecHitBuilderName, theTrackerRecHitBuilder); - theTrackerRecHitBuilder.product(); - hitCloner = static_cast(theTrackerRecHitBuilder.product())->cloner(); + TrajectorySmoother const& aSmoother = theService->eventSetup().getData(theSmootherToken); + theSmoother.reset(aSmoother.clone()); + TransientTrackingRecHitBuilder const& theTrackerRecHitBuilder = + theService->eventSetup().getData(theTrackerRecHitBuilderToken); + hitCloner = static_cast(theTrackerRecHitBuilder).cloner(); theSmoother->setHitCloner(&hitCloner); } @@ -535,12 +536,11 @@ OrphanHandle MuonTrackLoader::loadTracks( std::map tjTkMap; if (doSmoothing) { - edm::ESHandle aSmoother; - theService->eventSetup().get().get(theSmootherName, aSmoother); - theSmoother.reset(aSmoother->clone()); - edm::ESHandle theTrackerRecHitBuilder; - theService->eventSetup().get().get(theTrackerRecHitBuilderName, theTrackerRecHitBuilder); - hitCloner = static_cast(theTrackerRecHitBuilder.product())->cloner(); + TrajectorySmoother const& aSmoother = theService->eventSetup().getData(theSmootherToken); + theSmoother.reset(aSmoother.clone()); + TransientTrackingRecHitBuilder const& theTrackerRecHitBuilder = + theService->eventSetup().getData(theTrackerRecHitBuilderToken); + hitCloner = static_cast(theTrackerRecHitBuilder).cloner(); theSmoother->setHitCloner(&hitCloner); } diff --git a/TrackingTools/TrackRefitter/interface/SeedTransformer.h b/TrackingTools/TrackRefitter/interface/SeedTransformer.h index 26d25e7c754d9..411eb3a8aa01c 100644 --- a/TrackingTools/TrackRefitter/interface/SeedTransformer.h +++ b/TrackingTools/TrackRefitter/interface/SeedTransformer.h @@ -10,26 +10,32 @@ */ // Base class header -#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Utilities/interface/ESGetToken.h" +#include "TrackingTools/TrackFitters/interface/TrajectoryFitter.h" + #include namespace edm { class ParameterSet; class EventSetup; + class ConsumesCollector; } // namespace edm class Trajectory; class TrajectorySeed; class TrajectoryStateOnSurface; class GlobalTrackingGeometry; class MagneticField; -class TrajectoryFitter; class TransientTrackingRecHitBuilder; class Propagator; +class GlobalTrackingGeometryRecord; +class IdealMagneticFieldRecord; +class TransientRecHitRecord; +class TrackingComponentsRecord; class SeedTransformer { public: /// Constructor - SeedTransformer(const edm::ParameterSet&); + SeedTransformer(const edm::ParameterSet&, edm::ConsumesCollector); /// Destructor virtual ~SeedTransformer(); @@ -44,15 +50,17 @@ class SeedTransformer { protected: private: - edm::ESHandle theTrackingGeometry; - edm::ESHandle theMagneticField; - edm::ESHandle theFitter; - edm::ESHandle theMuonRecHitBuilder; - edm::ESHandle thePropagator; + const GlobalTrackingGeometry* theTrackingGeometry; + const MagneticField* theMagneticField; + const TrajectoryFitter* theFitter; + const TransientTrackingRecHitBuilder* theMuonRecHitBuilder; + const Propagator* thePropagator; - std::string theFitterName; - std::string theMuonRecHitBuilderName; - std::string thePropagatorName; + edm::ESGetToken theTrackingGeometryToken; + edm::ESGetToken theMagneticFieldToken; + edm::ESGetToken theFitterToken; + edm::ESGetToken theMuonRecHitBuilderToken; + edm::ESGetToken thePropagatorToken; /// Minimum number of RecHits required to perform the fit unsigned int nMinRecHits; diff --git a/TrackingTools/TrackRefitter/interface/TrackTransformer.h b/TrackingTools/TrackRefitter/interface/TrackTransformer.h index c73afc93c7b49..354991303ef2d 100644 --- a/TrackingTools/TrackRefitter/interface/TrackTransformer.h +++ b/TrackingTools/TrackRefitter/interface/TrackTransformer.h @@ -45,9 +45,6 @@ class TransientRecHitRecord; class TrackTransformer final : public TrackTransformerBase { public: - /// Constructor (for modules not yet migrated to ES-consumes) - explicit TrackTransformer(const edm::ParameterSet&); - /// Constructor (for modules migrated to ES-consumes) explicit TrackTransformer(const edm::ParameterSet&, edm::ConsumesCollector&); explicit TrackTransformer(const edm::ParameterSet& parameterSet, edm::ConsumesCollector&& iC) diff --git a/TrackingTools/TrackRefitter/src/SeedTransformer.cc b/TrackingTools/TrackRefitter/src/SeedTransformer.cc index a37c219a1924e..4287fc7a005be 100644 --- a/TrackingTools/TrackRefitter/src/SeedTransformer.cc +++ b/TrackingTools/TrackRefitter/src/SeedTransformer.cc @@ -16,6 +16,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -43,12 +44,17 @@ using namespace std; using namespace edm; using namespace reco; -SeedTransformer::SeedTransformer(const ParameterSet& iConfig) { +SeedTransformer::SeedTransformer(const ParameterSet& iConfig, ConsumesCollector iC) { LogTrace("Reco|TrackingTools|SeedTransformer") << "SeedTransformer constructor called." << endl << endl; - theFitterName = iConfig.getParameter("Fitter"); - theMuonRecHitBuilderName = iConfig.getParameter("MuonRecHitBuilder"); - thePropagatorName = iConfig.getParameter("Propagator"); + theTrackingGeometryToken = iC.esConsumes(); + theMagneticFieldToken = iC.esConsumes(); + auto fitterName = iConfig.getParameter("Fitter"); + theFitterToken = iC.esConsumes(edm::ESInputTag("", fitterName)); + auto muonRecHitBuilderName = iConfig.getParameter("MuonRecHitBuilder"); + theMuonRecHitBuilderToken = iC.esConsumes(edm::ESInputTag("", muonRecHitBuilderName)); + auto propagatorName = iConfig.getParameter("Propagator"); + thePropagatorToken = iC.esConsumes(edm::ESInputTag("", propagatorName)); nMinRecHits = iConfig.getParameter("NMinRecHits"); errorRescale = iConfig.getParameter("RescaleError"); @@ -60,11 +66,11 @@ SeedTransformer::~SeedTransformer() { } void SeedTransformer::setServices(const EventSetup& iSetup) { - iSetup.get().get(theTrackingGeometry); - iSetup.get().get(theMagneticField); - iSetup.get().get(theFitterName, theFitter); - iSetup.get().get(theMuonRecHitBuilderName, theMuonRecHitBuilder); - iSetup.get().get(thePropagatorName, thePropagator); + theTrackingGeometry = &iSetup.getData(theTrackingGeometryToken); + theMagneticField = &iSetup.getData(theMagneticFieldToken); + theFitter = &iSetup.getData(theFitterToken); + theMuonRecHitBuilder = &iSetup.getData(theMuonRecHitBuilderToken); + thePropagator = &iSetup.getData(thePropagatorToken); } vector SeedTransformer::seedTransform(const TrajectorySeed& aSeed) const { diff --git a/TrackingTools/TrackRefitter/src/TrackTransformer.cc b/TrackingTools/TrackRefitter/src/TrackTransformer.cc index 32b4ce343da07..c1140b671e46b 100644 --- a/TrackingTools/TrackRefitter/src/TrackTransformer.cc +++ b/TrackingTools/TrackRefitter/src/TrackTransformer.cc @@ -29,7 +29,7 @@ using namespace std; using namespace edm; /// Constructor -TrackTransformer::TrackTransformer(const ParameterSet& parameterSet) +TrackTransformer::TrackTransformer(const ParameterSet& parameterSet, edm::ConsumesCollector& iC) : theRPCInTheFit(parameterSet.getParameter("RefitRPCHits")), theDoPredictionsOnly(parameterSet.getParameter("DoPredictionsOnly")), theRefitDirection(parameterSet.getParameter("RefitDirection")), @@ -38,10 +38,7 @@ TrackTransformer::TrackTransformer(const ParameterSet& parameterSet) thePropagatorName(parameterSet.getParameter("Propagator")), theTrackerRecHitBuilderName(parameterSet.getParameter("TrackerRecHitBuilder")), theMuonRecHitBuilderName(parameterSet.getParameter("MuonRecHitBuilder")), - theMTDRecHitBuilderName(parameterSet.getParameter("MTDRecHitBuilder")) {} - -TrackTransformer::TrackTransformer(const ParameterSet& parameterSet, edm::ConsumesCollector& iC) - : TrackTransformer(parameterSet) { + theMTDRecHitBuilderName(parameterSet.getParameter("MTDRecHitBuilder")) { theTrackingGeometryToken = iC.esConsumes(); theMGFieldToken = iC.esConsumes(); theFitterToken = iC.esConsumes(edm::ESInputTag("", theFitterName)); @@ -79,50 +76,25 @@ void TrackTransformer::fillPSetDescription(edm::ParameterSetDescription& desc, void TrackTransformer::setServices(const EventSetup& setup) { const std::string metname = "Reco|TrackingTools|TrackTransformer"; - if (theFitterToken.isInitialized()) { - theFitter = setup.getData(theFitterToken).clone(); - theSmoother.reset(setup.getData(theSmootherToken).clone()); - - thePropagator = setup.getHandle(thePropagatorToken); + theFitter = setup.getData(theFitterToken).clone(); + theSmoother.reset(setup.getData(theSmootherToken).clone()); - // Global Tracking Geometry - theTrackingGeometry = setup.getHandle(theTrackingGeometryToken); + thePropagator = setup.getHandle(thePropagatorToken); - // Magfield Field - theMGField = setup.getHandle(theMGFieldToken); - } else { - edm::ESHandle aFitter; - edm::ESHandle aSmoother; - setup.get().get(theFitterName, aFitter); - setup.get().get(theSmootherName, aSmoother); - theFitter = aFitter->clone(); - theSmoother.reset(aSmoother->clone()); + // Global Tracking Geometry + theTrackingGeometry = setup.getHandle(theTrackingGeometryToken); - setup.get().get(thePropagatorName, thePropagator); - - // Global Tracking Geometry - setup.get().get(theTrackingGeometry); - - // Magfield Field - setup.get().get(theMGField); - } + // Magfield Field + theMGField = setup.getHandle(theMGFieldToken); // Transient Rechit Builders unsigned long long newCacheId_TRH = setup.get().cacheIdentifier(); if (newCacheId_TRH != theCacheId_TRH) { theCacheId_TRH = newCacheId_TRH; LogTrace(metname) << "TransientRecHitRecord changed!"; - if (theTrackerRecHitBuilderToken.isInitialized()) { - theTrackerRecHitBuilder = &setup.getData(theTrackerRecHitBuilderToken); - theMuonRecHitBuilder = setup.getHandle(theMuonRecHitBuilderToken); - theMTDRecHitBuilder = setup.getHandle(theMTDRecHitBuilderToken); - } else { - edm::ESHandle aTrackerRecHitBuilder; - setup.get().get(theTrackerRecHitBuilderName, aTrackerRecHitBuilder); - theTrackerRecHitBuilder = aTrackerRecHitBuilder.product(); - setup.get().get(theMuonRecHitBuilderName, theMuonRecHitBuilder); - setup.get().get(theMTDRecHitBuilderName, theMTDRecHitBuilder); - } + theTrackerRecHitBuilder = &setup.getData(theTrackerRecHitBuilderToken); + theMuonRecHitBuilder = setup.getHandle(theMuonRecHitBuilderToken); + theMTDRecHitBuilder = setup.getHandle(theMTDRecHitBuilderToken); theMtdAvailable = theMTDRecHitBuilder.isValid(); hitCloner = static_cast(theTrackerRecHitBuilder)->cloner(); } From 764854b5ce5cdfbf0b9dae9e4bba4d95abd12e60 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Fri, 15 Oct 2021 16:17:40 -0500 Subject: [PATCH 3/3] switched to using std::unique_ptr for memory management --- .../interface/StandAloneTrajectoryBuilder.h | 14 +++++++------- .../src/StandAloneTrajectoryBuilder.cc | 17 ++++------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/RecoMuon/StandAloneTrackFinder/interface/StandAloneTrajectoryBuilder.h b/RecoMuon/StandAloneTrackFinder/interface/StandAloneTrajectoryBuilder.h index afe93b873fe24..b2d38f30babe5 100644 --- a/RecoMuon/StandAloneTrackFinder/interface/StandAloneTrajectoryBuilder.h +++ b/RecoMuon/StandAloneTrackFinder/interface/StandAloneTrajectoryBuilder.h @@ -42,13 +42,13 @@ class StandAloneMuonTrajectoryBuilder : public MuonTrajectoryBuilder { CandidateContainer trajectories(const TrackCand&) override { return CandidateContainer(); } /// pre-filter - StandAloneMuonFilter* filter() const { return theFilter; } + StandAloneMuonFilter* filter() const { return theFilter.get(); } /// actual filter - StandAloneMuonFilter* bwfilter() const { return theBWFilter; } + StandAloneMuonFilter* bwfilter() const { return theBWFilter.get(); } /// refitter of the hits container - StandAloneMuonRefitter* refitter() const { return theRefitter; } + StandAloneMuonRefitter* refitter() const { return theRefitter.get(); } /// Pass the Event to the algo at each event void setEvent(const edm::Event& event) override; @@ -67,12 +67,12 @@ class StandAloneMuonTrajectoryBuilder : public MuonTrajectoryBuilder { /// Propagator for the seed extrapolation std::string theSeedPropagatorName; - StandAloneMuonFilter* theFilter; - StandAloneMuonFilter* theBWFilter; + std::unique_ptr theFilter; + std::unique_ptr theBWFilter; // FIXME // StandAloneMuonBackwardFilter* theBWFilter; - StandAloneMuonRefitter* theRefitter; - SeedTransformer* theSeedTransformer; + std::unique_ptr theRefitter; + std::unique_ptr theSeedTransformer; bool doBackwardFilter; bool doRefit; diff --git a/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc b/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc index d5a6b21230e88..ded67522d4d5c 100644 --- a/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc +++ b/RecoMuon/StandAloneTrackFinder/src/StandAloneTrajectoryBuilder.cc @@ -53,7 +53,7 @@ StandAloneMuonTrajectoryBuilder::StandAloneMuonTrajectoryBuilder(const Parameter // The inward-outward fitter (starts from seed state) ParameterSet filterPSet = par.getParameter("FilterParameters"); filterPSet.addParameter("NavigationType", theNavigationType); - theFilter = new StandAloneMuonFilter(filterPSet, theService, iC); + theFilter = std::make_unique(filterPSet, theService, iC); // Fit direction string seedPosition = par.getParameter("SeedPosition"); @@ -87,7 +87,7 @@ StandAloneMuonTrajectoryBuilder::StandAloneMuonTrajectoryBuilder(const Parameter ParameterSet bwFilterPSet = par.getParameter("BWFilterParameters"); // theBWFilter = new StandAloneMuonBackwardFilter(bwFilterPSet,theService); // FIXME bwFilterPSet.addParameter("NavigationType", theNavigationType); - theBWFilter = new StandAloneMuonFilter(bwFilterPSet, theService, iC); + theBWFilter = std::make_unique(bwFilterPSet, theService, iC); theBWSeedType = bwFilterPSet.getParameter("BWSeedType"); } @@ -95,13 +95,13 @@ StandAloneMuonTrajectoryBuilder::StandAloneMuonTrajectoryBuilder(const Parameter if (doRefit) { // The outward-inward fitter (starts from theBWFilter innermost state) ParameterSet refitterPSet = par.getParameter("RefitterParameters"); - theRefitter = new StandAloneMuonRefitter(refitterPSet, iC, theService); + theRefitter = std::make_unique(refitterPSet, iC, theService); } // The seed transformer (used to refit the seed and get the seed transient state) // ParameterSet seedTransformerPSet = par.getParameter("SeedTransformerParameters"); ParameterSet seedTransformerParameters = par.getParameter("SeedTransformerParameters"); - theSeedTransformer = new SeedTransformer(seedTransformerParameters, iC); + theSeedTransformer = std::make_unique(seedTransformerParameters, iC); } void StandAloneMuonTrajectoryBuilder::setEvent(const edm::Event& event) { @@ -113,15 +113,6 @@ void StandAloneMuonTrajectoryBuilder::setEvent(const edm::Event& event) { StandAloneMuonTrajectoryBuilder::~StandAloneMuonTrajectoryBuilder() { LogTrace("Muon|RecoMuon|StandAloneMuonTrajectoryBuilder") << "StandAloneMuonTrajectoryBuilder destructor called" << endl; - - if (theFilter) - delete theFilter; - if (doBackwardFilter && theBWFilter) - delete theBWFilter; - if (doRefit && theRefitter) - delete theRefitter; - if (theSeedTransformer) - delete theSeedTransformer; } namespace {