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

Main program of the Par01 example. More...

#include "G4Types.hh"
#include "Par01DetectorConstruction.hh"
#include "Par01ParallelWorldForPion.hh"
#include "FTFP_BERT.hh"
#include "G4FastSimulationPhysics.hh"
#include "G4UImanager.hh"
#include "G4RunManagerFactory.hh"
#include "Par01ActionInitialization.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 Par01 example.

Definition in file examplePar01.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 68 of file examplePar01.cc.

69{
70 // Instantiate G4UIExecutive if interactive mode
71 G4UIExecutive* ui = nullptr;
72 if ( argc == 1 ) {
73 ui = new G4UIExecutive(argc, argv);
74 }
75
76 //-------------------------------
77 // Initialization of Run manager
78 //-------------------------------
79 auto* runManager = G4RunManagerFactory::CreateRunManager();
80 runManager->SetNumberOfThreads(4);
81
82 // -----------------------------------------------------
83 // -- Detector/mass geometry and parallel geometry(ies):
84 // -----------------------------------------------------
85 // -- Mass geometry (ie : standard geometry):
86 auto detector = new Par01DetectorConstruction();
87 // -- Parallel geometry for pion parameterisation
88 detector->RegisterParallelWorld(new Par01ParallelWorldForPion("pionGhostWorld"));
89 // -- Passed to the run manager:
90 runManager->SetUserInitialization(detector);
91
92 // ----------------------------------------------
93 // -- PhysicsList and fast simulation activation:
94 // ----------------------------------------------
95 // -- Create a physics list (note : FTFP_BERT is a G4VModularPhysicsList
96 // -- which allows to use the subsequent G4FastSimulationPhysics tool to
97 // -- activate the fast simulation):
98 auto physicsList = new FTFP_BERT;
99 // -- Create helper tool, used to activate the fast simulation:
100 auto fastSimulationPhysics = new G4FastSimulationPhysics();
101 fastSimulationPhysics->BeVerbose();
102 // -- activation of fast simulation for particles having fast simulation models
103 // -- attached in the mass geometry:
104 fastSimulationPhysics->ActivateFastSimulation("e-");
105 fastSimulationPhysics->ActivateFastSimulation("e+");
106 fastSimulationPhysics->ActivateFastSimulation("gamma");
107 // -- activation of fast simulation for particles having fast simulation models
108 // -- attached in the parallel geometry:
109 fastSimulationPhysics->ActivateFastSimulation("pi+","pionGhostWorld");
110 fastSimulationPhysics->ActivateFastSimulation("pi-","pionGhostWorld");
111 // -- Attach the fast simulation physics constructor to the physics list:
112 physicsList->RegisterPhysics( fastSimulationPhysics );
113 // -- Finally passes the physics list to the run manager:
114 runManager->SetUserInitialization(physicsList);
115
116 //-------------------------------
117 // UserAction classes
118 //-------------------------------
119 runManager->SetUserInitialization( new Par01ActionInitialization );
120
121 // Initialize Run manager
122 runManager->Initialize();
123
124 //----------------
125 // Visualization:
126 //----------------
127 G4cout << "Instantiating Visualization Manager......." << G4endl;
128 G4VisManager* visManager = new G4VisExecutive;
129 visManager -> Initialize ();
130
131 if(ui)
132 {
133 //--------------------------
134 // Define (G)UI
135 //--------------------------
136 ui->SessionStart();
137 delete ui;
138 }
139 else
140 {
141 G4String command = "/control/execute ";
142 G4String fileName = argv[1];
143 G4UImanager * UImanager = G4UImanager::GetUIpointer();
144 UImanager->ApplyCommand(command+fileName);
145 }
146
147 // Free the store: user actions, physics_list and detector_description are
148 // owned and deleted by the run manager, so they should not
149 // be deleted in the main() program !
150
151 delete visManager;
152 delete runManager;
153
154 return 0;
155}
void Initialize()
Definition errProp.cc:100

Applications | User Support | Publications | Collaboration