diff --git a/tutorials/benchmarks.C b/tutorials/benchmarks.C index 69659cf9f58c2b449b43d99cba120ae5137be223..98fa13a90c1404e526f6342be8197fee82482e06 100644 --- a/tutorials/benchmarks.C +++ b/tutorials/benchmarks.C @@ -1,3 +1,13 @@ +/// \file +/// \ingroup Tutorials +/// This macro run several tests and produces an benchmark report. +/// +/// \macro_image +/// \macro_output +/// \macro_code +/// +/// \author Rene Brun + TCanvas* bench1 = 0; void bexec(TString &dir,const char *macro) diff --git a/tutorials/demos.C b/tutorials/demos.C index 391bcd3c3fb6b6f8d9236387fe91db16c288e1db..2c079d1a95c6ce61af62a39bae9a0de1a74c6b32 100644 --- a/tutorials/demos.C +++ b/tutorials/demos.C @@ -1,7 +1,13 @@ -{ - // This macro shows a control bar o run some of the ROOT tutorials. - // To execute an item, click with the left mouse button. +/// \file +/// \ingroup Tutorials +/// This macro shows a control bar to run some of the ROOT tutorials. +/// To execute an item, click with the left mouse button. +/// +/// \macro_code +/// +/// \author Rene Brun +{ gROOT->Reset(); //Add the tutorials directory to the macro path diff --git a/tutorials/demoshelp.C b/tutorials/demoshelp.C index 813bd97b4194fede1f6fa8483a942b15096f5b8d..52674fb77d0f0b546c90e5e5ffc1338be1929ae3 100644 --- a/tutorials/demoshelp.C +++ b/tutorials/demoshelp.C @@ -1,3 +1,11 @@ +/// \file +/// \ingroup Tutorials +/// This macro shows help on running the Demos. +/// +/// \macro_code +/// +/// \author Rene Brun + void demoshelp() { // new TCanvas("chelp","Help to run demos",200,10,700,500); diff --git a/tutorials/geant3tasks.C b/tutorials/geant3tasks.C index c6e324724fd008a163d5e464dd08f78df485651f..9e685dd6f7994da2b221c052c3eeaabd7d16203c 100644 --- a/tutorials/geant3tasks.C +++ b/tutorials/geant3tasks.C @@ -1,11 +1,15 @@ -// @(#)root/tutorials:$Id$ -// Author: Rene Brun 02/09/2000 +/// \file +/// \ingroup Tutorials +/// 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. +/// +/// \macro_code +/// +/// \author Rene Brun + void geant3tasks() { -// 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. - TTask *geant3 = new TTask("geant3","Geant3 simulation main program"); gROOT->GetListOfTasks()->Add(geant3); TTask *uginit = new TTask("uginit","Initialisation manager"); diff --git a/tutorials/htmlex.C b/tutorials/htmlex.C index 338dcad3e1850534199929fdcfa9fdbcdf69f5e0..69354b1b6a4d5d20c490a1a5a917305a6c42cdb1 100644 --- a/tutorials/htmlex.C +++ b/tutorials/htmlex.C @@ -1,23 +1,22 @@ - -// This file demonstrates how THtml can document sources. -// BEGIN_HTML <!-- -/* --> -<p>See the <a href=http://root.cern.ch/root/doc/RootDoc.html">Users Guide</a> -chapter <a href="ftp://root.cern.ch/root/doc/chapter28.pdf">Automatic HTML Documentation</a>, -and <a href="http://root.cern.ch/root/html/THtml.html">THtml's class documentation</a>. -There's also a version of this file in HTML, i.e. the output of THtmlDemo::Convert(), -at <a href="http://root.cern.ch/root/html/examples/htmlex.C.html"> -http://root.cern.ch/root/html/examples/htmlex.C.html</a></p> - -<p>To see this demo script in action start up ROOT and run -<pre> root [0] .x $(ROOTSYS)/tutorials/htmlex.C+</pre> -and check the output in ./htmldoc.</p> - -<p>O, and of course we can put HTML code into comments, too:</p> - <img src="http://root.cern.ch/root/images/twiki-rootlogo.jpg"/> -<p>Actually, all of this documentation is already HTML!</p> -<!-- */ -// --> END_HTML +/// \file +/// \ingroup Tutorials +/// This file demonstrates how THtml can document sources. +/// +/// See the [Users Guide](https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuide.html) +/// chapter [Automatic HTML Documentation](https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuideChapters/HTMLDoc.pdf), +/// and [THtml's class documentation](https://root.cern.ch/doc/master/classTHtml.html). +/// +/// To see this demo script in action start up ROOT and run +/// ~~~ {.cpp} +/// root [0] .x $(ROOTSYS)/tutorials/htmlex.C+ +/// ~~~ +/// and check the output in `./htmldoc`. +/// +/// and of course we can put HTML code into comments, too. +/// +/// \macro_code +/// +/// \author Axel Naumann #include "THtml.h" diff --git a/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C b/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C index 87dfd2272fc80f31081b20485bcc675e2eed6ddb..d6dc9ad0cae6739ea778184cfa2a688ca902aec1 100644 --- a/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C +++ b/tutorials/multicore/mp102_readNtuplesFillHistosAndFit.C @@ -4,9 +4,8 @@ /// We express parallelism with multiprocessing as it is done with multithreading /// in mt102_readNtuplesFillHistosAndFit. /// -/// \macro_output /// \macro_code - +/// /// \author Danilo Piparo Int_t mp102_readNtuplesFillHistosAndFit() diff --git a/tutorials/multicore/mp201_parallelHistoFill.C b/tutorials/multicore/mp201_parallelHistoFill.C index 34e9395034b360e7b756a969bef9d3c922d6b9a9..3cef48105d133cb2827f4f2284dbdc0a93267f62 100644 --- a/tutorials/multicore/mp201_parallelHistoFill.C +++ b/tutorials/multicore/mp201_parallelHistoFill.C @@ -6,6 +6,7 @@ /// /// \macro_image /// \macro_code +/// /// \author Danilo Piparo const UInt_t poolSize = 4U; diff --git a/tutorials/multicore/mt201_parallelHistoFill.C b/tutorials/multicore/mt201_parallelHistoFill.C index 3c351215d0c560665121b9b1350440a4f8ba32d9..28eec83ae7359ceaf52f2d16e591e4613550ed9b 100644 --- a/tutorials/multicore/mt201_parallelHistoFill.C +++ b/tutorials/multicore/mt201_parallelHistoFill.C @@ -1,6 +1,6 @@ /// \file /// \ingroup tutorial_multicore -/// Parallel fill of a histogram +/// Parallel fill of a histogram. /// This tutorial shows how a histogram can be filled in parallel /// with a multithreaded approach. The difference with the multiprocess case, /// see mp201, is that here we cannot count on the copy-on-write mechanism, but @@ -11,6 +11,7 @@ /// /// \macro_image /// \macro_code +/// /// \author Danilo Piparo const UInt_t poolSize = 4U; diff --git a/tutorials/multicore/mtbb201_parallelHistoFill.C b/tutorials/multicore/mtbb201_parallelHistoFill.C index 30d248cf3d32c9a2ac43d44457ac9fec2b718112..9b1580155bdd31e67d6b1bdc3502327a1a4525bb 100644 --- a/tutorials/multicore/mtbb201_parallelHistoFill.C +++ b/tutorials/multicore/mtbb201_parallelHistoFill.C @@ -1,11 +1,12 @@ /// \file /// \ingroup tutorial_multicore -/// Parallel fill of a histogram +/// Parallel fill of a histogram. /// This tutorial shows how a histogram can be filled in parallel /// with a multiprocess approach. /// /// \macro_image /// \macro_code +/// /// \author Danilo Piparo. const UInt_t poolSize = 4U; diff --git a/tutorials/regexp_pme.C b/tutorials/regexp_pme.C index 3b9ab8187fbbf0ead84e4fcc1b332876c169e1e5..f70b0258ec4b3b0f423e5669b2edf6d38368a634 100644 --- a/tutorials/regexp_pme.C +++ b/tutorials/regexp_pme.C @@ -1,11 +1,14 @@ -//------------------------------------------------------------------------------------------- -// -// class TPMERegexp - API similar to PME - PCRE Made Easy -// Tries to be as close as possible to PERL syntax and functionality. -// -// Extension of TPRegexp class, see also macro 'regexp.C'. -// -//------------------------------------------------------------------------------------------- +/// \file +/// \ingroup Tutorials +/// Class TPMERegexp - API similar to PME - PCRE Made Easy +/// Tries to be as close as possible to PERL syntax and functionality. +/// +/// Extension of TPRegexp class, see also macro 'regexp.C'. +/// +/// \macro_output +/// \macro_code +/// +/// \author Eddy Offermann void regexp_pme() { diff --git a/tutorials/rootalias.C b/tutorials/rootalias.C index edfc1709003ca0dbdb9d3968ac3d2c2e32a3b600..f8b845fc87f6f07752e4b11bd4fa5d15b83891c9 100644 --- a/tutorials/rootalias.C +++ b/tutorials/rootalias.C @@ -1,3 +1,15 @@ +/// \file +/// \ingroup Tutorials +/// Defines aliases: +/// - `ls(path)` +/// - `edit(filename)` +/// - `dir(path)` +/// - `pwd()` +/// - `cd(path)` +/// +/// \macro_code +/// +/// \author Rene Brun //______________________________________________________________________________ void edit(char *file) diff --git a/tutorials/rootenv.C b/tutorials/rootenv.C index 652310a4a8985945722503569671bd2a0c0c2401..76fe140f1958e89eab5bae5b9d2f3a2ff213cfb7 100644 --- a/tutorials/rootenv.C +++ b/tutorials/rootenv.C @@ -1,137 +1,146 @@ +/// \file +/// \ingroup Tutorials +/// Produce a picture of the ROOT environment. +/// +/// \macro_image +/// \macro_code +/// +/// \author Rene Brun + { -gROOT->Reset(); -c1 = new TCanvas("c1","ROOT Environment Canvas",720,840); -c1->Range(0,-0.25,19,29); -TPaveLabel title(3,27.1,15,28.7,"ROOT Environment and Tools"); -title.SetFillColor(42); -title.SetTextColor(5); -title.SetTextFont(62); -title.Draw(); + gROOT->Reset(); + c1 = new TCanvas("c1","ROOT Environment Canvas",720,840); + c1->Range(0,-0.25,19,29); + TPaveLabel title(3,27.1,15,28.7,"ROOT Environment and Tools"); + title.SetFillColor(42); + title.SetTextColor(5); + title.SetTextFont(62); + title.Draw(); -// -TArrow ardash(2,15,2,3.5,0.015,"|>"); -ardash.SetLineStyle(2); -ardash.SetFillColor(1); -ardash.Draw(); -TLine l1(2.5,4.5,15.5,4.5); -l1.Draw(); -l1.DrawLine(4.5,15,4.5,11); -l1.DrawLine(13,10,13,15.5); -l1.DrawLine(14,10,13,10); -l1.DrawLine(14,15.5,13,15.5); -TArrow ar(9,23,9,21.6,0.015,"|>"); -ar.SetFillColor(1); -// -TPavesText UserChtml(0.5,0.5,4.5,3,5,"tr"); -UserChtml.AddText("Files with hyperlinks"); -TText *t1=UserChtml.AddText("*User.C.html"); -TText *t2=UserChtml.AddText("*User.mac.html"); -t1->SetTextColor(4); -t2->SetTextColor(4); -UserChtml.Draw(); -ar.DrawArrow(2.5,4.5,2.5,3.5,0.015,"|>"); -// -TPavesText UserTree(7,0.5,11,3,5,"tr"); -UserTree.AddText("Dictionary"); -UserTree.AddText("Inheritance graphs"); -TText *t3=UserTree.AddText("*User_Tree.ps"); -t3->SetTextColor(4); -UserTree.Draw(); -ar.DrawArrow(9,5.5,9,3.5,0.015,"|>"); -// -TPavesText Userhtml(13.5,0.5,17.5,3,5,"tr"); -Userhtml.AddText("Class Description"); -Userhtml.AddText("with references"); -TText *t4=Userhtml.AddText("*User.html"); -t4->SetTextColor(4); -Userhtml.Draw(); -ar.DrawArrow(15.5,4.5,15.5,3.5,0.015,"|>"); -// -TPavesText Macros(0.5,8,3.5,11,5,"tr"); -Macros.AddText("Macros"); -Macros.AddText("Log files"); -TText *t5=Macros.AddText("*User.mac"); -TText *t5a=Macros.AddText("*User.log"); -t5->SetTextColor(4); -t5a->SetTextColor(4); -Macros.Draw(); -// -TPavesText UserC(1,15,5,18,5,"tr"); -UserC.AddText("C++ application"); -UserC.AddText("source code"); -TText *t6=UserC.AddText("*User.C"); -t6->SetTextColor(4); -UserC.Draw(); -ar.DrawArrow(4.5,11,5.8,11,0.015,"|>"); -// -TPavesText Userh(6,23,12,26,5,"tr"); -Userh.AddText("C++ header files"); -TText *t7=Userh.AddText("*User.h"); -t7->SetTextColor(4); -Userh.SetFillColor(11); -Userh.Draw(); -ar.DrawArrow(9,23,9,21.6,0.015,"|>"); -// -TPavesText UserUI(6.5,14,11.5,17,5,"tr"); -UserUI.AddText("C++ code for"); -UserUI.AddText("User Interface and I/O"); -TText *t8=UserUI.AddText("*UserUI.C"); -t8->SetTextColor(4); -UserUI.Draw(); -ar.DrawArrow(9,18.5,9,17.3,0.015,"|>"); -ar.DrawArrow(9,14,9,12.6,0.015,"|>"); -// -TPavesText Usersl(14,14,17.5,17,5,"tr"); -Usersl.AddText("User"); -Usersl.AddText("Libraries"); -TText *t9=Usersl.AddText("*User.sl"); -t9->SetTextColor(4); -Usersl.Draw(); -ar.DrawArrow(13,11,12.1,11,0.015,"|>"); -// -TPavesText Rootlib(14,8.5,17.5,11.5,5,"tr"); -Rootlib.AddText("Root Library"); -Rootlib.AddText("and Includes"); -TText *t10=Rootlib.AddText("Root.sl"); -TText *t11=Rootlib.AddText("Root/include"); -t10->SetTextColor(4); -t11->SetTextColor(4); -Rootlib.Draw(); -// -TEllipse dict(9,20,3,1.5); -dict.SetFillColor(43); -dict.SetFillStyle(1001); -dict.SetLineColor(1); -dict.SetLineWidth(3); -dict.Draw(); -TText gen(9,20.7,"rootcint"); -gen.SetTextAlign(22); -gen.SetTextSize(0.025); -gen.Draw(); -gen.DrawText(9,19.5,"ROOT compiler"); -ar.DrawArrow(9,18.5,9,17.3,0.015,"|>"); -// -TEllipse compiler(9,11,3,1.5); -compiler.SetFillColor(43); -compiler.SetFillStyle(1001); -compiler.SetLineColor(1); -compiler.SetLineWidth(3); -compiler.Draw(); -TText gen2(9,11.4,"C++ compiler"); -gen2.SetTextAlign(22); -gen2.SetTextSize(0.025); -gen2.Draw(); -gen2.DrawText(9,10.3,"and Linker"); -ar.DrawArrow(9,9.5,9,8.2,0.015,"|>"); -// -TPaveText exe(6,5.5,12,8); -exe.SetFillColor(41); -exe.AddText("ROOT-based Application"); -exe.AddText("Interactive or Batch"); -TText *t12=exe.AddText("User.exe"); -t12->SetTextColor(2); -exe.Draw(); + // + TArrow ardash(2,15,2,3.5,0.015,"|>"); + ardash.SetLineStyle(2); + ardash.SetFillColor(1); + ardash.Draw(); + TLine l1(2.5,4.5,15.5,4.5); + l1.Draw(); + l1.DrawLine(4.5,15,4.5,11); + l1.DrawLine(13,10,13,15.5); + l1.DrawLine(14,10,13,10); + l1.DrawLine(14,15.5,13,15.5); + TArrow ar(9,23,9,21.6,0.015,"|>"); + ar.SetFillColor(1); + // + TPavesText UserChtml(0.5,0.5,4.5,3,5,"tr"); + UserChtml.AddText("Files with hyperlinks"); + TText *t1=UserChtml.AddText("*User.C.html"); + TText *t2=UserChtml.AddText("*User.mac.html"); + t1->SetTextColor(4); + t2->SetTextColor(4); + UserChtml.Draw(); + ar.DrawArrow(2.5,4.5,2.5,3.5,0.015,"|>"); + // + TPavesText UserTree(7,0.5,11,3,5,"tr"); + UserTree.AddText("Dictionary"); + UserTree.AddText("Inheritance graphs"); + TText *t3=UserTree.AddText("*User_Tree.ps"); + t3->SetTextColor(4); + UserTree.Draw(); + ar.DrawArrow(9,5.5,9,3.5,0.015,"|>"); + // + TPavesText Userhtml(13.5,0.5,17.5,3,5,"tr"); + Userhtml.AddText("Class Description"); + Userhtml.AddText("with references"); + TText *t4=Userhtml.AddText("*User.html"); + t4->SetTextColor(4); + Userhtml.Draw(); + ar.DrawArrow(15.5,4.5,15.5,3.5,0.015,"|>"); + // + TPavesText Macros(0.5,8,3.5,11,5,"tr"); + Macros.AddText("Macros"); + Macros.AddText("Log files"); + TText *t5=Macros.AddText("*User.mac"); + TText *t5a=Macros.AddText("*User.log"); + t5->SetTextColor(4); + t5a->SetTextColor(4); + Macros.Draw(); + // + TPavesText UserC(1,15,5,18,5,"tr"); + UserC.AddText("C++ application"); + UserC.AddText("source code"); + TText *t6=UserC.AddText("*User.C"); + t6->SetTextColor(4); + UserC.Draw(); + ar.DrawArrow(4.5,11,5.8,11,0.015,"|>"); + // + TPavesText Userh(6,23,12,26,5,"tr"); + Userh.AddText("C++ header files"); + TText *t7=Userh.AddText("*User.h"); + t7->SetTextColor(4); + Userh.SetFillColor(11); + Userh.Draw(); + ar.DrawArrow(9,23,9,21.6,0.015,"|>"); + // + TPavesText UserUI(6.5,14,11.5,17,5,"tr"); + UserUI.AddText("C++ code for"); + UserUI.AddText("User Interface and I/O"); + TText *t8=UserUI.AddText("*UserUI.C"); + t8->SetTextColor(4); + UserUI.Draw(); + ar.DrawArrow(9,18.5,9,17.3,0.015,"|>"); + ar.DrawArrow(9,14,9,12.6,0.015,"|>"); + // + TPavesText Usersl(14,14,17.5,17,5,"tr"); + Usersl.AddText("User"); + Usersl.AddText("Libraries"); + TText *t9=Usersl.AddText("*User.sl"); + t9->SetTextColor(4); + Usersl.Draw(); + ar.DrawArrow(13,11,12.1,11,0.015,"|>"); + // + TPavesText Rootlib(14,8.5,17.5,11.5,5,"tr"); + Rootlib.AddText("Root Library"); + Rootlib.AddText("and Includes"); + TText *t10=Rootlib.AddText("Root.sl"); + TText *t11=Rootlib.AddText("Root/include"); + t10->SetTextColor(4); + t11->SetTextColor(4); + Rootlib.Draw(); + // + TEllipse dict(9,20,3,1.5); + dict.SetFillColor(43); + dict.SetFillStyle(1001); + dict.SetLineColor(1); + dict.SetLineWidth(3); + dict.Draw(); + TText gen(9,20.7,"rootcint"); + gen.SetTextAlign(22); + gen.SetTextSize(0.025); + gen.Draw(); + gen.DrawText(9,19.5,"ROOT compiler"); + ar.DrawArrow(9,18.5,9,17.3,0.015,"|>"); + // + TEllipse compiler(9,11,3,1.5); + compiler.SetFillColor(43); + compiler.SetFillStyle(1001); + compiler.SetLineColor(1); + compiler.SetLineWidth(3); + compiler.Draw(); + TText gen2(9,11.4,"C++ compiler"); + gen2.SetTextAlign(22); + gen2.SetTextSize(0.025); + gen2.Draw(); + gen2.DrawText(9,10.3,"and Linker"); + ar.DrawArrow(9,9.5,9,8.2,0.015,"|>"); + // + TPaveText exe(6,5.5,12,8); + exe.SetFillColor(41); + exe.AddText("ROOT-based Application"); + exe.AddText("Interactive or Batch"); + TText *t12=exe.AddText("User.exe"); + t12->SetTextColor(2); + exe.Draw(); -c1->Modified(); -c1->Print("rootenv.ps"); + c1->Modified(); + c1->Print("rootenv.ps"); } diff --git a/tutorials/rootlogoff.C b/tutorials/rootlogoff.C index 96bddcc64076d45e2ace78d6838d8cd86b583c93..3a770ef7548c32bbadcf3619288fd2e145943d14 100644 --- a/tutorials/rootlogoff.C +++ b/tutorials/rootlogoff.C @@ -1,3 +1,13 @@ +/// \file +/// \ingroup Tutorials +/// Example of `rootlogoff.C`. +/// The macro `rootlogoff.C` in the current working directory, is executed when +/// `root` finishes. +/// +/// \macro_code +/// +/// \author Rene Brun + { printf("\nTaking a break from ROOT? Hope to see you back!\n\n"); } diff --git a/tutorials/rootlogon.C b/tutorials/rootlogon.C index cb989bad206d2ab61bcaed1fb2212c902bb9861c..94a729146e158e8331c28bd74f901f78a2378723 100644 --- a/tutorials/rootlogon.C +++ b/tutorials/rootlogon.C @@ -1,3 +1,13 @@ +/// \file +/// \ingroup Tutorials +/// Example of `rootlogon.C`. +/// The macro `rootlogon.C` in the current working directory, is executed when +/// `root` starts unless the option `-n` is used. +/// +/// \macro_code +/// +/// \author Rene Brun + { printf("\nWelcome to the ROOT tutorials\n\n"); printf("\nType \".x demos.C\" to get a toolbar from which to execute the demos\n"); diff --git a/tutorials/rootmarks.C b/tutorials/rootmarks.C index 95e60f774fe33e211b9c33e6e9e0c5b2e29e7403..c495aacbf4d10163c62819317a4b1187cbd690d9 100644 --- a/tutorials/rootmarks.C +++ b/tutorials/rootmarks.C @@ -1,10 +1,18 @@ +/// \file +/// \ingroup Tutorials +/// Prints a summary of all ROOT benchmarks (must be run before). +/// The ROOTMARK number printed is by reference to a Pentium IV 2.4 Ghz +/// (with 512 MBytes memory and 120 GBytes IDE disk) +/// taken by definition as 600 ROOTMARKS in batch mode in executing +/// +/// root -b -q benchmarks.C +/// +/// \macro_code +/// +/// \author Rene Brun + void rootmarks() { -// Prints a summary of all ROOT benchmarks (must be run before) -// The ROOTMARK number printed is by reference to a Pentium IV 2.4 Ghz -// (with 512 MBytes memory and 120 GBytes IDE disk) -// taken by definition as 600 ROOTMARKS in batch mode in executing -// root -b -q benchmarks.C -// + Float_t rtall = 0; Float_t cpall = 0; diff --git a/tutorials/tasks.C b/tutorials/tasks.C index ac2d73efd3f4c348554b9b23d5a12226fc3f52f8..62cd329a31ef3e43734c6ccbdd38cb732660b619 100644 --- a/tutorials/tasks.C +++ b/tutorials/tasks.C @@ -1,12 +1,18 @@ -// 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 -//Author: Rene Brun +/// \file +/// \ingroup Tutorials +/// 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 +/// +/// \macro_code +/// +/// \author Rene Brun + #ifndef __RUN_TASKS__ void tasks()