diff --git a/RecoEgamma/EgammaPhotonAlgos/interface/ConversionTrackFinder.h b/RecoEgamma/EgammaPhotonAlgos/interface/ConversionTrackFinder.h index 93a1a16e00792..da13c22e242a6 100644 --- a/RecoEgamma/EgammaPhotonAlgos/interface/ConversionTrackFinder.h +++ b/RecoEgamma/EgammaPhotonAlgos/interface/ConversionTrackFinder.h @@ -30,7 +30,9 @@ class TrackerGeometry; class ConversionTrackFinder { public: - ConversionTrackFinder(const edm::ParameterSet& config, const BaseCkfTrajectoryBuilder* trajectoryBuilder); + ConversionTrackFinder(const edm::ParameterSet& config, + const BaseCkfTrajectoryBuilder* trajectoryBuilder, + edm::ConsumesCollector iC); virtual ~ConversionTrackFinder(); diff --git a/RecoEgamma/EgammaPhotonAlgos/interface/InOutConversionTrackFinder.h b/RecoEgamma/EgammaPhotonAlgos/interface/InOutConversionTrackFinder.h index 1a7b0a66f26fe..64bc70e6d5bb8 100644 --- a/RecoEgamma/EgammaPhotonAlgos/interface/InOutConversionTrackFinder.h +++ b/RecoEgamma/EgammaPhotonAlgos/interface/InOutConversionTrackFinder.h @@ -27,7 +27,9 @@ class TrajectoryCleanerBySharedHits; class InOutConversionTrackFinder : public ConversionTrackFinder { public: - InOutConversionTrackFinder(const edm::ParameterSet& config, const BaseCkfTrajectoryBuilder* trajectoryBuilder); + InOutConversionTrackFinder(const edm::ParameterSet& config, + const BaseCkfTrajectoryBuilder* trajectoryBuilder, + edm::ConsumesCollector iC); ~InOutConversionTrackFinder() override; std::vector tracks(const TrajectorySeedCollection& seeds, diff --git a/RecoEgamma/EgammaPhotonAlgos/interface/OutInConversionTrackFinder.h b/RecoEgamma/EgammaPhotonAlgos/interface/OutInConversionTrackFinder.h index ee3706c2ae6e5..196af47f13760 100644 --- a/RecoEgamma/EgammaPhotonAlgos/interface/OutInConversionTrackFinder.h +++ b/RecoEgamma/EgammaPhotonAlgos/interface/OutInConversionTrackFinder.h @@ -29,7 +29,9 @@ class TrajectoryCleanerBySharedHits; class OutInConversionTrackFinder : public ConversionTrackFinder { public: - OutInConversionTrackFinder(const edm::ParameterSet& config, const BaseCkfTrajectoryBuilder* trajectoryBuilder); + OutInConversionTrackFinder(const edm::ParameterSet& config, + const BaseCkfTrajectoryBuilder* trajectoryBuilder, + edm::ConsumesCollector iC); ~OutInConversionTrackFinder() override; diff --git a/RecoEgamma/EgammaPhotonAlgos/src/ConversionTrackFinder.cc b/RecoEgamma/EgammaPhotonAlgos/src/ConversionTrackFinder.cc index 694f033b045b6..f393083043b5e 100644 --- a/RecoEgamma/EgammaPhotonAlgos/src/ConversionTrackFinder.cc +++ b/RecoEgamma/EgammaPhotonAlgos/src/ConversionTrackFinder.cc @@ -14,10 +14,11 @@ #include ConversionTrackFinder::ConversionTrackFinder(const edm::ParameterSet& conf, - const BaseCkfTrajectoryBuilder* trajectoryBuilder) + const BaseCkfTrajectoryBuilder* trajectoryBuilder, + edm::ConsumesCollector iC) : theCkfTrajectoryBuilder_(trajectoryBuilder), theInitialState_(new TransientInitialStateEstimator( - conf.getParameter("TransientInitialStateEstimatorParameters"))), + conf.getParameter("TransientInitialStateEstimatorParameters"), iC)), theTrackerGeom_(nullptr), theUpdator_(nullptr), thePropagator_(nullptr) { diff --git a/RecoEgamma/EgammaPhotonAlgos/src/InOutConversionTrackFinder.cc b/RecoEgamma/EgammaPhotonAlgos/src/InOutConversionTrackFinder.cc index 4a6780f4dbdf4..2a0c7685219c1 100644 --- a/RecoEgamma/EgammaPhotonAlgos/src/InOutConversionTrackFinder.cc +++ b/RecoEgamma/EgammaPhotonAlgos/src/InOutConversionTrackFinder.cc @@ -18,8 +18,9 @@ #include InOutConversionTrackFinder::InOutConversionTrackFinder(const edm::ParameterSet& conf, - const BaseCkfTrajectoryBuilder* trajectoryBuilder) - : ConversionTrackFinder(conf, trajectoryBuilder) { + const BaseCkfTrajectoryBuilder* trajectoryBuilder, + edm::ConsumesCollector iC) + : ConversionTrackFinder(conf, trajectoryBuilder, iC) { theTrajectoryCleaner_ = new TrajectoryCleanerBySharedHits(conf); // get the seed cleaner diff --git a/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionTrackFinder.cc b/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionTrackFinder.cc index 7d7f0ff6fb333..6836a889c0b2f 100644 --- a/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionTrackFinder.cc +++ b/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionTrackFinder.cc @@ -18,8 +18,9 @@ #include "Utilities/General/interface/precomputed_value_sort.h" OutInConversionTrackFinder::OutInConversionTrackFinder(const edm::ParameterSet& conf, - const BaseCkfTrajectoryBuilder* trajectoryBuilder) - : ConversionTrackFinder(conf, trajectoryBuilder) { + const BaseCkfTrajectoryBuilder* trajectoryBuilder, + edm::ConsumesCollector iC) + : ConversionTrackFinder(conf, trajectoryBuilder, iC) { theTrajectoryCleaner_ = new TrajectoryCleanerBySharedHits(conf); // get the seed cleaner diff --git a/RecoEgamma/EgammaPhotonProducers/src/ConversionTrackCandidateProducer.cc b/RecoEgamma/EgammaPhotonProducers/src/ConversionTrackCandidateProducer.cc index f95619b2f8817..be107b0b161d8 100644 --- a/RecoEgamma/EgammaPhotonProducers/src/ConversionTrackCandidateProducer.cc +++ b/RecoEgamma/EgammaPhotonProducers/src/ConversionTrackCandidateProducer.cc @@ -145,9 +145,9 @@ ConversionTrackCandidateProducer::ConversionTrackCandidateProducer(const edm::Pa theTrajectoryBuilder_(createBaseCkfTrajectoryBuilder( config.getParameter("TrajectoryBuilderPSet"), consumesCollector())), outInSeedFinder_{config, consumesCollector()}, - outInTrackFinder_{config, theTrajectoryBuilder_.get()}, + outInTrackFinder_{config, theTrajectoryBuilder_.get(), consumesCollector()}, inOutSeedFinder_{config, consumesCollector()}, - inOutTrackFinder_{config, theTrajectoryBuilder_.get()} { + inOutTrackFinder_{config, theTrajectoryBuilder_.get(), consumesCollector()} { OutInTrackCandidateCollection_ = config.getParameter("outInTrackCandidateCollection"); InOutTrackCandidateCollection_ = config.getParameter("inOutTrackCandidateCollection"); diff --git a/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h b/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h index d4a7415b68ca6..154d8ddd314d0 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h +++ b/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h @@ -36,6 +36,7 @@ class ClusterShapeTrajectoryFilter : public TrajectoryFilter { private: edm::EDGetTokenT theCacheToken; + edm::ESGetToken theFilterToken; const SiPixelClusterShapeCache* theCache; const ClusterShapeHitFilter* theFilter; }; diff --git a/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc b/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc index 2b434747047a9..6ff70589ce341 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc +++ b/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc @@ -6,14 +6,12 @@ #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/MessageLogger/interface/MessageLogger.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "TrackingTools/PatternTools/interface/TempTrajectory.h" -#include "DataFormats/Common/interface/Handle.h" #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" @@ -37,18 +35,14 @@ using namespace std; /*****************************************************************************/ ClusterShapeTrajectoryFilter::ClusterShapeTrajectoryFilter(const edm::ParameterSet& iConfig, edm::ConsumesCollector& iC) : theCacheToken(iC.consumes(iConfig.getParameter("cacheSrc"))), + theFilterToken(iC.esConsumes(edm::ESInputTag("", "ClusterShapeHitFilter"))), theFilter(nullptr) {} ClusterShapeTrajectoryFilter::~ClusterShapeTrajectoryFilter() {} void ClusterShapeTrajectoryFilter::setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - edm::ESHandle shape; - iSetup.get().get("ClusterShapeHitFilter", shape); - theFilter = shape.product(); - - edm::Handle cache; - iEvent.getByToken(theCacheToken, cache); - theCache = cache.product(); + theFilter = &iSetup.getData(theFilterToken); + theCache = &iEvent.get(theCacheToken); } /*****************************************************************************/ diff --git a/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h b/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h index f8249ffdd3185..11b8c738f65e7 100644 --- a/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h +++ b/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h @@ -3,8 +3,10 @@ #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h" #include "TrackingTools/PatternTools/interface/TrajectoryBuilder.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/ESGetToken.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" #include @@ -26,6 +28,7 @@ class TrajectoryMeasurement; class TrajectoryContainer; class TrajectoryStateOnSurface; class TrajectoryFitter; +class TransientRecHitRecord; class TransientTrackingRecHitBuilder; class Trajectory; class TempTrajectory; @@ -65,6 +68,7 @@ class BaseCkfTrajectoryBuilder : public TrajectoryBuilder { // Claims ownership of TrajectoryFilter pointers BaseCkfTrajectoryBuilder(const edm::ParameterSet& conf, + edm::ConsumesCollector iC, std::unique_ptr filter, std::unique_ptr inOutFilter = nullptr); BaseCkfTrajectoryBuilder(const BaseCkfTrajectoryBuilder&) = delete; @@ -182,11 +186,11 @@ class BaseCkfTrajectoryBuilder : public TrajectoryBuilder { std::unique_ptr theInOutFilter; /** Filter used at end of in-out tracking */ // for EventSetup - const std::string theUpdatorName; - const std::string thePropagatorAlongName; - const std::string thePropagatorOppositeName; - const std::string theEstimatorName; - const std::string theRecHitBuilderName; + const edm::ESGetToken theUpdatorToken; + const edm::ESGetToken thePropagatorAlongToken; + const edm::ESGetToken thePropagatorOppositeToken; + const edm::ESGetToken theEstimatorToken; + const edm::ESGetToken theRecHitBuilderToken; }; #endif diff --git a/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h b/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h index 18b1f215d1e86..1117a159ff93b 100644 --- a/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h +++ b/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h @@ -2,7 +2,6 @@ #define CkfTrackCandidateMakerBase_h #include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ConsumesCollector.h" @@ -29,6 +28,8 @@ #include class TransientInitialStateEstimator; +class NavigationSchoolRecord; +class TrackerDigiGeometryRecord; namespace cms { class CkfTrackCandidateMakerBase { @@ -54,18 +55,17 @@ namespace cms { std::unique_ptr theTrajectoryBuilder; - std::string theTrajectoryCleanerName; + edm::ESGetToken theTrajectoryCleanerToken; const TrajectoryCleaner* theTrajectoryCleaner; std::unique_ptr theInitialState; - const std::string theMagFieldName; - edm::ESHandle theMagField; - edm::ESHandle theGeomSearchTracker; - - std::string theNavigationSchoolName; + edm::ESGetToken theNavigationSchoolToken; const NavigationSchool* theNavigationSchool; + edm::ESGetToken thePropagatorToken; + edm::ESGetToken theTrackerToken; + std::unique_ptr theSeedCleaner; unsigned int maxSeedsBeforeCleaning_; diff --git a/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h b/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h index 16a3afe18c2f3..b1bf2caf60150 100644 --- a/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h +++ b/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h @@ -10,7 +10,6 @@ class TrajectorySeed; class TrajectoryStateOnSurface; class TrajectoryFilter; -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/Event.h" @@ -35,8 +34,10 @@ class CkfTrajectoryBuilder : public BaseCkfTrajectoryBuilder { typedef std::vector TrajectoryContainer; typedef std::vector TempTrajectoryContainer; - CkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC); - CkfTrajectoryBuilder(const edm::ParameterSet& conf, std::unique_ptr filter); + CkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector iC); + CkfTrajectoryBuilder(const edm::ParameterSet& conf, + edm::ConsumesCollector iC, + std::unique_ptr filter); ~CkfTrajectoryBuilder() override {} diff --git a/RecoTracker/CkfPattern/interface/TransientInitialStateEstimator.h b/RecoTracker/CkfPattern/interface/TransientInitialStateEstimator.h index a53f5404db4f4..773165bdee02b 100644 --- a/RecoTracker/CkfPattern/interface/TransientInitialStateEstimator.h +++ b/RecoTracker/CkfPattern/interface/TransientInitialStateEstimator.h @@ -1,6 +1,7 @@ #ifndef TransientInitialStateEstimator_H #define TransientInitialStateEstimator_H +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" @@ -24,14 +25,14 @@ class TransientInitialStateEstimator { public: typedef TrajectoryStateOnSurface TSOS; - TransientInitialStateEstimator(const edm::ParameterSet& conf); + TransientInitialStateEstimator(const edm::ParameterSet& conf, edm::ConsumesCollector iC); void setEventSetup(const edm::EventSetup& es, const TkClonerImpl& hc); std::pair innerState(const Trajectory& traj, bool doBackFit = true) const; private: - const std::string thePropagatorAlongName; - const std::string thePropagatorOppositeName; + const edm::ESGetToken thePropagatorAlongToken; + const edm::ESGetToken thePropagatorOppositeToken; const Propagator* thePropagatorAlong; const Propagator* thePropagatorOpposite; // not used? can we remove it? TkClonerImpl theHitCloner; diff --git a/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h b/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h index ea6568482d926..df04d6c825322 100644 --- a/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h +++ b/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h @@ -3,7 +3,6 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" diff --git a/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h b/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h index f4c51a85e645e..56f069af97330 100644 --- a/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h +++ b/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h @@ -3,7 +3,6 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" diff --git a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc index 693c6f4cdedd7..bad4d1ec39059 100644 --- a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc @@ -111,6 +111,7 @@ namespace { GroupedCkfTrajectoryBuilder::GroupedCkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC) : BaseCkfTrajectoryBuilder(conf, + iC, BaseCkfTrajectoryBuilder::createTrajectoryFilter( conf.getParameter("trajectoryFilter"), iC), conf.getParameter("useSameTrajFilter") diff --git a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h index 06f0a2f3ce16e..aa98aec3a37d9 100644 --- a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h +++ b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h @@ -1,7 +1,6 @@ #ifndef GroupedCkfTrajectoryBuilder_H #define GroupedCkfTrajectoryBuilder_H -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/EventSetup.h" diff --git a/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc index 25f38e6568f28..84aebfa9a1f90 100644 --- a/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc @@ -20,21 +20,22 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "TrackingTools/Records/interface/TrackingComponentsRecord.h" #include "TrackingTools/Records/interface/TransientRecHitRecord.h" BaseCkfTrajectoryBuilder::BaseCkfTrajectoryBuilder(const edm::ParameterSet& conf, + edm::ConsumesCollector iC, std::unique_ptr filter, std::unique_ptr inOutFilter) : theSeedAs5DHit(conf.getParameter("seedAs5DHit")), theFilter(std::move(filter)), theInOutFilter(std::move(inOutFilter)), - theUpdatorName(conf.getParameter("updator")), - thePropagatorAlongName(conf.getParameter("propagatorAlong")), - thePropagatorOppositeName(conf.getParameter("propagatorOpposite")), - theEstimatorName(conf.getParameter("estimator")), - theRecHitBuilderName(conf.getParameter("TTRHBuilder")) { + theUpdatorToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter("updator")))), + thePropagatorAlongToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter("propagatorAlong")))), + thePropagatorOppositeToken( + iC.esConsumes(edm::ESInputTag("", conf.getParameter("propagatorOpposite")))), + theEstimatorToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter("estimator")))), + theRecHitBuilderToken(iC.esConsumes(edm::ESInputTag("", conf.getParameter("TTRHBuilder")))) { if (conf.exists("clustersToSkip")) edm::LogError("BaseCkfTrajectoryBuilder") << "ERROR: " << typeid(*this).name() << " has a clustersToSkip parameter set"; @@ -227,23 +228,11 @@ void BaseCkfTrajectoryBuilder::unset() const { void BaseCkfTrajectoryBuilder::setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup, const MeasurementTrackerEvent* data) { - edm::ESHandle updatorHandle; - edm::ESHandle propagatorAlongHandle; - edm::ESHandle propagatorOppositeHandle; - edm::ESHandle estimatorHandle; - edm::ESHandle recHitBuilderHandle; - - iSetup.get().get(theUpdatorName, updatorHandle); - iSetup.get().get(thePropagatorAlongName, propagatorAlongHandle); - iSetup.get().get(thePropagatorOppositeName, propagatorOppositeHandle); - iSetup.get().get(theEstimatorName, estimatorHandle); - iSetup.get().get(theRecHitBuilderName, recHitBuilderHandle); - - theUpdator = updatorHandle.product(); - thePropagatorAlong = propagatorAlongHandle.product(); - thePropagatorOpposite = propagatorOppositeHandle.product(); - theEstimator = estimatorHandle.product(); - theTTRHBuilder = recHitBuilderHandle.product(); + theUpdator = &iSetup.getData(theUpdatorToken); + thePropagatorAlong = &iSetup.getData(thePropagatorAlongToken); + thePropagatorOpposite = &iSetup.getData(thePropagatorOppositeToken); + theEstimator = &iSetup.getData(theEstimatorToken); + theTTRHBuilder = &iSetup.getData(theRecHitBuilderToken); setData(data); if (theFilter) diff --git a/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc b/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc index 75217eca7add1..7de1aec82550d 100644 --- a/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc +++ b/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc @@ -1,5 +1,4 @@ #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/isFinite.h" @@ -68,14 +67,15 @@ namespace cms { theMaxNSeeds(conf.getParameter("maxNSeeds")), theTrajectoryBuilder( createBaseCkfTrajectoryBuilder(conf.getParameter("TrajectoryBuilderPSet"), iC)), - theTrajectoryCleanerName(conf.getParameter("TrajectoryCleaner")), + theTrajectoryCleanerToken( + iC.esConsumes(edm::ESInputTag("", conf.getParameter("TrajectoryCleaner")))), theTrajectoryCleaner(nullptr), theInitialState(std::make_unique( - conf.getParameter("TransientInitialStateEstimatorParameters"))), - theMagFieldName(conf.exists("SimpleMagneticField") ? conf.getParameter("SimpleMagneticField") - : ""), - theNavigationSchoolName(conf.getParameter("NavigationSchool")), + conf.getParameter("TransientInitialStateEstimatorParameters"), iC)), + theNavigationSchoolToken( + iC.esConsumes(edm::ESInputTag("", conf.getParameter("NavigationSchool")))), theNavigationSchool(nullptr), + thePropagatorToken(iC.esConsumes(edm::ESInputTag("", "AnyDirectionAnalyticalPropagator"))), maxSeedsBeforeCleaning_(0), theMTELabel(iC.consumes(conf.getParameter("MeasurementTrackerEvent"))), skipClusters_(false), @@ -111,6 +111,12 @@ namespace cms { } #endif +#ifdef EDM_ML_DEBUG + if (theTrackCandidateOutput) { + theTrackerToken = iC.esConsumes(); + } +#endif + #ifdef VI_REPRODUCIBLE std::cout << "CkfTrackCandidateMaker in reproducible setting" << std::endl; assert(nullptr == theSeedCleaner); @@ -126,18 +132,9 @@ namespace cms { void CkfTrackCandidateMakerBase::setEventSetup(const edm::EventSetup& es) { //services - es.get().get(theGeomSearchTracker); - es.get().get(theMagFieldName, theMagField); - // edm::ESInputTag mfESInputTag(mfName); - // es.get().get(mfESInputTag,theMagField ); - - edm::ESHandle trajectoryCleanerH; - es.get().get(theTrajectoryCleanerName, trajectoryCleanerH); - theTrajectoryCleaner = trajectoryCleanerH.product(); - - edm::ESHandle navigationSchoolH; - es.get().get(theNavigationSchoolName, navigationSchoolH); - theNavigationSchool = navigationSchoolH.product(); + theTrajectoryCleaner = &es.getData(theTrajectoryCleanerToken); + + theNavigationSchool = &es.getData(theNavigationSchoolToken); theTrajectoryBuilder->setNavigationSchool(theNavigationSchool); } @@ -150,8 +147,7 @@ namespace cms { // NavigationSetter setter( *theNavigationSchool); // propagator - edm::ESHandle thePropagator; - es.get().get("AnyDirectionAnalyticalPropagator", thePropagator); + auto const& propagator = es.getData(thePropagatorToken); // method for Debugging printHitsDebugger(e); @@ -505,7 +501,7 @@ namespace cms { if (useSplitting && (initState.second != recHits.front().det()) && recHits.front().det()) { LogDebug("CkfPattern") << "propagating to hit front in case of splitting."; TrajectoryStateOnSurface&& propagated = - thePropagator->propagate(initState.first, recHits.front().det()->surface()); + propagator.propagate(initState.first, recHits.front().det()->surface()); if (!propagated.isValid()) continue; state = trajectoryStateTransform::persistentState(propagated, recHits.front().rawId()); @@ -517,11 +513,10 @@ namespace cms { } } //output trackcandidates - edm::ESHandle tracker; - es.get().get(tracker); - LogTrace("CkfPattern|TrackingRegressionTest") << "========== CkfTrackCandidateMaker Info ==========" - << "number of Seed: " << collseed->size() << '\n' - << PrintoutHelper::regressionTest(*tracker, unsmoothedResult); + LogTrace("CkfPattern|TrackingRegressionTest") + << "========== CkfTrackCandidateMaker Info ==========" + << "number of Seed: " << collseed->size() << '\n' + << PrintoutHelper::regressionTest(es.getData(theTrackerToken), unsmoothedResult); assert(viTotHits >= 0); // just to use it... // std::cout << "VICkfPattern result " << output->size() << " " << viTotHits << std::endl; diff --git a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc index 36984bfd67fef..79d888103a1c5 100644 --- a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc @@ -26,13 +26,16 @@ using namespace std; -CkfTrajectoryBuilder::CkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC) +CkfTrajectoryBuilder::CkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector iC) : CkfTrajectoryBuilder(conf, + iC, BaseCkfTrajectoryBuilder::createTrajectoryFilter( conf.getParameter("trajectoryFilter"), iC)) {} -CkfTrajectoryBuilder::CkfTrajectoryBuilder(const edm::ParameterSet& conf, std::unique_ptr filter) - : BaseCkfTrajectoryBuilder(conf, std::move(filter)) { +CkfTrajectoryBuilder::CkfTrajectoryBuilder(const edm::ParameterSet& conf, + edm::ConsumesCollector iC, + std::unique_ptr filter) + : BaseCkfTrajectoryBuilder(conf, iC, std::move(filter)) { theMaxCand = conf.getParameter("maxCand"); theLostHitPenalty = conf.getParameter("lostHitPenalty"); theIntermediateCleaning = conf.getParameter("intermediateCleaning"); diff --git a/RecoTracker/CkfPattern/src/TransientInitialStateEstimator.cc b/RecoTracker/CkfPattern/src/TransientInitialStateEstimator.cc index 39492fbf4dc94..0cff75b14cc80 100644 --- a/RecoTracker/CkfPattern/src/TransientInitialStateEstimator.cc +++ b/RecoTracker/CkfPattern/src/TransientInitialStateEstimator.cc @@ -1,7 +1,6 @@ #include "RecoTracker/CkfPattern/interface/TransientInitialStateEstimator.h" #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -18,23 +17,19 @@ using namespace std; -TransientInitialStateEstimator::TransientInitialStateEstimator(const edm::ParameterSet& conf) - : thePropagatorAlongName(conf.getParameter("propagatorAlongTISE")), - thePropagatorOppositeName(conf.getParameter("propagatorOppositeTISE")), +TransientInitialStateEstimator::TransientInitialStateEstimator(const edm::ParameterSet& conf, edm::ConsumesCollector iC) + : thePropagatorAlongToken( + iC.esConsumes(edm::ESInputTag("", conf.getParameter("propagatorAlongTISE")))), + thePropagatorOppositeToken( + iC.esConsumes(edm::ESInputTag("", conf.getParameter("propagatorOppositeTISE")))), thePropagatorAlong(nullptr), thePropagatorOpposite(nullptr), theNumberMeasurementsForFit(conf.getParameter("numberMeasurementsForFit")) {} void TransientInitialStateEstimator::setEventSetup(const edm::EventSetup& es, const TkClonerImpl& hc) { theHitCloner = hc; - - edm::ESHandle halong; - edm::ESHandle hopposite; - - es.get().get(thePropagatorAlongName, halong); - es.get().get(thePropagatorOppositeName, hopposite); - thePropagatorAlong = halong.product(); - thePropagatorOpposite = hopposite.product(); + thePropagatorAlong = &es.getData(thePropagatorAlongToken); + thePropagatorOpposite = &es.getData(thePropagatorOppositeToken); } std::pair TransientInitialStateEstimator::innerState(const Trajectory& traj, diff --git a/RecoTracker/DebugTools/plugins/CkfDebugTrajectoryBuilder.h b/RecoTracker/DebugTools/plugins/CkfDebugTrajectoryBuilder.h index 6de87200f88c3..34307a68a5840 100644 --- a/RecoTracker/DebugTools/plugins/CkfDebugTrajectoryBuilder.h +++ b/RecoTracker/DebugTools/plugins/CkfDebugTrajectoryBuilder.h @@ -8,8 +8,8 @@ class CkfDebugTrajectoryBuilder : public CkfTrajectoryBuilder { public: - CkfDebugTrajectoryBuilder(const edm::ParameterSet& conf) - : CkfTrajectoryBuilder(conf, std::unique_ptr{}) { + CkfDebugTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector iC) + : CkfTrajectoryBuilder(conf, iC, std::unique_ptr{}) { //edm::LogVerbatim("CkfDebugger") <<"CkfDebugTrajectoryBuilder::CkfDebugTrajectoryBuilder"; }