File indexing completed on 2025-12-16 09:29:04
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 #include "ActionInitialization.hh"
0031
0032 #include "PrimaryGeneratorAction.hh"
0033 #include "EventAction.hh"
0034 #include "RunAction.hh"
0035 #include "SteppingAction.hh"
0036 #include "PhysChemIO.hh"
0037 #include "DetectorConstruction.hh"
0038 #include "ITSteppingAction.hh"
0039 #include "TimeStepAction.hh"
0040 #include "StackingAction.hh"
0041 #include "G4DNAChemistryManager.hh"
0042 #include "G4Threading.hh"
0043
0044 #include <memory>
0045
0046
0047
0048 void ActionInitialization::BuildForMaster() const
0049 {
0050 if (gRunMode == RunningMode::Phys) {
0051 SetUserAction(new RunAction());
0052 }
0053 }
0054
0055
0056
0057 void ActionInitialization::Build() const
0058 {
0059 PrimaryGeneratorAction* primGenAction = new PrimaryGeneratorAction();
0060 SetUserAction(primGenAction);
0061 SetUserAction(new RunAction);
0062 if (gRunMode == RunningMode::Phys) {
0063 EventAction* eventAction = new EventAction;
0064 SetUserAction(eventAction);
0065 SteppingAction* steppingAction = new SteppingAction(eventAction);
0066 SetUserAction(steppingAction);
0067
0068 std::unique_ptr<G4VPhysChemIO> fPhysChemIO = std::make_unique<PhysChemIO>(steppingAction);
0069 G4DNAChemistryManager::Instance()->SetPhysChemIO(std::move(fPhysChemIO));
0070 }
0071
0072 if (gRunMode == RunningMode::Chem) {
0073 SetUserAction(new StackingAction());
0074 G4bool chemistryFlag = G4DNAChemistryManager::Instance()->IsActivated();
0075 if(chemistryFlag)
0076 {
0077 G4Scheduler::Instance()->SetVerbose(0);
0078 G4Scheduler::Instance()->SetMaxZeroTimeAllowed(10000);
0079 TimeStepAction* timeStepAction = new TimeStepAction();
0080 G4Scheduler::Instance()->SetUserAction(timeStepAction);
0081 }
0082 }
0083 }
0084
0085