Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooWorkspace::WSDir Class Reference

Definition at line 219 of file RooWorkspace.h.

Public Types

enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits { kCloseDirectory = (1ULL << ( 7 )) }
 

Public Member Functions

 WSDir (const char *name, const char *title, RooWorkspace *wspace)
 
 ~WSDir () override
 
void AbstractMethod (const char *method) const
 Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it.
 
void Add (TObject *, bool) override
 Overload TDirectory interface method to prohibit insertion of objects in read-only directory workspace representation.
 
void Append (TObject *, bool) override
 Overload TDirectory interface method to prohibit insertion of objects in read-only directory workspace representation.
 
Int_t AppendKey (TKey *key) override
 Insert key in the linked list of keys of this directory.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
void Browse (TBrowser *b) override
 Browse the content of the directory.
 
void Build (TFile *motherFile=nullptr, TDirectory *motherDir=nullptr) override
 
Bool_t cd () override
 Change current directory to "this" directory.
 
Bool_t cd (const char *path) override
 Change current directory the directory described by the path if given one.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
void Clear (Option_t *option="") override
 Delete all objects from a Directory list.
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
 
TObjectCloneObject (const TObject *obj, Bool_t autoadd=kTRUE) override
 Make a clone of an object using the Streamer facility.
 
void Close (Option_t *option="") override
 Delete all objects from memory and directory structure itself.
 
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects.
 
void Copy (TObject &) const override
 Copy this to obj.
 
void Delete (const char *namecycle="") override
 Delete Objects or/and keys in the current directory.
 
virtual void DeleteAll (Option_t *option="")
 Delete all objects from memory.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
void Draw (Option_t *option="") override
 Fill Graphics Structure and Paint.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
void FillBuffer (char *&buffer) override
 Encode directory header into output buffer.
 
TKeyFindKey (const char *keyname) const override
 Find key with name keyname in the current directory.
 
TKeyFindKeyAny (const char *keyname) const override
 Find key with name keyname in the current directory or its subdirectories.
 
TObjectFindObject (const char *name) const override
 Find object by name in the list of memory objects.
 
TObjectFindObject (const TObject *obj) const override
 Find object in the list of memory objects.
 
TObjectFindObjectAny (const char *name) const override
 Find object by name in the list of memory objects of the current directory or its sub-directories.
 
TObjectFindObjectAnyFile (const char *name) const override
 Scan the memory lists of all files for an object with name.
 
template<class T >
T * Get (const char *namecycle)
 See documentation of TDirectoryFile::Get(const char *namecycle)
 
TObjectGet (const char *namecycle) override
 Return pointer to object identified by namecycle.
 
Int_t GetBufferSize () const override
 Return the buffer size to create new TKeys.
 
const TDatimeGetCreationDate () const
 
TDirectoryGetDirectory (const char *apath, Bool_t printError=false, const char *funcname="GetDirectory") override
 Find a directory named "apath".
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
TFileGetFile () const override
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
TKeyGetKey (const char *name, Short_t cycle=9999) const override
 Return pointer to key with name,cycle.
 
virtual TListGetList () const
 
TListGetListOfKeys () const override
 
const TDatimeGetModificationDate () const
 
TObjectGetMother () const
 
TDirectoryGetMotherDir () const
 
const char * GetName () const override
 Returns name of object.
 
Int_t GetNbytesKeys () const override
 
Int_t GetNkeys () const override
 
template<class T >
void GetObject (const char *namecycle, T *&ptr)
 Get an object with proper type checking.
 
void * GetObjectChecked (const char *namecycle, const char *classname) override
 See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl)
 
void * GetObjectChecked (const char *namecycle, const TClass *cl) override
 Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
void * GetObjectUnchecked (const char *namecycle) override
 Return pointer to object identified by namecycle.
 
virtual Option_tGetOption () const
 
virtual const char * GetPath () const
 Returns the full path of the directory.
 
virtual const char * GetPathStatic () const
 Returns the full path of the directory.
 
Long64_t GetSeekDir () const override
 
Long64_t GetSeekKeys () const override
 
Long64_t GetSeekParent () const override
 
const char * GetTitle () const override
 Returns title of object.
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
TUUID GetUUID () const
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
ULong_t Hash () const override
 Return hash value for this object.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
TClassIsA () const override
 
Bool_t IsBuilt () const
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
Bool_t IsFolder () const override
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
Bool_t IsModified () const override
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
Bool_t IsSortable () const override
 
Bool_t IsWritable () const override
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void ls (Option_t *option="") const override
 List Directory contents.
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
TDirectorymkdir (const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) override
 Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
TFileOpenFile (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0) override
 Interface to TFile::Open.
 
void operator delete (void *, size_t)
 Operator delete for sized deallocation.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete (void *ptr, void *vp)
 Only called by placement new when throwing an exception.
 
void operator delete[] (void *, size_t)
 Operator delete [] for sized deallocation.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void operator delete[] (void *ptr, void *vp)
 Only called by placement new[] when throwing an exception.
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
void Paint (Option_t *option="") override
 Paint all objects in the directory.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
void Print (Option_t *option="") const override
 Print all objects in the directory.
 
void Purge (Short_t nkeep=1) override
 Purge lowest key cycles in a directory.
 
virtual void pwd () const
 Print the path of the directory.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
void ReadAll (Option_t *option="") override
 Read objects from a ROOT file directory into memory.
 
Int_t ReadKeys (Bool_t forceRead=kTRUE) override
 Read the linked list of keys.
 
Int_t ReadTObject (TObject *obj, const char *keyname) override
 Read object with keyname from the current directory.
 
void RecursiveRemove (TObject *obj) override
 Recursively remove object from a Directory.
 
virtual TObjectRemove (TObject *)
 Remove an object from the in-memory list.
 
virtual void ResetAfterMerge (TFileMergeInfo *)
 Reset the TDirectory after its content has been merged into another Directory.
 
void ResetBit (UInt_t f)
 
void rmdir (const char *name) override
 Removes subdirectory from the directory.
 
void Save () override
 Save recursively all directory keys and headers.
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
Int_t SaveObjectAs (const TObject *obj, const char *filename="", Option_t *option="") const override
 Save object in filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SaveSelf (Bool_t force=kFALSE) override
 Save Directory keys and header.
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
void SetBufferSize (Int_t bufsize) override
 Set the default buffer size when creating new TKeys.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
void SetModified () override
 
virtual void SetMother (TObject *mother)
 
void SetName (const char *newname) override
 Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
void SetSeekDir (Long64_t v) override
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
void SetTRefAction (TObject *ref, TObject *parent) override
 Find the action to be executed in the dictionary of the parent class and store the corresponding exec number into fBits.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void SetWritable (Bool_t writable=kTRUE) override
 Set the new value of fWritable recursively.
 
Int_t Sizeof () const override
 Return the size in bytes of the directory header.
 
void Streamer (TBuffer &) override
 Stream a class object.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 
Int_t Write (const char *name=nullptr, Int_t opt=0, Int_t bufsize=0) const override
 One can not save a const TDirectory object.
 
Int_t Write (const char *name=nullptr, Int_t opt=0, Int_t bufsize=0) override
 Write all objects in memory to disk.
 
void WriteDirHeader () override
 Overwrite the Directory header record.
 
void WriteKeys () override
 Write Keys linked list on the file.
 
template<typename T >
std::enable_if_t<!std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
 
template<typename T >
std::enable_if_t< std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
 
Int_t WriteObjectAny (const void *obj, const char *classname, const char *name, Option_t *option="", Int_t bufsize=0) override
 Write object from pointer of class classname in this directory.
 
Int_t WriteObjectAny (const void *obj, const TClass *cl, const char *name, Option_t *option="", Int_t bufsize=0) override
 Write object of class with dictionary cl in this directory.
 
Int_t WriteTObject (const TObject *obj, const char *name=nullptr, Option_t *option="", Int_t bufsize=0) override
 Write object obj to this directory.
 

Static Public Member Functions

static Bool_t Cd (const char *path)
 Change current directory to "path".
 
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static std::atomic< TDirectory * > & CurrentDirectory ()
 Return the current directory for the current thread.
 
static const char * DeclFileName ()
 
static size_t DecodeNameCycle (const char *namecycle, char *name, Short_t &cycle, const size_t namesize=0)
 Decode a namecycle "aap;2" contained in the null-terminated string buffer into name "aap" and cycle 2.
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void R__DEPRECATED (7, 00, "This function has no effect on ROOT") AddDirectory(Bool_t add
 
static Bool_t R__DEPRECATED (7, 00, "This function has no effect on ROOT") AddDirectoryStatus()
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 

Protected Types

enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 
using SharedGDirectory_t = std::shared_ptr<std::atomic<TDirectory *>>
 

Protected Member Functions

void BuildDirectory (TFile *motherFile, TDirectory *motherDir)
 Initialise directory to defaults.
 
void BuildDirectoryFile (TFile *motherFile, TDirectory *motherDir)
 Initialise directory to defaults.
 
Bool_t cd1 (const char *path)
 Change current directory to "this" directory or to the directory described by the path if given one.
 
void CleanTargets ()
 Clean the pointers to this object (gDirectory, TContext, etc.)
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void FillFullPath (TString &buf) const
 Recursive method to fill full path for directory.
 
void InitDirectoryFile (TClass *cl=nullptr)
 Initialize the key associated with this directory (and the related data members.
 
void InternalAppend (TObject *obj)
 Internal access to TDirectory append method.
 
void MakeZombie ()
 
void RegisterContext (TContext *ctxt)
 Register a TContext pointing to this TDirectory object.
 
void RegisterGDirectory (SharedGDirectory_t &ptr)
 Register a std::atomic<TDirectory*> that will soon be pointing to this TDirectory object.
 
void SavePrimitiveNameTitle (std::ostream &out, const char *variable_name)
 Save object name and title into the output stream "out".
 
void UnregisterContext (TContext *ctxt)
 UnRegister a TContext pointing to this TDirectory object.
 

Static Protected Member Functions

static Bool_t Cd1 (const char *path)
 Change current directory to "path".
 
static SharedGDirectory_tGetSharedLocalCurrentDirectory ()
 Return the (address of) a shared pointer to the struct holding the actual thread local gDirectory pointer and the atomic_flag for its lock.
 
static void SavePrimitiveConstructor (std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE)
 Save object constructor in the output stream "out".
 
static void SavePrimitiveDraw (std::ostream &out, const char *variable_name, Option_t *option=nullptr)
 Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.
 
static TString SavePrimitiveVector (std::ostream &out, const char *prefix, Int_t len, Double_t *arr, Int_t flag=0)
 Save array in the output stream "out" as vector.
 

Protected Attributes

RooWorkspace_wspace
 ! do not persist
 
Int_t fBufferSize {0}
 Default buffer size to create new TKeys.
 
TContextfContext {nullptr}
 ! Pointer to a list of TContext object pointing to this TDirectory
 
std::atomic< size_t > fContextPeg {0}
 ! Counter delaying the TDirectory destructor from finishing.
 
TDatime fDatimeC
 Date and time when directory is created.
 
TDatime fDatimeM
 Date and time of last modification.
 
TFilefFile {nullptr}
 Pointer to current file in memory.
 
std::vector< SharedGDirectory_tfGDirectories
 ! thread local gDirectory pointing to this object.
 
TListfKeys {nullptr}
 Pointer to keys list in memory.
 
TListfList {nullptr}
 List of objects in memory.
 
Bool_t fModified {kFALSE}
 True if directory has been modified.
 
TObjectfMother {nullptr}
 pointer to mother of the directory
 
TString fName
 
Int_t fNbytesKeys {0}
 Number of bytes for the keys.
 
Int_t fNbytesName {0}
 Number of bytes in TNamed at creation time.
 
TString fPathBuffer
 ! Buffer for GetPath() function
 
Long64_t fSeekDir {0}
 Location of directory on file.
 
Long64_t fSeekKeys {0}
 Location of Keys record on file.
 
Long64_t fSeekParent {0}
 Location of parent directory on file.
 
std::atomic_flag fSpinLock
 ! MSVC doesn't support = ATOMIC_FLAG_INIT;
 
TString fTitle
 
TUUID fUUID {TUUID::UUIDv4()}
 Unique identifier.
 
Bool_t fWritable {kFALSE}
 True if directory is writable.
 

Static Protected Attributes

static Bool_t fgAddDirectory = false
 !
 

Static Private Member Functions

static void AddToTObjectTable (TObject *)
 Private helper function which will dispatch to TObjectTable::AddObj.
 

Private Attributes

UInt_t fBits
 bit field status word
 
UInt_t fUniqueID
 object unique identifier
 

Static Private Attributes

static Longptr_t fgDtorOnly = 0
 object for which to call dtor only (i.e. no delete)
 
static Bool_t fgObjectStat = kTRUE
 if true keep track of objects in TObjectTable
 

Friends

class RooWorkspace
 

#include <RooWorkspace.h>

Inheritance diagram for RooWorkspace::WSDir:
TDirectoryFile TDirectory TNamed TObject

Member Typedef Documentation

◆ SharedGDirectory_t

using TDirectory::SharedGDirectory_t = std::shared_ptr<std::atomic<TDirectory *>>
protectedinherited

Definition at line 147 of file TDirectory.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
kIsOnHeap 

object is on heap

kNotDeleted 

object has not been deleted

kZombie 

object ctor failed

kInconsistent 

class overload Hash but does call RecursiveRemove in destructor

kBitMask 

Definition at line 89 of file TObject.h.

◆ anonymous enum

anonymous enum
inherited
Enumerator
kSingleKey 

write collection with single key

kOverwrite 

overwrite existing object with same name

kWriteDelete 

write object, then delete previous key with same name

Definition at line 99 of file TObject.h.

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
kOnlyPrepStep 

Used to request that the class specific implementation of TObject::Write just prepare the objects to be ready to be written but do not actually write them into the TBuffer.

This is just for example by TBufferMerger to request that the TTree inside the file calls TTree::FlushBaskets (outside of the merging lock) and TBufferMerger will later ask for the write (inside the merging lock). To take advantage of this feature the class needs to overload TObject::Write and use this enum value accordingly. (See TTree::Write and TObject::Write) Do not use, this feature will be migrate to the Merge function (See TClass and TTree::Merge)

Definition at line 106 of file TObject.h.

◆ EDeprecatedStatusBits

Enumerator
kObjInCanvas 

for backward compatibility only, use kMustCleanup

Definition at line 84 of file TObject.h.

◆ EStatusBits

Enumerator
kCloseDirectory 

Definition at line 58 of file TDirectoryFile.h.

Constructor & Destructor Documentation

◆ WSDir()

RooWorkspace::WSDir::WSDir ( const char * name,
const char * title,
RooWorkspace * wspace )
inline

Definition at line 221 of file RooWorkspace.h.

◆ ~WSDir()

RooWorkspace::WSDir::~WSDir ( )
inlineoverride

Definition at line 227 of file RooWorkspace.h.

Member Function Documentation

◆ AbstractMethod()

void TObject::AbstractMethod ( const char * method) const
inherited

Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it.

In other word, this method acts as a "runtime purely virtual" warning instead of a "compiler purely virtual" error.

Warning
This interface is a legacy function that is no longer recommended to be used by new development code.
Note
The name "AbstractMethod" does not imply that it's an abstract method in the strict C++ sense.

Definition at line 1149 of file TObject.cxx.

◆ Add()

void RooWorkspace::WSDir::Add ( TObject * obj,
bool  )
overridevirtual

Overload TDirectory interface method to prohibit insertion of objects in read-only directory workspace representation.

Reimplemented from TDirectoryFile.

Definition at line 2868 of file RooWorkspace.cxx.

◆ AddToTObjectTable()

void TObject::AddToTObjectTable ( TObject * op)
staticprivateinherited

Private helper function which will dispatch to TObjectTable::AddObj.

Included here to avoid circular dependency between header files.

Definition at line 195 of file TObject.cxx.

◆ Append()

void RooWorkspace::WSDir::Append ( TObject * obj,
bool  )
overridevirtual

Overload TDirectory interface method to prohibit insertion of objects in read-only directory workspace representation.

Reimplemented from TDirectoryFile.

Definition at line 2881 of file RooWorkspace.cxx.

◆ AppendKey()

Int_t TDirectoryFile::AppendKey ( TKey * key)
overridevirtualinherited

Insert key in the linked list of keys of this directory.

Reimplemented from TDirectory.

Definition at line 224 of file TDirectoryFile.cxx.

◆ AppendPad()

void TObject::AppendPad ( Option_t * option = "")
virtualinherited

Append graphics object to current pad.

In case no current pad is set yet, create a default canvas with the name "c1".

Definition at line 204 of file TObject.cxx.

◆ Browse()

void TDirectoryFile::Browse ( TBrowser * b)
overridevirtualinherited

Browse the content of the directory.

Reimplemented from TDirectory.

Definition at line 259 of file TDirectoryFile.cxx.

◆ Build()

void TDirectoryFile::Build ( TFile * motherFile = nullptr,
TDirectory * motherDir = nullptr )
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 68 of file TDirectoryFile.h.

◆ BuildDirectory()

void TDirectory::BuildDirectory ( TFile * motherFile,
TDirectory * motherDir )
protectedinherited

Initialise directory to defaults.

If directory is created via default ctor (when dir is read from file) don't add it here to the directory since its name is not yet known. It will be added to the directory in TKey::ReadObj().

Definition at line 255 of file TDirectory.cxx.

◆ BuildDirectoryFile()

void TDirectoryFile::BuildDirectoryFile ( TFile * motherFile,
TDirectory * motherDir )
protectedinherited

Initialise directory to defaults.

Definition at line 304 of file TDirectoryFile.cxx.

◆ cd() [1/2]

Bool_t TDirectoryFile::cd ( )
overridevirtualinherited

Change current directory to "this" directory.

Returns kTRUE in case of success.

Reimplemented from TDirectory.

Definition at line 333 of file TDirectoryFile.cxx.

◆ Cd()

Bool_t TDirectory::Cd ( const char * path)
staticinherited

Change current directory to "path".

The absolute path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to the current directorygDirectory, e.g.:../aa`.

Returns kTRUE in case of success.

Definition at line 609 of file TDirectory.cxx.

◆ cd() [2/2]

Bool_t TDirectoryFile::cd ( const char * path)
overridevirtualinherited

Change current directory the directory described by the path if given one.

change the current directory to "path". The absolute path syntax is:

file.root:/dir1/dir2

where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to "this" directory. E.g: ../aa. Returns kTRUE in case of success.

Reimplemented from TDirectory.

Definition at line 351 of file TDirectoryFile.cxx.

◆ cd1()

Bool_t TDirectory::cd1 ( const char * apath)
protectedinherited

Change current directory to "this" directory or to the directory described by the path if given one.

Using path one can change the current directory to "path". The absolute path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file.

Relative syntax is relative to "this" directory. E.g: ../aa.

Returns kFALSE in case path does not exist.

Definition at line 587 of file TDirectory.cxx.

◆ Cd1()

Bool_t TDirectory::Cd1 ( const char * apath)
staticprotectedinherited

Change current directory to "path".

The path syntax is: file.root:/dir1/dir2 where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to the current directory gDirectory, e.g.: ../aa.

Returns kFALSE in case path does not exist.

Definition at line 623 of file TDirectory.cxx.

◆ CheckedHash()

ULong_t TObject::CheckedHash ( )
inlineinherited

Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.

The intent is for this routine to be called instead of directly calling the function Hash during "insert" operations. See TObject::HasInconsistenTObjectHash();

(*) The setup is consistent when all classes in the class hierarchy that overload TObject::Hash do call ROOT::CallRecursiveRemoveIfNeeded in their destructor. i.e. it is safe to call the Hash virtual function during the RecursiveRemove operation.

Definition at line 332 of file TObject.h.

◆ Class()

static TClass * RooWorkspace::WSDir::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * RooWorkspace::WSDir::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t RooWorkspace::WSDir::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 238 of file RooWorkspace.h.

◆ ClassName()

const char * TObject::ClassName ( ) const
virtualinherited

Returns name of class to which the object belongs.

Definition at line 227 of file TObject.cxx.

◆ CleanTargets()

void TDirectoryFile::CleanTargets ( )
protectedinherited

Clean the pointers to this object (gDirectory, TContext, etc.)

Definition at line 362 of file TDirectoryFile.cxx.

◆ Clear()

void TDirectory::Clear ( Option_t * option = "")
overridevirtualinherited

Delete all objects from a Directory list.

Reimplemented from TObject.

Definition at line 640 of file TDirectory.cxx.

◆ Clone()

TObject * TNamed::Clone ( const char * newname = "") const
overridevirtualinherited

Make a clone of an object using the Streamer facility.

If newname is specified, this will be the name of the new object.

Reimplemented from TObject.

Reimplemented in TStreamerInfo, and TTreeIndex.

Definition at line 73 of file TNamed.cxx.

◆ CloneObject()

TObject * TDirectoryFile::CloneObject ( const TObject * obj,
Bool_t autoadd = kTRUE )
overridevirtualinherited

Make a clone of an object using the Streamer facility.

If the object derives from TNamed, this function is called by TNamed::Clone. TNamed::Clone uses the optional argument newname to set a new name to the newly created object.

If autoadd is true and if the object class has a DirectoryAutoAdd function, it will be called at the end of the function with the parameter gDirectory. This usually means that the object will be appended to the current ROOT directory.

Reimplemented from TDirectory.

Definition at line 385 of file TDirectoryFile.cxx.

◆ Close()

void TDirectoryFile::Close ( Option_t * option = "")
overridevirtualinherited

Delete all objects from memory and directory structure itself.

Reimplemented from TDirectory.

Reimplemented in TSQLFile, TXMLFile, TFile, and TParallelMergingFile.

Definition at line 559 of file TDirectoryFile.cxx.

◆ Compare()

Int_t TNamed::Compare ( const TObject * obj) const
overridevirtualinherited

Compare two TNamed objects.

Returns 0 when equal, -1 when this is smaller and +1 when bigger (like strcmp).

Reimplemented from TObject.

Reimplemented in TStructNodeProperty.

Definition at line 84 of file TNamed.cxx.

◆ Copy()

void TDirectoryFile::Copy ( TObject & object) const
inlineoverridevirtualinherited

Copy this to obj.

Reimplemented from TDirectory.

Reimplemented in TFile.

Definition at line 71 of file TDirectoryFile.h.

◆ CurrentDirectory()

std::atomic< TDirectory * > & TDirectory::CurrentDirectory ( )
staticinherited

Return the current directory for the current thread.

Definition at line 438 of file TDirectory.cxx.

◆ DeclFileName()

static const char * RooWorkspace::WSDir::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 238 of file RooWorkspace.h.

◆ DecodeNameCycle()

size_t TDirectory::DecodeNameCycle ( const char * buffer,
char * name,
Short_t & cycle,
const size_t namesize = 0 )
staticinherited

Decode a namecycle "aap;2" contained in the null-terminated string buffer into name "aap" and cycle 2.

The destination buffer size for name (including the string terminator) should be specified in namesize. If namesize is too small to contain the full name, the name will be truncated to namesize. If namesize == 0 but name is not nullptr, this method will assume that name points to a large enough buffer to hold the name. THIS IS UNSAFE, so you should always pass the proper namesize! If name is nullptr, only the cycle will be returned and namesize will be ignored.

Note
Edge cases:
  • If the number after the ; is larger than SHORT_MAX, cycle is set to 0.
  • If name ends with ;*, cycle is set to 10000.
  • In all other cases, i.e. when number is not a digit, buffer is a nullptr or buffer does not contain a cycle, cycleis set to9999. @return The actual name length, or 0 ifbuffer` was a nullptr.

Definition at line 1316 of file TDirectory.cxx.

◆ Delete()

void TDirectoryFile::Delete ( const char * namecycle = "")
overridevirtualinherited

Delete Objects or/and keys in the current directory.

Parameters
[in]namecycleEncodes the name and cycle of the objects to delete in the current directory (e.g. the top directory of a TFile)
  • namecycle has the format name;cycle.
  • namecycle="" is same as namecycle="T*"
  • name="*" means all objects, use "T*" to also delete subdirectories
  • cycle="*" means all cycles (memory and keys)
  • cycle="" or cycle="9999" ==> apply to a memory object
  • When name="*"" use "T*" to delete subdirectories also To delete one directory, you must specify the directory cycle, eg. file.Delete("dir1;1"); Examples: <table class="markdownTable"> <tr class="markdownTableHead"> <th class="markdownTableHeadNone"> Pattern

Description

foo

delete object named foo in memory

foo*

delete all objects with a name starting with foo

foo;1

delete cycle 1 of foo on file

foo;*

delete all cycles of foo on file and also from memory

*;2

delete all objects on file having the cycle 2

*;*

delete all objects from memory and file

T*;*

delete all objects from memory and file and all subdirectories

Note
For some objects, this method, which is used e.g. by rootrm, properly deletes the specified cycles of the object, but does not free any ‘dependent’ data records (unless it is a TDirectoryFile). In other words, in these cases, Delete does not free all subdata records, but rather orphans them, ie. the file size is not reduced, and there is later no option to shrink it nor recover the disappeared ‘dependent’ items. For example, deleting a TTree does not free up space from the directory since the underlying basket records are not recursively deleted. If this is wanted, one can call TTree::Delete("all") before calling TDirectoryFile::Delete(); file size won't shrink either, but more space will be left open for overwriting with other objects. See also Purge() documentation. A workaround to reduce filesize is to clone all objects (excluding those to be deleted) into a new TFile.

WARNING

If the key to be deleted contains special characters ("+","^","?", etc) that have a special meaning for the regular expression parser (see TRegexp) then you must specify 2 backslash characters to escape the regular expression. For example, if the key to be deleted is namecycle = "C++", you must call

mydir.Delete("C\\+\\+"));

Reimplemented from TDirectory.

Reimplemented in TFile.

Definition at line 643 of file TDirectoryFile.cxx.

◆ DeleteAll()

void TDirectory::DeleteAll ( Option_t * option = "")
virtualinherited

Delete all objects from memory.

Definition at line 691 of file TDirectory.cxx.

◆ DistancetoPrimitive()

◆ DoError()

void TObject::DoError ( int level,
const char * location,
const char * fmt,
va_list va ) const
protectedvirtualinherited

Interface to ErrorHandler (protected).

Reimplemented in TTreeViewer, and TThread.

Definition at line 1059 of file TObject.cxx.

◆ Draw()

void TDirectory::Draw ( Option_t * option = "")
overridevirtualinherited

Fill Graphics Structure and Paint.

Loop on all objects (memory or file) and all subdirectories

Reimplemented from TObject.

Reimplemented in TFile.

Definition at line 774 of file TDirectory.cxx.

◆ DrawClass()

void TObject::DrawClass ( ) const
virtualinherited

Draw class inheritance tree of the class to which this object belongs.

If a class B inherits from a class A, description of B is drawn on the right side of description of A. Member functions overridden by B are shown in class A with a blue line crossing-out the corresponding member function. The following picture is the class inheritance tree of class TPaveLabel:

Reimplemented in TSystemDirectory, TSystemFile, and TGFrame.

Definition at line 308 of file TObject.cxx.

◆ DrawClone()

TObject * TObject::DrawClone ( Option_t * option = "") const
virtualinherited

Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).

If pad was not selected - gPad will be used.

Note
For histograms, use the more specialised TH1::DrawCopy().

Reimplemented in TSystemDirectory, TSystemFile, TGFrame, TAxis, and TCanvas.

Definition at line 319 of file TObject.cxx.

◆ Dump()

void TObject::Dump ( ) const
virtualinherited

Dump contents of object on stdout.

Using the information in the object dictionary (class TClass) each data member is interpreted. If a data member is a pointer, the pointer value is printed

The following output is the Dump of a TArrow object:

fAngle 0 Arrow opening angle (degrees)
fArrowSize 0.2 Arrow Size
fOption.*fData
fX1 0.1 X of 1st point
fY1 0.15 Y of 1st point
fX2 0.67 X of 2nd point
fY2 0.83 Y of 2nd point
fBits 50331648 bit field status word
fLineColor 1 line color
fLineStyle 1 line style
fLineWidth 1 line width
fFillColor 19 fill area color
fFillStyle 1001 fill area style
#define X(type, name)
Option_t Option_t TPoint TPoint angle
Option_t Option_t width
Option_t Option_t style
UInt_t fUniqueID
object unique identifier
Definition TObject.h:46
UInt_t fBits
bit field status word
Definition TObject.h:47
TLine * line

Reimplemented in TSystemFile, TCollection, TClass, TGFrame, and TGPack.

Definition at line 367 of file TObject.cxx.

◆ Error()

void TObject::Error ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue error message.

Use "location" to specify the method where the error occurred. Accepts standard printf formatting arguments.

Reimplemented in TFitResult.

Definition at line 1098 of file TObject.cxx.

◆ Execute() [1/2]

void TObject::Execute ( const char * method,
const char * params,
Int_t * error = nullptr )
virtualinherited

Execute method on this object with the given parameter string, e.g.

"3.14,1,\"text\"".

Reimplemented in TMethodCall, TCling, TInterpreter, ROOT::R::TRInterface, and TContextMenu.

Definition at line 378 of file TObject.cxx.

◆ Execute() [2/2]

void TObject::Execute ( TMethod * method,
TObjArray * params,
Int_t * error = nullptr )
virtualinherited

Execute method on this object with parameters stored in the TObjArray.

The TObjArray should contain an argv vector like:

argv[0] ... argv[n] = the list of TObjString parameters
Collectable string class.
Definition TObjString.h:28
const Int_t n
Definition legend1.C:16

Reimplemented in TCling, TMethodCall, TInterpreter, ROOT::R::TRInterface, and TContextMenu.

Definition at line 398 of file TObject.cxx.

◆ ExecuteEvent()

◆ Fatal()

void TObject::Fatal ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue fatal error message.

Use "location" to specify the method where the fatal error occurred. Accepts standard printf formatting arguments.

Definition at line 1126 of file TObject.cxx.

◆ FillBuffer()

void TDirectoryFile::FillBuffer ( char *& buffer)
overridevirtualinherited

Encode directory header into output buffer.

Reimplemented from TNamed.

Reimplemented in TSQLFile, TXMLFile, and TFile.

Definition at line 747 of file TDirectoryFile.cxx.

◆ FillFullPath()

void TDirectory::FillFullPath ( TString & buf) const
protectedinherited

Recursive method to fill full path for directory.

Definition at line 1067 of file TDirectory.cxx.

◆ FindKey()

TKey * TDirectoryFile::FindKey ( const char * keyname) const
overridevirtualinherited

Find key with name keyname in the current directory.

keyname may be of the form name;cycle. See GetKey() for details on the semantics of this form.

Reimplemented from TDirectory.

Definition at line 793 of file TDirectoryFile.cxx.

◆ FindKeyAny()

TKey * TDirectoryFile::FindKeyAny ( const char * keyname) const
overridevirtualinherited

Find key with name keyname in the current directory or its subdirectories.

keyname may be of the form name;cycle. See GetKey() for details on the semantics of this form.

NOTE: that If a key is found, the directory containing the key becomes the current directory

Reimplemented from TDirectory.

Definition at line 811 of file TDirectoryFile.cxx.

◆ FindObject() [1/2]

TObject * TDirectory::FindObject ( const char * name) const
overridevirtualinherited

Find object by name in the list of memory objects.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 790 of file TDirectory.cxx.

◆ FindObject() [2/2]

TObject * TDirectory::FindObject ( const TObject * obj) const
overridevirtualinherited

Find object in the list of memory objects.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 782 of file TDirectory.cxx.

◆ FindObjectAny()

TObject * TDirectoryFile::FindObjectAny ( const char * aname) const
overridevirtualinherited

Find object by name in the list of memory objects of the current directory or its sub-directories.

After this call the current directory is not changed. To automatically set the current directory where the object is found, use FindKeyAny(aname)->ReadObj().

Reimplemented from TDirectory.

Definition at line 859 of file TDirectoryFile.cxx.

◆ FindObjectAnyFile()

TObject * TDirectoryFile::FindObjectAnyFile ( const char * name) const
overridevirtualinherited

Scan the memory lists of all files for an object with name.

Reimplemented from TDirectory.

Definition at line 443 of file TDirectoryFile.cxx.

◆ Get() [1/2]

template<class T >
T * TDirectoryFile::Get ( const char * namecycle)
inlinevirtualinherited

See documentation of TDirectoryFile::Get(const char *namecycle)

Reimplemented from TDirectory.

Definition at line 82 of file TDirectoryFile.h.

◆ Get() [2/2]

TObject * TDirectoryFile::Get ( const char * namecycle)
overridevirtualinherited

Return pointer to object identified by namecycle.

Properties:

  • namecycle has the format name;cycle
  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

Examples:

Pattern Explanation
foo get object named foo in memory if object is not in memory, try with highest cycle from file
foo;1 get cycle 1 of foo on file

The retrieved object should in principle derive from TObject. If not, the function TDirectoryFile::Get<T> should be called. However, this function will still work for a non-TObject, provided that the calling application cast the return type to the correct type (which is the actual type of the object).

The Get<T> Method

The method Get<T> offers better protection and avoids the need for any cast:

auto objPtr = directory->Get<MyClass>("some object");
if (objPtr) { ... the object exist and inherits from MyClass ... }

Very important note about inheritance

In case the class of this object derives from TObject but not as a first inheritance, one must use dynamic_cast<>().

Example 1 - Normal case:

class MyClass : public TObject, public AnotherClass

then on return, one can adopt a C style cast:

auto objPtr = (MyClass*)directory->Get("some object of MyClass");

Example 2 - Special case:

class MyClass : public AnotherClass, public TObject

then on return, one must do:

auto objPtr = dynamic_cast<MyClass*>(directory->Get("some object of MyClass"));

Of course, dynamic_cast<> can also be used in the example 1.

Reimplemented from TDirectory.

Definition at line 953 of file TDirectoryFile.cxx.

◆ GetBufferSize()

Int_t TDirectoryFile::GetBufferSize ( ) const
overridevirtualinherited

Return the buffer size to create new TKeys.

If the stored fBufferSize is null, the value returned is the average buffer size of objects in the file so far.

Reimplemented from TDirectory.

Definition at line 1140 of file TDirectoryFile.cxx.

◆ GetCreationDate()

const TDatime & TDirectoryFile::GetCreationDate ( ) const
inlineinherited

Definition at line 91 of file TDirectoryFile.h.

◆ GetDirectory()

TDirectory * TDirectoryFile::GetDirectory ( const char * apath,
Bool_t printError = false,
const char * funcname = "GetDirectory" )
overridevirtualinherited

Find a directory named "apath".

It apath is null or empty, returns "this" directory. Otherwise use the name "apath" to find a directory. The absolute path syntax is:

file.root:/dir1/dir2

where file.root is the file and /dir1/dir2 the desired subdirectory in the file. Relative syntax is relative to "this" directory. E.g: ../aa. Returns 0 in case path does not exist. If printError is true, use Error with 'funcname' to issue an error message.

Reimplemented from TDirectory.

Definition at line 470 of file TDirectoryFile.cxx.

◆ GetDrawOption()

Option_t * TObject::GetDrawOption ( ) const
virtualinherited

Get option used by the graphics system to draw this object.

Note that before calling object.GetDrawOption(), you must have called object.Draw(..) before in the current pad.

Reimplemented in TBrowser, TFitEditor, TGedFrame, TGFileBrowser, TRootBrowser, and TRootBrowserLite.

Definition at line 445 of file TObject.cxx.

◆ GetDtorOnly()

Longptr_t TObject::GetDtorOnly ( )
staticinherited

Return destructor only flag.

Definition at line 1196 of file TObject.cxx.

◆ GetFile()

TFile * TDirectoryFile::GetFile ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 92 of file TDirectoryFile.h.

◆ GetIconName()

const char * TObject::GetIconName ( ) const
virtualinherited

Returns mime type name of object.

Used by the TBrowser (via TGMimeTypes class). Override for class of which you would like to have different icons for objects of the same class.

Reimplemented in TSystemFile, TGeoVolume, TASImage, TGMainFrame, TKey, ROOT::Experimental::XRooFit::xRooNode, TBranch, TVirtualBranchBrowsable, TMethodBrowsable, and TBranchElement.

Definition at line 472 of file TObject.cxx.

◆ GetKey()

TKey * TDirectoryFile::GetKey ( const char * name,
Short_t cycle = 9999 ) const
overridevirtualinherited

Return pointer to key with name,cycle.

If no key exists with the specified cycle, returns the key with the highest cycle that is lower than the requested cycle.

if cycle = 9999 returns highest cycle

Reimplemented from TDirectory.

Definition at line 1153 of file TDirectoryFile.cxx.

◆ GetList()

virtual TList * TDirectory::GetList ( ) const
inlinevirtualinherited

Definition at line 223 of file TDirectory.h.

◆ GetListOfKeys()

TList * TDirectoryFile::GetListOfKeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 94 of file TDirectoryFile.h.

◆ GetModificationDate()

const TDatime & TDirectoryFile::GetModificationDate ( ) const
inlineinherited

Definition at line 95 of file TDirectoryFile.h.

◆ GetMother()

TObject * TDirectory::GetMother ( ) const
inlineinherited

Definition at line 225 of file TDirectory.h.

◆ GetMotherDir()

TDirectory * TDirectory::GetMotherDir ( ) const
inlineinherited

Definition at line 226 of file TDirectory.h.

◆ GetName()

const char * TNamed::GetName ( ) const
inlineoverridevirtualinherited

Returns name of object.

This default method returns the class name. Classes that give objects a name should override this method.

Reimplemented from TObject.

Definition at line 49 of file TNamed.h.

◆ GetNbytesKeys()

Int_t TDirectoryFile::GetNbytesKeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 96 of file TDirectoryFile.h.

◆ GetNkeys()

Int_t TDirectoryFile::GetNkeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 97 of file TDirectoryFile.h.

◆ GetObject()

template<class T >
void TDirectory::GetObject ( const char * namecycle,
T *& ptr )
inlineinherited

Get an object with proper type checking.

If the object doesn't exist in the file or if the type doesn't match, a nullptr is returned. Also see TDirectory::Get().

Definition at line 213 of file TDirectory.h.

◆ GetObjectChecked() [1/2]

void * TDirectoryFile::GetObjectChecked ( const char * namecycle,
const char * classname )
overridevirtualinherited

See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl)

Reimplemented from TDirectory.

Definition at line 1034 of file TDirectoryFile.cxx.

◆ GetObjectChecked() [2/2]

void * TDirectoryFile::GetObjectChecked ( const char * namecycle,
const TClass * expectedClass )
overridevirtualinherited

Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed.

  • namecycle has the format name;cycle
  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

Very important note

The calling application must cast the returned pointer to the type described by the 2 arguments (i.e. cl):

auto objPtr = (MyClass*)directory->GetObjectChecked("some object of MyClass","MyClass"));

Note: We recommend using the method TDirectoryFile::Get<T>:

auto objPtr = directory->Get<MyClass>("some object inheriting from MyClass");
if (objPtr) { ... we found what we are looking for ... }
static const char * what
Definition stlLoader.cc:5

Reimplemented from TDirectory.

Definition at line 1061 of file TDirectoryFile.cxx.

◆ GetObjectInfo()

char * TObject::GetObjectInfo ( Int_t px,
Int_t py ) const
virtualinherited

Returns string containing info about the object at position (px,py).

This method is typically overridden by classes of which the objects can report peculiarities for different positions. Returned string will be re-used (lock in MT environment).

Reimplemented in TGeoNode, TGeoVolume, TGeoTrack, TASImage, TColorWheel, TAxis3D, TNode, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TF1, TF2, TGraph, TH1, THistPainter, TPaletteAxis, TFileDrawMap, TParallelCoordVar, and TVirtualHistPainter.

Definition at line 491 of file TObject.cxx.

◆ GetObjectStat()

Bool_t TObject::GetObjectStat ( )
staticinherited

Get status of object stat flag.

Definition at line 1181 of file TObject.cxx.

◆ GetObjectUnchecked()

void * TDirectoryFile::GetObjectUnchecked ( const char * namecycle)
overridevirtualinherited

Return pointer to object identified by namecycle.

The returned object may or may not derive from TObject.

  • namecycle has the format name;cycle
  • name = * is illegal, cycle = * is illegal
  • cycle = "" or cycle = 9999 ==> apply to a memory object

Very important note

The calling application must cast the returned object to the final type, e.g.

auto objPtr = (MyClass*)directory->GetObject("some object of MyClass");

Reimplemented from TDirectory.

Definition at line 1026 of file TDirectoryFile.cxx.

◆ GetOption()

virtual Option_t * TObject::GetOption ( ) const
inlinevirtualinherited

◆ GetPath()

const char * TDirectory::GetPath ( ) const
virtualinherited

Returns the full path of the directory.

E.g. file:/dir1/dir2. The returned path will be re-used by the next call to GetPath().

Definition at line 1054 of file TDirectory.cxx.

◆ GetPathStatic()

const char * TDirectory::GetPathStatic ( ) const
virtualinherited

Returns the full path of the directory.

E.g. file:/dir1/dir2. The returned path will be re-used by the next call to GetPath().

Definition at line 1016 of file TDirectory.cxx.

◆ GetSeekDir()

Long64_t TDirectoryFile::GetSeekDir ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 98 of file TDirectoryFile.h.

◆ GetSeekKeys()

Long64_t TDirectoryFile::GetSeekKeys ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 100 of file TDirectoryFile.h.

◆ GetSeekParent()

Long64_t TDirectoryFile::GetSeekParent ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 99 of file TDirectoryFile.h.

◆ GetSharedLocalCurrentDirectory()

TDirectory::SharedGDirectory_t & TDirectory::GetSharedLocalCurrentDirectory ( )
staticprotectedinherited

Return the (address of) a shared pointer to the struct holding the actual thread local gDirectory pointer and the atomic_flag for its lock.

Definition at line 422 of file TDirectory.cxx.

◆ GetTitle()

const char * TNamed::GetTitle ( ) const
inlineoverridevirtualinherited

Returns title of object.

This default method returns the class title (i.e. description). Classes that give objects a title should override this method.

Reimplemented from TObject.

Definition at line 50 of file TNamed.h.

◆ GetUniqueID()

UInt_t TObject::GetUniqueID ( ) const
virtualinherited

Return the unique object id.

Definition at line 480 of file TObject.cxx.

◆ GetUUID()

TUUID TDirectory::GetUUID ( ) const
inlineinherited

Definition at line 234 of file TDirectory.h.

◆ HandleTimer()

Bool_t TObject::HandleTimer ( TTimer * timer)
virtualinherited

Execute action in response of a timer timing out.

This method must be overridden if an object has to react to timers.

Reimplemented in TGWindow, TGuiBldDragManager, TGraphTime, TGLEventHandler, TGCommandPlugin, TGDNDManager, TGFileContainer, TGPopupMenu, TGScrollBar, TGShutter, TGTextEdit, TGTextEditor, TGTextEntry, TGTextView, TGToolTip, TGHtml, and TTreeViewer.

Definition at line 516 of file TObject.cxx.

◆ Hash()

ULong_t TNamed::Hash ( ) const
inlineoverridevirtualinherited

Return hash value for this object.

Note: If this routine is overloaded in a derived class, this derived class should also add

void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
Definition TROOT.h:406

Otherwise, when RecursiveRemove is called (by ~TObject or example) for this type of object, the transversal of THashList and THashTable containers will will have to be done without call Hash (and hence be linear rather than logarithmic complexity). You will also see warnings like

ULong_t Hash() const override
Return hash value for this object.
Definition TNamed.h:51
Mother of all ROOT objects.
Definition TObject.h:42
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition TObject.cxx:1098
void RecursiveRemove(TObject *obj) override
Recursively remove this object from the list of Cleanups.
Definition TROOT.cxx:2651

Reimplemented from TObject.

Definition at line 51 of file TNamed.h.

◆ HasInconsistentHash()

Bool_t TObject::HasInconsistentHash ( ) const
inlineinherited

Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.

missing call to RecursiveRemove in destructor).

Note: Since the consistency is only tested for during inserts, this routine will return true for object that have never been inserted whether or not they have a consistent setup. This has no negative side-effect as searching for the object with the right or wrong Hash will always yield a not-found answer (Since anyway no hash can be guaranteed unique, there is always a check)

Definition at line 366 of file TObject.h.

◆ Info()

void TObject::Info ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue info message.

Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.

Definition at line 1072 of file TObject.cxx.

◆ InheritsFrom() [1/2]

Bool_t TObject::InheritsFrom ( const char * classname) const
virtualinherited

Returns kTRUE if object inherits from class "classname".

Reimplemented in TClass.

Definition at line 549 of file TObject.cxx.

◆ InheritsFrom() [2/2]

Bool_t TObject::InheritsFrom ( const TClass * cl) const
virtualinherited

Returns kTRUE if object inherits from TClass cl.

Reimplemented in TClass.

Definition at line 557 of file TObject.cxx.

◆ InitDirectoryFile()

void TDirectoryFile::InitDirectoryFile ( TClass * cl = nullptr)
protectedinherited

Initialize the key associated with this directory (and the related data members.

Definition at line 146 of file TDirectoryFile.cxx.

◆ Inspect()

void TObject::Inspect ( ) const
virtualinherited

Dump contents of this object in a graphics canvas.

Same action as Dump but in a graphical form. In addition pointers to other objects can be followed.

The following picture is the Inspect of a histogram object:

Reimplemented in TSystemFile, TInspectorObject, TGFrame, and ROOT::Experimental::XRooFit::xRooNode.

Definition at line 570 of file TObject.cxx.

◆ InternalAppend()

void RooWorkspace::WSDir::InternalAppend ( TObject * obj)
protected

Internal access to TDirectory append method.

Definition at line 2859 of file RooWorkspace.cxx.

◆ InvertBit()

void TObject::InvertBit ( UInt_t f)
inlineinherited

Definition at line 206 of file TObject.h.

◆ IsA()

TClass * RooWorkspace::WSDir::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TDirectoryFile.

Definition at line 238 of file RooWorkspace.h.

◆ IsBuilt()

Bool_t TDirectory::IsBuilt ( ) const
inlineinherited

Definition at line 235 of file TDirectory.h.

◆ IsDestructed()

Bool_t TObject::IsDestructed ( ) const
inlineinherited

IsDestructed.

Note
This function must be non-virtual as it can be used on destructed (but not yet modified) memory. This is used for example in TClonesArray to record the element that have been destructed but not deleted and thus are ready for re-use (by operator new with placement).
Returns
true if this object's destructor has been run.

Definition at line 186 of file TObject.h.

◆ IsEqual()

Bool_t TObject::IsEqual ( const TObject * obj) const
virtualinherited

Default equal comparison (objects are equal if they have the same address in memory).

More complicated classes might want to override this function.

Reimplemented in TObjString, TQCommand, TPair, and TGObject.

Definition at line 589 of file TObject.cxx.

◆ IsFolder()

Bool_t TDirectory::IsFolder ( ) const
inlineoverridevirtualinherited

Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 236 of file TDirectory.h.

◆ IsModified()

Bool_t TDirectoryFile::IsModified ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 101 of file TDirectoryFile.h.

◆ IsOnHeap()

R__ALWAYS_INLINE Bool_t TObject::IsOnHeap ( ) const
inlineinherited

Definition at line 160 of file TObject.h.

◆ IsSortable()

Bool_t TNamed::IsSortable ( ) const
inlineoverridevirtualinherited

Reimplemented from TObject.

Reimplemented in TStructNodeProperty.

Definition at line 52 of file TNamed.h.

◆ IsWritable()

Bool_t TDirectoryFile::IsWritable ( ) const
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 102 of file TDirectoryFile.h.

◆ IsZombie()

R__ALWAYS_INLINE Bool_t TObject::IsZombie ( ) const
inlineinherited

Definition at line 161 of file TObject.h.

◆ ls()

void TDirectoryFile::ls ( Option_t * option = "") const
overridevirtualinherited

List Directory contents.

Indentation is used to identify the directory tree Subdirectories are listed first, then objects in memory, then objects on the file

The option can has the following format: [-d |-m][<regexp>] Options:

  • -d: only list objects in the file
  • -m: only list objects in memory The <regexp> will be used to match the name of the objects. By default memory and disk objects are listed.

Reimplemented from TDirectory.

Reimplemented in TFile.

Definition at line 1188 of file TDirectoryFile.cxx.

◆ MakeZombie()

void TObject::MakeZombie ( )
inlineprotectedinherited

Definition at line 55 of file TObject.h.

◆ MayNotUse()

void TObject::MayNotUse ( const char * method) const
inherited

Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).

Definition at line 1160 of file TObject.cxx.

◆ mkdir()

TDirectory * TDirectoryFile::mkdir ( const char * name,
const char * title = "",
Bool_t returnExistingDirectory = kFALSE )
overridevirtualinherited

Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".

Parameters
namethe name or hierarchy of the subdirectory ("a" or "a/b/c")
titlethe title of the directory. For hierarchies, this is only applied to the innermost directory (so if name == "a/b/c" and title == "my dir", only c will have the title "my dir").
returnExistingDirectoryif key-name is already existing, the returned value points to preexisting sub-directory if true and to nullptr if false.
Returns
a pointer to the created sub-directory, not to the top sub-directory of the hierarchy (in the above example, the returned TDirectory * points to "c"). In case of an error, it returns nullptr. In case of a preexisting sub-directory (hierarchy) with the requested name, the return value depends on the parameter returnExistingDirectory.

Reimplemented from TDirectory.

Definition at line 1271 of file TDirectoryFile.cxx.

◆ Notify()

Bool_t TObject::Notify ( )
virtualinherited

This method must be overridden to handle object notification (the base implementation is no-op).

Different objects in ROOT use the Notify method for different purposes, in coordination with other objects that call this method at the appropriate time.

For example, TLeaf uses it to load class information; TBranchRef to load contents of referenced branches TBranchRef; most notably, based on Notify, TChain implements a callback mechanism to inform interested parties when it switches to a new sub-tree.

Reimplemented in TMessageHandler, TNotifyLink< Type >, TNotifyLink< RNoCleanupNotifierHelper >, TNotifyLink< ROOT::Detail::TBranchProxy >, TNotifyLink< TTreeReader >, TFileHandler, TSignalHandler, TStdExceptionHandler, TProcessEventTimer, TTimer, TIdleTimer, TSingleShotCleaner, TCollection, TRefTable, TBrowserTimer, TInterruptHandler, TTermInputHandler, TThreadTimer, TGLRedrawTimer, TViewTimer, TGContainerKeyboardTimer, TGContainerScrollTimer, TGInputHandler, TViewUpdateTimer, TPopupDelayTimer, TRepeatTimer, TSBRepeatTimer, TGTextEditHist, TInsCharCom, TDelCharCom, TBreakLineCom, TInsTextCom, TDelTextCom, TBlinkTimer, TTipDelayTimer, TGuiBldDragManagerRepeatTimer, TARInterruptHandler, TASLogHandler, TASInterruptHandler, TASSigPipeHandler, TASInputHandler, TSocketHandler, TTimeOutTimer, TBranchElement, TBranchRef, TLeafObject, TSelector, TTree, TSelectorDraw, TSelectorEntries, TTreeFormula, TTreeFormulaManager, TTreeReader, h1analysis, h1analysisTreeReader, and TSysEvtHandler.

Definition at line 618 of file TObject.cxx.

◆ Obsolete()

void TObject::Obsolete ( const char * method,
const char * asOfVers,
const char * removedFromVers ) const
inherited

Use this method to declare a method obsolete.

Specify as of which version the method is obsolete and as from which version it will be removed.

Definition at line 1169 of file TObject.cxx.

◆ OpenFile()

TFile * TDirectoryFile::OpenFile ( const char * name,
Option_t * option = "",
const char * ftitle = "",
Int_t compress = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault,
Int_t netopt = 0 )
overridevirtualinherited

Interface to TFile::Open.

Reimplemented from TDirectory.

Definition at line 1250 of file TDirectoryFile.cxx.

◆ operator delete() [1/3]

void TObject::operator delete ( void * ptr,
size_t size )
inherited

Operator delete for sized deallocation.

Definition at line 1234 of file TObject.cxx.

◆ operator delete() [2/3]

void TObject::operator delete ( void * ptr)
inherited

Operator delete.

Definition at line 1212 of file TObject.cxx.

◆ operator delete() [3/3]

void TObject::operator delete ( void * ptr,
void * vp )
inherited

Only called by placement new when throwing an exception.

Definition at line 1266 of file TObject.cxx.

◆ operator delete[]() [1/3]

void TObject::operator delete[] ( void * ptr,
size_t size )
inherited

Operator delete [] for sized deallocation.

Definition at line 1245 of file TObject.cxx.

◆ operator delete[]() [2/3]

void TObject::operator delete[] ( void * ptr)
inherited

Operator delete [].

Definition at line 1223 of file TObject.cxx.

◆ operator delete[]() [3/3]

void TObject::operator delete[] ( void * ptr,
void * vp )
inherited

Only called by placement new[] when throwing an exception.

Definition at line 1274 of file TObject.cxx.

◆ operator new() [1/2]

void * TObject::operator new ( size_t sz)
inlineinherited

Definition at line 189 of file TObject.h.

◆ operator new() [2/2]

void * TObject::operator new ( size_t sz,
void * vp )
inlineinherited

Definition at line 191 of file TObject.h.

◆ operator new[]() [1/2]

void * TObject::operator new[] ( size_t sz)
inlineinherited

Definition at line 190 of file TObject.h.

◆ operator new[]() [2/2]

void * TObject::operator new[] ( size_t sz,
void * vp )
inlineinherited

Definition at line 192 of file TObject.h.

◆ Paint()

void TDirectory::Paint ( Option_t * option = "")
overridevirtualinherited

Paint all objects in the directory.

Reimplemented from TObject.

Reimplemented in TSQLFile, TXMLFile, and TFile.

Definition at line 1189 of file TDirectory.cxx.

◆ Pop()

void TObject::Pop ( )
virtualinherited

Pop on object drawn in a pad to the top of the display list.

I.e. it will be drawn last and on top of all other primitives.

Reimplemented in TPad, TFrame, and TVirtualPad.

Definition at line 640 of file TObject.cxx.

◆ Print()

void TDirectory::Print ( Option_t * option = "") const
overridevirtualinherited

Print all objects in the directory.

Reimplemented from TObject.

Reimplemented in TSQLFile, TXMLFile, TFile, and TMemFile.

Definition at line 1197 of file TDirectory.cxx.

◆ Purge()

void TDirectoryFile::Purge ( Short_t nkeep = 1)
overridevirtualinherited

Purge lowest key cycles in a directory.

By default, only the highest cycle of a key is kept. Keys for which the "KEEP" flag has been set are not removed. See TKey::Keep(). NOTE: This does not reduce the size of a TFile– the space is simply freed up to be overwritten.

Reimplemented from TDirectory.

Definition at line 1308 of file TDirectoryFile.cxx.

◆ pwd()

void TDirectory::pwd ( ) const
virtualinherited

Print the path of the directory.

Definition at line 1205 of file TDirectory.cxx.

◆ R__DEPRECATED() [1/2]

static void TDirectory::R__DEPRECATED ( 7 ,
00 ,
"This function has no effect on ROOT"  )
staticinherited

◆ R__DEPRECATED() [2/2]

static Bool_t TDirectory::R__DEPRECATED ( 7 ,
00 ,
"This function has no effect on ROOT"  )
staticinherited

◆ Read()

Int_t TObject::Read ( const char * name)
virtualinherited

Read contents of object with specified name from the current directory.

First the key with the given name is searched in the current directory, next the key buffer is deserialized into the object. The object must have been created before via the default constructor. See TObject::Write().

Reimplemented in TKeyXML, TBuffer, TKey, and TKeySQL.

Definition at line 673 of file TObject.cxx.

◆ ReadAll()

void TDirectoryFile::ReadAll ( Option_t * opt = "")
overridevirtualinherited

Read objects from a ROOT file directory into memory.

If an object is already in memory, the memory copy is deleted and the object is again read from the file. If opt=="dirs", only subdirectories will be read If opt=="dirs*" complete directory tree will be read

Reimplemented from TDirectory.

Definition at line 1344 of file TDirectoryFile.cxx.

◆ ReadKeys()

Int_t TDirectoryFile::ReadKeys ( Bool_t forceRead = kTRUE)
overridevirtualinherited

Read the linked list of keys.

Every directory has a linked list (fKeys). This linked list has been written on the file via WriteKeys as a single data record.

It is interesting to call this function in the following situation. Assume another process1 is connecting this directory in Update mode

  • Process1 is adding/updating objects in this directory
  • You want to see the latest status from process1. Example Process1:
    obj1.Write();
    obj2.Write();
    gDirectory->SaveSelf();
    #define gDirectory
    Definition TDirectory.h:385

Example Process2:

gDirectory->ReadKeys();
obj1->Draw();

This is an efficient way (without opening/closing files) to view the latest updates of a file being modified by another process as it is typically the case in a data acquisition system.

Reimplemented from TDirectory.

Definition at line 1397 of file TDirectoryFile.cxx.

◆ ReadTObject()

Int_t TDirectoryFile::ReadTObject ( TObject * obj,
const char * keyname )
overridevirtualinherited

Read object with keyname from the current directory.

Read contents of object with specified name from the current directory. First the key with keyname is searched in the current directory, next the key buffer is deserialized into the object. The object must have been created before via the default constructor. See TObject::Write().

Reimplemented from TDirectory.

Definition at line 1483 of file TDirectoryFile.cxx.

◆ RecursiveRemove()

void TDirectory::RecursiveRemove ( TObject * obj)
overridevirtualinherited

Recursively remove object from a Directory.

Reimplemented from TObject.

Reimplemented in TROOT.

Definition at line 1213 of file TDirectory.cxx.

◆ RegisterContext()

void TDirectory::RegisterContext ( TContext * ctxt)
protectedinherited

Register a TContext pointing to this TDirectory object.

Definition at line 1398 of file TDirectory.cxx.

◆ RegisterGDirectory()

void TDirectory::RegisterGDirectory ( TDirectory::SharedGDirectory_t & gdirectory_ptr)
protectedinherited

Register a std::atomic<TDirectory*> that will soon be pointing to this TDirectory object.

Definition at line 1418 of file TDirectory.cxx.

◆ Remove()

TObject * TDirectory::Remove ( TObject * obj)
virtualinherited

Remove an object from the in-memory list.

Reimplemented in TROOT.

Definition at line 1222 of file TDirectory.cxx.

◆ ResetAfterMerge()

void TDirectoryFile::ResetAfterMerge ( TFileMergeInfo * info)
virtualinherited

Reset the TDirectory after its content has been merged into another Directory.

This returns the TDirectoryFile object back to its state before any data has been written to the file. The object in the in-memory list are assumed to also have been reset.

Reimplemented in TMemFile.

Definition at line 1512 of file TDirectoryFile.cxx.

◆ ResetBit()

void TObject::ResetBit ( UInt_t f)
inlineinherited

Definition at line 203 of file TObject.h.

◆ rmdir()

void TDirectoryFile::rmdir ( const char * name)
overridevirtualinherited

Removes subdirectory from the directory.

When directory is deleted, all keys in all subdirectories will be read first and deleted from file (if exists) Equivalent call is Delete("name;*");

Reimplemented from TDirectory.

Definition at line 1558 of file TDirectoryFile.cxx.

◆ Save()

void TDirectoryFile::Save ( )
overridevirtualinherited

Save recursively all directory keys and headers.

Reimplemented from TDirectory.

Definition at line 1570 of file TDirectoryFile.cxx.

◆ SaveAs()

void TObject::SaveAs ( const char * filename = "",
Option_t * option = "" ) const
virtualinherited

Save this object in the file specified by filename.

  • if "filename" contains ".root" the object is saved in filename as root binary file.
  • if "filename" contains ".xml" the object is saved in filename as a xml ascii file.
  • if "filename" contains ".cc" the object is saved in filename as C code independent from ROOT. The code is generated via SavePrimitive(). Specific code should be implemented in each object to handle this option. Like in TF1::SavePrimitive().
  • otherwise the object is written to filename as a CINT/C++ script. The C++ code to rebuild this object is generated via SavePrimitive(). The "option" parameter is passed to SavePrimitive. By default it is an empty string. It can be used to specify the Draw option in the code generated by SavePrimitive.

    The function is available via the object context menu.

Reimplemented in TSpline, TFolder, TGeoVolume, TClassTree, TPad, TPaveClass, TGObject, TSpline3, TSpline5, ROOT::Experimental::XRooFit::xRooNode, TTreePerfStats, TVirtualPad, TGraph, and TH1.

Definition at line 708 of file TObject.cxx.

◆ SaveObjectAs()

Int_t TDirectoryFile::SaveObjectAs ( const TObject * obj,
const char * filename = "",
Option_t * option = "" ) const
overridevirtualinherited

Save object in filename.

If filename is nullptr or "", a file with "<objectname>.root" is created. The name of the key is the object name. By default new file will be created. Using option "a", one can append object to the existing ROOT file. If the operation is successful, it returns the number of bytes written to the file otherwise it returns 0. By default a message is printed. Use option "q" to not print the message. If filename contains ".json" extension, JSON representation of the object will be created and saved in the text file. Such file can be used in JavaScript ROOT (https://root.cern/js/) to display object in web browser When creating JSON file, option string may contain compression level from 0 to 3 (default 0)

Reimplemented from TDirectory.

Definition at line 1604 of file TDirectoryFile.cxx.

◆ SavePrimitive()

void TObject::SavePrimitive ( std::ostream & out,
Option_t * option = "" )
virtualinherited

Save a primitive as a C++ statement(s) on output stream "out".

Reimplemented in TGeoTessellated, TGraphEdge, TGraphNode, TGeoIdentity, TStyle, TCurlyArc, TCurlyLine, TGedMarkerSelect, TGedPatternSelect, TGColorSelect, TGFont, TGVerticalLayout, TGHorizontalLayout, TGRowLayout, TGColumnLayout, TGMatrixLayout, TGTileLayout, TGListLayout, TGListDetailsLayout, TGTextLBEntry, TGNumberEntryField, TGNumberEntry, TGTableLayoutHints, TGTableLayout, TGTextEdit, TGTextView, TGXYLayoutHints, TGXYLayout, TRootContainer, TGHtml, TEfficiency, TExec, TMacro, TGeoArb8, TGeoTrap, TGeoGtra, TGeoBBox, TGeoBoolNode, TGeoUnion, TGeoIntersection, TGeoSubtraction, TGeoCompositeShape, TGeoCone, TGeoConeSeg, TGeoElementRN, TGeoDecayChannel, TGeoEltu, TGeoHalfSpace, TGeoHype, TGeoMaterial, TGeoMixture, TGeoTranslation, TGeoRotation, TGeoCombiTrans, TGeoHMatrix, TGeoMedium, TGeoPara, TGeoParaboloid, TGeoPatternX, TGeoPatternY, TGeoPatternZ, TGeoPatternParaX, TGeoPatternParaY, TGeoPatternParaZ, TGeoPatternTrapZ, TGeoPatternCylR, TGeoPatternCylPhi, TGeoPatternSphR, TGeoPatternSphTheta, TGeoPatternSphPhi, TGeoPcon, TGeoPgon, TGeoScaledShape, TGeoShapeAssembly, TGeoSphere, TGeoTorus, TGeoTrd1, TGeoTrd2, TGeoTube, TGeoTubeSeg, TGeoCtub, TGeoVolume, TGeoXtru, TASImage, TAnnotation, TButton, TCanvas, TGroupButton, TPad, TPaveClass, TSlider, TSliderBox, TArc, TArrow, TBox, TCrown, TCutG, TDiamond, TEllipse, TFrame, TGaxis, TGraphPolar, TGraphPolargram, TLatex, TLegend, TLine, TMarker, TMathText, TPave, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPolyLine, TText, TWbox, TGraphStruct, TAxis3D, THelix, TMarker3DBox, TPolyLine3D, TPolyMarker3D, TGHorizontal3DLine, TGVertical3DLine, TGButton, TGTextButton, TGPictureButton, TGCheckButton, TGRadioButton, TGButtonGroup, TGVButtonGroup, TGHButtonGroup, TGContainer, TGCanvas, TGComboBox, TGLineStyleComboBox, TGLineWidthComboBox, TGDockableFrame, TGDoubleVSlider, TGDoubleHSlider, TGFrame, TGCompositeFrame, TGVerticalFrame, TGHorizontalFrame, TGMainFrame, TGTransientFrame, TGGroupFrame, TGFSComboBox, TGFileContainer, TGGC, TGIcon, TGLabel, TGLayoutHints, TGListBox, TGListTree, TGListView, TGLVContainer, TGMdiFrame, TGMdiMainFrame, TGMdiMenuBar, TGPopupMenu, TGMenuTitle, TGMenuBar, TGProgressBar, TGHProgressBar, TGVProgressBar, TGHScrollBar, TGVScrollBar, TGShapedFrame, TGShutterItem, TGShutter, TGVSlider, TGHSlider, TGSplitFrame, TGVSplitter, TGHSplitter, TGVFileSplitter, TGStatusBar, TGTabLayout, TGTab, TGTextEntry, TGToolBar, TGTripleVSlider, TGTripleHSlider, TRootEmbeddedCanvas, TF1, TF12, TF2, TF3, TGraph, TGraph2D, TGraph2DAsymmErrors, TGraph2DErrors, TGraphAsymmErrors, TGraphBentErrors, TGraphErrors, TGraphMultiErrors, TH1, TH2Poly, THStack, TMultiGraph, TPolyMarker, TProfile, TProfile2D, TProfile3D, TScatter, TScatter2D, TSpline3, TSpline5, TPaletteAxis, TChain, TTreePerfStats, TParallelCoord, TParallelCoordVar, TPie, and TPieSlice.

Definition at line 858 of file TObject.cxx.

◆ SavePrimitiveConstructor()

void TObject::SavePrimitiveConstructor ( std::ostream & out,
TClass * cl,
const char * variable_name,
const char * constructor_agrs = "",
Bool_t empty_line = kTRUE )
staticprotectedinherited

Save object constructor in the output stream "out".

Can be used as first statement when implementing SavePrimitive() method for the object

Definition at line 777 of file TObject.cxx.

◆ SavePrimitiveDraw()

void TObject::SavePrimitiveDraw ( std::ostream & out,
const char * variable_name,
Option_t * option = nullptr )
staticprotectedinherited

Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.

Definition at line 845 of file TObject.cxx.

◆ SavePrimitiveNameTitle()

void TNamed::SavePrimitiveNameTitle ( std::ostream & out,
const char * variable_name )
protectedinherited

Save object name and title into the output stream "out".

Definition at line 135 of file TNamed.cxx.

◆ SavePrimitiveVector()

TString TObject::SavePrimitiveVector ( std::ostream & out,
const char * prefix,
Int_t len,
Double_t * arr,
Int_t flag = 0 )
staticprotectedinherited

Save array in the output stream "out" as vector.

Create unique variable name based on prefix value Returns name of vector which can be used in constructor or in other places of C++ code If flag === kTRUE, just add empty line If flag === 111, check if array is empty and return nullptr or <vectorname>.data()

Definition at line 796 of file TObject.cxx.

◆ SaveSelf()

void TDirectoryFile::SaveSelf ( Bool_t force = kFALSE)
overridevirtualinherited

Save Directory keys and header.

If the directory has been modified (fModified set), write the keys and the directory header. This function assumes the cd is correctly set.

It is recommended to use this function in the following situation: Assume a process1 using a directory in Update mode

  • New objects or modified objects have been written to the directory.
  • You do not want to close the file.
  • You want your changes be visible from another process2 already connected to this directory in read mode.
  • Call this function.
  • In process2, use TDirectoryFile::ReadKeys to refresh the directory.

Reimplemented from TDirectory.

Definition at line 1646 of file TDirectoryFile.cxx.

◆ SetBit() [1/2]

void TObject::SetBit ( UInt_t f)
inlineinherited

Definition at line 202 of file TObject.h.

◆ SetBit() [2/2]

void TObject::SetBit ( UInt_t f,
Bool_t set )
inherited

Set or unset the user status bits as specified in f.

Definition at line 888 of file TObject.cxx.

◆ SetBufferSize()

void TDirectoryFile::SetBufferSize ( Int_t bufsize)
overridevirtualinherited

Set the default buffer size when creating new TKeys.

See also TDirectoryFile::GetBufferSize

Reimplemented from TDirectory.

Definition at line 1667 of file TDirectoryFile.cxx.

◆ SetDrawOption()

void TObject::SetDrawOption ( Option_t * option = "")
virtualinherited

Set drawing option for object.

This option only affects the drawing style and is stored in the option field of the TObjOptLink supporting a TPad's primitive list (TList). Note that it does not make sense to call object.SetDrawOption(option) before having called object.Draw().

Reimplemented in TSystemDirectory, TSystemFile, TPad, TGFrame, TAxis, TBrowser, TPaveStats, TGedFrame, TRootBrowserLite, and RooPlot.

Definition at line 871 of file TObject.cxx.

◆ SetDtorOnly()

void TObject::SetDtorOnly ( void * obj)
staticinherited

Set destructor only flag.

Definition at line 1204 of file TObject.cxx.

◆ SetModified()

void TDirectoryFile::SetModified ( )
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 118 of file TDirectoryFile.h.

◆ SetMother()

virtual void TDirectory::SetMother ( TObject * mother)
inlinevirtualinherited

Definition at line 259 of file TDirectory.h.

◆ SetName()

void TDirectory::SetName ( const char * newname)
overridevirtualinherited

Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory.

DO NOT use this method to 'rename a directory'. Renaming a directory is currently NOT supported.

Reimplemented from TNamed.

Definition at line 1297 of file TDirectory.cxx.

◆ SetNameTitle()

void TNamed::SetNameTitle ( const char * name,
const char * title )
virtualinherited

Set all the TNamed parameters (name and title).

WARNING: if the name is changed and the object is a member of a THashTable or THashList container the container must be Rehash()'ed after SetName(). For example the list of objects in the current directory is a THashList.

Reimplemented in TContextMenu, TNode, TGraph2D, TH1, RooAbsArg, RooAbsData, RooDataHist, RooDataSet, RooFitResult, RooPlot, and TGraph.

Definition at line 163 of file TNamed.cxx.

◆ SetObjectStat()

void TObject::SetObjectStat ( Bool_t stat)
staticinherited

Turn on/off tracking of objects in the TObjectTable.

Definition at line 1188 of file TObject.cxx.

◆ SetSeekDir()

void TDirectoryFile::SetSeekDir ( Long64_t v)
inlineoverridevirtualinherited

Reimplemented from TDirectory.

Definition at line 119 of file TDirectoryFile.h.

◆ SetTitle()

void TNamed::SetTitle ( const char * title = "")
virtualinherited

◆ SetTRefAction()

void TDirectoryFile::SetTRefAction ( TObject * ref,
TObject * parent )
overridevirtualinherited

Find the action to be executed in the dictionary of the parent class and store the corresponding exec number into fBits.

This function searches a data member in the class of parent with an offset corresponding to this. If a comment "TEXEC:" is found in the comment field of the data member, the function stores the exec identifier of the exec statement following this keyword.

Reimplemented from TDirectory.

Definition at line 1682 of file TDirectoryFile.cxx.

◆ SetUniqueID()

void TObject::SetUniqueID ( UInt_t uid)
virtualinherited

Set the unique object id.

Definition at line 899 of file TObject.cxx.

◆ SetWritable()

void TDirectoryFile::SetWritable ( Bool_t writable = kTRUE)
overridevirtualinherited

Set the new value of fWritable recursively.

Reimplemented from TDirectory.

Definition at line 1701 of file TDirectoryFile.cxx.

◆ Sizeof()

Int_t TDirectoryFile::Sizeof ( ) const
overridevirtualinherited

Return the size in bytes of the directory header.

Reimplemented from TDirectory.

Reimplemented in TSQLFile, TXMLFile, and TFile.

Definition at line 1724 of file TDirectoryFile.cxx.

◆ Streamer()

void RooWorkspace::WSDir::Streamer ( TBuffer & b)
overridevirtual

Stream a class object.

Reimplemented from TDirectoryFile.

◆ StreamerNVirtual()

void RooWorkspace::WSDir::StreamerNVirtual ( TBuffer & ClassDef_StreamerNVirtual_b)
inline

Definition at line 238 of file RooWorkspace.h.

◆ SysError()

void TObject::SysError ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue system error message.

Use "location" to specify the method where the system error occurred. Accepts standard printf formatting arguments.

Definition at line 1112 of file TObject.cxx.

◆ TestBit()

R__ALWAYS_INLINE Bool_t TObject::TestBit ( UInt_t f) const
inlineinherited

Definition at line 204 of file TObject.h.

◆ TestBits()

Int_t TObject::TestBits ( UInt_t f) const
inlineinherited

Definition at line 205 of file TObject.h.

◆ UnregisterContext()

void TDirectory::UnregisterContext ( TContext * ctxt)
protectedinherited

UnRegister a TContext pointing to this TDirectory object.

Definition at line 1444 of file TDirectory.cxx.

◆ UseCurrentStyle()

void TObject::UseCurrentStyle ( )
virtualinherited

Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.

Reimplemented in TCanvas, TPad, TFrame, TPaveStats, TPaveText, TAxis3D, TGraph, TH1, and TTree.

Definition at line 909 of file TObject.cxx.

◆ Warning()

void TObject::Warning ( const char * location,
const char * fmt,
... ) const
virtualinherited

Issue warning message.

Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.

Definition at line 1084 of file TObject.cxx.

◆ Write() [1/2]

Int_t TDirectoryFile::Write ( const char * name = nullptr,
Int_t opt = 0,
Int_t bufsize = 0 ) const
overridevirtualinherited

One can not save a const TDirectory object.

Reimplemented from TDirectory.

Reimplemented in TSQLFile, TXMLFile, TFile, and TParallelMergingFile.

Definition at line 1876 of file TDirectoryFile.cxx.

◆ Write() [2/2]

Int_t TDirectoryFile::Write ( const char * name = nullptr,
Int_t opt = 0,
Int_t bufsize = 0 )
overridevirtualinherited

Write all objects in memory to disk.

Loop on all objects in memory (including subdirectories). A new key is created in the keys linked list for each object. For allowed options see TObject::Write(). The directory header info is rewritten on the directory header record.

Reimplemented from TDirectory.

Reimplemented in TSQLFile, TXMLFile, TFile, and TParallelMergingFile.

Definition at line 1855 of file TDirectoryFile.cxx.

◆ WriteDirHeader()

void TDirectoryFile::WriteDirHeader ( )
overridevirtualinherited

Overwrite the Directory header record.

Reimplemented from TDirectory.

Definition at line 2160 of file TDirectoryFile.cxx.

◆ WriteKeys()

void TDirectoryFile::WriteKeys ( )
overridevirtualinherited

Write Keys linked list on the file.

The linked list of keys (fKeys) is written as a single data record

Reimplemented from TDirectory.

Definition at line 2189 of file TDirectoryFile.cxx.

◆ WriteObject() [1/2]

template<typename T >
std::enable_if_t<!std::is_base_of< TObject, T >::value, Int_t > TDirectory::WriteObject ( const T * obj,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
inlineinherited

Write an object with proper type checking.

Parameters
[in]objPointer to an object to be written.
[in]nameName of the object in the file.
[in]optionOptions. See TDirectoryFile::WriteTObject.
[in]bufsizeBuffer size. See TDirectoryFile::WriteTObject.

This overload takes care of instances of classes that are not derived from TObject. The method redirects to TDirectory::WriteObjectAny.

Definition at line 283 of file TDirectory.h.

◆ WriteObject() [2/2]

template<typename T >
std::enable_if_t< std::is_base_of< TObject, T >::value, Int_t > TDirectory::WriteObject ( const T * obj,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
inlineinherited

Write an object with proper type checking.

Parameters
[in]objPointer to an object to be written.
[in]nameName of the object in the file.
[in]optionOptions. See TDirectoryFile::WriteTObject.
[in]bufsizeBuffer size. See TDirectoryFile::WriteTObject.

This overload takes care of instances of classes that are derived from TObject. The method redirects to TDirectory::WriteTObject.

Definition at line 297 of file TDirectory.h.

◆ WriteObjectAny() [1/2]

Int_t TDirectoryFile::WriteObjectAny ( const void * obj,
const char * classname,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
overridevirtualinherited

Write object from pointer of class classname in this directory.

obj may not derive from TObject. See TDirectoryFile::WriteTObject for comments

Very important note

The value passed as 'obj' needs to be from a pointer to the type described by classname. For example:

TopClass *top;
BottomClass *bottom;
top = bottom;

you can do:

directory->WriteObjectAny(top,"top","name of object");
directory->WriteObjectAny(bottom,"bottom","name of object");

BUT YOU CAN NOT DO the following since it will fail with multiple inheritance:

directory->WriteObjectAny(top,"bottom","name of object");

We STRONGLY recommend to use

TopClass *top = ....;
directory->WriteObject(top,"name of object")

See also remarks in TDirectoryFile::WriteTObject

Reimplemented from TDirectory.

Definition at line 2041 of file TDirectoryFile.cxx.

◆ WriteObjectAny() [2/2]

Int_t TDirectoryFile::WriteObjectAny ( const void * obj,
const TClass * cl,
const char * name,
Option_t * option = "",
Int_t bufsize = 0 )
overridevirtualinherited

Write object of class with dictionary cl in this directory.

obj may not derive from TObject To get the TClass* cl pointer, one can use

TClass *cl = TClass::GetClass("classname");

An alternative is to call the function WriteObjectAny above. see TDirectoryFile::WriteTObject for comments

Reimplemented from TDirectory.

Definition at line 2068 of file TDirectoryFile.cxx.

◆ WriteTObject()

Int_t TDirectoryFile::WriteTObject ( const TObject * obj,
const char * name = nullptr,
Option_t * option = "",
Int_t bufsize = 0 )
overridevirtualinherited

Write object obj to this directory.

The data structure corresponding to this object is serialized. The corresponding buffer is written to this directory with an associated key with name "name".

Writing an object to a file involves the following steps:

  • Creation of a support TKey object in the directory. The TKey object creates a TBuffer object.
  • The TBuffer object is filled via the class::Streamer function.
  • If the file is compressed (default) a second buffer is created to hold the compressed buffer.
  • Reservation of the corresponding space in the file by looking in the TFree list of free blocks of the file.
  • The buffer is written to the file.

By default, the buffersize will be taken from the average buffer size of all objects written to the current file so far. Use TDirectoryFile::SetBufferSize to force a given buffer size.

If a name is specified, it will be the name of the key. If name is not given, the name of the key will be the name as returned by obj->GetName().

The option can be a combination of:

  • "SingleKey"
  • "Overwrite"
  • "WriteDelete" Using the "Overwrite" option a previous key with the same name is overwritten. The previous key is deleted before writing the new object. Using the "WriteDelete" option a previous key with the same name is deleted only after the new object has been written. This option is safer than kOverwrite but it is slower. The "SingleKey" option is only used by TCollection::Write() to write a container with a single key instead of each object in the container with its own key. An object is read from this directory via TDirectoryFile::Get. The function returns the total number of bytes written to the directory. It returns 0 if the object cannot be written.

WARNING: avoid special characters like '^','$','.' in the name as they are used by the regular expression parser (see TRegexp).

Reimplemented from TDirectory.

Definition at line 1926 of file TDirectoryFile.cxx.

Friends And Related Symbol Documentation

◆ RooWorkspace

friend class RooWorkspace
friend

Definition at line 234 of file RooWorkspace.h.

Member Data Documentation

◆ _wspace

RooWorkspace* RooWorkspace::WSDir::_wspace
protected

! do not persist

Definition at line 236 of file RooWorkspace.h.

◆ fBits

UInt_t TObject::fBits
privateinherited

bit field status word

Definition at line 47 of file TObject.h.

◆ fBufferSize

Int_t TDirectoryFile::fBufferSize {0}
protectedinherited

Default buffer size to create new TKeys.

Definition at line 41 of file TDirectoryFile.h.

◆ fContext

TContext* TDirectory::fContext {nullptr}
protectedinherited

! Pointer to a list of TContext object pointing to this TDirectory

Definition at line 145 of file TDirectory.h.

◆ fContextPeg

std::atomic<size_t> TDirectory::fContextPeg {0}
protectedinherited

! Counter delaying the TDirectory destructor from finishing.

Definition at line 153 of file TDirectory.h.

◆ fDatimeC

TDatime TDirectoryFile::fDatimeC
protectedinherited

Date and time when directory is created.

Definition at line 37 of file TDirectoryFile.h.

◆ fDatimeM

TDatime TDirectoryFile::fDatimeM
protectedinherited

Date and time of last modification.

Definition at line 38 of file TDirectoryFile.h.

◆ fFile

TFile* TDirectoryFile::fFile {nullptr}
protectedinherited

Pointer to current file in memory.

Definition at line 45 of file TDirectoryFile.h.

◆ fgAddDirectory

Bool_t TDirectory::fgAddDirectory = false
inlinestaticprotectedinherited

!

Deprecated
This flag has no effect in ROOT.

Definition at line 157 of file TDirectory.h.

◆ fGDirectories

std::vector<SharedGDirectory_t> TDirectory::fGDirectories
protectedinherited

! thread local gDirectory pointing to this object.

Definition at line 151 of file TDirectory.h.

◆ fgDtorOnly

Longptr_t TObject::fgDtorOnly = 0
staticprivateinherited

object for which to call dtor only (i.e. no delete)

Definition at line 49 of file TObject.h.

◆ fgObjectStat

Bool_t TObject::fgObjectStat = kTRUE
staticprivateinherited

if true keep track of objects in TObjectTable

Definition at line 50 of file TObject.h.

◆ fKeys

TList* TDirectoryFile::fKeys {nullptr}
protectedinherited

Pointer to keys list in memory.

Definition at line 46 of file TDirectoryFile.h.

◆ fList

TList* TDirectory::fList {nullptr}
protectedinherited

List of objects in memory.

Definition at line 142 of file TDirectory.h.

◆ fModified

Bool_t TDirectoryFile::fModified {kFALSE}
protectedinherited

True if directory has been modified.

Definition at line 35 of file TDirectoryFile.h.

◆ fMother

TObject* TDirectory::fMother {nullptr}
protectedinherited

pointer to mother of the directory

Definition at line 141 of file TDirectory.h.

◆ fName

TString TNamed::fName
protectedinherited

Definition at line 32 of file TNamed.h.

◆ fNbytesKeys

Int_t TDirectoryFile::fNbytesKeys {0}
protectedinherited

Number of bytes for the keys.

Definition at line 39 of file TDirectoryFile.h.

◆ fNbytesName

Int_t TDirectoryFile::fNbytesName {0}
protectedinherited

Number of bytes in TNamed at creation time.

Definition at line 40 of file TDirectoryFile.h.

◆ fPathBuffer

TString TDirectory::fPathBuffer
mutableprotectedinherited

! Buffer for GetPath() function

Definition at line 144 of file TDirectory.h.

◆ fSeekDir

Long64_t TDirectoryFile::fSeekDir {0}
protectedinherited

Location of directory on file.

Definition at line 42 of file TDirectoryFile.h.

◆ fSeekKeys

Long64_t TDirectoryFile::fSeekKeys {0}
protectedinherited

Location of Keys record on file.

Definition at line 44 of file TDirectoryFile.h.

◆ fSeekParent

Long64_t TDirectoryFile::fSeekParent {0}
protectedinherited

Location of parent directory on file.

Definition at line 43 of file TDirectoryFile.h.

◆ fSpinLock

std::atomic_flag TDirectory::fSpinLock
mutableprotectedinherited

! MSVC doesn't support = ATOMIC_FLAG_INIT;

Definition at line 154 of file TDirectory.h.

◆ fTitle

TString TNamed::fTitle
protectedinherited

Definition at line 33 of file TNamed.h.

◆ fUniqueID

UInt_t TObject::fUniqueID
privateinherited

object unique identifier

Definition at line 46 of file TObject.h.

◆ fUUID

TUUID TDirectory::fUUID {TUUID::UUIDv4()}
protectedinherited

Unique identifier.

Definition at line 143 of file TDirectory.h.

◆ fWritable

Bool_t TDirectoryFile::fWritable {kFALSE}
protectedinherited

True if directory is writable.

Definition at line 36 of file TDirectoryFile.h.


The documentation for this class was generated from the following files: