CMS 3D CMS Logo

SimRunInterface.h
Go to the documentation of this file.
1 #ifndef SimG4Core_SimRunInterface_h
2 #define SimG4Core_SimRunInterface_h 1
3 
4 // This class is needed to provide an interface
5 // between Geant4 user actions and CMS SIM
6 // infrastructure both for sequentional and MT runs
7 
8 class RunManager;
9 class RunManagerMT;
10 class RunManagerMTWorker;
11 class SimTrackManager;
12 class RunAction;
13 class EventAction;
14 class TrackingAction;
15 class SteppingAction;
16 class G4SimEvent;
17 
19 public:
21 
22  SimRunInterface(RunManagerMT* run, bool master);
23 
24  SimRunInterface(RunManagerMTWorker* run, bool master);
25 
27 
28  // Needed because for workers SumRunInterface sits in TLS, while
29  // RunManagerMTWorkers are members of edm::stream OscarMTProducer
31 
32  void Connect(RunAction*);
33 
34  void Connect(EventAction*);
35 
36  void Connect(TrackingAction*);
37 
38  void Connect(SteppingAction*);
39 
41 
42  void abortEvent();
43 
44  void abortRun(bool softAbort);
45 
47 
48 private:
52 
54 
55  bool m_isMaster;
56 };
57 
58 #endif
void setRunManagerMTWorker(RunManagerMTWorker *run)
G4SimEvent * simEvent()
RunManagerMTWorker * m_runManagerMTWorker
SimTrackManager * m_SimTrackManager
void abortRun(bool softAbort)
SimTrackManager * GetSimTrackManager()
SimRunInterface(RunManager *run, bool master)
RunManager * m_runManager
RunManagerMT * m_runManagerMT
void Connect(RunAction *)