File indexing completed on 2025-08-02 08:29:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 #ifndef G4WorkerSubEvtRunManager_h
0040 #define G4WorkerSubEvtRunManager_h 1
0041
0042 #include "G4WorkerTaskRunManager.hh"
0043
0044 class G4WorkerThread;
0045 class G4WorkerTaskRunManagerKernel;
0046
0047
0048
0049 using G4WorkerSubEvtRunManagerKernel = G4WorkerTaskRunManagerKernel;
0050
0051 class G4WorkerSubEvtRunManager : public G4WorkerTaskRunManager
0052 {
0053 public:
0054 static G4WorkerSubEvtRunManager* GetWorkerRunManager();
0055 static G4WorkerSubEvtRunManagerKernel* GetWorkerRunManagerKernel();
0056 G4WorkerSubEvtRunManager(G4int subEventType = 0);
0057
0058
0059
0060 void RunInitialization() override;
0061 void DoEventLoop(G4int n_event, const char* macroFile = nullptr, G4int n_select = -1) override;
0062 void ProcessOneEvent(G4int i_event) override;
0063 G4Event* GenerateEvent(G4int i_event) override;
0064 void RunTermination() override;
0065 void TerminateEventLoop() override;
0066 void DoWork() override;
0067 void RestoreRndmEachEvent(G4bool flag) override { readStatusFromFile = flag; }
0068
0069 void DoCleanup() override;
0070 void ProcessUI() override;
0071
0072 void SetUserInitialization(G4VUserPhysicsList* userPL) override;
0073 void SetUserInitialization(G4VUserDetectorConstruction* userDC) override;
0074 void SetUserInitialization(G4UserWorkerInitialization* userInit) override;
0075 void SetUserInitialization(G4UserWorkerThreadInitialization* userInit) override;
0076 void SetUserInitialization(G4VUserActionInitialization* userInit) override;
0077 void SetUserAction(G4UserRunAction* userAction) override;
0078 void SetUserAction(G4VUserPrimaryGeneratorAction* userAction) override;
0079 void SetUserAction(G4UserEventAction* userAction) override;
0080 void SetUserAction(G4UserStackingAction* userAction) override;
0081 void SetUserAction(G4UserTrackingAction* userAction) override;
0082 void SetUserAction(G4UserSteppingAction* userAction) override;
0083
0084 protected:
0085 void StoreRNGStatus(const G4String& filenamePrefix) override;
0086 void SetupDefaultRNGEngine() override;
0087
0088 private:
0089 G4int fSubEventType = -1;
0090
0091 public:
0092 G4int GetSubEventType() const override
0093 { return fSubEventType; }
0094 void SetSubEventType(G4int) override;
0095 };
0096
0097 #endif