ROOT logo
ROOT » TREE » TREE » TBranch

class TBranch: public TNamed, public TAttFill


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:
TBranchObject in case the branch is one object
TBranchClones in case the branch is an array of clone objects

Function Members (Methods)

public:
TBranch()
TBranch(TTree* tree, const char* name, void* address, const char* leaflist, Int_t basketsize = 32000, Int_t compress = -1)
TBranch(TBranch* parent, const char* name, void* address, const char* leaflist, Int_t basketsize = 32000, Int_t compress = -1)
virtual~TBranch()
voidTObject::AbstractMethod(const char* method) const
virtual voidAddBasket(TBasket& b, Bool_t ondisk, Long64_t startEntry)
virtual voidAddLastBasket(Long64_t startEntry)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidBrowse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidDeleteBaskets(Option_t* option = "")
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidDropBaskets(Option_t* option = "")
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
voidExpandBasketArrays()
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual Int_tFill()
virtual voidTNamed::FillBuffer(char*& buffer)
virtual voidFillLeaves(TBuffer& b)
virtual TBranch*FindBranch(const char* name)
virtual TLeaf*FindLeaf(const char* name)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tFlushBaskets()
Int_tFlushOneBasket(UInt_t which)
virtual char*GetAddress() const
TBasket*GetBasket(Int_t basket)
Int_t*GetBasketBytes() const
Long64_t*GetBasketEntry() const
virtual Long64_tGetBasketSeek(Int_t basket) const
virtual Int_tGetBasketSize() const
virtual TList*GetBrowsables()
virtual const char*GetClassName() const
Int_tGetCompressionAlgorithm() const
Int_tGetCompressionLevel() const
Int_tGetCompressionSettings() const
TDirectory*GetDirectory() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Long64_tGetEntries() const
virtual Int_tGetEntry(Long64_t entry = 0, Int_t getall = 0)
virtual Int_tGetEntryExport(Long64_t entry, Int_t getall, TClonesArray* list, Int_t n)
Long64_tGetEntryNumber() const
Int_tGetEntryOffsetLen() const
Int_tGetEvent(Long64_t entry = 0)
virtual Int_tGetExpectedType(TClass*& clptr, EDataType& type)
virtual TFile*GetFile(Int_t mode = 0)
const char*GetFileName() const
virtual Color_tTAttFill::GetFillColor() const
virtual Style_tTAttFill::GetFillStyle() const
Long64_tGetFirstEntry() const
virtual const char*GetIconName() const
virtual TLeaf*GetLeaf(const char* name) const
TObjArray*GetListOfBaskets()
TObjArray*GetListOfBranches()
TObjArray*GetListOfLeaves()
virtual Bool_tGetMakeClass() const
Int_tGetMaxBaskets() const
TBranch*GetMother() const
virtual const char*TNamed::GetName() const
Int_tGetNleaves() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
Int_tGetOffset() const
virtual Option_t*TObject::GetOption() const
Int_tGetReadBasket() const
Long64_tGetReadEntry() const
virtual Int_tGetRow(Int_t row)
Int_tGetSplitLevel() const
TBranch*GetSubBranch(const TBranch* br) const
virtual const char*TNamed::GetTitle() const
Long64_tGetTotalSize(Option_t* option = "") const
Long64_tGetTotBytes(Option_t* option = "") const
TTree*GetTree() const
virtual UInt_tTObject::GetUniqueID() const
Int_tGetWriteBasket() const
Long64_tGetZipBytes(Option_t* option = "") const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tIsAutoDelete() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tIsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tTAttFill::IsTransparent() const
Bool_tTObject::IsZombie() const
virtual voidKeepCircular(Long64_t maxEntries)
virtual Int_tLoadBaskets()
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidTAttFill::Modify()
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidReadBasket(TBuffer& b)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidRefresh(TBranch* b)
virtual voidReset(Option_t* option = "")
virtual voidResetAddress()
virtual voidTAttFill::ResetAttFill(Option_t* option = "")
voidTObject::ResetBit(UInt_t f)
static voidResetCount()
virtual voidResetReadEntry()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTAttFill::SaveFillAttributes(ostream& out, const char* name, Int_t coldef = 1, Int_t stydef = 1001)
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
virtual voidSetAddress(void* add)
virtual voidSetAutoDelete(Bool_t autodel = kTRUE)
virtual voidSetBasketSize(Int_t buffsize)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidSetBufferAddress(TBuffer* entryBuffer)
voidSetCompressionAlgorithm(Int_t algorithm = 0)
voidSetCompressionLevel(Int_t level = 1)
voidSetCompressionSettings(Int_t settings = 1)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetEntries(Long64_t entries)
virtual voidSetEntryOffsetLen(Int_t len, Bool_t updateSubBranches = kFALSE)
virtual voidSetFile(TFile* file = 0)
virtual voidSetFile(const char* filename)
virtual voidTAttFill::SetFillAttributes()MENU
virtual voidTAttFill::SetFillColor(Color_t fcolor)
virtual voidTAttFill::SetFillStyle(Style_t fstyle)
virtual voidSetFirstEntry(Long64_t entry)
virtual Bool_tSetMakeClass(Bool_t decomposeObj = kTRUE)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
virtual voidSetObject(void* objadd)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidSetOffset(Int_t offset = 0)
virtual voidSetStatus(Bool_t status = 1)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidSetTree(TTree* tree)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidSetupAddresses()
virtual voidShowMembers(TMemberInspector& insp)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidUpdateAddress()
virtual voidUpdateFile()
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
TBasket*GetFreshBasket()
TStringGetRealFileName() const
voidInit(const char* name, const char* leaflist, Int_t compress)
voidTObject::MakeZombie()
voidReadLeaves0Impl(TBuffer& b)
voidReadLeaves1Impl(TBuffer& b)
voidReadLeaves2Impl(TBuffer& b)
voidReadLeavesImpl(TBuffer& b)
voidSetSkipZip(Bool_t skip = kTRUE)
Int_tWriteBasket(TBasket* basket, Int_t where)
private:
TBranch(const TBranch&)
TBranch&operator=(const TBranch&)

Data Members

public:
enum EStatusBits { kAutoDelete
kDoNotUseBufferMap
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
char*fAddress! Address of 1st leaf (variable or object)
Int_t*fBasketBytes[fMaxBaskets] Lenght of baskets on file
Long64_t*fBasketEntry[fMaxBaskets] Table of first entry in eack basket
Long64_t*fBasketSeek[fMaxBaskets] Addresses of baskets on file
Int_tfBasketSizeInitial Size of Basket Buffer
TObjArrayfBaskets-> List of baskets of this branch
TObjArrayfBranches-> List of Branches of this branch
TList*fBrowsables! List of TVirtualBranchBrowsables used for Browse()
Int_tfCompressCompression level and algorithm
TBasket*fCurrentBasket! Pointer to the current basket.
TDirectory*fDirectory! Pointer to directory where this branch buffers are stored
Long64_tfEntriesNumber of entries
TBuffer*fEntryBuffer! Buffer used to directly pass the content without streaming
Long64_tfEntryNumberCurrent entry number (last one filled in this branch)
Int_tfEntryOffsetLenInitial Length of fEntryOffset table in the basket buffers
TStringfFileNameName of file where buffers are stored ("" if in same file as Tree header)
Color_tTAttFill::fFillColorfill area color
Style_tTAttFill::fFillStylefill area style
Long64_tfFirstBasketEntry! First entry in the current basket.
Long64_tfFirstEntryNumber of the first entry in this branch
TObjArrayfLeaves-> List of leaves of this branch
Int_tfMaxBasketsMaximum number of Baskets so far
TBranch*fMother! Pointer to top-level parent branch in the tree.
Int_tfNBaskets! Number of baskets in memory
TStringTNamed::fNameobject identifier
Long64_tfNextBasketEntry! Next entry that will requires us to go to the next basket
Int_tfNleaves! Number of leaves
Int_tfOffsetOffset of this branch
TBranch*fParent! Pointer to parent branch.
Int_tfReadBasket! Current basket number when reading
Long64_tfReadEntry! Current entry number when reading
G__p2memfuncfReadLeaves! Pointer to the ReadLeaves implementation to use.
Bool_tfSkipZip! After being read, the buffer will not be unziped.
Int_tfSplitLevelBranch split level
TStringTNamed::fTitleobject title
Long64_tfTotBytesTotal number of bytes in all leaves before compression
TTree*fTree! Pointer to Tree header
Int_tfWriteBasketLast basket number written
Long64_tfZipBytesTotal number of bytes in all leaves after compression
static Int_tfgCount! branch counter

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TBranch()
 Default constructor.  Used for I/O by default.
TBranch(TTree* tree, const char* name, void* address, const char* leaflist, Int_t basketsize = 32000, Int_t compress = -1)
Create a Branch*-*-
*-*                =====================

       * address is the address of the first item of a structure.
       * 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 may be 0,1 or 2 characters. 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)

         By default, a variable will be copied to the buffer with the number of
         bytes specified in the type descriptor character. However, if the type
         consists of 2 characters, the second character is an integer that
         specifies the number of bytes to be used when copying the variable
         to the output buffer. Example:
             X         ; variable X, type Float_t
             Y/I       : variable Y, type Int_t
             Y/I2      ; variable Y, type Int_t converted to a 16 bits integer

         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 refered to by neleme **MUST** be an int (/I),
         If leaf name has the form var[nelem], where nelem is a digit, then
            it is used as the fixed size of the array.
         If leaf name has the form of a multi dimenantion array (eg var[nelem][nelem2])
            where nelem and nelem2 are digits) 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 (eg 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

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

       * address is the address of the first item of a structure
         or the address of a pointer to an object (see example).
       * 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 may be 0,1 or 2 characters. 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)

         By default, a variable will be copied to the buffer with the number of
         bytes specified in the type descriptor character. However, if the type
         consists of 2 characters, the second character is an integer that
         specifies the number of bytes to be used when copying the variable
         to the output buffer. Example:
             X         ; variable X, type Float_t
             Y/I       : variable Y, type Int_t
             Y/I2      ; variable Y, type Int_t converted to a 16 bits integer

         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.
              The leaf refered to by neleme **MUST** be an int (/I).
         If leaf name has the form var[nelem], where nelem is a digit, then
            it is used as the fixed size of the array.
         If leaf name has the form of a multi dimenantion array (eg var[nelem][nelem2])
            where nelem and nelem2 are digits) then
            it is used as a 2 dimensional array of fixed size.
         Any of other form is not supported.

   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

*
void Init(const char* name, const char* leaflist, Int_t compress)
 Initialization routine called from the constructor.  This should NOT be made virtual.
~TBranch()
 Destructor.
void AddBasket(TBasket& b, Bool_t ondisk, Long64_t startEntry)
 Add the basket to this branch.
void AddLastBasket(Long64_t startEntry)
 Add the start entry of the write basket (not yet created)
void Browse(TBrowser* b)
 Browser interface.
void DeleteBaskets(Option_t* option = "")
 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.
void DropBaskets(Option_t* option = "")
 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.
void ExpandBasketArrays()
 Increase BasketEntry buffer of a minimum of 10 locations
 and a maximum of 50 per cent of current size.
Int_t Fill()
 Loop on all leaves of this branch to fill Basket buffer.

 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.

void FillLeaves(TBuffer& b)
 Fill each of the leaf of the branch.
TBranch* FindBranch(const char* name)
 -- Find the immediate sub-branch with passed name.
TLeaf* FindLeaf(const char* name)
 -- Find the leaf corresponding to the name 'searchname'.
Int_t 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.
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.
 Return the number of bytes written;
TBasket* GetBasket(Int_t basket)
Return pointer to basket basketnumber in this Branch*-
*-*      ====================================================
Long64_t GetBasketSeek(Int_t basket) const
Return address of basket in the file*-
*-*      ====================================
TList* GetBrowsables()
 Returns (and, if 0, creates) browsable objects for this branch
 See TVirtualBranchBrowsable::FillListOfBrowsables.
const char * GetClassName() const
 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.
const char* GetIconName() const
 Return icon name depending on type of branch.
Int_t GetEntry(Long64_t entry = 0, Int_t getall = 0)
 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.

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.

 Returns total number of bytes read.
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.
TFile* GetFile(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.
 If mode is 1 the branch buffer file is recreated.
TBasket* GetFreshBasket()
 Return a fresh basket by either resusing an existing basket that needs
 to be drop (according to TTree::MemoryFull) or create a new one.
TLeaf* GetLeaf(const char* name) const
*Return pointer to the 1st Leaf named name in thisBranch
*-*        =======================================================
TString GetRealFileName() const
Int_t GetRow(Int_t row)
-*-*-*Return all elements of one row unpacked in internal array fValues
*-*      =================================================================
Bool_t GetMakeClass() const
 Return whether this branch is in a mode where the object are decomposed
 or not (Also known as MakeClass mode).
TBranch* GetMother() const
 Get our top-level parent branch in the tree.
TBranch* GetSubBranch(const TBranch* br) const
 Find the parent branch of child.
 Return 0 if child is not in this branch hierarchy.
Long64_t GetTotalSize(Option_t* option = "") const
 Return total number of bytes in the branch (including current buffer)
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
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
Bool_t IsAutoDelete() const
 Return kTRUE if an existing object in a TBranchObject must be deleted.
Bool_t IsFolder() const
 Return kTRUE if more than one leaf or browsables, kFALSE otherwise.
void KeepCircular(Long64_t maxEntries)
 keep a maximum of fMaxEntries in memory
Int_t LoadBaskets()
  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.
void Print(Option_t* option = "") const
 Print TBranch parameters
void ReadBasket(TBuffer& b)
 Loop on all leaves of this branch to read Basket buffer.
void ReadLeavesImpl(TBuffer& b)
 Loop on all leaves of this branch to read Basket buffer.
void ReadLeaves0Impl(TBuffer& b)
 Loop on all leaves of this branch to read Basket buffer.
void ReadLeaves1Impl(TBuffer& b)
 Loop on all leaves of this branch to read Basket buffer.
void ReadLeaves2Impl(TBuffer& b)
 Loop on all leaves of this branch to read Basket buffer.
void Refresh(TBranch* b)
  refresh this branch using new information in b
  This function is called by TTree::Refresh
void Reset(Option_t* option = "")
 Reset a Branch.

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

void ResetAddress()
 Reset the address of the branch.
void ResetCount()
 Static function resetting fgCount
void SetAddress(void* add)
 Set address of this branch.
void SetAutoDelete(Bool_t autodel = kTRUE)
 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).
void SetBasketSize(Int_t buffsize)
 Set the basket size
 The function makes sure that the basket size is greater than fEntryOffsetlen
void SetBufferAddress(TBuffer* entryBuffer)
 -- Set address of this branch directly from a TBuffer to avoid streaming.

 Note: We do not take ownership of the buffer.

void SetCompressionAlgorithm(Int_t algorithm = 0)
void SetCompressionLevel(Int_t level = 1)
void SetCompressionSettings(Int_t settings = 1)
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.
void SetEntries(Long64_t entries)
 Set the number of entries in this branch.
void SetFile(TFile* file = 0)
 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).
void SetFile(const char* filename)
 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).
Bool_t SetMakeClass(Bool_t decomposeObj = kTRUE)
 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).
void SetObject(void* objadd)
 Set object this branch is pointing to.
void SetStatus(Bool_t status = 1)
 Set branch status to Process or DoNotProcess.
void Streamer(TBuffer& b)
 Stream a class object
Int_t WriteBasket(TBasket* basket, Int_t where)
 Write the current basket to disk and return the number of bytes
 written to the file.
void SetFirstEntry(Long64_t entry)
set the first entry number (case of TBranchSTL)
void SetupAddresses()
 -- If the branch address is not set,  we set all addresses starting with
 the top level parent branch.
void UpdateFile()
 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.
Int_t GetCompressionAlgorithm() const
Int_t GetCompressionLevel() const
Int_t GetCompressionSettings() const
void SetSkipZip(Bool_t skip = kTRUE)
{ fSkipZip = skip; }
TBranch(const TBranch& )
TBranch& operator=(const TBranch& )
char * GetAddress() const
{return fAddress;}
Int_t * GetBasketBytes() const
{return fBasketBytes;}
Long64_t * GetBasketEntry() const
{return fBasketEntry;}
Int_t GetBasketSize() const
{return fBasketSize;}
TDirectory * GetDirectory() const
{return fDirectory;}
Int_t GetEntryOffsetLen() const
{ return fEntryOffsetLen; }
Int_t GetEvent(Long64_t entry = 0)
{return GetEntry(entry);}
const char * GetFileName() const
{return fFileName.Data();}
Int_t GetOffset() const
{return fOffset;}
Int_t GetReadBasket() const
{return fReadBasket;}
Long64_t GetReadEntry() const
{return fReadEntry;}
Int_t GetWriteBasket() const
{return fWriteBasket;}
Long64_t GetEntryNumber() const
{return fEntryNumber;}
Long64_t GetFirstEntry() const
{return fFirstEntry; }
TObjArray * GetListOfBaskets()
{return &fBaskets;}
TObjArray * GetListOfBranches()
{return &fBranches;}
TObjArray * GetListOfLeaves()
{return &fLeaves;}
Int_t GetMaxBaskets() const
{return fMaxBaskets;}
Int_t GetNleaves() const
{return fNleaves;}
Int_t GetSplitLevel() const
{return fSplitLevel;}
Long64_t GetEntries() const
{return fEntries;}
TTree * GetTree() const
{return fTree;}
void ResetReadEntry()
{fReadEntry = -1;}
void SetOffset(Int_t offset = 0)
{fOffset=offset;}
void SetTree(TTree* tree)
{ fTree = tree;}
void UpdateAddress()
{;}