54{
55
57 G4bool useInteractiveMode = true;
60 " [option(s)] \n No additional arguments triggers an interactive mode "
61 "executing vis.mac macro. \n Options:\n\t-h\t\tdisplay this help "
62 "message\n\t-m MACRO\ttriggers a batch mode executing MACRO\n");
63 for(G4int i = 1; i < argc; ++i)
64 {
66 if(argument == "-h" || argument == "--help")
67 {
68 G4cout << helpMsg << G4endl;
69 return 0;
70 }
71 else if(argument == "-m")
72 {
73 batchMacroName =
G4String(argv[i + 1]);
74 useInteractiveMode = false;
75 ++i;
76 }
77 else
78 {
79 G4Exception("main", "Unknown argument", FatalErrorInArgument,
80 (
"Unknown argument passed to " +
G4String(argv[0]) +
" : " +
81 argument + "\n" + helpMsg)
82 .c_str());
83 }
84 }
85
86
87 auto* runManager =
88 G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
89
90
92 runManager->SetUserInitialization(detector);
93
94
96
98 fastSimulationPhysics->BeVerbose();
99 fastSimulationPhysics->ActivateFastSimulation("e-");
100 fastSimulationPhysics->ActivateFastSimulation("e+");
101 fastSimulationPhysics->ActivateFastSimulation("gamma");
102 physicsList->RegisterPhysics(fastSimulationPhysics);
103
104 G4EmParameters::Instance()->SetVerbose(0);
105 runManager->SetUserInitialization(physicsList);
106 G4HadronicProcessStore::Instance()->SetVerbose(0);
107
108
109
110
112
113
114
115
116 G4cout << "Instantiating Visualization Manager......." << G4endl;
118 visManager->Initialize();
119 G4UImanager* UImanager = G4UImanager::GetUIpointer();
120
121 if(useInteractiveMode)
122 {
124 UImanager->ApplyCommand("/control/execute vis.mac");
125 ui->SessionStart();
126 delete ui;
127 }
128 else
129 {
130 G4String command =
"/control/execute ";
131 UImanager->ApplyCommand(command + batchMacroName);
132 }
133
134
135
136
137
138 delete visManager;
139 delete runManager;
140
141 return 0;
142}
Initialization of user actions.