72{
73
74
75 if ( argc > 9 ) {
77 return 1;
78 }
79
82 G4int nThreads = 0;
83
84 G4long randomSeed = 1234;
85 for ( G4int i=1; i<argc; i=i+2 ) {
86 if (
G4String(argv[i]) ==
"-m" ) macro = argv[i+1];
87 else if (
G4String(argv[i]) ==
"-u" ) session = argv[i+1];
88 else if (
G4String(argv[i]) ==
"-r" ) randomSeed = atoi(argv[i+1]);
89 else if (
G4String(argv[i]) ==
"-t" ) {
90 nThreads = G4UIcommand::ConvertToInt(argv[i+1]);
91 }
92 else {
94 return 1;
95 }
96 }
97
98
100 if ( macro.size() == 0 ) {
102 }
103
104
105
107
108
109
110 auto* runManager = G4RunManagerFactory::CreateRunManager();
111 if ( nThreads > 0 ) runManager->SetNumberOfThreads(nThreads);
112
113
114 G4Random::setTheSeed(randomSeed);
115
116
117
118
120
122
123
124 G4Transportation::EnableGravity(true);
125
126
128
129
130
132
133
134 visManager->Initialize();
135
136
137
138 G4UImanager* UImanager = G4UImanager::GetUIpointer();
139
140 if ( !ui ) {
141
142 G4String command =
"/control/execute ";
143 UImanager->ApplyCommand(command+macro);
144 }
145 else
146 {
147 UImanager->ApplyCommand("/control/execute init_vis.mac");
148 if (ui->IsGUI())
149 UImanager->ApplyCommand("/control/execute gui.mac");
150 ui->SessionStart();
151 delete ui;
152 }
153
154
155
156
157
158
159 delete visManager;
160 delete runManager;
161
162 return 0;
163}
Action initialization class.