TBranch


class description - source file - inheritance tree

class TBranch : public TNamed


    public:
TBranch TBranch() TBranch TBranch(const char* name, void* address, const char* leaflist, Int_t basketsize = 32000, Int_t compress = -1) TBranch TBranch(TBranch&) virtual void ~TBranch() virtual void Browse(TBrowser* b) TClass* Class() virtual void DropBaskets() virtual Int_t Fill() char* GetAddress() TBasket* GetBasket(Int_t basket) Int_t* GetBasketBytes() Seek_t GetBasketSeek(Int_t basket) virtual Int_t GetBasketSize() virtual Int_t GetCompressionLevel() TDirectory* GetDirectory() virtual Stat_t GetEntries() virtual Int_t GetEntry(Int_t entry = 0, Int_t getall = 0) virtual Int_t GetEntryExport(Int_t entry, Int_t getall, TClonesArray* list, Int_t n) Int_t GetEntryNumber() virtual Int_t GetEntryOffsetLen() Int_t GetEvent(Int_t entry = 0) TFile* GetFile(Int_t mode = 0) const char* GetFileName() const TLeaf* GetLeaf(const char* name) TObjArray* GetListOfBaskets() TObjArray* GetListOfBranches() TObjArray* GetListOfLeaves() virtual Int_t GetMaxBaskets() virtual Int_t GetNleaves() Int_t GetOffset() Int_t GetReadBasket() Int_t GetReadEntry() virtual Int_t GetRow(Int_t row) virtual Stat_t GetTotBytes() TTree* GetTree() Int_t GetWriteBasket() virtual Stat_t GetZipBytes() virtual TClass* IsA() const Bool_t IsAutoDelete() virtual Bool_t IsFolder() virtual void Print(Option_t* option) virtual void ReadBasket(TBuffer& b) virtual void Reset(Option_t* option) virtual void ResetReadEntry() virtual void SetAddress(void* add) virtual void SetAutoDelete(Bool_t autodel = kTRUE) virtual void SetBasketSize(Int_t buffsize) virtual void SetCompressionLevel(Int_t level = 1) virtual void SetEntryOffsetLen(Int_t len) virtual void SetFile(TFile* file = 0) virtual void SetFile(const char* filename) virtual void SetOffset(Int_t offset = 0) virtual void SetTree(TTree* tree) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) virtual void UpdateAddress()

Data Members

protected:
Int_t fCompress (=1 branch is compressed, 0 otherwise) Int_t fBasketSize Initial Size of Basket Buffer Int_t fEntryOffsetLen Initial Length of fEntryOffset table in the basket buffers Int_t fMaxBaskets Maximum number of Baskets so far Int_t fWriteBasket Last basket number written Int_t fReadBasket Current basket number when reading Int_t fReadEntry Current entry number when reading Int_t fEntryNumber Current entry number (last one filled in this branch) Int_t fOffset Offset of this branch Int_t fNleaves Number of leaves Stat_t fEntries Number of entries Stat_t fTotBytes Total number of bytes in all leaves before compression Stat_t fZipBytes Total number of bytes in all leaves after compression TObjArray fBranches List of Branches of this branch TObjArray fLeaves List of leaves of this branch TObjArray fBaskets List of baskets of this branch Int_t fNBasketRAM Number of baskets in fBasketRAM Int_t* fBasketRAM [fNBasketRAM] table of basket numbers in memory Int_t* fBasketBytes [fMaxBaskets] Lenght of baskets on file Int_t* fBasketEntry [fMaxBaskets] Table of first entry in eack basket Seek_t* fBasketSeek [fMaxBaskets] Addresses of baskets on file TTree* fTree Pointer to Tree header char* fAddress Address of 1st leaf (variable or object) TDirectory* fDirectory Pointer to directory where this branch buffers are stored TString fFileName Name of file where buffers are stored ("" if in same file as Tree header) public:
static const enum TObject:: kAutoDelete


See also

TBranchClones, TBranchObject

Class Description

                                                                      
 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    


TBranch(): TNamed()
*-*-*-*-*-*Default constructor for Branch*-*-*-*-*-*-*-*-*-*
*-*        ===================================

TBranch(const char *name, void *address, const char *leaflist, Int_t basketsize, Int_t compress) :TNamed(name,leaflist)
*-*-*-*-*-*-*-*-*-*-*-*-*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)

         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

   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()
*-*-*-*-*-*Default destructor for a Branch*-*-*-*-*-*-*-*-*-*-*-*
*-*        ===============================

void Browse(TBrowser *b)
 Browser interface.

void DropBaskets()
   Loop on all branch baskets.  Drop all except readbasket

Int_t Fill()
*-*-*-*-*-*-*-*Loop on all leaves of this branch to fill Basket buffer*-*-*
*-*            =======================================================

TBasket* GetBasket(Int_t basketnumber)
*-*-*-*-*Return pointer to basket basketnumber in this Branch*-*-*-*-*-*
*-*      ====================================================

Seek_t GetBasketSeek(Int_t basketnumber)
*-*-*-*-*Return address of basket in the file*-*-*-*-*-*
*-*      ====================================

Int_t GetEntry(Int_t entry, Int_t getall)
*-*-*-*-*-*Read all leaves of entry and return total number of bytes*-*-*
*-*        =========================================================

Int_t GetEntryExport(Int_t entry, Int_t getall, TClonesArray *list, Int_t nentries)
*-*-*-*-*-*Read all leaves of entry and return total number of bytes*-*-*
*-* export buffers to real objects in the TClonesArray list.
*-*

TFile* GetFile(Int_t mode)
  Return pointer to the file where branch buffers reside

TLeaf* GetLeaf(const char *name)
*-*-*-*-*-*Return pointer to the 1st Leaf named name in thisBranch-*-*-*-*-*
*-*        =======================================================

Int_t GetRow(Int_t)
*-*-*-*-*Return all elements of one row unpacked in internal array fValues*-*
*-*      =================================================================

Bool_t IsAutoDelete()
*-*-*-*-*Return TRUE if an existing object in a TBranchObject must be deleted
*-*      ==================================================

Bool_t IsFolder()
*-*-*-*-*Return TRUE if more than one leaf, FALSE otherwise*-*
*-*      ==================================================

void Print(Option_t *)
*-*-*-*-*-*-*-*-*-*-*-*Print TBranch parameters*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*                    ========================

void ReadBasket(TBuffer &)
*-*-*-*-*-*-*-*Loop on all leaves of this branch to read Basket buffer*-*-*
*-*            =======================================================

void Reset(Option_t *)
*-*-*-*-*-*-*-*Reset a Branch*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*            ====================

    Existing buffers are deleted
    Entries, max and min are reset


void SetAddress(void *add)
*-*-*-*-*-*-*-*Set address of this branch*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*            ====================


void SetAutoDelete(Bool_t autodel)
*-*-*-*-*-*-*-*Set the AutoDelete 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 object->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 Streamer itself.

void SetCompressionLevel(Int_t level)
*-*-*-*-*-*-*-*Set the branch/subbranches compression level
*-*            ============================================

void SetFile(TFile *file)
  Set file where this branch writes/reads its buffers


void SetFile(const char *fname)
  Set file where this branch writes/reads its buffers
  By default the branch buffers reside in the file where the Tree was created.
  Branches of the same Tree may be on different 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 open in read mode.

  To open a file in "update" mode, use TBranch::SetFile(TFile *file).

void Streamer(TBuffer &b)
*-*-*-*-*-*-*-*-*Stream a class object*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*              =========================================



Inline Functions


              char* GetAddress()
              Int_t GetBasketSize()
              Int_t GetCompressionLevel()
              Int_t GetEvent(Int_t entry = 0)
              Int_t GetEntryOffsetLen()
             Int_t* GetBasketBytes()
        TDirectory* GetDirectory()
        const char* GetFileName() const
              Int_t GetOffset()
              Int_t GetReadBasket()
              Int_t GetReadEntry()
              Int_t GetWriteBasket()
             Stat_t GetTotBytes()
             Stat_t GetZipBytes()
              Int_t GetEntryNumber()
         TObjArray* GetListOfBaskets()
         TObjArray* GetListOfBranches()
         TObjArray* GetListOfLeaves()
              Int_t GetMaxBaskets()
              Int_t GetNleaves()
             Stat_t GetEntries()
             TTree* GetTree()
               void ResetReadEntry()
               void SetBasketSize(Int_t buffsize)
               void SetEntryOffsetLen(Int_t len)
               void SetOffset(Int_t offset = 0)
               void SetTree(TTree* tree)
               void UpdateAddress()
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
            TBranch TBranch(TBranch&)


Author: Rene Brun 12/01/96
Last update: 2.23/12 26/01/2000 09.45.01 by Rene Brun
Copyright (c) 1995-1999, The ROOT System, All rights reserved. *


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.