ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
ECCE @ EIC Software
Deprecated List
Modules
Namespaces
Classes
Files
File List
acts
analysis
coresoftware
Doxygen_Assist
ecce-detectors
fun4all_eicdetectors
geant4
tree
geant4-10.6-release
config
environments
examples
advanced
air_shower
amsEcal
brachytherapy
ChargeExchangeMC
composite_calorimeter
doiPET
eRosita
gammaknife
gammaray_telescope
hadrontherapy
human_phantom
iort_therapy
include
src
iort_therapy.cc
lAr_calorimeter
medical_linac
microbeam
microelectronics
nanobeam
purging_magnet
radioprotection
STCyclotron
underground_physics
xray_fluorescence
xray_telescope
basic
extended
source
macros
online_distribution
tutorials
doxygen_mainpage.h
File Members
External Links
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
iort_therapy.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file iort_therapy.cc
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// This is the *BASIC* version of IORT, a Geant4-based application
27
//
28
//
29
// ----------------------------------------------------------------------------
30
// GEANT 4 - IORT example
31
// ----------------------------------------------------------------------------
32
// Main Authors:
33
// G.Russo(a,b), C.Casarino*(c), G.C. Candiano(c), G.A.P. Cirrone(d), F.Romano(d)
34
//
35
// Contributor Authors:
36
// S.Guatelli(e)
37
//
38
// Past Authors:
39
// G.Arnetta(c), S.E.Mazzaglia(d)
40
//
41
// (a) Fondazione Istituto San Raffaele G.Giglio, Cefalù, Italy
42
//
43
// (b) IBFM-CNR , Segrate (Milano), Italy
44
//
45
// (c) LATO (Laboratorio di Tecnologie Oncologiche), Cefalù, Italy
46
//
47
// (d) Laboratori Nazionali del Sud of the INFN, Catania, Italy
48
//
49
// (e) University of Wollongong, Australia
50
//
51
//
52
// *Corresponding Author, email to carlo.casarino@polooncologicocefalu.it
53
// ----------------------------------------------------------------------------
54
55
#include "
G4RunManager.hh
"
56
#include "
G4UImanager.hh
"
57
#include "
G4PhysListFactory.hh
"
58
#include "
G4VModularPhysicsList.hh
"
59
#include "
IORTEventAction.hh
"
60
#include "
IORTPhysicsList.hh
"
61
#include "
IORTPrimaryGeneratorAction.hh
"
62
#include "
IORTRunAction.hh
"
63
#include "
Randomize.hh
"
64
#include "
G4RunManager.hh
"
65
#include "
G4UImessenger.hh
"
66
#include "
globals.hh
"
67
#include "
IORTSteppingAction.hh
"
68
#include "
IORTGeometryController.hh
"
69
#include "
IORTGeometryMessenger.hh
"
70
#include "
G4VisExecutive.hh
"
71
#include "
G4UIExecutive.hh
"
72
#include <ctime>
73
#include "
G4ScoringManager.hh
"
74
76
77
int
main
(
int
argc ,
char
** argv)
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
}
149
geant4
tree
geant4-10.6-release
examples
advanced
iort_therapy
iort_therapy.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:59
using
1.8.2 with
ECCE GitHub integration