@@ -86,6 +86,11 @@ namespace edm {
8686 << " states two different ways in the same process.\n " ;
8787 }
8888
89+ if (not restoreStateTag_.label ().empty ()) {
90+ restoreStateBeginLumiToken_ = consumes<RandomEngineStates, InLumi>(restoreStateBeginLumiTag_);
91+ restoreStateToken_ = consumes<RandomEngineStates>(restoreStateTag_);
92+ }
93+
8994 // The saveFileName must correspond to a file name without any path specification.
9095 // Throw if that is not true.
9196 if (!saveFileName_.empty () && (saveFileName_.find (' /' ) != std::string::npos)) {
@@ -218,12 +223,9 @@ namespace edm {
218223 }
219224 }
220225
221- RandomNumberGeneratorService::~RandomNumberGeneratorService () {}
226+ RandomNumberGeneratorService::~RandomNumberGeneratorService () noexcept ( true ) {}
222227
223- void RandomNumberGeneratorService::consumes (ConsumesCollector&& iC) const {
224- iC.consumes <RandomEngineStates, InLumi>(restoreStateBeginLumiTag_);
225- iC.consumes <RandomEngineStates>(restoreStateTag_);
226- }
228+ EDConsumerBase* RandomNumberGeneratorService::consumer () { return this ; }
227229
228230 CLHEP::HepRandomEngine& RandomNumberGeneratorService::getEngine (StreamID const & streamID) {
229231 ModuleCallingContext const * mcc = CurrentModuleOnThread::getCurrentModuleOnThread ();
@@ -665,8 +667,7 @@ namespace edm {
665667 }
666668 }
667669
668- Handle<RandomEngineStates> states;
669- lumi.getByLabel (restoreStateBeginLumiTag_, states);
670+ Handle<RandomEngineStates> states = lumi.getHandle (restoreStateBeginLumiToken_);
670671
671672 if (!states.isValid ()) {
672673 throw Exception (errors::ProductNotFound)
@@ -682,9 +683,7 @@ namespace edm {
682683 }
683684
684685 void RandomNumberGeneratorService::readFromEvent (Event const & event) {
685- Handle<RandomEngineStates> states;
686-
687- event.getByLabel (restoreStateTag_, states);
686+ Handle<RandomEngineStates> states = event.getHandle (restoreStateToken_);
688687
689688 if (!states.isValid ()) {
690689 throw Exception (errors::ProductNotFound)
0 commit comments