Loading...
Searching...
No Matches
Functions
field05.cc File Reference

Main program of the field/field05 example. More...

#include <unistd.h>
#include "G4Types.hh"
#include "F05SteppingVerbose.hh"
#include "G4RunManager.hh"
#include "F05PhysicsList.hh"
#include "F05DetectorConstruction.hh"
#include "F05ActionInitialization.hh"
#include "G4UImanager.hh"
#include "Randomize.hh"
#include "G4VisExecutive.hh"
#include "G4UIExecutive.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Main program of the field/field05 example.

Definition in file field05.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 63 of file field05.cc.

64{
65 // Instantiate G4UIExecutive if there are no arguments (interactive mode)
66 G4UIExecutive* ui = nullptr;
67 if ( argc == 1 ) {
68 ui = new G4UIExecutive(argc, argv);
69 }
70
71 // Choose the Random engine
72 //
73 G4Random::setTheEngine(new CLHEP::RanecuEngine);
74
75 G4int myseed = 1234;
76 if (argc > 2) myseed = atoi(argv[argc-1]);
77
78 // Construct the default run manager
79 //
80#ifdef G4MULTITHREADED
81 G4MTRunManager * runManager = new G4MTRunManager;
82#else
83 G4VSteppingVerbose::SetInstance(new F05SteppingVerbose);
84 auto runManager = new G4RunManager;
85#endif
86
87 G4Random::setTheSeed(myseed);
88
89 // Set mandatory initialization classes
90 //
91 // Detector construction
92 runManager->SetUserInitialization(new F05DetectorConstruction());
93 // Physics list
94 runManager->SetUserInitialization(new F05PhysicsList());
95 // User action initialization
96 runManager->SetUserInitialization(new F05ActionInitialization());
97
98 // Initialize visualization
99 //
100 G4VisManager* visManager = new G4VisExecutive;
101 // G4VisExecutive can take a verbosity argument - see /vis/verbose guidance.
102 // G4VisManager* visManager = new G4VisExecutive("Quiet");
103 visManager->Initialize();
104
105 // Get the pointer to the User Interface manager
106 //
107 G4UImanager* UImanager = G4UImanager::GetUIpointer();
108
109 if (!ui) // batch mode
110 {
111 G4String command = "/control/execute ";
112 G4String fileName = argv[1];
113 UImanager->ApplyCommand(command+fileName);
114 }
115 else
116 { // interactive mode : define UI session
117 UImanager->ApplyCommand("/control/execute init_vis.mac");
118 if (ui->IsGUI())
119 UImanager->ApplyCommand("/control/execute gui.mac");
120 ui->SessionStart();
121 delete ui;
122 }
123
124 // Job termination
125 // Free the store: user actions, physics_list and detector_description are
126 // owned and deleted by the run manager, so they should not
127 // be deleted in the main() program !
128
129 delete visManager;
130 delete runManager;
131
132 return 0;
133}
Action initialization class.

Applications | User Support | Publications | Collaboration