ROOT
Version v6.34
master
v6.32
v6.30
v6.28
v6.26
v6.24
v6.22
v6.20
v6.18
v6.16
v6.14
v6.12
v6.10
v6.08
v6.06
Reference Guide
►
ROOT
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
geant3tasks.C
Go to the documentation of this file.
1
/// \file
2
/// \ingroup tutorial_legacy
3
/// This script is a representation using TTasks of the Geant3 simulation program
4
/// This example uses directly TTask objects.
5
/// A real implementation would require one class per task derived from TTask.
6
///
7
/// \macro_code
8
///
9
/// \author Rene Brun
10
11
void
geant3tasks
()
12
{
13
TTask
*
geant3
=
new
TTask
(
"geant3"
,
"Geant3 simulation main program"
);
14
gROOT
->GetListOfTasks()->Add(
geant3
);
15
TTask
*
uginit
=
new
TTask
(
"uginit"
,
"Initialisation manager"
);
16
TTask
*
grun
=
new
TTask
(
"grun"
,
"Run manager"
);
17
TTask
*
uglast
=
new
TTask
(
"uglast"
,
"Termination manager"
);
18
geant3
->Add(
uginit
);
19
geant3
->Add(
grun
);
20
geant3
->Add(
uglast
);
21
TTask
*
ginit
=
new
TTask
(
"ginit"
,
"Geant3 initialisation"
);
22
TTask
*
ugeom
=
new
TTask
(
"ugeom"
,
"Geometry initialisation manager"
);
23
TTask
*
gphysi
=
new
TTask
(
"gphysi"
,
"Initialise cross-sections and energy loss tables"
);
24
TTask
*
ggclos
=
new
TTask
(
"ggclos"
,
"Geometry analyzer and optimizer"
);
25
uginit
->Add(
ginit
);
26
uginit
->Add(
ugeom
);
27
uginit
->Add(
gphysi
);
28
uginit
->Add(
ggclos
);
29
TTask
*
gtrigi
=
new
TTask
(
"gtrigi"
,
"Event initialisation"
);
30
TTask
*
gtrig
=
new
TTask
(
"gtrig"
,
"Event manager"
);
31
TTask
*
gtrigc
=
new
TTask
(
"gtrigc"
,
"Event cleaner"
);
32
grun
->Add(
gtrigi
);
33
grun
->Add(
gtrig
);
34
grun
->Add(
gtrigc
);
35
TTask
*
glast
=
new
TTask
(
"glast"
,
"Geant3 termination"
);
36
TTask
*
igend
=
new
TTask
(
"igend"
,
"Graphics package termination"
);
37
uglast
->Add(
glast
);
38
uglast
->Add(
igend
);
39
TTask
*
gukine
=
new
TTask
(
"gukine"
,
"Event generator manager"
);
40
TTask
*
gutrev
=
new
TTask
(
"gutrev"
,
"Event application manager"
);
41
TTask
*
gudigi
=
new
TTask
(
"gudigi"
,
"Event digitisation manager"
);
42
TTask
*
guout
=
new
TTask
(
"guout"
,
"Event termination manager"
);
43
gtrig
->Add(
gukine
);
44
gtrig
->Add(
gutrev
);
45
gtrig
->Add(
gudigi
);
46
gtrig
->Add(
guout
);
47
TTask
*
gtreve
=
new
TTask
(
"gtreve"
,
"Geant3 event manager"
);
48
gutrev
->Add(
gtreve
);
49
TTask
*
gltrac
=
new
TTask
(
"gltrac"
,
"Initialize tracking parameters"
);
50
TTask
*
gftrac
=
new
TTask
(
"gftrac"
,
"select next track segment from stack JTRACK"
);
51
TTask
*
gutrak
=
new
TTask
(
"gutrak"
,
"Application track manager"
);
52
gtreve
->Add(
gltrac
);
53
gtreve
->Add(
gftrac
);
54
gtreve
->Add(
gutrak
);
55
TTask
*
gtrack
=
new
TTask
(
"gtrack"
,
"Geant3 track manager"
);
56
gutrak
->Add(
gtrack
);
57
TTask
*
gtgama
=
new
TTask
(
"gtgama"
,
"photon propagator"
);
58
TTask
*
gtelec
=
new
TTask
(
"gtelec"
,
"electron propagator"
);
59
TTask
*
gtneut
=
new
TTask
(
"gtneut"
,
"neutron propagator"
);
60
TTask
*
gthadr
=
new
TTask
(
"gthadr"
,
"hadron propagator"
);
61
TTask
*
gtmuon
=
new
TTask
(
"gtmuon"
,
"muon propagator"
);
62
TTask
*
gtnino
=
new
TTask
(
"gtnino"
,
"geantino propagator"
);
63
TTask
*
gtckov
=
new
TTask
(
"gtckov"
,
"Cherenkov light propagator"
);
64
TTask
*
gthion
=
new
TTask
(
"gthion"
,
"heavy ion propagator"
);
65
TTask
*
gustep
=
new
TTask
(
"gustep"
,
"Application step manager"
);
66
TTask
*
gtmedi
=
new
TTask
(
"gtmedi"
,
"Geometry volume finder"
);
67
gtrack
->Add(
gtgama
);
68
gtrack
->Add(
gtelec
);
69
gtrack
->Add(
gtneut
);
70
gtrack
->Add(
gthadr
);
71
gtrack
->Add(
gtmuon
);
72
gtrack
->Add(
gtnino
);
73
gtrack
->Add(
gtckov
);
74
gtrack
->Add(
gthion
);
75
gtrack
->Add(
gustep
);
76
gtrack
->Add(
gtmedi
);
77
TTask
*
gtnext
=
new
TTask
(
"gtnext"
,
"Geometry bounary manager"
);
78
TTask
*
gpairg
=
new
TTask
(
"gpairg"
,
"Generate pair production"
);
79
TTask
*
gcomp
=
new
TTask
(
"gcomp"
,
"Generate Compton scattering"
);
80
TTask
*
gphot
=
new
TTask
(
"gphot"
,
"Generate photo effect"
);
81
TTask
*
grayl
=
new
TTask
(
"grayl"
,
"Generate Rayleigh effect"
);
82
TTask
*
gpfis
=
new
TTask
(
"gpfis"
,
"Generate photo fission"
);
83
gtgama
->Add(
gtnext
);
84
gtgama
->Add(
gpairg
);
85
gtgama
->Add(
gcomp
);
86
gtgama
->Add(
gphot
);
87
gtgama
->Add(
grayl
);
88
gtgama
->Add(
gpfis
);
89
TTask
*
guswim
=
new
TTask
(
"guswim"
,
"magnetic field propagator"
);
90
TTask
*
ggckov
=
new
TTask
(
"ggckov"
,
"Generate Cherenkov photons"
);
91
TTask
*
gsync
=
new
TTask
(
"gsync"
,
"Generate synchrotron radiation"
);
92
TTask
*
gmults
=
new
TTask
(
"gmults"
,
"Apply multiple scattering"
);
93
TTask
*
gbreme
=
new
TTask
(
"gbreme"
,
"Generate Bremsstrahlung"
);
94
TTask
*
gdray
=
new
TTask
(
"gdray"
,
"Generate delta ray"
);
95
TTask
*
ganni
=
new
TTask
(
"ganni"
,
"Generate Positron annihilation"
);
96
TTask
*
gannir
=
new
TTask
(
"gannir"
,
"Stopped tracks and annihilation at rest"
);
97
gtelec
->Add(
gtnext
);
98
gtelec
->Add(
guswim
);
99
gtelec
->Add(
ggckov
);
100
gtelec
->Add(
gsync
);
101
gtelec
->Add(
gmults
);
102
gtelec
->Add(
gbreme
);
103
gtelec
->Add(
gdray
);
104
gtelec
->Add(
ganni
);
105
gtelec
->Add(
gannir
);
106
TTask
*
guphad
=
new
TTask
(
"guphad"
,
"Hadronic cross-section manager"
);
107
TTask
*
guhadr
=
new
TTask
(
"guhadr"
,
"Hadronic cascade manager"
);
108
TTask
*
gdecay
=
new
TTask
(
"gdecay"
,
"Particle decay"
);
109
gtneut
->Add(
gtnext
);
110
gtneut
->Add(
guphad
);
111
gtneut
->Add(
guhadr
);
112
gtneut
->Add(
gdecay
);
113
114
gthadr
->Add(
gtnext
);
115
gthadr
->Add(
guphad
);
116
gthadr
->Add(
guswim
);
117
gthadr
->Add(
ggckov
);
118
gthadr
->Add(
gmults
);
119
gthadr
->Add(
guhadr
);
120
gthadr
->Add(
gdecay
);
121
gthadr
->Add(
gdray
);
122
TTask
*
gbremm
=
new
TTask
(
"gbremm"
,
"Generate Bremsstrahlung"
);
123
TTask
*
gpairm
=
new
TTask
(
"gpairm"
,
"Generate Pair production"
);
124
TTask
*
gmunu
=
new
TTask
(
"gmunu"
,
"Generate Nuclear interaction"
);
125
gtmuon
->Add(
gtnext
);
126
gtmuon
->Add(
guswim
);
127
gtmuon
->Add(
ggckov
);
128
gtmuon
->Add(
gmults
);
129
gtmuon
->Add(
gbremm
);
130
gtmuon
->Add(
gpairm
);
131
gtmuon
->Add(
gdecay
);
132
gtmuon
->Add(
gdray
);
133
gtmuon
->Add(
gmunu
);
134
gtmuon
->Add(
gdecay
);
135
136
gtnino
->Add(
gtnext
);
137
TTask
*
glisur
=
new
TTask
(
"glisur"
,
"Photon is reflected"
);
138
gtckov
->Add(
gtnext
);
139
gtckov
->Add(
glisur
);
140
141
gthion
->Add(
gtnext
);
142
gthion
->Add(
guswim
);
143
gthion
->Add(
gmults
);
144
gthion
->Add(
guhadr
);
145
gthion
->Add(
gdray
);
146
147
new
TBrowser
;
148
gDebug
= 2;
149
}
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
gDebug
Int_t gDebug
Definition
TROOT.cxx:597
gROOT
#define gROOT
Definition
TROOT.h:406
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
TBrowser
Using a TBrowser one can browse all ROOT objects.
Definition
TBrowser.h:37
TTask
<div class="legacybox"><h2>Legacy Code</h2> TTask is a legacy interface: there will be no bug fixes n...
Definition
TTask.h:35
ginit
static int ginit
Definition
rsalib.cxx:256
tutorials
legacy
geant3tasks.C
ROOT tags/6-34-04 - Reference Guide Generated on Wed Mar 26 2025 04:46:25 (GVA Time) using Doxygen 1.10.0