Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TBranchElement Class Reference

A Branch for the case of an object.

Definition at line 39 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 = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 

Public Member Functions

 TBranchElement ()
 Default and I/O constructor.
 
 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.
 
 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.
 
 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.
 
 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.
 
 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.
 
 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.
 
virtual ~TBranchElement ()
 Destructor.
 
void Browse (TBrowser *b) override
 Browse the branch content.
 
TBranchFindBranch (const char *name) override
 Find the immediate sub-branch with passed name.
 
TLeafFindLeaf (const char *name) override
 Find the leaf corresponding to the name 'searchname'.
 
char * GetAddress () const override
 Get the branch address.
 
TBranchElementGetBranchCount () const
 
TBranchElementGetBranchCount2 () const
 
Int_tGetBranchOffset () const
 
UInt_t GetCheckSum ()
 
virtual TClassGetClass () const
 
const char * GetClassName () const override
 Return the name of the user class whose content is stored in this branch, if any.
 
Int_t GetClassVersion ()
 
virtual const char * GetClonesName () const
 
TVirtualCollectionProxyGetCollectionProxy ()
 Return the collection proxy describing the branch content, if any.
 
TClassGetCurrentClass ()
 Return a pointer to the current type of the data member corresponding to branch element.
 
Int_t GetEntry (Long64_t entry=0, Int_t getall=0) override
 Read all branches of a BranchElement and return total number of bytes.
 
Int_t GetExpectedType (TClass *&clptr, EDataType &type) override
 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.
 
TString GetFullName () const override
 Return the 'full' name of the branch.
 
const char * GetIconName () const override
 Return icon name depending on type of branch element.
 
Int_t GetID () const
 
TStreamerInfoGetInfo () const
 Get streamer info for the branch class.
 
Bool_t GetMakeClass () const override
 Return whether this branch is in a mode where the object are decomposed or not (Also known as MakeClass mode).
 
virtual Int_t GetMaximum () const
 Return maximum count value of the branchcount if any.
 
Int_t GetNdata () const
 
char * GetObject () const
 Return a pointer to our object.
 
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.
 
Double_t GetValue (Int_t i, Int_t len, Bool_t subarr=kFALSE) const
 
virtual void * GetValuePointer () const
 Returns pointer to first data element of this branch.
 
TClassIsA () const override
 
Bool_t IsBranchFolder () const
 
Bool_t IsFolder () const override
 Return kTRUE if more than one leaf, kFALSE otherwise.
 
virtual Bool_t IsObjectOwner () const
 
Bool_t Notify () override
 This method must be overridden to handle object notification.
 
void Print (Option_t *option="") const override
 Print TBranch parameters.
 
void PrintValue (Int_t i) const
 Prints values of leaves.
 
void Reset (Option_t *option="") override
 Reset a Branch.
 
void ResetAddress () override
 Set branch address to zero and free all allocated memory.
 
void ResetAfterMerge (TFileMergeInfo *) override
 Reset a Branch after a Merge operation (drop data but keep customizations)
 
virtual void ResetDeleteObject ()
 Release ownership of any allocated objects.
 
virtual void ResetInitInfo (bool recurse)
 Reset offset and StreamerInfo information from this branch.
 
void SetAddress (void *addobj) override
 Point this branch at an object.
 
void SetBasketSize (Int_t buffsize) override
 Reset the basket size for all sub-branches of this branch element.
 
virtual void SetBranchFolder ()
 
virtual void SetClassName (const char *name)
 
Bool_t SetMakeClass (Bool_t decomposeObj=kTRUE) override
 Set the branch in a mode where the object are decomposed (Also known as MakeClass mode).
 
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.
 
void SetObject (void *objadd) override
 Set object this branch is pointing to.
 
void SetOffset (Int_t offset) override
 Set offset of the object (to which the data member represented by this branch belongs) inside its containing object (if any).
 
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.
 
virtual void SetType (Int_t btype)
 
void SetupAddresses () override
 If the branch address is not set, we set all addresses starting with the top level parent branch.
 
void Streamer (TBuffer &) override
 Stream an object of class TBranchElement.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
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.
 
void UpdateFile () override
 Refresh the value of fDirectory (i.e.
 
- Public Member Functions inherited from TBranch
 TBranch ()
 Default constructor. Used for I/O by default.
 
 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.
 
 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.
 
virtual ~TBranch ()
 Destructor.
 
virtual void AddBasket (TBasket &b, Bool_t ondisk, Long64_t startEntry)
 Add the basket to this branch.
 
virtual void AddLastBasket (Long64_t startEntry)
 Add the start entry of the write basket (not yet created)
 
Int_t BackFill ()
 Loop on all leaves of this branch to back fill Basket buffer.
 
virtual void DeleteBaskets (Option_t *option="")
 Loop on all branch baskets.
 
virtual void DropBaskets (Option_t *option="")
 Loop on all branch baskets.
 
void ExpandBasketArrays ()
 Increase BasketEntry buffer of a minimum of 10 locations and a maximum of 50 per cent of current size.
 
Int_t Fill ()
 
Int_t FlushBaskets ()
 Flush to disk all the baskets of this branch and any of subbranches.
 
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.
 
TBasketGetBasket (Int_t basket)
 
Int_tGetBasketBytes () const
 
Long64_tGetBasketEntry () const
 
virtual Long64_t GetBasketSeek (Int_t basket) const
 Return address of basket in the file.
 
virtual Int_t GetBasketSize () const
 
virtual TListGetBrowsables ()
 Returns (and, if 0, creates) browsable objects for this branch See TVirtualBranchBrowsable::FillListOfBrowsables.
 
ROOT::Experimental::Internal::TBulkBranchReadGetBulkRead ()
 
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.
 
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.
 
const char * GetFileName () const
 
Long64_t GetFirstEntry () const
 
TIOFeatures GetIOFeatures () const
 Returns the IO settings currently in use for this branch.
 
virtual TLeafGetLeaf (const char *name) const
 Return pointer to the 1st Leaf named name in thisBranch.
 
TObjArrayGetListOfBaskets ()
 
TObjArrayGetListOfBranches ()
 
TObjArrayGetListOfLeaves ()
 
Int_t GetMaxBaskets () const
 
TBranchGetMother () const
 Get our top-level parent branch in the tree.
 
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 (?)].
 
Int_t GetSplitLevel () const
 
TBranchGetSubBranch (const TBranch *br) const
 Find the parent branch of child.
 
Long64_t GetTotalSize (Option_t *option="") const
 Return total number of bytes in the branch (including current buffer)
 
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.
 
TBufferGetTransientBuffer (Int_t size)
 Returns the transient buffer currently used by this TBranch for reading/writing baskets.
 
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.
 
Bool_t IsAutoDelete () const
 Return kTRUE if an existing object in a TBranchObject must be deleted.
 
virtual void KeepCircular (Long64_t maxEntries)
 keep a maximum of fMaxEntries in memory
 
virtual Int_t LoadBaskets ()
 Baskets associated to this branch are forced to be in memory.
 
void PrintCacheInfo () const
 Print the information we have about which basket is currently cached and whether they have been 'used'/'read' from the cache.
 
virtual void ReadBasket (TBuffer &b)
 Loop on all leaves of this branch to read Basket buffer.
 
virtual void Refresh (TBranch *b)
 Refresh this branch using new information in b This function is called by TTree::Refresh.
 
virtual void ResetReadEntry ()
 
virtual void SetAutoDelete (Bool_t autodel=kTRUE)
 Set the automatic delete bit.
 
virtual void SetBufferAddress (TBuffer *entryBuffer)
 Set address of this branch directly from a TBuffer to avoid streaming.
 
void SetCompressionAlgorithm (Int_t algorithm=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
 Set compression algorithm.
 
void SetCompressionLevel (Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin)
 Set compression level.
 
void SetCompressionSettings (Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 Set compression settings.
 
virtual void SetEntries (Long64_t entries)
 Set the number of entries in this branch.
 
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.
 
virtual void SetFile (const char *filename)
 Set file where this branch writes/reads its buffers.
 
virtual void SetFile (TFile *file=nullptr)
 Set file where this branch writes/reads its buffers.
 
virtual void SetFirstEntry (Long64_t entry)
 set the first entry number (case of TBranchSTL)
 
void SetIOFeatures (TIOFeatures &features)
 
virtual void SetStatus (Bool_t status=1)
 Set branch status to Process or DoNotProcess.
 
virtual void SetTree (TTree *tree)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
Bool_t SupportsBulkRead () const
 Returns true if this branch supports bulk IO, false otherwise.
 
virtual void UpdateAddress ()
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
void Clear (Option_t *option="") override
 Set name and title to empty strings ("").
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
 
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects.
 
void Copy (TObject &named) const override
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
const char * GetName () const override
 Returns name of object.
 
const char * GetTitle () const override
 Returns title of object.
 
ULong_t Hash () const override
 Return hash value for this object.
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 List TNamed name and title.
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
void Print (Option_t *option="") const override
 Print TNamed name and title.
 
virtual void SetName (const char *name)
 Set the name of the TNamed.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject.
 
void Streamer (TBuffer &) override
 Stream an object of class TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
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.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
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.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE 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).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
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.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 AttFill default constructor.
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor.
 
virtual ~TAttFill ()
 AttFill destructor.
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill.
 
virtual Color_t GetFillColor () const
 Return the fill area color.
 
virtual Style_t GetFillStyle () const
 Return the fill area style.
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary.
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values.
 
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.
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes.
 
virtual void SetFillColor (Color_t fcolor)
 Set the fill area color.
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color.
 
virtual void SetFillStyle (Style_t fstyle)
 Set the fill area style.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TBranch
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static void ResetCount ()
 Static function resetting fgCount.
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 
- Static Public Member Functions inherited from TAttFill
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 

Protected Types

enum  EStatusBits {
  kBranchFolder = (1ULL << ( 14 )) , kDeleteObject = (1ULL << ( 16 )) , kCache = (1ULL << ( 18 )) , kOwnOnfileObj = (1ULL << ( 19 )) ,
  kAddressSet = (1ULL << ( 20 )) , kMakeClass = (1ULL << ( 21 )) , kDecomposedObj = (1ULL << ( 21 ))
}
 Types. More...
 
- Protected Types inherited from TBranch
using BulkObj = ROOT::Experimental::Internal::TBulkBranchRead
 
using CacheInfo_t = ROOT::Internal::TBranchCacheInfo
 
enum  EStatusBits {
  kDoNotProcess = ::kDoNotProcess , kIsClone = ::kIsClone , kBranchObject = ::kBranchObject , kBranchAny = ::kBranchAny ,
  kAutoDelete = (1ULL << ( 15 )) , kDoNotUseBufferMap = (1ULL << ( 22 ))
}
 TBranch status bits. More...
 
typedef void(TBranch::* FillLeaves_t) (TBuffer &b)
 
typedef void(TBranch::* ReadLeaves_t) (TBuffer &b)
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 

Protected Member Functions

void BuildTitle (const char *name)
 Set branch and leaf name and title in the case of a container sub-branch.
 
void FillLeavesAssociativeCollectionMember (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesClones (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesClonesMember (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesCollection (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesCollectionMember (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesCollectionSplitPtrMember (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesCollectionSplitVectorPtrMember (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesCustomStreamer (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesImpl (TBuffer &b)
 Unconfiguration Fill Leave function.
 
void FillLeavesMakeClass (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesMember (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesMemberBranchCount (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
void FillLeavesMemberCounter (TBuffer &b)
 Write leaves into i/o buffers for this branch.
 
TStreamerInfoFindOnfileInfo (TClass *valueClass, const TObjArray &branches) const
 
TStreamerInfoGetInfoImp () const
 Get streamer info for the branch class.
 
TClassGetParentClass ()
 Return a pointer to the parent class of the branch element.
 
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.
 
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.
 
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.
 
virtual void InitializeOffsets ()
 Initialize the base class subobjects offsets of our sub-branches and set fOffset if we are a container sub-branch.
 
virtual void InitInfo ()
 Init the streamer info for the branch class, try to compensate for class code unload/reload and schema evolution.
 
Bool_t IsMissingCollection () const
 Detect a collection written using a zero pointer in old versions of root.
 
void ReadLeavesClones (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesClonesMember (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesCollection (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesCollectionMember (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesCollectionSplitPtrMember (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesCollectionSplitVectorPtrMember (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesCustomStreamer (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesImpl (TBuffer &b)
 Unconfiguration Read Leave function.
 
void ReadLeavesMakeClass (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesMember (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesMemberBranchCount (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReadLeavesMemberCounter (TBuffer &b)
 Read leaves into i/o buffers for this branch.
 
void ReleaseObject ()
 Delete any object we may have allocated on a previous call to SetAddress.
 
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.
 
void SetAddressImpl (void *addr, Bool_t implied) override
 See TBranchElement::SetAddress.
 
void SetBranchCount (TBranchElement *bre)
 Set the branch counter for this branch.
 
void SetBranchCount2 (TBranchElement *bre)
 
void SetFillActionSequence ()
 Set the sequence of actions needed to write the data out from the buffer.
 
void SetFillLeavesPtr ()
 Set the FillLeaves pointer to execute the expected operations.
 
void SetReadActionSequence ()
 Set the sequence of actions needed to read the data out of the buffer.
 
void SetReadLeavesPtr ()
 Set the ReadLeaves pointer to execute the expected operations.
 
void SetupAddressesImpl ()
 If the branch address is not set, we set all addresses starting with the top level parent branch.
 
void SetupInfo ()
 Set the value of fInfo.
 
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.
 
void ValidateAddress () const
 
- Protected Member Functions inherited from TBranch
void FillLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to fill Basket buffer.
 
TBasketGetFreshBasket (Int_t basketnumber, TBuffer *user_buffer)
 Return a fresh basket by either reusing an existing basket that needs to be drop (according to TTree::MemoryFull) or create a new one.
 
TBasketGetFreshCluster (TBuffer *user_buffer)
 Drops the cluster two behind the current cluster and returns a fresh basket by either reusing or creating a new one.
 
TString GetRealFileName () const
 Get real file name.
 
void Init (const char *name, const char *leaflist, Int_t compress)
 
void ReadLeaves0Impl (TBuffer &b)
 Read zero leaves without the overhead of a loop.
 
void ReadLeaves1Impl (TBuffer &b)
 Read one leaf without the overhead of a loop.
 
void ReadLeaves2Impl (TBuffer &b)
 Read two leaves without the overhead of a loop.
 
void ReadLeavesImpl (TBuffer &b)
 Loop on all leaves of this branch to read Basket buffer.
 
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).
 
void MakeZombie ()
 

Protected Attributes

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

Private Member Functions

 TBranchElement (const TBranchElement &)=delete
 
Int_t FillImpl (ROOT::Internal::TBranchIMTHelper *) override
 Loop on all leaves of this branch to fill the basket buffer.
 
TBranchElementoperator= (const TBranchElement &)=delete
 

Static Private Member Functions

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

Friends

class TLeafElement
 
class TTreeCloner
 

Additional Inherited Members

- Static Protected Attributes inherited from TBranch
static Int_t fgCount = 0
 ! branch counter
 

#include <TBranchElement.h>

Inheritance diagram for TBranchElement:
[legend]

Member Enumeration Documentation

◆ EBranchElementType

Enumerator
kLeafNode 
kBaseClassNode 
kObjectNode 
kClonesNode 
kSTLNode 
kClonesMemberNode 
kSTLMemberNode 

Definition at line 238 of file TBranchElement.h.

◆ EStatusBits

Types.

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 47 of file TBranchElement.h.

Constructor & Destructor Documentation

◆ TBranchElement() [1/8]

TBranchElement::TBranchElement ( const TBranchElement )
privatedelete

◆ TBranchElement() [2/8]

TBranchElement::TBranchElement ( )

Default and I/O constructor.

Definition at line 133 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 178 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 662 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 817 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 225 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 689 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 843 of file TBranchElement.cxx.

◆ ~TBranchElement()

TBranchElement::~TBranchElement ( )
virtual

Destructor.

Definition at line 975 of file TBranchElement.cxx.

Member Function Documentation

◆ Browse()

void TBranchElement::Browse ( TBrowser b)
overridevirtual

Browse the branch content.

Reimplemented from TBranch.

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

◆ Class()

static TClass * TBranchElement::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TBranchElement::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TBranchElement::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 255 of file TBranchElement.h.

◆ DeclFileName()

static const char * TBranchElement::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 255 of file TBranchElement.h.

◆ FillImpl()

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

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 1229 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 1561 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 1592 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 1617 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 1426 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 1530 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 1499 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 1469 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 1646 of file TBranchElement.cxx.

◆ FillLeavesImpl()

void TBranchElement::FillLeavesImpl ( TBuffer b)
protected

Unconfiguration Fill Leave function.

Definition at line 4666 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 1320 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 1734 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 1676 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 1697 of file TBranchElement.cxx.

◆ FindBranch()

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

Find the immediate sub-branch with passed name.

Reimplemented from TBranch.

Definition at line 1787 of file TBranchElement.cxx.

◆ FindLeaf()

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

Find the leaf corresponding to the name 'searchname'.

Reimplemented from TBranch.

Definition at line 1872 of file TBranchElement.cxx.

◆ FindOnfileInfo()

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

Definition at line 1934 of file TBranchElement.cxx.

◆ GetAddress()

char * TBranchElement::GetAddress ( ) const
overridevirtual

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

◆ GetBranchCount()

TBranchElement * TBranchElement::GetBranchCount ( ) const
inline

Definition at line 182 of file TBranchElement.h.

◆ GetBranchCount2()

TBranchElement * TBranchElement::GetBranchCount2 ( ) const
inline

Definition at line 183 of file TBranchElement.h.

◆ GetBranchOffset()

Int_t * TBranchElement::GetBranchOffset ( ) const
inline

Definition at line 184 of file TBranchElement.h.

◆ GetCheckSum()

UInt_t TBranchElement::GetCheckSum ( )
inline

Definition at line 185 of file TBranchElement.h.

◆ GetClass()

virtual TClass * TBranchElement::GetClass ( ) const
inlinevirtual

Definition at line 187 of file TBranchElement.h.

◆ GetClassName()

const char * TBranchElement::GetClassName ( ) const
inlineoverridevirtual

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 186 of file TBranchElement.h.

◆ GetClassVersion()

Int_t TBranchElement::GetClassVersion ( )
inline

Definition at line 210 of file TBranchElement.h.

◆ GetClonesName()

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

Definition at line 188 of file TBranchElement.h.

◆ GetCollectionProxy()

TVirtualCollectionProxy * TBranchElement::GetCollectionProxy ( )

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

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

◆ GetEntry()

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

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

◆ GetExpectedType()

Int_t TBranchElement::GetExpectedType ( TClass *&  clptr,
EDataType type 
)
overridevirtual

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

◆ GetFullName()

TString TBranchElement::GetFullName ( ) const
overridevirtual

Return the 'full' name of the branch.

In particular prefix the mother's name when it does not end in a trailing dot and thus is not part of the branch name

Reimplemented from TBranch.

Definition at line 2841 of file TBranchElement.cxx.

◆ GetIconName()

const char * TBranchElement::GetIconName ( ) const
overridevirtual

Return icon name depending on type of branch element.

Reimplemented from TBranch.

Definition at line 2855 of file TBranchElement.cxx.

◆ GetID()

Int_t TBranchElement::GetID ( ) const
inline

Definition at line 195 of file TBranchElement.h.

◆ GetInfo()

TStreamerInfo * TBranchElement::GetInfo ( ) const

Get streamer info for the branch class.

Definition at line 1024 of file TBranchElement.cxx.

◆ GetInfoImp()

TStreamerInfo * TBranchElement::GetInfoImp ( ) const
inlineprotected

Get streamer info for the branch class.

Definition at line 1011 of file TBranchElement.cxx.

◆ GetMakeClass()

Bool_t TBranchElement::GetMakeClass ( ) const
overridevirtual

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

◆ GetMaximum()

Int_t TBranchElement::GetMaximum ( ) const
virtual

Return maximum count value of the branchcount if any.

Definition at line 2876 of file TBranchElement.cxx.

◆ GetNdata()

Int_t TBranchElement::GetNdata ( ) const
inline

Definition at line 202 of file TBranchElement.h.

◆ GetObject()

char * TBranchElement::GetObject ( ) const

Return a pointer to our object.

Definition at line 2887 of file TBranchElement.cxx.

◆ GetOnfileObject()

TVirtualArray * TBranchElement::GetOnfileObject ( ) const
inline

Definition at line 199 of file TBranchElement.h.

◆ GetParentClass()

TClass * TBranchElement::GetParentClass ( )
protected

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

Definition at line 2896 of file TBranchElement.cxx.

◆ GetParentName()

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

Definition at line 200 of file TBranchElement.h.

◆ GetStreamerType()

Int_t TBranchElement::GetStreamerType ( ) const
inline

Definition at line 204 of file TBranchElement.h.

◆ GetTargetClass()

virtual TClass * TBranchElement::GetTargetClass ( )
inlinevirtual

Definition at line 205 of file TBranchElement.h.

◆ GetType()

Int_t TBranchElement::GetType ( ) const
inline

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

◆ GetTypeName()

const char * TBranchElement::GetTypeName ( ) const
virtual

Return type name of element in the branch.

Definition at line 2904 of file TBranchElement.cxx.

◆ GetValue()

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

Definition at line 207 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 3056 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 716 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 270 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 869 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 address 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 3139 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 2209 of file TBranchElement.cxx.

◆ IsA()

TClass * TBranchElement::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TBranch.

Definition at line 255 of file TBranchElement.h.

◆ IsBranchFolder()

Bool_t TBranchElement::IsBranchFolder ( ) const
inline

Definition at line 211 of file TBranchElement.h.

◆ IsFolder()

Bool_t TBranchElement::IsFolder ( ) const
overridevirtual

Return kTRUE if more than one leaf, kFALSE otherwise.

Reimplemented from TBranch.

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

◆ IsObjectOwner()

virtual Bool_t TBranchElement::IsObjectOwner ( ) const
inlinevirtual

Definition at line 213 of file TBranchElement.h.

◆ Notify()

Bool_t TBranchElement::Notify ( )
inlineoverridevirtual

This method must be overridden to handle object notification.

Reimplemented from TObject.

Definition at line 214 of file TBranchElement.h.

◆ operator=()

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

◆ Print()

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

Print TBranch parameters.

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

Reimplemented from TBranch.

Definition at line 3838 of file TBranchElement.cxx.

◆ PrintValue()

void TBranchElement::PrintValue ( Int_t  i) const

Prints values of leaves.

Definition at line 3930 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 4464 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 4501 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 4269 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 4431 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 4367 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 4400 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 4649 of file TBranchElement.cxx.

◆ ReadLeavesImpl()

void TBranchElement::ReadLeavesImpl ( TBuffer b)
protected

Unconfiguration Read Leave function.

Definition at line 4016 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 4025 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 4538 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 4576 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 4613 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 4674 of file TBranchElement.cxx.

◆ Reset()

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

Reset a Branch.

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

Reimplemented from TBranch.

Definition at line 4754 of file TBranchElement.cxx.

◆ ResetAddress()

void TBranchElement::ResetAddress ( )
overridevirtual

Set branch address to zero and free all allocated memory.

Reimplemented from TBranch.

Definition at line 4782 of file TBranchElement.cxx.

◆ ResetAfterMerge()

void TBranchElement::ResetAfterMerge ( TFileMergeInfo info)
overridevirtual

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

Reimplemented from TBranch.

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

◆ ResetInitInfo()

void TBranchElement::ResetInitInfo ( bool  recurse)
virtual

Reset offset and StreamerInfo information from this branch.

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

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

◆ SetAddress()

void TBranchElement::SetAddress ( void *  addr)
overridevirtual

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
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Definition TFile.h:51
TObject * Clone(const char *newname="") const override
Make a clone of an object using the Streamer facility.
Definition TNamed.cxx:74
A TTree represents a columnar dataset.
Definition TTree.h:79
virtual Int_t Fill()
Fill all branches.
Definition TTree.cxx:4594
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) override
Write this object to the current directory.
Definition TTree.cxx:9708
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;
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
A Branch for the case of an object.
friend class TTree
Definition TBranch.h:95
Int_t Fill()
Definition TBranch.h:201
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 4964 of file TBranchElement.cxx.

◆ SetAddressImpl()

void TBranchElement::SetAddressImpl ( void *  addr,
Bool_t  implied 
)
overrideprotectedvirtual

See TBranchElement::SetAddress.

If implied is true, we do not over-ride existing address for sub-branches.

Reimplemented from TBranch.

Definition at line 4972 of file TBranchElement.cxx.

◆ SetBasketSize()

void TBranchElement::SetBasketSize ( Int_t  buffsize)
overridevirtual

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

Reimplemented from TBranch.

Definition at line 5518 of file TBranchElement.cxx.

◆ SetBranchCount()

void TBranchElement::SetBranchCount ( TBranchElement bre)
protected

Set the branch counter for this branch.

Definition at line 5531 of file TBranchElement.cxx.

◆ SetBranchCount2()

void TBranchElement::SetBranchCount2 ( TBranchElement bre)
inlineprotected

Definition at line 124 of file TBranchElement.h.

◆ SetBranchFolder()

virtual void TBranchElement::SetBranchFolder ( )
inlinevirtual

Definition at line 226 of file TBranchElement.h.

◆ SetClassName()

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

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

◆ SetFillLeavesPtr()

void TBranchElement::SetFillLeavesPtr ( )
protected

Set the FillLeaves pointer to execute the expected operations.

Definition at line 5813 of file TBranchElement.cxx.

◆ SetMakeClass()

Bool_t TBranchElement::SetMakeClass ( Bool_t  decomposeObj = kTRUE)
overridevirtual

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

◆ SetObject()

void TBranchElement::SetObject ( void *  objadd)
overridevirtual

Set object this branch is pointing to.

Reimplemented from TBranch.

Definition at line 5577 of file TBranchElement.cxx.

◆ SetOffset()

void TBranchElement::SetOffset ( Int_t  offset)
overridevirtual

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

◆ SetParentClass()

void TBranchElement::SetParentClass ( TClass clparent)
inline

Definition at line 258 of file TBranchElement.h.

◆ SetParentName()

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

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

◆ SetReadLeavesPtr()

void TBranchElement::SetReadLeavesPtr ( )
protected

Set the ReadLeaves pointer to execute the expected operations.

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

◆ SetType()

virtual void TBranchElement::SetType ( Int_t  btype)
inlinevirtual

Definition at line 234 of file TBranchElement.h.

◆ SetupAddresses()

void TBranchElement::SetupAddresses ( )
overridevirtual

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 5894 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 5911 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 2119 of file TBranchElement.cxx.

◆ Streamer()

void TBranchElement::Streamer ( TBuffer R__b)
overridevirtual

Stream an object of class TBranchElement.

Reimplemented from TBranch.

Definition at line 5966 of file TBranchElement.cxx.

◆ StreamerNVirtual()

void TBranchElement::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 255 of file TBranchElement.h.

◆ SwitchContainer()

void TBranchElement::SwitchContainer ( TObjArray branches)
staticprivate

Modify the container type of the branches.

Definition at line 85 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 6080 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 hierarchy 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 6214 of file TBranchElement.cxx.

◆ UpdateFile()

void TBranchElement::UpdateFile ( )
overridevirtual

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

◆ ValidateAddress()

void TBranchElement::ValidateAddress ( ) const
inlineprotected

Definition at line 264 of file TBranchElement.h.

Friends And Related Symbol Documentation

◆ TLeafElement

friend class TLeafElement
friend

Definition at line 43 of file TBranchElement.h.

◆ TTreeCloner

friend class TTreeCloner
friend

Definition at line 42 of file TBranchElement.h.

Member Data Documentation

◆ fBranchClass

TClassRef TBranchElement::fBranchClass
protected

! Reference to class definition in fClassName

Definition at line 94 of file TBranchElement.h.

◆ fBranchCount

TBranchElement* TBranchElement::fBranchCount
protected

pointer to primary branchcount branch

Definition at line 83 of file TBranchElement.h.

◆ fBranchCount2

TBranchElement* TBranchElement::fBranchCount2
protected

pointer to secondary branchcount branch

Definition at line 84 of file TBranchElement.h.

◆ fBranchID

Int_t TBranchElement::fBranchID
protected

! ID number assigned by a TRefTable.

Definition at line 97 of file TBranchElement.h.

◆ fBranchOffset

Int_t* TBranchElement::fBranchOffset
protected

! Sub-Branch offsets with respect to current transient class

Definition at line 96 of file TBranchElement.h.

◆ fCheckSum

UInt_t TBranchElement::fCheckSum
protected

CheckSum of class.

Definition at line 64 of file TBranchElement.h.

◆ fClassName

TString TBranchElement::fClassName
protected

Class name of referenced object.

Definition at line 60 of file TBranchElement.h.

◆ fClassVersion

Version_t TBranchElement::fClassVersion
protected

Version number of class.

Definition at line 65 of file TBranchElement.h.

◆ fClonesClass

TClassRef TBranchElement::fClonesClass
protected

! Reference to class definition in fClonesName

Definition at line 95 of file TBranchElement.h.

◆ fClonesName

TString TBranchElement::fClonesName
protected

Name of class in TClonesArray (if any)

Definition at line 62 of file TBranchElement.h.

◆ fCollProxy

TVirtualCollectionProxy* TBranchElement::fCollProxy
protected

! collection interface (if any)

Definition at line 63 of file TBranchElement.h.

◆ fCurrentClass

TClassRef TBranchElement::fCurrentClass
protected

! Reference to current (transient) class definition

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

◆ fID

Int_t TBranchElement::fID
protected

element serial number in fInfo

Definition at line 66 of file TBranchElement.h.

◆ fInfo

TStreamerInfo* TBranchElement::fInfo
protected

! Pointer to StreamerInfo

Definition at line 85 of file TBranchElement.h.

◆ fInInitInfo

Bool_t TBranchElement::fInInitInfo
protected

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

Definition at line 89 of file TBranchElement.h.

◆ fInit

Bool_t TBranchElement::fInit
protected

! Initialization flag for branch assignment

Definition at line 88 of file TBranchElement.h.

◆ fInitOffsets

Bool_t TBranchElement::fInitOffsets
protected

! Initialization flag to not endlessly recalculate offsets

Definition at line 90 of file TBranchElement.h.

◆ fIterators

TVirtualCollectionIterators* TBranchElement::fIterators
protected

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

Definition at line 101 of file TBranchElement.h.

◆ fMaximum

Int_t TBranchElement::fMaximum
protected

Maximum entries for a TClonesArray or variable array.

Definition at line 80 of file TBranchElement.h.

◆ fNdata

Int_t TBranchElement::fNdata
protected

! Number of data in this branch

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

◆ fObject

char* TBranchElement::fObject
protected

! Pointer to object at *fAddress

Definition at line 86 of file TBranchElement.h.

◆ fOnfileObject

TVirtualArray* TBranchElement::fOnfileObject
protected

! Place holder for the onfile representation of data members.

Definition at line 87 of file TBranchElement.h.

◆ fParentClass

TClassRef TBranchElement::fParentClass
protected

! Reference to class definition in fParentName

Definition at line 93 of file TBranchElement.h.

◆ fParentName

TString TBranchElement::fParentName
protected

Name of parent class.

Definition at line 61 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 103 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 99 of file TBranchElement.h.

◆ fSTLtype

Int_t TBranchElement::fSTLtype
protected

! STL container type

Definition at line 81 of file TBranchElement.h.

◆ fStreamerType

Int_t TBranchElement::fStreamerType
protected

branch streamer type

Definition at line 79 of file TBranchElement.h.

◆ fTargetClass

TClassRef TBranchElement::fTargetClass
protected

! Reference to the target in-memory class

Definition at line 91 of file TBranchElement.h.

◆ fType

Int_t TBranchElement::fType
protected

Branch type.

Note on fType values:

  • -1 unsplit object with custom streamer at time of writing
  • 0 unsplit object with default streamer at time of writing OR simple data member of split object (fID==-1 for the former)
  • 1 base class of a split object.
  • 2 class typed data member of a split object
  • 3 branch count of a split TClonesArray
  • 31 data member of the content of a split TClonesArray
  • 4 branch count of a split STL Collection.
  • 41 data member of the content of a split STL collection

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

Libraries for TBranchElement:

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