Logo ROOT   6.10/09
Reference Guide
List of all members | 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 44 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  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
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)
}
 

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 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 TClassGetClass () const
 
virtual const char * GetClassName () const
 Return the name of the user class whose content is stored in this branch, if any. More...
 
Int_t GetClassVersion ()
 
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...
 
virtual Int_t GetMaximum () const
 Return maximum count value of the branchcount if any. More...
 
Int_t GetNdata () const
 
char * GetObject () const
 Return a pointer to our object. More...
 
virtual const char * GetParentName () const
 
Int_t GetStreamerType () const
 
virtual TClassGetTargetClass ()
 
Int_t GetType () const
 
template<typename T >
GetTypedValue (Int_t i, Int_t len, Bool_t subarr=kFALSE) const
 
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
 
virtual voidGetValuePointer () const
 Returns pointer to first data element of this branch. More...
 
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 ResetAddress ()
 Set branch address to zero and free all allocated memory. More...
 
virtual void ResetAfterMerge (TFileMergeInfo *)
 Reset a Branch after a Merge operation (drop data but keep customizations) More...
 
virtual void ResetDeleteObject ()
 Release ownership of any allocated objects. More...
 
virtual void SetAddress (void *addobj)
 Point this branch at an object. 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 Bool_t SetMakeClass (Bool_t decomposeObj=kTRUE)
 Set the branch in a mode where the object are decomposed (Also known as MakeClass mode). More...
 
virtual void SetObject (void *objadd)
 Set object this branch is pointing to. More...
 
virtual void SetOffset (Int_t offset)
 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 SetType (Int_t btype)
 
virtual void SetupAddresses ()
 If the branch address is not set, we set all addresses starting with the top level parent branch. More...
 
virtual void UpdateFile ()
 Refresh the value of fDirectory (i.e. More...
 
- Public Member Functions inherited from TBranch
 TBranch ()
 Default constructor. Used for I/O by default. More...
 
 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...
 
Int_t BackFill ()
 Loop on all leaves of this branch to back fill Basket buffer. More...
 
virtual void DeleteBaskets (Option_t *option="")
 Loop on all branch baskets. More...
 
virtual void DropBaskets (Option_t *option="")
 Loop on all branch baskets. More...
 
void ExpandBasketArrays ()
 Increase BasketEntry buffer of a minimum of 10 locations and a maximum of 50 per cent of current size. More...
 
Int_t Fill ()
 
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
 
Long64_t GetEntries () 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...
 
Long64_t GetEntryNumber () const
 
Int_t GetEntryOffsetLen () const
 
Int_t GetEvent (Long64_t entry=0)
 
virtual TFileGetFile (Int_t mode=0)
 Return pointer to the file where branch buffers reside, returns 0 in case branch buffers reside in the same file as tree header. More...
 
const char * GetFileName () const
 
Long64_t GetFirstEntry () const
 
virtual TLeafGetLeaf (const char *name) const
 Return pointer to the 1st Leaf named name in thisBranch. More...
 
TObjArrayGetListOfBaskets ()
 
TObjArrayGetListOfBranches ()
 
TObjArrayGetListOfLeaves ()
 
Int_t GetMaxBaskets () const
 
TBranchGetMother () const
 Get our top-level parent branch in the tree. More...
 
Int_t GetNleaves () const
 
Int_t GetOffset () const
 
Int_t GetReadBasket () const
 
Long64_t GetReadEntry () const
 
virtual Int_t GetRow (Int_t row)
 Return all elements of one row unpacked in internal array fValues [Actually just returns 1 (?)]. More...
 
Int_t GetSplitLevel () const
 
TBranchGetSubBranch (const TBranch *br) const
 Find the parent branch of child. More...
 
Long64_t GetTotalSize (Option_t *option="") const
 Return total number of bytes in the branch (including current buffer) More...
 
Long64_t GetTotBytes (Option_t *option="") const
 Return total number of bytes in the branch (excluding current buffer) if option ="*" includes all sub-branches of this branch too. More...
 
TBufferGetTransientBuffer (Int_t size)
 Returns the transient buffer currently used by this TBranch for reading/writing baskets. More...
 
TTreeGetTree () const
 
Int_t GetWriteBasket () const
 
Long64_t GetZipBytes (Option_t *option="") const
 Return total number of zip bytes in the branch if option ="*" includes all sub-branches of this branch too. More...
 
Bool_t IsAutoDelete () const
 Return kTRUE if an existing object in a TBranchObject must be deleted. More...
 
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 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 SetFirstEntry (Long64_t entry)
 set the first entry number (case of TBranchSTL) More...
 
virtual void SetStatus (Bool_t status=1)
 Set branch status to Process or DoNotProcess. More...
 
virtual void SetTree (TTree *tree)
 
virtual void UpdateAddress ()
 
- 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)
 TNamed copy ctor. 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 ls (Option_t *option="") const
 List TNamed name and title. More...
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual 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 selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
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...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 AttFill default constructor. More...
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor. More...
 
virtual ~TAttFill ()
 AttFill destructor. More...
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill. More...
 
virtual Color_t GetFillColor () const
 Return the fill area color. More...
 
virtual Style_t GetFillStyle () const
 Return the fill area style. More...
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary. More...
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values. More...
 
virtual void SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
 Save fill attributes as C++ statement(s) on output stream out. More...
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes. More...
 
virtual void SetFillColor (Color_t fcolor)
 Set the fill area color. More...
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 Set the fill area style. More...
 

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::* FillLeaves_t) (TBuffer &b)
 
typedef void(TBranch::* ReadLeaves_t) (TBuffer &b)
 

Protected Member Functions

void BuildTitle (const char *name)
 Set branch and leaf name and title in the case of a container sub-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 FillLeavesCollection (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 FillLeavesCollectionSplitPtrMember (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 FillLeavesCustomStreamer (TBuffer &b)
 Write leaves into i/o buffers for this 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 FillLeavesMember (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...
 
TStreamerInfoGetInfoImp () const
 Get streamer info for the branch class. More...
 
TClassGetParentClass ()
 Return a pointer to the parent class of the branch element. More...
 
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...
 
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...
 
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 ReadLeavesCollection (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 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 ReadLeavesCustomStreamer (TBuffer &b)
 Read leaves into i/o buffers for this branch. 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 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 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)
 
void SetFillActionSequence ()
 Set the sequence of actions needed to write the data out from the buffer. More...
 
void SetFillLeavesPtr ()
 Set the FillLeaves 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 SetReadLeavesPtr ()
 Set the ReadLeaves pointer to execute the expected operations. More...
 
void SetupAddressesImpl ()
 If the branch address is not set, we set all addresses starting with the top level parent branch. More...
 
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
 
- Protected Member Functions inherited from TBranch
void FillLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to fill Basket buffer. More...
 
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...
 
TString GetRealFileName () const
 Get real file name. More...
 
void Init (const char *name, const char *leaflist, Int_t compress)
 
void ReadLeaves0Impl (TBuffer &b)
 Read zero leaves without the overhead of a loop. More...
 
void ReadLeaves1Impl (TBuffer &b)
 Read one leaf without the overhead of a loop. More...
 
void ReadLeaves2Impl (TBuffer &b)
 Read two leaves without the overhead of a loop. More...
 
void ReadLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to read Basket buffer. More...
 
void SetSkipZip (Bool_t skip=kTRUE)
 
Int_t WriteBasket (TBasket *basket, Int_t where)
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 

Protected Attributes

TClassRef fBranchClass
 ! Reference to class definition in fClassName More...
 
TBranchElementfBranchCount
 pointer to primary branchcount branch More...
 
TBranchElementfBranchCount2
 pointer to secondary branchcount branch More...
 
Int_t fBranchID
 ! ID number assigned by a TRefTable. More...
 
Int_tfBranchOffset
 ! Sub-Branch offsets with respect to current transient class More...
 
UInt_t fCheckSum
 CheckSum of class. More...
 
TString fClassName
 Class name of referenced object. More...
 
Version_t fClassVersion
 Version number of class. More...
 
TClassRef fClonesClass
 ! Reference to class definition in fClonesName More...
 
TString fClonesName
 Name of class in TClonesArray (if any) More...
 
TVirtualCollectionProxyfCollProxy
 ! collection interface (if any) More...
 
TClassRef fCurrentClass
 ! Reference to current (transient) class definition More...
 
TStreamerInfoActions::TActionSequencefFillActionSequence
 ! Set of actions to be executed to write the data to the basket. More...
 
Int_t fID
 element serial number in fInfo More...
 
std::vector< Int_tfIDs
 ! List of the serial number of all the StreamerInfo to be used. More...
 
TStreamerInfofInfo
 ! Pointer to StreamerInfo More...
 
Bool_t fInit
 ! Initialization flag for branch assignment More...
 
Bool_t fInitOffsets
 ! Initialization flag to not endlessly recalculate offsets More...
 
TVirtualCollectionIteratorsfIterators
 ! holds the iterators when the branch is of fType==4. More...
 
Int_t fMaximum
 Maximum entries for a TClonesArray or variable array. More...
 
Int_t fNdata
 ! Number of data in this branch More...
 
char * fObject
 ! Pointer to object at *fAddress More...
 
TVirtualArrayfOnfileObject
 ! Place holder for the onfile representation of data members. More...
 
TClassRef fParentClass
 ! Reference to class definition in fParentName More...
 
TString fParentName
 Name of parent class. More...
 
TVirtualCollectionPtrIteratorsfPtrIterators
 ! holds the iterators when the branch is of fType==4 and it is a split collection of pointers. More...
 
TStreamerInfoActions::TActionSequencefReadActionSequence
 ! Set of actions to be executed to extract the data from the basket. More...
 
Int_t fSTLtype
 ! STL container type More...
 
Int_t fStreamerType
 branch streamer type More...
 
TClassRef fTargetClass
 ! Reference to the target in-memory class More...
 
Int_t fType
 branch type More...
 
TVirtualCollectionIteratorsfWriteIterators
 ! holds the read (non-staging) iterators when the branch is of fType==4 and associative containers. More...
 
- Protected Attributes inherited from TBranch
char * fAddress
 ! Address of 1st leaf (variable or object) More...
 
Int_tfBasketBytes
 [fMaxBaskets] Length of baskets on file More...
 
Long64_tfBasketEntry
 [fMaxBaskets] Table of first entry in each basket More...
 
TObjArray fBaskets
 -> List of baskets of this branch More...
 
Long64_tfBasketSeek
 [fMaxBaskets] Addresses of baskets on file More...
 
Int_t fBasketSize
 Initial Size of Basket Buffer. More...
 
TObjArray fBranches
 -> List of Branches of this branch More...
 
TListfBrowsables
 ! List of TVirtualBranchBrowsables used for Browse() More...
 
Int_t fCompress
 Compression level and algorithm. More...
 
TBasketfCurrentBasket
 ! Pointer to the current basket. More...
 
TDirectoryfDirectory
 ! Pointer to directory where this branch buffers are stored More...
 
Long64_t fEntries
 Number of entries. More...
 
TBufferfEntryBuffer
 ! Buffer used to directly pass the content without streaming More...
 
Long64_t fEntryNumber
 Current entry number (last one filled in this branch) More...
 
Int_t fEntryOffsetLen
 Initial Length of fEntryOffset table in the basket buffers. More...
 
TString fFileName
 Name of file where buffers are stored ("" if in same file as Tree header) More...
 
FillLeaves_t fFillLeaves
 ! Pointer to the FillLeaves implementation to use. More...
 
Long64_t fFirstBasketEntry
 ! First entry in the current basket. More...
 
Long64_t fFirstEntry
 Number of the first entry in this branch. More...
 
TObjArray fLeaves
 -> List of leaves of this branch More...
 
Int_t fMaxBaskets
 Maximum number of Baskets so far. More...
 
TBranchfMother
 ! Pointer to top-level parent branch in the tree. More...
 
Int_t fNBaskets
 ! Number of baskets in memory More...
 
Long64_t fNextBasketEntry
 ! Next entry that will requires us to go to the next basket More...
 
Int_t fNleaves
 ! Number of leaves More...
 
Int_t fOffset
 Offset of this branch. More...
 
TBranchfParent
 ! Pointer to parent branch. More...
 
Int_t fReadBasket
 ! Current basket number when reading More...
 
Long64_t fReadEntry
 ! Current entry number when reading More...
 
ReadLeaves_t fReadLeaves
 ! Pointer to the ReadLeaves implementation to use. More...
 
Bool_t fSkipZip
 ! After being read, the buffer will not be unzipped. More...
 
Int_t fSplitLevel
 Branch split level. More...
 
Long64_t fTotBytes
 Total number of bytes in all leaves before compression. More...
 
TBufferfTransientBuffer
 ! Pointer to the current transient buffer. More...
 
TTreefTree
 ! Pointer to Tree header More...
 
Int_t fWriteBasket
 Last basket number written. More...
 
Long64_t fZipBytes
 Total number of bytes in all leaves after compression. More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 Fill area color. More...
 
Style_t fFillStyle
 Fill area style. More...
 

Private Member Functions

 TBranchElement (const TBranchElement &)
 
virtual Int_t FillImpl (ROOT::Internal::TBranchIMTHelper *)
 Loop on all leaves of this branch to fill the basket buffer. 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 Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 
- Static Protected Attributes inherited from TBranch
static Int_t fgCount = 0
 ! branch counter More...
 

#include <TBranchElement.h>

Inheritance diagram for TBranchElement:
[legend]

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
kBranchFolder 
kDeleteObject 

We are the owner of fObject.

kCache 

Need to pushd/pop fOnfileObject.

kOwnOnfileObj 

We are the owner of fOnfileObject.

kAddressSet 

The addressing set have been called for this branch.

kMakeClass 

This branch has been switched to using the MakeClass Mode.

kDecomposedObj 

More explicit alias for kMakeClass.

Definition at line 51 of file TBranchElement.h.

◆ EBranchElementType

Enumerator
kLeafNode 
kBaseClassNode 
kObjectNode 
kClonesNode 
kSTLNode 
kClonesMemberNode 
kSTLMemberNode 

Definition at line 231 of file TBranchElement.h.

Constructor & Destructor Documentation

◆ TBranchElement() [1/8]

TBranchElement::TBranchElement ( const TBranchElement )
private

◆ TBranchElement() [2/8]

TBranchElement::TBranchElement ( )

Default and I/O constructor.

Definition at line 131 of file TBranchElement.cxx.

◆ TBranchElement() [3/8]

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 175 of file TBranchElement.cxx.

◆ TBranchElement() [4/8]

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 644 of file TBranchElement.cxx.

◆ TBranchElement() [5/8]

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 788 of file TBranchElement.cxx.

◆ TBranchElement() [6/8]

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 217 of file TBranchElement.cxx.

◆ TBranchElement() [7/8]

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

◆ TBranchElement() [8/8]

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 811 of file TBranchElement.cxx.

◆ ~TBranchElement()

TBranchElement::~TBranchElement ( )
virtual

Destructor.

Definition at line 940 of file TBranchElement.cxx.

Member Function Documentation

◆ Browse()

void TBranchElement::Browse ( TBrowser b)
virtual

Browse the branch content.

Reimplemented from TBranch.

Definition at line 997 of file TBranchElement.cxx.

◆ BuildTitle()

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 1109 of file TBranchElement.cxx.

◆ FillImpl()

Int_t TBranchElement::FillImpl ( ROOT::Internal::TBranchIMTHelper imtHelper)
privatevirtual

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 1186 of file TBranchElement.cxx.

◆ FillLeavesAssociativeCollectionMember()

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 1518 of file TBranchElement.cxx.

◆ FillLeavesClones()

void TBranchElement::FillLeavesClones ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a TClonesArray (fType == 3).

Definition at line 1549 of file TBranchElement.cxx.

◆ FillLeavesClonesMember()

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 1574 of file TBranchElement.cxx.

◆ FillLeavesCollection()

void TBranchElement::FillLeavesCollection ( TBuffer b)
protected

Write leaves into i/o buffers for this branch.

Case of a collection (fType == 4).

Definition at line 1383 of file TBranchElement.cxx.

◆ FillLeavesCollectionMember()

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 1487 of file TBranchElement.cxx.

◆ FillLeavesCollectionSplitPtrMember()

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 1456 of file TBranchElement.cxx.

◆ FillLeavesCollectionSplitVectorPtrMember()

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 1426 of file TBranchElement.cxx.

◆ FillLeavesCustomStreamer()

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 1603 of file TBranchElement.cxx.

◆ FillLeavesImpl()

void TBranchElement::FillLeavesImpl ( TBuffer b)
protected

Unconfiguration Fill Leave function.

Definition at line 4147 of file TBranchElement.cxx.

◆ FillLeavesMakeClass()

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 1277 of file TBranchElement.cxx.

◆ FillLeavesMember()

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 1691 of file TBranchElement.cxx.

◆ FillLeavesMemberBranchCount()

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 1633 of file TBranchElement.cxx.

◆ FillLeavesMemberCounter()

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 1654 of file TBranchElement.cxx.

◆ FindBranch()

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

Find the immediate sub-branch with passed name.

Reimplemented from TBranch.

Definition at line 1744 of file TBranchElement.cxx.

◆ FindLeaf()

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

Find the leaf corresponding to the name 'searchname'.

Reimplemented from TBranch.

Definition at line 1829 of file TBranchElement.cxx.

◆ GetAddress()

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 1880 of file TBranchElement.cxx.

◆ GetBranchCount()

TBranchElement* TBranchElement::GetBranchCount ( ) const
inline

Definition at line 180 of file TBranchElement.h.

◆ GetBranchCount2()

TBranchElement* TBranchElement::GetBranchCount2 ( ) const
inline

Definition at line 181 of file TBranchElement.h.

◆ GetBranchOffset()

Int_t* TBranchElement::GetBranchOffset ( ) const
inline

Definition at line 182 of file TBranchElement.h.

◆ GetCheckSum()

UInt_t TBranchElement::GetCheckSum ( )
inline

Definition at line 183 of file TBranchElement.h.

◆ GetClass()

virtual TClass* TBranchElement::GetClass ( ) const
inlinevirtual

Definition at line 185 of file TBranchElement.h.

◆ GetClassName()

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

Return the name of the user class whose content is stored in this branch, if any.

If this branch was created using the 'leaflist' technique, this function returns an empty string.

Reimplemented from TBranch.

Definition at line 184 of file TBranchElement.h.

◆ GetClassVersion()

Int_t TBranchElement::GetClassVersion ( )
inline

Definition at line 206 of file TBranchElement.h.

◆ GetClonesName()

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

Definition at line 186 of file TBranchElement.h.

◆ GetCollectionProxy()

TVirtualCollectionProxy * TBranchElement::GetCollectionProxy ( )

Return the collection proxy describing the branch content, if any.

Definition at line 2121 of file TBranchElement.cxx.

◆ GetCurrentClass()

TClass * TBranchElement::GetCurrentClass ( )

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

Definition at line 2188 of file TBranchElement.cxx.

◆ GetEntry()

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 2259 of file TBranchElement.cxx.

◆ GetExpectedType()

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 2353 of file TBranchElement.cxx.

◆ GetIconName()

const char * TBranchElement::GetIconName ( ) const
virtual

Return icon name depending on type of branch element.

Reimplemented from TBranch.

Definition at line 2388 of file TBranchElement.cxx.

◆ GetID()

Int_t TBranchElement::GetID ( ) const
inline

Definition at line 192 of file TBranchElement.h.

◆ GetInfo()

TStreamerInfo * TBranchElement::GetInfo ( ) const

Get streamer info for the branch class.

Definition at line 989 of file TBranchElement.cxx.

◆ GetInfoImp()

TStreamerInfo * TBranchElement::GetInfoImp ( ) const
inlineprotected

Get streamer info for the branch class.

Definition at line 976 of file TBranchElement.cxx.

◆ GetMakeClass()

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 2401 of file TBranchElement.cxx.

◆ GetMaximum()

Int_t TBranchElement::GetMaximum ( ) const
virtual

Return maximum count value of the branchcount if any.

Definition at line 2409 of file TBranchElement.cxx.

◆ GetNdata()

Int_t TBranchElement::GetNdata ( ) const
inline

Definition at line 198 of file TBranchElement.h.

◆ GetObject()

char * TBranchElement::GetObject ( ) const

Return a pointer to our object.

Definition at line 2420 of file TBranchElement.cxx.

◆ GetParentClass()

TClass * TBranchElement::GetParentClass ( )
protected

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

Definition at line 2429 of file TBranchElement.cxx.

◆ GetParentName()

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

Definition at line 196 of file TBranchElement.h.

◆ GetStreamerType()

Int_t TBranchElement::GetStreamerType ( ) const
inline

Definition at line 200 of file TBranchElement.h.

◆ GetTargetClass()

virtual TClass* TBranchElement::GetTargetClass ( )
inlinevirtual

Definition at line 201 of file TBranchElement.h.

◆ GetType()

Int_t TBranchElement::GetType ( ) const
inline

Definition at line 199 of file TBranchElement.h.

◆ GetTypedValue()

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

Definition at line 2487 of file TBranchElement.cxx.

◆ GetTypeName()

const char * TBranchElement::GetTypeName ( ) const
virtual

Return type name of element in the branch.

Definition at line 2437 of file TBranchElement.cxx.

◆ GetValue()

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

Definition at line 203 of file TBranchElement.h.

◆ GetValuePointer()

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 2589 of file TBranchElement.cxx.

◆ Init() [1/3]

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 259 of file TBranchElement.cxx.

◆ Init() [2/3]

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 692 of file TBranchElement.cxx.

◆ Init() [3/3]

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 834 of file TBranchElement.cxx.

◆ InitializeOffsets()

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 2672 of file TBranchElement.cxx.

◆ InitInfo()

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 1890 of file TBranchElement.cxx.

◆ IsBranchFolder()

Bool_t TBranchElement::IsBranchFolder ( ) const
inline

Definition at line 207 of file TBranchElement.h.

◆ IsFolder()

Bool_t TBranchElement::IsFolder ( ) const
virtual

Return kTRUE if more than one leaf, kFALSE otherwise.

Reimplemented from TBranch.

Definition at line 3272 of file TBranchElement.cxx.

◆ IsMissingCollection()

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 3290 of file TBranchElement.cxx.

◆ IsObjectOwner()

virtual Bool_t TBranchElement::IsObjectOwner ( ) const
inlinevirtual

Definition at line 209 of file TBranchElement.h.

◆ Notify()

virtual Bool_t TBranchElement::Notify ( )
inlinevirtual

This method must be overridden to handle object notification.

Reimplemented from TObject.

Definition at line 210 of file TBranchElement.h.

◆ operator=()

TBranchElement& TBranchElement::operator= ( const TBranchElement )
private

◆ Print()

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

Print branch parameters.

Reimplemented from TBranch.

Definition at line 3330 of file TBranchElement.cxx.

◆ PrintValue()

void TBranchElement::PrintValue ( Int_t  i) const

Prints values of leaves.

Definition at line 3402 of file TBranchElement.cxx.

◆ ReadLeavesClones()

void TBranchElement::ReadLeavesClones ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a TClonesArray (fType == 3).

Definition at line 3945 of file TBranchElement.cxx.

◆ ReadLeavesClonesMember()

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 3982 of file TBranchElement.cxx.

◆ ReadLeavesCollection()

void TBranchElement::ReadLeavesCollection ( TBuffer b)
protected

Read leaves into i/o buffers for this branch.

Case of a collection (fType == 4).

Definition at line 3741 of file TBranchElement.cxx.

◆ ReadLeavesCollectionMember()

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 3912 of file TBranchElement.cxx.

◆ ReadLeavesCollectionSplitPtrMember()

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 3839 of file TBranchElement.cxx.

◆ ReadLeavesCollectionSplitVectorPtrMember()

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 3881 of file TBranchElement.cxx.

◆ ReadLeavesCustomStreamer()

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 4130 of file TBranchElement.cxx.

◆ ReadLeavesImpl()

void TBranchElement::ReadLeavesImpl ( TBuffer b)
protected

Unconfiguration Read Leave function.

Definition at line 3488 of file TBranchElement.cxx.

◆ ReadLeavesMakeClass()

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 3497 of file TBranchElement.cxx.

◆ ReadLeavesMember()

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 4019 of file TBranchElement.cxx.

◆ ReadLeavesMemberBranchCount()

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 4057 of file TBranchElement.cxx.

◆ ReadLeavesMemberCounter()

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 4094 of file TBranchElement.cxx.

◆ ReleaseObject()

void TBranchElement::ReleaseObject ( )
protected

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

Definition at line 4155 of file TBranchElement.cxx.

◆ Reset()

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 4235 of file TBranchElement.cxx.

◆ ResetAddress()

void TBranchElement::ResetAddress ( )
virtual

Set branch address to zero and free all allocated memory.

Reimplemented from TBranch.

Definition at line 4263 of file TBranchElement.cxx.

◆ ResetAfterMerge()

void TBranchElement::ResetAfterMerge ( TFileMergeInfo info)
virtual

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

Reimplemented from TBranch.

Definition at line 4250 of file TBranchElement.cxx.

◆ ResetDeleteObject()

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 4297 of file TBranchElement.cxx.

◆ SetAddress()

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 4418 of file TBranchElement.cxx.

◆ SetBasketSize()

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 4952 of file TBranchElement.cxx.

◆ SetBranchCount()

void TBranchElement::SetBranchCount ( TBranchElement bre)
protected

Set the branch counter for this branch.

Definition at line 4965 of file TBranchElement.cxx.

◆ SetBranchCount2()

void TBranchElement::SetBranchCount2 ( TBranchElement bre)
inlineprotected

Definition at line 125 of file TBranchElement.h.

◆ SetBranchFolder()

virtual void TBranchElement::SetBranchFolder ( )
inlinevirtual

Definition at line 221 of file TBranchElement.h.

◆ SetClassName()

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

Definition at line 222 of file TBranchElement.h.

◆ SetFillActionSequence()

void TBranchElement::SetFillActionSequence ( )
protected

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

Definition at line 5139 of file TBranchElement.cxx.

◆ SetFillLeavesPtr()

void TBranchElement::SetFillLeavesPtr ( )
protected

Set the FillLeaves pointer to execute the expected operations.

Definition at line 5186 of file TBranchElement.cxx.

◆ SetMakeClass()

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 4990 of file TBranchElement.cxx.

◆ SetObject()

void TBranchElement::SetObject ( void objadd)
virtual

Set object this branch is pointing to.

Reimplemented from TBranch.

Definition at line 5011 of file TBranchElement.cxx.

◆ SetOffset()

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 5024 of file TBranchElement.cxx.

◆ SetParentClass()

void TBranchElement::SetParentClass ( TClass clparent)
inline

Definition at line 251 of file TBranchElement.h.

◆ SetParentName()

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

Definition at line 225 of file TBranchElement.h.

◆ SetReadActionSequence()

void TBranchElement::SetReadActionSequence ( )
protected

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

Definition at line 5041 of file TBranchElement.cxx.

◆ SetReadLeavesPtr()

void TBranchElement::SetReadLeavesPtr ( )
protected

Set the ReadLeaves pointer to execute the expected operations.

Definition at line 5087 of file TBranchElement.cxx.

◆ SetTargetClass()

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 5230 of file TBranchElement.cxx.

◆ SetType()

virtual void TBranchElement::SetType ( Int_t  btype)
inlinevirtual

Definition at line 228 of file TBranchElement.h.

◆ SetupAddresses()

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 5267 of file TBranchElement.cxx.

◆ SetupAddressesImpl()

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 5284 of file TBranchElement.cxx.

◆ SwitchContainer()

void TBranchElement::SwitchContainer ( TObjArray branches)
staticprivate

Modify the container type of the branches.

Definition at line 83 of file TBranchElement.cxx.

◆ Unroll()

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 5479 of file TBranchElement.cxx.

◆ UpdateFile()

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 5683 of file TBranchElement.cxx.

◆ ValidateAddress()

void TBranchElement::ValidateAddress ( ) const
inlineprotected

Definition at line 257 of file TBranchElement.h.

Friends And Related Function Documentation

◆ TTreeCloner

friend class TTreeCloner
friend

Definition at line 47 of file TBranchElement.h.

Member Data Documentation

◆ fBranchClass

TClassRef TBranchElement::fBranchClass
protected

! Reference to class definition in fClassName

Definition at line 97 of file TBranchElement.h.

◆ fBranchCount

TBranchElement* TBranchElement::fBranchCount
protected

pointer to primary branchcount branch

Definition at line 87 of file TBranchElement.h.

◆ fBranchCount2

TBranchElement* TBranchElement::fBranchCount2
protected

pointer to secondary branchcount branch

Definition at line 88 of file TBranchElement.h.

◆ fBranchID

Int_t TBranchElement::fBranchID
protected

! ID number assigned by a TRefTable.

Definition at line 100 of file TBranchElement.h.

◆ fBranchOffset

Int_t* TBranchElement::fBranchOffset
protected

! Sub-Branch offsets with respect to current transient class

Definition at line 99 of file TBranchElement.h.

◆ fCheckSum

UInt_t TBranchElement::fCheckSum
protected

CheckSum of class.

Definition at line 79 of file TBranchElement.h.

◆ fClassName

TString TBranchElement::fClassName
protected

Class name of referenced object.

Definition at line 75 of file TBranchElement.h.

◆ fClassVersion

Version_t TBranchElement::fClassVersion
protected

Version number of class.

Definition at line 80 of file TBranchElement.h.

◆ fClonesClass

TClassRef TBranchElement::fClonesClass
protected

! Reference to class definition in fClonesName

Definition at line 98 of file TBranchElement.h.

◆ fClonesName

TString TBranchElement::fClonesName
protected

Name of class in TClonesArray (if any)

Definition at line 77 of file TBranchElement.h.

◆ fCollProxy

TVirtualCollectionProxy* TBranchElement::fCollProxy
protected

! collection interface (if any)

Definition at line 78 of file TBranchElement.h.

◆ fCurrentClass

TClassRef TBranchElement::fCurrentClass
protected

! Reference to current (transient) class definition

Definition at line 95 of file TBranchElement.h.

◆ fFillActionSequence

TStreamerInfoActions::TActionSequence* TBranchElement::fFillActionSequence
protected

! Set of actions to be executed to write the data to the basket.

Definition at line 103 of file TBranchElement.h.

◆ fID

Int_t TBranchElement::fID
protected

element serial number in fInfo

Definition at line 81 of file TBranchElement.h.

◆ fIDs

std::vector<Int_t> TBranchElement::fIDs
protected

! List of the serial number of all the StreamerInfo to be used.

Definition at line 101 of file TBranchElement.h.

◆ fInfo

TStreamerInfo* TBranchElement::fInfo
protected

! Pointer to StreamerInfo

Definition at line 89 of file TBranchElement.h.

◆ fInit

Bool_t TBranchElement::fInit
protected

! Initialization flag for branch assignment

Definition at line 92 of file TBranchElement.h.

◆ fInitOffsets

Bool_t TBranchElement::fInitOffsets
protected

! Initialization flag to not endlessly recalculate offsets

Definition at line 93 of file TBranchElement.h.

◆ fIterators

TVirtualCollectionIterators* TBranchElement::fIterators
protected

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

Definition at line 104 of file TBranchElement.h.

◆ fMaximum

Int_t TBranchElement::fMaximum
protected

Maximum entries for a TClonesArray or variable array.

Definition at line 84 of file TBranchElement.h.

◆ fNdata

Int_t TBranchElement::fNdata
protected

! Number of data in this branch

Definition at line 86 of file TBranchElement.h.

◆ fObject

char* TBranchElement::fObject
protected

! Pointer to object at *fAddress

Definition at line 90 of file TBranchElement.h.

◆ fOnfileObject

TVirtualArray* TBranchElement::fOnfileObject
protected

! Place holder for the onfile representation of data members.

Definition at line 91 of file TBranchElement.h.

◆ fParentClass

TClassRef TBranchElement::fParentClass
protected

! Reference to class definition in fParentName

Definition at line 96 of file TBranchElement.h.

◆ fParentName

TString TBranchElement::fParentName
protected

Name of parent class.

Definition at line 76 of file TBranchElement.h.

◆ fPtrIterators

TVirtualCollectionPtrIterators* TBranchElement::fPtrIterators
protected

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

Definition at line 106 of file TBranchElement.h.

◆ fReadActionSequence

TStreamerInfoActions::TActionSequence* TBranchElement::fReadActionSequence
protected

! Set of actions to be executed to extract the data from the basket.

Definition at line 102 of file TBranchElement.h.

◆ fSTLtype

Int_t TBranchElement::fSTLtype
protected

! STL container type

Definition at line 85 of file TBranchElement.h.

◆ fStreamerType

Int_t TBranchElement::fStreamerType
protected

branch streamer type

Definition at line 83 of file TBranchElement.h.

◆ fTargetClass

TClassRef TBranchElement::fTargetClass
protected

! Reference to the target in-memory class

Definition at line 94 of file TBranchElement.h.

◆ fType

Int_t TBranchElement::fType
protected

branch type

Definition at line 82 of file TBranchElement.h.

◆ fWriteIterators

TVirtualCollectionIterators* TBranchElement::fWriteIterators
protected

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

Definition at line 105 of file TBranchElement.h.


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