ROOT  6.06/09
Reference Guide
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Friends | List of all members
TBranchElement Class Reference

A Branch for the case of an object.

Definition at line 52 of file TBranchElement.h.

Public Types

enum  EBranchElementType {
  kLeafNode = 0, kBaseClassNode = 1, kObjectNode = 2, kClonesNode = 3,
  kSTLNode = 4, kClonesMemberNode = 31, kSTLMemberNode = 41
}
 
- Public Types inherited from TObject
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 

Public Member Functions

 TBranchElement ()
 Default and I/O constructor. More...
 
 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. More...
 
 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. More...
 
 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. More...
 
 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. More...
 
 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. More...
 
 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. More...
 
virtual ~TBranchElement ()
 Destructor. More...
 
virtual void Browse (TBrowser *b)
 Browse the branch content. More...
 
virtual Int_t Fill ()
 Loop on all leaves of this branch to fill the 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...
 
virtual char * GetAddress () const
 Get the branch address. More...
 
TBranchElementGetBranchCount () const
 
TBranchElementGetBranchCount2 () const
 
Int_tGetBranchOffset () const
 
UInt_t GetCheckSum ()
 
virtual const char * GetClassName () const
 Return the name of the user class whose content is stored in this branch, if any. More...
 
virtual TClassGetClass () const
 
virtual const char * GetClonesName () const
 
TVirtualCollectionProxyGetCollectionProxy ()
 Return the collection proxy describing the branch content, if any. More...
 
TClassGetCurrentClass ()
 Return a pointer to the current type of the data member corresponding to branch element. More...
 
virtual Int_t GetEntry (Long64_t entry=0, Int_t getall=0)
 Read all branches of a BranchElement and return total number of bytes. More...
 
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...
 
const char * GetIconName () const
 Return icon name depending on type of branch element. More...
 
Int_t GetID () const
 
TStreamerInfoGetInfo () const
 Get streamer info for the branch class. More...
 
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...
 
char * GetObject () const
 Return a pointer to our object. More...
 
virtual const char * GetParentName () const
 
virtual Int_t GetMaximum () const
 Return maximum count value of the branchcount if any. More...
 
Int_t GetNdata () const
 
Int_t GetType () const
 
Int_t GetStreamerType () const
 
virtual TClassGetTargetClass ()
 
virtual const char * GetTypeName () const
 Return type name of element in the branch. More...
 
Double_t GetValue (Int_t i, Int_t len, Bool_t subarr=kFALSE) const
 
template<typename T >
GetTypedValue (Int_t i, Int_t len, Bool_t subarr=kFALSE) const
 
virtual voidGetValuePointer () const
 Returns pointer to first data element of this branch. More...
 
Int_t GetClassVersion ()
 
Bool_t IsBranchFolder () const
 
Bool_t IsFolder () const
 Return kTRUE if more than one leaf, kFALSE otherwise. More...
 
virtual Bool_t IsObjectOwner () const
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
virtual void Print (Option_t *option="") const
 Print branch parameters. More...
 
void PrintValue (Int_t i) const
 Prints values of leaves. More...
 
virtual void Reset (Option_t *option="")
 Reset a Branch. More...
 
virtual void ResetAfterMerge (TFileMergeInfo *)
 Reset a Branch after a Merge operation (drop data but keep customizations) More...
 
virtual void ResetAddress ()
 Set branch address to zero and free all allocated memory. More...
 
virtual void ResetDeleteObject ()
 Release ownership of any allocated objects. More...
 
virtual void SetAddress (void *addobj)
 Point this branch at an object. More...
 
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 SetBasketSize (Int_t buffsize)
 Reset the basket size for all sub-branches of this branch element. More...
 
virtual void SetBranchFolder ()
 
virtual void SetClassName (const char *name)
 
virtual 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). More...
 
void SetParentClass (TClass *clparent)
 
virtual void SetParentName (const char *name)
 
virtual void SetTargetClass (const char *name)
 Set the name of the class of the in-memory object into which the data will loaded. More...
 
virtual void SetupAddresses ()
 If the branch address is not set, we set all addresses starting with the top level parent branch. More...
 
virtual void SetType (Int_t btype)
 
virtual void UpdateFile ()
 Refresh the value of fDirectory (i.e. More...
 
- Public Member Functions inherited from TBranch
 TBranch ()
 
 TBranch (TTree *tree, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=-1)
 Create a Branch as a child of a Tree. More...
 
 TBranch (TBranch *parent, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=-1)
 Create a Branch as a child of another Branch. More...
 
virtual ~TBranch ()
 Destructor. More...
 
virtual void AddBasket (TBasket &b, Bool_t ondisk, Long64_t startEntry)
 Add the basket to this branch. More...
 
virtual void AddLastBasket (Long64_t startEntry)
 Add the start entry of the write basket (not yet created) More...
 
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 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...
 
TBasketGetBasket (Int_t basket)
 Return pointer to basket basketnumber in this Branch. More...
 
Int_tGetBasketBytes () const
 
Long64_tGetBasketEntry () const
 
virtual Long64_t GetBasketSeek (Int_t basket) const
 Return address of basket in the file. More...
 
virtual Int_t GetBasketSize () const
 
virtual TListGetBrowsables ()
 Returns (and, if 0, creates) browsable objects for this branch See TVirtualBranchBrowsable::FillListOfBrowsables. More...
 
Int_t GetCompressionAlgorithm () const
 
Int_t GetCompressionLevel () const
 
Int_t GetCompressionSettings () const
 
TDirectoryGetDirectory () const
 
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...
 
Int_t GetEntryOffsetLen () const
 
Int_t GetEvent (Long64_t entry=0)
 
virtual TLeafGetLeaf (const char *name) const
 Return pointer to the 1st Leaf named name in thisBranch. 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
 
Int_t GetOffset () const
 
Int_t GetReadBasket () const
 
Long64_t GetReadEntry () const
 
Int_t GetWriteBasket () const
 
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...
 
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...
 
Long64_t GetEntryNumber () const
 
Long64_t GetFirstEntry () const
 
TObjArrayGetListOfBaskets ()
 
TObjArrayGetListOfBranches ()
 
TObjArrayGetListOfLeaves ()
 
Int_t GetMaxBaskets () const
 
Int_t GetNleaves () const
 
Int_t GetSplitLevel () const
 
Long64_t GetEntries () const
 
TTreeGetTree () const
 
virtual Int_t GetRow (Int_t row)
 Return all elements of one row unpacked in internal array fValues [Actually just returns 1 (?)]. More...
 
TBranchGetMother () const
 Get our top-level parent branch in the tree. More...
 
TBranchGetSubBranch (const TBranch *br) const
 Find the parent branch of child. More...
 
Bool_t IsAutoDelete () const
 Return kTRUE if an existing object in a TBranchObject must be deleted. 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 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 ResetReadEntry ()
 
virtual void SetAutoDelete (Bool_t autodel=kTRUE)
 Set the automatic delete bit. More...
 
virtual void SetBufferAddress (TBuffer *entryBuffer)
 Set address of this branch directly from a TBuffer to avoid streaming. More...
 
void SetCompressionAlgorithm (Int_t algorithm=0)
 Set compression algorithm. More...
 
void SetCompressionLevel (Int_t level=1)
 Set compression level. More...
 
void SetCompressionSettings (Int_t settings=1)
 Set compression settings. More...
 
virtual void SetEntries (Long64_t entries)
 Set the number of entries in this branch. More...
 
virtual void SetEntryOffsetLen (Int_t len, Bool_t updateSubBranches=kFALSE)
 Update the default value for the branch's fEntryOffsetLen if and only if it was already non zero (and the new value is not zero) If updateExisting is true, also update all the existing branches. More...
 
virtual void SetFirstEntry (Long64_t entry)
 set the first entry number (case of TBranchSTL) More...
 
virtual void SetFile (TFile *file=0)
 Set file where this branch writes/reads its buffers. More...
 
virtual void SetFile (const char *filename)
 Set file where this branch writes/reads its buffers. More...
 
virtual void SetStatus (Bool_t status=1)
 Set branch status to Process or DoNotProcess. More...
 
virtual void SetTree (TTree *tree)
 
virtual void UpdateAddress ()
 
 ClassDef (TBranch, 12)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TString &name, const TString &title)
 
 TNamed (const TNamed &named)
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual ~TNamed ()
 
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 SetName (const char *name)
 Change (i.e. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Change (i.e. set) all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Change (i.e. set) the title of the TNamed. More...
 
virtual void ls (Option_t *option="") const
 List TNamed name and title. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current pad. More...
 
virtual void Dump () const
 Dump contents of object on stdout. 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 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 UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Option_tGetOption () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. 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...
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
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...
 
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 UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. 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...
 
voidoperator new (size_t sz)
 
voidoperator new[] (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz, void *vp)
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
void ResetBit (UInt_t f)
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
void InvertBit (UInt_t f)
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. 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...
 
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...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 
 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
 
virtual Style_t GetFillStyle () const
 
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)
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 

Protected Types

enum  {
  kBranchFolder = BIT(14), kDeleteObject = BIT(16), kCache = BIT(18), kOwnOnfileObj = BIT(19),
  kAddressSet = BIT(20), kMakeClass = BIT(21), kDecomposedObj = BIT(21)
}
 
- Protected Types inherited from TBranch
enum  EStatusBits { kAutoDelete = BIT(15), kDoNotUseBufferMap = BIT(22) }
 
typedef void(TBranch::* ReadLeaves_t) (TBuffer &b)
 After being read, the buffer will not be unziped. More...
 
typedef void(TBranch::* FillLeaves_t) (TBuffer &b)
 Pointer to the ReadLeaves implementation to use. More...
 

Protected Member Functions

void BuildTitle (const char *name)
 Set branch and leaf name and title in the case of a container sub-branch. More...
 
virtual void InitializeOffsets ()
 Initialize the base class subobjects offsets of our sub-branches and set fOffset if we are a container sub-branch. More...
 
virtual void InitInfo ()
 Init the streamer info for the branch class, try to compensate for class code unload/reload and schema evolution. More...
 
Bool_t IsMissingCollection () const
 Detect a collection written using a zero pointer in old versions of root. More...
 
TClassGetParentClass ()
 Return a pointer to the parent class of the branch element. More...
 
TStreamerInfoGetInfoImp () const
 Get streamer info for the branch class. More...
 
void ReleaseObject ()
 Delete any object we may have allocated on a previous call to SetAddress. More...
 
void SetBranchCount (TBranchElement *bre)
 Set the branch counter for this branch. More...
 
void SetBranchCount2 (TBranchElement *bre)
 
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. More...
 
void ValidateAddress () const
 
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. More...
 
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. More...
 
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. More...
 
void ReadLeavesImpl (TBuffer &b)
 Unconfiguration Read Leave function. More...
 
void ReadLeavesMakeClass (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesCollection (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesCollectionSplitPtrMember (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesCollectionSplitVectorPtrMember (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesCollectionMember (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesClones (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesClonesMember (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesCustomStreamer (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesMember (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesMemberBranchCount (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void ReadLeavesMemberCounter (TBuffer &b)
 Read leaves into i/o buffers for this branch. More...
 
void SetReadLeavesPtr ()
 Set the ReadLeaves pointer to execute the expected operations. More...
 
void SetReadActionSequence ()
 Set the sequence of actions needed to read the data out of the buffer. More...
 
void SetupAddressesImpl ()
 If the branch address is not set, we set all addresses starting with the top level parent branch. More...
 
void FillLeavesImpl (TBuffer &b)
 Unconfiguration Fill Leave function. More...
 
void FillLeavesMakeClass (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesCollection (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesCollectionSplitVectorPtrMember (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesCollectionSplitPtrMember (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesCollectionMember (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesAssociativeCollectionMember (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesClones (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesClonesMember (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesCustomStreamer (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesMemberBranchCount (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesMemberCounter (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void FillLeavesMember (TBuffer &b)
 Write leaves into i/o buffers for this branch. More...
 
void SetFillLeavesPtr ()
 Set the FillLeaves pointer to execute the expected operations. More...
 
void SetFillActionSequence ()
 Set the sequence of actions needed to write the data out from the buffer. More...
 
- Protected Member Functions inherited from TBranch
void ReadLeavesImpl (TBuffer &b)
 Pointer to the FillLeaves implementation to use. More...
 
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 FillLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to fill Basket buffer. More...
 
void SetSkipZip (Bool_t skip=kTRUE)
 
void Init (const char *name, const char *leaflist, Int_t compress)
 
TBasketGetFreshBasket ()
 Return a fresh basket by either resusing an existing basket that needs to be drop (according to TTree::MemoryFull) or create a new one. More...
 
Int_t WriteBasket (TBasket *basket, Int_t where)
 Write the current basket to disk and return the number of bytes written to the file. More...
 
TString GetRealFileName () const
 Get real file name. More...
 
- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 

Protected Attributes

TString fClassName
 
TString fParentName
 
TString fClonesName
 
TVirtualCollectionProxyfCollProxy
 
UInt_t fCheckSum
 collection interface (if any) More...
 
Version_t fClassVersion
 
Int_t fID
 
Int_t fType
 
Int_t fStreamerType
 
Int_t fMaximum
 
Int_t fSTLtype
 
Int_t fNdata
 STL container type. More...
 
TBranchElementfBranchCount
 Number of data in this branch. More...
 
TBranchElementfBranchCount2
 
TStreamerInfofInfo
 
char * fObject
 Pointer to StreamerInfo. More...
 
TVirtualArrayfOnfileObject
 Pointer to object at *fAddress. More...
 
Bool_t fInit
 Place holder for the onfile representation of data members. More...
 
Bool_t fInitOffsets
 Initialization flag for branch assignment. More...
 
TClassRef fTargetClass
 Initialization flag to not endlessly recalculate offsets. More...
 
TClassRef fCurrentClass
 Reference to the target in-memory class. More...
 
TClassRef fParentClass
 Reference to current (transient) class definition. More...
 
TClassRef fBranchClass
 Reference to class definition in fParentName. More...
 
TClassRef fClonesClass
 Reference to class definition in fClassName. More...
 
Int_tfBranchOffset
 Reference to class definition in fClonesName. More...
 
Int_t fBranchID
 Sub-Branch offsets with respect to current transient class. More...
 
std::vector< Int_tfIDs
 ID number assigned by a TRefTable. More...
 
TStreamerInfoActions::TActionSequencefReadActionSequence
 List of the serial number of all the StreamerInfo to be used. More...
 
TStreamerInfoActions::TActionSequencefFillActionSequence
 Set of actions to be executed to extract the data from the basket. More...
 
TVirtualCollectionIteratorsfIterators
 Set of actions to be executed to write the data to the basket. More...
 
TVirtualCollectionIteratorsfWriteIterators
 holds the iterators when the branch is of fType==4. More...
 
TVirtualCollectionPtrIteratorsfPtrIterators
 holds the read (non-staging) iterators when the branch is of fType==4 and associative containers. More...
 
- Protected Attributes inherited from TBranch
Int_t fCompress
 branch counter More...
 
Int_t fBasketSize
 
Int_t fEntryOffsetLen
 
Int_t fWriteBasket
 
Long64_t fEntryNumber
 
Int_t fOffset
 
Int_t fMaxBaskets
 
Int_t fNBaskets
 
Int_t fSplitLevel
 Number of baskets in memory. More...
 
Int_t fNleaves
 
Int_t fReadBasket
 Number of leaves. More...
 
Long64_t fReadEntry
 Current basket number when reading. More...
 
Long64_t fFirstBasketEntry
 Current entry number when reading. More...
 
Long64_t fNextBasketEntry
 First entry in the current basket. More...
 
TBasketfCurrentBasket
 Next entry that will requires us to go to the next basket. More...
 
Long64_t fEntries
 Pointer to the current basket. More...
 
Long64_t fFirstEntry
 
Long64_t fTotBytes
 
Long64_t fZipBytes
 
TObjArray fBranches
 
TObjArray fLeaves
 
TObjArray fBaskets
 
Int_tfBasketBytes
 
Long64_tfBasketEntry
 
Long64_tfBasketSeek
 
TTreefTree
 
TBranchfMother
 Pointer to Tree header. More...
 
TBranchfParent
 Pointer to top-level parent branch in the tree. More...
 
char * fAddress
 Pointer to parent branch. More...
 
TDirectoryfDirectory
 Address of 1st leaf (variable or object) More...
 
TString fFileName
 Pointer to directory where this branch buffers are stored. More...
 
TBufferfEntryBuffer
 
TListfBrowsables
 Buffer used to directly pass the content without streaming. More...
 
Bool_t fSkipZip
 List of TVirtualBranchBrowsables used for Browse() More...
 
ReadLeaves_t fReadLeaves
 
FillLeaves_t fFillLeaves
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 
Style_t fFillStyle
 

Private Member Functions

 TBranchElement (const TBranchElement &)
 holds the iterators when the branch is of fType==4 and it is a split collection of pointers. More...
 
TBranchElementoperator= (const TBranchElement &)
 

Static Private Member Functions

static void SwitchContainer (TObjArray *)
 Modify the container type of the branches. More...
 

Friends

class TTreeCloner
 

Additional Inherited Members

- Static Public Member Functions inherited from TBranch
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 void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 
- Static Protected Attributes inherited from TBranch
static Int_t fgCount = 0
 

#include <TBranchElement.h>

+ Inheritance diagram for TBranchElement:
+ Collaboration diagram for TBranchElement:

Member Enumeration Documentation

anonymous enum
protected
Enumerator
kBranchFolder 
kDeleteObject 
kCache 
kOwnOnfileObj 
kAddressSet 
kMakeClass 
kDecomposedObj 

Definition at line 59 of file TBranchElement.h.

Enumerator
kLeafNode 
kBaseClassNode 
kObjectNode 
kClonesNode 
kSTLNode 
kClonesMemberNode 
kSTLMemberNode 

Definition at line 228 of file TBranchElement.h.

Constructor & Destructor Documentation

TBranchElement::TBranchElement ( const TBranchElement )
private

holds the iterators when the branch is of fType==4 and it is a split collection of pointers.

TBranchElement::TBranchElement ( )

Default and I/O constructor.

Definition at line 141 of file TBranchElement.cxx.

Referenced by Unroll().

TBranchElement::TBranchElement ( TTree tree,
const char *  bname,
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.

Definition at line 185 of file TBranchElement.cxx.

TBranchElement::TBranchElement ( TTree tree,
const char *  bname,
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.

Definition at line 653 of file TBranchElement.cxx.

TBranchElement::TBranchElement ( TTree tree,
const char *  bname,
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.

Definition at line 797 of file TBranchElement.cxx.

TBranchElement::TBranchElement ( TBranch parent,
const char *  bname,
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.

Definition at line 227 of file TBranchElement.cxx.

TBranchElement::TBranchElement ( TBranch parent,
const char *  bname,
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.

Definition at line 677 of file TBranchElement.cxx.

TBranchElement::TBranchElement ( TBranch parent,
const char *  bname,
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.

Definition at line 820 of file TBranchElement.cxx.

TBranchElement::~TBranchElement ( )
virtual

Destructor.

Definition at line 949 of file TBranchElement.cxx.

Member Function Documentation

void TBranchElement::Browse ( TBrowser b)
virtual

Browse the branch content.

Reimplemented from TBranch.

Definition at line 1006 of file TBranchElement.cxx.

void TBranchElement::BuildTitle ( const char *  name)
protected

Set branch and leaf name and title in the case of a container sub-branch.

Definition at line 1118 of file TBranchElement.cxx.

Referenced by BuildTitle(), and Init().

Int_t TBranchElement::Fill ( )
virtual

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!

Reimplemented from TBranch.

Definition at line 1195 of file TBranchElement.cxx.

Referenced by Fill().

void TBranchElement::FillLeavesAssociativeCollectionMember ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a data member within a collection (fType == 41).

Definition at line 1527 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesClones ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a TClonesArray (fType == 3).

Definition at line 1558 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesClonesMember ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a data member within a TClonesArray (fType == 31).

Definition at line 1583 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesCollection ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a collection (fType == 4).

Definition at line 1392 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesCollectionMember ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a data member within a collection (fType == 41).

Definition at line 1496 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesCollectionSplitPtrMember ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a data member within a collection (fType == 41).

Definition at line 1465 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesCollectionSplitVectorPtrMember ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a data member within a collection (fType == 41).

Definition at line 1435 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesCustomStreamer ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a non TObject, non collection class with a custom streamer

Definition at line 1612 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesImpl ( TBuffer b)
protected

Unconfiguration Fill Leave function.

Definition at line 4148 of file TBranchElement.cxx.

Referenced by Init(), and TBranchElement().

void TBranchElement::FillLeavesMakeClass ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

For the case where the branch is set in MakeClass mode (decomposed object).

Definition at line 1286 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesMember ( TBuffer b)
protected

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.

Definition at line 1700 of file TBranchElement.cxx.

Referenced by FillLeavesMemberBranchCount(), and SetFillLeavesPtr().

void TBranchElement::FillLeavesMemberBranchCount ( TBuffer b)
protected

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.

Definition at line 1642 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

void TBranchElement::FillLeavesMemberCounter ( TBuffer b)
protected

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.

Definition at line 1663 of file TBranchElement.cxx.

Referenced by SetFillLeavesPtr().

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

Find the immediate sub-branch with passed name.

Reimplemented from TBranch.

Definition at line 1753 of file TBranchElement.cxx.

Referenced by Browse(), and FindBranch().

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

Find the leaf corresponding to the name 'searchname'.

Reimplemented from TBranch.

Definition at line 1838 of file TBranchElement.cxx.

char * TBranchElement::GetAddress ( ) const
virtual

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.

Reimplemented from TBranch.

Definition at line 1889 of file TBranchElement.cxx.

Referenced by TTreeFormula::BranchHasMethod(), FillLeavesMakeClass(), TFormLeafInfo::GetObjectAddress(), TTreeFormula::LoadCurrentDim(), TTreeFormula::ParseWithLeaf(), and SetupAddressesImpl().

TBranchElement* TBranchElement::GetBranchCount ( ) const
inline
TBranchElement* TBranchElement::GetBranchCount2 ( ) const
inline
Int_t* TBranchElement::GetBranchOffset ( ) const
inline

Definition at line 179 of file TBranchElement.h.

Referenced by TBranchSTL::Print().

UInt_t TBranchElement::GetCheckSum ( )
inline

Definition at line 180 of file TBranchElement.h.

Referenced by TTree::CheckBranchAddressType(), and InitInfo().

virtual TClass* TBranchElement::GetClass ( ) const
inlinevirtual
virtual const char* TBranchElement::GetClassName ( ) const
inlinevirtual
Int_t TBranchElement::GetClassVersion ( )
inline

Definition at line 203 of file TBranchElement.h.

Referenced by TTree::CheckBranchAddressType().

virtual const char* TBranchElement::GetClonesName ( ) const
inlinevirtual
TVirtualCollectionProxy * TBranchElement::GetCollectionProxy ( )
TClass * TBranchElement::GetCurrentClass ( )

Return a pointer to the current type of the data member corresponding to branch element.

Definition at line 2191 of file TBranchElement.cxx.

Referenced by ROOT::Internal::TTreeReaderArrayBase::GetBranchContentDataType(), ROOT::Internal::TTreeReaderValueBase::GetBranchDataType(), SetAddress(), and PyROOT::TTreeGetAttr().

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

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.

Reimplemented from TBranch.

Definition at line 2262 of file TBranchElement.cxx.

Referenced by ROOT::Internal::TTreeGeneratorBase::GetContainedClassName(), TBranchSTL::GetEntry(), and ROOT::Detail::TBranchProxy::Setup().

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

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

Reimplemented from TBranch.

Definition at line 2354 of file TBranchElement.cxx.

Referenced by ROOT::Internal::TTreeReaderArrayBase::GetBranchContentDataType().

const char * TBranchElement::GetIconName ( ) const
virtual

Return icon name depending on type of branch element.

Reimplemented from TBranch.

Definition at line 2389 of file TBranchElement.cxx.

Int_t TBranchElement::GetID ( ) const
inline
TStreamerInfo * TBranchElement::GetInfo ( ) const
TStreamerInfo * TBranchElement::GetInfoImp ( ) const
inlineprotected
Bool_t TBranchElement::GetMakeClass ( ) const
virtual

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

Reimplemented from TBranch.

Definition at line 2402 of file TBranchElement.cxx.

Int_t TBranchElement::GetMaximum ( ) const
virtual

Return maximum count value of the branchcount if any.

Definition at line 2410 of file TBranchElement.cxx.

Referenced by GetMaximum().

Int_t TBranchElement::GetNdata ( ) const
inline
char * TBranchElement::GetObject ( ) const
TClass * TBranchElement::GetParentClass ( )
protected

Return a pointer to the parent class of the branch element.

Definition at line 2430 of file TBranchElement.cxx.

Referenced by InitializeOffsets(), SetFillActionSequence(), and SetReadActionSequence().

virtual const char* TBranchElement::GetParentName ( ) const
inlinevirtual

Definition at line 193 of file TBranchElement.h.

Referenced by Print().

Int_t TBranchElement::GetStreamerType ( ) const
inline
virtual TClass* TBranchElement::GetTargetClass ( )
inlinevirtual

Definition at line 198 of file TBranchElement.h.

Referenced by PyROOT::TTreeGetAttr().

Int_t TBranchElement::GetType ( ) const
inline
template<typename T >
T TBranchElement::GetTypedValue ( Int_t  i,
Int_t  len,
Bool_t  subarr = kFALSE 
) const

Definition at line 2488 of file TBranchElement.cxx.

const char * TBranchElement::GetTypeName ( ) const
virtual

Return type name of element in the branch.

Definition at line 2438 of file TBranchElement.cxx.

Referenced by ROOT::Internal::TTreeReaderArrayBase::GetBranchContentDataType(), and ROOT::Internal::TTreeReaderValueBase::GetBranchDataType().

Double_t TBranchElement::GetValue ( Int_t  i,
Int_t  len,
Bool_t  subarr = kFALSE 
) const
inline
void * TBranchElement::GetValuePointer ( ) const
virtual

Returns pointer to first data element of this branch.

Currently used only for members of type character.

Definition at line 2590 of file TBranchElement.cxx.

void TBranchElement::Init ( TTree tree,
TBranch parent,
const char *  bname,
TStreamerInfo sinfo,
Int_t  id,
char *  pointer,
Int_t  basketsize = 32000,
Int_t  splitlevel = 0,
Int_t  btype = 0 
)
protected

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.

Definition at line 269 of file TBranchElement.cxx.

Referenced by TBranchElement().

void TBranchElement::Init ( TTree tree,
TBranch parent,
const char *  bname,
TClonesArray clones,
Int_t  basketsize = 32000,
Int_t  splitlevel = 0,
Int_t  compress = -1 
)
protected

Init when the branch object is a TClonesArray.

If splitlevel > 0 this branch in turn is split into sub branches.

Definition at line 701 of file TBranchElement.cxx.

void TBranchElement::Init ( TTree tree,
TBranch parent,
const char *  bname,
TVirtualCollectionProxy cont,
Int_t  basketsize = 32000,
Int_t  splitlevel = 0,
Int_t  compress = -1 
)
protected

Init when the branch object is an STL collection.

If splitlevel > 0 this branch in turn is split into sub branches.

Definition at line 843 of file TBranchElement.cxx.

void TBranchElement::InitializeOffsets ( )
protectedvirtual

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.

Definition at line 2673 of file TBranchElement.cxx.

Referenced by SetAddress().

void TBranchElement::InitInfo ( )
protectedvirtual

Init the streamer info for the branch class, try to compensate for class code unload/reload and schema evolution.

Definition at line 1899 of file TBranchElement.cxx.

Referenced by GetInfoImp().

Bool_t TBranchElement::IsBranchFolder ( ) const
inline

Definition at line 204 of file TBranchElement.h.

Referenced by TTreePlayer::MakeClass().

Bool_t TBranchElement::IsFolder ( ) const
virtual

Return kTRUE if more than one leaf, kFALSE otherwise.

Reimplemented from TBranch.

Definition at line 3273 of file TBranchElement.cxx.

Referenced by GetIconName().

Bool_t TBranchElement::IsMissingCollection ( ) const
protected

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.

Definition at line 3291 of file TBranchElement.cxx.

Referenced by ReadLeavesClones(), ReadLeavesCollection(), and ReadLeavesMakeClass().

virtual Bool_t TBranchElement::IsObjectOwner ( ) const
inlinevirtual

Definition at line 206 of file TBranchElement.h.

virtual Bool_t TBranchElement::Notify ( )
inlinevirtual

This method must be overridden to handle object notification.

Reimplemented from TObject.

Definition at line 207 of file TBranchElement.h.

TBranchElement& TBranchElement::operator= ( const TBranchElement )
private
void TBranchElement::Print ( Option_t option = "") const
virtual

Print branch parameters.

Reimplemented from TBranch.

Definition at line 3331 of file TBranchElement.cxx.

Referenced by TBranchSTL::Print(), and Print().

void TBranchElement::PrintValue ( Int_t  i) const

Prints values of leaves.

Definition at line 3403 of file TBranchElement.cxx.

void TBranchElement::ReadLeavesClones ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a TClonesArray (fType == 3).

Definition at line 3946 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesClonesMember ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a data member within a TClonesArray (fType == 31).

Definition at line 3983 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesCollection ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a collection (fType == 4).

Definition at line 3742 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesCollectionMember ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a data member within a collection (fType == 41).

Definition at line 3913 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesCollectionSplitPtrMember ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a data member within a collection (fType == 41).

Definition at line 3840 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesCollectionSplitVectorPtrMember ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a data member within a collection (fType == 41).

Definition at line 3882 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesCustomStreamer ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Non TObject, Non collection classes with a custom streamer.

Definition at line 4131 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesImpl ( TBuffer b)
protected

Unconfiguration Read Leave function.

Definition at line 3489 of file TBranchElement.cxx.

Referenced by Init(), and TBranchElement().

void TBranchElement::ReadLeavesMakeClass ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

For the case where the branch is set in MakeClass mode (decomposed object).

Definition at line 3498 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesMember ( TBuffer b)
protected

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.

Definition at line 4020 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesMemberBranchCount ( TBuffer b)
protected

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.

Definition at line 4058 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReadLeavesMemberCounter ( TBuffer b)
protected

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.

Definition at line 4095 of file TBranchElement.cxx.

Referenced by SetReadLeavesPtr().

void TBranchElement::ReleaseObject ( )
protected

Delete any object we may have allocated on a previous call to SetAddress.

Definition at line 4156 of file TBranchElement.cxx.

Referenced by ResetAddress(), and SetAddress().

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

Reset a Branch.

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

Reimplemented from TBranch.

Definition at line 4236 of file TBranchElement.cxx.

void TBranchElement::ResetAddress ( )
virtual

Set branch address to zero and free all allocated memory.

Reimplemented from TBranch.

Definition at line 4264 of file TBranchElement.cxx.

Referenced by Notify(), and ~TBranchElement().

void TBranchElement::ResetAfterMerge ( TFileMergeInfo info)
virtual

Reset a Branch after a Merge operation (drop data but keep customizations)

Reimplemented from TBranch.

Definition at line 4251 of file TBranchElement.cxx.

void TBranchElement::ResetDeleteObject ( )
virtual

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.

Definition at line 4298 of file TBranchElement.cxx.

void TBranchElement::SetAddress ( void addr)
virtual

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.

Reimplemented from TBranch.

Definition at line 4419 of file TBranchElement.cxx.

Referenced by TTree::BronchExec(), TBranchSTL::Fill(), TBranchSTL::GetEntry(), GetEntry(), SetObject(), SetupAddressesImpl(), and ValidateAddress().

void TBranchElement::SetBasketSize ( Int_t  buffsize)
virtual

Reset the basket size for all sub-branches of this branch element.

Reimplemented from TBranch.

Definition at line 4951 of file TBranchElement.cxx.

void TBranchElement::SetBranchCount ( TBranchElement bre)
protected

Set the branch counter for this branch.

Definition at line 4964 of file TBranchElement.cxx.

Referenced by BuildTitle(), Init(), and ReadLeavesMakeClass().

void TBranchElement::SetBranchCount2 ( TBranchElement bre)
inlineprotected

Definition at line 121 of file TBranchElement.h.

Referenced by BuildTitle().

virtual void TBranchElement::SetBranchFolder ( )
inlinevirtual

Definition at line 218 of file TBranchElement.h.

Referenced by TTree::Branch().

virtual void TBranchElement::SetClassName ( const char *  name)
inlinevirtual

Definition at line 219 of file TBranchElement.h.

void TBranchElement::SetFillActionSequence ( )
protected

Set the sequence of actions needed to write the data out from the buffer.

Definition at line 5127 of file TBranchElement.cxx.

Referenced by InitInfo(), SetAddress(), and SetFillLeavesPtr().

void TBranchElement::SetFillLeavesPtr ( )
protected

Set the FillLeaves pointer to execute the expected operations.

Definition at line 5174 of file TBranchElement.cxx.

Referenced by BuildTitle(), Init(), InitInfo(), SetAddress(), SetMakeClass(), and SwitchContainer().

Bool_t TBranchElement::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 from TBranch.

Definition at line 4989 of file TBranchElement.cxx.

Referenced by SetMakeClass().

void TBranchElement::SetObject ( void objadd)
virtual

Set object this branch is pointing to.

Reimplemented from TBranch.

Definition at line 5010 of file TBranchElement.cxx.

Referenced by TTree::BronchExec().

void TBranchElement::SetOffset ( Int_t  offset)
virtual

Set offset of the object (to which the data member represented by this branch belongs) inside its containing object (if any).

Reimplemented from TBranch.

Definition at line 5023 of file TBranchElement.cxx.

Referenced by InitializeOffsets().

void TBranchElement::SetParentClass ( TClass clparent)
inline

Definition at line 245 of file TBranchElement.h.

Referenced by TTree::BronchExec(), SetTargetClass(), and Unroll().

virtual void TBranchElement::SetParentName ( const char *  name)
inlinevirtual

Definition at line 222 of file TBranchElement.h.

void TBranchElement::SetReadActionSequence ( )
protected

Set the sequence of actions needed to read the data out of the buffer.

Definition at line 5040 of file TBranchElement.cxx.

Referenced by InitInfo(), SetAddress(), and SetReadLeavesPtr().

void TBranchElement::SetReadLeavesPtr ( )
protected

Set the ReadLeaves pointer to execute the expected operations.

Definition at line 5086 of file TBranchElement.cxx.

Referenced by BuildTitle(), Init(), InitInfo(), SetAddress(), SetMakeClass(), and SwitchContainer().

void TBranchElement::SetTargetClass ( const char *  name)
virtual

Set the name of the class of the in-memory object into which the data will loaded.

Definition at line 5218 of file TBranchElement.cxx.

Referenced by TTree::CheckBranchAddressType(), InitializeOffsets(), SetAddress(), and SetTargetClass().

virtual void TBranchElement::SetType ( Int_t  btype)
inlinevirtual

Definition at line 225 of file TBranchElement.h.

Referenced by BuildTitle(), SetAddress(), SwitchContainer(), and Unroll().

void TBranchElement::SetupAddresses ( )
virtual

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.

Reimplemented from TBranch.

Definition at line 5255 of file TBranchElement.cxx.

Referenced by TTreeFormula::ParseWithLeaf().

void TBranchElement::SetupAddressesImpl ( )
protected

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.

Definition at line 5272 of file TBranchElement.cxx.

Referenced by GetEntry(), and SetupAddresses().

void TBranchElement::SwitchContainer ( TObjArray branches)
staticprivate

Modify the container type of the branches.

Definition at line 93 of file TBranchElement.cxx.

Referenced by SetAddress().

Int_t TBranchElement::Unroll ( const char *  name,
TClass clParent,
TClass cl,
char *  ptr,
Int_t  basketsize,
Int_t  splitlevel,
Int_t  btype 
)
protected

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.

Definition at line 5467 of file TBranchElement.cxx.

Referenced by Init().

void TBranchElement::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 from TBranch.

Definition at line 5671 of file TBranchElement.cxx.

void TBranchElement::ValidateAddress ( ) const
inlineprotected

Friends And Related Function Documentation

friend class TTreeCloner
friend

Definition at line 55 of file TBranchElement.h.

Member Data Documentation

TClassRef TBranchElement::fBranchClass
protected
TBranchElement* TBranchElement::fBranchCount
protected
TBranchElement* TBranchElement::fBranchCount2
protected
Int_t TBranchElement::fBranchID
protected

Sub-Branch offsets with respect to current transient class.

Definition at line 96 of file TBranchElement.h.

Referenced by Fill(), GetEntry(), and Reset().

Int_t* TBranchElement::fBranchOffset
protected

Reference to class definition in fClonesName.

Definition at line 95 of file TBranchElement.h.

Referenced by GetBranchOffset(), Init(), InitializeOffsets(), Print(), SetAddress(), and ~TBranchElement().

UInt_t TBranchElement::fCheckSum
protected

collection interface (if any)

Definition at line 75 of file TBranchElement.h.

Referenced by GetCheckSum(), Init(), and InitInfo().

TString TBranchElement::fClassName
protected

Definition at line 71 of file TBranchElement.h.

Version_t TBranchElement::fClassVersion
protected
TClassRef TBranchElement::fClonesClass
protected

Reference to class definition in fClassName.

Definition at line 94 of file TBranchElement.h.

Referenced by Browse(), FillLeavesMakeClass(), Init(), InitializeOffsets(), and SetAddress().

TString TBranchElement::fClonesName
protected

Definition at line 73 of file TBranchElement.h.

Referenced by GetCollectionProxy(), Init(), and SetAddress().

TVirtualCollectionProxy* TBranchElement::fCollProxy
protected
TClassRef TBranchElement::fCurrentClass
protected

Reference to the target in-memory class.

Definition at line 91 of file TBranchElement.h.

Referenced by GetCurrentClass().

TStreamerInfoActions::TActionSequence* TBranchElement::fFillActionSequence
protected
Int_t TBranchElement::fID
protected
std::vector<Int_t> TBranchElement::fIDs
protected

ID number assigned by a TRefTable.

Definition at line 97 of file TBranchElement.h.

Referenced by InitInfo(), Print(), SetFillActionSequence(), and SetReadActionSequence().

TStreamerInfo* TBranchElement::fInfo
protected
Bool_t TBranchElement::fInit
protected

Place holder for the onfile representation of data members.

Definition at line 88 of file TBranchElement.h.

Referenced by GetInfoImp(), Init(), InitInfo(), and SetTargetClass().

Bool_t TBranchElement::fInitOffsets
protected

Initialization flag for branch assignment.

Definition at line 89 of file TBranchElement.h.

Referenced by Init(), InitializeOffsets(), SetAddress(), and SetTargetClass().

TVirtualCollectionIterators* TBranchElement::fIterators
protected
Int_t TBranchElement::fMaximum
protected
Int_t TBranchElement::fNdata
protected
char* TBranchElement::fObject
protected
TVirtualArray* TBranchElement::fOnfileObject
protected
TClassRef TBranchElement::fParentClass
protected

Reference to current (transient) class definition.

Definition at line 92 of file TBranchElement.h.

Referenced by GetParentClass(), SetParentClass(), and SetTargetClass().

TString TBranchElement::fParentName
protected

Definition at line 72 of file TBranchElement.h.

Referenced by SetParentClass().

TVirtualCollectionPtrIterators* TBranchElement::fPtrIterators
protected

holds the read (non-staging) iterators when the branch is of fType==4 and associative containers.

Definition at line 102 of file TBranchElement.h.

Referenced by FillLeavesCollection(), FillLeavesCollectionSplitPtrMember(), ReadLeavesCollection(), ReadLeavesCollectionSplitPtrMember(), SetAddress(), and ~TBranchElement().

TStreamerInfoActions::TActionSequence* TBranchElement::fReadActionSequence
protected
Int_t TBranchElement::fSTLtype
protected
Int_t TBranchElement::fStreamerType
protected
TClassRef TBranchElement::fTargetClass
protected

Initialization flag to not endlessly recalculate offsets.

Definition at line 90 of file TBranchElement.h.

Referenced by GetTargetClass(), InitializeOffsets(), InitInfo(), SetAddress(), SetReadActionSequence(), and SetTargetClass().

Int_t TBranchElement::fType
protected
TVirtualCollectionIterators* TBranchElement::fWriteIterators
protected

holds the iterators when the branch is of fType==4.

Definition at line 101 of file TBranchElement.h.

Referenced by FillLeavesAssociativeCollectionMember(), FillLeavesCollection(), SetAddress(), and ~TBranchElement().


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