CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OscarMTProducer.h
Go to the documentation of this file.
1 #ifndef SimG4Core_OscarMTProducer_H
2 #define SimG4Core_OscarMTProducer_H
3 
10 
12 
14 
15 #include <memory>
16 
17 class SimProducer;
18 class RunManagerMTWorker;
19 
21  edm::GlobalCache<OscarMTMasterThread>,
22  edm::RunCache<int> // for some reason void doesn't compile
23 >
24 {
25 public:
26  typedef std::vector<std::shared_ptr<SimProducer> > Producers;
27 
28  explicit OscarMTProducer(edm::ParameterSet const & p, const OscarMTMasterThread *);
29  virtual ~OscarMTProducer();
30 
31  static std::unique_ptr<OscarMTMasterThread> initializeGlobalCache(const edm::ParameterSet& iConfig);
32  static std::shared_ptr<int> globalBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup, const OscarMTMasterThread *masterThread);
33  static void globalEndRun(const edm::Run& iRun, const edm::EventSetup& iSetup, const RunContext *iContext);
34  static void globalEndJob(OscarMTMasterThread *masterThread);
35 
36 
37  virtual void endRun(const edm::Run & r,const edm::EventSetup& c) override;
38  virtual void produce(edm::Event & e, const edm::EventSetup& c) override;
39 
40 private:
42  std::unique_ptr<RunManagerMTWorker> m_runManagerWorker;
43  //edm::EDGetTokenT<edm::HepMCProduct> m_HepMC;
44 };
45 
46 #endif
static std::shared_ptr< int > globalBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup, const OscarMTMasterThread *masterThread)
std::unique_ptr< RunManagerMTWorker > m_runManagerWorker
OscarMTProducer(edm::ParameterSet const &p, const OscarMTMasterThread *)
std::vector< std::shared_ptr< SimProducer > > Producers
virtual ~OscarMTProducer()
Producers m_producers
virtual void produce(edm::Event &e, const edm::EventSetup &c) override
static void globalEndRun(const edm::Run &iRun, const edm::EventSetup &iSetup, const RunContext *iContext)
static std::unique_ptr< OscarMTMasterThread > initializeGlobalCache(const edm::ParameterSet &iConfig)
virtual void endRun(const edm::Run &r, const edm::EventSetup &c) override
static void globalEndJob(OscarMTMasterThread *masterThread)
Definition: Run.h:41