58int main(
int argc,
char** argv)
69 G4bool verboseBestUnits =
true;
73 for ( G4int i=1; i<argc; i=i+2 ) {
74 if (
G4String(argv[i]) ==
"-m" ) macro = argv[i+1];
75 else if (
G4String(argv[i]) ==
"-u" ) session = argv[i+1];
77 else if (
G4String(argv[i]) ==
"-t" ) {
78 nThreads = G4UIcommand::ConvertToInt(argv[i+1]);
81 else if (
G4String(argv[i]) ==
"-vDefault" ) {
82 verboseBestUnits =
false;
94 if ( ! macro.size() ) {
102 if ( verboseBestUnits ) {
104 G4SteppingVerbose::UseBestUnit(precision);
110 G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
111#ifdef G4MULTITHREADED
112 if ( nThreads > 0 ) {
113 runManager->SetNumberOfThreads(nThreads);
120 runManager->SetUserInitialization(detConstruction);
123 runManager->SetUserInitialization(physicsList);
126 runManager->SetUserInitialization(actionInitialization);
132 visManager->Initialize();
135 auto UImanager = G4UImanager::GetUIpointer();
143 scoreNtupleWriter.SetVerboseLevel(1);
144 scoreNtupleWriter.SetNtupleMerging(
true);
150 if ( macro.size() ) {
152 G4String command =
"/control/execute ";
153 UImanager->ApplyCommand(command+macro);
157 UImanager->ApplyCommand(
"/control/execute init_vis.mac");
159 UImanager->ApplyCommand(
"/control/execute gui.mac");