Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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// container of several lists pointing to the main ROOT objects. //
25// //
26//////////////////////////////////////////////////////////////////////////
27
28#include "TDirectory.h"
29// #include "TList.h" // included in TDirectory.h
30// #include "RConfigure.h" // included via Rtypes.h
31
32#include <atomic>
33#include <string>
34#include <vector>
35#include <utility>
36
37class TClass;
38class TCanvas;
39class TColor;
40class TDataType;
41class TFile;
42class TStyle;
43class TVirtualPad;
44class TApplication;
45class TInterpreter;
46class TBrowser;
47class TGlobal;
48class TFunction;
49class TFolder;
50class TPluginManager;
51class TProcessUUID;
52class TClassGenerator;
53class TVirtualMutex;
54class TROOT;
56class TListOfEnums;
59class TSeqCollection;
62
64
65namespace ROOT {
66namespace Internal {
67 class TROOTAllocator;
68
69 TROOT *GetROOT2();
70
71 // Manage parallel branch processing
80} } // End ROOT::Internal
81
82namespace ROOT {
83 enum class EIMTConfig {
84 kWholeMachine = 0, ///< Default configuration
85 kExistingTBBArena = 1, ///< Use the existing TBB arena
86 kNumConfigs = 2 ///< Number of support IMT semantic configurations
87 };
88 /// \brief Enable support for multi-threading within the ROOT code
89 /// in particular, enables the global mutex to make ROOT thread safe/aware.
90 void EnableThreadSafety();
91 /// \brief Enable ROOT's implicit multi-threading for all objects and methods that provide an internal
92 /// parallelisation mechanism.
94 /// \brief Enable ROOT's implicit multi-threading for all objects and methods that provide an internal
95 /// parallelisation mechanism.
97 void DisableImplicitMT();
100}
101
102class TROOT : public TDirectory {
103
104friend class TCling;
106
107private:
108 Int_t fLineIsProcessing = 0; ///< To synchronize multi-threads
109
110 static Int_t fgDirLevel; ///< Indentation level for ls()
111 static Bool_t fgRootInit; ///< Singleton initialization flag
112
113 TROOT(const TROOT&) = delete;
114 TROOT& operator=(const TROOT&) = delete;
115
116protected:
117 typedef std::atomic<TListOfEnums*> AListOfEnums_t;
118
119 TString fConfigOptions; ///< ROOT ./configure set build options
120 TString fConfigFeatures; ///< ROOT ./configure detected build features
121 TString fVersion; ///< ROOT version as TString, example: 0.05.01
122 Int_t fVersionInt = 0; ///< ROOT version in integer format (501)
123 Int_t fVersionCode = 0; ///< ROOT version code as used in RVersion.h
124 Int_t fVersionDate = 0; ///< Date of ROOT version (ex 951226)
125 Int_t fVersionTime = 0; ///< Time of ROOT version (ex 1152)
126 Int_t fBuiltDate = 0; ///< Date of ROOT built
127 Int_t fBuiltTime = 0; ///< Time of ROOT built
128 TString fGitCommit; ///< Git commit SHA1 of built
129 TString fGitBranch; ///< Git branch
130 TString fGitDate; ///< Date and time when make was run
131 Int_t fTimer = 0; ///< Timer flag
132 std::atomic<TApplication*> fApplication = nullptr; ///< Pointer to current application
133 TInterpreter *fInterpreter = nullptr; ///< Command interpreter
134 Bool_t fBatch = true; ///< True if session without graphics
135 TString fWebDisplay; ///< If not empty it defines where web graphics should be rendered (cef, qt6, browser...)
136 Bool_t fIsWebDisplay = false; ///< True if session uses web widgets
137 Bool_t fIsWebDisplayBatch = false; ///< True if web widgets are not displayed
138 Bool_t fEditHistograms = true; ///< True if histograms can be edited with the mouse
139 Bool_t fFromPopUp = true; ///< True if command executed from a popup menu
140 Bool_t fMustClean = true; ///< True if object destructor scans canvases
141 Bool_t fForceStyle = false; ///< Force setting of current style when reading objects
142 Bool_t fInterrupt = false; ///< True if macro should be interrupted
143 Bool_t fEscape = false; ///< True if ESC has been pressed
144 Bool_t fExecutingMacro = false; ///< True while executing a TMacro
145 Int_t fEditorMode = 0; ///< Current Editor mode
146 const TObject *fPrimitive = nullptr; ///< Currently selected primitive
147 TVirtualPad *fSelectPad = nullptr; ///< Currently selected pad
148 TCollection *fClasses = nullptr; ///< List of classes definition
149 TCollection *fTypes = nullptr; ///< List of data types definition
150 TListOfFunctionTemplates *fFuncTemplate = nullptr; ///< List of global function templates
151 TListOfDataMembers*fGlobals = nullptr; ///< List of global variables
152 TListOfFunctions*fGlobalFunctions = nullptr; ///< List of global functions
153 TSeqCollection *fClosedObjects = nullptr; ///< List of closed objects from the list of files and sockets, so we can delete them if neededCl.
154 TSeqCollection *fFiles = nullptr; ///< List of files
155 TSeqCollection *fMappedFiles = nullptr; ///< List of memory mapped files
156 TSeqCollection *fSockets = nullptr; ///< List of network sockets
157 TSeqCollection *fCanvases = nullptr; ///< List of canvases
158 TSeqCollection *fStyles = nullptr; ///< List of styles
159 TCollection *fFunctions = nullptr; ///< List of analytic functions
160 TSeqCollection *fTasks = nullptr; ///< List of tasks
161 TSeqCollection *fColors = nullptr; ///< List of colors
162 TSeqCollection *fGeometries = nullptr; ///< List of geometries
163 TSeqCollection *fBrowsers = nullptr; ///< List of browsers
164 TSeqCollection *fSpecials = nullptr; ///< List of special objects
165 TSeqCollection *fCleanups = nullptr; ///< List of recursiveRemove collections
166 TSeqCollection *fMessageHandlers = nullptr; ///< List of message handlers
167 TSeqCollection *fStreamerInfo = nullptr; ///< List of active StreamerInfo classes
168 TCollection *fClassGenerators = nullptr; ///< List of user defined class generators;
169 TSeqCollection *fSecContexts = nullptr; ///< List of security contexts (TSecContext)
170 TSeqCollection *fClipboard = nullptr; ///< List of clipboard objects
171 TSeqCollection *fDataSets = nullptr; ///< List of data sets (TDSet or TChain)
172 AListOfEnums_t fEnums = nullptr; ///< List of enum types
173 TProcessUUID *fUUIDs = nullptr; ///< Pointer to TProcessID managing TUUIDs
174 TFolder *fRootFolder = nullptr; ///< top level folder //root
175 TList *fBrowsables = nullptr; ///< List of browsables
176 TPluginManager *fPluginManager = nullptr; ///< Keeps track of plugin library handlers
177 TString fCutClassName; ///< Name of default CutG class in graphics editor
178 TString fDefCanvasName; ///< Name of default canvas
179
180 TROOT(); ///< Only used by Dictionary
181 void InitSystem(); ///< Operating System interface
182 void InitThreads(); ///< Initialize threads library
183 void InitInterpreter(); ///< Initialize interpreter (cling)
184 void ReadGitInfo(); ///< Read Git commit SHA1 and branch name
185 void *operator new(size_t l) { return TObject::operator new(l); }
186 void *operator new(size_t l, void *ptr) { return TObject::operator new(l,ptr); }
187
188 friend class ::ROOT::Internal::TROOTAllocator;
189
191
192public:
193
194 typedef std::vector<std::pair<std::string, int> > FwdDeclArgsToKeepCollection_t;
195
196 TROOT(const char *name, const char *title, VoidFuncPtr_t *initfunc = nullptr);
197 virtual ~TROOT();
198 void AddClass(TClass *cl);
200 void Append(TObject *obj, Bool_t replace = kFALSE) override;
201 void Browse(TBrowser *b) override;
203 void CloseFiles();
205 TObject *FindObject(const char *name) const override;
206 TObject *FindObject(const TObject *obj) const override;
207 TObject *FindObjectAny(const char *name) const override;
208 TObject *FindObjectAnyFile(const char *name) const override;
209 TObject *FindSpecialObject(const char *name, void *&where);
210 const char *FindObjectClassName(const char *name) const;
211 const char *FindObjectPathName(const TObject *obj) const;
212 TClass *FindSTLClass(const char *name, Bool_t load, Bool_t silent = kFALSE) const;
214 Bool_t FromPopUp() const { return fFromPopUp; }
218 TClass *GetClass(const char *name, Bool_t load = kTRUE, Bool_t silent = kFALSE) const;
219 TClass *GetClass(const std::type_info &typeinfo, Bool_t load = kTRUE, Bool_t silent = kFALSE) const;
220 TColor *GetColor(Int_t color) const;
221 const char *GetConfigOptions() const { return fConfigOptions; }
222 const char *GetConfigFeatures() const { return fConfigFeatures; }
223 const char *GetCutClassName() const { return fCutClassName; }
224 const char *GetDefCanvasName() const { return fDefCanvasName; }
226 Int_t GetEditorMode() const { return fEditorMode; }
227 Bool_t GetForceStyle() const { return fForceStyle; }
228 Int_t GetBuiltDate() const { return fBuiltDate; }
229 Int_t GetBuiltTime() const { return fBuiltTime; }
230 const char *GetGitCommit() const { return fGitCommit; }
231 const char *GetGitBranch() const { return fGitBranch; }
232 const char *GetGitDate();
235 Int_t GetVersionInt() const { return fVersionInt; }
237 const char *GetVersion() const { return fVersion; }
250 TCollection *GetListOfFunctionOverloads(const char* name) const;
265 TDataType *GetType(const char *name, Bool_t load = kFALSE) const;
266 TFile *GetFile() const override { if (gDirectory && gDirectory != this) return gDirectory->GetFile(); else return nullptr;}
267 TFile *GetFile(const char *name) const;
269 TStyle *GetStyle(const char *name) const;
270 TObject *GetFunction(const char *name) const;
271 TGlobal *GetGlobal(const char *name, Bool_t load = kFALSE) const;
272 TGlobal *GetGlobal(const TObject *obj, Bool_t load = kFALSE) const;
273 TFunction *GetGlobalFunction(const char *name, const char *params = nullptr, Bool_t load = kFALSE);
274 TFunction *GetGlobalFunctionWithPrototype(const char *name, const char *proto = nullptr, Bool_t load = kFALSE);
275 TObject *GetGeometry(const char *name) const;
276 const TObject *GetSelectedPrimitive() const { return fPrimitive; }
278 Int_t GetNclasses() const;
279 Int_t GetNtypes() const;
280 TFolder *GetRootFolder() const { return fRootFolder; }
281 TProcessUUID *GetUUIDs() const { return fUUIDs; }
282 const TString &GetWebDisplay() const { return fWebDisplay; }
283 void Idle(UInt_t idleTimeInSec, const char *command = nullptr);
284 Int_t IgnoreInclude(const char *fname, const char *expandedfname);
285 Bool_t IsBatch() const { return fBatch; }
287 Bool_t IsFolder() const override { return kTRUE; }
288 Bool_t IsInterrupted() const { return fInterrupt; }
289 Bool_t IsEscaped() const { return fEscape; }
291 Bool_t IsRootFile(const char *filename) const;
294 void ls(Option_t *option = "") const override;
295 Int_t LoadClass(const char *classname, const char *libname, Bool_t check = kFALSE);
296 TClass *LoadClass(const char *name, Bool_t silent = kFALSE) const;
297 Int_t LoadMacro(const char *filename, Int_t *error = nullptr, Bool_t check = kFALSE);
298 Longptr_t Macro(const char *filename, Int_t *error = nullptr, Bool_t padUpdate = kTRUE);
299 TCanvas *MakeDefCanvas() const;
300 void Message(Int_t id, const TObject *obj);
301 Bool_t MustClean() const { return fMustClean; }
302 Longptr_t ProcessLine(const char *line, Int_t *error = nullptr);
303 Longptr_t ProcessLineSync(const char *line, Int_t *error = nullptr);
304 Longptr_t ProcessLineFast(const char *line, Int_t *error = nullptr);
305 Bool_t ReadingObject() const;
306 void RecursiveRemove(TObject *obj) override;
307 void RefreshBrowsers();
308 static void RegisterModule(const char* modulename,
309 const char** headers,
310 const char** includePaths,
311 const char* payLoadCode,
312 const char* fwdDeclCode,
313 void (*triggerFunc)(),
315 const char** classesHeaders,
316 bool hasCxxModule = false);
317 TObject *Remove(TObject*) override;
318 void RemoveClass(TClass *);
319 void Reset(Option_t *option="");
320 void ResetClassSaved();
321 void SaveContext();
323 void SetBatch(Bool_t batch = kTRUE);
324 void SetWebDisplay(const char *webdisplay = "");
325 void SetCutClassName(const char *name = "TCutG");
326 void SetDefCanvasName(const char *name = "c1") { fDefCanvasName = name; }
328 void SetEditorMode(const char *mode = "");
337 void SetSelectedPrimitive(const TObject *obj) { fPrimitive = obj; }
339 void SetStyle(const char *stylename = "Default");
341 Int_t Timer() const { return fTimer; }
342
343 //---- static functions
344 static Int_t DecreaseDirLevel();
345 static Int_t GetDirLevel();
346 static const char *GetMacroPath();
347 static void SetMacroPath(const char *newpath);
348 static Int_t IncreaseDirLevel();
349 static void IndentLevel();
350 static void Initialize();
351 static Bool_t Initialized();
352 static void SetDirLevel(Int_t level = 0);
355 static Int_t RootVersionCode();
356 static const std::vector<std::string> &AddExtraInterpreterArgs(const std::vector<std::string> &args);
357 static const char**&GetExtraInterpreterArgs();
358
359 static const TString& GetRootSys();
360 static const TString& GetBinDir();
361 static const TString& GetLibDir();
362 static const TString& GetSharedLibDir();
363 static const TString& GetIncludeDir();
364 static const TString& GetEtcDir();
365 static const TString& GetDataDir();
366 static const TString& GetDocDir();
367 static const TString& GetMacroDir();
368 static const TString& GetTutorialDir();
369 static const TString& GetSourceDir();
370 static const TString& GetIconPath();
371 static const TString& GetTTFFontDir();
372
373 // Backward compatibility function - do not use for new code
374 static const char *GetTutorialsDir();
375 static void ShutDown();
376
377 ClassDefOverride(TROOT,0) //Top level (or root) structure for all classes
378};
379
380
381namespace ROOT {
382 TROOT *GetROOT();
383 namespace Internal {
385
386 inline void SetRequireCleanup(TObject &obj) {
388 obj.SetUniqueID(0);
389 }
390
392 return obj.TestBit(kIsReferenced) && obj.GetUniqueID() == 0;
393 }
394 }
395
396 /// \brief call RecursiveRemove for obj if gROOT is valid
397 /// and obj.TestBit(kMustCleanup) is true.
398 /// Note: this reset the kMustCleanup bit to allow
399 /// harmless multiple call to this function.
401 {
402 if (obj.TestBit(kMustCleanup)) {
404 if (root && root != &obj && (root->MustClean() || Internal::RequiresCleanup(obj))) {
405 root->RecursiveRemove(&obj);
407 }
408 }
409 }
410}
411#define gROOT (ROOT::GetROOT())
412
413#endif
#define R__EXTERN
Definition DllImport.h:26
#define b(i)
Definition RSha256.hxx:100
bool Bool_t
Boolean (0=false, 1=true) (bool)
Definition RtypesCore.h:77
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:59
long Longptr_t
Integer large enough to hold a pointer (platform-dependent)
Definition RtypesCore.h:89
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
Definition RtypesCore.h:60
constexpr Bool_t kFALSE
Definition RtypesCore.h:108
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
const char Option_t
Option string (const char)
Definition RtypesCore.h:80
void(* VoidFuncPtr_t)()
Definition Rtypes.h:85
#define ClassDefOverride(name, id)
Definition Rtypes.h:348
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
#define gDirectory
Definition TDirectory.h:384
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char mode
char name[80]
Definition TGX11.cxx:110
@ kIsReferenced
Definition TObject.h:373
@ kMustCleanup
Definition TObject.h:371
R__EXTERN TVirtualMutex * gROOTMutex
Definition TROOT.h:63
const char * proto
Definition civetweb.c:18822
This class creates the ROOT Application Environment that interfaces to the windowing system eventloop...
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
The Canvas class.
Definition TCanvas.h:23
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:84
This class defines an interface to the cling C++ interpreter.
Definition TCling.h:102
Collection abstract base class.
Definition TCollection.h:65
The color creation and management class.
Definition TColor.h:22
Basic data type descriptor (datatype information is obtained from CINT).
Definition TDataType.h:44
TFile * GetFile() const override
Describe directory structure in memory.
Definition TDirectory.h:45
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Definition TFile.h:131
<div class="legacybox"><h2>Legacy Code</h2> TFolder is a legacy interface: there will be no bug fixes...
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:30
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.
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...
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:38
Mother of all ROOT objects.
Definition TObject.h:41
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition TObject.h:202
virtual UInt_t GetUniqueID() const
Return the unique object id.
Definition TObject.cxx:475
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition TObject.cxx:864
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
Definition TObject.cxx:875
void ResetBit(UInt_t f)
Definition TObject.h:201
This class implements a plugin library manager.
This class is a specialized TProcessID managing the list of UUIDs.
ROOT top level object description.
Definition TROOT.h:102
void SetApplication(TApplication *app)
Definition TROOT.h:322
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
Definition TROOT.cxx:2884
Int_t GetVersionInt() const
Definition TROOT.h:235
const char * GetConfigFeatures() const
Definition TROOT.h:222
TSeqCollection * GetListOfCleanups() const
Definition TROOT.h:255
void Time(Int_t casetime=1)
Definition TROOT.h:340
Int_t IgnoreInclude(const char *fname, const char *expandedfname)
Return 1 if the name of the given include file corresponds to a class that is known to ROOT,...
Definition TROOT.cxx:1923
Int_t fVersionCode
ROOT version code as used in RVersion.h.
Definition TROOT.h:123
const char * GetDefCanvasName() const
Definition TROOT.h:224
Bool_t IsInterrupted() const
Definition TROOT.h:288
const TString & GetWebDisplay() const
Definition TROOT.h:282
TCollection * GetListOfClasses() const
Definition TROOT.h:238
void Message(Int_t id, const TObject *obj)
Process message id called by obj.
Definition TROOT.cxx:2346
void RemoveClass(TClass *)
Remove a class from the list and map of classes.
Definition TROOT.cxx:2626
TCollection * fClassGenerators
List of user defined class generators;.
Definition TROOT.h:168
TROOT()
Only used by Dictionary.
Definition TROOT.cxx:630
void SetCutClassName(const char *name="TCutG")
Set the default graphical cut class name for the graphics editor By default the graphics editor creat...
Definition TROOT.cxx:2681
TSeqCollection * fCanvases
List of canvases.
Definition TROOT.h:157
TObject * FindObjectAnyFile(const char *name) const override
Scan the memory lists of all files for an object with name.
Definition TROOT.cxx:1431
const TObject * fPrimitive
Currently selected primitive.
Definition TROOT.h:146
void SetWebDisplay(const char *webdisplay="")
Specify where web graphics shall be rendered.
Definition TROOT.cxx:2828
Bool_t fIsWebDisplay
True if session uses web widgets.
Definition TROOT.h:136
TFolder * fRootFolder
top level folder //root
Definition TROOT.h:174
void AddClassGenerator(TClassGenerator *gen)
Add a class generator.
Definition TROOT.cxx:1030
const char * GetCutClassName() const
Definition TROOT.h:223
Int_t GetBuiltTime() const
Definition TROOT.h:229
void SetFromPopUp(Bool_t flag=kTRUE)
Definition TROOT.h:330
TSeqCollection * fGeometries
List of geometries.
Definition TROOT.h:162
TString fCutClassName
Name of default CutG class in graphics editor.
Definition TROOT.h:177
TInterpreter * fInterpreter
Command interpreter.
Definition TROOT.h:133
TSeqCollection * GetListOfMessageHandlers() const
Definition TROOT.h:257
std::vector< std::pair< std::string, int > > FwdDeclArgsToKeepCollection_t
Definition TROOT.h:194
Int_t fVersionTime
Time of ROOT version (ex 1152)
Definition TROOT.h:125
void SetLineIsProcessing()
Definition TROOT.h:333
void SetMustClean(Bool_t flag=kTRUE)
Definition TROOT.h:336
void EndOfProcessCleanups()
Execute the cleanups necessary at the end of the process, in particular those that must be executed b...
Definition TROOT.cxx:1243
Bool_t fBatch
True if session without graphics.
Definition TROOT.h:134
Bool_t IsWebDisplayBatch() const
Definition TROOT.h:293
TSeqCollection * GetListOfFiles() const
Definition TROOT.h:244
Bool_t fEscape
True if ESC has been pressed.
Definition TROOT.h:143
static const TString & GetBinDir()
Get the binary directory in the installation. Static utility function.
Definition TROOT.cxx:2990
TSeqCollection * GetListOfSockets() const
Definition TROOT.h:246
Int_t fVersionInt
ROOT version in integer format (501)
Definition TROOT.h:122
static const TString & GetIncludeDir()
Get the include directory in the installation. Static utility function.
Definition TROOT.cxx:3043
Bool_t fFromPopUp
True if command executed from a popup menu.
Definition TROOT.h:139
void Idle(UInt_t idleTimeInSec, const char *command=nullptr)
Execute command when system has been idle for idleTimeInSec seconds.
Definition TROOT.cxx:1887
TSeqCollection * fSockets
List of network sockets.
Definition TROOT.h:156
void ls(Option_t *option="") const override
To list all objects of the application.
Definition TROOT.cxx:2246
Bool_t IsEscaped() const
Definition TROOT.h:289
static const char * GetMacroPath()
Get macro search path. Static utility function.
Definition TROOT.cxx:2760
TCollection * fFunctions
List of analytic functions.
Definition TROOT.h:159
Int_t GetVersionDate() const
Definition TROOT.h:233
void SaveContext()
Save the current interpreter context.
Definition TROOT.cxx:2669
TCollection * GetListOfClassGenerators() const
Definition TROOT.h:258
Bool_t IsExecutingMacro() const
Definition TROOT.h:286
TDataType * GetType(const char *name, Bool_t load=kFALSE) const
Return pointer to type with name.
Definition TROOT.cxx:1557
static void Initialize()
Initialize ROOT explicitly.
Definition TROOT.cxx:2900
static void ShutDown()
Shut down ROOT.
Definition TROOT.cxx:3137
TObject * GetFunction(const char *name) const
Return pointer to function with name.
Definition TROOT.cxx:1582
static Int_t ConvertVersionCode2Int(Int_t code)
Convert version code to an integer, i.e. 331527 -> 51507.
Definition TROOT.cxx:2923
TSeqCollection * fMessageHandlers
List of message handlers.
Definition TROOT.h:166
void SetStyle(const char *stylename="Default")
Change current style to style with name stylename.
Definition TROOT.cxx:2728
TSeqCollection * GetListOfMappedFiles() const
Definition TROOT.h:245
void SetEditHistograms(Bool_t flag=kTRUE)
Definition TROOT.h:327
AListOfEnums_t fEnums
List of enum types.
Definition TROOT.h:172
void ReadGitInfo()
Read Git commit SHA1 and branch name.
Definition TROOT.cxx:2425
void ForceStyle(Bool_t force=kTRUE)
Definition TROOT.h:213
static Bool_t fgRootInit
Singleton initialization flag.
Definition TROOT.h:111
void RefreshBrowsers()
Refresh all browsers.
Definition TROOT.cxx:2508
void CloseFiles()
Close any files and sockets that gROOT knows about.
Definition TROOT.cxx:1163
const char * GetVersion() const
Definition TROOT.h:237
std::atomic< TApplication * > fApplication
Pointer to current application.
Definition TROOT.h:132
const char * FindObjectPathName(const TObject *obj) const
Return path name of obj somewhere in the //root/... path.
Definition TROOT.cxx:1468
static Int_t ConvertVersionInt2Code(Int_t v)
Convert version as an integer to version code as used in RVersion.h.
Definition TROOT.cxx:2931
void ResetClassSaved()
Reset the ClassSaved status of all classes.
Definition TROOT.cxx:1091
static const TString & GetTTFFontDir()
Get the fonts directory in the installation. Static utility function.
Definition TROOT.cxx:3190
const char * GetGitBranch() const
Definition TROOT.h:231
Bool_t fForceStyle
Force setting of current style when reading objects.
Definition TROOT.h:141
Bool_t FromPopUp() const
Definition TROOT.h:214
const TObject * GetSelectedPrimitive() const
Definition TROOT.h:276
TCanvas * MakeDefCanvas() const
Return a default canvas.
Definition TROOT.cxx:1549
TCollection * fTypes
List of data types definition.
Definition TROOT.h:149
TColor * GetColor(Int_t color) const
Return address of color with index color.
Definition TROOT.cxx:1531
Bool_t IsLineProcessing() const
Definition TROOT.h:290
TGlobal * GetGlobal(const char *name, Bool_t load=kFALSE) const
Return pointer to global variable by name.
Definition TROOT.cxx:1626
TClass * FindSTLClass(const char *name, Bool_t load, Bool_t silent=kFALSE) const
return a TClass object corresponding to 'name' assuming it is an STL container.
Definition TROOT.cxx:1479
TSeqCollection * fStreamerInfo
List of active StreamerInfo classes.
Definition TROOT.h:167
void Append(TObject *obj, Bool_t replace=kFALSE) override
Append object to this directory.
Definition TROOT.cxx:1042
static const TString & GetIconPath()
Get the icon path in the installation. Static utility function.
Definition TROOT.cxx:3169
TSeqCollection * GetListOfCanvases() const
Definition TROOT.h:247
std::atomic< TListOfEnums * > AListOfEnums_t
Definition TROOT.h:117
TCollection * GetListOfGlobalFunctions(Bool_t load=kFALSE)
Return list containing the TFunctions currently defined.
Definition TROOT.cxx:1821
TString fGitDate
Date and time when make was run.
Definition TROOT.h:130
TSeqCollection * fSpecials
List of special objects.
Definition TROOT.h:164
TCollection * GetListOfFunctionTemplates()
Definition TROOT.cxx:1766
void SetExecutingMacro(Bool_t flag=kTRUE)
Definition TROOT.h:329
static void RegisterModule(const char *modulename, const char **headers, const char **includePaths, const char *payLoadCode, const char *fwdDeclCode, void(*triggerFunc)(), const FwdDeclArgsToKeepCollection_t &fwdDeclsArgToSkip, const char **classesHeaders, bool hasCxxModule=false)
Called by static dictionary initialization to register clang modules for headers.
Definition TROOT.cxx:2533
TObject * FindObject(const char *name) const override
Returns address of a ROOT object if it exists.
Definition TROOT.cxx:1308
TCollection * fClasses
List of classes definition.
Definition TROOT.h:148
void SetInterrupt(Bool_t flag=kTRUE)
Definition TROOT.h:331
Bool_t fEditHistograms
True if histograms can be edited with the mouse.
Definition TROOT.h:138
TListOfDataMembers * fGlobals
List of global variables.
Definition TROOT.h:151
TListOfFunctionTemplates * fFuncTemplate
List of global function templates.
Definition TROOT.h:150
TSeqCollection * GetClipboard() const
Definition TROOT.h:260
Int_t fTimer
Timer flag.
Definition TROOT.h:131
TSeqCollection * fDataSets
List of data sets (TDSet or TChain)
Definition TROOT.h:171
TString fConfigOptions
ROOT ./configure set build options.
Definition TROOT.h:119
TStyle * GetStyle(const char *name) const
Return pointer to style with name.
Definition TROOT.cxx:1574
TCollection * GetListOfEnums(Bool_t load=kFALSE)
Definition TROOT.cxx:1749
Longptr_t ProcessLineSync(const char *line, Int_t *error=nullptr)
Process interpreter command via TApplication::ProcessLine().
Definition TROOT.cxx:2386
void InitInterpreter()
Initialize interpreter (cling)
Definition TROOT.cxx:2060
TCollection * GetListOfGlobals(Bool_t load=kFALSE)
Return list containing the TGlobals currently defined.
Definition TROOT.cxx:1783
TVirtualPad * GetSelectedPad() const
Definition TROOT.h:277
static void SetDirLevel(Int_t level=0)
Return Indentation level for ls().
Definition TROOT.cxx:2915
TSeqCollection * fSecContexts
List of security contexts (TSecContext)
Definition TROOT.h:169
TString fWebDisplay
If not empty it defines where web graphics should be rendered (cef, qt6, browser.....
Definition TROOT.h:135
static const char * GetTutorialsDir()
Get the tutorials directory in the installation.
Definition TROOT.cxx:3212
TCollection * GetListOfFunctionOverloads(const char *name) const
Return the collection of functions named "name".
Definition TROOT.cxx:1667
TSeqCollection * fCleanups
List of recursiveRemove collections.
Definition TROOT.h:165
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
Definition TROOT.cxx:2907
TApplication * GetApplication() const
Definition TROOT.h:216
void SetBatch(Bool_t batch=kTRUE)
Set batch mode for ROOT If the argument evaluates to true, the session does not use interactive graph...
Definition TROOT.cxx:2801
Int_t fLineIsProcessing
To synchronize multi-threads.
Definition TROOT.h:108
Int_t Timer() const
Definition TROOT.h:341
static const TString & GetSourceDir()
Get the source directory in the installation. Static utility function.
Definition TROOT.cxx:3148
static const TString & GetMacroDir()
Get the macro directory in the installation. Static utility function.
Definition TROOT.cxx:3095
TString fGitCommit
Git commit SHA1 of built.
Definition TROOT.h:128
Longptr_t ProcessLine(const char *line, Int_t *error=nullptr)
Process interpreter command via TApplication::ProcessLine().
Definition TROOT.cxx:2366
TSeqCollection * fClosedObjects
List of closed objects from the list of files and sockets, so we can delete them if neededCl.
Definition TROOT.h:153
TSeqCollection * fTasks
List of tasks.
Definition TROOT.h:160
TSeqCollection * fClipboard
List of clipboard objects.
Definition TROOT.h:170
const char * GetGitDate()
Return date/time make was run.
Definition TROOT.cxx:2470
TProcessUUID * GetUUIDs() const
Definition TROOT.h:281
void SetEditorMode(const char *mode="")
Set editor mode.
Definition TROOT.cxx:2702
TSeqCollection * GetListOfStreamerInfo() const
Definition TROOT.h:256
static const TString & GetTutorialDir()
Get the tutorials directory in the installation. Static utility function.
Definition TROOT.cxx:3116
virtual ~TROOT()
Clean up and free resources used by ROOT (files, network sockets, shared memory segments,...
Definition TROOT.cxx:864
TSeqCollection * fColors
List of colors.
Definition TROOT.h:161
Int_t GetBuiltDate() const
Definition TROOT.h:228
TCollection * GetListOfFunctions() const
Definition TROOT.h:249
TFunction * GetGlobalFunctionWithPrototype(const char *name, const char *proto=nullptr, Bool_t load=kFALSE)
Return pointer to global function by name.
Definition TROOT.cxx:1713
Bool_t GetForceStyle() const
Definition TROOT.h:227
TFolder * GetRootFolder() const
Definition TROOT.h:280
TSeqCollection * GetListOfBrowsers() const
Definition TROOT.h:252
Bool_t ReadingObject() const
Deprecated (will be removed in next release).
Definition TROOT.cxx:2456
TSeqCollection * fStyles
List of styles.
Definition TROOT.h:158
Bool_t GetEditHistograms() const
Definition TROOT.h:225
Int_t fVersionDate
Date of ROOT version (ex 951226)
Definition TROOT.h:124
TSeqCollection * GetListOfColors() const
Definition TROOT.h:239
Longptr_t Macro(const char *filename, Int_t *error=nullptr, Bool_t padUpdate=kTRUE)
Execute a macro in the interpreter.
Definition TROOT.cxx:2312
Int_t fBuiltTime
Time of ROOT built.
Definition TROOT.h:127
static const std::vector< std::string > & AddExtraInterpreterArgs(const std::vector< std::string > &args)
Provide command line arguments to the interpreter construction.
Definition TROOT.cxx:2953
void SetLineHasBeenProcessed()
Definition TROOT.h:334
TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE) const
Return pointer to class with name. Obsolete, use TClass::GetClass directly.
Definition TROOT.cxx:1513
TVirtualPad * fSelectPad
Currently selected pad.
Definition TROOT.h:147
TSeqCollection * fFiles
List of files.
Definition TROOT.h:154
void Browse(TBrowser *b) override
Add browsable objects to TBrowser.
Definition TROOT.cxx:1051
static const TString & GetRootSys()
Get the rootsys directory in the installation. Static utility function.
Definition TROOT.cxx:2980
TListOfFunctions * GetGlobalFunctions()
Internal routine returning, and creating if necessary, the list of global function.
Definition TROOT.cxx:1658
Bool_t fInterrupt
True if macro should be interrupted.
Definition TROOT.h:142
Bool_t fMustClean
True if object destructor scans canvases.
Definition TROOT.h:140
Int_t LoadClass(const char *classname, const char *libname, Bool_t check=kFALSE)
Check if class "classname" is known to the interpreter (in fact, this check is not needed anymore,...
Definition TROOT.cxx:2179
TFunction * GetGlobalFunction(const char *name, const char *params=nullptr, Bool_t load=kFALSE)
Return pointer to global function by name.
Definition TROOT.cxx:1680
void AddClass(TClass *cl)
Add a class to the list and map of classes.
Definition TROOT.cxx:1020
static Int_t RootVersionCode()
Return ROOT version code as defined in RVersion.h.
Definition TROOT.cxx:2942
TObject * FindSpecialObject(const char *name, void *&where)
Returns address and folder of a ROOT object if it exists.
Definition TROOT.cxx:1362
TObject * Remove(TObject *) override
Remove an object from the in-memory list.
Definition TROOT.cxx:2616
void InitSystem()
Operating System interface.
Definition TROOT.cxx:1973
Longptr_t ProcessLineFast(const char *line, Int_t *error=nullptr)
Process interpreter command directly via CINT interpreter.
Definition TROOT.cxx:2403
Int_t GetEditorMode() const
Definition TROOT.h:226
Bool_t ClassSaved(TClass *cl)
return class status 'ClassSaved' for class cl This function is called by the SavePrimitive functions ...
Definition TROOT.cxx:1078
const char * GetGitCommit() const
Definition TROOT.h:230
TString fGitBranch
Git branch.
Definition TROOT.h:129
TCollection * GetListOfTypes(Bool_t load=kFALSE)
Return a dynamic list giving access to all TDataTypes (typedefs) currently defined.
Definition TROOT.cxx:1860
static Int_t fgDirLevel
Indentation level for ls()
Definition TROOT.h:110
TSeqCollection * GetListOfTasks() const
Definition TROOT.h:254
Bool_t IsBatch() const
Definition TROOT.h:285
Bool_t IsRootFile(const char *filename) const
Return true if the file is local and is (likely) to be a ROOT file.
Definition TROOT.cxx:2226
Bool_t IsWebDisplay() const
Definition TROOT.h:292
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
Definition TROOT.cxx:2892
Int_t GetVersionTime() const
Definition TROOT.h:234
static const TString & GetDocDir()
Get the documentation directory in the installation. Static utility function.
Definition TROOT.cxx:3079
static const TString & GetEtcDir()
Get the sysconfig directory in the installation. Static utility function.
Definition TROOT.cxx:3053
TROOT(const TROOT &)=delete
Int_t GetNclasses() const
Get number of classes.
Definition TROOT.cxx:1871
static const char **& GetExtraInterpreterArgs()
INTERNAL function! Used by rootcling to inject interpreter arguments through a C-interface layer.
Definition TROOT.cxx:2963
static void SetMacroPath(const char *newpath)
Set or extend the macro search path.
Definition TROOT.cxx:2786
void SetSelectedPad(TVirtualPad *pad)
Definition TROOT.h:338
void InitThreads()
Initialize threads library.
Definition TROOT.cxx:2048
TProcessUUID * fUUIDs
Pointer to TProcessID managing TUUIDs.
Definition TROOT.h:173
TString fConfigFeatures
ROOT ./configure detected build features.
Definition TROOT.h:120
TFunctionTemplate * GetFunctionTemplate(const char *name)
Definition TROOT.cxx:1613
TPluginManager * fPluginManager
Keeps track of plugin library handlers.
Definition TROOT.h:176
TObject * GetGeometry(const char *name) const
Return pointer to Geometry with name.
Definition TROOT.cxx:1742
void RecursiveRemove(TObject *obj) override
Recursively remove this object from the list of Cleanups.
Definition TROOT.cxx:2494
Bool_t fExecutingMacro
True while executing a TMacro.
Definition TROOT.h:144
TList * GetListOfBrowsables() const
Definition TROOT.h:264
Int_t fBuiltDate
Date of ROOT built.
Definition TROOT.h:126
Bool_t fIsWebDisplayBatch
True if web widgets are not displayed.
Definition TROOT.h:137
static const TString & GetSharedLibDir()
Get the shared libraries directory in the installation. Static utility function.
Definition TROOT.cxx:3032
void SetEscape(Bool_t flag=kTRUE)
Definition TROOT.h:332
Int_t GetVersionCode() const
Definition TROOT.h:236
TSeqCollection * fMappedFiles
List of memory mapped files.
Definition TROOT.h:155
Int_t GetNtypes() const
Get number of types.
Definition TROOT.cxx:1879
TSeqCollection * GetListOfSpecials() const
Definition TROOT.h:253
Int_t LoadMacro(const char *filename, Int_t *error=nullptr, Bool_t check=kFALSE)
Load a macro in the interpreter's memory.
Definition TROOT.cxx:2264
TFile * GetFile() const override
Definition TROOT.h:266
static const TString & GetLibDir()
Get the library directory in the installation. Static utility function.
Definition TROOT.cxx:3011
void SetDefCanvasName(const char *name="c1")
Definition TROOT.h:326
TSeqCollection * fBrowsers
List of browsers.
Definition TROOT.h:163
TString fDefCanvasName
Name of default canvas.
Definition TROOT.h:178
TListOfFunctions * fGlobalFunctions
List of global functions.
Definition TROOT.h:152
TList * fBrowsables
List of browsables.
Definition TROOT.h:175
TObject * FindObjectAny(const char *name) const override
Return a pointer to the first object with name starting at //root.
Definition TROOT.cxx:1421
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
Definition TROOT.cxx:2744
Bool_t IsFolder() const override
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition TROOT.h:287
void SetSelectedPrimitive(const TObject *obj)
Definition TROOT.h:337
void Reset(Option_t *option="")
Delete all global interpreter objects created since the last call to Reset.
Definition TROOT.cxx:2649
Int_t fEditorMode
Current Editor mode.
Definition TROOT.h:145
const char * FindObjectClassName(const char *name) const
Returns class name of a ROOT object including CINT globals.
Definition TROOT.cxx:1448
TSeqCollection * GetListOfDataSets() const
Definition TROOT.h:261
Bool_t MustClean() const
Definition TROOT.h:301
TSeqCollection * GetListOfClosedObjects() const
Definition TROOT.h:243
const char * GetConfigOptions() const
Definition TROOT.h:221
static const TString & GetDataDir()
Get the data directory in the installation. Static utility function.
Definition TROOT.cxx:3063
TROOT & operator=(const TROOT &)=delete
TSeqCollection * GetListOfSecContexts() const
Definition TROOT.h:259
TSeqCollection * GetListOfGeometries() const
Definition TROOT.h:251
TSeqCollection * GetListOfStyles() const
Definition TROOT.h:248
TString fVersion
ROOT version as TString, example: 0.05.01.
Definition TROOT.h:121
static Int_t GetDirLevel()
return directory level
Definition TROOT.cxx:2752
void SetReadingObject(Bool_t flag=kTRUE)
Definition TROOT.cxx:2461
TInterpreter * GetInterpreter() const
Definition TROOT.h:217
TPluginManager * GetPluginManager() const
Definition TROOT.h:215
Sequenceable collection abstract base class.
Basic string class.
Definition TString.h:139
TStyle objects may be created to define special styles.
Definition TStyle.h:29
This class implements a mutex interface.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition TVirtualPad.h:51
TLine * line
void SetRequireCleanup(TObject &obj)
Definition TROOT.h:386
R__EXTERN TROOT * gROOTLocal
Definition TROOT.h:384
void DisableParBranchProcessing()
Globally disables the IMT use case of parallel branch processing, deactivating the corresponding lock...
Definition TROOT.cxx:434
void EnableParBranchProcessing()
Globally enables the parallel branch processing, which is a case of implicit multi-threading (IMT) in...
Definition TROOT.cxx:420
Bool_t IsParBranchProcessingEnabled()
Returns true if parallel branch processing is enabled.
Definition TROOT.cxx:447
TROOT * GetROOT2()
Definition TROOT.cxx:387
Bool_t RequiresCleanup(TObject &obj)
Definition TROOT.h:391
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
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:539
Bool_t IsImplicitMTEnabled()
Returns true if the implicit multi-threading in ROOT is enabled.
Definition TROOT.cxx:595
UInt_t GetThreadPoolSize()
Returns the size of ROOT's thread pool.
Definition TROOT.cxx:602
void EnableThreadSafety()
Enable support for multi-threading within the ROOT code in particular, enables the global mutex to ma...
Definition TROOT.cxx:501
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Definition TROOT.h:400
EIMTConfig
Definition TROOT.h:83
@ kWholeMachine
Default configuration.
@ kNumConfigs
Number of support IMT semantic configurations.
@ kExistingTBBArena
Use the existing TBB arena.
TROOT * GetROOT()
Definition TROOT.cxx:472
void DisableImplicitMT()
Disables the implicit multi-threading in ROOT (see EnableImplicitMT).
Definition TROOT.cxx:581
TLine l
Definition textangle.C:4