Logo ROOT  
Reference Guide
TBranch Class Reference

A TTree is a list of TBranches.

A TBranch supports:

  • The list of TLeaf describing this branch.
  • The list of TBasket (branch buffers).

See TBranch structure in TTree.

See also specialized branches:

Definition at line 91 of file TBranch.h.

Public Member Functions

 TBranch ()
 Default constructor. Used for I/O by default. More...
 
 TBranch (TBranch *parent, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Create a Branch as a child of another Branch. More...
 
 TBranch (TTree *tree, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Create a Branch as a child of a Tree. 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)
 
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...
 
ROOT::Experimental::Internal::TBulkBranchReadGetBulkRead ()
 
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
 
virtual TString GetFullName () const
 Return the 'full' name of the branch. More...
 
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=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
 Set compression algorithm. More...
 
void SetCompressionLevel (Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin)
 Set compression level. More...
 
void SetCompressionSettings (Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 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 (const char *filename)
 Set file where this branch writes/reads its buffers. More...
 
virtual void SetFile (TFile *file=0)
 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...
 
Bool_t SupportsBulkRead () const
 Returns true if this branch supports bulk IO, false otherwise. 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 TNamed &named)
 TNamed copy ctor. More...
 
 TNamed (const TString &name, const TString &title)
 
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 Print (Option_t *option="") const
 Print TNamed name and title. 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...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
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. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
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 abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. 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 const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of 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 const char * GetTitle () const
 Returns title of object. More...
 
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...
 
virtual ULong_t Hash () const
 Return hash value for this object. 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...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. More...
 
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 void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. 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)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
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 BulkObj = ROOT::Experimental::Internal::TBulkBranchRead
 
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 Types inherited from TObject
enum  { kOnlyPrepStep = BIT(3) }
 

Protected Member Functions

void FillLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to fill Basket buffer. More...
 
TBasketGetFreshBasket (Int_t basketnumber, TBuffer *user_buffer)
 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...
 
virtual void SetAddressImpl (void *addr, Bool_t)
 
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...
 
BulkObj fBulk
 ! Helper for performing bulk IO 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...
 
TBasketfExtraBasket
 ! Allocated basket not currently holding any data. 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...
 
Int_t GetBasketAndFirst (TBasket *&basket, Long64_t &first, TBuffer *user_buffer)
 A helper function to locate the correct basket - and its first entry. More...
 
TBasketGetBasketImpl (Int_t basket, TBuffer *user_buffer)
 Return pointer to basket basketnumber in this Branch. More...
 
Int_t GetBulkEntries (Long64_t, TBuffer &)
 Read as many events as possible into the given buffer, using zero-copy mechanisms. More...
 
Int_t GetEntriesSerialized (Long64_t N, TBuffer &user_buf)
 
Int_t GetEntriesSerialized (Long64_t, TBuffer &, TBuffer *)
 
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 ROOT::Experimental::Internal::TBulkBranchRead
 
class TBranchElement
 
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

◆ BulkObj

Definition at line 113 of file TBranch.h.

◆ CacheInfo_t

Definition at line 155 of file TBranch.h.

◆ FillLeaves_t

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

Definition at line 160 of file TBranch.h.

◆ ReadLeaves_t

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

Definition at line 158 of file TBranch.h.

◆ TIOFeatures

Definition at line 92 of file TBranch.h.

Member Enumeration Documentation

◆ EStatusBits

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

Definition at line 102 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 84 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 = ROOT::RCompressionSetting::EAlgorithm::kInherit 
)

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`)
       - `f` : a 24 bit floating point with truncated mantissa (`Float16_t`)
       - `D` : a 64 bit floating point (`Double_t`)
       - `d` : a 24 bit truncated floating point (`Double32_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.
    - In case of the truncated floating point types (Float16_t and Double32_t) you can
         furthermore specify the range in the style [xmin,xmax] or [xmin,xmax,nbits] after
         the type character. See `TStreamerElement::GetRange()` for further information.
    - 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 194 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 = ROOT::RCompressionSetting::EAlgorithm::kInherit 
)

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 247 of file TBranch.cxx.

◆ ~TBranch()

TBranch::~TBranch ( )
virtual

Destructor.

Definition at line 440 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) or is empty (no entries).

Definition at line 533 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 606 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.
#define e(i)
Definition: RSha256.hxx:103
Definition: tree.py:1

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 668 of file TBranch.cxx.

◆ Browse()

void TBranch::Browse ( TBrowser b)
virtual

Browser interface.

Reimplemented from TObject.

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

Definition at line 687 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 714 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 745 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 813 of file TBranch.cxx.

◆ Fill()

Int_t TBranch::Fill ( )
inline

Definition at line 203 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 923 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 TBranchClones, TBranchElement, TBranchObject, TBranchRef, and TBranchSTL.

Definition at line 844 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 2360 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 1023 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 1069 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 1124 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 1170 of file TBranch.cxx.

◆ GetAddress()

virtual char * TBranch::GetAddress ( ) const
inlinevirtual

Reimplemented in TBranchElement.

Definition at line 210 of file TBranch.h.

◆ GetBasket()

TBasket * TBranch::GetBasket ( Int_t  basket)
inline

Definition at line 211 of file TBranch.h.

◆ GetBasketAndFirst()

Int_t TBranch::GetBasketAndFirst ( TBasket *&  basket,
Long64_t first,
TBuffer user_buffer 
)
private

A helper function to locate the correct basket - and its first entry.

Extracted to a common private function because it is needed by both GetEntry and GetBulkEntries. It should not be called directly.

If a new basket must be constructed and the user_buffer is provided, then the user_buffer will back the memory of the newly-constructed basket.

Assumes that this branch is enabled.

Definition at line 1337 of file TBranch.cxx.

◆ GetBasketBytes()

Int_t * TBranch::GetBasketBytes ( ) const
inline

Definition at line 212 of file TBranch.h.

◆ GetBasketEntry()

Long64_t * TBranch::GetBasketEntry ( ) const
inline

Definition at line 213 of file TBranch.h.

◆ GetBasketImpl()

TBasket * TBranch::GetBasketImpl ( Int_t  basketnumber,
TBuffer user_buffer 
)
private

Return pointer to basket basketnumber in this Branch.

If a new buffer must be created and the user_buffer argument is non-null, then the memory in the user_bufer will be shared with the returned TBasket.

Definition at line 1214 of file TBranch.cxx.

◆ GetBasketSeek()

Long64_t TBranch::GetBasketSeek ( Int_t  basket) const
virtual

Return address of basket in the file.

Definition at line 1290 of file TBranch.cxx.

◆ GetBasketSize()

virtual Int_t TBranch::GetBasketSize ( ) const
inlinevirtual

Definition at line 215 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 1300 of file TBranch.cxx.

◆ GetBulkEntries()

Int_t TBranch::GetBulkEntries ( Long64_t  entry,
TBuffer user_buf 
)
private

Read as many events as possible into the given buffer, using zero-copy mechanisms.

Returns -1 in case of a failure. On success, returns a (non-zero) number of events of the type held by this branch currently in the buffer.

On success, the caller should be able to access the contents of buf as

static_cast<T*>(buf.GetCurrent())

where T is the type stored on this branch. The array's length is the return value of this function.

NOTES:

  • This interface is meant to be used by higher-level, type-safe wrappers, not by end-users.
  • This only returns events

Definition at line 1437 of file TBranch.cxx.

◆ GetBulkRead()

ROOT::Experimental::Internal::TBulkBranchRead & TBranch::GetBulkRead ( )
inline

Definition at line 216 of file TBranch.h.

◆ 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 TBranchClones, TBranchElement, TBranchObject, and TBranchSTL.

Definition at line 1312 of file TBranch.cxx.

◆ GetCompressionAlgorithm()

Int_t TBranch::GetCompressionAlgorithm ( ) const
inline

Definition at line 297 of file TBranch.h.

◆ GetCompressionLevel()

Int_t TBranch::GetCompressionLevel ( ) const
inline

Definition at line 303 of file TBranch.h.

◆ GetCompressionSettings()

Int_t TBranch::GetCompressionSettings ( ) const
inline

Definition at line 309 of file TBranch.h.

◆ GetDirectory()

TDirectory * TBranch::GetDirectory ( ) const
inline

Definition at line 222 of file TBranch.h.

◆ GetEntries()

Long64_t TBranch::GetEntries ( ) const
inline

Definition at line 249 of file TBranch.h.

◆ GetEntriesSerialized() [1/2]

Int_t TBranch::GetEntriesSerialized ( Long64_t  N,
TBuffer user_buf 
)
inlineprivate

Definition at line 183 of file TBranch.h.

◆ GetEntriesSerialized() [2/2]

Int_t TBranch::GetEntriesSerialized ( Long64_t  entry,
TBuffer user_buf,
TBuffer count_buf 
)
private

Definition at line 1495 of file TBranch.cxx.

◆ 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);
long long Long64_t
Definition: RtypesCore.h:71
A chain is a collection of files containing TTree objects.
Definition: TChain.h:34
virtual Long64_t LoadTree(Long64_t entry)
Find the tree which contains entry, and set it as the current tree.
Definition: TChain.cxx:1289

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 THbookBranch, TBranchClones, TBranchElement, TBranchObject, and TBranchSTL.

Definition at line 1591 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 1647 of file TBranch.cxx.

◆ GetEntryNumber()

Long64_t TBranch::GetEntryNumber ( ) const
inline

Definition at line 240 of file TBranch.h.

◆ GetEntryOffsetLen()

Int_t TBranch::GetEntryOffsetLen ( ) const
inline

Definition at line 225 of file TBranch.h.

◆ GetEvent()

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

Definition at line 226 of file TBranch.h.

◆ GetExpectedType()

Int_t TBranch::GetExpectedType ( TClass *&  clptr,
EDataType type 
)
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 1719 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 1738 of file TBranch.cxx.

◆ GetFileName()

const char * TBranch::GetFileName ( ) const
inline

Definition at line 232 of file TBranch.h.

◆ GetFirstEntry()

Long64_t TBranch::GetFirstEntry ( ) const
inline

Definition at line 241 of file TBranch.h.

◆ GetFreshBasket()

TBasket * TBranch::GetFreshBasket ( Int_t  basketnumber,
TBuffer user_buffer 
)
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.

If the user_buffer argument is non-null, then the memory in the user-provided buffer will be utilized by the underlying basket.

The basket number is used to estimate the required buffer size and try to optimize memory usage and number of memory allocation.

Definition at line 1779 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 1838 of file TBranch.cxx.

◆ GetFullName()

TString TBranch::GetFullName ( ) const
virtual

Return the 'full' name of the branch.

In particular prefix the mother's name when it does not end in a trailing dot and thus is not part of the branch name

Reimplemented in TBranchElement.

Definition at line 1903 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 1320 of file TBranch.cxx.

◆ GetIOFeatures()

ROOT::TIOFeatures TBranch::GetIOFeatures ( ) const

Returns the IO settings currently in use for this branch.

Definition at line 2119 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 1919 of file TBranch.cxx.

◆ GetListOfBaskets()

TObjArray * TBranch::GetListOfBaskets ( )
inline

Definition at line 243 of file TBranch.h.

◆ GetListOfBranches()

TObjArray * TBranch::GetListOfBranches ( )
inline

Definition at line 244 of file TBranch.h.

◆ GetListOfLeaves()

TObjArray * TBranch::GetListOfLeaves ( )
inline

Definition at line 245 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 1981 of file TBranch.cxx.

◆ GetMaxBaskets()

Int_t TBranch::GetMaxBaskets ( ) const
inline

Definition at line 246 of file TBranch.h.

◆ GetMother()

TBranch * TBranch::GetMother ( ) const

Get our top-level parent branch in the tree.

Definition at line 1991 of file TBranch.cxx.

◆ GetNleaves()

Int_t TBranch::GetNleaves ( ) const
inline

Definition at line 247 of file TBranch.h.

◆ GetOffset()

Int_t TBranch::GetOffset ( ) const
inline

Definition at line 233 of file TBranch.h.

◆ GetReadBasket()

Int_t TBranch::GetReadBasket ( ) const
inline

Definition at line 234 of file TBranch.h.

◆ GetReadEntry()

Long64_t TBranch::GetReadEntry ( ) const
inline

Definition at line 235 of file TBranch.h.

◆ GetRealFileName()

TString TBranch::GetRealFileName ( ) const
protected

Get real file name.

Definition at line 1932 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 1972 of file TBranch.cxx.

◆ GetSplitLevel()

Int_t TBranch::GetSplitLevel ( ) const
inline

Definition at line 248 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 2028 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 2065 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 2084 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 511 of file TBranch.cxx.

◆ GetTree()

TTree * TBranch::GetTree ( ) const
inline

Definition at line 250 of file TBranch.h.

◆ GetWriteBasket()

Int_t TBranch::GetWriteBasket ( ) const
inline

Definition at line 236 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 2102 of file TBranch.cxx.

◆ Init()

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

Definition at line 295 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 2127 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 TBranchClones, TBranchElement, TBranchObject, and TBranchSTL.

Definition at line 2135 of file TBranch.cxx.

◆ KeepCircular()

void TBranch::KeepCircular ( Long64_t  maxEntries)
virtual

keep a maximum of fMaxEntries in memory

Definition at line 2147 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 2173 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 TBranchSTL, TBranchClones, TBranchElement, TBranchObject, and TBranchRef.

Definition at line 2205 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 2309 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 2317 of file TBranch.cxx.

◆ ReadLeaves0Impl()

void TBranch::ReadLeaves0Impl ( TBuffer b)
protected

Read zero leaves without the overhead of a loop.

Definition at line 2336 of file TBranch.cxx.

◆ ReadLeaves1Impl()

void TBranch::ReadLeaves1Impl ( TBuffer b)
protected

Read one leaf without the overhead of a loop.

Definition at line 2343 of file TBranch.cxx.

◆ ReadLeaves2Impl()

void TBranch::ReadLeaves2Impl ( TBuffer b)
protected

Read two leaves without the overhead of a loop.

Definition at line 2351 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 2325 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 2372 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 TBranchClones, TBranchElement, TBranchObject, and TBranchRef.

Definition at line 2421 of file TBranch.cxx.

◆ ResetAddress()

void TBranch::ResetAddress ( )
virtual

Reset the address of the branch.

Reimplemented in TBranchElement.

Definition at line 2515 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 TBranchClones, TBranchElement, TBranchObject, and TBranchRef.

Definition at line 2462 of file TBranch.cxx.

◆ ResetCount()

void TBranch::ResetCount ( )
static

Static function resetting fgCount.

Definition at line 2538 of file TBranch.cxx.

◆ ResetReadEntry()

virtual void TBranch::ResetReadEntry ( )
inlinevirtual

Definition at line 267 of file TBranch.h.

◆ SetAddress()

void TBranch::SetAddress ( void add)
virtual

Set address of this branch.

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

Definition at line 2546 of file TBranch.cxx.

◆ SetAddressImpl()

virtual void TBranch::SetAddressImpl ( void addr,
Bool_t   
)
inlineprotectedvirtual

Reimplemented in TBranchElement.

Definition at line 177 of file TBranch.h.

◆ 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 2580 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 TBranchClones, TBranchElement, and TBranchObject.

Definition at line 2593 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 2609 of file TBranch.cxx.

◆ SetCompressionAlgorithm()

void TBranch::SetCompressionAlgorithm ( Int_t  algorithm = ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)

Set compression algorithm.

Definition at line 2627 of file TBranch.cxx.

◆ SetCompressionLevel()

void TBranch::SetCompressionLevel ( Int_t  level = ROOT::RCompressionSetting::ELevel::kUseMin)

Set compression level.

Definition at line 2647 of file TBranch.cxx.

◆ SetCompressionSettings()

void TBranch::SetCompressionSettings ( Int_t  settings = ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)

Set compression settings.

Definition at line 2669 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 2702 of file TBranch.cxx.

◆ SetEntryOffsetLen()

void TBranch::SetEntryOffsetLen ( Int_t  len,
Bool_t  updateSubBranches = 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 2685 of file TBranch.cxx.

◆ SetFile() [1/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. 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 2772 of file TBranch.cxx.

◆ SetFile() [2/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. 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 2727 of file TBranch.cxx.

◆ SetFirstEntry()

void TBranch::SetFirstEntry ( Long64_t  entry)
virtual

set the first entry number (case of TBranchSTL)

Definition at line 3143 of file TBranch.cxx.

◆ SetIOFeatures()

void TBranch::SetIOFeatures ( TIOFeatures features)
inline

Definition at line 281 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 2791 of file TBranch.cxx.

◆ SetObject()

void TBranch::SetObject ( void objadd)
virtual

Set object this branch is pointing to.

Reimplemented in TBranchElement.

Definition at line 2800 of file TBranch.cxx.

◆ SetOffset()

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

Reimplemented in TBranchElement.

Definition at line 283 of file TBranch.h.

◆ SetSkipZip()

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

Definition at line 168 of file TBranch.h.

◆ SetStatus()

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

Set branch status to Process or DoNotProcess.

Definition at line 2811 of file TBranch.cxx.

◆ SetTree()

virtual void TBranch::SetTree ( TTree tree)
inlinevirtual

Reimplemented in TBranchClones.

Definition at line 285 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 3158 of file TBranch.cxx.

◆ SupportsBulkRead()

Bool_t TBranch::SupportsBulkRead ( ) const

Returns true if this branch supports bulk IO, false otherwise.

This will return true if all the various preconditions necessary hold true to perform bulk IO (reasonable type, single TLeaf, etc); the bulk IO may still fail, depending on the contents of the individual TBaskets loaded.

Definition at line 1412 of file TBranch.cxx.

◆ UpdateAddress()

virtual void TBranch::UpdateAddress ( )
inlinevirtual

Reimplemented in TBranchObject.

Definition at line 288 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 TBranchClones, and TBranchElement.

Definition at line 3168 of file TBranch.cxx.

◆ WriteBasket()

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

Definition at line 173 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 3066 of file TBranch.cxx.

Friends And Related Function Documentation

◆ ROOT::Experimental::Internal::TBulkBranchRead

Definition at line 99 of file TBranch.h.

◆ TBranchElement

friend class TBranchElement
friend

Definition at line 98 of file TBranch.h.

◆ TTree

friend class TTree
friend

Definition at line 97 of file TBranch.h.

◆ TTreeCache

friend class TTreeCache
friend

Definition at line 95 of file TBranch.h.

◆ TTreeCloner

friend class TTreeCloner
friend

Definition at line 96 of file TBranch.h.

Member Data Documentation

◆ fAddress

char* TBranch::fAddress
protected

! Address of 1st leaf (variable or object)

Definition at line 145 of file TBranch.h.

◆ fBasketBytes

Int_t* TBranch::fBasketBytes
protected

[fMaxBaskets] Length of baskets on file

Definition at line 139 of file TBranch.h.

◆ fBasketEntry

Long64_t* TBranch::fBasketEntry
protected

[fMaxBaskets] Table of first entry in each basket

Definition at line 140 of file TBranch.h.

◆ fBaskets

TObjArray TBranch::fBaskets
protected

-> List of baskets of this branch

Definition at line 138 of file TBranch.h.

◆ fBasketSeek

Long64_t* TBranch::fBasketSeek
protected

[fMaxBaskets] Addresses of baskets on file

Definition at line 141 of file TBranch.h.

◆ fBasketSize

Int_t TBranch::fBasketSize
protected

Initial Size of Basket Buffer.

Definition at line 116 of file TBranch.h.

◆ fBranches

TObjArray TBranch::fBranches
protected

-> List of Branches of this branch

Definition at line 136 of file TBranch.h.

◆ fBrowsables

TList* TBranch::fBrowsables
protected

! List of TVirtualBranchBrowsables used for Browse()

Definition at line 150 of file TBranch.h.

◆ fBulk

BulkObj TBranch::fBulk
protected

! Helper for performing bulk IO

Definition at line 151 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 156 of file TBranch.h.

◆ fCompress

Int_t TBranch::fCompress
protected

Compression level and algorithm.

Definition at line 115 of file TBranch.h.

◆ fCurrentBasket

TBasket* TBranch::fCurrentBasket
protected

! Pointer to the current basket.

Definition at line 131 of file TBranch.h.

◆ fDirectory

TDirectory* TBranch::fDirectory
protected

! Pointer to directory where this branch buffers are stored

Definition at line 146 of file TBranch.h.

◆ fEntries

Long64_t TBranch::fEntries
protected

Number of entries.

Definition at line 132 of file TBranch.h.

◆ fEntryBuffer

TBuffer* TBranch::fEntryBuffer
protected

! Buffer used to directly pass the content without streaming

Definition at line 148 of file TBranch.h.

◆ fEntryNumber

Long64_t TBranch::fEntryNumber
protected

Current entry number (last one filled in this branch)

Definition at line 119 of file TBranch.h.

◆ fEntryOffsetLen

Int_t TBranch::fEntryOffsetLen
protected

Initial Length of fEntryOffset table in the basket buffers.

Definition at line 117 of file TBranch.h.

◆ fExtraBasket

TBasket* TBranch::fExtraBasket
protected

! Allocated basket not currently holding any data.

Definition at line 120 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 147 of file TBranch.h.

◆ fFillLeaves

FillLeaves_t TBranch::fFillLeaves
protected

! Pointer to the FillLeaves implementation to use.

Definition at line 161 of file TBranch.h.

◆ fFirstBasketEntry

Long64_t TBranch::fFirstBasketEntry
protected

! First entry in the current basket.

Definition at line 129 of file TBranch.h.

◆ fFirstEntry

Long64_t TBranch::fFirstEntry
protected

Number of the first entry in this branch.

Definition at line 133 of file TBranch.h.

◆ fgCount

Int_t TBranch::fgCount = 0
staticprotected

! branch counter

Definition at line 114 of file TBranch.h.

◆ fIOFeatures

TIOFeatures TBranch::fIOFeatures
protected

IO features for newly-created baskets.

Definition at line 121 of file TBranch.h.

◆ fLeaves

TObjArray TBranch::fLeaves
protected

-> List of leaves of this branch

Definition at line 137 of file TBranch.h.

◆ fMaxBaskets

Int_t TBranch::fMaxBaskets
protected

Maximum number of Baskets so far.

Definition at line 123 of file TBranch.h.

◆ fMother

TBranch* TBranch::fMother
protected

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

Definition at line 143 of file TBranch.h.

◆ fNBaskets

Int_t TBranch::fNBaskets
protected

! Number of baskets in memory

Definition at line 124 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 130 of file TBranch.h.

◆ fNleaves

Int_t TBranch::fNleaves
protected

! Number of leaves

Definition at line 126 of file TBranch.h.

◆ fOffset

Int_t TBranch::fOffset
protected

Offset of this branch.

Definition at line 122 of file TBranch.h.

◆ fParent

TBranch* TBranch::fParent
protected

! Pointer to parent branch.

Definition at line 144 of file TBranch.h.

◆ fReadBasket

Int_t TBranch::fReadBasket
protected

! Current basket number when reading

Definition at line 127 of file TBranch.h.

◆ fReadEntry

Long64_t TBranch::fReadEntry
protected

! Current entry number when reading

Definition at line 128 of file TBranch.h.

◆ fReadLeaves

ReadLeaves_t TBranch::fReadLeaves
protected

! Pointer to the ReadLeaves implementation to use.

Definition at line 159 of file TBranch.h.

◆ fSkipZip

Bool_t TBranch::fSkipZip
protected

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

Definition at line 153 of file TBranch.h.

◆ fSplitLevel

Int_t TBranch::fSplitLevel
protected

Branch split level.

Definition at line 125 of file TBranch.h.

◆ fTotBytes

Long64_t TBranch::fTotBytes
protected

Total number of bytes in all leaves before compression.

Definition at line 134 of file TBranch.h.

◆ fTransientBuffer

TBuffer* TBranch::fTransientBuffer
protected

! Pointer to the current transient buffer.

Definition at line 149 of file TBranch.h.

◆ fTree

TTree* TBranch::fTree
protected

! Pointer to Tree header

Definition at line 142 of file TBranch.h.

◆ fWriteBasket

Int_t TBranch::fWriteBasket
protected

Last basket number written.

Definition at line 118 of file TBranch.h.

◆ fZipBytes

Long64_t TBranch::fZipBytes
protected

Total number of bytes in all leaves after compression.

Definition at line 135 of file TBranch.h.

Libraries for TBranch:
[legend]

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