LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
iort_therapy.cc File Reference
#include "G4RunManager.hh"
#include "G4UImanager.hh"
#include "G4PhysListFactory.hh"
#include "G4VModularPhysicsList.hh"
#include "IORTEventAction.hh"
#include "IORTPhysicsList.hh"
#include "IORTPrimaryGeneratorAction.hh"
#include "IORTRunAction.hh"
#include "Randomize.hh"
#include "G4UImessenger.hh"
#include "globals.hh"
#include "IORTSteppingAction.hh"
#include "IORTGeometryController.hh"
#include "IORTGeometryMessenger.hh"
#include "G4VisExecutive.hh"
#include "G4UIExecutive.hh"
#include <ctime>
#include "G4ScoringManager.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 77 of file iort_therapy.cc.

References Initialize().

78 {
79  // Set the Random engine
80  CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine());
81 
82 // G4int seed = time(NULL);
83  // CLHEP::HepRandom::setTheSeed(seed);
84 
85  G4RunManager* runManager = new G4RunManager;
86 
87  G4ScoringManager::GetScoringManager();
88  // Scoring mesh
89 
90  // Geometry controller is responsible for instantiating the
91  // geometries. All geometry specific setup tasks are now in class
92  // IORTGeometryController.
93  IORTGeometryController *geometryController = new IORTGeometryController();
94 
95  // Connect the geometry controller to the G4 user interface
96  IORTGeometryMessenger *geometryMessenger = new IORTGeometryMessenger(geometryController);
97 
98  // Initialize the default IORT geometry
99  geometryController->SetGeometry("default");
100 
101  runManager->SetUserInitialization(new IORTPhysicsList());
102 
103  // Initialize the primary particles
104  IORTPrimaryGeneratorAction *pPrimaryGenerator = new IORTPrimaryGeneratorAction();
105  runManager -> SetUserAction(pPrimaryGenerator);
106 
107  // Optional UserActions: run, event, stepping
108  IORTRunAction* pRunAction = new IORTRunAction();
109  runManager -> SetUserAction(pRunAction);
110 
111  IORTEventAction* pEventAction = new IORTEventAction();
112  runManager -> SetUserAction(pEventAction);
113 
114  IORTSteppingAction* steppingAction = new IORTSteppingAction(pRunAction);
115  runManager -> SetUserAction(steppingAction);
116 
117  // Visualization manager
118  G4VisManager* visManager = new G4VisExecutive;
119  visManager -> Initialize();
120 
121  G4UImanager* UImanager = G4UImanager::GetUIpointer();
122  if (argc!=1) // batch mode
123  {
124  G4String command = "/control/execute ";
125  G4String fileName = argv[1];
126  UImanager->ApplyCommand(command+fileName);
127  }
128  else
129  { // interactive mode : define UI session
130 
131  G4UIExecutive* ui = new G4UIExecutive(argc, argv);
132 
133  UImanager->ApplyCommand("/control/execute defaultMacro.mac");
134 
135  if (ui->IsGUI())
136  ui->SessionStart();
137  delete ui;
138  }
139 
140 
141  delete visManager;
142 
143  delete geometryMessenger;
144  delete geometryController;
145  delete runManager;
146  return 0;
147 
148 }
void Initialize()
Definition: errprop.cc:100