LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
RE04.cc File Reference

Main program of the runAndEvent/RE04 example. More...

#include "G4RunManager.hh"
#include "G4ScoringManager.hh"
#include "G4UImanager.hh"
#include "RE04ActionInitialization.hh"
#include "RE04DetectorConstruction.hh"
#include "RE04ParallelWorldConstruction.hh"
#include "FTFP_BERT.hh"
#include "G4ParallelWorldPhysics.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Main program of the runAndEvent/RE04 example.

Definition in file RE04.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 54 of file RE04.cc.

55 {
56  // Construct the run manager
57  //
58 #ifdef G4MULTITHREADED
59  G4MTRunManager * runManager = new G4MTRunManager;
60  //runManager->SetNumberOfThreads(4);
61 #else
62  G4RunManager * runManager = new G4RunManager;
63 #endif
64 
65  G4ScoringManager::GetScoringManager();
66 
67  G4String paraWorldName = "ParallelWorld";
68 
69  // Set mandatory initialization classes
70  //
71  RE04DetectorConstruction* realWorld = new RE04DetectorConstruction;
72  RE04ParallelWorldConstruction* parallelWorld
73  = new RE04ParallelWorldConstruction(paraWorldName);
74  realWorld->RegisterParallelWorld(parallelWorld);
75  runManager->SetUserInitialization(realWorld);
76  //
77  G4VModularPhysicsList* physicsList = new FTFP_BERT;
78  physicsList->RegisterPhysics
79  (new G4ParallelWorldPhysics(paraWorldName,true));
80  runManager->SetUserInitialization(physicsList);
81 
82  // Set user action classes
83  //
84  runManager->SetUserInitialization(new RE04ActionInitialization);
85 
86 #ifdef G4VIS_USE
87  // Visualization manager
88  //
89  G4VisManager* visManager = new G4VisExecutive;
90  visManager->Initialize();
91 #endif
92 
93  // Initialize G4 kernel
94  //
95  runManager->Initialize();
96 
97  // Get the pointer to the User Interface manager
98  //
99  G4UImanager* pUImanager = G4UImanager::GetUIpointer();
100 
101  if (argc==1) // Define UI session for interactive mode
102  {
103 #ifdef G4UI_USE
104  G4UIExecutive * ui = new G4UIExecutive(argc,argv);
105 #ifdef G4VIS_USE
106  pUImanager->ApplyCommand("/control/execute vis.mac");
107 #endif
108  ui->SessionStart();
109  delete ui;
110 #endif
111  }
112  else // Batch mode
113  {
114  G4String command = "/control/execute ";
115  G4String fileName = argv[1];
116  pUImanager->ApplyCommand(command+fileName);
117  }
118 
119 #ifdef G4VIS_USE
120  delete visManager;
121 #endif
122  delete runManager;
123 
124  return 0;
125 }