46 : fScheduler(stepMgr)
47{
48 fITDirectory = std::make_unique<G4UIdirectory>("/scheduler/");
49 fITDirectory->SetGuidance("Control commands for the time scheduler "
50 "(dna chemistry applications).");
51
52
53 fEndTime = std::make_unique<G4UIcmdWithADoubleAndUnit>("/scheduler/endTime", this);
54 fEndTime->SetGuidance("Set time at which the simulation must stop.");
56 fEndTime->SetUnitCategory("Time");
57 fEndTime->SetDefaultUnit("picosecond");
58 fEndTime->SetDefaultValue(1);
59
60
61 fTimeTolerance = std::make_unique<G4UIcmdWithADoubleAndUnit>("/scheduler/timeTolerance", this);
62 fTimeTolerance->SetGuidance(
63 "This command aims at resolving issues related to"
64 " floating points. If two time events are separated by less than the "
65 "selected tolerance, they are assumed to belong to the same time step.");
67 fTimeTolerance->SetUnitCategory("Time");
68 fTimeTolerance->SetDefaultUnit("picosecond");
69 fTimeTolerance->SetDefaultValue(1);
70
71
72 fInitCmd = std::make_unique<G4UIcmdWithoutParameter>("/scheduler/initialize", this);
73 fInitCmd->SetGuidance("Initialize G4Scheduler. This is done "
74 "for standalone application only (no physics).");
76
77
78 fMaxNULLTimeSteps = std::make_unique<G4UIcmdWithAnInteger>("/scheduler/maxNullTimeSteps", this);
79 fMaxNULLTimeSteps->SetGuidance(
80 "Set maximum allowed zero time steps. After this "
81 "threshold, the simulation is stopped.");
82 fMaxNULLTimeSteps->SetParameterName("numberOfNullTimeSteps", true);
83 fMaxNULLTimeSteps->SetDefaultValue(10000);
84 fMaxNULLTimeSteps->SetRange("numberOfNullTimeSteps >=0 ");
85
86 fMaxStepNumber = std::make_unique<G4UIcmdWithAnInteger>("/scheduler/maxStepNumber", this);
87 fMaxStepNumber->SetGuidance(
88 "Set the maximum number of time steps. After this "
89 "threshold, the simulation is stopped.");
90 fMaxStepNumber->SetParameterName("maximumNumberOfSteps", true);
91 fMaxStepNumber->SetDefaultValue(-1);
92
93
94 fProcessCmd = std::make_unique<G4UIcmdWithoutParameter>("/scheduler/process", this);
95 fProcessCmd->SetGuidance(
96 "Process stacked tracks in G4Scheduler. This is done "
97 "for standalone application only (no physics).");
99
100
101 fVerboseCmd = std::make_unique<G4UIcmdWithAnInteger>("/scheduler/verbose", this);
102 fVerboseCmd->SetGuidance("Set the Verbose level of G4Scheduler.");
103 fVerboseCmd->SetGuidance(" 0 : Silent (default)");
104 fVerboseCmd->SetGuidance(" 1 : Display reactions");
105 fVerboseCmd->SetGuidance(" 2 ");
106 fVerboseCmd->SetParameterName("level", true);
107 fVerboseCmd->SetDefaultValue(1);
108
109 fWhyDoYouStop = std::make_unique<G4UIcmdWithoutParameter>("/scheduler/whyDoYouStop", this);
110 fWhyDoYouStop->SetGuidance("Will print information on why the scheduler is "
111 "stopping the process");
112
113 fUseDefaultTimeSteps = std::make_unique<G4UIcmdWithABool>("/scheduler/useDefaultTimeSteps", this);
114 fUseDefaultTimeSteps->SetGuidance(
115 "Let the G4 processes decided for the next "
116 "time step interval. This command would be interesting if no reaction has "
117 "been set and if one will want to track down Brownian objects. "
118 "NB: This command gets in conflicts with the declaration of time steps.");
119
120 fResetScavenger = std::make_unique<G4UIcmdWithABool>("/scheduler/ResetScavengerForEachBeamOn", this);
121 fResetScavenger->SetGuidance(
122 "Reset Scavenger information apres each BeamOn.");
123 fResetScavenger->SetDefaultValue(true);
124
125}