Loading...
Searching...
No Matches
Functions
exampleB1Con.cc File Reference
#include "DetectorConstruction.hh"
#include "ActionInitialization.hh"
#include "G4RunManagerFactory.hh"
#include "G4SteppingVerbose.hh"
#include "G4UImanager.hh"
#include "QBBC.hh"
#include "G4VisExecutive.hh"
#include "G4UIExecutive.hh"
#include "Randomize.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 47 of file exampleB1Con.cc.

48{
49 // Instantiate G4UIExecutive if there are no arguments (interactive mode)
50 G4UIExecutive* ui = nullptr;
51 if ( argc == 1 ) {
52 ui = new G4UIExecutive(argc, argv);
53 }
54
55 // Optionally: choose a different Random engine...
56 // G4Random::setTheEngine(new CLHEP::MTwistEngine);
57
58 //use G4SteppingVerboseWithUnits
59 G4int precision = 4;
60 G4SteppingVerbose::UseBestUnit(precision);
61
62 // Construct the default run manager
63 //
64 auto* runManager =
65 G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
66 runManager->SetNumberOfThreads(8);
67
68 // Set mandatory initialization classes
69 //
70 // Detector construction
71 runManager->SetUserInitialization(new DetectorConstruction());
72
73 // Physics list
74 G4VModularPhysicsList* physicsList = new QBBC;
75 physicsList->SetVerboseLevel(1);
76 runManager->SetUserInitialization(physicsList);
77
78 // User action initialization
79 runManager->SetUserInitialization(new B1Con::ActionInitialization());
80
81 // Initialize visualization
82 G4VisManager* visManager = new G4VisExecutive;
83 // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
84 // G4VisManager* visManager = new G4VisExecutive("Quiet");
85 visManager->Initialize();
86
87 // Get the pointer to the User Interface manager
88 G4UImanager* UImanager = G4UImanager::GetUIpointer();
89
90 if (!ui) {
91 // batch mode
92 G4String command = "/control/execute ";
93 G4String fileName = argv[1];
94 UImanager->ApplyCommand(command+fileName);
95 }
96 else {
97 // interactive mode : define UI session
98 UImanager->ApplyCommand("/control/execute init_vis.mac");
99 ui->SessionStart();
100 delete ui;
101 }
102
103 // Job termination
104 // Free the store: user actions, physics_list and detector_description are
105 // owned and deleted by the run manager, so they should not be deleted
106 // in the main() program !
107
108 delete visManager;
109 delete runManager;
110}
Action initialization class.
Detector construction class to define materials and geometry.

Applications | User Support | Publications | Collaboration