diff --git a/RecoTracker/SpecialSeedGenerators/interface/CRackSeedGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/CRackSeedGenerator.h index b47c22de0440f..0bfd0e8a8e82e 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/CRackSeedGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/CRackSeedGenerator.h @@ -1,7 +1,7 @@ #ifndef CRackSeedGenerator_h #define CRackSeedGenerator_h -#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/EventSetup.h" @@ -9,7 +9,7 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorForCRack.h" -class CRackSeedGenerator : public edm::EDProducer { +class CRackSeedGenerator : public edm::stream::EDProducer<> { public: explicit CRackSeedGenerator(const edm::ParameterSet& conf); @@ -18,7 +18,6 @@ class CRackSeedGenerator : public edm::EDProducer { void produce(edm::Event& e, const edm::EventSetup& c) override; private: - edm::ParameterSet conf_; SeedGeneratorForCRack cosmic_seed; edm::EDGetTokenT matchedrecHitsToken_; edm::EDGetTokenT rphirecHitsToken_; diff --git a/RecoTracker/SpecialSeedGenerators/interface/CosmicRegionalSeedGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/CosmicRegionalSeedGenerator.h index 0c1d6d9313ebe..c822745c0bcc0 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/CosmicRegionalSeedGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/CosmicRegionalSeedGenerator.h @@ -33,18 +33,18 @@ #include "Math/GenVector/PxPyPzE4D.h" //Geometry -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "DataFormats/JetReco/interface/CaloJetCollection.h" +#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "Geometry/CommonDetUnit/interface/GeomDet.h" #include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" -#include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h" -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" - -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/JetReco/interface/CaloJetCollection.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "TrackingTools/GeomPropagators/interface/Propagator.h" class CosmicRegionalSeedGenerator : public TrackingRegionProducer { public: @@ -68,6 +68,9 @@ class CosmicRegionalSeedGenerator : public TrackingRegionProducer { std::string thePropagatorName_; std::string regionBase_; + edm::ESGetToken trackerToken_; + edm::ESGetToken propagatorToken_; + edm::InputTag recoMuonsCollection_; edm::InputTag recoTrackMuonsCollection_; edm::InputTag recoL2MuonsCollection_; diff --git a/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h b/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h index 7b617c5f9d9f0..7197f3c784f85 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h +++ b/RecoTracker/SpecialSeedGenerators/interface/CtfSpecialSeedGenerator.h @@ -67,6 +67,14 @@ class CtfSpecialSeedGenerator : public edm::stream::EDProducer<> { private: edm::ParameterSet conf_; + + const edm::ESGetToken theMFToken; + const edm::ESGetToken theBuilderToken; + const edm::ESGetToken theTrackerToken; + const edm::ESGetToken thePropAlongToken; + const edm::ESGetToken thePropOppositeToken; + const edm::ESGetToken theTopoToken; + edm::ESHandle theMagfield; edm::ESHandle theTracker; edm::ESHandle theBuilder; diff --git a/RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorForCRack.h b/RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorForCRack.h index 62a4f7bd65e55..abdc2b6e0ef54 100644 --- a/RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorForCRack.h +++ b/RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorForCRack.h @@ -6,6 +6,7 @@ //#include "RecoTracker/SpecialSeedGenerators/interface/SeedGeneratorFromLayerPairs.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h" #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" #include "RecoTracker/TkHitPairs/interface/CosmicHitPairGenerator.h" @@ -17,11 +18,14 @@ #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" class PixelSeedLayerPairs; +class GeometricSearchTracker; +class TrackerRecoGeometryRecord; +class TransientRecHitRecord; class SeedGeneratorForCRack { public: typedef TrajectoryStateOnSurface TSOS; - SeedGeneratorForCRack(const edm::ParameterSet &conf); + SeedGeneratorForCRack(const edm::ParameterSet &conf, edm::ConsumesCollector); virtual ~SeedGeneratorForCRack(){}; void init(const SiStripRecHit2DCollection &collstereo, const SiStripRecHit2DCollection &collrphi, @@ -32,7 +36,13 @@ class SeedGeneratorForCRack { void seeds(TrajectorySeedCollection &output, const edm::EventSetup &c, const TrackingRegion ®ion); private: - edm::ParameterSet conf_; + // es tokens + const edm::ESGetToken theMagfieldToken; + const edm::ESGetToken theTrackerToken; + const edm::ESGetToken theSearchTrackerToken; + const edm::ESGetToken theTTopoToken; + const edm::ESGetToken theTTRHToken; + GlobalTrackingRegion region; CosmicHitPairGenerator *thePairGenerator; edm::ESHandle magfield; @@ -42,7 +52,6 @@ class SeedGeneratorForCRack { PropagatorWithMaterial *thePropagatorAl; PropagatorWithMaterial *thePropagatorOp; const TransientTrackingRecHitBuilder *TTTRHBuilder; - std::string builderName; std::string geometry; float seedpt; OrderedHitPairs HitPairs; diff --git a/RecoTracker/SpecialSeedGenerators/src/CRackSeedGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/CRackSeedGenerator.cc index 821f3c5bff2cf..b52994e7bf3e6 100644 --- a/RecoTracker/SpecialSeedGenerators/src/CRackSeedGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/CRackSeedGenerator.cc @@ -14,12 +14,11 @@ #include "FWCore/Utilities/interface/InputTag.h" using namespace std; -CRackSeedGenerator::CRackSeedGenerator(edm::ParameterSet const& conf) : conf_(conf), cosmic_seed(conf) { +CRackSeedGenerator::CRackSeedGenerator(edm::ParameterSet const& conf) : cosmic_seed(conf, consumesCollector()) { edm::LogInfo("CRackSeedGenerator") << "Enter the CRackSeedGenerator"; - matchedrecHitsToken_ = - consumes(conf_.getParameter("matchedRecHits")); - rphirecHitsToken_ = consumes(conf_.getParameter("rphirecHits")); - stereorecHitsToken_ = consumes(conf_.getParameter("stereorecHits")); + matchedrecHitsToken_ = consumes(conf.getParameter("matchedRecHits")); + rphirecHitsToken_ = consumes(conf.getParameter("rphirecHits")); + stereorecHitsToken_ = consumes(conf.getParameter("stereorecHits")); produces(); } diff --git a/RecoTracker/SpecialSeedGenerators/src/CosmicRegionalSeedGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/CosmicRegionalSeedGenerator.cc index 865e5b29a3535..fc5649f629548 100644 --- a/RecoTracker/SpecialSeedGenerators/src/CosmicRegionalSeedGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/CosmicRegionalSeedGenerator.cc @@ -2,8 +2,6 @@ #include #include -#include "TrackingTools/GeomPropagators/interface/Propagator.h" - #include "DataFormats/MuonReco/interface/Muon.h" #include "DataFormats/JetReco/interface/CaloJet.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" @@ -32,6 +30,9 @@ CosmicRegionalSeedGenerator::CosmicRegionalSeedGenerator(edm::ParameterSet const thePropagatorName_ = toolsPSet.getParameter("thePropagatorName"); regionBase_ = toolsPSet.getParameter("regionBase"); + trackerToken_ = iC.esConsumes(); + propagatorToken_ = iC.esConsumes(edm::ESInputTag("", thePropagatorName_)); + edm::ParameterSet collectionsPSet = conf_.getParameter("CollectionsPSet"); recoMuonsCollection_ = collectionsPSet.getParameter("recoMuonsCollection"); recoTrackMuonsCollection_ = collectionsPSet.getParameter("recoTrackMuonsCollection"); @@ -90,14 +91,10 @@ std::vector> CosmicRegionalSeedGenerator::region event.getByToken(recoCaloJetsToken_, caloJetsHandle); //get the propagator - edm::ESHandle thePropagator; - // thePropagatorName = "AnalyticalPropagator" - es.get().get(thePropagatorName_, thePropagator); + edm::ESHandle thePropagator = es.getHandle(propagatorToken_); //get tracker geometry - edm::ESHandle theTrackerGeometry; - es.get().get(theTrackerGeometry); - //const TrackerGeometry& theTracker(*theTrackerGeometry); + edm::ESHandle theTrackerGeometry = es.getHandle(trackerToken_); //definition of the region //+++++++++++++++++++++++++ @@ -242,13 +239,10 @@ std::vector> CosmicRegionalSeedGenerator::region event.getByToken(recoCaloJetsToken_, caloJetsHandle); //get the propagator - edm::ESHandle thePropagator; - // thePropagatorName = "AnalyticalPropagator" - es.get().get(thePropagatorName_, thePropagator); + edm::ESHandle thePropagator = es.getHandle(propagatorToken_); //get tracker geometry - edm::ESHandle theTrackerGeometry; - es.get().get(theTrackerGeometry); + edm::ESHandle theTrackerGeometry = es.getHandle(trackerToken_); //definition of the region //+++++++++++++++++++++++++ @@ -378,13 +372,10 @@ std::vector> CosmicRegionalSeedGenerator::region LogDebug("CosmicRegionalSeedGenerator") << "L2 muons collection size = " << L2MuonsHandle->size(); //get the propagator - edm::ESHandle thePropagator; - // thePropagatorName = "AnalyticalPropagator" - es.get().get(thePropagatorName_, thePropagator); + edm::ESHandle thePropagator = es.getHandle(propagatorToken_); //get tracker geometry - edm::ESHandle theTrackerGeometry; - es.get().get(theTrackerGeometry); + edm::ESHandle theTrackerGeometry = es.getHandle(trackerToken_); //definition of the region //+++++++++++++++++++++++++ diff --git a/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc b/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc index c6abedea28d91..a6c1c31fd5fb8 100644 --- a/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc +++ b/RecoTracker/SpecialSeedGenerators/src/CtfSpecialSeedGenerator.cc @@ -17,6 +17,14 @@ using namespace ctfseeding; CtfSpecialSeedGenerator::CtfSpecialSeedGenerator(const edm::ParameterSet& conf) : conf_(conf), + theMFToken(esConsumes()), + theBuilderToken( + esConsumes(edm::ESInputTag("", conf_.getParameter("TTRHBuilder")))), + theTrackerToken(esConsumes()), + thePropAlongToken(esConsumes(edm::ESInputTag("", "PropagatorWithMaterial"))), + thePropOppositeToken( + esConsumes(edm::ESInputTag("", "PropagatorWithMaterialOpposite"))), + theTopoToken(esConsumes()), requireBOFF(conf.getParameter("requireBOFF")), theMaxSeeds(conf.getParameter("maxSeeds")), check(conf, consumesCollector()) @@ -45,11 +53,9 @@ CtfSpecialSeedGenerator::~CtfSpecialSeedGenerator() = default; void CtfSpecialSeedGenerator::endRun(edm::Run const&, edm::EventSetup const&) { theSeedBuilder.reset(); } void CtfSpecialSeedGenerator::beginRun(edm::Run const&, const edm::EventSetup& iSetup) { - std::string builderName = conf_.getParameter("TTRHBuilder"); - iSetup.get().get(builderName, theBuilder); - - iSetup.get().get(theMagfield); - iSetup.get().get(theTracker); + theMagfield = iSetup.getHandle(theMFToken); + theBuilder = iSetup.getHandle(theBuilderToken); + theTracker = iSetup.getHandle(theTrackerToken); edm::LogVerbatim("CtfSpecialSeedGenerator") << "Initializing..."; if (useScintillatorsConstraint) { @@ -74,10 +80,8 @@ void CtfSpecialSeedGenerator::beginRun(edm::Run const&, const edm::EventSetup& i lowerScintillator = BoundPlane::build(lowerPosition, rot, &lowerBounds); } - edm::ESHandle propagatorAlongHandle; - iSetup.get().get("PropagatorWithMaterial", propagatorAlongHandle); - edm::ESHandle propagatorOppositeHandle; - iSetup.get().get("PropagatorWithMaterialOpposite", propagatorOppositeHandle); + edm::ESHandle propagatorAlongHandle = iSetup.getHandle(thePropAlongToken); + edm::ESHandle propagatorOppositeHandle = iSetup.getHandle(thePropOppositeToken); std::vector pSets = conf_.getParameter>("OrderedHitsFactoryPSets"); std::vector::const_iterator iPSet; @@ -188,8 +192,7 @@ bool CtfSpecialSeedGenerator::buildSeeds(const edm::EventSetup& iSetup, } //checks the hits are on diffrent layers bool CtfSpecialSeedGenerator::preliminaryCheck(const SeedingHitSet& shs, const edm::EventSetup& es) { - edm::ESHandle tTopo; - es.get().get(tTopo); + edm::ESHandle tTopo = es.getHandle(theTopoToken); std::vector> vSubdetLayer; //std::vector vSeedLayerNames; diff --git a/RecoTracker/SpecialSeedGenerators/src/SeedGeneratorForCRack.cc b/RecoTracker/SpecialSeedGenerators/src/SeedGeneratorForCRack.cc index 4b76244f4abdc..5f01099ceef02 100644 --- a/RecoTracker/SpecialSeedGenerators/src/SeedGeneratorForCRack.cc +++ b/RecoTracker/SpecialSeedGenerators/src/SeedGeneratorForCRack.cc @@ -7,40 +7,39 @@ void SeedGeneratorForCRack::init(const SiStripRecHit2DCollection& collstereo, const SiStripRecHit2DCollection& collrphi, const SiStripMatchedRecHit2DCollection& collmatched, const edm::EventSetup& iSetup) { - iSetup.get().get(magfield); - iSetup.get().get(tracker); + magfield = iSetup.getHandle(theMagfieldToken); + tracker = iSetup.getHandle(theTrackerToken); thePropagatorAl = new PropagatorWithMaterial(alongMomentum, 0.1057, &(*magfield)); thePropagatorOp = new PropagatorWithMaterial(oppositeToMomentum, 0.1057, &(*magfield)); theUpdator = new KFUpdator(); // get the transient builder + TTTRHBuilder = &iSetup.getData(theTTRHToken); - edm::ESHandle theBuilder; + GeometricSearchTracker const& track = iSetup.getData(theSearchTrackerToken); + TrackerTopology const& ttopo = iSetup.getData(theTTopoToken); - iSetup.get().get(builderName, theBuilder); - TTTRHBuilder = theBuilder.product(); - edm::ESHandle track; - iSetup.get().get(track); - edm::ESHandle httopo; - iSetup.get().get(httopo); - CosmicLayerPairs cosmiclayers(geometry, collrphi, collmatched, *track, *httopo); + CosmicLayerPairs cosmiclayers(geometry, collrphi, collmatched, track, ttopo); thePairGenerator = new CosmicHitPairGenerator(cosmiclayers, *tracker); HitPairs.clear(); thePairGenerator->hitPairs(region, HitPairs); LogDebug("CosmicSeedFinder") << "Initialized with " << HitPairs.size() << " hit pairs" << std::endl; } -SeedGeneratorForCRack::SeedGeneratorForCRack(edm::ParameterSet const& conf) - : conf_(conf), +SeedGeneratorForCRack::SeedGeneratorForCRack(edm::ParameterSet const& conf, edm::ConsumesCollector iCC) + : theMagfieldToken(iCC.esConsumes()), + theTrackerToken(iCC.esConsumes()), + theSearchTrackerToken(iCC.esConsumes()), + theTTopoToken(iCC.esConsumes()), + theTTRHToken(iCC.esConsumes(edm::ESInputTag("", conf.getParameter("TTRHBuilder")))), region(conf.getParameter("ptMin"), conf.getParameter("originRadius"), conf.getParameter("originHalfLength"), conf.getParameter("originZPosition")) { - seedpt = conf_.getParameter("SeedPt"); - builderName = conf_.getParameter("TTRHBuilder"); - geometry = conf_.getUntrackedParameter("GeometricStructure", "STANDARD"); - multipleScatteringFactor = conf_.getUntrackedParameter("multipleScatteringFactor", 1.0); - seedMomentum = conf_.getUntrackedParameter("SeedMomentum", 1); + seedpt = conf.getParameter("SeedPt"); + geometry = conf.getUntrackedParameter("GeometricStructure", "STANDARD"); + multipleScatteringFactor = conf.getUntrackedParameter("multipleScatteringFactor", 1.0); + seedMomentum = conf.getUntrackedParameter("SeedMomentum", 1); } void SeedGeneratorForCRack::run(TrajectorySeedCollection& output, const edm::EventSetup& iSetup) {