52int main(
int argc,
char** argv) {
62 G4bool verboseBestUnits =
true;
66 for (G4int i = 1; i < argc; i = i + 2) {
67 if (G4String(argv[i]) ==
"-m")
69 else if (G4String(argv[i]) ==
"-u")
70 session = argv[i + 1];
72 else if (G4String(argv[i]) ==
"-t") {
73 nThreads = G4UIcommand::ConvertToInt(argv[i + 1]);
76 else if (G4String(argv[i]) ==
"-vDefault") {
77 verboseBestUnits =
false;
87 G4UIExecutive* ui =
nullptr;
89 ui =
new G4UIExecutive(argc, argv, session);
96 if (verboseBestUnits) {
98 G4SteppingVerbose::UseBestUnit(precision);
103 auto runManager = G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
104#ifdef G4MULTITHREADED
106 runManager->SetNumberOfThreads(nThreads);
113 runManager->SetUserInitialization(detConstruction);
115 auto physicsList =
new FTFP_BERT(0);
116 runManager->SetUserInitialization(physicsList);
119 runManager->SetUserInitialization(actionInitialization);
122 auto visManager =
new G4VisExecutive(
"Quiet");
123 visManager->Initialize();
126 auto UImanager = G4UImanager::GetUIpointer();
133 G4String command =
"/control/execute ";
134 exitCode = UImanager->ApplyCommand(command + macro);
137 UImanager->ApplyCommand(
"/control/execute init_vis.mac");
139 UImanager->ApplyCommand(
"/control/execute gui.mac");
152 return exitCode != 0 ? 1 : 0;