diff --git a/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h index 25b5faa9cea64..8c3a38fcc12cd 100644 --- a/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h @@ -20,7 +20,9 @@ ________________________________________________________________________ #include "IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h" #include "FWCore/Framework/interface/ESWatcher.h" +#include "FWCore/Utilities/interface/ESGetToken.h" #include "CondFormats/DataRecord/interface/SimBeamSpotObjectsRcd.h" +#include "CondFormats/BeamSpotObjects/interface/SimBeamSpotObjects.h" namespace CLHEP { class HepRandomEngine; @@ -31,7 +33,6 @@ class BetafuncEvtVtxGenerator : public BaseEvtVtxGenerator { BetafuncEvtVtxGenerator(const edm::ParameterSet& p); ~BetafuncEvtVtxGenerator() override; - void beginRun(const edm::Run&, const edm::EventSetup&) override; void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override; /// return a new event vertex @@ -80,6 +81,7 @@ class BetafuncEvtVtxGenerator : public BaseEvtVtxGenerator { void update(const edm::EventSetup& iEventSetup); edm::ESWatcher parameterWatcher_; + edm::ESGetToken beamToken_; }; #endif diff --git a/IOMC/EventVertexGenerators/src/BeamDivergenceVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BeamDivergenceVtxGenerator.cc index c2f3f0b9633ba..a6962575a13d4 100644 --- a/IOMC/EventVertexGenerators/src/BeamDivergenceVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BeamDivergenceVtxGenerator.cc @@ -13,6 +13,7 @@ #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/RandomNumberGenerator.h" +#include "FWCore/Utilities/interface/ESGetToken.h" #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" @@ -36,6 +37,7 @@ class BeamDivergenceVtxGenerator : public edm::stream::EDProducer<> { private: edm::EDGetTokenT sourceToken_; + edm::ESGetToken beamParametersToken_; std::vector> genParticleTokens_; bool simulateVertex_; @@ -57,7 +59,8 @@ class BeamDivergenceVtxGenerator : public edm::stream::EDProducer<> { //---------------------------------------------------------------------------------------------------- BeamDivergenceVtxGenerator::BeamDivergenceVtxGenerator(const edm::ParameterSet &iConfig) - : simulateVertex_(iConfig.getParameter("simulateVertex")), + : beamParametersToken_(esConsumes()), + simulateVertex_(iConfig.getParameter("simulateVertex")), simulateBeamDivergence_(iConfig.getParameter("simulateBeamDivergence")) { const edm::InputTag tagSrcHepMC = iConfig.getParameter("src"); if (!tagSrcHepMC.label().empty()) @@ -102,8 +105,7 @@ void BeamDivergenceVtxGenerator::produce(edm::Event &iEvent, const edm::EventSet CLHEP::HepRandomEngine *rnd = &(rng->getEngine(iEvent.streamID())); // get conditions - edm::ESHandle hBeamParameters; - iSetup.get().get(hBeamParameters); + edm::ESHandle hBeamParameters = iSetup.getHandle(beamParametersToken_); // get HepMC input (if given) HepMC::GenEvent *genEvt; diff --git a/IOMC/EventVertexGenerators/src/BetafuncEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BetafuncEvtVtxGenerator.cc index 3f72b41ab70ad..1710c03cf1874 100644 --- a/IOMC/EventVertexGenerators/src/BetafuncEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BetafuncEvtVtxGenerator.cc @@ -28,9 +28,6 @@ ________________________________________________________________________ //#include "CLHEP/Vector/ThreeVector.h" #include "HepMC/SimpleVector.h" -#include "CondFormats/DataRecord/interface/SimBeamSpotObjectsRcd.h" -#include "CondFormats/BeamSpotObjects/interface/SimBeamSpotObjects.h" - #include BetafuncEvtVtxGenerator::BetafuncEvtVtxGenerator(const edm::ParameterSet& p) : BaseEvtVtxGenerator(p), boost_(4, 4) { @@ -50,6 +47,9 @@ BetafuncEvtVtxGenerator::BetafuncEvtVtxGenerator(const edm::ParameterSet& p) : B << "Illegal resolution in Z (SigmaZ is negative)"; } } + if (readDB_) { + beamToken_ = esConsumes(); + } } BetafuncEvtVtxGenerator::~BetafuncEvtVtxGenerator() {} @@ -57,12 +57,10 @@ BetafuncEvtVtxGenerator::~BetafuncEvtVtxGenerator() {} void BetafuncEvtVtxGenerator::beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const& iEventSetup) { update(iEventSetup); } -void BetafuncEvtVtxGenerator::beginRun(const edm::Run&, const edm::EventSetup& iEventSetup) { update(iEventSetup); } void BetafuncEvtVtxGenerator::update(const edm::EventSetup& iEventSetup) { if (readDB_ && parameterWatcher_.check(iEventSetup)) { - edm::ESHandle beamhandle; - iEventSetup.get().get(beamhandle); + edm::ESHandle beamhandle = iEventSetup.getHandle(beamToken_); fX0 = beamhandle->fX0; fY0 = beamhandle->fY0;