G4-ExampleB0/main.cpp

43 lines
1.2 KiB
C++
Raw Normal View History

2022-04-28 20:18:48 +08:00
#include "G4MTRunManager.hh"
2022-04-29 13:57:31 +08:00
#include "G4ScoringManager.hh"
2022-04-28 20:18:48 +08:00
#include "G4UIExecutive.hh"
2022-04-29 13:57:31 +08:00
#include "G4UImanager.hh"
#include "G4VUserActionInitialization.hh"
2022-04-28 20:18:48 +08:00
#include "G4VisExecutive.hh"
#include "Geometry.h"
#include "ParticleSource.h"
2022-04-29 13:57:31 +08:00
#include "QGSP_BERT.hh"
2022-04-28 20:18:48 +08:00
class ActionInitialzation : public G4VUserActionInitialization {
public:
2022-04-29 13:57:31 +08:00
virtual void Build() const { SetUserAction(new GeneratorAction); }
2022-04-28 20:18:48 +08:00
};
int main(int argc, char** argv) {
G4UIExecutive* ui = nullptr;
2022-04-29 13:57:31 +08:00
if (argc == 1) ui = new G4UIExecutive(argc, argv);
2022-04-28 20:18:48 +08:00
auto runManager = new G4MTRunManager;
auto visManager = new G4VisExecutive;
auto UIManager = G4UImanager::GetUIpointer();
runManager->SetUserInitialization(new DetectorConstruction());
runManager->SetUserInitialization(new QGSP_BERT());
runManager->SetUserInitialization(new ActionInitialzation());
visManager->Initialize();
2022-04-29 13:57:31 +08:00
if (!ui) {
2022-04-28 20:18:48 +08:00
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;
}