CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/SimG4Core/Application/interface/OscarProducer.h

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 // #include "DataFormats/Common/interface/Handle.h"
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