CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/IOMC/RandomEngine/src/RandomEngineStateProducer.cc

Go to the documentation of this file.
00001 
00002 #include "IOMC/RandomEngine/src/RandomEngineStateProducer.h"
00003 #include "FWCore/ServiceRegistry/interface/Service.h"
00004 #include "FWCore/Utilities/interface/RandomNumberGenerator.h"
00005 #include "SimDataFormats/RandomEngine/interface/RandomEngineStates.h"
00006 #include "FWCore/Framework/interface/Event.h"
00007 #include "FWCore/Framework/interface/LuminosityBlock.h"
00008 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
00009 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
00010 
00011 #include <memory>
00012 
00013 RandomEngineStateProducer::RandomEngineStateProducer(edm::ParameterSet const& pset) {
00014   produces<edm::RandomEngineStates, edm::InLumi>("beginLumi");
00015   produces<edm::RandomEngineStates>();
00016 }
00017 
00018 RandomEngineStateProducer::~RandomEngineStateProducer() {
00019 }
00020 
00021 void
00022 RandomEngineStateProducer::produce(edm::Event& ev, edm::EventSetup const& es) {
00023   edm::Service<edm::RandomNumberGenerator> randomService;
00024   if (randomService.isAvailable()) {
00025     std::auto_ptr<edm::RandomEngineStates> states(new edm::RandomEngineStates);
00026     states->setRandomEngineStates(randomService->getEventCache());
00027     ev.put(states);
00028   }
00029 }
00030 
00031 void
00032 RandomEngineStateProducer::beginLuminosityBlock(edm::LuminosityBlock& lb, edm::EventSetup const& es) {
00033   edm::Service<edm::RandomNumberGenerator> randomService;
00034   if (randomService.isAvailable()) {
00035     std::auto_ptr<edm::RandomEngineStates> states(new edm::RandomEngineStates);
00036     states->setRandomEngineStates(randomService->getLumiCache());
00037     lb.put(states, "beginLumi");
00038   }
00039 }
00040 
00041 void
00042 RandomEngineStateProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
00043   edm::ParameterSetDescription desc;
00044   descriptions.add("randomEngineStateProducer", desc);
00045 }