ROOT logo
ROOT » CORE » BASE » TObject

class TObject


TObject

Mother of all ROOT objects.

The TObject class provides default behaviour and protocol for all
objects in the ROOT system. It provides protocol for object I/O,
error handling, sorting, inspection, printing, drawing, etc.
Every object which inherits from TObject can be stored in the
ROOT collection classes.
TObject's bits can be used as flags, bits 0 - 13 and 24-31 are
reserved as  global bits while bits 14 - 23 can be used in different
class hierarchies (watch out for overlaps).


Function Members (Methods)

public:
TObject()
TObject(const TObject& object)
virtual~TObject()
voidAbstractMethod(const char* method) const
virtual voidAppendPad(Option_t* option = "")
virtual voidBrowse(TBrowser* b)
static TClass*Class()
virtual const char*ClassName() const
virtual voidClear(Option_t* = "")
virtual TObject*Clone(const char* newname = "") const
virtual Int_tCompare(const TObject* obj) const
virtual voidCopy(TObject& object) const
virtual voidDelete(Option_t* option = "")MENU
virtual Int_tDistancetoPrimitive(Int_t px, Int_t py)
virtual voidDraw(Option_t* option = "")
virtual voidDrawClass() constMENU
virtual TObject*DrawClone(Option_t* option = "") constMENU
virtual voidDump() constMENU
virtual voidError(const char* method, const char* msgfmt) const
virtual voidExecute(const char* method, const char* params, Int_t* error = 0)
virtual voidExecute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidFatal(const char* method, const char* msgfmt) const
virtual TObject*FindObject(const char* name) const
virtual TObject*FindObject(const TObject* obj) const
virtual Option_t*GetDrawOption() const
static Long_tGetDtorOnly()
virtual const char*GetIconName() const
virtual const char*GetName() const
virtual char*GetObjectInfo(Int_t px, Int_t py) const
static Bool_tGetObjectStat()
virtual Option_t*GetOption() const
virtual const char*GetTitle() const
virtual UInt_tGetUniqueID() const
virtual Bool_tHandleTimer(TTimer* timer)
virtual ULong_tHash() const
virtual voidInfo(const char* method, const char* msgfmt) const
virtual Bool_tInheritsFrom(const char* classname) const
virtual Bool_tInheritsFrom(const TClass* cl) const
virtual voidInspect() constMENU
voidInvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tIsEqual(const TObject* obj) const
virtual Bool_tIsFolder() const
Bool_tIsOnHeap() const
virtual Bool_tIsSortable() const
Bool_tIsZombie() const
virtual voidls(Option_t* option = "") const
voidMayNotUse(const char* method) const
virtual Bool_tNotify()
voidObsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidoperator delete(void* ptr)
static voidoperator delete(void* ptr, void* vp)
static voidoperator delete[](void* ptr)
static voidoperator delete[](void* ptr, void* vp)
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)
TObject&operator=(const TObject& rhs)
virtual voidPaint(Option_t* option = "")
virtual voidPop()
virtual voidPrint(Option_t* option = "") const
virtual Int_tRead(const char* name)
virtual voidRecursiveRemove(TObject* obj)
voidResetBit(UInt_t f)
virtual voidSaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidSavePrimitive(ostream& out, Option_t* option = "")
voidSetBit(UInt_t f)
voidSetBit(UInt_t f, Bool_t set)
virtual voidSetDrawOption(Option_t* option = "")MENU
static voidSetDtorOnly(void* obj)
static voidSetObjectStat(Bool_t stat)
virtual voidSetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidSysError(const char* method, const char* msgfmt) const
Bool_tTestBit(UInt_t f) const
Int_tTestBits(UInt_t f) const
virtual voidUseCurrentStyle()
virtual voidWarning(const char* method, const char* msgfmt) const
virtual Int_tWrite(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tWrite(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidDoError(int level, const char* location, const char* fmt, va_list va) const
voidMakeZombie()

Data Members

public:
enum EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
UInt_tfBitsbit field status word
UInt_tfUniqueIDobject unique identifier
static Long_tfgDtorOnlyobject for which to call dtor only (i.e. no delete)
static Bool_tfgObjectStatif true keep track of objects in TObjectTable

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TObject()
 TObject constructor. It sets the two data words of TObject to their
 initial values. The unique ID is set to 0 and the status word is
 set depending if the object is created on the stack or allocated
 on the heap. Depending on the ROOT environment variable "Root.MemStat"
 (see TEnv) the object is added to the global TObjectTable for
 bookkeeping.
TObject(const TObject& object)
 TObject copy ctor.
TObject& operator=(const TObject& rhs)
 TObject assignment operator.
void Copy(TObject& object) const
 Copy this to obj.
~TObject()
 TObject destructor. Removes object from all canvases and object browsers
 if observer bit is on and remove from the global object table.
void AppendPad(Option_t* option = "")
 Append graphics object to current pad. In case no current pad is set
 yet, create a default canvas with the name "c1".
void Browse(TBrowser* b)
 Browse object. May be overridden for another default action
const char * ClassName() const
 Returns name of class to which the object belongs.
TObject * Clone(const char* newname = "") const
 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 to set
 a new name to the newly created object.

 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.
Int_t Compare(const TObject* obj) const
 Compare abstract method. Must be overridden if a class wants to be able
 to compare itself with other objects. Must return -1 if this is smaller
 than obj, 0 if objects are equal and 1 if this is larger than obj.
void Delete(Option_t* option = "")
 Delete this object. Typically called as a command via the interpreter.
 Normally use "delete" operator when object has been allocated on the heap.
Int_t DistancetoPrimitive(Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 This member function must be implemented for each graphics primitive.
 This default function returns a big number (999999).
void Draw(Option_t* option = "")
 Default Draw method for all objects
void DrawClass() const
 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:

/* */
TObject * DrawClone(Option_t* option = "") const
 Draw a clone of this object in the current pad
void Dump() const
 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
   fUniqueID                0           object unique identifier
   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
void Execute(const char* method, const char* params, Int_t* error = 0)
 Execute method on this object with the given parameter string, e.g.
 "3.14,1,\"text\"".
void Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
 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
void ExecuteEvent(Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). This method
 must be overridden if an object can react to graphics events.
TObject * FindObject(const char* name) const
 Must be redefined in derived classes.
 This function is typycally used with TCollections, but can also be used
 to find an object by name inside this object.
TObject * FindObject(const TObject* obj) const
 Must be redefined in derived classes.
 This function is typycally used with TCollections, but can also be used
 to find an object inside this object.
Option_t * GetDrawOption() const
 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.
const char * GetName() const
 Returns name of object. This default method returns the class name.
 Classes that give objects a name should override this method.
const char * GetIconName() const
 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.
UInt_t GetUniqueID() const
 Return the unique object id.
char * GetObjectInfo(Int_t px, Int_t py) const
 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).
const char * GetTitle() const
 Returns title of object. This default method returns the class title
 (i.e. description). Classes that give objects a title should override
 this method.
Bool_t HandleTimer(TTimer* timer)
 Execute action in response of a timer timing out. This method
 must be overridden if an object has to react to timers.
ULong_t Hash() const
 Return hash value for this object.
Bool_t InheritsFrom(const char* classname) const
 Returns kTRUE if object inherits from class "classname".
Bool_t InheritsFrom(const TClass* cl) const
 Returns kTRUE if object inherits from TClass cl.
void Inspect() const
 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:

/* */
Bool_t IsFolder() const
 Returns kTRUE in case object contains browsable objects (like containers
 or lists of other objects).
Bool_t IsEqual(const TObject* obj) const
 Default equal comparison (objects are equal if they have the same
 address in memory). More complicated classes might want to override
 this function.
void ls(Option_t* option = "") const
 The ls function lists the contents of a class on stdout. Ls output
 is typically much less verbose then Dump().
Bool_t Notify()
 This method must be overridden to handle object notifcation.
void Paint(Option_t* option = "")
 This method must be overridden if a class wants to paint itself.
 The difference between Paint() and Draw() is that when a object
 draws itself it is added to the display list of the pad in
 which it is drawn (and automatically redrawn whenever the pad is
 redrawn). While paint just draws the object without adding it to
 the pad display list.
void Pop()
 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.
void Print(Option_t* option = "") const
 This method must be overridden when a class wants to print itself.
Int_t Read(const char* name)
 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().
void RecursiveRemove(TObject* obj)
 Recursively remove this object from a list. Typically implemented
 by classes that can contain mulitple references to a same object.
void SaveAs(const char* filename = "", Option_t* option = "") const
 Save this object in the file specified by filename.
 if (filename contains ".root" the object is saved in filename (root binary file)
 if (filename contains ".xml"  the object is saved in filename (xml ascii file)
  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
  en 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.
void SavePrimitive(ostream& out, Option_t* option = "")
 Save a primitive as a C++ statement(s) on output stream "out".
void SetDrawOption(Option_t* option = "")
 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().
void SetBit(UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
void SetUniqueID(UInt_t uid)
 Set the unique object id.
void UseCurrentStyle()
 Set current style settings in this object
 This function is called when either TCanvas::UseCurrentStyle
 or TROOT::ForceStyle have been invoked.
Int_t Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
 Write this object to the current directory.
 The data structure corresponding to this object is serialized.
 The corresponding buffer is written to the current 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 current 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.

  Bufsize can be given to force a given buffer size to write this object.
  By default, the buffersize will be taken from the average buffer size
  of all objects written to the current file so far.

  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 GetName().

  The option can be a combination of:
    kSingleKey, kOverwrite or kWriteDelete
  Using the kOverwrite option a previous key with the same name is
  overwritten. The previous key is deleted before writing the new object.
  Using the kWriteDelete 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 kSingleKey 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 the file into memory via TKey::Read() or
  via TObject::Read().

  The function returns the total number of bytes written to the file.
  It returns 0 if the object cannot be written.
Int_t Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
 Write this object to the current directory. For more see the
 const version of this method.
void Streamer(TBuffer& b)
 Stream an object of class TObject.
void DoError(int level, const char* location, const char* fmt, va_list va) const
 Interface to ErrorHandler (protected).
void Info(const char *location, const char *va_(fmt), ...)
 Issue info message. Use "location" to specify the method where the
 warning occured. Accepts standard printf formatting arguments.
void Warning(const char *location, const char *va_(fmt), ...)
 Issue warning message. Use "location" to specify the method where the
 warning occured. Accepts standard printf formatting arguments.
void Error(const char *location, const char *va_(fmt), ...)
 Issue error message. Use "location" to specify the method where the
 error occured. Accepts standard printf formatting arguments.
void SysError(const char *location, const char *va_(fmt), ...)
 Issue system error message. Use "location" to specify the method where
 the system error occured. Accepts standard printf formatting arguments.
void Fatal(const char *location, const char *va_(fmt), ...)
 Issue fatal error message. Use "location" to specify the method where the
 fatal error occured. Accepts standard printf formatting arguments.
void AbstractMethod(const char* method) const
 Use this method to implement an "abstract" method that you don't
 want to leave purely abstract.
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).
void Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
 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.
Bool_t GetObjectStat()
 Get status of object stat flag.
void SetObjectStat(Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
Long_t GetDtorOnly()
return destructor only flag
void SetDtorOnly(void* obj)
set destructor only flag
void operator delete(void* ptr)
operator delete
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* ptr, void* vp)
 Only called by placement new[] when throwing an exception.
void MakeZombie()
{ fBits |= kZombie; }
void Clear(Option_t* = "")
{ }
Option_t * GetOption() const
{ return ""; }
Bool_t IsSortable() const
{ return kFALSE; }
Bool_t IsOnHeap() const
{ return TestBit(kIsOnHeap); }
Bool_t IsZombie() const
{ return TestBit(kZombie); }
void * operator new(size_t sz)
----- operators
{ return TStorage::ObjectAlloc(sz); }
void * operator new[](size_t sz)
{ return TStorage::ObjectAlloc(sz); }
void * operator new(size_t sz, void* vp)
{ return TStorage::ObjectAlloc(sz, vp); }
void * operator new[](size_t sz, void* vp)
{ return TStorage::ObjectAlloc(sz, vp); }
void SetBit(UInt_t f, Bool_t set)
----- bit manipulation
void ResetBit(UInt_t f)
{ fBits &= ~(f & kBitMask); }
Bool_t TestBit(UInt_t f) const
{ return (Bool_t) ((fBits & f) != 0); }
Int_t TestBits(UInt_t f) const
{ return (Int_t) (fBits & f); }
void InvertBit(UInt_t f)
{ fBits ^= f & kBitMask; }