#include "ActionInitialization.h" #include "DetectorConstruction.h" #include "PrimaryGeneratorAction.h" #include "G4MTRunManager.hh" #include "G4ScoringManager.hh" #include "G4UIExecutive.hh" #include "G4UImanager.hh" #include "G4VisExecutive.hh" #include "QBBC.hh" extern G4String particleType; int main(int argc, char** argv) { G4UIExecutive* ui = nullptr; if (argc == 1) ui = new G4UIExecutive(argc, argv); if (argc >= 3) particleType = argv[2]; else particleType = "TE"; G4MTRunManager* runManager = new G4MTRunManager; G4VisExecutive* visManager = new G4VisExecutive; G4UImanager* UIManager = G4UImanager::GetUIpointer(); G4ScoringManager::GetScoringManager(); runManager->SetUserInitialization(new DetectorConstruction()); runManager->SetUserInitialization(new QBBC); runManager->SetUserInitialization(new ActionInitialization()); visManager->Initialize(); if (!ui) { G4String command = "/control/execute "; G4String fileName = argv[1]; UIManager->ApplyCommand(command + fileName); } else { UIManager->ApplyCommand("/control/execute vis.mac"); ui->SessionStart(); delete ui; } delete runManager; delete visManager; return 0; }