CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
9 class RunManager;
10 class RunManagerMT;
11 class RunManagerMTWorker;
12 class SimTrackManager;
13 class RunAction;
14 class EventAction;
15 class TrackingAction;
16 class SteppingAction;
17 class G4SimEvent;
18 
20 {
21 public:
22 
24 
25  SimRunInterface(RunManagerMT* run, bool master);
26 
27  SimRunInterface(RunManagerMTWorker* run, bool master);
28 
30 
31  // Needed because for workers SumRunInterface sits in TLS, while
32  // RunManagerMTWorkers are members of edm::stream OscarMTProducer
34 
35  void Connect(RunAction*);
36 
37  void Connect(EventAction*);
38 
39  void Connect(TrackingAction*);
40 
41  void Connect(SteppingAction*);
42 
44 
45  void abortEvent();
46 
47  void abortRun(bool softAbort);
48 
50 
51 private:
52 
56 
58 
59  bool m_isMaster;
60 };
61 
62 #endif
63 
64 
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 *)