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 #include "boost/shared_ptr.hpp"
21 
22 namespace sim { class FieldBuilder; }
23 class SimWatcher;
24 class SimProducer;
25 class DDDWorld;
26 class G4RunManagerKernel;
27 class SimTrackManager;
28 
30 {
31 public:
32  typedef std::vector<boost::shared_ptr<SimProducer> > Producers;
33  explicit GeometryProducer(edm::ParameterSet const & p);
34  virtual ~GeometryProducer();
35  virtual void beginJob();
36  virtual void endJob();
37  virtual void produce(edm::Event & e, const edm::EventSetup & c);
38  std::vector<boost::shared_ptr<SimProducer> > producers() const
39  { return m_producers; }
40  std::vector<SensitiveTkDetector*>& sensTkDetectors() { return m_sensTkDets; }
41  std::vector<SensitiveCaloDetector*>& sensCaloDetectors() { return m_sensCaloDets; }
42 private:
43  G4RunManagerKernel * m_kernel;
48  std::vector<boost::shared_ptr<SimWatcher> > m_watchers;
49  std::vector<boost::shared_ptr<SimProducer> > m_producers;
50  std::auto_ptr<sim::FieldBuilder> m_fieldBuilder;
51  std::auto_ptr<SimTrackManager> m_trackManager;
53  std::vector<SensitiveTkDetector*> m_sensTkDets;
54  std::vector<SensitiveCaloDetector*> m_sensCaloDets;
56 };
57 
58 #endif
GeometryProducer(edm::ParameterSet const &p)
edm::ParameterSet m_pField
std::auto_ptr< SimTrackManager > m_trackManager
std::vector< boost::shared_ptr< SimProducer > > Producers
Definition: sim.h:19
std::vector< SensitiveTkDetector * > & sensTkDetectors()
virtual ~GeometryProducer()
G4RunManagerKernel * m_kernel
virtual void beginJob()
std::vector< SensitiveCaloDetector * > & sensCaloDetectors()
std::vector< boost::shared_ptr< SimProducer > > producers() const
SimActivityRegistry m_registry
std::vector< SensitiveTkDetector * > m_sensTkDets
std::vector< boost::shared_ptr< SimWatcher > > m_watchers
std::auto_ptr< sim::FieldBuilder > m_fieldBuilder
std::vector< boost::shared_ptr< SimProducer > > m_producers
virtual void endJob()
edm::ParameterSet m_p
virtual void produce(edm::Event &e, const edm::EventSetup &c)
std::vector< SensitiveCaloDetector * > m_sensCaloDets