51 : runManager(runMgr)
52{
55
59
63 "If G4 kernel is not initialized, it will be initialized.");
64 beamOnCmd->
SetGuidance(
"Default number of events to be processed is 1.");
65 beamOnCmd->
SetGuidance(
"The second and third arguments can be used for");
66 beamOnCmd->
SetGuidance(
"executing a macro file at the end of each event.");
67 beamOnCmd->
SetGuidance(
"If the second argument, i.e. name of the macro");
68 beamOnCmd->
SetGuidance(
"file, is given but the third argument is not,");
69 beamOnCmd->
SetGuidance(
"the macro file will be executed for all of the");
71 beamOnCmd->
SetGuidance(
"If the third argument (nSelect) is given, the");
72 beamOnCmd->
SetGuidance(
"macro file will be executed only for the first");
87
88
90 verboseCmd->
SetGuidance(
"Set the Verbose level of G4RunManager.");
92 verboseCmd->
SetGuidance(
" 1 : Display main topics");
93 verboseCmd->
SetGuidance(
" 2 : Display main topics and run summary");
96 verboseCmd->
SetRange(
"level >=0 && level <=2");
97
100 "Display begin_of_event information at given frequency.");
102 "If it is set to zero, only the begin_of_run is shown.");
103 printProgCmd->
SetGuidance(
"If it is set to -1, no print-out is shown.");
107
109 nThreadsCmd->
SetGuidance(
"Set the number of threads to be used.");
110 nThreadsCmd->
SetGuidance(
"This command works only in PreInit state.");
112 "This command is valid only for multi-threaded mode.");
114 "The command is ignored if it is issued in sequential mode.");
117 nThreadsCmd->
SetRange(
"nThreads >0");
120
121 maxThreadsCmd =
124 "Set the number of threads to be the number of available logical cores.");
125 maxThreadsCmd->
SetGuidance(
"This command works only in PreInit state.");
127 "This command is valid only for multi-threaded mode.");
129 "The command is ignored if it is issued in sequential mode.");
132
135 "Locks each thread to a specific logical core. Workers "
136 "are locked in round robin to logical cores.");
138 "This command is valid only for multi-threaded mode.");
139 pinAffinityCmd->
SetGuidance(
"This command works only in PreInit state.");
141 "This command is ignored if it is issued in sequential mode.");
143 "If a value n>0 is provided it starts setting affinity "
144 "from the n-th CPU (note: counting from 1).");
145 pinAffinityCmd->
SetGuidance(
"E.g. /run/pinAffinity 3 locks first thread on "
146 "third logical CPU (number 2).");
148 "If a value n<0 is provided never locks on n-th CPU.");
152 pinAffinityCmd->
SetRange(
"pinAffinity > 0 || pinAffinity < 0");
154
155 evModCmd =
new G4UIcommand(
"/run/eventModulo",
this);
157 "Set the event modulo for dispatching events to worker threads");
159 "i.e. each worker thread is ordered to simulate N events and then");
160 evModCmd->
SetGuidance(
"comes back to G4MTRunManager for next set.");
162 "If it is set to zero (default value), N is roughly given by this.");
164 " N = int( sqrt( number_of_events / number_of_threads ) )");
166 "The value N may affect on the computing performance in particular");
168 "if N is too small compared to the total number of events.");
170 "The second parameter seedOnce specifies how frequently each worker");
172 "thread is seeded by the random number sequence centrally managed");
173 evModCmd->
SetGuidance(
"by the master G4MTRunManager.");
175 " - If seedOnce is set to 0 (default), seeds that are centrally managed");
177 " by G4MTRunManager are set for every event of every worker thread.");
179 " This option guarantees event reproducibility regardless of number");
182 " - If seedOnce is set to 1, seeds are set only once for the first");
184 " event of each run of each worker thread. Event reproducibility is");
186 " guaranteed only if the same number of worker threads are used.");
188 " On the other hand, this option offers better computing performance");
190 " in particular for applications with relatively small primary");
191 evModCmd->
SetGuidance(
" particle energy and large number of events.");
193 " - If seedOnce is set to 2, seeds are set only for the first event of");
195 " group of N events. This option is reserved for the future use when");
197 " Geant4 allows number of threads to be dynamically changed during an");
199 evModCmd->
SetGuidance(
"This command is valid only for multi-threaded mode.");
201 "This command is ignored if it is issued in sequential mode.");
212
214 dumpRegCmd->
SetGuidance(
"Dump region information.");
216 "In case name of a region is not given, all regions will be displayed.");
220
222 dumpCoupleCmd->
SetGuidance(
"Dump material-cuts-couple information.");
224 "Note that material-cuts-couple information is updated");
225 dumpCoupleCmd->
SetGuidance(
"after BeamOn has started.");
227
229 optCmd->
SetGuidance(
"Set the optimization flag for geometry.");
230 optCmd->
SetGuidance(
"If it is set to TRUE, G4GeometryManager will optimize");
232 optCmd->
SetGuidance(
"GEANT4 is initialized with this flag as TRUE.");
236
238 brkBoECmd->
SetGuidance(
"Set a break point at the beginning of every event.");
241
243 brkEoECmd->
SetGuidance(
"Set a break point at the end of every event.");
246
248 abortCmd->
SetGuidance(
"Abort current run processing.");
250 "If softAbort is false (default), currently processing event "
251 "will be immediately aborted,");
252 abortCmd->
SetGuidance(
"while softAbort is true, abortion occurs after "
253 "processing the current event.");
257
259 abortEventCmd->
SetGuidance(
"Abort currently processing event.");
261
263 geomCmd->
SetGuidance(
"Force geometry to be closed (re-voxellized) again.");
265 "This command must be applied if geometry has been modified");
266 geomCmd->
SetGuidance(
" after the first initialization (or BeamOn).");
268
270 geomRebCmd->
SetGuidance(
"Force geometry to be rebuilt once again.");
272 "This command must be applied if the user needs his/her");
273 geomRebCmd->
SetGuidance(
" detector construction to be reinvoked.");
275 "/run/geometryModified is automatically issued with this command.");
279
281 physCmd->
SetGuidance(
"Force all physics tables recalculated again.");
282 physCmd->
SetGuidance(
"This command must be applied");
283 physCmd->
SetGuidance(
" if physics process has been modified after the");
284 physCmd->
SetGuidance(
" first initialization (or BeamOn).");
286
287 constScoreCmd =
289 constScoreCmd->
SetGuidance(
"Construct scoring parallel world(s) if defined.");
290 constScoreCmd->
SetGuidance(
"This command is not mandatory, but automatically "
291 "called when a run starts.");
293 "But the user may use this to visualize the scoring "
294 "world(s) before a run to start.");
296
298
300 randomDirectory->
SetGuidance(
"Random number status control commands.");
301
304 "Initialize the random number generator with integer seed stream.");
305 seedCmd->
SetGuidance(
"Number of integers should be more than 1.");
307 "Actual number of integers to be used depends on the individual "
308 "random number engine.");
309#ifdef G4MULTITHREADED
310 seedCmd->
SetGuidance(
"This command sets the seeds for the master thread.");
311#endif
316
319 "Define the directory name of the rndm status files.");
320 randDirCmd->
SetGuidance(
"Directory will be created if it does not exist.");
325
327 savingFlagCmd->
SetGuidance(
"The randomNumberStatus will be saved at :");
328 savingFlagCmd->
SetGuidance(
"beginning of run (currentRun.rndm) and "
329 "beginning of event (currentEvent.rndm) ");
332
334 saveThisRunCmd->
SetGuidance(
"copy currentRun.rndm to runXXX.rndm");
337
339 saveThisEventCmd->
SetGuidance(
"copy currentEvent.rndm to runXXXevtYYY.rndm");
341
344 "Reset the status of the rndm engine from a file.");
345 restoreRandCmd->
SetGuidance(
"See CLHEP manual for detail.");
346 restoreRandCmd->
SetGuidance(
"The engine status must be stored beforehand.");
347 restoreRandCmd->
SetGuidance(
"Directory of the status file should be set by"
348 " /random/setDirectoryName.");
354
355 restoreRandCmdMT =
358 "Reset the status of the rndm engine from a file at each event.");
360 "Note that the file must follow the following naming convention:");
361 restoreRandCmdMT->
SetGuidance(
"run{#1}evt{#2}.rndm ; where #1 is the run "
362 "number and #2 is the event number.");
364 "For example to re-seed the first event of the first "
365 "run the file should be called run0evt0.rndm.");
367 "If for a specific run/event the file is not found, "
368 "the standard re-seeding strategy is used.");
369 restoreRandCmdMT->
SetGuidance(
"This command has meaning only in MT mode for "
370 "strong reproducibility studies.");
371 restoreRandCmdMT->
SetGuidance(
"Directory of the status file should be set by"
372 " /random/setDirectoryName.");
376
379 "Save random number status at beginning of each event.");
381 "File name contains run and event numbers: runXXXevtYYY.rndm");
384
386 randEvtCmd->
SetGuidance(
"Flag to store rndm status to G4Event object.");
387 randEvtCmd->
SetGuidance(
" flag = 0 : not store (default)");
389 " flag = 1 : status before primary particle generation is stored");
391 " flag = 2 : status before event processing (after primary "
392 "particle generation) is stored");
393 randEvtCmd->
SetGuidance(
" flag = 3 : both are stored");
395 "Note: Some performance overhead may be seen by storing rndm "
396 "status, in particular");
398 "for the case of simplest geometry and small number of tracks per event.");
401 randEvtCmd->
SetRange(
"flag>=0 && flag<=3");
403
407 "Force workers to process current stack of UI commands.");
408 procUICmds->
SetGuidance(
"This commands is meaningful only in MT mode.");
411}
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(G4bool defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(const char *defVal)
void SetParameterName(const char *theName, G4bool omittable, G4bool currentAsDefault=false)
void SetDefaultValue(G4int defVal)
void SetToBeBroadcasted(G4bool val)
void SetParameter(G4UIparameter *const newParameter)
void SetGuidance(const char *aGuidance)
void SetRange(const char *rs)
void AvailableForStates(G4ApplicationState s1)
void SetDefaultValue(const char *theDefaultValue)
void SetParameterRange(const char *theRange)