This script is a representation using TTasks of the Geant3 simulation program This example uses directly TTask objects.
A real implementation would require one class per task derived from TTask.
void geant3tasks()
{
TTask *geant3 =
new TTask(
"geant3",
"Geant3 simulation main program");
gROOT->GetListOfTasks()->Add(geant3);
TTask *uginit =
new TTask(
"uginit",
"Initialisation manager");
TTask *uglast =
new TTask(
"uglast",
"Termination manager");
TTask *ugeom =
new TTask(
"ugeom",
"Geometry initialisation manager");
TTask *gphysi =
new TTask(
"gphysi",
"Initialise cross-sections and energy loss tables");
TTask *ggclos =
new TTask(
"ggclos",
"Geometry analyzer and optimizer");
TTask *gtrigi =
new TTask(
"gtrigi",
"Event initialisation");
TTask *gtrig =
new TTask(
"gtrig",
"Event manager");
TTask *gtrigc =
new TTask(
"gtrigc",
"Event cleaner");
TTask *glast =
new TTask(
"glast",
"Geant3 termination");
TTask *igend =
new TTask(
"igend",
"Graphics package termination");
TTask *gukine =
new TTask(
"gukine",
"Event generator manager");
TTask *gutrev =
new TTask(
"gutrev",
"Event application manager");
TTask *gudigi =
new TTask(
"gudigi",
"Event digitisation manager");
TTask *guout =
new TTask(
"guout",
"Event termination manager");
TTask *gtreve =
new TTask(
"gtreve",
"Geant3 event manager");
TTask *gltrac =
new TTask(
"gltrac",
"Initialize tracking parameters");
TTask *gftrac =
new TTask(
"gftrac",
"select next track segment from stack JTRACK");
TTask *gutrak =
new TTask(
"gutrak",
"Application track manager");
TTask *gtrack =
new TTask(
"gtrack",
"Geant3 track manager");
TTask *gtgama =
new TTask(
"gtgama",
"photon propagator");
TTask *gtelec =
new TTask(
"gtelec",
"electron propagator");
TTask *gtneut =
new TTask(
"gtneut",
"neutron propagator");
TTask *gthadr =
new TTask(
"gthadr",
"hadron propagator");
TTask *gtmuon =
new TTask(
"gtmuon",
"muon propagator");
TTask *gtnino =
new TTask(
"gtnino",
"geantino propagator");
TTask *gtckov =
new TTask(
"gtckov",
"Cherenkov light propagator");
TTask *gthion =
new TTask(
"gthion",
"heavy ion propagator");
TTask *gustep =
new TTask(
"gustep",
"Application step manager");
TTask *gtmedi =
new TTask(
"gtmedi",
"Geometry volume finder");
TTask *gtnext =
new TTask(
"gtnext",
"Geometry bounary manager");
TTask *gpairg =
new TTask(
"gpairg",
"Generate pair production");
TTask *gcomp =
new TTask(
"gcomp",
"Generate Compton scattering");
TTask *gphot =
new TTask(
"gphot",
"Generate photo effect");
TTask *grayl =
new TTask(
"grayl",
"Generate Rayleigh effect");
TTask *gpfis =
new TTask(
"gpfis",
"Generate photo fission");
TTask *guswim =
new TTask(
"guswim",
"magnetic field propagator");
TTask *ggckov =
new TTask(
"ggckov",
"Generate Cherenkov photons");
TTask *gsync =
new TTask(
"gsync",
"Generate synchrotron radiation");
TTask *gmults =
new TTask(
"gmults",
"Apply multiple scattering");
TTask *gbreme =
new TTask(
"gbreme",
"Generate Bremsstrahlung");
TTask *gdray =
new TTask(
"gdray",
"Generate delta ray");
TTask *ganni =
new TTask(
"ganni",
"Generate Positron annihilation");
TTask *gannir =
new TTask(
"gannir",
"Stopped tracks and annihilation at rest");
TTask *guphad =
new TTask(
"guphad",
"Hadronic cross-section manager");
TTask *guhadr =
new TTask(
"guhadr",
"Hadronic cascade manager");
TTask *gdecay =
new TTask(
"gdecay",
"Particle decay");
TTask *gbremm =
new TTask(
"gbremm",
"Generate Bremsstrahlung");
TTask *gpairm =
new TTask(
"gpairm",
"Generate Pair production");
TTask *gmunu =
new TTask(
"gmunu",
"Generate Nuclear interaction");
TTask *glisur =
new TTask(
"glisur",
"Photon is reflected");
}
Using a TBrowser one can browse all ROOT objects.
TTask is a base class that can be used to build a complex tree of Tasks.
virtual void Add(TTask *task)
- Author
- Rene Brun
Definition in file geant3tasks.C.