CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GeometryProducer.h
Go to the documentation of this file.
1 #ifndef SimG4Core_GeometryProducer_H
2 #define SimG4Core_GeometryProducer_H
3 
6 // #include "DataFormats/Common/interface/Handle.h"
11 
12 
18 
19 #include <memory>
20 
21 namespace sim { class FieldBuilder; }
22 class SimWatcher;
23 class SimProducer;
24 class DDDWorld;
25 class G4RunManagerKernel;
26 class SimTrackManager;
27 
29 {
30 public:
31  typedef std::vector<std::shared_ptr<SimProducer> > Producers;
32  explicit GeometryProducer(edm::ParameterSet const & p);
33  virtual ~GeometryProducer();
34  virtual void beginJob();
35  virtual void endJob();
36  virtual void produce(edm::Event & e, const edm::EventSetup & c);
37  std::vector<std::shared_ptr<SimProducer> > producers() const
38  { return m_producers; }
39  std::vector<SensitiveTkDetector*>& sensTkDetectors() { return m_sensTkDets; }
40  std::vector<SensitiveCaloDetector*>& sensCaloDetectors() { return m_sensCaloDets; }
41 private:
42  G4RunManagerKernel * m_kernel;
47  std::vector<std::shared_ptr<SimWatcher> > m_watchers;
48  std::vector<std::shared_ptr<SimProducer> > m_producers;
49  std::auto_ptr<sim::FieldBuilder> m_fieldBuilder;
50  std::auto_ptr<SimTrackManager> m_trackManager;
52  std::vector<SensitiveTkDetector*> m_sensTkDets;
53  std::vector<SensitiveCaloDetector*> m_sensCaloDets;
55 };
56 
57 #endif
GeometryProducer(edm::ParameterSet const &p)
std::vector< std::shared_ptr< SimProducer > > Producers
edm::ParameterSet m_pField
std::auto_ptr< SimTrackManager > m_trackManager
Definition: sim.h:19
std::vector< SensitiveTkDetector * > & sensTkDetectors()
std::vector< std::shared_ptr< SimWatcher > > m_watchers
virtual ~GeometryProducer()
G4RunManagerKernel * m_kernel
virtual void beginJob()
std::vector< SensitiveCaloDetector * > & sensCaloDetectors()
std::vector< std::shared_ptr< SimProducer > > m_producers
SimActivityRegistry m_registry
std::vector< std::shared_ptr< SimProducer > > producers() const
std::vector< SensitiveTkDetector * > m_sensTkDets
std::auto_ptr< sim::FieldBuilder > m_fieldBuilder
virtual void endJob()
edm::ParameterSet m_p
virtual void produce(edm::Event &e, const edm::EventSetup &c)
std::vector< SensitiveCaloDetector * > m_sensCaloDets