|
Geant4 examples
|
Main program of the B3 example. More...
#include "G4RunManager.hh"#include "G4UImanager.hh"#include "Randomize.hh"#include "B3DetectorConstruction.hh"#include "B3PhysicsList.hh"#include "B3PrimaryGeneratorAction.hh"#include "B3RunAction.hh"#include "B3EventAction.hh"#include "B3StackingAction.hh"Go to the source code of this file.
Functions | |
| int | main (int argc, char **argv) |
Main program of the B3 example.
Definition in file exampleB3.cc.
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Definition at line 53 of file exampleB3.cc.
{
// Choose the Random engine
//
CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
// Construct the default run manager
//
G4RunManager * runManager = new G4RunManager;
// Set mandatory initialization classes
//
runManager->SetUserInitialization(new B3DetectorConstruction);
//
runManager->SetUserInitialization(new B3PhysicsList);
// Set user action classes
//
runManager->SetUserAction(new B3PrimaryGeneratorAction);
//
B3RunAction* runAction = new B3RunAction();
runManager->SetUserAction(runAction);
//
runManager->SetUserAction(new B3EventAction(runAction));
//
runManager->SetUserAction(new B3StackingAction);
// Initialize G4 kernel
//
runManager->Initialize();
#ifdef G4VIS_USE
// Initialize visualization
G4VisManager* visManager = new G4VisExecutive;
// G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
// G4VisManager* visManager = new G4VisExecutive("Quiet");
visManager->Initialize();
#endif
// Get the pointer to the User Interface manager
G4UImanager* UImanager = G4UImanager::GetUIpointer();
if (argc!=1) // batch mode
{
G4String command = "/control/execute ";
G4String fileName = argv[1];
UImanager->ApplyCommand(command+fileName);
}
else
{ // interactive mode : define UI session
#ifdef G4UI_USE
G4UIExecutive* ui = new G4UIExecutive(argc, argv);
#ifdef G4VIS_USE
UImanager->ApplyCommand("/control/execute init_vis.mac");
#else
UImanager->ApplyCommand("/control/execute init.mac");
#endif
ui->SessionStart();
delete ui;
#endif
}
// Job termination
// Free the store: user actions, physics_list and detector_description are
// owned and deleted by the run manager, so they should not be deleted
// in the main() program !
#ifdef G4VIS_USE
delete visManager;
#endif
delete runManager;
return 0;
}
1.7.4