CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 class RunManagerMT;
10 class SimTrackManager;
11 class RunAction;
12 class EventAction;
13 class TrackingAction;
14 class SteppingAction;
15 class G4SimEvent;
16 
18 public:
20 
21  SimRunInterface(RunManagerMTWorker* run, bool master);
22 
24 
25  // Needed because for workers SumRunInterface sits in TLS, while
26  // RunManagerMTWorkers are members of edm::stream OscarMTProducer
28 
29  void Connect(RunAction*);
30 
31  void Connect(EventAction*);
32 
33  void Connect(TrackingAction*);
34 
35  void Connect(SteppingAction*);
36 
38 
39  void abortEvent();
40 
41  void abortRun(bool softAbort);
42 
44 
45 private:
48 
50 
51  bool m_isMaster;
52 };
53 
54 #endif
Master< F > master(const F &f)
Definition: FunctClone.h:63
void setRunManagerMTWorker(RunManagerMTWorker *run)
G4SimEvent * simEvent()
RunManagerMTWorker * m_runManagerMTWorker
SimTrackManager * m_SimTrackManager
void abortRun(bool softAbort)
SimTrackManager * GetSimTrackManager()
RunManagerMT * m_runManagerMT
void Connect(RunAction *)
SimRunInterface(RunManagerMT *run, bool master)