Go to the documentation of this file.00001 #ifndef SimG4Core_OscarProducer_H
00002 #define SimG4Core_OscarProducer_H
00003
00004 #include "FWCore/Framework/interface/EDProducer.h"
00005 #include "DataFormats/Common/interface/EDProduct.h"
00006 #include "FWCore/Framework/interface/Event.h"
00007
00008 #include "DataFormats/Common/interface/Handle.h"
00009 #include "FWCore/Framework/interface/MakerMacros.h"
00010 #include "FWCore/Framework/interface/EventSetup.h"
00011 #include "FWCore/Framework/interface/Run.h"
00012
00013 #include "SimG4Core/Application/interface/RunManager.h"
00014
00015 #include "SimG4Core/Application/interface/CustomUIsession.h"
00016
00017 namespace CLHEP {
00018 class HepRandomEngine;
00019 }
00020
00021 class OscarProducer : public edm::EDProducer
00022 {
00023 public:
00024 typedef std::vector<boost::shared_ptr<SimProducer> > Producers;
00025
00026 explicit OscarProducer(edm::ParameterSet const & p);
00027 virtual ~OscarProducer();
00028 virtual void beginRun(edm::Run & r,const edm::EventSetup & c);
00029 virtual void beginJob();
00030 virtual void endJob();
00031 virtual void produce(edm::Event & e, const edm::EventSetup & c);
00032 protected:
00033 RunManager* m_runManager;
00034 Producers m_producers;
00035 CustomUIsession* m_UIsession;
00036
00037 private:
00038 CLHEP::HepRandomEngine* m_engine;
00039 };
00040
00041 #endif