ROOT logo
ROOT » TREE » TREE » TBranchElement

class TBranchElement: public TBranch


TBranchElement

A Branch for the case of an object


Function Members (Methods)

public:
TBranchElement()
TBranchElement(TTree* tree, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
TBranchElement(TTree* tree, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
TBranchElement(TBranch* parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
TBranchElement(TBranch* parent, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
TBranchElement(TTree* tree, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0)
TBranchElement(TBranch* parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0)
virtual~TBranchElement()
voidTObject::AbstractMethod(const char* method) const
virtual voidTBranch::AddBasket(TBasket& b, Bool_t ondisk, Long64_t startEntry)
virtual voidTBranch::AddLastBasket(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 voidTBranch::DeleteBaskets(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 voidTBranch::DropBaskets(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)
voidTBranch::ExpandBasketArrays()
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual Int_tFill()
virtual voidTNamed::FillBuffer(char*& buffer)
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_tTBranch::FlushBaskets()
Int_tTBranch::FlushOneBasket(UInt_t which)
virtual char*GetAddress() const
TBasket*TBranch::GetBasket(Int_t basket)
Int_t*TBranch::GetBasketBytes() const
Long64_t*TBranch::GetBasketEntry() const
virtual Long64_tTBranch::GetBasketSeek(Int_t basket) const
virtual Int_tTBranch::GetBasketSize() const
TBranchElement*GetBranchCount() const
TBranchElement*GetBranchCount2() const
Int_t*GetBranchOffset() const
virtual TList*TBranch::GetBrowsables()
UInt_tGetCheckSum()
virtual TClass*GetClass() const
virtual const char*GetClassName() const
Int_tGetClassVersion()
virtual const char*GetClonesName() const
TVirtualCollectionProxy*GetCollectionProxy()
Int_tTBranch::GetCompressionAlgorithm() const
Int_tTBranch::GetCompressionLevel() const
Int_tTBranch::GetCompressionSettings() const
TClass*GetCurrentClass()
TDirectory*TBranch::GetDirectory() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Long64_tTBranch::GetEntries() const
virtual Int_tGetEntry(Long64_t entry = 0, Int_t getall = 0)
virtual Int_tTBranch::GetEntryExport(Long64_t entry, Int_t getall, TClonesArray* list, Int_t n)
Long64_tTBranch::GetEntryNumber() const
Int_tTBranch::GetEntryOffsetLen() const
Int_tTBranch::GetEvent(Long64_t entry = 0)
virtual Int_tGetExpectedType(TClass*& clptr, EDataType& type)
virtual TFile*TBranch::GetFile(Int_t mode = 0)
const char*TBranch::GetFileName() const
virtual Color_tTAttFill::GetFillColor() const
virtual Style_tTAttFill::GetFillStyle() const
Long64_tTBranch::GetFirstEntry() const
virtual const char*GetIconName() const
Int_tGetID() const
TStreamerInfo*GetInfo() const
virtual TLeaf*TBranch::GetLeaf(const char* name) const
TObjArray*TBranch::GetListOfBaskets()
TObjArray*TBranch::GetListOfBranches()
TObjArray*TBranch::GetListOfLeaves()
virtual Bool_tGetMakeClass() const
Int_tTBranch::GetMaxBaskets() const
virtual Int_tGetMaximum() const
TBranch*TBranch::GetMother() const
virtual const char*TNamed::GetName() const
Int_tGetNdata() const
Int_tTBranch::GetNleaves() const
char*GetObject() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
Int_tTBranch::GetOffset() const
virtual Option_t*TObject::GetOption() const
virtual const char*GetParentName() const
Int_tTBranch::GetReadBasket() const
Long64_tTBranch::GetReadEntry() const
virtual Int_tTBranch::GetRow(Int_t row)
Int_tTBranch::GetSplitLevel() const
Int_tGetStreamerType() const
TBranch*TBranch::GetSubBranch(const TBranch* br) const
virtual TClass*GetTargetClass()
virtual const char*TNamed::GetTitle() const
Long64_tTBranch::GetTotalSize(Option_t* option = "") const
Long64_tTBranch::GetTotBytes(Option_t* option = "") const
TTree*TBranch::GetTree() const
Int_tGetType() const
virtual const char*GetTypeName() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetValue(Int_t i, Int_t len, Bool_t subarr = kFALSE) const
virtual void*GetValuePointer() const
Int_tTBranch::GetWriteBasket() const
Long64_tTBranch::GetZipBytes(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_tTBranch::IsAutoDelete() const
Bool_tIsBranchFolder() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tIsFolder() const
virtual Bool_tIsObjectOwner() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tTAttFill::IsTransparent() const
Bool_tTObject::IsZombie() const
virtual voidTBranch::KeepCircular(Long64_t maxEntries)
virtual Int_tTBranch::LoadBaskets()
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidTAttFill::Modify()
virtual Bool_tNotify()
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
voidPrintValue(Int_t i) const
virtual Int_tTObject::Read(const char* name)
virtual voidTBranch::ReadBasket(TBuffer& b)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual voidTBranch::Refresh(TBranch* b)
virtual voidReset(Option_t* option = "")
virtual voidResetAddress()
virtual voidResetAfterMerge(TFileMergeInfo*)
virtual voidTAttFill::ResetAttFill(Option_t* option = "")
voidTObject::ResetBit(UInt_t f)
static voidTBranch::ResetCount()
virtual voidResetDeleteObject()
virtual voidTBranch::ResetReadEntry()
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* addobj)
virtual voidTBranch::SetAutoDelete(Bool_t autodel = kTRUE)
virtual voidSetBasketSize(Int_t buffsize)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidSetBranchFolder()
virtual voidTBranch::SetBufferAddress(TBuffer* entryBuffer)
virtual voidSetClassName(const char* name)
voidTBranch::SetCompressionAlgorithm(Int_t algorithm = 0)
voidTBranch::SetCompressionLevel(Int_t level = 1)
voidTBranch::SetCompressionSettings(Int_t settings = 1)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTBranch::SetEntries(Long64_t entries)
virtual voidTBranch::SetEntryOffsetLen(Int_t len, Bool_t updateSubBranches = kFALSE)
virtual voidTBranch::SetFile(TFile* file = 0)
virtual voidTBranch::SetFile(const char* filename)
virtual voidTAttFill::SetFillAttributes()MENU
virtual voidTAttFill::SetFillColor(Color_t fcolor)
virtual voidTAttFill::SetFillColorAlpha(Color_t fcolor, Float_t falpha)
virtual voidTAttFill::SetFillStyle(Style_t fstyle)
virtual voidTBranch::SetFirstEntry(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)
voidSetParentClass(TClass* clparent)
virtual voidSetParentName(const char* name)
virtual voidTBranch::SetStatus(Bool_t status = 1)
virtual voidSetTargetClass(const char* name)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTBranch::SetTree(TTree* tree)
virtual voidSetType(Int_t btype)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidSetupAddresses()
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_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 voidTBranch::UpdateAddress()
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:
voidBuildTitle(const char* name)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidFillLeavesAssociativeCollectionMember(TBuffer& b)
voidFillLeavesClones(TBuffer& b)
voidFillLeavesClonesMember(TBuffer& b)
voidFillLeavesCollection(TBuffer& b)
voidFillLeavesCollectionMember(TBuffer& b)
voidFillLeavesCollectionSplitPtrMember(TBuffer& b)
voidFillLeavesCollectionSplitVectorPtrMember(TBuffer& b)
voidFillLeavesCustomStreamer(TBuffer& b)
voidFillLeavesImpl(TBuffer& b)
voidFillLeavesMakeClass(TBuffer& b)
voidFillLeavesMember(TBuffer& b)
voidFillLeavesMemberBranchCount(TBuffer& b)
voidFillLeavesMemberCounter(TBuffer& b)
TBasket*TBranch::GetFreshBasket()
TStreamerInfo*GetInfoImp() const
TClass*GetParentClass()
TStringTBranch::GetRealFileName() const
voidInit(TTree* tree, TBranch* parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
voidInit(TTree* tree, TBranch* parent, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
voidInit(TTree* tree, TBranch* parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0)
virtual voidInitializeOffsets()
virtual voidInitInfo()
Bool_tIsMissingCollection() const
voidTObject::MakeZombie()
voidTBranch::ReadLeaves0Impl(TBuffer& b)
voidTBranch::ReadLeaves1Impl(TBuffer& b)
voidTBranch::ReadLeaves2Impl(TBuffer& b)
voidReadLeavesClones(TBuffer& b)
voidReadLeavesClonesMember(TBuffer& b)
voidReadLeavesCollection(TBuffer& b)
voidReadLeavesCollectionMember(TBuffer& b)
voidReadLeavesCollectionSplitPtrMember(TBuffer& b)
voidReadLeavesCollectionSplitVectorPtrMember(TBuffer& b)
voidReadLeavesCustomStreamer(TBuffer& b)
voidReadLeavesImpl(TBuffer& b)
voidReadLeavesMakeClass(TBuffer& b)
voidReadLeavesMember(TBuffer& b)
voidReadLeavesMemberBranchCount(TBuffer& b)
voidReadLeavesMemberCounter(TBuffer& b)
voidReleaseObject()
voidSetBranchCount(TBranchElement* bre)
voidSetBranchCount2(TBranchElement* bre)
voidSetFillActionSequence()
voidSetFillLeavesPtr()
voidSetReadActionSequence()
voidSetReadLeavesPtr()
voidTBranch::SetSkipZip(Bool_t skip = kTRUE)
voidSetupAddressesImpl()
Int_tUnroll(const char* name, TClass* cltop, TClass* cl, char* ptr, Int_t basketsize, Int_t splitlevel, Int_t btype)
voidValidateAddress() const
Int_tTBranch::WriteBasket(TBasket* basket, Int_t where)

Data Members

public:
enum { kBranchFolder
kDeleteObject
kCache
kOwnOnfileObj
kAddressSet
kMakeClass
kDecomposedObj
};
enum EBranchElementType { kLeafNode
kBaseClassNode
kObjectNode
kClonesNode
kSTLNode
kClonesMemberNode
kSTLMemberNode
};
enum TBranch::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*TBranch::fAddress! Address of 1st leaf (variable or object)
Int_t*TBranch::fBasketBytes[fMaxBaskets] Length of baskets on file
Long64_t*TBranch::fBasketEntry[fMaxBaskets] Table of first entry in eack basket
Long64_t*TBranch::fBasketSeek[fMaxBaskets] Addresses of baskets on file
Int_tTBranch::fBasketSizeInitial Size of Basket Buffer
TObjArrayTBranch::fBaskets-> List of baskets of this branch
TClassReffBranchClass! Reference to class definition in fClassName
TBranchElement*fBranchCountpointer to primary branchcount branch
TBranchElement*fBranchCount2pointer to secondary branchcount branch
Int_tfBranchID! ID number assigned by a TRefTable.
Int_t*fBranchOffset! Sub-Branch offsets with respect to current transient class
TObjArrayTBranch::fBranches-> List of Branches of this branch
TList*TBranch::fBrowsables! List of TVirtualBranchBrowsables used for Browse()
UInt_tfCheckSumCheckSum of class
TStringfClassNameClass name of referenced object
Int_tfClassVersionVersion number of class
TClassReffClonesClass! Reference to class definition in fClonesName
TStringfClonesNameName of class in TClonesArray (if any)
TVirtualCollectionProxy*fCollProxy! collection interface (if any)
Int_tTBranch::fCompressCompression level and algorithm
TBasket*TBranch::fCurrentBasket! Pointer to the current basket.
TClassReffCurrentClass! Reference to current (transient) class definition
TDirectory*TBranch::fDirectory! Pointer to directory where this branch buffers are stored
Long64_tTBranch::fEntriesNumber of entries
TBuffer*TBranch::fEntryBuffer! Buffer used to directly pass the content without streaming
Long64_tTBranch::fEntryNumberCurrent entry number (last one filled in this branch)
Int_tTBranch::fEntryOffsetLenInitial Length of fEntryOffset table in the basket buffers
TStringTBranch::fFileNameName of file where buffers are stored ("" if in same file as Tree header)
TStreamerInfoActions::TActionSequence*fFillActionSequence! Set of actions to be executed to write the data to the basket.
Color_tTAttFill::fFillColorfill area color
G__p2memfuncTBranch::fFillLeaves! Pointer to the FillLeaves implementation to use.
Style_tTAttFill::fFillStylefill area style
Long64_tTBranch::fFirstBasketEntry! First entry in the current basket.
Long64_tTBranch::fFirstEntryNumber of the first entry in this branch
Int_tfIDelement serial number in fInfo
vector<Int_t>fIDs! List of the serial number of all the StreamerInfo to be used.
TStreamerInfo*fInfo! Pointer to StreamerInfo
Bool_tfInit! Initialization flag for branch assignment
Bool_tfInitOffsets! Initialization flag to not endlessly recalculate offsets
TVirtualCollectionIterators*fIterators! holds the iterators when the branch is of fType==4.
TObjArrayTBranch::fLeaves-> List of leaves of this branch
Int_tTBranch::fMaxBasketsMaximum number of Baskets so far
Int_tfMaximumMaximum entries for a TClonesArray or variable array
TBranch*TBranch::fMother! Pointer to top-level parent branch in the tree.
Int_tTBranch::fNBaskets! Number of baskets in memory
TStringTNamed::fNameobject identifier
Int_tfNdata! Number of data in this branch
Long64_tTBranch::fNextBasketEntry! Next entry that will requires us to go to the next basket
Int_tTBranch::fNleaves! Number of leaves
char*fObject! Pointer to object at *fAddress
Int_tTBranch::fOffsetOffset of this branch
TVirtualArray*fOnfileObject! Place holder for the onfile representation of data members.
TBranch*TBranch::fParent! Pointer to parent branch.
TClassReffParentClass! Reference to class definition in fParentName
TStringfParentNameName of parent class
TVirtualCollectionPtrIterators*fPtrIterators! holds the iterators when the branch is of fType==4 and it is a split collection of pointers.
TStreamerInfoActions::TActionSequence*fReadActionSequence! Set of actions to be executed to extract the data from the basket.
Int_tTBranch::fReadBasket! Current basket number when reading
Long64_tTBranch::fReadEntry! Current entry number when reading
G__p2memfuncTBranch::fReadLeaves! Pointer to the ReadLeaves implementation to use.
Int_tfSTLtype! STL container type
Bool_tTBranch::fSkipZip! After being read, the buffer will not be unziped.
Int_tTBranch::fSplitLevelBranch split level
Int_tfStreamerTypebranch streamer type
TClassReffTargetClass! Reference to the target in-memory class
TStringTNamed::fTitleobject title
Long64_tTBranch::fTotBytesTotal number of bytes in all leaves before compression
TTree*TBranch::fTree! Pointer to Tree header
Int_tfTypebranch type
Int_tTBranch::fWriteBasketLast basket number written
TVirtualCollectionIterators*fWriteIterators! holds the read (non-staging) iterators when the branch is of fType==4 and associative containers.
Long64_tTBranch::fZipBytesTotal number of bytes in all leaves after compression
static Int_tTBranch::fgCount! branch counter

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void SwitchContainer(TObjArray* )
 -- Modify the container type of the branches
TBranchElement()
 -- Default and I/O constructor.
TBranchElement(TTree* tree, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0)
 -- Constructor when the branch object is not a TClonesArray nor an STL container.

 If splitlevel > 0 this branch in turn is split into sub-branches.
TBranchElement(TBranch* parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0)
 -- Constructor when the branch object is not a TClonesArray nor an STL container.

 If splitlevel > 0 this branch in turn is split into sub-branches.
void Init(TTree* tree, TBranch* parent, const char* name, TStreamerInfo* sinfo, Int_t id, char* pointer, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t btype = 0)
 -- Init when the branch object is not a TClonesArray nor an STL container.

 If splitlevel > 0 this branch in turn is split into sub-branches.
TBranchElement(TTree* tree, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
 -- Constructor when the branch object is a TClonesArray.

 If splitlevel > 0 this branch in turn is split into sub branches.
TBranchElement(TBranch* parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
 -- Constructor when the branch object is a TClonesArray.

 If splitlevel > 0 this branch in turn is split into sub branches.
void Init(TTree* tree, TBranch* parent, const char* name, TClonesArray* clones, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
 -- Init when the branch object is a TClonesArray.

 If splitlevel > 0 this branch in turn is split into sub branches.
TBranchElement(TTree* tree, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
 -- Constructor when the branch object is an STL collection.

 If splitlevel > 0 this branch in turn is split into sub branches.
TBranchElement(TBranch* parent, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
 -- Constructor when the branch object is an STL collection.

 If splitlevel > 0 this branch in turn is split into sub branches.
void Init(TTree* tree, TBranch* parent, const char* name, TVirtualCollectionProxy* cont, Int_t basketsize = 32000, Int_t splitlevel = 0, Int_t compress = -1)
 -- Init when the branch object is an STL collection.

 If splitlevel > 0 this branch in turn is split into sub branches.
~TBranchElement()
 -- Destructor.
TStreamerInfo* GetInfoImp() const
 -- Get streamer info for the branch class.
TStreamerInfo* GetInfo() const
 -- Get streamer info for the branch class.
void Browse(TBrowser* b)
 -- Browse the branch content.
void BuildTitle(const char* name)
 -- Set branch and leaf name and title in the case of a container sub-branch.
Int_t Fill()
 -- Loop on all leaves of this branch to fill the basket buffer.

 The function returns the number of bytes committed to the
 individual branches.  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.

 Note: We not not use any member functions from TLeafElement!
void FillLeavesMakeClass(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 For the case where the branch is set in MakeClass mode (decomposed object).
void FillLeavesCollection(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a collection (fType == 4).
void FillLeavesCollectionSplitVectorPtrMember(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a data member within a collection (fType == 41).
void FillLeavesCollectionSplitPtrMember(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a data member within a collection (fType == 41).
void FillLeavesCollectionMember(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a data member within a collection (fType == 41).
void FillLeavesAssociativeCollectionMember(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a data member within a collection (fType == 41).
void FillLeavesClones(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a TClonesArray (fType == 3).
void FillLeavesClonesMember(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a data member within a TClonesArray (fType == 31).
void FillLeavesCustomStreamer(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 Case of a non  TObject, non collection class with a custom streamer
void FillLeavesMemberBranchCount(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 For split-class branch, base class branch, data member branch, or top-level branch.
 which do have a branch count and are not a counter.
void FillLeavesMemberCounter(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 For split-class branch, base class branch, data member branch, or top-level branch.
 which do not have a branch count and are a counter.
void FillLeavesMember(TBuffer& b)
 -- Write leaves into i/o buffers for this branch.
 For split-class branch, base class branch, data member branch, or top-level branch.
 which do not have a branch count and are not a counter.
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'.
char* GetAddress() const
 -- Get the branch address.

 If we are *not* owned by a MakeClass() tree:

      If we are a top-level branch, return a pointer
      to the pointer to our object.

      If we are *not* a top-level branch, return a pointer
      to our object.

 If we are owned by a MakeClass() tree:

      Return a pointer to our object.

void InitInfo()
 -- Init the streamer info for the branch class, try to compensate for class code unload/reload and schema evolution.
TVirtualCollectionProxy* GetCollectionProxy()
 -- Return the collection proxy describing the branch content, if any.
TClass* GetCurrentClass()
 -- Return a pointer to the current type of the data member corresponding to branch element.
Int_t GetEntry(Long64_t entry = 0, Int_t getall = 0)
 -- Read all branches of a BranchElement and return total number of bytes.

 If entry = 0, then use current entry number + 1.
 If entry < 0, then reset entry number to 0.

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

 See IMPORTANT REMARKS in TTree::GetEntry.

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.
const char* GetIconName() const
 -- Return icon name depending on type of branch element.
Bool_t GetMakeClass() const
 Return whether this branch is in a mode where the object are decomposed
 or not (Also known as MakeClass mode).
Int_t GetMaximum() const
 -- Return maximum count value of the branchcount if any.
char* GetObject() const
 -- Return a pointer to our object.
TClass* GetParentClass()
 -- Return a pointer to the parent class of the branch element.
const char* GetTypeName() const
 -- Return type name of element in the branch.
void* GetValuePointer() const
 -- Returns pointer to first data element of this branch.
 Currently used only for members of type character.
void InitializeOffsets()
 -- Initialize the base class subobjects offsets of our sub-branches and set fOffset if we are a container sub-branch.

 Note: The offsets are zero for data members so that when
       SetAddress recursively sets their address, they will get the
       same address as their containing class because i/o is based
       on streamer info offsets from the addresss of the containing
       class.

       Offsets are non-zero for base-class sub-branches that are
       not the leftmost direct base class.  They are laid out in
       memory sequentially and only the leftmost direct base class
       has the same address as the derived class.  The streamer
       offsets need to be added to the address of the base class
       subobject which is not the same as the address of the
       derived class for the non-leftmost direct base classes.
Bool_t IsFolder() const
 -- Return kTRUE if more than one leaf, kFALSE otherwise.
Bool_t IsMissingCollection() const
 -- Detect a collection written using a zero pointer in old versions of root.
 In versions of ROOT older than 4.00/03, if a collection (TClonesArray
 or STL container) was split but the pointer to the collection was zeroed
 out, nothing was saved.  Hence there is no __easy__ way to detect the
 case.  In newer versions, a zero is written so that a 'missing' collection
 appears to be an empty collection.
void Print(Option_t* option = "") const
 Print branch parameters.
void PrintValue(Int_t i) const
 -- Prints values of leaves.
void ReadLeavesImpl(TBuffer& b)
 -- Unconfiguration Read Leave function.
void ReadLeavesMakeClass(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 For the case where the branch is set in MakeClass mode (decomposed object).
void ReadLeavesCollection(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 Case of a collection (fType == 4).
void ReadLeavesCollectionSplitPtrMember(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 Case of a data member within a collection (fType == 41).
void ReadLeavesCollectionSplitVectorPtrMember(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 Case of a data member within a collection (fType == 41).
void ReadLeavesCollectionMember(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 Case of a data member within a collection (fType == 41).
void ReadLeavesClones(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 Case of a TClonesArray (fType == 3).
void ReadLeavesClonesMember(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 Case of a data member within a TClonesArray (fType == 31).
void ReadLeavesMember(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 For split-class branch, base class branch, data member branch, or top-level branch.
 which do not have a branch count and are not a counter.
void ReadLeavesMemberBranchCount(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 For split-class branch, base class branch, data member branch, or top-level branch.
 which do have a branch count and are not a counter.
void ReadLeavesMemberCounter(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 For split-class branch, base class branch, data member branch, or top-level branch.
 which do not have a branch count and are a counter.
void ReadLeavesCustomStreamer(TBuffer& b)
 -- Read leaves into i/o buffers for this branch.
 Non TObject, Non collection classes with a custom streamer.
void FillLeavesImpl(TBuffer& b)
 -- Unconfiguration Fill Leave function.
void ReleaseObject()
 -- Delete any object we may have allocated on a previous call to SetAddress.
void Reset(Option_t* option = "")
 Reset a Branch.

 Existing i/o buffers are deleted.
 Entries, max and min are reset.

void ResetAfterMerge(TFileMergeInfo* )
 Reset a Branch after a Merge operation (drop data but keep customizations)

void ResetAddress()
 Set branch address to zero and free all allocated memory.
void ResetDeleteObject()
 -- Release ownership of any allocated objects.

 Note: This interface was added so that clone trees could
       be told they do not own the allocated objects.
void SetAddress(void* addobj)
 -- Point this branch at an object.

 For a sub-branch, addr is a pointer to the branch object.

 For a top-level branch the meaning of addr is as follows:

 If addr is zero, then we allocate a branch object
 internally and the branch is the owner of the allocated
 object, not the caller.  However the caller may obtain
 a pointer to the branch object with GetObject().

 Example:

    branch->SetAddress(0);
    Event* event = branch->GetObject();
    ... Do some work.

 If addr is not zero, but the pointer addr points at is
 zero, then we allocate a branch object and set the passed
 pointer to point at the allocated object.  The caller
 owns the allocated object and is responsible for deleting
 it when it is no longer needed.

 Example:

    Event* event = 0;
    branch->SetAddress(&event);
    ... Do some work.
    delete event;
    event = 0;

 If addr is not zero and the pointer addr points at is
 also not zero, then the caller has allocated a branch
 object and is asking us to use it.  The caller owns it
 and must delete it when it is no longer needed.

 Example:

    Event* event = new Event();
    branch->SetAddress(&event);
    ... Do some work.
    delete event;
    event = 0;

 These rules affect users of TTree::Branch(),
 TTree::SetBranchAddress(), and TChain::SetBranchAddress()
 as well because those routines call this one.

 An example of a tree with branches with objects allocated
 and owned by us:

    TFile* f1 = new TFile("myfile_original.root");
    TTree* t1 = (TTree*) f->Get("MyTree");
    TFile* f2 = new TFile("myfile_copy.root", "recreate");
    TTree* t2 = t1->Clone(0);
    for (Int_t i = 0; i < 10; ++i) {
       t1->GetEntry(i);
       t2->Fill();
    }
    t2->Write()
    delete f2;
    f2 = 0;
    delete f1;
    f1 = 0;

 An example of a branch with an object allocated by us,
 but owned by the caller:

    TFile* f = new TFile("myfile.root", "recreate");
    TTree* t = new TTree("t", "A test tree.")
    Event* event = 0;
    TBranchElement* br = t->Branch("event.", &event);
    for (Int_t i = 0; i < 10; ++i) {
       ... Fill event with meaningful data in some way.
       t->Fill();
    }
    t->Write();
    delete event;
    event = 0;
    delete f;
    f = 0;

 Notice that the only difference between this example
 and the following example is that the event pointer
 is zero when the branch is created.

 An example of a branch with an object allocated and
 owned by the caller:

    TFile* f = new TFile("myfile.root", "recreate");
    TTree* t = new TTree("t", "A test tree.")
    Event* event = new Event();
    TBranchElement* br = t->Branch("event.", &event);
    for (Int_t i = 0; i < 10; ++i) {
       ... Fill event with meaningful data in some way.
       t->Fill();
    }
    t->Write();
    delete event;
    event = 0;
    delete f;
    f = 0;

 If AutoDelete is on (see TBranch::SetAutoDelete),
 the top level objet will be deleted and recreate
 each time an entry is read, whether or not the
 TTree owns the object.

void SetBasketSize(Int_t buffsize)
 -- Reset the basket size for all sub-branches of this branch element.
void SetBranchCount(TBranchElement* bre)
 -- Set the branch counter for this branch.
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 SetOffset(Int_t offset)
 Set offset of the object (to which the data member represented by this
 branch belongs) inside its containing object (if any).
void SetReadActionSequence()
 Set the sequence of actions needed to read the data out of the buffer.
void SetReadLeavesPtr()
 Set the ReadLeaves pointer to execute the expected operations.
void SetFillActionSequence()
 Set the sequence of actions needed to write the data out from the buffer.
void SetFillLeavesPtr()
 Set the FillLeaves pointer to execute the expected operations.
void SetTargetClass(const char* name)
 Set the name of the class of the in-memory object into which the data will
 loaded.
void SetupAddresses()
 -- If the branch address is not set,  we set all addresses starting with
 the top level parent branch.  This is required to be done in order for
 GetOffset to be correct and for GetEntry to run.
void SetupAddressesImpl()
 -- If the branch address is not set,  we set all addresses starting with
 the top level parent branch.  This is required to be done in order for
 GetOffset to be correct and for GetEntry to run.
void Streamer(TBuffer& )
 -- Stream an object of class TBranchElement.
Int_t Unroll(const char* name, TClass* cltop, TClass* cl, char* ptr, Int_t basketsize, Int_t splitlevel, Int_t btype)
 -- Split class cl into sub-branches of this branch.

 Create a sub-branch of this branch for each non-empty,
 non-abstract base class of cl (unless we are a sub-branch
 of a TClonesArray or an STL container, in which case we
 do *not* create a sub-branch), and for each non-split data
 member of cl.

 Note: We do *not* create sub-branches for base classes of cl
       if we are a sub-branch of a TClonesArray or an STL container.

 Note: We do *not* create sub-branches for data members which
       have a class type and which we are splitting.

 Note: The above rules imply that the branch heirarchy increases
       in depth only for base classes of cl (unless we are inside
       of a TClonesArray or STL container, in which case the depth
       does *not* increase, the base class is elided) and for
       TClonesArray or STL container data members (which have one
       additional level of sub-branches).  The only other way the
       depth increases is when the top-level branch has a split
       class data member, in that case the constructor will create
       a sub-branch for it.  In other words, the interior nodes of
       the branch tree are all either: base class nodes; split
       class nodes which are direct sub-branches of top-level nodes
       (created by TClass::Bronch usually); or TClonesArray or STL
       container master nodes.

 Note: The exception to the above is for the top-level branches,
       Tree::Bronch creates nodes for everything in that case,
       except for a TObject base class of a class which has the
       can ignore tobject streamer flag set.
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.
void SetParentClass(TClass* clparent)
void ValidateAddress() const
 Check to see if the user changed the object pointer without telling us.
TBranchElement(const TBranchElement& )
 Not implemented
TBranchElement& operator=(const TBranchElement& )
void SetBranchCount2(TBranchElement* bre)
{ fBranchCount2 = bre; }
TBranchElement * GetBranchCount() const
{ return fBranchCount; }
TBranchElement * GetBranchCount2() const
{ return fBranchCount2; }
Int_t * GetBranchOffset() const
{ return fBranchOffset; }
UInt_t GetCheckSum()
{ return fCheckSum; }
const char * GetClassName() const
{ return fClassName.Data(); }
TClass * GetClass() const
{ return fBranchClass; }
const char * GetClonesName() const
{ return fClonesName.Data(); }
Int_t GetID() const
{ return fID; }
const char * GetParentName() const
{ return fParentName.Data(); }
Int_t GetNdata() const
{ return fNdata; }
Int_t GetType() const
{ return fType; }
Int_t GetStreamerType() const
{ return fStreamerType; }
TClass * GetTargetClass()
{ return fTargetClass; }
Double_t GetValue(Int_t i, Int_t len, Bool_t subarr = kFALSE) const
{ return GetTypedValue<Double_t>(i, len, subarr); }
Int_t GetClassVersion()
{ return fClassVersion; }
Bool_t IsBranchFolder() const
{ return TestBit(kBranchFolder); }
Bool_t IsObjectOwner() const
{ return TestBit(kDeleteObject); }
Bool_t Notify()
void SetBranchFolder()
void SetClassName(const char* name)
{ fClassName = name; }
void SetParentName(const char* name)
{ fParentName = name; }
void SetType(Int_t btype)
{ fType = btype; }