Logo ROOT   6.17/01
Reference Guide
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
ROOT Namespace Reference

Namespace for new ROOT classes and functions. More...

Namespaces

 ExecutorUtils
 This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecutor::MapReduce.
 
 Fit
 Namespace for the fitting classes.
 
 R
 
namespace associated R package for ROOT.
 
 TypeTraits
 ROOT type_traits extensions.
 

Classes

struct  RCompressionSetting
 The global settings depend on a global variable named R__ZipMode which can be modified by a global function named R__SetZipMode. More...
 
class  RDataFrame
 
ROOT's RDataFrame offers a high level interface for analyses of data stored in TTrees, CSV's and other data formats. More...
 
class  TExecutor
 This class defines an interface to execute the same task multiple times in parallel, possibly with different arguments every time. More...
 
class  TGenericClassInfo
 
class  TIOFeatures
 TIOFeatures provides the end-user with the ability to change the IO behavior of data written via a TTree. More...
 
class  TPoolManager
 
A manager for the scheduler behind ROOT multithreading operations. More...
 
class  TProcessExecutor
 This class provides a simple interface to execute the same task multiple times in parallel, possibly with different arguments every time. More...
 
class  TReadLockGuard
 
class  TReentrantRWLock
 
class  TRWMutexImp
 
class  TRWSpinLock
 
class  TRWSpinLockReadGuard
 
class  TRWSpinLockWriteGuard
 
class  TSchemaRule
 
class  TSeq
 
A pseudo container class which is a generator of indices. More...
 
class  TSequentialExecutor
 
class  TSpinMutex
 A spin mutex class which respects the STL interface for mutexes. More...
 
class  TThreadedObject
 A wrapper to make object instances thread private, lazily. More...
 
class  TThreadExecutor
 This class provides a simple interface to execute the same task multiple times in parallel, possibly with different arguments every time. More...
 
class  TTreeProcessorMP
 This class provides an interface to process a TTree dataset in parallel with multi-process technology. More...
 
class  TTreeProcessorMT
 A class to process the entries of a TTree in parallel. More...
 
class  TVirtualRWMutex
 
class  TWriteLockGuard
 
class  TypeTraits
 

Typedefs

using ColumnNames_t = ROOT::Detail::RDF::ColumnNames_t
 
using ColumnNamesPtr_t = std::shared_ptr< const ColumnNames_t >
 
typedef void(* DelArrFunc_t) (void *)
 
typedef void(* DelFunc_t) (void *)
 
typedef void(* DesFunc_t) (void *)
 
typedef void(* DirAutoAdd_t) (void *, TDirectory *)
 
using Double_v = Double_t
 
using Float_v = Float_t
 
using Int32_v = Int_t
 
using Int_v = Int_t
 
typedef std::map< std::string, ROOT::Internal::TSchemaTypeMembersTypeMap_t
 
typedef Long64_t(* MergeFunc_t) (void *, TCollection *, TFileMergeInfo *)
 
typedef void *(* NewArrFunc_t) (Long_t size, void *arena)
 
typedef void *(* NewFunc_t) (void *)
 
typedef void(* ResetAfterMergeFunc_t) (void *, TFileMergeInfo *)
 
typedef std::map< std::string, std::list< SchemaRuleMap_t > > SchemaRuleClassMap_t
 
typedef std::map< std::string, std::string > SchemaRuleMap_t
 
typedef std::list< std::pair< ROOT::Internal::TSchemaType, std::string > > SourceTypeList_t
 
using TDataFrame = ROOT::RDataFrame
 
using TSeqI = TSeq< int >
 
using TSeqL = TSeq< long >
 
using TSeqU = TSeq< unsigned int >
 
using TSeqUL = TSeq< unsigned long >
 
using UInt32_v = UInt_t
 
using UInt_v = UInt_t
 

Enumerations

enum  ECompressionAlgorithm {
  kUseGlobalCompressionSetting = RCompressionSetting::EAlgorithm::kUseGlobal, kUseGlobalSetting = RCompressionSetting::EAlgorithm::kUseGlobal, kZLIB = RCompressionSetting::EAlgorithm::kZLIB, kLZMA = RCompressionSetting::EAlgorithm::kLZMA,
  kOldCompressionAlgo = RCompressionSetting::EAlgorithm::kOldCompressionAlgo, kLZ4 = RCompressionSetting::EAlgorithm::kLZ4, kUndefinedCompressionAlgorithm = RCompressionSetting::EAlgorithm::kUndefined
}
 
enum  EFromHumanReadableSize { kSuccess, kParseFail, kOverflow }
 
enum  EFunctionMatchMode { kExactMatch = 0, kConversionMatch = 1 }
 
enum  EIOFeatures { kSupported = 0 }
 
enum  ESTLType {
  kNotSTL = 0, kSTLvector = 1, kSTLlist = 2, kSTLdeque = 3,
  kSTLmap = 4, kSTLmultimap = 5, kSTLset = 6, kSTLmultiset = 7,
  kSTLbitset = 8, kSTLforwardlist = 9, kSTLunorderedset = 10, kSTLunorderedmultiset = 11,
  kSTLunorderedmap = 12, kSTLunorderedmultimap = 13, kSTLend = 14, kSTLany = 300,
  kSTLstring = 365
}
 
enum  EThreadSlotReservation {
  kMaxUserThreadSlot = 20, kPadThreadSlot = 20, kClassThreadSlot = 21, kDirectoryThreadSlot = 22,
  kFileThreadSlot = 23, kPerfStatsThreadSlot = 24, kMaxThreadSlot = 25
}
 

Functions

void AddClass (const char *cname, Version_t id, DictFuncPtr_t dict, Int_t pragmabits)
 
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). More...
 
void AddClassAlternate (const char *normName, const char *alternate)
 Global function called by GenerateInitInstance. More...
 
void CallRecursiveRemoveIfNeeded (TObject &obj)
 call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true. More...
 
void Class_ShowMembers (TClass *cl, const void *obj, TMemberInspector &)
 Indirect call to the implementation of ShowMember allowing [forward] declaration with out a full definition of the TClass class. More...
 
static UInt_t ClassTableHash (const char *name, UInt_t size)
 
int CompressionSettings (RCompressionSetting::EAlgorithm algorithm, int compressionLevel)
 
int CompressionSettings (ROOT::ECompressionAlgorithm algorithm, int compressionLevel)
 Deprecated name, do not use:
 
TClassCreateClass (const char *cname, Version_t id, const std::type_info &info, TVirtualIsAProxy *isa, const char *dfil, const char *ifil, Int_t dl, Int_t il)
 Global function called by a class' static Dictionary() method (see the ClassDef macro). More...
 
TClassCreateClass (const char *cname, Version_t id, const char *dfil, const char *ifil, Int_t dl, Int_t il)
 Global function called by a class' static Dictionary() method (see the ClassDef macro). More...
 
void DisableImplicitMT ()
 Disables the implicit multi-threading in ROOT (see EnableImplicitMT).
 
void EnableImplicitMT (UInt_t numthreads=0)
 Enable ROOT's implicit multi-threading for all objects and methods that provide an internal parallelisation mechanism. More...
 
void EnableThreadSafety ()
 Enables the global mutex to make ROOT thread safe/aware. More...
 
static std::string::size_type FindEndSymbol (std::string &command)
 
template<typename T >
EFromHumanReadableSize FromHumanReadableSize (std::string_view str, T &value)
 Convert strings like the following into byte counts 5MB, 5 MB, 5M, 3.7GB, 123b, 456kB, 3.7GiB, 5MiB with some amount of forgiveness baked into the parsing. More...
 
template<typename T >
EFromHumanReadableSize FromHumanReadableSize (ROOT::Internal::TStringView str, T &value)
 
template<typename T >
TClassGetClass (T *)
 
template<typename T >
TClassGetClass (const T *)
 
template<typename T >
TClassGetClass (T **)
 
template<typename T >
TClassGetClass (const T **)
 
template<typename T >
TClassGetClass (const T *const *)
 
std::vector< std::unique_ptr< TClassRec > > & GetDelayedAddClass ()
 
std::vector< std::pair< const char *, const char * > > & GetDelayedAddClassAlternate ()
 
UInt_t GetImplicitMTPoolSize ()
 Returns the size of the pool used for implicit multi-threading.
 
TStringGetMacroPath ()
 
TROOTGetROOT ()
 
void GetRuleIncludes (std::list< std::string > &result)
 Get the list of includes specified in the shema rules.
 
bool HasValidDataMembers (SchemaRuleMap_t &rule, MembersTypeMap_t &members, std::string &error_string)
 Check if given rule contains references to valid data members.
 
Bool_t IsImplicitMTEnabled ()
 Returns true if the implicit multi-threading in ROOT is enabled.
 
template<class T >
TSeq< T > MakeSeq (T end)
 
template<class T >
TSeq< T > MakeSeq (T begin, T end, T step=1)
 
bool ParseRule (std::string command, ROOT::Internal::MembersMap_t &result, std::string &error_string)
 Parse the schema rule as specified in the LinkDef file.
 
void ProcessReadPragma (const char *args, std::string &error_string)
 I am being called when a read pragma is encountered.
 
void ProcessReadRawPragma (const char *args, std::string &error_string)
 I am being called then a readraw pragma is encountered.
 
TNamedRegisterClassTemplate (const char *name, const char *file, Int_t line)
 Global function to register the implementation file and line of a class template (i.e. More...
 
void RemoveClass (const char *cname)
 Global function called by the dtor of a class's init class (see the ClassImp macro). More...
 
void ResetClassVersion (TClass *, const char *, Short_t)
 Global function to update the version number. More...
 
template<class RootClass >
Short_t SetClassVersion (RootClass *)
 
static void StrReplace (std::string &proc, const std::string &pat, const std::string &tr)
 Replace all accurances of given string with other string.
 
template<typename value_type >
void ToHumanReadableSize (value_type bytes, Bool_t si, Double_t *coeff, const char **units)
 Return the size expressed in 'human readable' format. More...
 
static Bool_t ValidateRule (const std::map< std::string, std::string > &rule, std::string &error_string)
 Validate if the user specified rules are correct.
 
static void WriteAutoVariables (const std::list< std::string > &target, const SourceTypeList_t &source, MembersTypeMap_t &members, std::string &className, std::string &mappedName, std::ostream &output)
 Write down the sources.
 
void WriteReadRawRuleFunc (SchemaRuleMap_t &rule, int index, std::string &mappedName, MembersTypeMap_t &members, std::ostream &output)
 Write the conversion function for ReadRaw rule, the function name is being written to rule["funcname"].
 
void WriteReadRuleFunc (SchemaRuleMap_t &rule, int index, std::string &mappedName, MembersTypeMap_t &members, std::ostream &output)
 Write the conversion function for Read rule, the function name is being written to rule["funcname"].
 
void WriteSchemaList (std::list< SchemaRuleMap_t > &rules, const std::string &listName, std::ostream &output)
 Write schema rules.
 

Variables

R__EXTERN TVirtualRWMutexgCoreMutex = nullptr
 
R__EXTERN SchemaRuleClassMap_t gReadRawRules
 
R__EXTERN SchemaRuleClassMap_t gReadRules
 

Detailed Description

Namespace for new ROOT classes and functions.

A helper class for managing IMT work during TTree:Fill operations.

Enumeration Type Documentation

◆ ECompressionAlgorithm

Enumerator
kUseGlobalCompressionSetting 

Deprecated name, do not use:

kUseGlobalSetting 

Deprecated name, do not use:

kZLIB 

Deprecated name, do not use:

kLZMA 

Deprecated name, do not use:

kOldCompressionAlgo 

Deprecated name, do not use:

kLZ4 

Deprecated name, do not use:

kUndefinedCompressionAlgorithm 

Deprecated name, do not use:

Definition at line 96 of file Compression.h.

Function Documentation

◆ AddClass()

void ROOT::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).

Definition at line 760 of file TClassTable.cxx.

◆ AddClassAlternate()

void ROOT::AddClassAlternate ( const char *  normName,
const char *  alternate 
)

Global function called by GenerateInitInstance.

(see the ClassImp macro).

Definition at line 782 of file TClassTable.cxx.

◆ CallRecursiveRemoveIfNeeded()

void ROOT::CallRecursiveRemoveIfNeeded ( TObject obj)
inline

call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.

Note: this reset the kMustCleanup bit to allow harmless multiple call to this function.

Definition at line 399 of file TROOT.h.

◆ Class_ShowMembers()

void ROOT::Class_ShowMembers ( TClass cl,
const void *  obj,
TMemberInspector insp 
)

Indirect call to the implementation of ShowMember allowing [forward] declaration with out a full definition of the TClass class.

Definition at line 496 of file TClass.cxx.

◆ CreateClass() [1/2]

TClass * ROOT::CreateClass ( const char *  cname,
Version_t  id,
const std::type_info &  info,
TVirtualIsAProxy isa,
const char *  dfil,
const char *  ifil,
Int_t  dl,
Int_t  il 
)

Global function called by a class' static Dictionary() method (see the ClassDef macro).

Definition at line 5636 of file TClass.cxx.

◆ CreateClass() [2/2]

TClass * ROOT::CreateClass ( const char *  cname,
Version_t  id,
const char *  dfil,
const char *  ifil,
Int_t  dl,
Int_t  il 
)

Global function called by a class' static Dictionary() method (see the ClassDef macro).

Definition at line 5651 of file TClass.cxx.

◆ EnableImplicitMT()

void ROOT::EnableImplicitMT ( UInt_t  numthreads = 0)

Enable ROOT's implicit multi-threading for all objects and methods that provide an internal parallelisation mechanism.

Parameters
[in]numthreadsNumber of threads to use. If not specified or set to zero, the number of threads is automatically decided by the implementation. Any other value is used as a hint.

ROOT must be built with the compilation flag imt=ON for this feature to be available. The following objects and methods automatically take advantage of multi-threading if a call to EnableImplicitMT has been made before usage:

  • RDataFrame internally runs the event-loop by parallelizing over clusters of entries
  • TTree::GetEntry reads multiple branches in parallel
  • TTree::FlushBaskets writes multiple baskets to disk in parallel
  • TTreeCacheUnzip decompresses the baskets contained in a TTreeCache in parallel
  • THx::Fit performs in parallel the evaluation of the objective function over the data
  • TMVA::DNN trains the deep neural networks in parallel
  • TMVA::BDT trains the classifier in parallel and multiclass BDTs are evaluated in parallel

EnableImplicitMT calls in turn EnableThreadSafety. The 'numthreads' parameter allows to control the number of threads to be used by the implicit multi-threading. However, this parameter is just a hint for ROOT: it will try to satisfy the request if the execution scenario allows it. For example, if ROOT is configured to use an external scheduler, setting a value for 'numthreads' might not have any effect.

Definition at line 576 of file TROOT.cxx.

◆ EnableThreadSafety()

void ROOT::EnableThreadSafety ( )

Enables the global mutex to make ROOT thread safe/aware.

The following becomes safe:

  • concurrent construction and destruction of TObjects, including the ones registered in ROOT's global lists (e.g. gROOT->GetListOfCleanups(), gROOT->GetListOfFiles())
  • concurrent usage of different ROOT objects from different threads, including ones with global state (e.g. TFile, TTree, TChain) with the exception of graphics classes (e.g. TCanvas)
  • concurrent calls to ROOT's type system classes, e.g. TClass and TEnum
  • concurrent calls to the interpreter through gInterpreter
  • concurrent loading of ROOT plug-ins

In addition, gDirectory, gFile and gPad become a thread-local variable. In all threads, gDirectory defaults to gROOT, a singleton which supports thread-safe insertion and deletion of contents. gFile and gPad default to nullptr, as it is for single-thread programs.

Note that there is no DisableThreadSafety(). ROOT's thread-safety features cannot be disabled once activated.

Definition at line 545 of file TROOT.cxx.

◆ FromHumanReadableSize()

template<typename T >
EFromHumanReadableSize ROOT::FromHumanReadableSize ( std::string_view  str,
T &  value 
)

Convert strings like the following into byte counts 5MB, 5 MB, 5M, 3.7GB, 123b, 456kB, 3.7GiB, 5MiB with some amount of forgiveness baked into the parsing.

For this routine we use the official SI unit where the [i] is reserved for the 'legacy' power of two units. 1KB = 1000 bytes, 1KiB = 1024 bytes.

Parameters
strthe string to be parsed
valuewill be updated with the result if and only if the parse is successful and does not overflow for the type of value.
Returns
return a EFromHumanReadableSize enum value indicating the success or failure of the parse.

Definition at line 86 of file StringConv.hxx.

◆ RegisterClassTemplate()

TNamed * ROOT::RegisterClassTemplate ( const char *  name,
const char *  file,
Int_t  line 
)

Global function to register the implementation file and line of a class template (i.e.

NOT a concrete class).

Definition at line 862 of file TClassTable.cxx.

◆ RemoveClass()

void ROOT::RemoveClass ( const char *  cname)

Global function called by the dtor of a class's init class (see the ClassImp macro).

Definition at line 837 of file TClassTable.cxx.

◆ ResetClassVersion()

void ROOT::ResetClassVersion ( TClass cl,
const char *  cname,
Short_t  newid 
)

Global function to update the version number.

This is called via the RootClassVersion macro.

if cl!=0 and cname==-1, set the new class version if and only is greater than the existing one and greater or equal to 2; and also ignore the request if fVersionUsed is true.

Note on class version number:

  • If no class has been specified, TClass::GetVersion will return -1
  • The Class Version 0 request the whole object to be transient
  • The Class Version 1, unless specify via ClassDef indicates that the I/O should use the TClass checksum to distinguish the layout of the class

Definition at line 805 of file TClassTable.cxx.

◆ ToHumanReadableSize()

template<typename value_type >
void ROOT::ToHumanReadableSize ( value_type  bytes,
Bool_t  si,
Double_t *  coeff,
const char **  units 
)

Return the size expressed in 'human readable' format.

Parameters
bytesthe size in bytes to be converted
siwhether to use the SI units or not.
coeffreturn the size expressed in the new unit.
unitsreturn a pointer to the string representation of the new unit

Definition at line 38 of file StringConv.hxx.