Logo ROOT  
Reference Guide
TROOT.h
Go to the documentation of this file.
1// @(#)root/base:$Id$
2// Author: Rene Brun 08/12/94
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TROOT
13#define ROOT_TROOT
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TROOT //
19// //
20// The TROOT object is the entry point to the system. //
21// The single instance of TROOT is accessible via the global gROOT. //
22// Using the gROOT pointer one has access to basically every object //
23// created in a ROOT based program. The TROOT object is essentially a //
24// "dispatcher" with several lists pointing to the ROOT main objects. //
25// //
26//////////////////////////////////////////////////////////////////////////
27
28#include "TDirectory.h"
29#include "TList.h"
30#include "RConfigure.h"
31
32#include <atomic>
33#include <string>
34#include <vector>
35
36class TClass;
37class TCanvas;
38class TColor;
39class TDataType;
40class TFile;
41class TStyle;
42class TVirtualPad;
43class TApplication;
44class TInterpreter;
45class TBrowser;
46class TGlobal;
47class TFunction;
48class TFolder;
49class TPluginManager;
50class TProcessUUID;
51class TClassGenerator;
52class TVirtualMutex;
53class TROOT;
55class TListOfEnums;
60
62
63namespace ROOT {
64namespace Internal {
65 class TROOTAllocator;
66
67 TROOT *GetROOT2();
68
69 // Manage parallel branch processing
74 public:
77 };
78} } // End ROOT::Internal
79
80namespace ROOT {
81 // Enable support for multi-threading within the ROOT code,
82 // in particular, enables the global mutex to make ROOT thread safe/aware.
83 void EnableThreadSafety();
84 /// \brief Enable ROOT's implicit multi-threading for all objects and methods that provide an internal
85 /// parallelisation mechanism.
86 void EnableImplicitMT(UInt_t numthreads = 0);
87 void DisableImplicitMT();
89 UInt_t GetImplicitMTPoolSize() R__DEPRECATED(6, 24, "Please use ROOT::GetThreadPoolSize() instead");
91}
92
93class TROOT : public TDirectory {
94
95friend class TCling;
97
98private:
99 Int_t fLineIsProcessing; //To synchronize multi-threads
100
101 static Int_t fgDirLevel; //Indentation level for ls()
102 static Bool_t fgRootInit; //Singleton initialization flag
103 static Bool_t fgMemCheck; //Turn on memory leak checker
104
105 TROOT(const TROOT&); //Not implemented
106 TROOT& operator=(const TROOT&); //Not implemented
107
108protected:
109 typedef std::atomic<TListOfEnums*> AListOfEnums_t;
110
111 TString fConfigOptions; //ROOT ./configure set build options
112 TString fConfigFeatures; //ROOT ./configure detected build features
113 TString fVersion; //ROOT version (from CMZ VERSQQ) ex 0.05/01
114 Int_t fVersionInt; //ROOT version in integer format (501)
115 Int_t fVersionCode; //ROOT version code as used in RVersion.h
116 Int_t fVersionDate; //Date of ROOT version (ex 951226)
117 Int_t fVersionTime; //Time of ROOT version (ex 1152)
118 Int_t fBuiltDate; //Date of ROOT built
119 Int_t fBuiltTime; //Time of ROOT built
120 TString fGitCommit; //Git commit SHA1 of built
121 TString fGitBranch; //Git branch
122 TString fGitDate; //Date and time when make was run
123 Int_t fTimer; //Timer flag
124 std::atomic<TApplication*> fApplication; //Pointer to current application
125 TInterpreter *fInterpreter; //Command interpreter
126 Bool_t fBatch; //True if session without graphics
127 TString fWebDisplay; //If not empty it defines where web graphics should be rendered (cef, qt5, browser...)
128 Bool_t fIsWebDisplay; //True if session with graphics on web
129 Bool_t fIsWebDisplayBatch; //True if session with graphics on web and batch mode
130 Bool_t fEditHistograms; //True if histograms can be edited with the mouse
131 Bool_t fFromPopUp; //True if command executed from a popup menu
132 Bool_t fMustClean; //True if object destructor scans canvases
133 Bool_t fReadingObject; //True while reading an object [Deprecated (will be removed in next release)
134 Bool_t fForceStyle; //Force setting of current style when reading objects
135 Bool_t fInterrupt; //True if macro should be interrupted
136 Bool_t fEscape; //True if ESC has been pressed
137 Bool_t fExecutingMacro; //True while executing a TMacro
138 Int_t fEditorMode; //Current Editor mode
139 const TObject *fPrimitive; //Currently selected primitive
140 TVirtualPad *fSelectPad; //Currently selected pad
141 TCollection *fClasses; //List of classes definition
142 TCollection *fTypes; //List of data types definition
143 TListOfFunctionTemplates *fFuncTemplate; //List of global function templates
144 TListOfDataMembers*fGlobals; //List of global variables
145 TListOfFunctions*fGlobalFunctions; //List of global functions
146 TSeqCollection *fClosedObjects; //List of closed objects from the list of files and sockets, so we can delete them if neededCl.
147 TSeqCollection *fFiles; //List of files
148 TSeqCollection *fMappedFiles; //List of memory mapped files
149 TSeqCollection *fSockets; //List of network sockets
150 TSeqCollection *fCanvases; //List of canvases
151 TSeqCollection *fStyles; //List of styles
152 TCollection *fFunctions; //List of analytic functions
153 TSeqCollection *fTasks; //List of tasks
154 TSeqCollection *fColors; //List of colors
155 TSeqCollection *fGeometries; //List of geometries
156 TSeqCollection *fBrowsers; //List of browsers
157 TSeqCollection *fSpecials; //List of special objects
158 TSeqCollection *fCleanups; //List of recursiveRemove collections
159 TSeqCollection *fMessageHandlers; //List of message handlers
160 TSeqCollection *fStreamerInfo; //List of active StreamerInfo classes
161 TCollection *fClassGenerators; //List of user defined class generators;
162 TSeqCollection *fSecContexts; //List of security contexts (TSecContext)
163 TSeqCollection *fProofs; //List of proof sessions
164 TSeqCollection *fClipboard; //List of clipboard objects
165 TSeqCollection *fDataSets; //List of data sets (TDSet or TChain)
166 AListOfEnums_t fEnums; //List of enum types
167 TProcessUUID *fUUIDs; //Pointer to TProcessID managing TUUIDs
168 TFolder *fRootFolder; //top level folder //root
169 TList *fBrowsables; //List of browsables
170 TPluginManager *fPluginManager; //Keeps track of plugin library handlers
171 TString fCutClassName; //Name of default CutG class in graphics editor
172 TString fDefCanvasName; //Name of default canvas
173
174 TROOT(); //Only used by Dictionary
175 void InitSystem(); //Operating System interface
176 void InitThreads(); //Initialize threads library
177 void InitInterpreter(); //Initialize interpreter (cling)
178 void ReadGitInfo(); //Read Git commit SHA1 and branch name
179 void *operator new(size_t l) { return TObject::operator new(l); }
180 void *operator new(size_t l, void *ptr) { return TObject::operator new(l,ptr); }
181
182 friend class ::ROOT::Internal::TROOTAllocator;
183
184 TListOfFunctions*GetGlobalFunctions();
185
186public:
187
188 typedef std::vector<std::pair<std::string, int> > FwdDeclArgsToKeepCollection_t;
189
190 TROOT(const char *name, const char *title, VoidFuncPtr_t *initfunc = 0);
191 virtual ~TROOT();
192 void AddClass(TClass *cl);
193 void AddClassGenerator(TClassGenerator *gen);
194 virtual void Append(TObject *obj, Bool_t replace = kFALSE);
195 void Browse(TBrowser *b);
196 Bool_t ClassSaved(TClass *cl);
197 void CloseFiles();
198 void EndOfProcessCleanups();
199 virtual TObject *FindObject(const char *name) const;
200 virtual TObject *FindObject(const TObject *obj) const;
201 virtual TObject *FindObjectAny(const char *name) const;
202 virtual TObject *FindObjectAnyFile(const char *name) const;
203 TObject *FindSpecialObject(const char *name, void *&where);
204 const char *FindObjectClassName(const char *name) const;
205 const char *FindObjectPathName(const TObject *obj) const;
206 TClass *FindSTLClass(const char *name, Bool_t load, Bool_t silent = kFALSE) const;
207 void ForceStyle(Bool_t force = kTRUE) { fForceStyle = force; }
208 Bool_t FromPopUp() const { return fFromPopUp; }
209 TPluginManager *GetPluginManager() const { return fPluginManager; }
210 TApplication *GetApplication() const { return fApplication; }
212 TClass *GetClass(const char *name, Bool_t load = kTRUE, Bool_t silent = kFALSE) const;
213 TClass *GetClass(const std::type_info &typeinfo, Bool_t load = kTRUE, Bool_t silent = kFALSE) const;
214 TColor *GetColor(Int_t color) const;
215 const char *GetConfigOptions() const { return fConfigOptions; }
216 const char *GetConfigFeatures() const { return fConfigFeatures; }
217 const char *GetCutClassName() const { return fCutClassName; }
218 const char *GetDefCanvasName() const { return fDefCanvasName; }
219 Bool_t GetEditHistograms() const { return fEditHistograms; }
220 Int_t GetEditorMode() const { return fEditorMode; }
221 Bool_t GetForceStyle() const { return fForceStyle; }
222 Int_t GetBuiltDate() const { return fBuiltDate; }
223 Int_t GetBuiltTime() const { return fBuiltTime; }
224 const char *GetGitCommit() const { return fGitCommit; }
225 const char *GetGitBranch() const { return fGitBranch; }
226 const char *GetGitDate();
227 Int_t GetVersionDate() const { return fVersionDate; }
228 Int_t GetVersionTime() const { return fVersionTime; }
229 Int_t GetVersionInt() const { return fVersionInt; }
230 Int_t GetVersionCode() const { return fVersionCode; }
231 const char *GetVersion() const { return fVersion; }
232 TCollection *GetListOfClasses() const { return fClasses; }
233 TSeqCollection *GetListOfColors() const { return fColors; }
234 TCollection *GetListOfTypes(Bool_t load = kFALSE);
235 TCollection *GetListOfGlobals(Bool_t load = kFALSE);
236 TCollection *GetListOfGlobalFunctions(Bool_t load = kFALSE);
237 TSeqCollection *GetListOfClosedObjects() const { return fClosedObjects; }
238 TSeqCollection *GetListOfFiles() const { return fFiles; }
239 TSeqCollection *GetListOfMappedFiles() const { return fMappedFiles; }
240 TSeqCollection *GetListOfSockets() const { return fSockets; }
241 TSeqCollection *GetListOfCanvases() const { return fCanvases; }
242 TSeqCollection *GetListOfStyles() const { return fStyles; }
243 TCollection *GetListOfFunctions() const { return fFunctions; }
244 TCollection *GetListOfFunctionOverloads(const char* name) const;
245 TSeqCollection *GetListOfGeometries() const { return fGeometries; }
246 TSeqCollection *GetListOfBrowsers() const { return fBrowsers; }
247 TSeqCollection *GetListOfSpecials() const { return fSpecials; }
248 TSeqCollection *GetListOfTasks() const { return fTasks; }
249 TSeqCollection *GetListOfCleanups() const { return fCleanups; }
250 TSeqCollection *GetListOfStreamerInfo() const { return fStreamerInfo; }
251 TSeqCollection *GetListOfMessageHandlers() const { return fMessageHandlers; }
252 TCollection *GetListOfClassGenerators() const { return fClassGenerators; }
253 TSeqCollection *GetListOfSecContexts() const { return fSecContexts; }
254 TSeqCollection *GetListOfProofs() const { return fProofs; }
255 TSeqCollection *GetClipboard() const { return fClipboard; }
256 TSeqCollection *GetListOfDataSets() const { return fDataSets; }
257 TCollection *GetListOfEnums(Bool_t load = kFALSE);
258 TCollection *GetListOfFunctionTemplates();
259 TList *GetListOfBrowsables() const { return fBrowsables; }
260 TDataType *GetType(const char *name, Bool_t load = kFALSE) const;
261 TFile *GetFile() const { if (gDirectory != this) return gDirectory->GetFile(); else return 0;}
262 TFile *GetFile(const char *name) const;
264 TStyle *GetStyle(const char *name) const;
265 TObject *GetFunction(const char *name) const;
266 TGlobal *GetGlobal(const char *name, Bool_t load = kFALSE) const;
267 TGlobal *GetGlobal(const TObject *obj, Bool_t load = kFALSE) const;
268 TFunction *GetGlobalFunction(const char *name, const char *params = 0, Bool_t load = kFALSE);
269 TFunction *GetGlobalFunctionWithPrototype(const char *name, const char *proto = 0, Bool_t load = kFALSE);
270 TObject *GetGeometry(const char *name) const;
271 const TObject *GetSelectedPrimitive() const { return fPrimitive; }
272 TVirtualPad *GetSelectedPad() const { return fSelectPad; }
273 Int_t GetNclasses() const { return fClasses->GetSize(); }
274 Int_t GetNtypes() const { return fTypes->GetSize(); }
275 TFolder *GetRootFolder() const { return fRootFolder; }
276 TProcessUUID *GetUUIDs() const { return fUUIDs; }
277 const TString &GetWebDisplay() const { return fWebDisplay; }
278 void Idle(UInt_t idleTimeInSec, const char *command = 0);
279 Int_t IgnoreInclude(const char *fname, const char *expandedfname);
280 Bool_t IsBatch() const { return fBatch; }
281 Bool_t IsExecutingMacro() const { return fExecutingMacro; }
282 Bool_t IsFolder() const { return kTRUE; }
283 Bool_t IsInterrupted() const { return fInterrupt; }
284 Bool_t IsEscaped() const { return fEscape; }
285 Bool_t IsLineProcessing() const { return fLineIsProcessing ? kTRUE : kFALSE; }
286 Bool_t IsProofServ() const { return fName == "proofserv" ? kTRUE : kFALSE; }
287 Bool_t IsRootFile(const char *filename) const;
288 Bool_t IsWebDisplay() const { return fIsWebDisplay; }
289 Bool_t IsWebDisplayBatch() const { return fIsWebDisplayBatch; }
290 void ls(Option_t *option = "") const;
291 Int_t LoadClass(const char *classname, const char *libname, Bool_t check = kFALSE);
292 TClass *LoadClass(const char *name, Bool_t silent = kFALSE) const;
293 Int_t LoadMacro(const char *filename, Int_t *error = 0, Bool_t check = kFALSE);
294 Long_t Macro(const char *filename, Int_t *error = 0, Bool_t padUpdate = kTRUE);
295 TCanvas *MakeDefCanvas() const;
296 void Message(Int_t id, const TObject *obj);
297 Bool_t MustClean() const { return fMustClean; }
298 Long_t ProcessLine(const char *line, Int_t *error = 0);
299 Long_t ProcessLineSync(const char *line, Int_t *error = 0);
300 Long_t ProcessLineFast(const char *line, Int_t *error = 0);
301 Bool_t ReadingObject() const;
302 void RecursiveRemove(TObject *obj);
303 void RefreshBrowsers();
304 static void RegisterModule(const char* modulename,
305 const char** headers,
306 const char** includePaths,
307 const char* payLoadCode,
308 const char* fwdDeclCode,
309 void (*triggerFunc)(),
310 const FwdDeclArgsToKeepCollection_t& fwdDeclsArgToSkip,
311 const char** classesHeaders,
312 bool hasCxxModule = false);
313 TObject *Remove(TObject*);
314 void RemoveClass(TClass *);
315 void Reset(Option_t *option="");
316 void SaveContext();
317 void SetApplication(TApplication *app) { fApplication = app; }
318 void SetBatch(Bool_t batch = kTRUE) { fBatch = batch; }
319 void SetWebDisplay(const char *webdisplay);
320 void SetCutClassName(const char *name = "TCutG");
321 void SetDefCanvasName(const char *name = "c1") { fDefCanvasName = name; }
322 void SetEditHistograms(Bool_t flag = kTRUE) { fEditHistograms = flag; }
323 void SetEditorMode(const char *mode = "");
324 void SetExecutingMacro(Bool_t flag = kTRUE) { fExecutingMacro = flag; }
325 void SetFromPopUp(Bool_t flag = kTRUE) { fFromPopUp = flag; }
326 void SetInterrupt(Bool_t flag = kTRUE) { fInterrupt = flag; }
327 void SetEscape(Bool_t flag = kTRUE) { fEscape = flag; }
328 void SetLineIsProcessing() { fLineIsProcessing++; }
329 void SetLineHasBeenProcessed() { if (fLineIsProcessing) fLineIsProcessing--; }
330 void SetReadingObject(Bool_t flag = kTRUE);
331 void SetMustClean(Bool_t flag = kTRUE) { fMustClean=flag; }
332 void SetSelectedPrimitive(const TObject *obj) { fPrimitive = obj; }
333 void SetSelectedPad(TVirtualPad *pad) { fSelectPad = pad; }
334 void SetStyle(const char *stylename = "Default");
335 void Time(Int_t casetime=1) { fTimer = casetime; }
336 Int_t Timer() const { return fTimer; }
337
338 //---- static functions
339 static Int_t DecreaseDirLevel();
340 static Int_t GetDirLevel();
341 static const char *GetMacroPath();
342 static void SetMacroPath(const char *newpath);
343 static Int_t IncreaseDirLevel();
344 static void IndentLevel();
345 static void Initialize();
346 static Bool_t Initialized();
347 static Bool_t MemCheck();
348 static void SetDirLevel(Int_t level = 0);
349 static Int_t ConvertVersionCode2Int(Int_t code);
350 static Int_t ConvertVersionInt2Code(Int_t v);
351 static Int_t RootVersionCode();
352 static const std::vector<std::string> &AddExtraInterpreterArgs(const std::vector<std::string> &args);
353 static const char**&GetExtraInterpreterArgs();
354
355 static const TString& GetRootSys();
356 static const TString& GetBinDir();
357 static const TString& GetLibDir();
358 static const TString& GetIncludeDir();
359 static const TString& GetEtcDir();
360 static const TString& GetDataDir();
361 static const TString& GetDocDir();
362 static const TString& GetMacroDir();
363 static const TString& GetTutorialDir();
364 static const TString& GetSourceDir();
365 static const TString& GetIconPath();
366 static const TString& GetTTFFontDir();
367
368 // Backward compatibility function - do not use for new code
369 static const char *GetTutorialsDir();
370 static void ShutDown();
371
372 ClassDef(TROOT,0) //Top level (or root) structure for all classes
373};
374
375
376namespace ROOT {
377 TROOT *GetROOT();
378 namespace Internal {
380
381 inline void SetRequireCleanup(TObject &obj) {
383 obj.SetUniqueID(0);
384 }
385
387 return obj.TestBit(kIsReferenced) && obj.GetUniqueID() == 0;
388 }
389 }
390
391 /// \brief call RecursiveRemove for obj if gROOT is valid
392 /// and obj.TestBit(kMustCleanup) is true.
393 /// Note: this reset the kMustCleanup bit to allow
394 /// harmless multiple call to this function.
396 {
397 if (obj.TestBit(kMustCleanup)) {
399 if (root && root != &obj && (root->MustClean() || Internal::RequiresCleanup(obj))) {
400 root->RecursiveRemove(&obj);
402 }
403 }
404 }
405}
406#define gROOT (ROOT::GetROOT())
407
408#endif
#define R__EXTERN
Definition: DllImport.h:27
#define R__DEPRECATED(MAJOR, MINOR, REASON)
Definition: RConfig.hxx:522
#define b(i)
Definition: RSha256.hxx:100
int Int_t
Definition: RtypesCore.h:43
unsigned int UInt_t
Definition: RtypesCore.h:44
const Bool_t kFALSE
Definition: RtypesCore.h:90
long Long_t
Definition: RtypesCore.h:52
bool Bool_t
Definition: RtypesCore.h:61
const Bool_t kTRUE
Definition: RtypesCore.h:89
const char Option_t
Definition: RtypesCore.h:64
#define ClassDef(name, id)
Definition: Rtypes.h:322
void(* VoidFuncPtr_t)()
Definition: Rtypes.h:77
std::string Message(const std::string &msg, const std::string &location)
Definition: Scanner.cxx:178
#define gDirectory
Definition: TDirectory.h:229
char name[80]
Definition: TGX11.cxx:109
@ kIsReferenced
Definition: TObject.h:357
@ kMustCleanup
Definition: TObject.h:355
R__EXTERN TVirtualMutex * gROOTMutex
Definition: TROOT.h:59
const char * proto
Definition: civetweb.c:16604
This class creates the ROOT Application Environment that interfaces to the windowing system eventloop...
Definition: TApplication.h:39
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
The Canvas class.
Definition: TCanvas.h:27
Objects following this interface can be passed onto the TROOT object to implement a user customized w...
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
This class defines an interface to the cling C++ interpreter.
Definition: TCling.h:99
void RegisterModule(const char *modulename, const char **headers, const char **includePaths, const char *payloadCode, const char *fwdDeclsCode, void(*triggerFunc)(), const FwdDeclArgsToKeepCollection_t &fwdDeclsArgToSkip, const char **classesHeaders, Bool_t lateRegistration=false, Bool_t hasCxxModule=false)
Inject the module named "modulename" into cling; load all headers.
Definition: TCling.cxx:1951
Long_t ProcessLine(const char *line, EErrorCode *error=0)
Definition: TCling.cxx:2370
void SaveContext()
Save the current Cling state.
Definition: TCling.cxx:3675
void Reset()
Pressing Ctrl+C should forward here.
Definition: TCling.cxx:3524
virtual void ShutDown()
Definition: TCling.cxx:1599
std::unique_ptr< cling::Interpreter > fInterpreter
Definition: TCling.h:128
void LoadMacro(const char *filename, EErrorCode *error=0)
Load a macro file in cling's memory.
Definition: TCling.cxx:3378
void RecursiveRemove(TObject *obj)
Delete object from cling symbol table so it can not be used anymore.
Definition: TCling.cxx:3499
DeclId_t GetFunctionTemplate(ClassInfo_t *cl, const char *funcname)
Return pointer to cling interface function for a method of a class with a certain name.
Definition: TCling.cxx:4956
Collection abstract base class.
Definition: TCollection.h:63
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Definition: TCollection.h:182
The color creation and management class.
Definition: TColor.h:19
Basic data type descriptor (datatype information is obtained from CINT).
Definition: TDataType.h:44
Describe directory structure in memory.
Definition: TDirectory.h:40
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Definition: TFile.h:53
A TFolder object is a collection of objects and folders.
Definition: TFolder.h:30
Dictionary for function template This class describes one single function template.
Global functions class (global functions are obtained from CINT).
Definition: TFunction.h:28
Global variables class (global variables are obtained from CINT).
Definition: TGlobal.h:28
This class defines an abstract interface to a generic command line interpreter.
Definition: TInterpreter.h:61
std::vector< std::pair< std::string, int > > FwdDeclArgsToKeepCollection_t
Definition: TInterpreter.h:134
A collection of TDataMember objects designed for fast access given a DeclId_t and for keep track of T...
A collection of TEnum objects designed for fast access given a DeclId_t and for keep track of TEnum t...
Definition: TListOfEnums.h:33
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
A collection of TFunction objects designed for fast access given a DeclId_t and for keep track of TFu...
A doubly linked list.
Definition: TList.h:44
virtual void ls(Option_t *option="") const
List TNamed name and title.
Definition: TNamed.cxx:113
TString fName
Definition: TNamed.h:32
Mother of all ROOT objects.
Definition: TObject.h:37
virtual void Browse(TBrowser *b)
Browse object. May be overridden for another default action.
Definition: TObject.cxx:119
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:187
virtual UInt_t GetUniqueID() const
Return the unique object id.
Definition: TObject.cxx:375
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
Definition: TObject.cxx:321
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition: TObject.cxx:694
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
Definition: TObject.cxx:705
void ResetBit(UInt_t f)
Definition: TObject.h:186
This class implements a plugin library manager.
This class is a specialized TProcessID managing the list of UUIDs.
Definition: TProcessUUID.h:32
ROOT top level object description.
Definition: TROOT.h:93
void SetApplication(TApplication *app)
Definition: TROOT.h:317
Int_t GetVersionInt() const
Definition: TROOT.h:229
const char * GetConfigFeatures() const
Definition: TROOT.h:216
TSeqCollection * GetListOfCleanups() const
Definition: TROOT.h:249
void Time(Int_t casetime=1)
Definition: TROOT.h:335
Int_t fVersionCode
Definition: TROOT.h:115
const char * GetDefCanvasName() const
Definition: TROOT.h:218
Bool_t IsInterrupted() const
Definition: TROOT.h:283
const TString & GetWebDisplay() const
Definition: TROOT.h:277
TCollection * GetListOfClasses() const
Definition: TROOT.h:232
TSeqCollection * fProofs
Definition: TROOT.h:163
TCollection * fClassGenerators
Definition: TROOT.h:161
TSeqCollection * fCanvases
Definition: TROOT.h:150
const TObject * fPrimitive
Definition: TROOT.h:139
Bool_t fIsWebDisplay
Definition: TROOT.h:128
TFolder * fRootFolder
Definition: TROOT.h:168
const char * GetCutClassName() const
Definition: TROOT.h:217
Int_t GetBuiltTime() const
Definition: TROOT.h:223
void SetFromPopUp(Bool_t flag=kTRUE)
Definition: TROOT.h:325
TSeqCollection * fGeometries
Definition: TROOT.h:155
TString fCutClassName
Definition: TROOT.h:171
TInterpreter * fInterpreter
Definition: TROOT.h:125
Bool_t IsProofServ() const
Definition: TROOT.h:286
TSeqCollection * GetListOfMessageHandlers() const
Definition: TROOT.h:251
std::vector< std::pair< std::string, int > > FwdDeclArgsToKeepCollection_t
Definition: TROOT.h:188
Int_t fVersionTime
Definition: TROOT.h:117
void SetLineIsProcessing()
Definition: TROOT.h:328
void SetMustClean(Bool_t flag=kTRUE)
Definition: TROOT.h:331
Bool_t fBatch
Definition: TROOT.h:126
Bool_t IsWebDisplayBatch() const
Definition: TROOT.h:289
TSeqCollection * GetListOfFiles() const
Definition: TROOT.h:238
Bool_t fEscape
Definition: TROOT.h:136
TSeqCollection * GetListOfSockets() const
Definition: TROOT.h:240
Int_t fVersionInt
Definition: TROOT.h:114
Bool_t fFromPopUp
Definition: TROOT.h:131
TSeqCollection * fSockets
Definition: TROOT.h:149
Bool_t IsEscaped() const
Definition: TROOT.h:284
TCollection * fFunctions
Definition: TROOT.h:152
Int_t GetVersionDate() const
Definition: TROOT.h:227
TCollection * GetListOfClassGenerators() const
Definition: TROOT.h:252
Bool_t IsExecutingMacro() const
Definition: TROOT.h:281
TSeqCollection * fMessageHandlers
Definition: TROOT.h:159
TSeqCollection * GetListOfMappedFiles() const
Definition: TROOT.h:239
void SetEditHistograms(Bool_t flag=kTRUE)
Definition: TROOT.h:322
AListOfEnums_t fEnums
Definition: TROOT.h:166
void ForceStyle(Bool_t force=kTRUE)
Definition: TROOT.h:207
static Bool_t fgRootInit
Definition: TROOT.h:102
const char * GetVersion() const
Definition: TROOT.h:231
std::atomic< TApplication * > fApplication
Definition: TROOT.h:124
TFile * GetFile() const
Definition: TROOT.h:261
const char * GetGitBranch() const
Definition: TROOT.h:225
Bool_t fForceStyle
Definition: TROOT.h:134
Bool_t FromPopUp() const
Definition: TROOT.h:208
const TObject * GetSelectedPrimitive() const
Definition: TROOT.h:271
TCollection * fTypes
Definition: TROOT.h:142
Bool_t IsLineProcessing() const
Definition: TROOT.h:285
TSeqCollection * fStreamerInfo
Definition: TROOT.h:160
TROOT & operator=(const TROOT &)
TSeqCollection * GetListOfCanvases() const
Definition: TROOT.h:241
std::atomic< TListOfEnums * > AListOfEnums_t
Definition: TROOT.h:109
TString fGitDate
Definition: TROOT.h:122
TSeqCollection * fSpecials
Definition: TROOT.h:157
void SetExecutingMacro(Bool_t flag=kTRUE)
Definition: TROOT.h:324
TCollection * fClasses
Definition: TROOT.h:141
Bool_t fReadingObject
Definition: TROOT.h:133
void SetInterrupt(Bool_t flag=kTRUE)
Definition: TROOT.h:326
Bool_t fEditHistograms
Definition: TROOT.h:130
TListOfDataMembers * fGlobals
Definition: TROOT.h:144
TListOfFunctionTemplates * fFuncTemplate
Definition: TROOT.h:143
TSeqCollection * GetClipboard() const
Definition: TROOT.h:255
Int_t fTimer
Definition: TROOT.h:123
TSeqCollection * fDataSets
Definition: TROOT.h:165
TString fConfigOptions
Definition: TROOT.h:111
TVirtualPad * GetSelectedPad() const
Definition: TROOT.h:272
TSeqCollection * fSecContexts
Definition: TROOT.h:162
TString fWebDisplay
Definition: TROOT.h:127
static Bool_t fgMemCheck
Definition: TROOT.h:103
TSeqCollection * fCleanups
Definition: TROOT.h:158
void RecursiveRemove(TObject *obj)
Recursively remove this object from the list of Cleanups.
Definition: TROOT.cxx:2429
TApplication * GetApplication() const
Definition: TROOT.h:210
void SetBatch(Bool_t batch=kTRUE)
Definition: TROOT.h:318
Int_t fLineIsProcessing
Definition: TROOT.h:99
Int_t Timer() const
Definition: TROOT.h:336
TString fGitCommit
Definition: TROOT.h:120
TSeqCollection * fClosedObjects
Definition: TROOT.h:146
TSeqCollection * fTasks
Definition: TROOT.h:153
TSeqCollection * fClipboard
Definition: TROOT.h:164
TProcessUUID * GetUUIDs() const
Definition: TROOT.h:276
TSeqCollection * GetListOfStreamerInfo() const
Definition: TROOT.h:250
TSeqCollection * fColors
Definition: TROOT.h:154
Int_t GetBuiltDate() const
Definition: TROOT.h:222
TCollection * GetListOfFunctions() const
Definition: TROOT.h:243
Bool_t GetForceStyle() const
Definition: TROOT.h:221
TFolder * GetRootFolder() const
Definition: TROOT.h:275
TSeqCollection * GetListOfBrowsers() const
Definition: TROOT.h:246
TSeqCollection * fStyles
Definition: TROOT.h:151
TSeqCollection * GetListOfProofs() const
Definition: TROOT.h:254
Bool_t GetEditHistograms() const
Definition: TROOT.h:219
Int_t fVersionDate
Definition: TROOT.h:116
TSeqCollection * GetListOfColors() const
Definition: TROOT.h:233
Int_t fBuiltTime
Definition: TROOT.h:119
void SetLineHasBeenProcessed()
Definition: TROOT.h:329
TVirtualPad * fSelectPad
Definition: TROOT.h:140
TSeqCollection * fFiles
Definition: TROOT.h:147
Bool_t fInterrupt
Definition: TROOT.h:135
Bool_t fMustClean
Definition: TROOT.h:132
Int_t GetEditorMode() const
Definition: TROOT.h:220
const char * GetGitCommit() const
Definition: TROOT.h:224
TString fGitBranch
Definition: TROOT.h:121
static Int_t fgDirLevel
Definition: TROOT.h:101
TSeqCollection * GetListOfTasks() const
Definition: TROOT.h:248
Bool_t IsBatch() const
Definition: TROOT.h:280
Bool_t IsWebDisplay() const
Definition: TROOT.h:288
Int_t GetVersionTime() const
Definition: TROOT.h:228
Int_t GetNclasses() const
Definition: TROOT.h:273
void SetSelectedPad(TVirtualPad *pad)
Definition: TROOT.h:333
TProcessUUID * fUUIDs
Definition: TROOT.h:167
TString fConfigFeatures
Definition: TROOT.h:112
TPluginManager * fPluginManager
Definition: TROOT.h:170
Bool_t fExecutingMacro
Definition: TROOT.h:137
TList * GetListOfBrowsables() const
Definition: TROOT.h:259
Int_t fBuiltDate
Definition: TROOT.h:118
Bool_t fIsWebDisplayBatch
Definition: TROOT.h:129
void SetEscape(Bool_t flag=kTRUE)
Definition: TROOT.h:327
Int_t GetVersionCode() const
Definition: TROOT.h:230
TSeqCollection * fMappedFiles
Definition: TROOT.h:148
Int_t GetNtypes() const
Definition: TROOT.h:274
TSeqCollection * GetListOfSpecials() const
Definition: TROOT.h:247
void SetDefCanvasName(const char *name="c1")
Definition: TROOT.h:321
TSeqCollection * fBrowsers
Definition: TROOT.h:156
TString fDefCanvasName
Definition: TROOT.h:172
TListOfFunctions * fGlobalFunctions
Definition: TROOT.h:145
TList * fBrowsables
Definition: TROOT.h:169
void SetSelectedPrimitive(const TObject *obj)
Definition: TROOT.h:332
Int_t fEditorMode
Definition: TROOT.h:138
TSeqCollection * GetListOfDataSets() const
Definition: TROOT.h:256
Bool_t MustClean() const
Definition: TROOT.h:297
TSeqCollection * GetListOfClosedObjects() const
Definition: TROOT.h:237
const char * GetConfigOptions() const
Definition: TROOT.h:215
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition: TROOT.h:282
TSeqCollection * GetListOfSecContexts() const
Definition: TROOT.h:253
TSeqCollection * GetListOfGeometries() const
Definition: TROOT.h:245
TROOT(const TROOT &)
TSeqCollection * GetListOfStyles() const
Definition: TROOT.h:242
TString fVersion
Definition: TROOT.h:113
TInterpreter * GetInterpreter() const
Definition: TROOT.h:211
TPluginManager * GetPluginManager() const
Definition: TROOT.h:209
Sequenceable collection abstract base class.
Basic string class.
Definition: TString.h:131
TStyle objects may be created to define special styles.
Definition: TStyle.h:27
This class implements a mutex interface.
Definition: TVirtualMutex.h:34
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:51
TLine * line
const std::string & GetIncludeDir()
\ returns the include directory in the installation.
const std::string & GetRootSys()
const std::string & GetEtcDir()
void SetRequireCleanup(TObject &obj)
Definition: TROOT.h:381
R__EXTERN TROOT * gROOTLocal
Definition: TROOT.h:379
void DisableParBranchProcessing()
Globally disables the IMT use case of parallel branch processing, deactivating the corresponding lock...
Definition: TROOT.cxx:428
void EnableParBranchProcessing()
Globally enables the parallel branch processing, which is a case of implicit multi-threading (IMT) in...
Definition: TROOT.cxx:414
Bool_t IsParBranchProcessingEnabled()
Returns true if parallel branch processing is enabled.
Definition: TROOT.cxx:441
TROOT * GetROOT2()
Definition: TROOT.cxx:381
Bool_t RequiresCleanup(TObject &obj)
Definition: TROOT.h:386
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition: StringConv.hxx:21
TString & GetMacroPath()
Definition: TROOT.cxx:470
void EnableImplicitMT(UInt_t numthreads=0)
Enable ROOT's implicit multi-threading for all objects and methods that provide an internal paralleli...
Definition: TROOT.cxx:526
Bool_t IsImplicitMTEnabled()
Returns true if the implicit multi-threading in ROOT is enabled.
Definition: TROOT.cxx:557
UInt_t GetThreadPoolSize()
Returns the size of ROOT's thread pool.
Definition: TROOT.cxx:564
void EnableThreadSafety()
Enables the global mutex to make ROOT thread safe/aware.
Definition: TROOT.cxx:495
TClass * GetClass(T *)
Definition: TClass.h:658
void RemoveClass(const char *cname)
Global function called by the dtor of a class's init class (see the ClassImp macro).
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Definition: TROOT.h:395
void AddClass(const char *cname, Version_t id, const std::type_info &info, DictFuncPtr_t dict, Int_t pragmabits)
Global function called by the ctor of a class's init class (see the ClassImp macro).
UInt_t GetImplicitMTPoolSize() R__DEPRECATED(6
Returns the size of the pool used for implicit multi-threading.
Definition: TROOT.cxx:579
TROOT * GetROOT()
Definition: TROOT.cxx:466
void DisableImplicitMT()
Disables the implicit multi-threading in ROOT (see EnableImplicitMT).
Definition: TROOT.cxx:543
void GetColor(Float_t v, Float_t vmin, Float_t vmax, Int_t type, Float_t *rgba)
This function creates color for parametric surface's vertex, using its 'u' value.
Definition: TGLUtil.cxx:3878
Type GetType(const std::string &Name)
Definition: Systematics.cxx:34
std::function< T(T)> GetFunction(const std::string &name)
Get function pointer to implementation from name given as string.
Definition: Objectives.hxx:58
void Initialize(Bool_t useTMVAStyle=kTRUE)
Definition: tmvaglob.cxx:176
auto * l
Definition: textangle.C:4