CMS 3D CMS Logo

RunManagerMT.h
Go to the documentation of this file.
1 #ifndef SimG4Core_RunManagerMT_H
2 #define SimG4Core_RunManagerMT_H
3 
9 
11 
13 
14 #include <memory>
15 
16 class PrimaryTransformer;
17 class Generator;
18 class PhysicsList;
19 class CustomUIsession;
20 
21 class SimWatcher;
22 class SimProducer;
23 class G4SimEvent;
24 
25 class RunAction;
26 
27 class DDCompactView;
28 
29 namespace cms {
30  class DDCompactView;
31 }
32 
33 class DDDWorld;
34 
35 class G4MTRunManagerKernel;
36 class G4Run;
37 class G4Event;
38 class G4StateManager;
39 class G4GeometryManager;
40 class RunAction;
41 
42 class SimRunInterface;
43 
44 namespace HepPDT {
45  class ParticleDataTable;
46 }
47 
53 class RunManagerMTWorker;
54 
55 class RunManagerMT {
56  friend class RunManagerMTWorker;
57 
58 public:
59  explicit RunManagerMT(edm::ParameterSet const&);
60  ~RunManagerMT();
61 
62  // void initG4(const DDCompactView*, const cms::DDCompactView*, const MagneticField*, const HepPDT::ParticleDataTable*);
64 
65  void initializeUserActions();
66 
67  void stopG4();
68 
69  void Connect(RunAction*);
70 
71  // Keep this to keep ExceptionHandler to compile, probably removed
72  // later (or functionality moved to RunManagerMTWorker)
73  inline void abortRun(bool softAbort = false) {}
74 
75  inline const DDDWorld& world() const { return *m_world; }
76 
77  inline const SensitiveDetectorCatalog& catalog() const { return m_catalog; }
78 
79  inline const std::vector<std::string>& G4Commands() const { return m_G4Commands; }
80 
81  // In order to share the physics list with the worker threads, we
82  // need a non-const pointer. Thread-safety is handled inside Geant4
83  // with TLS.
84  inline PhysicsList* physicsListForWorker() const { return m_physicsList.get(); }
85 
86 private:
87  void terminateRun();
88 
89  G4MTRunManagerKernel* m_kernel;
90 
92  std::unique_ptr<PhysicsList> m_physicsList;
96  G4Run* m_currentRun;
97  G4StateManager* m_stateManager;
98  G4GeometryManager* m_geometryManager;
99 
100  std::unique_ptr<SimRunInterface> m_runInterface;
101 
105  bool m_check;
109  std::vector<std::string> m_G4Commands;
111 
112  std::unique_ptr<DDDWorld> m_world;
115 };
116 
117 #endif
RunManagerMT::m_runInterface
std::unique_ptr< SimRunInterface > m_runInterface
Definition: RunManagerMT.h:100
RunManagerMT::m_g4overlap
edm::ParameterSet m_g4overlap
Definition: RunManagerMT.h:108
Handle.h
RunManagerMT::m_G4Commands
std::vector< std::string > m_G4Commands
Definition: RunManagerMT.h:109
RunManagerMT::m_runTerminated
bool m_runTerminated
Definition: RunManagerMT.h:94
G4SimEvent
Definition: G4SimEvent.h:14
RunManagerMT::initializeUserActions
void initializeUserActions()
Definition: RunManagerMT.cc:257
DDDWorld
Definition: DDDWorld.h:14
RunManagerMT::m_UIsession
CustomUIsession * m_UIsession
Definition: RunManagerMT.h:91
RunManagerMT::m_registry
SimActivityRegistry m_registry
Definition: RunManagerMT.h:113
RunManagerMT::m_check
bool m_check
Definition: RunManagerMT.h:105
SimActivityRegistry.h
RunManagerMT::terminateRun
void terminateRun()
Definition: RunManagerMT.cc:276
RunManagerMT::catalog
const SensitiveDetectorCatalog & catalog() const
Definition: RunManagerMT.h:77
RunManagerMT::m_p
edm::ParameterSet m_p
Definition: RunManagerMT.h:110
PrimaryTransformer
Definition: PrimaryTransformer.h:6
RunManagerMT::RunManagerMT
RunManagerMT(edm::ParameterSet const &)
Definition: RunManagerMT.cc:67
DDCompactView
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:81
RunManagerMT::m_currentRun
G4Run * m_currentRun
Definition: RunManagerMT.h:96
RunManagerMT::world
const DDDWorld & world() const
Definition: RunManagerMT.h:75
RunManagerMT::m_stateManager
G4StateManager * m_stateManager
Definition: RunManagerMT.h:97
SensitiveDetectorCatalog
Definition: SensitiveDetectorCatalog.h:10
PhysicsList
Definition: PhysicsList.h:7
RunManagerMT::m_pPhysics
edm::ParameterSet m_pPhysics
Definition: RunManagerMT.h:106
RunManagerMT::m_physicsList
std::unique_ptr< PhysicsList > m_physicsList
Definition: RunManagerMT.h:92
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
RunManagerMT
Definition: RunManagerMT.h:55
RunAction
Definition: RunAction.h:15
edm::ParameterSet
Definition: ParameterSet.h:47
RunManagerMT::~RunManagerMT
~RunManagerMT()
Definition: RunManagerMT.cc:95
RunManagerMT::initG4
void initG4(const DDCompactView *, const cms::DDCompactView *, const HepPDT::ParticleDataTable *)
Definition: RunManagerMT.cc:97
Event.h
HepPDT
Definition: ParticleManager.h:17
SimProducer
Definition: SimProducer.h:64
SensitiveDetectorCatalog.h
RunManagerMT::G4Commands
const std::vector< std::string > & G4Commands() const
Definition: RunManagerMT.h:79
SimWatcher
Definition: SimWatcher.h:27
RunManagerMT::m_userRunAction
RunAction * m_userRunAction
Definition: RunManagerMT.h:95
InputTag.h
RunManagerMTWorker
Definition: RunManagerMTWorker.h:41
Generator
Definition: Generator.h:19
SimActivityRegistry
Definition: SimActivityRegistry.h:39
RunManagerMT::physicsListForWorker
PhysicsList * physicsListForWorker() const
Definition: RunManagerMT.h:84
CustomUIsession
Definition: CustomUIsession.h:13
cms::DDCompactView
Definition: DDCompactView.h:31
RunManagerMT::m_managerInitialized
bool m_managerInitialized
Definition: RunManagerMT.h:93
EventSetup.h
RunManagerMT::m_StorePhysicsTables
bool m_StorePhysicsTables
Definition: RunManagerMT.h:103
RunManagerMT::Connect
void Connect(RunAction *)
Definition: RunManagerMT.cc:263
RunManagerMT::m_geometryManager
G4GeometryManager * m_geometryManager
Definition: RunManagerMT.h:98
RunManagerMT::m_PhysicsTablesDir
const std::string m_PhysicsTablesDir
Definition: RunManagerMT.h:102
RunManagerMT::m_world
std::unique_ptr< DDDWorld > m_world
Definition: RunManagerMT.h:112
RunManagerMT::m_RestorePhysicsTables
bool m_RestorePhysicsTables
Definition: RunManagerMT.h:104
RunManagerMT::stopG4
void stopG4()
Definition: RunManagerMT.cc:268
ParameterSet.h
RunManagerMT::m_pRunAction
edm::ParameterSet m_pRunAction
Definition: RunManagerMT.h:107
RunManagerMT::m_kernel
G4MTRunManagerKernel * m_kernel
Definition: RunManagerMT.h:89
ParticleDataTable
HepPDT::ParticleDataTable ParticleDataTable
Definition: ParticleDataTable.h:8
RunManagerMT::m_catalog
SensitiveDetectorCatalog m_catalog
Definition: RunManagerMT.h:114
RunManagerMT::abortRun
void abortRun(bool softAbort=false)
Definition: RunManagerMT.h:73
cms
Namespace of DDCMS conversion namespace.
Definition: ProducerAnalyzer.cc:21
SimRunInterface
Definition: SimRunInterface.h:17