Logo ROOT   6.14/05
Reference Guide
Go to the documentation of this file.
1 // @(#)root/tree:$Id$
2 // Author: Rene Brun 12/01/96
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
12 #ifndef ROOT_TBranch
13 #define ROOT_TBranch
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TBranch //
19 // //
20 // A TTree object is a list of TBranchs. //
21 // A TBranch describes the branch data structure and supports : //
22 // the list of TBaskets (branch buffers) associated to this branch. //
23 // the list of TLeaves (branch description) //
24 //////////////////////////////////////////////////////////////////////////
26 #include <memory>
28 #include "TNamed.h"
30 #include "TObjArray.h"
32 #include "TAttFill.h"
34 #include "TDataType.h"
36 #include "ROOT/TIOFeatures.hxx"
38 #include "TBranchCacheInfo.h"
40 class TTree;
41 class TBasket;
42 class TLeaf;
43 class TBrowser;
44 class TDirectory;
45 class TFile;
46 class TClonesArray;
47 class TTreeCloner;
48 class TTreeCache;
50  const Int_t kDoNotProcess = BIT(10); // Active bit for branches
51  const Int_t kIsClone = BIT(11); // to indicate a TBranchClones
52  const Int_t kBranchObject = BIT(12); // branch is a TObject*
53  const Int_t kBranchAny = BIT(17); // branch is an object*
56 namespace ROOT {
57  namespace Internal {
58  class TBranchIMTHelper; ///< A helper class for managing IMT work during TTree:Fill operations.
59  }
60 }
62 class TBranch : public TNamed , public TAttFill {
65 protected:
66  friend class TTreeCache;
67  friend class TTreeCloner;
68  friend class TTree;
70  // TBranch status bits
71  enum EStatusBits {
72  kDoNotProcess = ::kDoNotProcess, // Active bit for branches
73  kIsClone = ::kIsClone, // to indicate a TBranchClones
74  kBranchObject = ::kBranchObject, // branch is a TObject*
75  kBranchAny = ::kBranchAny, // branch is an object*
76  // kMapObject = kBranchObject | kBranchAny;
77  kAutoDelete = BIT(15),
79  kDoNotUseBufferMap = BIT(22) // If set, at least one of the entry in the branch will use the buffer's map of classname and objects.
80  };
82  static Int_t fgCount; ///<! branch counter
83  Int_t fCompress; ///< Compression level and algorithm
84  Int_t fBasketSize; ///< Initial Size of Basket Buffer
85  Int_t fEntryOffsetLen; ///< Initial Length of fEntryOffset table in the basket buffers
86  Int_t fWriteBasket; ///< Last basket number written
87  Long64_t fEntryNumber; ///< Current entry number (last one filled in this branch)
88  TIOFeatures fIOFeatures; ///< IO features for newly-created baskets.
89  Int_t fOffset; ///< Offset of this branch
90  Int_t fMaxBaskets; ///< Maximum number of Baskets so far
91  Int_t fNBaskets; ///<! Number of baskets in memory
92  Int_t fSplitLevel; ///< Branch split level
93  Int_t fNleaves; ///<! Number of leaves
94  Int_t fReadBasket; ///<! Current basket number when reading
95  Long64_t fReadEntry; ///<! Current entry number when reading
96  Long64_t fFirstBasketEntry; ///<! First entry in the current basket.
97  Long64_t fNextBasketEntry; ///<! Next entry that will requires us to go to the next basket
98  TBasket *fCurrentBasket; ///<! Pointer to the current basket.
99  Long64_t fEntries; ///< Number of entries
100  Long64_t fFirstEntry; ///< Number of the first entry in this branch
101  Long64_t fTotBytes; ///< Total number of bytes in all leaves before compression
102  Long64_t fZipBytes; ///< Total number of bytes in all leaves after compression
103  TObjArray fBranches; ///< -> List of Branches of this branch
104  TObjArray fLeaves; ///< -> List of leaves of this branch
105  TObjArray fBaskets; ///< -> List of baskets of this branch
106  Int_t *fBasketBytes; ///<[fMaxBaskets] Length of baskets on file
107  Long64_t *fBasketEntry; ///<[fMaxBaskets] Table of first entry in each basket
108  Long64_t *fBasketSeek; ///<[fMaxBaskets] Addresses of baskets on file
109  TTree *fTree; ///<! Pointer to Tree header
110  TBranch *fMother; ///<! Pointer to top-level parent branch in the tree.
111  TBranch *fParent; ///<! Pointer to parent branch.
112  char *fAddress; ///<! Address of 1st leaf (variable or object)
113  TDirectory *fDirectory; ///<! Pointer to directory where this branch buffers are stored
114  TString fFileName; ///< Name of file where buffers are stored ("" if in same file as Tree header)
115  TBuffer *fEntryBuffer; ///<! Buffer used to directly pass the content without streaming
116  TBuffer *fTransientBuffer; ///<! Pointer to the current transient buffer.
117  TList *fBrowsables; ///<! List of TVirtualBranchBrowsables used for Browse()
119  Bool_t fSkipZip; ///<! After being read, the buffer will not be unzipped.
122  CacheInfo_t fCacheInfo; ///<! Hold info about which basket are in the cache and if they have been retrieved from the cache.
124  typedef void (TBranch::*ReadLeaves_t)(TBuffer &b);
125  ReadLeaves_t fReadLeaves; ///<! Pointer to the ReadLeaves implementation to use.
126  typedef void (TBranch::*FillLeaves_t)(TBuffer &b);
127  FillLeaves_t fFillLeaves; ///<! Pointer to the FillLeaves implementation to use.
128  void ReadLeavesImpl(TBuffer &b);
129  void ReadLeaves0Impl(TBuffer &b);
130  void ReadLeaves1Impl(TBuffer &b);
131  void ReadLeaves2Impl(TBuffer &b);
132  void FillLeavesImpl(TBuffer &b);
134  void SetSkipZip(Bool_t skip = kTRUE) { fSkipZip = skip; }
135  void Init(const char *name, const char *leaflist, Int_t compress);
137  TBasket *GetFreshBasket();
138  TBasket *GetFreshCluster();
139  Int_t WriteBasket(TBasket* basket, Int_t where) { return WriteBasketImpl(basket, where, nullptr); }
141  TString GetRealFileName() const;
143 private:
144  Int_t FillEntryBuffer(TBasket* basket,TBuffer* buf, Int_t& lnew);
145  Int_t WriteBasketImpl(TBasket* basket, Int_t where, ROOT::Internal::TBranchIMTHelper *);
146  TBranch(const TBranch&) = delete; // not implemented
147  TBranch& operator=(const TBranch&) = delete; // not implemented
149 public:
150  TBranch();
151  TBranch(TTree *tree, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=-1);
152  TBranch(TBranch *parent, const char *name, void *address, const char *leaflist, Int_t basketsize=32000, Int_t compress=-1);
153  virtual ~TBranch();
155  virtual void AddBasket(TBasket &b, Bool_t ondisk, Long64_t startEntry);
156  virtual void AddLastBasket(Long64_t startEntry);
157  Int_t BackFill();
158  virtual void Browse(TBrowser *b);
159  virtual void DeleteBaskets(Option_t* option="");
160  virtual void DropBaskets(Option_t *option = "");
161  void ExpandBasketArrays();
162  Int_t Fill() { return FillImpl(nullptr); }
163  virtual Int_t FillImpl(ROOT::Internal::TBranchIMTHelper *);
164  virtual TBranch *FindBranch(const char *name);
165  virtual TLeaf *FindLeaf(const char *name);
167  Int_t FlushOneBasket(UInt_t which);
169  virtual char *GetAddress() const {return fAddress;}
170  TBasket *GetBasket(Int_t basket);
171  Int_t *GetBasketBytes() const {return fBasketBytes;}
172  Long64_t *GetBasketEntry() const {return fBasketEntry;}
173  virtual Long64_t GetBasketSeek(Int_t basket) const;
174  virtual Int_t GetBasketSize() const {return fBasketSize;}
175  virtual TList *GetBrowsables();
176  virtual const char* GetClassName() const;
177  Int_t GetCompressionAlgorithm() const;
178  Int_t GetCompressionLevel() const;
179  Int_t GetCompressionSettings() const;
180  TDirectory *GetDirectory() const {return fDirectory;}
181  virtual Int_t GetEntry(Long64_t entry=0, Int_t getall = 0);
182  virtual Int_t GetEntryExport(Long64_t entry, Int_t getall, TClonesArray *list, Int_t n);
183  Int_t GetEntryOffsetLen() const { return fEntryOffsetLen; }
184  Int_t GetEvent(Long64_t entry=0) {return GetEntry(entry);}
185  const char *GetIconName() const;
186  virtual Int_t GetExpectedType(TClass *&clptr,EDataType &type);
187  virtual TLeaf *GetLeaf(const char *name) const;
188  virtual TFile *GetFile(Int_t mode=0);
189  const char *GetFileName() const {return fFileName.Data();}
190  Int_t GetOffset() const {return fOffset;}
191  Int_t GetReadBasket() const {return fReadBasket;}
192  Long64_t GetReadEntry() const {return fReadEntry;}
193  Int_t GetWriteBasket() const {return fWriteBasket;}
194  Long64_t GetTotalSize(Option_t *option="") const;
195  Long64_t GetTotBytes(Option_t *option="") const;
196  Long64_t GetZipBytes(Option_t *option="") const;
197  Long64_t GetEntryNumber() const {return fEntryNumber;}
198  Long64_t GetFirstEntry() const {return fFirstEntry; }
199  TIOFeatures GetIOFeatures() const;
200  TObjArray *GetListOfBaskets() {return &fBaskets;}
203  Int_t GetMaxBaskets() const {return fMaxBaskets;}
204  Int_t GetNleaves() const {return fNleaves;}
205  Int_t GetSplitLevel() const {return fSplitLevel;}
206  Long64_t GetEntries() const {return fEntries;}
207  TTree *GetTree() const {return fTree;}
208  virtual Int_t GetRow(Int_t row);
209  virtual Bool_t GetMakeClass() const;
210  TBranch *GetMother() const;
211  TBranch *GetSubBranch(const TBranch *br) const;
213  Bool_t IsAutoDelete() const;
214  Bool_t IsFolder() const;
215  virtual void KeepCircular(Long64_t maxEntries);
216  virtual Int_t LoadBaskets();
217  virtual void Print(Option_t *option="") const;
218  void PrintCacheInfo() const;
219  virtual void ReadBasket(TBuffer &b);
220  virtual void Refresh(TBranch *b);
221  virtual void Reset(Option_t *option="");
222  virtual void ResetAfterMerge(TFileMergeInfo *);
223  virtual void ResetAddress();
224  virtual void ResetReadEntry() {fReadEntry = -1;}
225  virtual void SetAddress(void *add);
226  virtual void SetObject(void *objadd);
227  virtual void SetAutoDelete(Bool_t autodel=kTRUE);
228  virtual void SetBasketSize(Int_t buffsize);
229  virtual void SetBufferAddress(TBuffer *entryBuffer);
230  void SetCompressionAlgorithm(Int_t algorithm=0);
231  void SetCompressionLevel(Int_t level=1);
232  void SetCompressionSettings(Int_t settings=1);
233  virtual void SetEntries(Long64_t entries);
234  virtual void SetEntryOffsetLen(Int_t len, Bool_t updateSubBranches = kFALSE);
235  virtual void SetFirstEntry( Long64_t entry );
236  virtual void SetFile(TFile *file=0);
237  virtual void SetFile(const char *filename);
238  void SetIOFeatures(TIOFeatures &features) {fIOFeatures = features;}
239  virtual Bool_t SetMakeClass(Bool_t decomposeObj = kTRUE);
240  virtual void SetOffset(Int_t offset=0) {fOffset=offset;}
241  virtual void SetStatus(Bool_t status=1);
242  virtual void SetTree(TTree *tree) { fTree = tree;}
243  virtual void SetupAddresses();
244  virtual void UpdateAddress() {;}
245  virtual void UpdateFile();
247  static void ResetCount();
249  ClassDef(TBranch, 13); // Branch descriptor
250 };
252 //______________________________________________________________________________
254 {
255  return (fCompress < 0) ? -1 : fCompress / 100;
256 }
258 //______________________________________________________________________________
260 {
261  return (fCompress < 0) ? -1 : fCompress % 100;
262 }
264 //______________________________________________________________________________
266 {
267  return (fCompress < 0) ? -1 : fCompress;
268 }
270 #endif
virtual void UpdateAddress()
Definition: TBranch.h:244
virtual TBranch * FindBranch(const char *name)
Return the branch that correspond to the path &#39;branchname&#39;, which can include the name of the tree or...
Definition: TTree.cxx:4606
Int_t fNBaskets
! Number of baskets in memory
Definition: TBranch.h:91
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition: TLeaf.h:32
An array of TObjects.
Definition: TObjArray.h:37
Long64_t * GetBasketEntry() const
Definition: TBranch.h:172
Int_t GetSplitLevel() const
Definition: TBranch.h:205
Int_t fOffset
Offset of this branch.
Definition: TBranch.h:89
long long Long64_t
Definition: RtypesCore.h:69
virtual Int_t GetBasketSize() const
Definition: TBranch.h:174
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
virtual Int_t FlushBaskets(Bool_t create_cluster=true) const
Write to disk all the basket that have not yet been individually written and create an event cluster ...
Definition: TTree.cxx:4884
TObjArray * GetListOfBaskets()
Definition: TBranch.h:200
Long64_t fEntries
Number of entries.
Definition: TBranch.h:99
virtual Int_t LoadBaskets(Long64_t maxmemory=2000000000)
Read in memory all baskets from all branches up to the limit of maxmemory bytes.
Definition: TTree.cxx:6169
Int_t GetCompressionLevel() const
Definition: TBranch.h:259
const char Option_t
Definition: RtypesCore.h:62
virtual const char * GetIconName() const
Returns mime type name of object.
Definition: TObject.cxx:367
Long64_t fZipBytes
Total number of bytes in all leaves after compression.
Definition: TBranch.h:102
ReadLeaves_t fReadLeaves
! Pointer to the ReadLeaves implementation to use.
Definition: TBranch.h:125
Int_t GetMakeClass() const
Definition: TTree.h:416
const Int_t kMapObject
Definition: TBranch.h:54
#define BIT(n)
Definition: Rtypes.h:78
A specialized TFileCacheRead object for a TTree.
Definition: TTreeCache.h:35
virtual TLeaf * GetLeaf(const char *branchname, const char *leafname)
Return pointer to the 1st Leaf named name in any Branch of this Tree or any branch in the list of fri...
Definition: TTree.cxx:5907
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Definition: TFile.h:47
Buffer base class used for serializing objects.
Definition: TBuffer.h:40
TDirectory * fDirectory
! Pointer to directory holding this tree
Definition: TTree.h:109
TBasket * fCurrentBasket
! Pointer to the current basket.
Definition: TBranch.h:98
const Int_t kBranchObject
Definition: TBranch.h:52
TDirectory * GetDirectory() const
Definition: TBranch.h:180
Int_t GetOffset() const
Definition: TBranch.h:190
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all branches of entry and return total number of bytes read.
Definition: TTree.cxx:5363
TObjArray fBaskets
-> List of baskets of this branch
Definition: TBranch.h:105
Basic string class.
Definition: TString.h:131
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual void Browse(TBrowser *)
Browse content of the TTree.
Definition: TTree.cxx:2479
Int_t fNleaves
! Number of leaves
Definition: TBranch.h:93
Int_t GetCompressionAlgorithm() const
Definition: TBranch.h:253
TIOFeatures provides the end-user with the ability to change the IO behavior of data written via a TT...
Definition: TIOFeatures.hxx:62
TObjArray fLeaves
-> List of leaves of this branch
Definition: TBranch.h:104
Long64_t * fBasketSeek
[fMaxBaskets] Addresses of baskets on file
Definition: TBranch.h:108
virtual void KeepCircular()
Keep a maximum of fMaxEntries in memory.
Definition: TTree.cxx:6133
Int_t GetEntryOffsetLen() const
Definition: TBranch.h:183
void SetSkipZip(Bool_t skip=kTRUE)
Definition: TBranch.h:134
Long64_t fFirstBasketEntry
! First entry in the current basket.
Definition: TBranch.h:96
virtual void Refresh()
Refresh contents of this tree and its branches from the current status on disk.
Definition: TTree.cxx:7577
Int_t * fBasketBytes
[fMaxBaskets] Length of baskets on file
Definition: TBranch.h:106
Long64_t fEntryNumber
Current entry number (last one filled in this branch)
Definition: TBranch.h:87
virtual void SetTree(TTree *tree)
Definition: TBranch.h:242
const Int_t kBranchAny
Definition: TBranch.h:53
Int_t fWriteBasket
Last basket number written.
Definition: TBranch.h:86
Long64_t fTotBytes
Total number of bytes in all leaves before compression.
Definition: TBranch.h:101
Fill Area Attributes class.
Definition: TAttFill.h:19
Int_t * GetBasketBytes() const
Definition: TBranch.h:171
#define ClassDef(name, id)
Definition: Rtypes.h:320
virtual void SetObject(const char *name, const char *title)
Change the name and title of this tree.
Definition: TTree.cxx:8808
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
void Init(TClassEdit::TInterpreterLookupHelper *helper)
Definition: TClassEdit.cxx:121
const Int_t kDoNotProcess
Definition: TBranch.h:50
TObjArray * GetListOfBranches()
Definition: TBranch.h:201
Int_t fMaxBaskets
Maximum number of Baskets so far.
Definition: TBranch.h:90
Long64_t GetEntryNumber() const
Definition: TBranch.h:197
Int_t fSplitLevel
Branch split level.
Definition: TBranch.h:92
A doubly linked list.
Definition: TList.h:44
Int_t Fill()
Definition: TBranch.h:162
TObjArray fLeaves
Direct pointers to individual branch leaves.
Definition: TTree.h:111
Int_t GetEvent(Long64_t entry=0)
Definition: TBranch.h:184
Int_t GetCompressionSettings() const
Definition: TBranch.h:265
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
Int_t WriteBasket(TBasket *basket, Int_t where)
Definition: TBranch.h:139
TBuffer * fEntryBuffer
! Buffer used to directly pass the content without streaming
Definition: TBranch.h:115
Int_t GetReadBasket() const
Definition: TBranch.h:191
static Int_t fgCount
! branch counter
Definition: TBranch.h:82
virtual void SetOffset(Int_t offset=0)
Definition: TBranch.h:240
Int_t fBasketSize
Initial Size of Basket Buffer.
Definition: TBranch.h:84
CacheInfo_t fCacheInfo
! Hold info about which basket are in the cache and if they have been retrieved from the cache...
Definition: TBranch.h:122
TList * fBrowsables
! List of TVirtualBranchBrowsables used for Browse()
Definition: TBranch.h:117
Long64_t GetFirstEntry() const
Definition: TBranch.h:198
Long64_t fReadEntry
! Number of the entry being processed
Definition: TTree.h:98
Int_t GetWriteBasket() const
Definition: TBranch.h:193
const Int_t kIsClone
Definition: TBranch.h:51
TObjArray fBranches
List of Branches.
Definition: TTree.h:110
FillLeaves_t fFillLeaves
! Pointer to the FillLeaves implementation to use.
Definition: TBranch.h:127
unsigned int UInt_t
Definition: RtypesCore.h:42
Long64_t fNextBasketEntry
! Next entry that will requires us to go to the next basket
Definition: TBranch.h:97
Manages buffers for branches of a Tree.
Definition: TBasket.h:34
Int_t GetMaxBaskets() const
Definition: TBranch.h:203
virtual TLeaf * FindLeaf(const char *name)
Find leaf..
Definition: TTree.cxx:4678
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
const char * GetFileName() const
Definition: TBranch.h:189
ROOT::TIOFeatures GetIOFeatures() const
Returns the current set of IO settings.
Definition: TTree.cxx:5793
void Reset(Detail::TBranchProxy *x)
void SetIOFeatures(TIOFeatures &features)
Definition: TBranch.h:238
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects)...
Definition: TTree.h:467
const Bool_t kFALSE
Definition: RtypesCore.h:88
virtual void SetMakeClass(Int_t make)
Set all the branches in this TTree to be in decomposed object mode (also known as MakeClass mode)...
Definition: TTree.cxx:8751
Bool_t fSkipZip
! After being read, the buffer will not be unzipped.
Definition: TBranch.h:119
Int_t fReadBasket
! Current basket number when reading
Definition: TBranch.h:94
void Print(std::ostream &os, const OptionType &opt)
Describe directory structure in memory.
Definition: TDirectory.h:34
Definition: TObject.h:57
int type
Definition: TGX11.cxx:120
Definition: TDataType.h:28
TTree * fTree
! Pointer to Tree header
Definition: TBranch.h:109
TObjArray * GetListOfLeaves()
Definition: TBranch.h:202
TDirectory * fDirectory
! Pointer to directory where this branch buffers are stored
Definition: TBranch.h:113
virtual void SetBasketSize(const char *bname, Int_t buffsize=16000)
Set a branch&#39;s basket size.
Definition: TTree.cxx:7955
Binding & operator=(OUT(*fun)(void))
virtual void ResetAfterMerge(TFileMergeInfo *)
Resets the state of this TTree after a merge (keep the customization but forget the data)...
Definition: TTree.cxx:7673
typedef void((*Func_t)())
Long64_t fEntries
Number of entries.
Definition: TTree.h:75
Long64_t GetEntries() const
Definition: TBranch.h:206
An array of clone (identical) objects.
Definition: TClonesArray.h:32
TBuffer * GetTransientBuffer(Int_t size)
Returns the transient buffer currently used by this TTree for reading/writing baskets.
Definition: TTree.cxx:974
virtual Long64_t GetTotBytes() const
Definition: TTree.h:437
Class implementing or helping the various TTree cloning method.
Definition: TTreeCloner.h:38
Long64_t * fBasketEntry
[fMaxBaskets] Table of first entry in each basket
Definition: TBranch.h:107
Definition: file.py:1
virtual Long64_t GetZipBytes() const
Definition: TTree.h:465
TIOFeatures fIOFeatures
IO features for newly-created baskets.
Definition: TBranch.h:88
Long64_t fReadEntry
! Current entry number when reading
Definition: TBranch.h:95
Long64_t GetReadEntry() const
Definition: TBranch.h:192
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Definition: TRolke.cxx:630
TBranch * fMother
! Pointer to top-level parent branch in the tree.
Definition: TBranch.h:110
TTree * GetTree() const
Definition: TBranch.h:207
Definition: tree.py:1
virtual char * GetAddress() const
Definition: TBranch.h:169
A TTree object has a header with a name and a title.
Definition: TTree.h:70
Int_t fEntryOffsetLen
Initial Length of fEntryOffset table in the basket buffers.
Definition: TBranch.h:85
virtual void DropBaskets()
Remove some baskets from memory.
Definition: TTree.cxx:4293
TObjArray fBranches
-> List of Branches of this branch
Definition: TBranch.h:103
virtual void ResetReadEntry()
Definition: TBranch.h:224
virtual Long64_t SetEntries(Long64_t n=-1)
Change number of entries in the tree.
Definition: TTree.cxx:8595
A TTree is a list of TBranches.
Definition: TBranch.h:62
TBuffer * fTransientBuffer
! Pointer to the current transient buffer.
Definition: TBranch.h:116
Int_t fCompress
Compression level and algorithm.
Definition: TBranch.h:83
TString fFileName
Name of file where buffers are stored ("" if in same file as Tree header)
Definition: TBranch.h:114
const Bool_t kTRUE
Definition: RtypesCore.h:87
TBranch * fParent
! Pointer to parent branch.
Definition: TBranch.h:111
const Int_t n
Definition: legend1.C:16
Long64_t fFirstEntry
Number of the first entry in this branch.
Definition: TBranch.h:100
char name[80]
Definition: TGX11.cxx:109
Int_t GetNleaves() const
Definition: TBranch.h:204
const char * Data() const
Definition: TString.h:364
char * fAddress
! Address of 1st leaf (variable or object)
Definition: TBranch.h:112