00001
00002
00003 void geant3tasks()
00004 {
00005
00006
00007
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 }