-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathtasks.C
69 lines (61 loc) · 2.14 KB
/
tasks.C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/// \file
/// \ingroup tutorial_legacy
/// Example of TTasks.
/// Create a hierarchy of objects derived from TTask in library Mytasks
/// Show the tasks in a browser.
/// To execute a Task, use the context context menu and select
/// the item "ExecuteTask"
/// see also other functions in the TTask context menu, such as
/// - setting a breakpoint in one or more tasks
/// - enabling/disabling one task, etc
///
/// As of 2021, tbb is a fine replacement for ROOT's task system. It
/// offers better interplay with non-ROOT multi-threading use cases.
///
/// \macro_code
///
/// \author Rene Brun
#ifndef __RUN_TASKS__
void tasks()
{
TString dir = gSystem->UnixPathName(__FILE__);
dir.ReplaceAll("tasks.C","");
dir.ReplaceAll("/./","/");
gROOT->LoadMacro(dir +"MyTasks.cxx+");
gROOT->ProcessLine("#define __RUN_TASKS__ 1");
gROOT->ProcessLine(TString("#include \"") + dir + "tasks.C\"");
gROOT->ProcessLine("runtasks()");
gROOT->ProcessLine("#undef __RUN_TASKS__");
}
#else
void runtasks()
//void tasks()
{
TTask *run = new MyRun("run","Process one run");
TTask *event = new MyEvent("event","Process one event");
TTask *geomInit = new MyGeomInit("geomInit","Geometry Initialisation");
TTask *matInit = new MyMaterialInit("matInit","Materials Initialisation");
TTask *tracker = new MyTracker("tracker","Tracker manager");
TTask *tpc = new MyRecTPC("tpc","TPC Reconstruction");
TTask *its = new MyRecITS("its","ITS Reconstruction");
TTask *muon = new MyRecMUON("muon","MUON Reconstruction");
TTask *phos = new MyRecPHOS("phos","PHOS Reconstruction");
TTask *rich = new MyRecRICH("rich","RICH Reconstruction");
TTask *trd = new MyRecTRD("trd","TRD Reconstruction");
TTask *global = new MyRecGlobal("global","Global Reconstruction");
run->Add(geomInit);
run->Add(matInit);
run->Add(event);
event->Add(tracker);
event->Add(global);
tracker->Add(tpc);
tracker->Add(its);
tracker->Add(muon);
tracker->Add(phos);
tracker->Add(rich);
tracker->Add(trd);
gROOT->GetListOfTasks()->Add(run);
gROOT->GetListOfBrowsables()->Add(run);
new TBrowser;
}
#endif