59 lines
1.6 KiB
C++
59 lines
1.6 KiB
C++
#include <TROOT.h>
|
|
#include <time.h>
|
|
|
|
#include "GeneDetectorConstruction.hh"
|
|
#include "GeneEventAction.hh"
|
|
#include "GenePrimaryGeneratorAction.hh"
|
|
#include "GeneRunAction.hh"
|
|
#include <G4RunManager.hh>
|
|
#include <G4SystemOfUnits.hh>
|
|
#include <G4UIExecutive.hh>
|
|
#include <G4UImanager.hh>
|
|
#include <G4UItcsh.hh>
|
|
#include <G4UIterminal.hh>
|
|
#include <G4UnitsTable.hh>
|
|
#include <G4VisExecutive.hh>
|
|
#include <QGSP_BERT_HP.hh>
|
|
#include <Randomize.hh>
|
|
|
|
int main(int argc, char **argv) {
|
|
G4UIExecutive *ui = nullptr;
|
|
if (argc == 1) ui = new G4UIExecutive(argc, argv);
|
|
|
|
gROOT->GetInterpreter();
|
|
CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
|
|
CLHEP::HepRandom::setTheSeed(time(NULL));
|
|
|
|
// run manager
|
|
G4RunManager *runManager = new G4RunManager;
|
|
|
|
runManager->SetUserInitialization(new GeneDetectorConstruction);
|
|
|
|
G4VModularPhysicsList *physicsList = new QGSP_BERT_HP;
|
|
physicsList->SetVerboseLevel(1);
|
|
runManager->SetUserInitialization(physicsList);
|
|
|
|
runManager->SetUserAction(new GenePrimaryGeneratorAction);
|
|
runManager->SetUserAction(new GeneRunAction);
|
|
runManager->SetUserAction(new GeneEventAction);
|
|
runManager->Initialize();
|
|
|
|
G4VisManager *visManager = new G4VisExecutive;
|
|
G4UImanager *UIManager = G4UImanager::GetUIpointer();
|
|
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 visManager;
|
|
delete runManager;
|
|
return 0;
|
|
}
|