geant3tasks.C

Go to the documentation of this file.
00001 // @(#)root/tutorials:$Id: geant3tasks.C 20881 2007-11-19 11:23:56Z rdm $
00002 // Author: Rene Brun   02/09/2000
00003 void geant3tasks()
00004 {
00005 // this script is a representation using TTasks of the Geant3 simulation program
00006 // This example uses directly TTask objects.
00007 // A real implementation would require one class per task derived from TTask.
00008    
00009    TTask *geant3 = new TTask("geant3","Geant3 simulation main program");      
00010    gROOT->GetListOfTasks()->Add(geant3);
00011    TTask *uginit = new TTask("uginit","Initialisation manager");      
00012    TTask *grun   = new TTask("grun","Run manager");      
00013    TTask *uglast = new TTask("uglast","Termination manager");      
00014    geant3->Add(uginit);
00015    geant3->Add(grun);
00016    geant3->Add(uglast);
00017    TTask *ginit  = new TTask("ginit","Geant3 initialisation");      
00018    TTask *ugeom  = new TTask("ugeom","Geometry initialisation manager");      
00019    TTask *gphysi = new TTask("gphysi","Initialise cross-sections and energy loss tables");      
00020    TTask *ggclos = new TTask("ggclos","Geometry analyzer and optimizer");      
00021    uginit->Add(ginit);
00022    uginit->Add(ugeom);
00023    uginit->Add(gphysi);
00024    uginit->Add(ggclos);
00025    TTask *gtrigi = new TTask("gtrigi","Event initialisation");      
00026    TTask *gtrig  = new TTask("gtrig","Event manager");      
00027    TTask *gtrigc = new TTask("gtrigc","Event cleaner");      
00028    grun->Add(gtrigi);
00029    grun->Add(gtrig);
00030    grun->Add(gtrigc);
00031    TTask *glast  = new TTask("glast","Geant3 termination");      
00032    TTask *igend  = new TTask("igend","Graphics package termination");      
00033    uglast->Add(glast);
00034    uglast->Add(igend);
00035    TTask *gukine = new TTask("gukine","Event generator manager");      
00036    TTask *gutrev = new TTask("gutrev","Event application manager");      
00037    TTask *gudigi = new TTask("gudigi","Event digitisation manager");      
00038    TTask *guout  = new TTask("guout","Event termination manager");      
00039    gtrig->Add(gukine);
00040    gtrig->Add(gutrev);
00041    gtrig->Add(gudigi);
00042    gtrig->Add(guout);
00043    TTask *gtreve = new TTask("gtreve","Geant3 event manager");      
00044    gutrev->Add(gtreve);
00045    TTask *gltrac = new TTask("gltrac","Initialize tracking parameters");      
00046    TTask *gftrac = new TTask("gftrac","select next track segment from stack JTRACK");      
00047    TTask *gutrak = new TTask("gutrak","Application track manager");      
00048    gtreve->Add(gltrac);
00049    gtreve->Add(gftrac);
00050    gtreve->Add(gutrak);
00051    TTask *gtrack = new TTask("gtrack","Geant3 track manager");      
00052    gutrak->Add(gtrack);
00053    TTask *gtgama = new TTask("gtgama","photon propagator");      
00054    TTask *gtelec = new TTask("gtelec","electron propagator");      
00055    TTask *gtneut = new TTask("gtneut","neutron propagator");      
00056    TTask *gthadr = new TTask("gthadr","hadron propagator");      
00057    TTask *gtmuon = new TTask("gtmuon","muon propagator");      
00058    TTask *gtnino = new TTask("gtnino","geantino propagator");      
00059    TTask *gtckov = new TTask("gtckov","Cherenkov light propagator");      
00060    TTask *gthion = new TTask("gthion","heavy ion propagator");      
00061    TTask *gustep = new TTask("gustep","Application step manager");      
00062    TTask *gtmedi = new TTask("gtmedi","Geometry volume finder");      
00063    gtrack->Add(gtgama);
00064    gtrack->Add(gtelec);
00065    gtrack->Add(gtneut);
00066    gtrack->Add(gthadr);
00067    gtrack->Add(gtmuon);
00068    gtrack->Add(gtnino);
00069    gtrack->Add(gtckov);
00070    gtrack->Add(gthion);
00071    gtrack->Add(gustep);
00072    gtrack->Add(gtmedi);
00073    TTask *gtnext = new TTask("gtnext","Geometry bounary manager");      
00074    TTask *gpairg = new TTask("gpairg","Generate pair production");      
00075    TTask *gcomp  = new TTask("gcomp","Generate Compton scattering");      
00076    TTask *gphot  = new TTask("gphot","Generate photo effect");      
00077    TTask *grayl  = new TTask("grayl","Generate Rayleigh effect");      
00078    TTask *gpfis  = new TTask("gpfis","Generate photo fission");      
00079    gtgama->Add(gtnext);
00080    gtgama->Add(gpairg);
00081    gtgama->Add(gcomp);
00082    gtgama->Add(gphot);
00083    gtgama->Add(grayl);
00084    gtgama->Add(gpfis);
00085    TTask *guswim = new TTask("guswim","magnetic field propagator");      
00086    TTask *ggckov = new TTask("ggckov","Generate Cherenkov photons");      
00087    TTask *gsync  = new TTask("gsync","Generate synchrotron radiation");      
00088    TTask *gmults = new TTask("gmults","Apply multiple scattering");      
00089    TTask *gbreme = new TTask("gbreme","Generate Bremsstrahlung");      
00090    TTask *gdray  = new TTask("gdray","Generate delta ray");      
00091    TTask *ganni  = new TTask("ganni","Generate Positron annihilation");      
00092    TTask *gannir = new TTask("gannir","Stopped tracks and annihilation at rest");      
00093    gtelec->Add(gtnext);
00094    gtelec->Add(guswim);
00095    gtelec->Add(ggckov);
00096    gtelec->Add(gsync);
00097    gtelec->Add(gmults);
00098    gtelec->Add(gbreme);
00099    gtelec->Add(gdray);
00100    gtelec->Add(ganni);
00101    gtelec->Add(gannir);
00102    TTask *guphad = new TTask("guphad","Hadronic cross-section manager");      
00103    TTask *guhadr = new TTask("guhadr","Hadronic cascade manager");      
00104    TTask *gdecay = new TTask("gdecay","Particle decay");      
00105    gtneut->Add(gtnext);
00106    gtneut->Add(guphad);
00107    gtneut->Add(guhadr);
00108    gtneut->Add(gdecay);
00109 
00110    gthadr->Add(gtnext);
00111    gthadr->Add(guphad);
00112    gthadr->Add(guswim);
00113    gthadr->Add(ggckov);
00114    gthadr->Add(gmults);
00115    gthadr->Add(guhadr);
00116    gthadr->Add(gdecay);
00117    gthadr->Add(gdray);
00118    TTask *gbremm = new TTask("gbremm","Generate Bremsstrahlung");      
00119    TTask *gpairm = new TTask("gpairm","Generate Pair production");      
00120    TTask *gmunu  = new TTask("gmunu","Generate Nuclear interaction");      
00121    gtmuon->Add(gtnext);
00122    gtmuon->Add(guswim);
00123    gtmuon->Add(ggckov);
00124    gtmuon->Add(gmults);
00125    gtmuon->Add(gbremm);
00126    gtmuon->Add(gpairm);
00127    gtmuon->Add(gdecay);
00128    gtmuon->Add(gdray);
00129    gtmuon->Add(gmunu);
00130    gtmuon->Add(gdecay);
00131 
00132    gtnino->Add(gtnext);
00133    TTask *glisur = new TTask("glisur","Photon is reflected");      
00134    gtckov->Add(gtnext);
00135    gtckov->Add(glisur);
00136 
00137    gthion->Add(gtnext);
00138    gthion->Add(guswim);
00139    gthion->Add(gmults);
00140    gthion->Add(guhadr);
00141    gthion->Add(gdray);
00142 
00143    new TBrowser;
00144    gDebug = 2;
00145 }      

Generated on Tue Jul 5 15:44:11 2011 for ROOT_528-00b_version by  doxygen 1.5.1