Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // Author: Jonathan Madsen (May 28st 2020) 27 // 28 // class description: 29 // 30 // This class is used for multi-threaded 31 // It encapsulates the mechanism of start 32 33 #ifndef G4UserTaskThreadInitialization_hh 34 #define G4UserTaskThreadInitialization_hh 35 36 //class G4VUserPrimaryGeneratorAction; 37 //class G4UserRunAction; 38 //class G4UserEventAction; 39 //class G4UserStackingAction; 40 //class G4UserTrackingAction; 41 //class G4UserSteppingAction; 42 43 class G4WorkerThread; 44 class G4WorkerTaskRunManager; 45 46 #include "G4Threading.hh" 47 #include "G4UserWorkerThreadInitialization.hh" 48 #include "Randomize.hh" 49 50 class G4UserTaskThreadInitialization : public 51 { 52 public: // with description 53 G4UserTaskThreadInitialization() = default 54 ~G4UserTaskThreadInitialization() override 55 56 // Called by the kernel to create a new t 57 // and start work. 58 // Usere should not re-implement this func 59 // if he/she wants to verwrite the default 60 // function) 61 G4Thread* CreateAndStartWorker(G4WorkerThr 62 63 // Called by worker threads to set the Ran 64 // The default implementation "clones" the 65 // User needs to re-implement this method 66 // RNG Engine (i.e. a different one w.r.t. 67 // version supported by G4. 68 // Important: this method is called by all 69 // if is user responsibilitiy to make it 70 void SetupRNGEngine(const CLHEP::HepRandom 71 72 // Called by the kernel when threads need 73 // of joining the aThread. Calling thread 74 // should not re-implement this function ( 75 // he/she wants to verwrite the default th 76 // function) 77 void JoinWorker(G4Thread* aThread) overrid 78 79 // Called by StartThread function to creat 80 // behvior. User should re-implemtn this f 81 // instantiate his/her user-defined Worker 82 // instantiates G4WorkerTaskRunManager obj 83 G4WorkerRunManager* CreateWorkerRunManager 84 }; 85 86 #endif // G4UserTaskThreadInitialization_hh 87