Logo ROOT   6.16/01
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 43 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 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = BIT(0) , kOverwrite = BIT(1) , kWriteDelete = BIT(2) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = BIT(3) }
 
enum  EStatusBits {
  kCanDelete = BIT(0) , kMustCleanup = 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 (TBranch *parent, const char *name, TClonesArray *clones, Int_t basketsize=32000, Int_t splitlevel=0, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Constructor when the branch object is a TClonesArray. 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, TVirtualCollectionProxy *cont, Int_t basketsize=32000, Int_t splitlevel=0, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Constructor when the branch object is an STL collection. More...
 
 TBranchElement (TTree *tree, const char *name, TClonesArray *clones, Int_t basketsize=32000, Int_t splitlevel=0, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Constructor when the branch object is a TClonesArray. 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, TVirtualCollectionProxy *cont, Int_t basketsize=32000, Int_t splitlevel=0, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 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...
 
TVirtualArrayGetOnfileObject () const
 
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 TBranch 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 ResetInitInfo (bool recurse)
 Reset offset and StremerInfo information from this branch. 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 SetMissing ()
 Set offset of the object (to which the data member represented by this branch belongs) inside its containing object (if any) to mark it as missing. 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...
 
void Unroll (const char *name, TClass *cl, TStreamerInfo *sinfo, char *objptr, Int_t bufsize, Int_t splitlevel)
 Split class cl into sub-branches of this 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 (TBranch *parent, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Create a Branch as a child of another Branch. More...
 
 TBranch (TTree *tree, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Create a Branch as a child of a Tree. 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 Browse (TBrowser *b)
 Browser interface. 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 ()
 
virtual Int_t FillImpl (ROOT::Internal::TBranchIMTHelper *)
 Loop on all leaves of this branch to fill 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...
 
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...
 
virtual char * GetAddress () const
 
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...
 
virtual const char * GetClassName () const
 Return the name of the user class whose content is stored in this branch, if any. More...
 
Int_t GetCompressionAlgorithm () const
 
Int_t GetCompressionLevel () const
 
Int_t GetCompressionSettings () const
 
TDirectoryGetDirectory () const
 
Long64_t GetEntries () const
 
virtual Int_t GetEntry (Long64_t entry=0, Int_t getall=0)
 Read all leaves of entry and return total number of bytes read. More...
 
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 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...
 
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
 
const char * GetIconName () const
 Return icon name depending on type of branch. More...
 
TIOFeatures GetIOFeatures () const
 Returns the IO settings currently in use for this branch. More...
 
virtual TLeafGetLeaf (const char *name) const
 Return pointer to the 1st Leaf named name in thisBranch. More...
 
TObjArrayGetListOfBaskets ()
 
TObjArrayGetListOfBranches ()
 
TObjArrayGetListOfLeaves ()
 
virtual 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...
 
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...
 
Bool_t IsFolder () const
 Return kTRUE if more than one leaf or browsables, kFALSE otherwise. 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 Print (Option_t *option="") const
 Print TBranch parameters. More...
 
void PrintCacheInfo () const
 Print the information we have about which basket is currently cached and whether they have been 'used'/'read' from the cache. 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 Reset (Option_t *option="")
 Reset a Branch. More...
 
virtual void ResetAddress ()
 Reset the address of the branch. More...
 
virtual void ResetAfterMerge (TFileMergeInfo *)
 Reset a Branch. More...
 
virtual void ResetReadEntry ()
 
virtual void SetAddress (void *add)
 Set address of this branch. More...
 
virtual void SetAutoDelete (Bool_t autodel=kTRUE)
 Set the automatic delete bit. More...
 
virtual void SetBasketSize (Int_t buffsize)
 Set the basket size The function makes sure that the basket size is greater than fEntryOffsetlen. More...
 
virtual void SetBufferAddress (TBuffer *entryBuffer)
 Set address of this branch directly from a TBuffer to avoid streaming. More...
 
void SetCompressionAlgorithm (Int_t algorithm=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
 Set compression algorithm. More...
 
void SetCompressionLevel (Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin)
 Set compression level. More...
 
void SetCompressionSettings (Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseGeneralPurpose)
 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 (const char *filename)
 Set file where this branch writes/reads its buffers. More...
 
virtual void SetFile (TFile *file=0)
 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...
 
void SetIOFeatures (TIOFeatures &features)
 
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=0)
 
virtual void SetStatus (Bool_t status=1)
 Set branch status to Process or DoNotProcess. More...
 
virtual void SetTree (TTree *tree)
 
virtual void SetupAddresses ()
 If the branch address is not set, we set all addresses starting with the top level parent branch. More...
 
virtual void UpdateAddress ()
 
virtual void UpdateFile ()
 Refresh the value of fDirectory (i.e. More...
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor. More...
 
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 Print (Option_t *option="") const
 Print TNamed name and title. 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 void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
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 abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. 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 const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of 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 const char * GetTitle () const
 Returns title of object. More...
 
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 ULong_t Hash () const
 Return hash value for this object. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. 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...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. 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...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. 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 void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. 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)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. 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 SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE 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  EStatusBits {
  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
using CacheInfo_t = ROOT::Internal::TBranchCacheInfo
 
enum  EStatusBits {
  kDoNotProcess = ::kDoNotProcess , kIsClone = ::kIsClone , kBranchObject = ::kBranchObject , kBranchAny = ::kBranchAny ,
  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...
 
TStreamerInfoFindOnfileInfo (TClass *valueClass, const TObjArray &branches) const
 
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, TClonesArray *clones, Int_t basketsize=32000, Int_t splitlevel=0, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 Init when the branch object is a TClonesArray. 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, TVirtualCollectionProxy *cont, Int_t basketsize=32000, Int_t splitlevel=0, Int_t compress=ROOT::RCompressionSetting::EAlgorithm::kInherit)
 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 SetActionSequence (TClass *originalClass, TStreamerInfo *localInfo, TStreamerInfoActions::TActionSequence::SequenceGetter_t create, TStreamerInfoActions::TActionSequence *&actionSequence)
 Set the sequence of actions needed to read the data out of the buffer. 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...
 
void SetupInfo ()
 Set the value of fInfo. 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...
 
TBasketGetFreshCluster ()
 Drops the cluster two behind the current cluster and returns a fresh basket by either reusing or creating 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...
 
TStreamerInfofInfo
 ! Pointer to StreamerInfo More...
 
Bool_t fInInitInfo: 1
 ! True during the 2nd part of InitInfo (cut recursion). More...
 
Bool_t fInit: 1
 ! Initialization flag for branch assignment More...
 
Bool_t fInitOffsets: 1
 ! 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...
 
TStreamerInfoActions::TIDs fNewIDs
 ! Nested List of the serial number of all the StreamerInfo to be used. 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...
 
CacheInfo_t fCacheInfo
 ! Hold info about which basket are in the cache and if they have been retrieved from the cache. 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...
 
TIOFeatures fIOFeatures
 IO features for newly-created baskets. 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 TLeafElement
 
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

◆ EBranchElementType

Enumerator
kLeafNode 
kBaseClassNode 
kObjectNode 
kClonesNode 
kSTLNode 
kClonesMemberNode 
kSTLMemberNode 

Definition at line 240 of file TBranchElement.h.

◆ EStatusBits

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.

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 176 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 = ROOT::RCompressionSetting::EAlgorithm::kInherit 
)

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() [5/8]

TBranchElement::TBranchElement ( TTree tree,
const char *  bname,
TVirtualCollectionProxy cont,
Int_t  basketsize = 32000,
Int_t  splitlevel = 0,
Int_t  compress = ROOT::RCompressionSetting::EAlgorithm::kInherit 
)

Constructor when the branch object is an STL collection.

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

Definition at line 803 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 223 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 = ROOT::RCompressionSetting::EAlgorithm::kInherit 
)

Constructor when the branch object is a TClonesArray.

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

Definition at line 680 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 = ROOT::RCompressionSetting::EAlgorithm::kInherit 
)

Constructor when the branch object is an STL collection.

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

Definition at line 829 of file TBranchElement.cxx.

◆ ~TBranchElement()

TBranchElement::~TBranchElement ( )
virtual

Destructor.

Definition at line 961 of file TBranchElement.cxx.

Member Function Documentation

◆ Browse()

void TBranchElement::Browse ( TBrowser b)
virtual

Browse the branch content.

Reimplemented from TBranch.

Definition at line 1018 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 1130 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 1207 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 1539 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 1570 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 1595 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 1404 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 1508 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 1477 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 1447 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 1624 of file TBranchElement.cxx.

◆ FillLeavesImpl()

void TBranchElement::FillLeavesImpl ( TBuffer b)
protected

Unconfiguration Fill Leave function.

Definition at line 4518 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 1298 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 1712 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 1654 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 1675 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 1765 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 1850 of file TBranchElement.cxx.

◆ FindOnfileInfo()

TStreamerInfo * TBranchElement::FindOnfileInfo ( TClass valueClass,
const TObjArray branches 
) const
protected

Definition at line 1912 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 1901 of file TBranchElement.cxx.

◆ GetBranchCount()

TBranchElement * TBranchElement::GetBranchCount ( ) const
inline

Definition at line 185 of file TBranchElement.h.

◆ GetBranchCount2()

TBranchElement * TBranchElement::GetBranchCount2 ( ) const
inline

Definition at line 186 of file TBranchElement.h.

◆ GetBranchOffset()

Int_t * TBranchElement::GetBranchOffset ( ) const
inline

Definition at line 187 of file TBranchElement.h.

◆ GetCheckSum()

UInt_t TBranchElement::GetCheckSum ( )
inline

Definition at line 188 of file TBranchElement.h.

◆ GetClass()

virtual TClass * TBranchElement::GetClass ( ) const
inlinevirtual

Definition at line 190 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 189 of file TBranchElement.h.

◆ GetClassVersion()

Int_t TBranchElement::GetClassVersion ( )
inline

Definition at line 212 of file TBranchElement.h.

◆ GetClonesName()

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

Definition at line 191 of file TBranchElement.h.

◆ GetCollectionProxy()

TVirtualCollectionProxy * TBranchElement::GetCollectionProxy ( )

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

Definition at line 2394 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 2469 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 2540 of file TBranchElement.cxx.

◆ GetExpectedType()

Int_t TBranchElement::GetExpectedType ( TClass *&  clptr,
EDataType type 
)
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 2673 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 2708 of file TBranchElement.cxx.

◆ GetID()

Int_t TBranchElement::GetID ( ) const
inline

Definition at line 197 of file TBranchElement.h.

◆ GetInfo()

TStreamerInfo * TBranchElement::GetInfo ( ) const

Get streamer info for the branch class.

Definition at line 1010 of file TBranchElement.cxx.

◆ GetInfoImp()

TStreamerInfo * TBranchElement::GetInfoImp ( ) const
inlineprotected

Get streamer info for the branch class.

Definition at line 997 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 2721 of file TBranchElement.cxx.

◆ GetMaximum()

Int_t TBranchElement::GetMaximum ( ) const
virtual

Return maximum count value of the branchcount if any.

Definition at line 2729 of file TBranchElement.cxx.

◆ GetNdata()

Int_t TBranchElement::GetNdata ( ) const
inline

Definition at line 204 of file TBranchElement.h.

◆ GetObject()

char * TBranchElement::GetObject ( ) const

Return a pointer to our object.

Definition at line 2740 of file TBranchElement.cxx.

◆ GetOnfileObject()

TVirtualArray * TBranchElement::GetOnfileObject ( ) const
inline

Definition at line 201 of file TBranchElement.h.

◆ GetParentClass()

TClass * TBranchElement::GetParentClass ( )
protected

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

Definition at line 2749 of file TBranchElement.cxx.

◆ GetParentName()

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

Definition at line 202 of file TBranchElement.h.

◆ GetStreamerType()

Int_t TBranchElement::GetStreamerType ( ) const
inline

Definition at line 206 of file TBranchElement.h.

◆ GetTargetClass()

virtual TClass * TBranchElement::GetTargetClass ( )
inlinevirtual

Definition at line 207 of file TBranchElement.h.

◆ GetType()

Int_t TBranchElement::GetType ( ) const
inline

Definition at line 205 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 2807 of file TBranchElement.cxx.

◆ GetTypeName()

const char * TBranchElement::GetTypeName ( ) const
virtual

Return type name of element in the branch.

Definition at line 2757 of file TBranchElement.cxx.

◆ GetValue()

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

Definition at line 209 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 2909 of file TBranchElement.cxx.

◆ Init() [1/3]

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

Init when the branch object is a TClonesArray.

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

Definition at line 707 of file TBranchElement.cxx.

◆ Init() [2/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 268 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 = ROOT::RCompressionSetting::EAlgorithm::kInherit 
)
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 855 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 2992 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 2137 of file TBranchElement.cxx.

◆ IsBranchFolder()

Bool_t TBranchElement::IsBranchFolder ( ) const
inline

Definition at line 213 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 3612 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 3630 of file TBranchElement.cxx.

◆ IsObjectOwner()

virtual Bool_t TBranchElement::IsObjectOwner ( ) const
inlinevirtual

Definition at line 215 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 216 of file TBranchElement.h.

◆ operator=()

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

◆ Print()

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

Print TBranch parameters.

If options contains "basketsInfo" print the entry number, location and size of each baskets.

Reimplemented from TBranch.

Definition at line 3690 of file TBranchElement.cxx.

◆ PrintValue()

void TBranchElement::PrintValue ( Int_t  i) const

Prints values of leaves.

Definition at line 3782 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 4316 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 4353 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 4121 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 4283 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 4219 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 4252 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 4501 of file TBranchElement.cxx.

◆ ReadLeavesImpl()

void TBranchElement::ReadLeavesImpl ( TBuffer b)
protected

Unconfiguration Read Leave function.

Definition at line 3868 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 3877 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 4390 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 4428 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 4465 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 4526 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 4606 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 4634 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 4621 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 4668 of file TBranchElement.cxx.

◆ ResetInitInfo()

void TBranchElement::ResetInitInfo ( bool  recurse)
virtual

Reset offset and StremerInfo information from this branch.

Parameters
[in]recurseWhen true call ResetInitInfo on all subbranches.

Definition at line 4685 of file TBranchElement.cxx.

◆ SetActionSequence()

void TBranchElement::SetActionSequence ( TClass originalClass,
TStreamerInfo localInfo,
TStreamerInfoActions::TActionSequence::SequenceGetter_t  create,
TStreamerInfoActions::TActionSequence *&  actionSequence 
)
protected

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

Definition at line 5460 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(). The pointer is reset to zero (nullptr) when the relevant branch object is destroyed.

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;
#define f(i)
Definition: RSha256.hxx:104
int Int_t
Definition: RtypesCore.h:41
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Definition: TFile.h:48
A TTree object has a header with a name and a title.
Definition: TTree.h:71
virtual Int_t Fill()
Fill all branches.
Definition: TTree.cxx:4395
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
Definition: TTree.cxx:9338
TF1 * f1
Definition: legend1.C:11
auto * t1
Definition: textangle.C:20

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;
A Branch for the case of an object.
friend class TTree
Definition: TBranch.h:70
Int_t Fill()
Definition: TBranch.h:164
for(Int_t i=0;i< n;i++)
Definition: legend1.C:18

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

◆ SetBranchCount()

void TBranchElement::SetBranchCount ( TBranchElement bre)
protected

Set the branch counter for this branch.

Definition at line 5361 of file TBranchElement.cxx.

◆ SetBranchCount2()

void TBranchElement::SetBranchCount2 ( TBranchElement bre)
inlineprotected

Definition at line 128 of file TBranchElement.h.

◆ SetBranchFolder()

virtual void TBranchElement::SetBranchFolder ( )
inlinevirtual

Definition at line 228 of file TBranchElement.h.

◆ SetClassName()

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

Definition at line 229 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 5595 of file TBranchElement.cxx.

◆ SetFillLeavesPtr()

void TBranchElement::SetFillLeavesPtr ( )
protected

Set the FillLeaves pointer to execute the expected operations.

Definition at line 5643 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 5386 of file TBranchElement.cxx.

◆ SetMissing()

void TBranchElement::SetMissing ( )
virtual

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

Definition at line 5443 of file TBranchElement.cxx.

◆ SetObject()

void TBranchElement::SetObject ( void objadd)
virtual

Set object this branch is pointing to.

Reimplemented from TBranch.

Definition at line 5407 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 5420 of file TBranchElement.cxx.

◆ SetParentClass()

void TBranchElement::SetParentClass ( TClass clparent)
inline

Definition at line 260 of file TBranchElement.h.

◆ SetParentName()

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

Definition at line 233 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 5495 of file TBranchElement.cxx.

◆ SetReadLeavesPtr()

void TBranchElement::SetReadLeavesPtr ( )
protected

Set the ReadLeaves pointer to execute the expected operations.

Definition at line 5543 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 5687 of file TBranchElement.cxx.

◆ SetType()

virtual void TBranchElement::SetType ( Int_t  btype)
inlinevirtual

Definition at line 236 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 5724 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 5741 of file TBranchElement.cxx.

◆ SetupInfo()

void TBranchElement::SetupInfo ( )
protected

Set the value of fInfo.

This is part one of InitInfo. To be used as: if (!fInfo) SetupInfo(); It would only be used within InitInfo (and its callees)

Definition at line 2048 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() [1/2]

void TBranchElement::Unroll ( const char *  name,
TClass cl,
TStreamerInfo sinfo,
char *  objptr,
Int_t  bufsize,
Int_t  splitlevel 
)

Split class cl into sub-branches of this branch.

This version of Unroll was formerly embedded in TTree::BronchExec It is moved here so we can make sure to call SetReadActionSequence.

Definition at line 5910 of file TBranchElement.cxx.

◆ Unroll() [2/2]

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

◆ ValidateAddress()

void TBranchElement::ValidateAddress ( ) const
inlineprotected

Definition at line 266 of file TBranchElement.h.

Friends And Related Function Documentation

◆ TLeafElement

friend class TLeafElement
friend

Definition at line 47 of file TBranchElement.h.

◆ TTreeCloner

friend class TTreeCloner
friend

Definition at line 46 of file TBranchElement.h.

Member Data Documentation

◆ fBranchClass

TClassRef TBranchElement::fBranchClass
protected

! Reference to class definition in fClassName

Definition at line 98 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 101 of file TBranchElement.h.

◆ fBranchOffset

Int_t* TBranchElement::fBranchOffset
protected

! Sub-Branch offsets with respect to current transient class

Definition at line 100 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 99 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 96 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 104 of file TBranchElement.h.

◆ fID

Int_t TBranchElement::fID
protected

element serial number in fInfo

Definition at line 81 of file TBranchElement.h.

◆ fInfo

TStreamerInfo* TBranchElement::fInfo
protected

! Pointer to StreamerInfo

Definition at line 89 of file TBranchElement.h.

◆ fInInitInfo

Bool_t TBranchElement::fInInitInfo
protected

! True during the 2nd part of InitInfo (cut recursion).

Definition at line 93 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 94 of file TBranchElement.h.

◆ fIterators

TVirtualCollectionIterators* TBranchElement::fIterators
protected

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

Definition at line 105 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.

◆ fNewIDs

TStreamerInfoActions::TIDs TBranchElement::fNewIDs
protected

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

Definition at line 102 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 97 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 107 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 103 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 95 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 106 of file TBranchElement.h.

Libraries for TBranchElement:
[legend]

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