diff --git a/Alignment/OfflineValidation/plugins/ResidualRefitting.cc b/Alignment/OfflineValidation/plugins/ResidualRefitting.cc index 5395d670f0cb0..d21b07081cf31 100644 --- a/Alignment/OfflineValidation/plugins/ResidualRefitting.cc +++ b/Alignment/OfflineValidation/plugins/ResidualRefitting.cc @@ -38,7 +38,7 @@ ResidualRefitting::ResidualRefitting(const edm::ParameterSet& cfg) : magFieldToken_(esConsumes()), topoToken_(esConsumes()), trackingGeometryToken_(esConsumes()), - propagatorToken_(esConsumes(edm::ESInputTag(cfg.getParameter("propagator")))), + propagatorToken_(esConsumes(edm::ESInputTag("", cfg.getParameter("propagator")))), outputFileName_(cfg.getUntrackedParameter("histoutputFile")), muons_(cfg.getParameter("muons")), muonsRemake_(cfg.getParameter("muonsRemake")), //This Feels Misalignment diff --git a/Alignment/TrackerAlignment/plugins/CosmicRateAnalyzer.cc b/Alignment/TrackerAlignment/plugins/CosmicRateAnalyzer.cc index 58be7798077ae..7fc188304a817 100644 --- a/Alignment/TrackerAlignment/plugins/CosmicRateAnalyzer.cc +++ b/Alignment/TrackerAlignment/plugins/CosmicRateAnalyzer.cc @@ -91,6 +91,9 @@ class CosmicRateAnalyzer : public edm::one::EDAnalyzer magFieldToken_; + const edm::ESGetToken topoToken_; + const edm::ESGetToken latencyToken_; edm::EDGetTokenT trackTags_; edm::EDGetTokenT > clustercollectionToken_; edm::EDGetTokenT muonTags_; @@ -167,7 +170,10 @@ class CosmicRateAnalyzer : public edm::one::EDAnalyzer(iConfig.getParameter("tracksInputTag"))), + : magFieldToken_(esConsumes()), + topoToken_(esConsumes()), + latencyToken_(esConsumes()), + trackTags_(consumes(iConfig.getParameter("tracksInputTag"))), clustercollectionToken_( consumes >(iConfig.getParameter("tracksInputTag"))), muonTags_(consumes(iConfig.getParameter("muonsInputTag"))) { @@ -216,13 +222,10 @@ void CosmicRateAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup edm::Handle tracks; iEvent.getByToken(trackTags_, tracks); - edm::ESHandle magFieldHandle_; - iSetup.get().get(magFieldHandle_); - magField = -9999; - magField = magFieldHandle_.product()->inTesla(GlobalPoint(0, 0, 0)).mag(); - - edm::ESHandle tTopo; - iSetup.get().get(tTopo); + const TrackerTopology* const tTopo = &iSetup.getData(topoToken_); + const MagneticField* magneticField = &iSetup.getData(magFieldToken_); + magField = magneticField->inTesla(GlobalPoint(0, 0, 0)).mag(); + //const SiStripLatency* apvlat = &iSetup.getData(latencyToken_); // unused (for the moment) edm::Timestamp ts_begin = iEvent.getRun().beginTime(); double t_begin = stampToReal(ts_begin); diff --git a/Alignment/TrackerAlignment/plugins/CreateTrackerAlignmentRcds.cc b/Alignment/TrackerAlignment/plugins/CreateTrackerAlignmentRcds.cc index f691a6157c1ba..5e2b593aee35f 100644 --- a/Alignment/TrackerAlignment/plugins/CreateTrackerAlignmentRcds.cc +++ b/Alignment/TrackerAlignment/plugins/CreateTrackerAlignmentRcds.cc @@ -85,6 +85,13 @@ class CreateIdealTkAlRecords : public edm::one::EDAnalyzer<> { void writeToDB(); // ----------member data --------------------------- + + const edm::ESGetToken geomDetToken_; + const edm::ESGetToken ptpToken_; + const edm::ESGetToken topoToken_; + const edm::ESGetToken aliToken_; + const edm::ESGetToken aliErrorToken_; + const edm::ESGetToken aliSurfaceToken_; const std::vector skipSubDetectors_; const bool alignToGlobalTag_; const bool createReferenceRcd_; @@ -100,7 +107,13 @@ class CreateIdealTkAlRecords : public edm::one::EDAnalyzer<> { // constructors and destructor // CreateIdealTkAlRecords::CreateIdealTkAlRecords(const edm::ParameterSet& iConfig) - : skipSubDetectors_(toSubDetectors(iConfig.getUntrackedParameter >("skipSubDetectors"))), + : geomDetToken_(esConsumes()), + ptpToken_(esConsumes()), + topoToken_(esConsumes()), + aliToken_(esConsumes()), + aliErrorToken_(esConsumes()), + aliSurfaceToken_(esConsumes()), + skipSubDetectors_(toSubDetectors(iConfig.getUntrackedParameter >("skipSubDetectors"))), alignToGlobalTag_(iConfig.getUntrackedParameter("alignToGlobalTag")), createReferenceRcd_(iConfig.getUntrackedParameter("createReferenceRcd")), firstEvent_(true) {} @@ -236,19 +249,13 @@ void CreateIdealTkAlRecords::clearAlignmentInfos() { } std::unique_ptr CreateIdealTkAlRecords::retrieveGeometry(const edm::EventSetup& iSetup) { - edm::ESHandle geometricDet; - iSetup.get().get(geometricDet); - - edm::ESHandle ptp; - iSetup.get().get(ptp); - - edm::ESHandle tTopoHandle; - iSetup.get().get(tTopoHandle); - const auto* const tTopo = tTopoHandle.product(); + const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_); + const PTrackerParameters& ptp = iSetup.getData(ptpToken_); + const TrackerTopology* tTopo = &iSetup.getData(topoToken_); TrackerGeomBuilderFromGeometricDet trackerBuilder; - return std::unique_ptr{trackerBuilder.build(&(*geometricDet), *ptp, tTopo)}; + return std::unique_ptr{trackerBuilder.build(geometricDet, ptp, tTopo)}; } void CreateIdealTkAlRecords::addAlignmentInfo(const GeomDet& det) { @@ -289,12 +296,9 @@ void CreateIdealTkAlRecords::addAlignmentInfo(const GeomDet& det) { void CreateIdealTkAlRecords::alignToGT(const edm::EventSetup& iSetup) { LogDebug("Alignment") << "Aligning to global tag\n"; - edm::ESHandle alignments; - iSetup.get().get(alignments); - edm::ESHandle alignmentErrors; - iSetup.get().get(alignmentErrors); - edm::ESHandle surfaceDeformations; - iSetup.get().get(surfaceDeformations); + const Alignments* alignments = &iSetup.getData(aliToken_); + const AlignmentErrorsExtended* alignmentErrors = &iSetup.getData(aliErrorToken_); + const AlignmentSurfaceDeformations* surfaceDeformations = &iSetup.getData(aliSurfaceToken_); if (alignments->m_align.size() != alignmentErrors->m_alignError.size()) throw cms::Exception("GeometryMismatch") diff --git a/Alignment/TrackerAlignment/plugins/MCMisalignmentScaler.cc b/Alignment/TrackerAlignment/plugins/MCMisalignmentScaler.cc index 220eafae1bf37..b74c1c9340e5c 100644 --- a/Alignment/TrackerAlignment/plugins/MCMisalignmentScaler.cc +++ b/Alignment/TrackerAlignment/plugins/MCMisalignmentScaler.cc @@ -65,6 +65,12 @@ class MCMisalignmentScaler : public edm::one::EDAnalyzer<> { static void fillDescriptions(edm::ConfigurationDescriptions&); private: + const edm::ESGetToken pixelQualityToken_; + const edm::ESGetToken stripQualityToken_; + const edm::ESGetToken geomDetToken_; + const edm::ESGetToken ptpToken_; + const edm::ESGetToken topoToken_; + const edm::ESGetToken aliToken_; using ScalerMap = std::unordered_map >; void analyze(const edm::Event&, const edm::EventSetup&) override; @@ -81,7 +87,13 @@ class MCMisalignmentScaler : public edm::one::EDAnalyzer<> { // constructors and destructor // MCMisalignmentScaler::MCMisalignmentScaler(const edm::ParameterSet& iConfig) - : scalers_{decodeSubDetectors(iConfig.getParameter("scalers"))}, + : pixelQualityToken_(esConsumes()), + stripQualityToken_(esConsumes()), + geomDetToken_(esConsumes()), + ptpToken_(esConsumes()), + topoToken_(esConsumes()), + aliToken_(esConsumes()), + scalers_{decodeSubDetectors(iConfig.getParameter("scalers"))}, pullBadModulesToIdeal_{iConfig.getUntrackedParameter("pullBadModulesToIdeal")}, outlierPullToIdealCut_{iConfig.getUntrackedParameter("outlierPullToIdealCut")} {} @@ -96,21 +108,16 @@ void MCMisalignmentScaler::analyze(const edm::Event&, const edm::EventSetup& iSe firstEvent_ = false; // get handle on bad modules - edm::ESHandle pixelModules; - iSetup.get().get(pixelModules); - edm::ESHandle stripModules; - iSetup.get().get(stripModules); + const SiPixelQuality* pixelModules = &iSetup.getData(pixelQualityToken_); + const SiStripQuality* stripModules = &iSetup.getData(stripQualityToken_); // get the tracker geometry - edm::ESHandle geometricDet; - iSetup.get().get(geometricDet); - edm::ESHandle ptp; - iSetup.get().get(ptp); - edm::ESHandle tTopoHandle; - iSetup.get().get(tTopoHandle); - const auto* const topology = tTopoHandle.product(); + const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_); + const PTrackerParameters& ptp = iSetup.getData(ptpToken_); + const TrackerTopology* topology = &iSetup.getData(topoToken_); + TrackerGeomBuilderFromGeometricDet trackerBuilder; - auto tracker = std::unique_ptr{trackerBuilder.build(&(*geometricDet), *ptp, topology)}; + auto tracker = std::unique_ptr{trackerBuilder.build(geometricDet, ptp, topology)}; auto dets = tracker->dets(); std::sort(dets.begin(), dets.end(), [](const auto& a, const auto& b) { @@ -118,8 +125,7 @@ void MCMisalignmentScaler::analyze(const edm::Event&, const edm::EventSetup& iSe }); // get the input alignment - edm::ESHandle alignments; - iSetup.get().get(alignments); + const Alignments* alignments = &iSetup.getData(aliToken_); if (dets.size() != alignments->m_align.size()) { throw cms::Exception("GeometryMismatch") << "Size mismatch between alignments (size=" << alignments->m_align.size() diff --git a/Alignment/TrackerAlignment/plugins/MisalignedTrackerESProducer.cc b/Alignment/TrackerAlignment/plugins/MisalignedTrackerESProducer.cc index 597f02b8452a8..14eff34040714 100644 --- a/Alignment/TrackerAlignment/plugins/MisalignedTrackerESProducer.cc +++ b/Alignment/TrackerAlignment/plugins/MisalignedTrackerESProducer.cc @@ -46,6 +46,10 @@ class MisalignedTrackerESProducer : public edm::ESProducer { std::unique_ptr produce(const TrackerDigiGeometryRecord& iRecord); private: + edm::ESGetToken geomDetToken_; + edm::ESGetToken ptpToken_; + edm::ESGetToken topoToken_; + const bool theSaveToDB; /// whether or not writing to DB const bool theSaveFakeScenario; /// if theSaveToDB is true, save a fake scenario (empty alignments), irrespective of the misalignment scenario below @@ -64,7 +68,10 @@ MisalignedTrackerESProducer::MisalignedTrackerESProducer(const edm::ParameterSet theScenario(p.getParameter("scenario")), theAlignRecordName("TrackerAlignmentRcd"), theErrorRecordName("TrackerAlignmentErrorExtendedRcd") { - setWhatProduced(this); + auto cc = setWhatProduced(this); + geomDetToken_ = cc.consumes(); + ptpToken_ = cc.consumes(); + topoToken_ = cc.consumes(); } //__________________________________________________________________________________________________ @@ -73,19 +80,16 @@ MisalignedTrackerESProducer::~MisalignedTrackerESProducer() {} //__________________________________________________________________________________________________ std::unique_ptr MisalignedTrackerESProducer::produce(const TrackerDigiGeometryRecord& iRecord) { //Retrieve tracker topology from geometry - edm::ESHandle tTopoHandle; - iRecord.getRecord().get(tTopoHandle); - const TrackerTopology* const tTopo = tTopoHandle.product(); + const TrackerTopology* tTopo = &iRecord.get(topoToken_); edm::LogInfo("MisalignedTracker") << "Producer called"; // Create the tracker geometry from ideal geometry - edm::ESHandle gD; - iRecord.getRecord().get(gD); - edm::ESHandle ptp; - iRecord.getRecord().get(ptp); + const GeometricDet* gD = &iRecord.get(geomDetToken_); + const PTrackerParameters& ptp = iRecord.get(ptpToken_); + TrackerGeomBuilderFromGeometricDet trackerBuilder; - std::unique_ptr theTracker(trackerBuilder.build(&(*gD), *ptp, tTopo)); + std::unique_ptr theTracker(trackerBuilder.build(gD, ptp, tTopo)); // Create the alignable hierarchy auto theAlignableTracker = std::make_unique(&(*theTracker), tTopo); diff --git a/Alignment/TrackerAlignment/plugins/TkAlCaOverlapTagger.cc b/Alignment/TrackerAlignment/plugins/TkAlCaOverlapTagger.cc index 54e1d990cbaaf..28cd34eebd324 100644 --- a/Alignment/TrackerAlignment/plugins/TkAlCaOverlapTagger.cc +++ b/Alignment/TrackerAlignment/plugins/TkAlCaOverlapTagger.cc @@ -2,7 +2,6 @@ #include "FWCore/Framework/interface/EventPrincipal.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -35,6 +34,7 @@ class TkAlCaOverlapTagger : public edm::EDProducer { void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override; private: + const edm::ESGetToken topoToken_; edm::InputTag src_; edm::InputTag srcClust_; bool rejectBadMods_; @@ -44,7 +44,8 @@ class TkAlCaOverlapTagger : public edm::EDProducer { }; TkAlCaOverlapTagger::TkAlCaOverlapTagger(const edm::ParameterSet& iConfig) - : src_(iConfig.getParameter("src")), + : topoToken_(esConsumes()), + src_(iConfig.getParameter("src")), srcClust_(iConfig.getParameter("Clustersrc")), rejectBadMods_(iConfig.getParameter("rejectBadMods")), BadModsList_(iConfig.getParameter >("BadMods")) { @@ -55,9 +56,7 @@ TkAlCaOverlapTagger::~TkAlCaOverlapTagger() {} void TkAlCaOverlapTagger::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { //Retrieve tracker topology from geometry - edm::ESHandle tTopoHandle; - iSetup.get().get(tTopoHandle); - const TrackerTopology* const tTopo = tTopoHandle.product(); + const TrackerTopology* tTopo = &iSetup.getData(topoToken_); edm::Handle assoMap; iEvent.getByLabel(src_, assoMap); diff --git a/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.cc b/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.cc index 7e15e84ef3874..0b43bc30556ec 100644 --- a/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.cc +++ b/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.cc @@ -39,7 +39,13 @@ // made some variables constant, removed obviously dead code and comments TrackerSystematicMisalignments::TrackerSystematicMisalignments(const edm::ParameterSet& cfg) - : theAlignableTracker(nullptr) { + : geomDetToken_(esConsumes()), + ptpToken_(esConsumes()), + topoToken_(esConsumes()), + aliToken_(esConsumes()), + aliErrorToken_(esConsumes()), + gprToken_(esConsumes()), + theAlignableTracker(nullptr) { // use existing geometry m_fromDBGeom = cfg.getUntrackedParameter("fromDBGeom"); @@ -105,27 +111,18 @@ void TrackerSystematicMisalignments::beginJob() {} void TrackerSystematicMisalignments::analyze(const edm::Event& event, const edm::EventSetup& setup) { //Retrieve tracker topology from geometry - edm::ESHandle tTopoHandle; - setup.get().get(tTopoHandle); - const TrackerTopology* const tTopo = tTopoHandle.product(); + const GeometricDet* geom = &setup.getData(geomDetToken_); + const PTrackerParameters& ptp = setup.getData(ptpToken_); + const TrackerTopology* tTopo = &setup.getData(topoToken_); - edm::ESHandle geom; - setup.get().get(geom); - edm::ESHandle ptp; - setup.get().get(ptp); - TrackerGeometry* tracker = TrackerGeomBuilderFromGeometricDet().build(&*geom, *ptp, tTopo); + TrackerGeometry* tracker = TrackerGeomBuilderFromGeometricDet().build(geom, ptp, tTopo); //take geometry from DB or randomly generate geometry if (m_fromDBGeom) { //build the tracker - edm::ESHandle alignments; - edm::ESHandle alignmentErrors; - - setup.get().get(alignments); - setup.get().get(alignmentErrors); - - edm::ESHandle globalPositionRcd; - setup.get().getRecord().get(globalPositionRcd); + const Alignments* alignments = &setup.getData(aliToken_); + const AlignmentErrorsExtended* alignmentErrors = &setup.getData(aliErrorToken_); + const Alignments* globalPositionRcd = &setup.getData(gprToken_); //apply the latest alignments GeometryAligner aligner; diff --git a/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.h b/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.h index e729c0a96481f..19b25880ad02f 100644 --- a/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.h +++ b/Alignment/TrackerAlignment/plugins/TrackerSystematicMisalignments.h @@ -37,6 +37,12 @@ class TrackerSystematicMisalignments : public edm::EDAnalyzer { //align::GlobalVector findSystematicMis( align::PositionType ); align::GlobalVector findSystematicMis(const align::PositionType&, const bool blindToZ, const bool blindToR); + const edm::ESGetToken geomDetToken_; + const edm::ESGetToken ptpToken_; + const edm::ESGetToken topoToken_; + const edm::ESGetToken aliToken_; + const edm::ESGetToken aliErrorToken_; + const edm::ESGetToken gprToken_; AlignableTracker* theAlignableTracker; // configurables needed for the systematic misalignment diff --git a/Alignment/TrackerAlignment/plugins/TrackerTreeGenerator.cc b/Alignment/TrackerAlignment/plugins/TrackerTreeGenerator.cc index 120cbddee3685..b95820102cf7f 100644 --- a/Alignment/TrackerAlignment/plugins/TrackerTreeGenerator.cc +++ b/Alignment/TrackerAlignment/plugins/TrackerTreeGenerator.cc @@ -72,6 +72,9 @@ class TrackerTreeGenerator : public edm::one::EDAnalyzer geomDetToken_; + const edm::ESGetToken ptpToken_; + const edm::ESGetToken topoToken_; const bool createEntryForDoubleSidedModule_; std::vector vTkTreeVar_; @@ -90,7 +93,11 @@ class TrackerTreeGenerator : public edm::one::EDAnalyzer("createEntryForDoubleSidedModule")), config_(config) { + : geomDetToken_(esConsumes()), + ptpToken_(esConsumes()), + topoToken_(esConsumes()), + createEntryForDoubleSidedModule_(config.getParameter("createEntryForDoubleSidedModule")), + config_(config) { usesResource(TFileService::kSharedResource); } @@ -100,20 +107,13 @@ TrackerTreeGenerator::TrackerTreeGenerator(const edm::ParameterSet& config) // ------------ method called to for each event ------------ void TrackerTreeGenerator::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - //iSetup.get().get(tkGeom); // now try to take directly the ideal geometry independent of used geometry in Global Tag - edm::ESHandle geometricDet; - iSetup.get().get(geometricDet); + const GeometricDet* geometricDet = &iSetup.getData(geomDetToken_); + const PTrackerParameters& ptp = iSetup.getData(ptpToken_); + const TrackerTopology* tTopo = &iSetup.getData(topoToken_); - //Retrieve tracker topology from geometry - edm::ESHandle tTopoHandle; - iSetup.get().get(tTopoHandle); - const TrackerTopology* const tTopo = tTopoHandle.product(); - - edm::ESHandle ptp; - iSetup.get().get(ptp); TrackerGeomBuilderFromGeometricDet trackerBuilder; - const TrackerGeometry* tkGeom = trackerBuilder.build(&(*geometricDet), *ptp, tTopo); + const TrackerGeometry* tkGeom = trackerBuilder.build(geometricDet, ptp, tTopo); AlignableTracker alignableTracker{tkGeom, tTopo}; const auto& ns = alignableTracker.trackerNameSpace();