#include "G4RunManagerFactory.hh" #include "G4UImanager.hh" #include "G4VisExecutive.hh" #include "G4UIExecutive.hh" #include "Randomize.hh" #include "DetectorConstruction.hh" #include "PhysicsList.hh" #include "ActionInitialization.hh" int main(int argc,char** argv) { //Instantiate G4UIExecutive if interactive mode //G4UIExecutive* ui = nullptr; //if(argc == 1) //{ // ui = new G4UIExecutive(argc, argv); //} auto runManager = G4RunManagerFactory::CreateRunManager(); //G4int seed = 123; //if(argc > 2) // seed = atoi(argv[argc - 1]); // Choose the Random engine and set the seed // G4Random::setTheEngine(new CLHEP::RanecuEngine); //G4Random::setTheSeed(seed); // set mandatory initialization classes DetectorConstruction* detector = new DetectorConstruction(); runManager->SetUserInitialization(detector); runManager->SetUserInitialization(new PhysicsList); runManager->SetUserInitialization(new ActionInitialization(detector)); G4VisManager* visManager = new G4VisExecutive; runManager->Initialize(); visManager->Initialize(); // Get the pointer to the User Interface manager G4UImanager* UImanager = G4UImanager::GetUIpointer(); //if(ui) //{ // Define (G)UI terminal for interactive mode //if(ui->IsGUI()) //UImanager->ApplyCommand("/control/execute gui.mac"); //ui->SessionStart(); //delete ui; //} //else //{ G4String command = "/control/execute "; G4String fileName = argv[1]; UImanager->ApplyCommand(command+"run1.mac"); //} // job termination delete visManager; delete runManager; }