Logo ROOT   6.14/05
Reference Guide
List of all members | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | Friends | List of all members
TBranch Class Reference

A TTree is a list of TBranches.

A TBranch supports:

See TBranch structure in TTree.

See also specialized branches:

Definition at line 62 of file TBranch.h.

Public Member Functions

 TBranch ()
 Default constructor. Used for I/O by default. More...
 
 TBranch (TTree *tree, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=-1)
 Create a Branch as a child of a Tree. More...
 
 TBranch (TBranch *parent, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=-1)
 Create a Branch as a child of another Branch. More...
 
virtual ~TBranch ()
 Destructor. More...
 
virtual void AddBasket (TBasket &b, Bool_t ondisk, Long64_t startEntry)
 Add the basket to this branch. More...
 
virtual void AddLastBasket (Long64_t startEntry)
 Add the start entry of the write basket (not yet created) More...
 
Int_t BackFill ()
 Loop on all leaves of this branch to back fill Basket buffer. More...
 
virtual void Browse (TBrowser *b)
 Browser interface. More...
 
virtual void DeleteBaskets (Option_t *option="")
 Loop on all branch baskets. More...
 
virtual void DropBaskets (Option_t *option="")
 Loop on all branch baskets. More...
 
void ExpandBasketArrays ()
 Increase BasketEntry buffer of a minimum of 10 locations and a maximum of 50 per cent of current size. More...
 
Int_t Fill ()
 
virtual Int_t FillImpl (ROOT::Internal::TBranchIMTHelper *)
 Loop on all leaves of this branch to fill Basket buffer. More...
 
virtual TBranchFindBranch (const char *name)
 Find the immediate sub-branch with passed name. More...
 
virtual TLeafFindLeaf (const char *name)
 Find the leaf corresponding to the name 'searchname'. More...
 
Int_t FlushBaskets ()
 Flush to disk all the baskets of this branch and any of subbranches. More...
 
Int_t FlushOneBasket (UInt_t which)
 If we have a write basket in memory and it contains some entries and has not yet been written to disk, we write it and delete it from memory. More...
 
virtual char * GetAddress () const
 
TBasketGetBasket (Int_t basket)
 Return pointer to basket basketnumber in this Branch. More...
 
Int_tGetBasketBytes () const
 
Long64_tGetBasketEntry () const
 
virtual Long64_t GetBasketSeek (Int_t basket) const
 Return address of basket in the file. More...
 
virtual Int_t GetBasketSize () const
 
virtual TListGetBrowsables ()
 Returns (and, if 0, creates) browsable objects for this branch See TVirtualBranchBrowsable::FillListOfBrowsables. More...
 
virtual const char * GetClassName () const
 Return the name of the user class whose content is stored in this branch, if any. More...
 
Int_t GetCompressionAlgorithm () const
 
Int_t GetCompressionLevel () const
 
Int_t GetCompressionSettings () const
 
TDirectoryGetDirectory () const
 
Long64_t GetEntries () const
 
virtual Int_t GetEntry (Long64_t entry=0, Int_t getall=0)
 Read all leaves of entry and return total number of bytes read. More...
 
virtual Int_t GetEntryExport (Long64_t entry, Int_t getall, TClonesArray *list, Int_t n)
 Read all leaves of an entry and export buffers to real objects in a TClonesArray list. More...
 
Long64_t GetEntryNumber () const
 
Int_t GetEntryOffsetLen () const
 
Int_t GetEvent (Long64_t entry=0)
 
virtual Int_t GetExpectedType (TClass *&clptr, EDataType &type)
 Fill expectedClass and expectedType with information on the data type of the object/values contained in this branch (and thus the type of pointers expected to be passed to Set[Branch]Address return 0 in case of success and > 0 in case of failure. More...
 
virtual TFileGetFile (Int_t mode=0)
 Return pointer to the file where branch buffers reside, returns 0 in case branch buffers reside in the same file as tree header. More...
 
const char * GetFileName () const
 
Long64_t GetFirstEntry () const
 
const char * GetIconName () const
 Return icon name depending on type of branch. More...
 
TIOFeatures GetIOFeatures () const
 Returns the IO settings currently in use for this branch. More...
 
virtual TLeafGetLeaf (const char *name) const
 Return pointer to the 1st Leaf named name in thisBranch. More...
 
TObjArrayGetListOfBaskets ()
 
TObjArrayGetListOfBranches ()
 
TObjArrayGetListOfLeaves ()
 
virtual Bool_t GetMakeClass () const
 Return whether this branch is in a mode where the object are decomposed or not (Also known as MakeClass mode). More...
 
Int_t GetMaxBaskets () const
 
TBranchGetMother () const
 Get our top-level parent branch in the tree. More...
 
Int_t GetNleaves () const
 
Int_t GetOffset () const
 
Int_t GetReadBasket () const
 
Long64_t GetReadEntry () const
 
virtual Int_t GetRow (Int_t row)
 Return all elements of one row unpacked in internal array fValues [Actually just returns 1 (?)]. More...
 
Int_t GetSplitLevel () const
 
TBranchGetSubBranch (const TBranch *br) const
 Find the parent branch of child. More...
 
Long64_t GetTotalSize (Option_t *option="") const
 Return total number of bytes in the branch (including current buffer) More...
 
Long64_t GetTotBytes (Option_t *option="") const
 Return total number of bytes in the branch (excluding current buffer) if option ="*" includes all sub-branches of this branch too. More...
 
TBufferGetTransientBuffer (Int_t size)
 Returns the transient buffer currently used by this TBranch for reading/writing baskets. More...
 
TTreeGetTree () const
 
Int_t GetWriteBasket () const
 
Long64_t GetZipBytes (Option_t *option="") const
 Return total number of zip bytes in the branch if option ="*" includes all sub-branches of this branch too. More...
 
Bool_t IsAutoDelete () const
 Return kTRUE if an existing object in a TBranchObject must be deleted. More...
 
Bool_t IsFolder () const
 Return kTRUE if more than one leaf or browsables, kFALSE otherwise. More...
 
virtual void KeepCircular (Long64_t maxEntries)
 keep a maximum of fMaxEntries in memory More...
 
virtual Int_t LoadBaskets ()
 Baskets associated to this branch are forced to be in memory. More...
 
virtual void Print (Option_t *option="") const
 Print TBranch parameters. More...
 
void PrintCacheInfo () const
 Print the information we have about which basket is currently cached and whether they have been 'used'/'read' from the cache. More...
 
virtual void ReadBasket (TBuffer &b)
 Loop on all leaves of this branch to read Basket buffer. More...
 
virtual void Refresh (TBranch *b)
 Refresh this branch using new information in b This function is called by TTree::Refresh. More...
 
virtual void Reset (Option_t *option="")
 Reset a Branch. More...
 
virtual void ResetAddress ()
 Reset the address of the branch. More...
 
virtual void ResetAfterMerge (TFileMergeInfo *)
 Reset a Branch. More...
 
virtual void ResetReadEntry ()
 
virtual void SetAddress (void *add)
 Set address of this branch. More...
 
virtual void SetAutoDelete (Bool_t autodel=kTRUE)
 Set the automatic delete bit. More...
 
virtual void SetBasketSize (Int_t buffsize)
 Set the basket size The function makes sure that the basket size is greater than fEntryOffsetlen. More...
 
virtual void SetBufferAddress (TBuffer *entryBuffer)
 Set address of this branch directly from a TBuffer to avoid streaming. More...
 
void SetCompressionAlgorithm (Int_t algorithm=0)
 Set compression algorithm. More...
 
void SetCompressionLevel (Int_t level=1)
 Set compression level. More...
 
void SetCompressionSettings (Int_t settings=1)
 Set compression settings. More...
 
virtual void SetEntries (Long64_t entries)
 Set the number of entries in this branch. More...
 
virtual void SetEntryOffsetLen (Int_t len, Bool_t updateSubBranches=kFALSE)
 Update the default value for the branch's fEntryOffsetLen if and only if it was already non zero (and the new value is not zero) If updateExisting is true, also update all the existing branches. More...
 
virtual void SetFile (TFile *file=0)
 Set file where this branch writes/reads its buffers. More...
 
virtual void SetFile (const char *filename)
 Set file where this branch writes/reads its buffers. More...
 
virtual void SetFirstEntry (Long64_t entry)
 set the first entry number (case of TBranchSTL) More...
 
void SetIOFeatures (TIOFeatures &features)
 
virtual Bool_t SetMakeClass (Bool_t decomposeObj=kTRUE)
 Set the branch in a mode where the object are decomposed (Also known as MakeClass mode). More...
 
virtual void SetObject (void *objadd)
 Set object this branch is pointing to. More...
 
virtual void SetOffset (Int_t offset=0)
 
virtual void SetStatus (Bool_t status=1)
 Set branch status to Process or DoNotProcess. More...
 
virtual void SetTree (TTree *tree)
 
virtual void SetupAddresses ()
 If the branch address is not set, we set all addresses starting with the top level parent branch. More...
 
virtual void UpdateAddress ()
 
virtual void UpdateFile ()
 Refresh the value of fDirectory (i.e. More...
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TString &name, const TString &title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
virtual ~TNamed ()
 TNamed destructor. More...
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects. More...
 
virtual void Copy (TObject &named) const
 Copy this to obj. More...
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 List TNamed name and title. More...
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
ULong_t CheckedHash ()
 Checked and record whether for this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
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. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
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). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
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. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 AttFill default constructor. More...
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor. More...
 
virtual ~TAttFill ()
 AttFill destructor. More...
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill. More...
 
virtual Color_t GetFillColor () const
 Return the fill area color. More...
 
virtual Style_t GetFillStyle () const
 Return the fill area style. More...
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary. More...
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values. More...
 
virtual void SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
 Save fill attributes as C++ statement(s) on output stream out. More...
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes. More...
 
virtual void SetFillColor (Color_t fcolor)
 Set the fill area color. More...
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 Set the fill area style. More...
 

Static Public Member Functions

static void ResetCount ()
 Static function resetting fgCount. More...
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Protected Types

using CacheInfo_t = ROOT::Internal::TBranchCacheInfo
 
enum  EStatusBits {
  kDoNotProcess = ::kDoNotProcess, kIsClone = ::kIsClone, kBranchObject = ::kBranchObject, kBranchAny = ::kBranchAny,
  kAutoDelete = BIT(15), kDoNotUseBufferMap = BIT(22)
}
 
typedef void(TBranch::* FillLeaves_t) (TBuffer &b)
 
typedef void(TBranch::* ReadLeaves_t) (TBuffer &b)
 

Protected Member Functions

void FillLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to fill Basket buffer. More...
 
TBasketGetFreshBasket ()
 Return a fresh basket by either resusing an existing basket that needs to be drop (according to TTree::MemoryFull) or create a new one. More...
 
TBasketGetFreshCluster ()
 Drops the cluster two behind the current cluster and returns a fresh basket by either reusing or creating a new one. More...
 
TString GetRealFileName () const
 Get real file name. More...
 
void Init (const char *name, const char *leaflist, Int_t compress)
 
void ReadLeaves0Impl (TBuffer &b)
 Read zero leaves without the overhead of a loop. More...
 
void ReadLeaves1Impl (TBuffer &b)
 Read one leaf without the overhead of a loop. More...
 
void ReadLeaves2Impl (TBuffer &b)
 Read two leaves without the overhead of a loop. More...
 
void ReadLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to read Basket buffer. More...
 
void SetSkipZip (Bool_t skip=kTRUE)
 
Int_t WriteBasket (TBasket *basket, Int_t where)
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Protected Attributes

char * fAddress
 ! Address of 1st leaf (variable or object) More...
 
Int_tfBasketBytes
 [fMaxBaskets] Length of baskets on file More...
 
Long64_tfBasketEntry
 [fMaxBaskets] Table of first entry in each basket More...
 
TObjArray fBaskets
 -> List of baskets of this branch More...
 
Long64_tfBasketSeek
 [fMaxBaskets] Addresses of baskets on file More...
 
Int_t fBasketSize
 Initial Size of Basket Buffer. More...
 
TObjArray fBranches
 -> List of Branches of this branch More...
 
TListfBrowsables
 ! List of TVirtualBranchBrowsables used for Browse() More...
 
CacheInfo_t fCacheInfo
 ! Hold info about which basket are in the cache and if they have been retrieved from the cache. More...
 
Int_t fCompress
 Compression level and algorithm. More...
 
TBasketfCurrentBasket
 ! Pointer to the current basket. More...
 
TDirectoryfDirectory
 ! Pointer to directory where this branch buffers are stored More...
 
Long64_t fEntries
 Number of entries. More...
 
TBufferfEntryBuffer
 ! Buffer used to directly pass the content without streaming More...
 
Long64_t fEntryNumber
 Current entry number (last one filled in this branch) More...
 
Int_t fEntryOffsetLen
 Initial Length of fEntryOffset table in the basket buffers. More...
 
TString fFileName
 Name of file where buffers are stored ("" if in same file as Tree header) More...
 
FillLeaves_t fFillLeaves
 ! Pointer to the FillLeaves implementation to use. More...
 
Long64_t fFirstBasketEntry
 ! First entry in the current basket. More...
 
Long64_t fFirstEntry
 Number of the first entry in this branch. More...
 
TIOFeatures fIOFeatures
 IO features for newly-created baskets. More...
 
TObjArray fLeaves
 -> List of leaves of this branch More...
 
Int_t fMaxBaskets
 Maximum number of Baskets so far. More...
 
TBranchfMother
 ! Pointer to top-level parent branch in the tree. More...
 
Int_t fNBaskets
 ! Number of baskets in memory More...
 
Long64_t fNextBasketEntry
 ! Next entry that will requires us to go to the next basket More...
 
Int_t fNleaves
 ! Number of leaves More...
 
Int_t fOffset
 Offset of this branch. More...
 
TBranchfParent
 ! Pointer to parent branch. More...
 
Int_t fReadBasket
 ! Current basket number when reading More...
 
Long64_t fReadEntry
 ! Current entry number when reading More...
 
ReadLeaves_t fReadLeaves
 ! Pointer to the ReadLeaves implementation to use. More...
 
Bool_t fSkipZip
 ! After being read, the buffer will not be unzipped. More...
 
Int_t fSplitLevel
 Branch split level. More...
 
Long64_t fTotBytes
 Total number of bytes in all leaves before compression. More...
 
TBufferfTransientBuffer
 ! Pointer to the current transient buffer. More...
 
TTreefTree
 ! Pointer to Tree header More...
 
Int_t fWriteBasket
 Last basket number written. More...
 
Long64_t fZipBytes
 Total number of bytes in all leaves after compression. More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 Fill area color. More...
 
Style_t fFillStyle
 Fill area style. More...
 

Static Protected Attributes

static Int_t fgCount = 0
 ! branch counter More...
 

Private Types

using TIOFeatures = ROOT::TIOFeatures
 

Private Member Functions

 TBranch (const TBranch &)=delete
 
Int_t FillEntryBuffer (TBasket *basket, TBuffer *buf, Int_t &lnew)
 Copy the data from fEntryBuffer into the current basket. More...
 
TBranchoperator= (const TBranch &)=delete
 
Int_t WriteBasketImpl (TBasket *basket, Int_t where, ROOT::Internal::TBranchIMTHelper *)
 Write the current basket to disk and return the number of bytes written to the file. More...
 

Friends

class TTree
 
class TTreeCache
 
class TTreeCloner
 

Additional Inherited Members

- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kInconsistent = 0x08000000,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kIsReferenced = BIT(4), kHasUUID = BIT(5),
  kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 

#include <TBranch.h>

Inheritance diagram for TBranch:
[legend]

Member Typedef Documentation

◆ CacheInfo_t

Definition at line 121 of file TBranch.h.

◆ FillLeaves_t

typedef void(TBranch::* TBranch::FillLeaves_t) (TBuffer &b)
protected

Definition at line 126 of file TBranch.h.

◆ ReadLeaves_t

typedef void(TBranch::* TBranch::ReadLeaves_t) (TBuffer &b)
protected

Definition at line 124 of file TBranch.h.

◆ TIOFeatures

Definition at line 63 of file TBranch.h.

Member Enumeration Documentation

◆ EStatusBits

enum TBranch::EStatusBits
protected
Enumerator
kDoNotProcess 
kIsClone 
kBranchObject 
kBranchAny 
kAutoDelete 
kDoNotUseBufferMap 

Definition at line 71 of file TBranch.h.

Constructor & Destructor Documentation

◆ TBranch() [1/4]

TBranch::TBranch ( const TBranch )
privatedelete

◆ TBranch() [2/4]

TBranch::TBranch ( )

Default constructor. Used for I/O by default.

Definition at line 81 of file TBranch.cxx.

◆ TBranch() [3/4]

TBranch::TBranch ( TTree tree,
const char *  name,
void address,
const char *  leaflist,
Int_t  basketsize = 32000,
Int_t  compress = -1 
)

Create a Branch as a child of a Tree.

  • address is the address of the first item of a structure or the address of a pointer to an object (see example in TTree.cxx).
  • leaflist is the concatenation of all the variable names and types separated by a colon character : The variable name and the variable type are separated by a slash (/). The variable type must be 1 character. (Characters after the first are legal and will be appended to the visible name of the leaf, but have no effect.) If no type is given, the type of the variable is assumed to be the same as the previous variable. If the first variable does not have a type, it is assumed of type F by default. The list of currently supported types is given below:

    • C : a character string terminated by the 0 character
    • B : an 8 bit signed integer (Char_t)
    • b : an 8 bit unsigned integer (UChar_t)
    • S : a 16 bit signed integer (Short_t)
    • s : a 16 bit unsigned integer (UShort_t)
    • I : a 32 bit signed integer (Int_t)
    • i : a 32 bit unsigned integer (UInt_t)
    • F : a 32 bit floating point (Float_t)
    • D : a 64 bit floating point (Double_t)
    • L : a 64 bit signed integer (Long64_t)
    • l : a 64 bit unsigned integer (ULong64_t)
    • O : [the letter o, not a zero] a boolean (Bool_t)

    Arrays of values are supported with the following syntax:

    • If leaf name has the form var[nelem], where nelem is alphanumeric, then if nelem is a leaf name, it is used as the variable size of the array, otherwise return 0. The leaf referred to by nelem MUST be an int (/I),
    • If leaf name has the form var[nelem], where nelem is a non-negative integers, then it is used as the fixed size of the array.
    • If leaf name has the form of a multi dimension array (e.g. var[nelem][nelem2]) where nelem and nelem2 are non-negative integers) then it is used as a 2 dimensional array of fixed size.
    • Any of other form is not supported.

Note that the TTree will assume that all the item are contiguous in memory. On some platform, this is not always true of the member of a struct or a class, due to padding and alignment. Sorting your data member in order of decreasing sizeof usually leads to their being contiguous in memory.

  • bufsize is the buffer size in bytes for this branch The default value is 32000 bytes and should be ok for most cases. You can specify a larger value (e.g. 256000) if your Tree is not split and each entry is large (Megabytes) A small value for bufsize is optimum if you intend to access the entries in the Tree randomly and your Tree is in split mode.

See an example of a Branch definition in the TTree constructor.

Note that in case the data type is an object, this branch can contain only this object.

Note that this function is invoked by TTree::Branch

Definition at line 184 of file TBranch.cxx.

◆ TBranch() [4/4]

TBranch::TBranch ( TBranch parent,
const char *  name,
void address,
const char *  leaflist,
Int_t  basketsize = 32000,
Int_t  compress = -1 
)

Create a Branch as a child of another Branch.

See documentation for TBranch::TBranch(TTree *, const char *, void *, const char *, Int_t, Int_t)

Definition at line 235 of file TBranch.cxx.

◆ ~TBranch()

TBranch::~TBranch ( )
virtual

Destructor.

Definition at line 425 of file TBranch.cxx.

Member Function Documentation

◆ AddBasket()

void TBranch::AddBasket ( TBasket b,
Bool_t  ondisk,
Long64_t  startEntry 
)
virtual

Add the basket to this branch.

Warning: if the basket are not 'flushed/copied' in the same order as they were created, this will induce a slow down in the insert (since we'll need to move all the record that are entere 'too early'). Warning we also assume that the current write basket is not present (aka has been removed).

Definition at line 518 of file TBranch.cxx.

◆ AddLastBasket()

void TBranch::AddLastBasket ( Long64_t  startEntry)
virtual

Add the start entry of the write basket (not yet created)

Definition at line 584 of file TBranch.cxx.

◆ BackFill()

Int_t TBranch::BackFill ( )

Loop on all leaves of this branch to back fill Basket buffer.

Use this routine instead of TBranch::Fill when filling a branch individually to catch up with the number of entries already in the TTree.

First it calls TBranch::Fill and then if the number of entries of the branch reach one of TTree cluster's boundary, the basket is flushed.

The function returns the number of bytes committed to the memory basket. If a write error occurs, the number of bytes returned is -1. If no data are written, because e.g. the branch is disabled, the number of bytes returned is 0.

To insure that the baskets of each cluster are located close by in the file, when back-filling multiple branches make sure to call BackFill for the same entry for all the branches consecutively

for( auto e = 0; e < tree->GetEntries(); ++e ) { // loop over entries.
for( auto branch : branchCollection) {
... Make change to the data associated with the branch ...
branch->BackFill();
}
}
// Since we loop over all the branches for each new entry
// all the baskets for a cluster are consecutive in the file.

rather than doing all the entries of one branch at a time.

// Do NOT do things in the following order, it will lead to
// poorly clustered files.
for(auto branch : branchCollection) {
for( auto e = 0; e < tree->GetEntries(); ++e ) { // loop over entries.
... Make change to the data associated with the branch ...
branch->BackFill();
}
}
// Since we loop over all the entries for one branch
// all the baskets for that branch are consecutive.

Definition at line 642 of file TBranch.cxx.

◆ Browse()

void TBranch::Browse ( TBrowser b)
virtual

Browser interface.

Reimplemented from TObject.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, THbookBranch, and TBranchSTL.

Definition at line 661 of file TBranch.cxx.

◆ DeleteBaskets()

void TBranch::DeleteBaskets ( Option_t option = "")
virtual

Loop on all branch baskets.

If the file where branch buffers reside is writable, free the disk space associated to the baskets of the branch, then call Reset(). If the option contains "all", delete also the baskets for the subbranches. The branch is reset.

NOTE that this function must be used with extreme care. Deleting branch baskets fragments the file and may introduce inefficiencies when adding new entries in the Tree or later on when reading the Tree.

Definition at line 688 of file TBranch.cxx.

◆ DropBaskets()

void TBranch::DropBaskets ( Option_t options = "")
virtual

Loop on all branch baskets.

Drop all baskets from memory except readbasket. If the option contains "all", drop all baskets including read- and write-baskets (unless they are not stored individually on disk). The option "all" also lead to DropBaskets being called on the sub-branches.

Definition at line 719 of file TBranch.cxx.

◆ ExpandBasketArrays()

void TBranch::ExpandBasketArrays ( )

Increase BasketEntry buffer of a minimum of 10 locations and a maximum of 50 per cent of current size.

Definition at line 787 of file TBranch.cxx.

◆ Fill()

Int_t TBranch::Fill ( )
inline

Definition at line 162 of file TBranch.h.

◆ FillEntryBuffer()

Int_t TBranch::FillEntryBuffer ( TBasket basket,
TBuffer buf,
Int_t lnew 
)
private

Copy the data from fEntryBuffer into the current basket.

Definition at line 890 of file TBranch.cxx.

◆ FillImpl()

Int_t TBranch::FillImpl ( ROOT::Internal::TBranchIMTHelper imtHelper)
virtual

Loop on all leaves of this branch to fill Basket buffer.

If TBranchIMTHelper is non-null and it is time to WriteBasket, then we will use TBB to compress in parallel.

The function returns the number of bytes committed to the memory basket. If a write error occurs, the number of bytes returned is -1. If no data are written, because e.g. the branch is disabled, the number of bytes returned is 0.

Reimplemented in TBranchElement, TBranchObject, TBranchRef, TBranchSTL, and TBranchClones.

Definition at line 818 of file TBranch.cxx.

◆ FillLeavesImpl()

void TBranch::FillLeavesImpl ( TBuffer b)
protected

Loop on all leaves of this branch to fill Basket buffer.

Definition at line 2072 of file TBranch.cxx.

◆ FindBranch()

TBranch * TBranch::FindBranch ( const char *  name)
virtual

Find the immediate sub-branch with passed name.

Reimplemented in TBranchElement.

Definition at line 989 of file TBranch.cxx.

◆ FindLeaf()

TLeaf * TBranch::FindLeaf ( const char *  name)
virtual

Find the leaf corresponding to the name 'searchname'.

Reimplemented in TBranchElement.

Definition at line 1035 of file TBranch.cxx.

◆ FlushBaskets()

Int_t TBranch::FlushBaskets ( )

Flush to disk all the baskets of this branch and any of subbranches.

Return the number of bytes written or -1 in case of write error.

Definition at line 1090 of file TBranch.cxx.

◆ FlushOneBasket()

Int_t TBranch::FlushOneBasket ( UInt_t  ibasket)

If we have a write basket in memory and it contains some entries and has not yet been written to disk, we write it and delete it from memory.

Return the number of bytes written;

Definition at line 1136 of file TBranch.cxx.

◆ GetAddress()

virtual char* TBranch::GetAddress ( ) const
inlinevirtual

Reimplemented in TBranchElement.

Definition at line 169 of file TBranch.h.

◆ GetBasket()

TBasket * TBranch::GetBasket ( Int_t  basket)

Return pointer to basket basketnumber in this Branch.

Definition at line 1177 of file TBranch.cxx.

◆ GetBasketBytes()

Int_t* TBranch::GetBasketBytes ( ) const
inline

Definition at line 171 of file TBranch.h.

◆ GetBasketEntry()

Long64_t* TBranch::GetBasketEntry ( ) const
inline

Definition at line 172 of file TBranch.h.

◆ GetBasketSeek()

Long64_t TBranch::GetBasketSeek ( Int_t  basket) const
virtual

Return address of basket in the file.

Definition at line 1253 of file TBranch.cxx.

◆ GetBasketSize()

virtual Int_t TBranch::GetBasketSize ( ) const
inlinevirtual

Definition at line 174 of file TBranch.h.

◆ GetBrowsables()

TList * TBranch::GetBrowsables ( )
virtual

Returns (and, if 0, creates) browsable objects for this branch See TVirtualBranchBrowsable::FillListOfBrowsables.

Definition at line 1263 of file TBranch.cxx.

◆ GetClassName()

const char * TBranch::GetClassName ( ) const
virtual

Return the name of the user class whose content is stored in this branch, if any.

If this branch was created using the 'leaflist' technique, this function returns an empty string.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, and TBranchSTL.

Definition at line 1275 of file TBranch.cxx.

◆ GetCompressionAlgorithm()

Int_t TBranch::GetCompressionAlgorithm ( ) const
inline

Definition at line 253 of file TBranch.h.

◆ GetCompressionLevel()

Int_t TBranch::GetCompressionLevel ( ) const
inline

Definition at line 259 of file TBranch.h.

◆ GetCompressionSettings()

Int_t TBranch::GetCompressionSettings ( ) const
inline

Definition at line 265 of file TBranch.h.

◆ GetDirectory()

TDirectory* TBranch::GetDirectory ( ) const
inline

Definition at line 180 of file TBranch.h.

◆ GetEntries()

Long64_t TBranch::GetEntries ( ) const
inline

Definition at line 206 of file TBranch.h.

◆ GetEntry()

Int_t TBranch::GetEntry ( Long64_t  entry = 0,
Int_t  getall = 0 
)
virtual

Read all leaves of entry and return total number of bytes read.

The input argument "entry" is the entry number in the current tree. In case of a TChain, the entry number in the current Tree must be found before calling this function. For example:

TChain* chain = ...;
Long64_t localEntry = chain->LoadTree(entry);
branch->GetEntry(localEntry);

The function returns the number of bytes read from the input buffer. If entry does not exist, the function returns 0. If an I/O error occurs, the function returns -1.

See IMPORTANT REMARKS in TTree::GetEntry.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, THbookBranch, and TBranchSTL.

Definition at line 1310 of file TBranch.cxx.

◆ GetEntryExport()

Int_t TBranch::GetEntryExport ( Long64_t  entry,
Int_t  getall,
TClonesArray li,
Int_t  nentries 
)
virtual

Read all leaves of an entry and export buffers to real objects in a TClonesArray list.

Returns total number of bytes read.

Definition at line 1410 of file TBranch.cxx.

◆ GetEntryNumber()

Long64_t TBranch::GetEntryNumber ( ) const
inline

Definition at line 197 of file TBranch.h.

◆ GetEntryOffsetLen()

Int_t TBranch::GetEntryOffsetLen ( ) const
inline

Definition at line 183 of file TBranch.h.

◆ GetEvent()

Int_t TBranch::GetEvent ( Long64_t  entry = 0)
inline

Definition at line 184 of file TBranch.h.

◆ GetExpectedType()

Int_t TBranch::GetExpectedType ( TClass *&  expectedClass,
EDataType expectedType 
)
virtual

Fill expectedClass and expectedType with information on the data type of the object/values contained in this branch (and thus the type of pointers expected to be passed to Set[Branch]Address return 0 in case of success and > 0 in case of failure.

Reimplemented in TBranchElement, TBranchObject, and TBranchSTL.

Definition at line 1482 of file TBranch.cxx.

◆ GetFile()

TFile * TBranch::GetFile ( Int_t  mode = 0)
virtual

Return pointer to the file where branch buffers reside, returns 0 in case branch buffers reside in the same file as tree header.

If mode is 1 the branch buffer file is recreated.

Definition at line 1501 of file TBranch.cxx.

◆ GetFileName()

const char* TBranch::GetFileName ( ) const
inline

Definition at line 189 of file TBranch.h.

◆ GetFirstEntry()

Long64_t TBranch::GetFirstEntry ( ) const
inline

Definition at line 198 of file TBranch.h.

◆ GetFreshBasket()

TBasket * TBranch::GetFreshBasket ( )
protected

Return a fresh basket by either resusing an existing basket that needs to be drop (according to TTree::MemoryFull) or create a new one.

Definition at line 1536 of file TBranch.cxx.

◆ GetFreshCluster()

TBasket * TBranch::GetFreshCluster ( )
protected

Drops the cluster two behind the current cluster and returns a fresh basket by either reusing or creating a new one.

Definition at line 1580 of file TBranch.cxx.

◆ GetIconName()

const char * TBranch::GetIconName ( ) const
virtual

Return icon name depending on type of branch.

Reimplemented from TObject.

Reimplemented in TBranchElement.

Definition at line 1283 of file TBranch.cxx.

◆ GetIOFeatures()

ROOT::TIOFeatures TBranch::GetIOFeatures ( ) const

Returns the IO settings currently in use for this branch.

Definition at line 1831 of file TBranch.cxx.

◆ GetLeaf()

TLeaf * TBranch::GetLeaf ( const char *  name) const
virtual

Return pointer to the 1st Leaf named name in thisBranch.

Definition at line 1645 of file TBranch.cxx.

◆ GetListOfBaskets()

TObjArray* TBranch::GetListOfBaskets ( )
inline

Definition at line 200 of file TBranch.h.

◆ GetListOfBranches()

TObjArray* TBranch::GetListOfBranches ( )
inline

Definition at line 201 of file TBranch.h.

◆ GetListOfLeaves()

TObjArray* TBranch::GetListOfLeaves ( )
inline

Definition at line 202 of file TBranch.h.

◆ GetMakeClass()

Bool_t TBranch::GetMakeClass ( ) const
virtual

Return whether this branch is in a mode where the object are decomposed or not (Also known as MakeClass mode).

Reimplemented in TBranchElement.

Definition at line 1708 of file TBranch.cxx.

◆ GetMaxBaskets()

Int_t TBranch::GetMaxBaskets ( ) const
inline

Definition at line 203 of file TBranch.h.

◆ GetMother()

TBranch * TBranch::GetMother ( ) const

Get our top-level parent branch in the tree.

Definition at line 1718 of file TBranch.cxx.

◆ GetNleaves()

Int_t TBranch::GetNleaves ( ) const
inline

Definition at line 204 of file TBranch.h.

◆ GetOffset()

Int_t TBranch::GetOffset ( ) const
inline

Definition at line 190 of file TBranch.h.

◆ GetReadBasket()

Int_t TBranch::GetReadBasket ( ) const
inline

Definition at line 191 of file TBranch.h.

◆ GetReadEntry()

Long64_t TBranch::GetReadEntry ( ) const
inline

Definition at line 192 of file TBranch.h.

◆ GetRealFileName()

TString TBranch::GetRealFileName ( ) const
protected

Get real file name.

Definition at line 1658 of file TBranch.cxx.

◆ GetRow()

Int_t TBranch::GetRow ( Int_t  row)
virtual

Return all elements of one row unpacked in internal array fValues [Actually just returns 1 (?)].

Definition at line 1699 of file TBranch.cxx.

◆ GetSplitLevel()

Int_t TBranch::GetSplitLevel ( ) const
inline

Definition at line 205 of file TBranch.h.

◆ GetSubBranch()

TBranch * TBranch::GetSubBranch ( const TBranch child) const

Find the parent branch of child.

Return 0 if child is not in this branch hierarchy.

Definition at line 1739 of file TBranch.cxx.

◆ GetTotalSize()

Long64_t TBranch::GetTotalSize ( Option_t option = "") const

Return total number of bytes in the branch (including current buffer)

Definition at line 1777 of file TBranch.cxx.

◆ GetTotBytes()

Long64_t TBranch::GetTotBytes ( Option_t option = "") const

Return total number of bytes in the branch (excluding current buffer) if option ="*" includes all sub-branches of this branch too.

Definition at line 1796 of file TBranch.cxx.

◆ GetTransientBuffer()

TBuffer * TBranch::GetTransientBuffer ( Int_t  size)

Returns the transient buffer currently used by this TBranch for reading/writing baskets.

Definition at line 496 of file TBranch.cxx.

◆ GetTree()

TTree* TBranch::GetTree ( ) const
inline

Definition at line 207 of file TBranch.h.

◆ GetWriteBasket()

Int_t TBranch::GetWriteBasket ( ) const
inline

Definition at line 193 of file TBranch.h.

◆ GetZipBytes()

Long64_t TBranch::GetZipBytes ( Option_t option = "") const

Return total number of zip bytes in the branch if option ="*" includes all sub-branches of this branch too.

Definition at line 1814 of file TBranch.cxx.

◆ Init()

void TBranch::Init ( const char *  name,
const char *  leaflist,
Int_t  compress 
)
protected

Definition at line 281 of file TBranch.cxx.

◆ IsAutoDelete()

Bool_t TBranch::IsAutoDelete ( ) const

Return kTRUE if an existing object in a TBranchObject must be deleted.

Definition at line 1839 of file TBranch.cxx.

◆ IsFolder()

Bool_t TBranch::IsFolder ( ) const
virtual

Return kTRUE if more than one leaf or browsables, kFALSE otherwise.

Reimplemented from TObject.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, and TBranchSTL.

Definition at line 1847 of file TBranch.cxx.

◆ KeepCircular()

void TBranch::KeepCircular ( Long64_t  maxEntries)
virtual

keep a maximum of fMaxEntries in memory

Definition at line 1859 of file TBranch.cxx.

◆ LoadBaskets()

Int_t TBranch::LoadBaskets ( )
virtual

Baskets associated to this branch are forced to be in memory.

You can call TTree::SetMaxVirtualSize(maxmemory) to instruct the system that the total size of the imported baskets does not exceed maxmemory bytes.

The function returns the number of baskets that have been put in memory. This method may be called to force all baskets of one or more branches in memory when random access to entries in this branch is required. See also TTree::LoadBaskets to load all baskets of all branches in memory.

Definition at line 1885 of file TBranch.cxx.

◆ operator=()

TBranch& TBranch::operator= ( const TBranch )
privatedelete

◆ Print()

void TBranch::Print ( Option_t option = "") const
virtual

Print TBranch parameters.

If options contains "basketsInfo" print the entry number, location and size of each baskets.

Reimplemented from TNamed.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, TBranchRef, and TBranchSTL.

Definition at line 1917 of file TBranch.cxx.

◆ PrintCacheInfo()

void TBranch::PrintCacheInfo ( ) const

Print the information we have about which basket is currently cached and whether they have been 'used'/'read' from the cache.

Definition at line 2021 of file TBranch.cxx.

◆ ReadBasket()

void TBranch::ReadBasket ( TBuffer b)
virtual

Loop on all leaves of this branch to read Basket buffer.

Definition at line 2029 of file TBranch.cxx.

◆ ReadLeaves0Impl()

void TBranch::ReadLeaves0Impl ( TBuffer b)
protected

Read zero leaves without the overhead of a loop.

Definition at line 2048 of file TBranch.cxx.

◆ ReadLeaves1Impl()

void TBranch::ReadLeaves1Impl ( TBuffer b)
protected

Read one leaf without the overhead of a loop.

Definition at line 2055 of file TBranch.cxx.

◆ ReadLeaves2Impl()

void TBranch::ReadLeaves2Impl ( TBuffer b)
protected

Read two leaves without the overhead of a loop.

Definition at line 2063 of file TBranch.cxx.

◆ ReadLeavesImpl()

void TBranch::ReadLeavesImpl ( TBuffer b)
protected

Loop on all leaves of this branch to read Basket buffer.

Definition at line 2037 of file TBranch.cxx.

◆ Refresh()

void TBranch::Refresh ( TBranch b)
virtual

Refresh this branch using new information in b This function is called by TTree::Refresh.

Definition at line 2084 of file TBranch.cxx.

◆ Reset()

void TBranch::Reset ( Option_t option = "")
virtual

Reset a Branch.

  • Existing buffers are deleted.
  • Entries, max and min are reset.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, and TBranchRef.

Definition at line 2133 of file TBranch.cxx.

◆ ResetAddress()

void TBranch::ResetAddress ( )
virtual

Reset the address of the branch.

Reimplemented in TBranchElement.

Definition at line 2227 of file TBranch.cxx.

◆ ResetAfterMerge()

void TBranch::ResetAfterMerge ( TFileMergeInfo )
virtual

Reset a Branch.

  • Existing buffers are deleted.
  • Entries, max and min are reset.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, and TBranchRef.

Definition at line 2174 of file TBranch.cxx.

◆ ResetCount()

void TBranch::ResetCount ( )
static

Static function resetting fgCount.

Definition at line 2250 of file TBranch.cxx.

◆ ResetReadEntry()

virtual void TBranch::ResetReadEntry ( )
inlinevirtual

Definition at line 224 of file TBranch.h.

◆ SetAddress()

void TBranch::SetAddress ( void add)
virtual

Set address of this branch.

Reimplemented in TBranchElement, TBranchObject, TBranchClones, TBranchSTL, and THbookBranch.

Definition at line 2258 of file TBranch.cxx.

◆ SetAutoDelete()

void TBranch::SetAutoDelete ( Bool_t  autodel = kTRUE)
virtual

Set the automatic delete bit.

This bit is used by TBranchObject::ReadBasket to decide if an object referenced by a TBranchObject must be deleted or not before reading a new entry.

If autodel is kTRUE, this existing object will be deleted, a new object created by the default constructor, then read from disk by the streamer.

If autodel is kFALSE, the existing object is not deleted. Root assumes that the user is taking care of deleting any internal object or array (this can be done in the streamer).

Reimplemented in TBranchObject.

Definition at line 2292 of file TBranch.cxx.

◆ SetBasketSize()

void TBranch::SetBasketSize ( Int_t  buffsize)
virtual

Set the basket size The function makes sure that the basket size is greater than fEntryOffsetlen.

Reimplemented in TBranchElement, TBranchObject, and TBranchClones.

Definition at line 2305 of file TBranch.cxx.

◆ SetBufferAddress()

void TBranch::SetBufferAddress ( TBuffer buf)
virtual

Set address of this branch directly from a TBuffer to avoid streaming.

Note: We do not take ownership of the buffer.

Definition at line 2321 of file TBranch.cxx.

◆ SetCompressionAlgorithm()

void TBranch::SetCompressionAlgorithm ( Int_t  algorithm = 0)

Set compression algorithm.

Definition at line 2339 of file TBranch.cxx.

◆ SetCompressionLevel()

void TBranch::SetCompressionLevel ( Int_t  level = 1)

Set compression level.

Definition at line 2359 of file TBranch.cxx.

◆ SetCompressionSettings()

void TBranch::SetCompressionSettings ( Int_t  settings = 1)

Set compression settings.

Definition at line 2381 of file TBranch.cxx.

◆ SetEntries()

void TBranch::SetEntries ( Long64_t  entries)
virtual

Set the number of entries in this branch.

Reimplemented in THbookBranch.

Definition at line 2414 of file TBranch.cxx.

◆ SetEntryOffsetLen()

void TBranch::SetEntryOffsetLen ( Int_t  newdefault,
Bool_t  updateExisting = kFALSE 
)
virtual

Update the default value for the branch's fEntryOffsetLen if and only if it was already non zero (and the new value is not zero) If updateExisting is true, also update all the existing branches.

Definition at line 2397 of file TBranch.cxx.

◆ SetFile() [1/2]

void TBranch::SetFile ( TFile file = 0)
virtual

Set file where this branch writes/reads its buffers.

By default the branch buffers reside in the file where the Tree was created. If the file name where the tree was created is an absolute path name or an URL (e.g. /castor/... or root://host/...) and if the fname is not an absolute path name or an URL then the path of the tree file is prepended to fname to make the branch file relative to the tree file. In this case one can move the tree + all branch files to a different location in the file system and still access the branch files. The ROOT file will be connected only when necessary. If called by TBranch::Fill (via TBasket::WriteFile), the file will be created with the option "recreate". If called by TBranch::GetEntry (via TBranch::GetBasket), the file will be opened in read mode. To open a file in "update" mode or with a certain compression level, use TBranch::SetFile(TFile *file).

Definition at line 2439 of file TBranch.cxx.

◆ SetFile() [2/2]

void TBranch::SetFile ( const char *  fname)
virtual

Set file where this branch writes/reads its buffers.

By default the branch buffers reside in the file where the Tree was created. If the file name where the tree was created is an absolute path name or an URL (e.g. /castor/... or root://host/...) and if the fname is not an absolute path name or an URL then the path of the tree file is prepended to fname to make the branch file relative to the tree file. In this case one can move the tree + all branch files to a different location in the file system and still access the branch files. The ROOT file will be connected only when necessary. If called by TBranch::Fill (via TBasket::WriteFile), the file will be created with the option "recreate". If called by TBranch::GetEntry (via TBranch::GetBasket), the file will be opened in read mode. To open a file in "update" mode or with a certain compression level, use TBranch::SetFile(TFile *file).

Definition at line 2484 of file TBranch.cxx.

◆ SetFirstEntry()

void TBranch::SetFirstEntry ( Long64_t  entry)
virtual

set the first entry number (case of TBranchSTL)

Definition at line 2847 of file TBranch.cxx.

◆ SetIOFeatures()

void TBranch::SetIOFeatures ( TIOFeatures features)
inline

Definition at line 238 of file TBranch.h.

◆ SetMakeClass()

Bool_t TBranch::SetMakeClass ( Bool_t  decomposeObj = kTRUE)
virtual

Set the branch in a mode where the object are decomposed (Also known as MakeClass mode).

Return whether the setting was possible (it is not possible for TBranch and TBranchObject).

Reimplemented in TBranchElement.

Definition at line 2503 of file TBranch.cxx.

◆ SetObject()

void TBranch::SetObject ( void objadd)
virtual

Set object this branch is pointing to.

Reimplemented in TBranchElement.

Definition at line 2512 of file TBranch.cxx.

◆ SetOffset()

virtual void TBranch::SetOffset ( Int_t  offset = 0)
inlinevirtual

Reimplemented in TBranchElement.

Definition at line 240 of file TBranch.h.

◆ SetSkipZip()

void TBranch::SetSkipZip ( Bool_t  skip = kTRUE)
inlineprotected

Definition at line 134 of file TBranch.h.

◆ SetStatus()

void TBranch::SetStatus ( Bool_t  status = 1)
virtual

Set branch status to Process or DoNotProcess.

Definition at line 2523 of file TBranch.cxx.

◆ SetTree()

virtual void TBranch::SetTree ( TTree tree)
inlinevirtual

Reimplemented in TBranchClones.

Definition at line 242 of file TBranch.h.

◆ SetupAddresses()

void TBranch::SetupAddresses ( )
virtual

If the branch address is not set, we set all addresses starting with the top level parent branch.

Reimplemented in TBranchElement, and TBranchObject.

Definition at line 2862 of file TBranch.cxx.

◆ UpdateAddress()

virtual void TBranch::UpdateAddress ( )
inlinevirtual

Reimplemented in TBranchObject.

Definition at line 244 of file TBranch.h.

◆ UpdateFile()

void TBranch::UpdateFile ( )
virtual

Refresh the value of fDirectory (i.e.

where this branch writes/reads its buffers) with the current value of fTree->GetCurrentFile unless this branch has been redirected to a different file. Also update the sub-branches.

Reimplemented in TBranchElement, and TBranchClones.

Definition at line 2872 of file TBranch.cxx.

◆ WriteBasket()

Int_t TBranch::WriteBasket ( TBasket basket,
Int_t  where 
)
inlineprotected

Definition at line 139 of file TBranch.h.

◆ WriteBasketImpl()

Int_t TBranch::WriteBasketImpl ( TBasket basket,
Int_t  where,
ROOT::Internal::TBranchIMTHelper imtHelper 
)
private

Write the current basket to disk and return the number of bytes written to the file.

Definition at line 2775 of file TBranch.cxx.

Friends And Related Function Documentation

◆ TTree

friend class TTree
friend

Definition at line 68 of file TBranch.h.

◆ TTreeCache

friend class TTreeCache
friend

Definition at line 66 of file TBranch.h.

◆ TTreeCloner

friend class TTreeCloner
friend

Definition at line 67 of file TBranch.h.

Member Data Documentation

◆ fAddress

char* TBranch::fAddress
protected

! Address of 1st leaf (variable or object)

Definition at line 112 of file TBranch.h.

◆ fBasketBytes

Int_t* TBranch::fBasketBytes
protected

[fMaxBaskets] Length of baskets on file

Definition at line 106 of file TBranch.h.

◆ fBasketEntry

Long64_t* TBranch::fBasketEntry
protected

[fMaxBaskets] Table of first entry in each basket

Definition at line 107 of file TBranch.h.

◆ fBaskets

TObjArray TBranch::fBaskets
protected

-> List of baskets of this branch

Definition at line 105 of file TBranch.h.

◆ fBasketSeek

Long64_t* TBranch::fBasketSeek
protected

[fMaxBaskets] Addresses of baskets on file

Definition at line 108 of file TBranch.h.

◆ fBasketSize

Int_t TBranch::fBasketSize
protected

Initial Size of Basket Buffer.

Definition at line 84 of file TBranch.h.

◆ fBranches

TObjArray TBranch::fBranches
protected

-> List of Branches of this branch

Definition at line 103 of file TBranch.h.

◆ fBrowsables

TList* TBranch::fBrowsables
protected

! List of TVirtualBranchBrowsables used for Browse()

Definition at line 117 of file TBranch.h.

◆ fCacheInfo

CacheInfo_t TBranch::fCacheInfo
protected

! Hold info about which basket are in the cache and if they have been retrieved from the cache.

Definition at line 122 of file TBranch.h.

◆ fCompress

Int_t TBranch::fCompress
protected

Compression level and algorithm.

Definition at line 83 of file TBranch.h.

◆ fCurrentBasket

TBasket* TBranch::fCurrentBasket
protected

! Pointer to the current basket.

Definition at line 98 of file TBranch.h.

◆ fDirectory

TDirectory* TBranch::fDirectory
protected

! Pointer to directory where this branch buffers are stored

Definition at line 113 of file TBranch.h.

◆ fEntries

Long64_t TBranch::fEntries
protected

Number of entries.

Definition at line 99 of file TBranch.h.

◆ fEntryBuffer

TBuffer* TBranch::fEntryBuffer
protected

! Buffer used to directly pass the content without streaming

Definition at line 115 of file TBranch.h.

◆ fEntryNumber

Long64_t TBranch::fEntryNumber
protected

Current entry number (last one filled in this branch)

Definition at line 87 of file TBranch.h.

◆ fEntryOffsetLen

Int_t TBranch::fEntryOffsetLen
protected

Initial Length of fEntryOffset table in the basket buffers.

Definition at line 85 of file TBranch.h.

◆ fFileName

TString TBranch::fFileName
protected

Name of file where buffers are stored ("" if in same file as Tree header)

Definition at line 114 of file TBranch.h.

◆ fFillLeaves

FillLeaves_t TBranch::fFillLeaves
protected

! Pointer to the FillLeaves implementation to use.

Definition at line 127 of file TBranch.h.

◆ fFirstBasketEntry

Long64_t TBranch::fFirstBasketEntry
protected

! First entry in the current basket.

Definition at line 96 of file TBranch.h.

◆ fFirstEntry

Long64_t TBranch::fFirstEntry
protected

Number of the first entry in this branch.

Definition at line 100 of file TBranch.h.

◆ fgCount

Int_t TBranch::fgCount = 0
staticprotected

! branch counter

Definition at line 82 of file TBranch.h.

◆ fIOFeatures

TIOFeatures TBranch::fIOFeatures
protected

IO features for newly-created baskets.

Definition at line 88 of file TBranch.h.

◆ fLeaves

TObjArray TBranch::fLeaves
protected

-> List of leaves of this branch

Definition at line 104 of file TBranch.h.

◆ fMaxBaskets

Int_t TBranch::fMaxBaskets
protected

Maximum number of Baskets so far.

Definition at line 90 of file TBranch.h.

◆ fMother

TBranch* TBranch::fMother
protected

! Pointer to top-level parent branch in the tree.

Definition at line 110 of file TBranch.h.

◆ fNBaskets

Int_t TBranch::fNBaskets
protected

! Number of baskets in memory

Definition at line 91 of file TBranch.h.

◆ fNextBasketEntry

Long64_t TBranch::fNextBasketEntry
protected

! Next entry that will requires us to go to the next basket

Definition at line 97 of file TBranch.h.

◆ fNleaves

Int_t TBranch::fNleaves
protected

! Number of leaves

Definition at line 93 of file TBranch.h.

◆ fOffset

Int_t TBranch::fOffset
protected

Offset of this branch.

Definition at line 89 of file TBranch.h.

◆ fParent

TBranch* TBranch::fParent
protected

! Pointer to parent branch.

Definition at line 111 of file TBranch.h.

◆ fReadBasket

Int_t TBranch::fReadBasket
protected

! Current basket number when reading

Definition at line 94 of file TBranch.h.

◆ fReadEntry

Long64_t TBranch::fReadEntry
protected

! Current entry number when reading

Definition at line 95 of file TBranch.h.

◆ fReadLeaves

ReadLeaves_t TBranch::fReadLeaves
protected

! Pointer to the ReadLeaves implementation to use.

Definition at line 125 of file TBranch.h.

◆ fSkipZip

Bool_t TBranch::fSkipZip
protected

! After being read, the buffer will not be unzipped.

Definition at line 119 of file TBranch.h.

◆ fSplitLevel

Int_t TBranch::fSplitLevel
protected

Branch split level.

Definition at line 92 of file TBranch.h.

◆ fTotBytes

Long64_t TBranch::fTotBytes
protected

Total number of bytes in all leaves before compression.

Definition at line 101 of file TBranch.h.

◆ fTransientBuffer

TBuffer* TBranch::fTransientBuffer
protected

! Pointer to the current transient buffer.

Definition at line 116 of file TBranch.h.

◆ fTree

TTree* TBranch::fTree
protected

! Pointer to Tree header

Definition at line 109 of file TBranch.h.

◆ fWriteBasket

Int_t TBranch::fWriteBasket
protected

Last basket number written.

Definition at line 86 of file TBranch.h.

◆ fZipBytes

Long64_t TBranch::fZipBytes
protected

Total number of bytes in all leaves after compression.

Definition at line 102 of file TBranch.h.

Libraries for TBranch:
[legend]

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