Logo ROOT   6.14/05
Reference Guide
TTree.h
Go to the documentation of this file.
1 // @(#)root/tree:$Id$
2 // Author: Rene Brun 12/01/96
3 
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  *************************************************************************/
11 
12 #ifndef ROOT_TTree
13 #define ROOT_TTree
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TTree //
18 // //
19 // A TTree object is a list of TBranch. //
20 // To Create a TTree object one must: //
21 // - Create the TTree header via the TTree constructor //
22 // - Call the TBranch constructor for every branch. //
23 // //
24 // To Fill this object, use member function Fill with no parameters. //
25 // The Fill function loops on all defined TBranch. //
26 // //
27 //////////////////////////////////////////////////////////////////////////
28 
29 #include "ROOT/TIOFeatures.hxx"
30 #include "TArrayD.h"
31 #include "TArrayI.h"
32 #include "TAttFill.h"
33 #include "TAttLine.h"
34 #include "TAttMarker.h"
35 #include "TBranch.h"
36 #include "TBuffer.h"
37 #include "TClass.h"
38 #include "TDataType.h"
39 #include "TDirectory.h"
40 #include "TObjArray.h"
41 #include "TVirtualTreePlayer.h"
42 
43 #include <atomic>
44 
45 
46 class TBranch;
47 class TBrowser;
48 class TFile;
49 class TLeaf;
50 class TH1;
51 class TTreeFormula;
52 class TPolyMarker;
53 class TEventList;
54 class TEntryList;
55 class TList;
56 class TSQLResult;
57 class TSelector;
58 class TPrincipal;
59 class TFriendElement;
60 class TCut;
61 class TVirtualIndex;
62 class TBranchRef;
63 class TBasket;
64 class TStreamerInfo;
65 class TTreeCache;
66 class TTreeCloner;
67 class TFileMergeInfo;
68 class TVirtualPerfStats;
69 
70 class TTree : public TNamed, public TAttLine, public TAttFill, public TAttMarker {
71 
73 
74 protected:
75  Long64_t fEntries; ///< Number of entries
76 // NOTE: cannot use std::atomic for these counters as it cannot be serialized.
77  Long64_t fTotBytes; ///< Total number of bytes in all branches before compression
78  Long64_t fZipBytes; ///< Total number of bytes in all branches after compression
79  Long64_t fSavedBytes; ///< Number of autosaved bytes
80  Long64_t fFlushedBytes; ///< Number of auto-flushed bytes
81  Double_t fWeight; ///< Tree weight (see TTree::SetWeight)
82  Int_t fTimerInterval; ///< Timer interval in milliseconds
83  Int_t fScanField; ///< Number of runs before prompting in Scan
84  Int_t fUpdate; ///< Update frequency for EntryLoop
85  Int_t fDefaultEntryOffsetLen; ///< Initial Length of fEntryOffset table in the basket buffers
86  Int_t fNClusterRange; ///< Number of Cluster range in addition to the one defined by 'AutoFlush'
87  Int_t fMaxClusterRange; ///<! Memory allocated for the cluster range.
88  Long64_t fMaxEntries; ///< Maximum number of entries in case of circular buffers
89  Long64_t fMaxEntryLoop; ///< Maximum number of entries to process
90  Long64_t fMaxVirtualSize; ///< Maximum total size of buffers kept in memory
91  Long64_t fAutoSave; ///< Autosave tree when fAutoSave entries written or -fAutoSave (compressed) bytes produced
92  Long64_t fAutoFlush; ///< Auto-flush tree when fAutoFlush entries written or -fAutoFlush (compressed) bytes produced
93  Long64_t fEstimate; ///< Number of entries to estimate histogram limits
94  Long64_t *fClusterRangeEnd; ///<[fNClusterRange] Last entry of a cluster range.
95  Long64_t *fClusterSize; ///<[fNClusterRange] Number of entries in each cluster for a given range.
96  Long64_t fCacheSize; ///<! Maximum size of file buffers
97  Long64_t fChainOffset; ///<! Offset of 1st entry of this Tree in a TChain
98  Long64_t fReadEntry; ///<! Number of the entry being processed
99  std::atomic<Long64_t> fTotalBuffers; ///<! Total number of bytes in branch buffers
100  Int_t fPacketSize; ///<! Number of entries in one packet for parallel root
101  Int_t fNfill; ///<! Local for EntryLoop
102  Int_t fDebug; ///<! Debug level
103  Long64_t fDebugMin; ///<! First entry number to debug
104  Long64_t fDebugMax; ///<! Last entry number to debug
105  TIOFeatures fIOFeatures{0}; ///< IO features to define for newly-written baskets and branches.
106  Int_t fMakeClass; ///<! not zero when processing code generated by MakeClass
107  Int_t fFileNumber; ///<! current file number (if file extensions)
108  TObject *fNotify; ///<! Object to be notified when loading a Tree
109  TDirectory *fDirectory; ///<! Pointer to directory holding this tree
110  TObjArray fBranches; ///< List of Branches
111  TObjArray fLeaves; ///< Direct pointers to individual branch leaves
112  TList *fAliases; ///< List of aliases for expressions based on the tree branches.
113  TEventList *fEventList; ///<! Pointer to event selection list (if one)
114  TEntryList *fEntryList; ///<! Pointer to event selection list (if one)
115  TArrayD fIndexValues; ///< Sorted index values
116  TArrayI fIndex; ///< Index of sorted values
117  TVirtualIndex *fTreeIndex; ///< Pointer to the tree Index (if any)
118  TList *fFriends; ///< pointer to list of friend elements
119  TVirtualPerfStats *fPerfStats; ///<! pointer to the current perf stats object
120  TList *fUserInfo; ///< pointer to a list of user objects associated to this Tree
121  TVirtualTreePlayer *fPlayer; ///<! Pointer to current Tree player
122  TList *fClones; ///<! List of cloned trees which share our addresses
123  TBranchRef *fBranchRef; ///< Branch supporting the TRefTable (if any)
124  UInt_t fFriendLockStatus; ///<! Record which method is locking the friend recursion
125  TBuffer *fTransientBuffer; ///<! Pointer to the current transient buffer.
126  Bool_t fCacheDoAutoInit; ///<! true if cache auto creation or resize check is needed
127  Bool_t fCacheDoClusterPrefetch;///<! true if cache is prefetching whole clusters
128  Bool_t fCacheUserSet; ///<! true if the cache setting was explicitly given by user
129  Bool_t fIMTEnabled; ///<! true if implicit multi-threading is enabled for this tree
130  UInt_t fNEntriesSinceSorting; ///<! Number of entries processed since the last re-sorting of branches
131  std::vector<std::pair<Long64_t,TBranch*>> fSortedBranches; ///<! Branches to be processed in parallel when IMT is on, sorted by average task time
132  std::vector<TBranch*> fSeqBranches; ///<! Branches to be processed sequentially when IMT is on
133 
134  static Int_t fgBranchStyle; ///< Old/New branch style
135  static Long64_t fgMaxTreeSize; ///< Maximum size of a file containing a Tree
136 
137 private:
138  // For simplicity, although fIMTFlush is always disabled in non-IMT builds, we don't #ifdef it out.
139  mutable Bool_t fIMTFlush{false}; ///<! True if we are doing a multithreaded flush.
140  mutable std::atomic<Long64_t> fIMTTotBytes; ///<! Total bytes for the IMT flush baskets
141  mutable std::atomic<Long64_t> fIMTZipBytes; ///<! Zip bytes for the IMT flush baskets.
142 
143  void InitializeBranchLists(bool checkLeafCount);
144  void SortBranchesByTime();
145  Int_t FlushBasketsImpl() const;
146  void MarkEventCluster();
147 
148 protected:
149  virtual void KeepCircular();
150  virtual TBranch *BranchImp(const char* branchname, const char* classname, TClass* ptrClass, void* addobj, Int_t bufsize, Int_t splitlevel);
151  virtual TBranch *BranchImp(const char* branchname, TClass* ptrClass, void* addobj, Int_t bufsize, Int_t splitlevel);
152  virtual TBranch *BranchImpRef(const char* branchname, const char* classname, TClass* ptrClass, void* addobj, Int_t bufsize, Int_t splitlevel);
153  virtual TBranch *BranchImpRef(const char* branchname, TClass* ptrClass, EDataType datatype, void* addobj, Int_t bufsize, Int_t splitlevel);
154  virtual Int_t CheckBranchAddressType(TBranch* branch, TClass* ptrClass, EDataType datatype, Bool_t ptr);
155  virtual TBranch *BronchExec(const char* name, const char* classname, void* addobj, Bool_t isptrptr, Int_t bufsize, Int_t splitlevel);
156  friend TBranch *TTreeBranchImpRef(TTree *tree, const char* branchname, TClass* ptrClass, EDataType datatype, void* addobj, Int_t bufsize, Int_t splitlevel);
157  Int_t SetBranchAddressImp(TBranch *branch, void* addr, TBranch** ptr);
158  virtual TLeaf *GetLeafImpl(const char* branchname, const char* leafname);
159 
160  Long64_t GetCacheAutoSize(Bool_t withDefault = kFALSE) const;
161  char GetNewlineValue(std::istream &inputStream);
162  void ImportClusterRanges(TTree *fromtree);
163  void MoveReadCache(TFile *src, TDirectory *dir);
164  Int_t SetCacheSizeAux(Bool_t autocache = kTRUE, Long64_t cacheSize = 0);
165 
166  class TFriendLock {
167  // Helper class to prevent infinite recursion in the
168  // usage of TTree Friends. Implemented in TTree.cxx.
169  TTree *fTree; // Pointer to the locked tree
170  UInt_t fMethodBit; // BIT for the locked method
171  Bool_t fPrevious; // Previous value of the BIT.
172 
173  protected:
174  TFriendLock(const TFriendLock&);
176 
177  public:
178  TFriendLock(TTree* tree, UInt_t methodbit);
179  ~TFriendLock();
180  };
181  friend class TFriendLock;
182  // So that the index class can use TFriendLock:
183  friend class TTreeIndex;
184  friend class TChainIndex;
185  // So that the TTreeCloner can access the protected interfaces
186  friend class TTreeCloner;
187 
188  // use to update fFriendLockStatus
198  kGetLeaf = BIT(8),
200  kPrint = BIT(10),
203  };
204 
205 public:
206  // Used as the max value for any TTree range operation.
208 
209  // SetBranchAddress return values
214  kMismatch = -2,
216  kMatch = 0,
220  kVoidPtr = 4,
222  };
223 
224  // TTree status bits
225  enum EStatusBits {
228  };
229 
230  // Split level modifier
231  enum {
233  };
234 
236  {
237  private:
238  TTree *fTree; // TTree upon which we are iterating.
239  Int_t fClusterRange; // Which cluster range are we looking at.
240  Long64_t fStartEntry; // Where does the cluster start.
241  Long64_t fNextEntry; // Where does the cluster end (exclusive).
242  Long64_t fEstimatedSize; // If positive, the calculated estimated tree size.
243 
244  Long64_t GetEstimatedClusterSize();
245 
246  protected:
247  friend class TTree;
248  TClusterIterator(TTree *tree, Long64_t firstEntry);
249 
250  public:
251  // Intentionally used the default copy constructor and default destructor
252  // as the TClusterIterator does not own the TTree.
253  // TClusterIterator(const TClusterIterator&);
254  // ~TClusterIterator();
255 
256  // No public constructors, the iterator must be
257  // created via TTree::GetClusterIterator
258 
259  // Move on to the next cluster and return the starting entry
260  // of this next cluster
261  Long64_t Next();
262 
263  // Move on to the previous cluster and return the starting entry
264  // of this previous cluster
265  Long64_t Previous();
266 
267  // Return the start entry of the current cluster.
269  return fStartEntry;
270  }
271 
272  // Return the first entry of the next cluster.
274  return fNextEntry;
275  }
276 
277  Long64_t operator()() { return Next(); }
278  };
279 
280  TTree();
281  TTree(const char* name, const char* title, Int_t splitlevel = 99, TDirectory* dir = gDirectory);
282  virtual ~TTree();
283 
284  TTree(const TTree& tt) = delete;
285  TTree& operator=(const TTree& tt) = delete;
286 
287  virtual Int_t AddBranchToCache(const char *bname, Bool_t subbranches = kFALSE);
288  virtual Int_t AddBranchToCache(TBranch *branch, Bool_t subbranches = kFALSE);
289  virtual Int_t DropBranchFromCache(const char *bname, Bool_t subbranches = kFALSE);
290  virtual Int_t DropBranchFromCache(TBranch *branch, Bool_t subbranches = kFALSE);
291  void AddClone(TTree*);
292  virtual TFriendElement *AddFriend(const char* treename, const char* filename = "");
293  virtual TFriendElement *AddFriend(const char* treename, TFile* file);
294  virtual TFriendElement *AddFriend(TTree* tree, const char* alias = "", Bool_t warn = kFALSE);
295  // As the TBasket invokes Add{Tot,Zip}Bytes on its parent tree, we must do these updates in a thread-safe
296  // manner only when we are flushing multiple baskets in parallel.
297  virtual void AddTotBytes(Int_t tot) { if (fIMTFlush) { fIMTTotBytes += tot; } else { fTotBytes += tot; } }
298  virtual void AddZipBytes(Int_t zip) { if (fIMTFlush) { fIMTZipBytes += zip; } else { fZipBytes += zip; } }
299  virtual Long64_t AutoSave(Option_t* option = "");
300  virtual Int_t Branch(TCollection* list, Int_t bufsize = 32000, Int_t splitlevel = 99, const char* name = "");
301  virtual Int_t Branch(TList* list, Int_t bufsize = 32000, Int_t splitlevel = 99);
302  virtual Int_t Branch(const char* folder, Int_t bufsize = 32000, Int_t splitlevel = 99);
303  virtual TBranch *Branch(const char* name, void* address, const char* leaflist, Int_t bufsize = 32000);
304  TBranch *Branch(const char* name, char* address, const char* leaflist, Int_t bufsize = 32000)
305  {
306  // Overload to avoid confusion between this signature and the template instance.
307  return Branch(name,(void*)address,leaflist,bufsize);
308  }
309  TBranch *Branch(const char* name, Long_t address, const char* leaflist, Int_t bufsize = 32000)
310  {
311  // Overload to avoid confusion between this signature and the template instance.
312  return Branch(name,(void*)address,leaflist,bufsize);
313  }
314  TBranch *Branch(const char* name, int address, const char* leaflist, Int_t bufsize = 32000)
315  {
316  // Overload to avoid confusion between this signature and the template instance.
317  return Branch(name,(void*)(Long_t)address,leaflist,bufsize);
318  }
319 #if !defined(__CINT__)
320  virtual TBranch *Branch(const char* name, const char* classname, void* addobj, Int_t bufsize = 32000, Int_t splitlevel = 99);
321 #endif
322  template <class T> TBranch *Branch(const char* name, const char* classname, T* obj, Int_t bufsize = 32000, Int_t splitlevel = 99)
323  {
324  // See BranchImpRed for details. Here we __ignore
325  return BranchImpRef(name, classname, TBuffer::GetClass(typeid(T)), obj, bufsize, splitlevel);
326  }
327  template <class T> TBranch *Branch(const char* name, const char* classname, T** addobj, Int_t bufsize = 32000, Int_t splitlevel = 99)
328  {
329  // See BranchImp for details
330  return BranchImp(name, classname, TBuffer::GetClass(typeid(T)), addobj, bufsize, splitlevel);
331  }
332  template <class T> TBranch *Branch(const char* name, T** addobj, Int_t bufsize = 32000, Int_t splitlevel = 99)
333  {
334  // See BranchImp for details
335  return BranchImp(name, TBuffer::GetClass(typeid(T)), addobj, bufsize, splitlevel);
336  }
337  template <class T> TBranch *Branch(const char* name, T* obj, Int_t bufsize = 32000, Int_t splitlevel = 99)
338  {
339  // See BranchImp for details
340  return BranchImpRef(name, TBuffer::GetClass(typeid(T)), TDataType::GetType(typeid(T)), obj, bufsize, splitlevel);
341  }
342  virtual TBranch *Bronch(const char* name, const char* classname, void* addobj, Int_t bufsize = 32000, Int_t splitlevel = 99);
343  virtual TBranch *BranchOld(const char* name, const char* classname, void* addobj, Int_t bufsize = 32000, Int_t splitlevel = 1);
344  virtual TBranch *BranchRef();
345  virtual void Browse(TBrowser*);
346  virtual Int_t BuildIndex(const char* majorname, const char* minorname = "0");
347  TStreamerInfo *BuildStreamerInfo(TClass* cl, void* pointer = 0, Bool_t canOptimize = kTRUE);
348  virtual TFile *ChangeFile(TFile* file);
349  virtual TTree *CloneTree(Long64_t nentries = -1, Option_t* option = "");
350  virtual void CopyAddresses(TTree*,Bool_t undo = kFALSE);
351  virtual Long64_t CopyEntries(TTree* tree, Long64_t nentries = -1, Option_t *option = "");
352  virtual TTree *CopyTree(const char* selection, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
353  virtual TBasket *CreateBasket(TBranch*);
354  virtual void DirectoryAutoAdd(TDirectory *);
355  Int_t Debug() const { return fDebug; }
356  virtual void Delete(Option_t* option = ""); // *MENU*
357  virtual void Draw(Option_t* opt) { Draw(opt, "", "", kMaxEntries, 0); }
358  virtual Long64_t Draw(const char* varexp, const TCut& selection, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
359  virtual Long64_t Draw(const char* varexp, const char* selection, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0); // *MENU*
360  virtual void DropBaskets();
361  virtual void DropBuffers(Int_t nbytes);
362  virtual Int_t Fill();
363  virtual TBranch *FindBranch(const char* name);
364  virtual TLeaf *FindLeaf(const char* name);
365  virtual Int_t Fit(const char* funcname, const char* varexp, const char* selection = "", Option_t* option = "", Option_t* goption = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0); // *MENU*
366  virtual Int_t FlushBaskets(Bool_t create_cluster = true) const;
367  virtual const char *GetAlias(const char* aliasName) const;
368  virtual Long64_t GetAutoFlush() const {return fAutoFlush;}
369  virtual Long64_t GetAutoSave() const {return fAutoSave;}
370  virtual TBranch *GetBranch(const char* name);
371  virtual TBranchRef *GetBranchRef() const { return fBranchRef; };
372  virtual Bool_t GetBranchStatus(const char* branchname) const;
373  static Int_t GetBranchStyle();
374  virtual Long64_t GetCacheSize() const { return fCacheSize; }
375  virtual TClusterIterator GetClusterIterator(Long64_t firstentry);
376  virtual Long64_t GetChainEntryNumber(Long64_t entry) const { return entry; }
377  virtual Long64_t GetChainOffset() const { return fChainOffset; }
379  TFile *GetCurrentFile() const;
381  Long64_t GetDebugMax() const { return fDebugMax; }
382  Long64_t GetDebugMin() const { return fDebugMin; }
383  TDirectory *GetDirectory() const { return fDirectory; }
384  virtual Long64_t GetEntries() const { return fEntries; }
385  virtual Long64_t GetEntries(const char *selection);
386  virtual Long64_t GetEntriesFast() const { return fEntries; }
387  virtual Long64_t GetEntriesFriend() const;
388  virtual Long64_t GetEstimate() const { return fEstimate; }
389  virtual Int_t GetEntry(Long64_t entry = 0, Int_t getall = 0);
390  Int_t GetEvent(Long64_t entry = 0, Int_t getall = 0) { return GetEntry(entry, getall); }
391  virtual Int_t GetEntryWithIndex(Int_t major, Int_t minor = 0);
392  virtual Long64_t GetEntryNumberWithBestIndex(Long64_t major, Long64_t minor = 0) const;
393  virtual Long64_t GetEntryNumberWithIndex(Long64_t major, Long64_t minor = 0) const;
394  TEventList *GetEventList() const { return fEventList; }
395  virtual TEntryList *GetEntryList();
396  virtual Long64_t GetEntryNumber(Long64_t entry) const;
397  virtual Int_t GetFileNumber() const { return fFileNumber; }
398  virtual TTree *GetFriend(const char*) const;
399  virtual const char *GetFriendAlias(TTree*) const;
401  virtual Bool_t GetImplicitMT() { return fIMTEnabled; }
402  virtual Int_t *GetIndex() { return &fIndex.fArray[0]; }
403  virtual Double_t *GetIndexValues() { return &fIndexValues.fArray[0]; }
406  virtual TLeaf *GetLeaf(const char* branchname, const char* leafname);
407  virtual TLeaf *GetLeaf(const char* name);
408  virtual TList *GetListOfClones() { return fClones; }
409  virtual TObjArray *GetListOfBranches() { return &fBranches; }
410  virtual TObjArray *GetListOfLeaves() { return &fLeaves; }
411  virtual TList *GetListOfFriends() const { return fFriends; }
412  virtual TList *GetListOfAliases() const { return fAliases; }
413 
414  // GetMakeClass is left non-virtual for efficiency reason.
415  // Making it virtual affects the performance of the I/O
416  Int_t GetMakeClass() const { return fMakeClass; }
417 
418  virtual Long64_t GetMaxEntryLoop() const { return fMaxEntryLoop; }
419  virtual Double_t GetMaximum(const char* columname);
420  static Long64_t GetMaxTreeSize();
421  virtual Long64_t GetMaxVirtualSize() const { return fMaxVirtualSize; }
422  virtual Double_t GetMinimum(const char* columname);
423  virtual Int_t GetNbranches() { return fBranches.GetEntriesFast(); }
424  TObject *GetNotify() const { return fNotify; }
426  virtual Int_t GetPacketSize() const { return fPacketSize; }
427  virtual TVirtualPerfStats *GetPerfStats() const { return fPerfStats; }
428  TTreeCache *GetReadCache(TFile *file) const;
429  TTreeCache *GetReadCache(TFile *file, Bool_t create);
430  virtual Long64_t GetReadEntry() const { return fReadEntry; }
431  virtual Long64_t GetReadEvent() const { return fReadEntry; }
432  virtual Int_t GetScanField() const { return fScanField; }
435  virtual Int_t GetTimerInterval() const { return fTimerInterval; }
437  virtual Long64_t GetTotBytes() const { return fTotBytes; }
438  virtual TTree *GetTree() const { return const_cast<TTree*>(this); }
439  virtual TVirtualIndex *GetTreeIndex() const { return fTreeIndex; }
440  virtual Int_t GetTreeNumber() const { return 0; }
441  virtual Int_t GetUpdate() const { return fUpdate; }
442  virtual TList *GetUserInfo();
443  // See TSelectorDraw::GetVar
444  TTreeFormula *GetVar(Int_t i) { return GetPlayer()->GetVar(i); }
445  // See TSelectorDraw::GetVar
446  TTreeFormula *GetVar1() { return GetPlayer()->GetVar1(); }
447  // See TSelectorDraw::GetVar
448  TTreeFormula *GetVar2() { return GetPlayer()->GetVar2(); }
449  // See TSelectorDraw::GetVar
450  TTreeFormula *GetVar3() { return GetPlayer()->GetVar3(); }
451  // See TSelectorDraw::GetVar
452  TTreeFormula *GetVar4() { return GetPlayer()->GetVar4(); }
453  // See TSelectorDraw::GetVal
454  virtual Double_t *GetVal(Int_t i) { return GetPlayer()->GetVal(i); }
455  // See TSelectorDraw::GetVal
456  virtual Double_t *GetV1() { return GetPlayer()->GetV1(); }
457  // See TSelectorDraw::GetVal
458  virtual Double_t *GetV2() { return GetPlayer()->GetV2(); }
459  // See TSelectorDraw::GetVal
460  virtual Double_t *GetV3() { return GetPlayer()->GetV3(); }
461  // See TSelectorDraw::GetVal
462  virtual Double_t *GetV4() { return GetPlayer()->GetV4(); }
463  virtual Double_t *GetW() { return GetPlayer()->GetW(); }
464  virtual Double_t GetWeight() const { return fWeight; }
465  virtual Long64_t GetZipBytes() const { return fZipBytes; }
466  virtual void IncrementTotalBuffers(Int_t nbytes) { fTotalBuffers += nbytes; }
467  Bool_t IsFolder() const { return kTRUE; }
468  virtual Int_t LoadBaskets(Long64_t maxmemory = 2000000000);
469  virtual Long64_t LoadTree(Long64_t entry);
470  virtual Long64_t LoadTreeFriend(Long64_t entry, TTree* T);
471  virtual Int_t MakeClass(const char* classname = 0, Option_t* option = "");
472  virtual Int_t MakeCode(const char* filename = 0);
473  virtual Int_t MakeProxy(const char* classname, const char* macrofilename = 0, const char* cutfilename = 0, const char* option = 0, Int_t maxUnrolling = 3);
474  virtual Int_t MakeSelector(const char* selector = 0, Option_t* option = "");
475  Bool_t MemoryFull(Int_t nbytes);
476  virtual Long64_t Merge(TCollection* list, Option_t* option = "");
477  virtual Long64_t Merge(TCollection* list, TFileMergeInfo *info);
478  static TTree *MergeTrees(TList* list, Option_t* option = "");
479  virtual Bool_t Notify();
480  virtual void OptimizeBaskets(ULong64_t maxMemory=10000000, Float_t minComp=1.1, Option_t *option="");
481  TPrincipal *Principal(const char* varexp = "", const char* selection = "", Option_t* option = "np", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
482  virtual void Print(Option_t* option = "") const; // *MENU*
483  virtual void PrintCacheStats(Option_t* option = "") const;
484  virtual Long64_t Process(const char* filename, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0); // *MENU*
485 #if defined(__CINT__)
486 #if defined(R__MANUAL_DICT)
487  virtual Long64_t Process(void* selector, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
488 #endif
489 #else
490  virtual Long64_t Process(TSelector* selector, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
491 #endif
492  virtual Long64_t Project(const char* hname, const char* varexp, const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
493  virtual TSQLResult *Query(const char* varexp = "", const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
494  virtual Long64_t ReadFile(const char* filename, const char* branchDescriptor = "", char delimiter = ' ');
495  virtual Long64_t ReadStream(std::istream& inputStream, const char* branchDescriptor = "", char delimiter = ' ');
496  virtual void Refresh();
497  virtual void RecursiveRemove(TObject *obj);
498  virtual void RemoveFriend(TTree*);
499  virtual void Reset(Option_t* option = "");
500  virtual void ResetAfterMerge(TFileMergeInfo *);
501  virtual void ResetBranchAddress(TBranch *);
502  virtual void ResetBranchAddresses();
503  virtual Long64_t Scan(const char* varexp = "", const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0); // *MENU*
504  virtual Bool_t SetAlias(const char* aliasName, const char* aliasFormula);
505  virtual void SetAutoSave(Long64_t autos = -300000000);
506  virtual void SetAutoFlush(Long64_t autof = -30000000);
507  virtual void SetBasketSize(const char* bname, Int_t buffsize = 16000);
508 #if !defined(__CINT__)
509  virtual Int_t SetBranchAddress(const char *bname,void *add, TBranch **ptr = 0);
510 #endif
511  virtual Int_t SetBranchAddress(const char *bname,void *add, TClass *realClass, EDataType datatype, Bool_t isptr);
512  virtual Int_t SetBranchAddress(const char *bname,void *add, TBranch **ptr, TClass *realClass, EDataType datatype, Bool_t isptr);
513  template <class T> Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr = 0) {
514  TClass *cl = TClass::GetClass(typeid(T));
516  if (cl==0) type = TDataType::GetType(typeid(T));
517  return SetBranchAddress(bname,add,ptr,cl,type,true);
518  }
519 #ifndef R__NO_CLASS_TEMPLATE_SPECIALIZATION
520  // This can only be used when the template overload resolution can distinguish between
521  // T* and T**
522  template <class T> Int_t SetBranchAddress(const char *bname, T *add, TBranch **ptr = 0) {
523  TClass *cl = TClass::GetClass(typeid(T));
525  if (cl==0) type = TDataType::GetType(typeid(T));
526  return SetBranchAddress(bname,add,ptr,cl,type,false);
527  }
528 #endif
529  virtual void SetBranchStatus(const char* bname, Bool_t status = 1, UInt_t* found = 0);
530  static void SetBranchStyle(Int_t style = 1); //style=0 for old branch, =1 for new branch style
531  virtual Int_t SetCacheSize(Long64_t cachesize = -1);
533  virtual void SetCacheLearnEntries(Int_t n=10);
534  virtual void SetChainOffset(Long64_t offset = 0) { fChainOffset=offset; }
535  virtual void SetCircular(Long64_t maxEntries);
536  virtual void SetClusterPrefetch(Bool_t enabled) { fCacheDoClusterPrefetch = enabled; }
537  virtual void SetDebug(Int_t level = 1, Long64_t min = 0, Long64_t max = 9999999); // *MENU*
538  virtual void SetDefaultEntryOffsetLen(Int_t newdefault, Bool_t updateExisting = kFALSE);
539  virtual void SetDirectory(TDirectory* dir);
540  virtual Long64_t SetEntries(Long64_t n = -1);
541  virtual void SetEstimate(Long64_t nentries = 1000000);
543  virtual void SetFileNumber(Int_t number = 0);
544  virtual void SetEventList(TEventList* list);
545  virtual void SetEntryList(TEntryList* list, Option_t *opt="");
546  virtual void SetImplicitMT(Bool_t enabled) { fIMTEnabled = enabled; }
547  virtual void SetMakeClass(Int_t make);
548  virtual void SetMaxEntryLoop(Long64_t maxev = kMaxEntries) { fMaxEntryLoop = maxev; } // *MENU*
549  static void SetMaxTreeSize(Long64_t maxsize = 100000000000LL);
550  virtual void SetMaxVirtualSize(Long64_t size = 0) { fMaxVirtualSize = size; } // *MENU*
551  virtual void SetName(const char* name); // *MENU*
552 
553  /**
554  * @brief Sets the address of the object to be notified when the tree is loaded.
555  *
556  * The method TObject::Notify is called for the given object when the tree
557  * is loaded. Specifically this occurs in the TTree::LoadTree method. To
558  * remove the notification call this method with nullptr:
559  * @code tree->SetNotify(nullptr); @endcode
560  *
561  * @param[in] obj Pointer to a TObject to be notified.
562  */
563  virtual void SetNotify(TObject* obj) { fNotify = obj; }
564 
565  virtual void SetObject(const char* name, const char* title);
566  virtual void SetParallelUnzip(Bool_t opt=kTRUE, Float_t RelSize=-1);
567  virtual void SetPerfStats(TVirtualPerfStats* perf);
568  virtual void SetScanField(Int_t n = 50) { fScanField = n; } // *MENU*
569  virtual void SetTimerInterval(Int_t msec = 333) { fTimerInterval=msec; }
570  virtual void SetTreeIndex(TVirtualIndex* index);
571  virtual void SetWeight(Double_t w = 1, Option_t* option = "");
572  virtual void SetUpdate(Int_t freq = 0) { fUpdate = freq; }
573  virtual void Show(Long64_t entry = -1, Int_t lenmax = 20);
574  virtual void StartViewer(); // *MENU*
575  virtual Int_t StopCacheLearningPhase();
576  virtual Int_t UnbinnedFit(const char* funcname, const char* varexp, const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
577  void UseCurrentStyle();
578  virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0);
579  virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0) const;
580 
581  ClassDef(TTree, 20) // Tree descriptor (the main ROOT I/O class)
582 };
583 
584 //////////////////////////////////////////////////////////////////////////
585 // //
586 // TTreeFriendLeafIter //
587 // //
588 // Iterator on all the leaves in a TTree and its friend //
589 // //
590 //////////////////////////////////////////////////////////////////////////
591 
593 
594 protected:
595  TTree *fTree; ///< tree being iterated
596  TIterator *fLeafIter; ///< current leaf sub-iterator.
597  TIterator *fTreeIter; ///< current tree sub-iterator.
598  Bool_t fDirection; ///< iteration direction
599 
600  TTreeFriendLeafIter() : fTree(0), fLeafIter(0), fTreeIter(0),
601  fDirection(0) { }
602 
603 public:
604  TTreeFriendLeafIter(const TTree* t, Bool_t dir = kIterForward);
606  ~TTreeFriendLeafIter() { SafeDelete(fLeafIter); SafeDelete(fTreeIter); }
607  TIterator &operator=(const TIterator &rhs);
609 
610  const TCollection *GetCollection() const { return 0; }
611  Option_t *GetOption() const;
612  TObject *Next();
613  void Reset() { SafeDelete(fLeafIter); SafeDelete(fTreeIter); }
614  Bool_t operator !=(const TIterator&) const {
615  // TODO: Implement me
616  return false;
617  }
619  // TODO: Implement me
620  return false;
621  }
622  TObject *operator*() const {
623  // TODO: Implement me
624  return nullptr;
625  }
626  ClassDef(TTreeFriendLeafIter,0) //Linked list iterator
627  };
628 
629 
630 #endif
virtual Double_t * GetV3()
Definition: TTree.h:460
TBranch * Branch(const char *name, const char *classname, T **addobj, Int_t bufsize=32000, Int_t splitlevel=99)
Definition: TTree.h:327
Describe Streamer information for one class version.
Definition: TStreamerInfo.h:43
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
Double_t fWeight
Tree weight (see TTree::SetWeight)
Definition: TTree.h:81
Int_t GetDefaultEntryOffsetLen() const
Definition: TTree.h:380
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition: TLeaf.h:32
TTreeCache * GetReadCache(TFile *file) const
Find and return the TTreeCache registered with the file and which may contain branches for us...
Definition: TTree.cxx:6036
virtual void AddTotBytes(Int_t tot)
Definition: TTree.h:297
virtual TList * GetListOfClones()
Definition: TTree.h:408
TStreamerInfo * BuildStreamerInfo(TClass *cl, void *pointer=0, Bool_t canOptimize=kTRUE)
Build StreamerInfo for class cl.
Definition: TTree.cxx:2519
An array of TObjects.
Definition: TObjArray.h:37
Long64_t fDebugMin
! First entry number to debug
Definition: TTree.h:103
TBranch * Branch(const char *name, T **addobj, Int_t bufsize=32000, Int_t splitlevel=99)
Definition: TTree.h:332
Principal Components Analysis (PCA)
Definition: TPrincipal.h:20
TTree * fTree
tree being iterated
Definition: TTree.h:595
Long64_t GetNextEntry()
Definition: TTree.h:273
Bool_t fPrevious
Definition: TTree.h:171
auto * tt
Definition: textangle.C:16
virtual void OptimizeBaskets(ULong64_t maxMemory=10000000, Float_t minComp=1.1, Option_t *option="")
This function may be called after having filled some entries in a Tree.
Definition: TTree.cxx:6764
Bool_t MemoryFull(Int_t nbytes)
Check if adding nbytes to memory we are still below MaxVirtualsize.
Definition: TTree.cxx:6566
virtual TBranch * BranchImpRef(const char *branchname, const char *classname, TClass *ptrClass, void *addobj, Int_t bufsize, Int_t splitlevel)
Same as TTree::Branch but automatic detection of the class name.
Definition: TTree.cxx:1531
virtual Int_t MakeCode(const char *filename=0)
Generate a skeleton function for this tree.
Definition: TTree.cxx:6369
long long Long64_t
Definition: RtypesCore.h:69
TTreeFormula * GetVar2()
Definition: TTree.h:448
TIterator * fTreeIter
current tree sub-iterator.
Definition: TTree.h:597
Abstract interface for Tree Index.
Definition: TVirtualIndex.h:29
virtual Int_t GetScanField() const
Definition: TTree.h:432
virtual TTreeFormula * GetVar1() const =0
virtual Long64_t ReadStream(std::istream &inputStream, const char *branchDescriptor="", char delimiter=' ')
Create or simply read branches from an input stream.
Definition: TTree.cxx:7280
static constexpr Long64_t kMaxEntries
virtual Int_t StopCacheLearningPhase()
Stop the cache learning phase.
Definition: TTree.cxx:8998
virtual void SetBranchStatus(const char *bname, Bool_t status=1, UInt_t *found=0)
Set branch status to Process or DoNotProcess.
Definition: TTree.cxx:8128
virtual void IncrementTotalBuffers(Int_t nbytes)
Definition: TTree.h:466
virtual void Delete(Option_t *option="")
Delete this tree from memory or/and disk.
Definition: TTree.cxx:3550
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
static Int_t fgBranchStyle
Old/New branch style.
Definition: TTree.h:134
virtual void AddZipBytes(Int_t zip)
Definition: TTree.h:298
virtual Double_t * GetV4()
Definition: TTree.h:462
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
float Float_t
Definition: RtypesCore.h:53
static Long64_t GetMaxTreeSize()
Static function which returns the tree file size limit in bytes.
Definition: TTree.cxx:5983
virtual void SetParallelUnzip(Bool_t opt=kTRUE, Float_t RelSize=-1)
Enable or disable parallel unzipping of Tree buffers.
Definition: TTree.cxx:8839
Provides the interface for the PROOF internal performance measurement and event tracing.
const char Option_t
Definition: RtypesCore.h:62
virtual Bool_t Notify()
Function called when loading a new class library.
Definition: TTree.cxx:6740
TTree()
Default constructor and I/O constructor.
Definition: TTree.cxx:701
virtual TTree * GetFriend(const char *) const
Return a pointer to the TTree friend whose name or alias is &#39;friendname.
Definition: TTree.cxx:5694
virtual Long64_t GetEntriesFast() const
Definition: TTree.h:386
TBuffer * fTransientBuffer
! Pointer to the current transient buffer.
Definition: TTree.h:125
virtual void Print(Option_t *option="") const
Print a summary of the tree contents.
Definition: TTree.cxx:6926
double T(double x)
Definition: ChebyshevPol.h:34
virtual Bool_t GetClusterPrefetch() const
Definition: TTree.h:378
virtual Int_t Fit(const char *funcname, const char *varexp, const char *selection="", Option_t *option="", Option_t *goption="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Fit a projected item(s) from a tree.
Definition: TTree.cxx:4834
TIterator * fLeafIter
current leaf sub-iterator.
Definition: TTree.h:596
TList * fFriends
pointer to list of friend elements
Definition: TTree.h:118
virtual Double_t * GetV3() const =0
TPrincipal * Principal(const char *varexp="", const char *selection="", Option_t *option="np", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Interface to the Principal Components Analysis class.
Definition: TTree.cxx:6907
virtual TH1 * GetHistogram() const =0
virtual Int_t Fill()
Fill all branches.
Definition: TTree.cxx:4374
Int_t GetMakeClass() const
Definition: TTree.h:416
virtual TEntryList * GetEntryList()
Returns the entry list, set to this tree.
Definition: TTree.cxx:5573
ROOT::TIOFeatures SetIOFeatures(const ROOT::TIOFeatures &)
Provide the end-user with the ability to enable/disable various experimental IO features for this TTr...
Definition: TTree.cxx:8714
virtual void SetMaxEntryLoop(Long64_t maxev=kMaxEntries)
Definition: TTree.h:548
#define BIT(n)
Definition: Rtypes.h:78
virtual Int_t GetPacketSize() const
Definition: TTree.h:426
static void SetBranchStyle(Int_t style=1)
Set the current branch style.
Definition: TTree.cxx:8254
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
TTree * fTree
Definition: TTree.h:169
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
Definition: TFile.h:47
virtual TLeaf * GetLeafImpl(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:5817
virtual TList * GetListOfFriends() const
Definition: TTree.h:411
TTreeFormula * GetSelect()
Definition: TTree.h:433
virtual Long64_t GetAutoFlush() const
Definition: TTree.h:368
Buffer base class used for serializing objects.
Definition: TBuffer.h:40
TDirectory * fDirectory
! Pointer to directory holding this tree
Definition: TTree.h:109
Int_t fMakeClass
! not zero when processing code generated by MakeClass
Definition: TTree.h:106
virtual TBasket * CreateBasket(TBranch *)
Create a basket for this tree and given branch.
Definition: TTree.cxx:3534
Long64_t GetDebugMin() const
Definition: TTree.h:382
virtual void SetAutoSave(Long64_t autos=-300000000)
This function may be called at the start of a program to change the default value for fAutoSave (and ...
Definition: TTree.cxx:7939
Long64_t fEstimatedSize
Definition: TTree.h:242
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
virtual TTreeFormula * GetVar(Int_t) const =0
virtual TList * GetListOfAliases() const
Definition: TTree.h:412
virtual Int_t MakeProxy(const char *classname, const char *macrofilename=0, const char *cutfilename=0, const char *option=0, Int_t maxUnrolling=3)
Generate a skeleton analysis class for this Tree using TBranchProxy.
Definition: TTree.cxx:6497
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
virtual Long64_t GetMaxEntryLoop() const
Definition: TTree.h:418
virtual void Browse(TBrowser *)
Browse content of the TTree.
Definition: TTree.cxx:2479
constexpr std::array< decltype(std::declval< F >)(std::declval< int >))), N > make(F f)
static void SetMaxTreeSize(Long64_t maxsize=100000000000LL)
Set the maximum size in bytes of a Tree file (static function).
Definition: TTree.cxx:8771
TIOFeatures provides the end-user with the ability to change the IO behavior of data written via a TT...
Definition: TIOFeatures.hxx:62
Int_t fScanField
Number of runs before prompting in Scan.
Definition: TTree.h:83
virtual Double_t * GetV4() const =0
virtual TTree * CloneTree(Long64_t nentries=-1, Option_t *option="")
Create a clone of this tree and copy nentries.
Definition: TTree.cxx:2971
virtual TTree * CopyTree(const char *selection, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Copy a tree with selection.
Definition: TTree.cxx:3522
const TCollection * GetCollection() const
Definition: TTree.h:610
virtual void KeepCircular()
Keep a maximum of fMaxEntries in memory.
Definition: TTree.cxx:6133
TArrayD fIndexValues
Sorted index values.
Definition: TTree.h:115
Long64_t fMaxEntryLoop
Maximum number of entries to process.
Definition: TTree.h:89
TVirtualTreePlayer * GetPlayer()
Load the TTreePlayer (if not already done).
Definition: TTree.cxx:6023
virtual void SetMaxVirtualSize(Long64_t size=0)
Definition: TTree.h:550
virtual TSQLResult * Query(const char *varexp="", const char *selection="", Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Loop over entries and return a TSQLResult object containing entries following selection.
Definition: TTree.cxx:7183
A Tree Index with majorname and minorname.
Definition: TTreeIndex.h:28
ELockStatusBits
Definition: TTree.h:189
Long64_t fStartEntry
Definition: TTree.h:240
virtual Int_t GetFileNumber() const
Definition: TTree.h:397
Iterator abstract base class.
Definition: TIterator.h:30
Array of integers (32 bits per element).
Definition: TArrayI.h:27
virtual TTreeFormula * GetSelect() const =0
virtual void Refresh()
Refresh contents of this tree and its branches from the current status on disk.
Definition: TTree.cxx:7577
virtual void SetFileNumber(Int_t number=0)
Set fFileNumber to number.
Definition: TTree.cxx:8737
virtual Double_t GetMinimum(const char *columname)
Return minimum of column with name columname.
Definition: TTree.cxx:5993
virtual void DirectoryAutoAdd(TDirectory *)
Called by TKey and TObject::Clone to automatically add us to a directory when we are read from a file...
Definition: TTree.cxx:3622
Bool_t fIMTFlush
! True if we are doing a multithreaded flush.
Definition: TTree.h:139
virtual Double_t GetWeight() const
Definition: TTree.h:464
virtual void StartViewer()
Start the TTreeViewer on this tree.
Definition: TTree.cxx:8983
virtual Long64_t Merge(TCollection *list, Option_t *option="")
Merge the trees in the TList into this tree.
Definition: TTree.cxx:6623
Marker Attributes class.
Definition: TAttMarker.h:19
virtual Int_t GetEntryWithIndex(Int_t major, Int_t minor=0)
Read entry corresponding to major and minor number.
Definition: TTree.cxx:5646
TList * fAliases
List of aliases for expressions based on the tree branches.
Definition: TTree.h:112
TBranch * Branch(const char *name, Long_t address, const char *leaflist, Int_t bufsize=32000)
Definition: TTree.h:309
virtual TTreeFormula * GetVar3() const =0
Bool_t fCacheDoClusterPrefetch
! true if cache is prefetching whole clusters
Definition: TTree.h:127
virtual Long64_t GetCacheSize() const
Definition: TTree.h:374
virtual TObjArray * GetListOfBranches()
Definition: TTree.h:409
Helper class to iterate over cluster of baskets.
Definition: TTree.h:235
TVirtualTreePlayer * fPlayer
! Pointer to current Tree player
Definition: TTree.h:121
Fill Area Attributes class.
Definition: TAttFill.h:19
void ImportClusterRanges(TTree *fromtree)
Appends the cluster range information stored in &#39;fromtree&#39; to this tree, including the value of fAuto...
Definition: TTree.cxx:6090
virtual void SetAutoFlush(Long64_t autof=-30000000)
This function may be called at the start of a program to change the default value for fAutoFlush...
Definition: TTree.cxx:7830
#define ClassDef(name, id)
Definition: Rtypes.h:320
virtual Long64_t GetSelectedRows()
Definition: TTree.h:434
TTreeFormula * GetVar(Int_t i)
Definition: TTree.h:444
virtual Long64_t GetReadEvent() const
Definition: TTree.h:431
virtual Long64_t CopyEntries(TTree *tree, Long64_t nentries=-1, Option_t *option="")
Copy nentries from given tree to this tree.
Definition: TTree.cxx:3353
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=0)
Change branch address, dealing with clone trees properly.
Definition: TTree.cxx:7982
Int_t fNfill
! Local for EntryLoop
Definition: TTree.h:101
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
virtual Long64_t GetEntryNumberWithBestIndex(Long64_t major, Long64_t minor=0) const
Return entry number corresponding to major and minor number.
Definition: TTree.cxx:5609
virtual Long64_t GetReadEntry() const
Definition: TTree.h:430
virtual const char * GetAlias(const char *aliasName) const
Returns the expanded value of the alias. Search in the friends if any.
Definition: TTree.cxx:4976
virtual Long64_t LoadTree(Long64_t entry)
Set current entry.
Definition: TTree.cxx:6190
Bool_t fCacheUserSet
! true if the cache setting was explicitly given by user
Definition: TTree.h:128
virtual void SetTreeIndex(TVirtualIndex *index)
The current TreeIndex is replaced by the new index.
Definition: TTree.cxx:8870
Int_t fMaxClusterRange
! Memory allocated for the cluster range.
Definition: TTree.h:87
static Int_t GetBranchStyle()
Static function returning the current branch style.
Definition: TTree.cxx:5131
virtual Int_t BuildIndex(const char *majorname, const char *minorname="0")
Build a Tree Index (default is TTreeIndex).
Definition: TTree.cxx:2504
virtual Int_t UnbinnedFit(const char *funcname, const char *varexp, const char *selection="", Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Unbinned fit of one or more variable(s) from a tree.
Definition: TTree.cxx:9249
virtual TBranch * BranchOld(const char *name, const char *classname, void *addobj, Int_t bufsize=32000, Int_t splitlevel=1)
Create a new TTree BranchObject.
Definition: TTree.cxx:1944
virtual Int_t GetNbranches()
Definition: TTree.h:423
virtual TVirtualPerfStats * GetPerfStats() const
Definition: TTree.h:427
virtual void Show(Long64_t entry=-1, Int_t lenmax=20)
Print values of all active leaves for entry.
Definition: TTree.cxx:8909
TBranchRef * fBranchRef
Branch supporting the TRefTable (if any)
Definition: TTree.h:123
virtual Int_t MakeClass(const char *classname=0, Option_t *option="")
Generate a skeleton analysis class for this tree.
Definition: TTree.cxx:6336
virtual TClusterIterator GetClusterIterator(Long64_t firstentry)
Return an iterator over the cluster of baskets starting at firstentry.
Definition: TTree.cxx:5193
static TClass * GetClass(const std::type_info &typeinfo)
Forward to TROOT::GetClass().
Definition: TBuffer.cxx:307
UInt_t fFriendLockStatus
! Record which method is locking the friend recursion
Definition: TTree.h:124
Double_t * fArray
Definition: TArrayD.h:30
Int_t fTimerInterval
Timer interval in milliseconds.
Definition: TTree.h:82
virtual TFriendElement * AddFriend(const char *treename, const char *filename="")
Add a TFriendElement to the list of friends.
Definition: TTree.cxx:1244
const Bool_t kIterForward
Definition: TCollection.h:40
virtual Long64_t Scan(const char *varexp="", const char *selection="", Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Loop over tree entries and print entries passing selection.
Definition: TTree.cxx:7733
Long64_t fFlushedBytes
Number of auto-flushed bytes.
Definition: TTree.h:80
TObject * GetNotify() const
Definition: TTree.h:424
UInt_t fNEntriesSinceSorting
! Number of entries processed since the last re-sorting of branches
Definition: TTree.h:130
Bool_t operator!=(const TDatime &d1, const TDatime &d2)
Definition: TDatime.h:104
virtual Double_t GetMaximum(const char *columname)
Return maximum of column with name columname.
Definition: TTree.cxx:5953
virtual void RemoveFriend(TTree *)
Remove a friend from the list of friends.
Definition: TTree.cxx:7616
virtual Double_t * GetW() const =0
virtual TList * GetUserInfo()
Return a pointer to the list containing user objects associated to this tree.
Definition: TTree.cxx:6074
std::atomic< Long64_t > fIMTZipBytes
! Zip bytes for the IMT flush baskets.
Definition: TTree.h:141
virtual void SetCacheLearnEntries(Int_t n=10)
Interface to TTreeCache to set the number of entries for the learning phase.
Definition: TTree.cxx:8449
A branch containing and managing a TRefTable for TRef autoloading.
Definition: TBranchRef.h:29
Long64_t fZipBytes
Total number of bytes in all branches after compression.
Definition: TTree.h:78
Long64_t fDebugMax
! Last entry number to debug
Definition: TTree.h:104
virtual TBranch * BranchImp(const char *branchname, const char *classname, TClass *ptrClass, void *addobj, Int_t bufsize, Int_t splitlevel)
Same as TTree::Branch() with added check that addobj matches className.
Definition: TTree.cxx:1450
TBranch * Branch(const char *name, char *address, const char *leaflist, Int_t bufsize=32000)
Definition: TTree.h:304
TTreeFormula * GetVar4()
Definition: TTree.h:452
Used to pass a selection expression to the Tree drawing routine.
Definition: TTreeFormula.h:58
virtual TTree * GetTree() const
Definition: TTree.h:438
virtual void SetEventList(TEventList *list)
This function transfroms the given TEventList into a TEntryList The new TEntryList is owned by the TT...
Definition: TTree.cxx:8653
virtual Int_t GetTreeNumber() const
Definition: TTree.h:440
void UseCurrentStyle()
Replace current attributes by current style.
Definition: TTree.cxx:9261
A specialized string object used for TTree selections.
Definition: TCut.h:25
A doubly linked list.
Definition: TList.h:44
virtual TBranch * GetBranch(const char *name)
Return pointer to the branch with the given name in this tree or its friends.
Definition: TTree.cxx:5017
Bool_t fCacheDoAutoInit
! true if cache auto creation or resize check is needed
Definition: TTree.h:126
Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr=0)
Definition: TTree.h:513
TH1 * GetHistogram()
Definition: TTree.h:400
Int_t GetType() const
Definition: TDataType.h:68
TObjArray fLeaves
Direct pointers to individual branch leaves.
Definition: TTree.h:111
Long64_t * fClusterRangeEnd
[fNClusterRange] Last entry of a cluster range.
Definition: TTree.h:94
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
Int_t fNClusterRange
Number of Cluster range in addition to the one defined by &#39;AutoFlush&#39;.
Definition: TTree.h:86
virtual Long64_t GetEntryNumber(Long64_t entry) const
Return entry number corresponding to entry.
Definition: TTree.cxx:5584
TEntryList * fEntryList
! Pointer to event selection list (if one)
Definition: TTree.h:114
virtual Long64_t GetAutoSave() const
Definition: TTree.h:369
virtual TTreeFormula * GetVar4() const =0
TBranch * Branch(const char *name, int address, const char *leaflist, Int_t bufsize=32000)
Definition: TTree.h:314
virtual Long64_t GetChainOffset() const
Definition: TTree.h:377
virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
Definition: TTree.cxx:9298
virtual void SetEstimate(Long64_t nentries=1000000)
Set number of entries to estimate variable limits.
Definition: TTree.cxx:8694
virtual Double_t * GetV2() const =0
ESetBranchAddressStatus
Definition: TTree.h:210
Long64_t fChainOffset
! Offset of 1st entry of this Tree in a TChain
Definition: TTree.h:97
~TFriendLock()
Restore the state of tree the same as before we set the lock.
Definition: TTree.cxx:509
Long64_t * fClusterSize
[fNClusterRange] Number of entries in each cluster for a given range.
Definition: TTree.h:95
virtual Double_t * GetV2()
Definition: TTree.h:458
virtual Long64_t GetEntryNumberWithIndex(Long64_t major, Long64_t minor=0) const
Return entry number corresponding to major and minor number.
Definition: TTree.cxx:5629
virtual void SetUpdate(Int_t freq=0)
Definition: TTree.h:572
TVirtualPerfStats * fPerfStats
! pointer to the current perf stats object
Definition: TTree.h:119
TObject * operator*() const
Return current object or nullptr.
Definition: TTree.h:622
Long64_t fReadEntry
! Number of the entry being processed
Definition: TTree.h:98
virtual TVirtualIndex * GetTreeIndex() const
Definition: TTree.h:439
virtual ~TTree()
Destructor.
Definition: TTree.cxx:882
Collection abstract base class.
Definition: TCollection.h:63
TList * fUserInfo
pointer to a list of user objects associated to this Tree
Definition: TTree.h:120
TObjArray fBranches
List of Branches.
Definition: TTree.h:110
virtual void SetNotify(TObject *obj)
Sets the address of the object to be notified when the tree is loaded.
Definition: TTree.h:563
unsigned int UInt_t
Definition: RtypesCore.h:42
friend TBranch * TTreeBranchImpRef(TTree *tree, const char *branchname, TClass *ptrClass, EDataType datatype, void *addobj, Int_t bufsize, Int_t splitlevel)
Int_t GetEntriesFast() const
Definition: TObjArray.h:64
TFile * GetCurrentFile() const
Return pointer to the current file.
Definition: TTree.cxx:5205
Int_t Debug() const
Definition: TTree.h:355
Manages buffers for branches of a Tree.
Definition: TBasket.h:34
TTreeFormula * GetVar3()
Definition: TTree.h:450
A TEventList object is a list of selected events (entries) in a TTree.
Definition: TEventList.h:31
virtual TLeaf * FindLeaf(const char *name)
Find leaf..
Definition: TTree.cxx:4678
TArrayI fIndex
Index of sorted values.
Definition: TTree.h:116
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
virtual Long64_t GetEstimate() const
Definition: TTree.h:388
Bool_t fIMTEnabled
! true if implicit multi-threading is enabled for this tree
Definition: TTree.h:129
virtual TBranchRef * GetBranchRef() const
Definition: TTree.h:371
virtual void ResetBranchAddress(TBranch *)
Tell all of our branches to set their addresses to zero.
Definition: TTree.cxx:7704
ROOT::TIOFeatures GetIOFeatures() const
Returns the current set of IO settings.
Definition: TTree.cxx:5793
Bool_t fDirection
iteration direction
Definition: TTree.h:598
virtual Double_t * GetVal(Int_t) const =0
TEventList * fEventList
! Pointer to event selection list (if one)
Definition: TTree.h:113
virtual TBranch * Bronch(const char *name, const char *classname, void *addobj, Int_t bufsize=32000, Int_t splitlevel=99)
Create a new TTree BranchElement.
Definition: TTree.cxx:2274
virtual Bool_t GetBranchStatus(const char *branchname) const
Return status of branch with name branchname.
Definition: TTree.cxx:5116
Long64_t fMaxEntries
Maximum number of entries in case of circular buffers.
Definition: TTree.h:88
void AddClone(TTree *)
Add a cloned tree to our list of trees to be notified whenever we change our branch addresses or when...
Definition: TTree.cxx:1156
void MarkEventCluster()
Mark the previous event as being at the end of the event cluster.
Definition: TTree.cxx:7892
char GetNewlineValue(std::istream &inputStream)
Determine which newline this file is using.
Definition: TTree.cxx:7253
virtual Int_t DropBranchFromCache(const char *bname, Bool_t subbranches=kFALSE)
Remove the branch with name &#39;bname&#39; from the Tree cache.
Definition: TTree.cxx:1079
void InitializeBranchLists(bool checkLeafCount)
Divides the top-level branches into two vectors: (i) branches to be processed sequentially and (ii) b...
Definition: TTree.cxx:5505
virtual Int_t * GetIndex()
Definition: TTree.h:402
Long64_t fAutoSave
Autosave tree when fAutoSave entries written or -fAutoSave (compressed) bytes produced.
Definition: TTree.h:91
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 Int_t CheckBranchAddressType(TBranch *branch, TClass *ptrClass, EDataType datatype, Bool_t ptr)
Check whether or not the address described by the last 3 parameters matches the content of the branch...
Definition: TTree.cxx:2707
virtual void SetDebug(Int_t level=1, Long64_t min=0, Long64_t max=9999999)
Set the debug level and the debug range.
Definition: TTree.cxx:8512
virtual Long64_t Process(const char *filename, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Process this tree executing the TSelector code in the specified filename.
Definition: TTree.cxx:7120
TBranch * Branch(const char *name, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Definition: TTree.h:337
#define SafeDelete(p)
Definition: RConfig.h:529
long Long_t
Definition: RtypesCore.h:50
virtual void DropBuffers(Int_t nbytes)
Drop branch buffers to accommodate nbytes below MaxVirtualsize.
Definition: TTree.cxx:4306
virtual Int_t GetTimerInterval() const
Definition: TTree.h:435
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
virtual void SetWeight(Double_t w=1, Option_t *option="")
Set tree weight.
Definition: TTree.cxx:8898
TBranch * Branch(const char *name, const char *classname, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Definition: TTree.h:322
A PolyMarker is defined by an array on N points in a 2-D space.
Definition: TPolyMarker.h:31
virtual void SetDirectory(TDirectory *dir)
Change the tree&#39;s directory.
Definition: TTree.cxx:8550
virtual Long64_t LoadTreeFriend(Long64_t entry, TTree *T)
Load entry on behalf of our master tree, we may use an index.
Definition: TTree.cxx:6286
virtual Int_t GetUpdate() const
Definition: TTree.h:441
Long64_t fMaxVirtualSize
Maximum total size of buffers kept in memory.
Definition: TTree.h:90
Int_t GetEvent(Long64_t entry=0, Int_t getall=0)
Definition: TTree.h:390
virtual void SetEntryList(TEntryList *list, Option_t *opt="")
Set an EntryList.
Definition: TTree.cxx:8630
double Double_t
Definition: RtypesCore.h:55
Long64_t GetStartEntry()
Definition: TTree.h:268
Long64_t GetCacheAutoSize(Bool_t withDefault=kFALSE) const
Used for automatic sizing of the cache.
Definition: TTree.cxx:5143
virtual Double_t * GetW()
Definition: TTree.h:463
Int_t * fArray
Definition: TArrayI.h:30
Long64_t fTotBytes
Total number of bytes in all branches before compression.
Definition: TTree.h:77
std::vector< TBranch * > fSeqBranches
! Branches to be processed sequentially when IMT is on
Definition: TTree.h:132
Describe directory structure in memory.
Definition: TDirectory.h:34
virtual void SetPerfStats(TVirtualPerfStats *perf)
Set perf stats.
Definition: TTree.cxx:8853
std::vector< std::pair< Long64_t, TBranch * > > fSortedBranches
! Branches to be processed in parallel when IMT is on, sorted by average task time ...
Definition: TTree.h:131
TDirectory * GetDirectory() const
Definition: TTree.h:383
EStatusBits
Definition: TObject.h:57
void SortBranchesByTime()
Sorts top-level branches by the last average task time recorded per branch.
Definition: TTree.cxx:5553
int type
Definition: TGX11.cxx:120
unsigned long long ULong64_t
Definition: RtypesCore.h:70
virtual Long64_t ReadFile(const char *filename, const char *branchDescriptor="", char delimiter=' ')
Create or simply read branches from filename.
Definition: TTree.cxx:7234
Long64_t fAutoFlush
Auto-flush tree when fAutoFlush entries written or -fAutoFlush (compressed) bytes produced...
Definition: TTree.h:92
virtual Bool_t GetImplicitMT()
Definition: TTree.h:401
virtual void ResetBranchAddresses()
Tell all of our branches to drop their current objects and allocate new ones.
Definition: TTree.cxx:7714
virtual void Draw(Option_t *opt)
Default Draw method for all objects.
Definition: TTree.h:357
TCanvas * style()
Definition: style.C:1
int nentries
Definition: THbookFile.cxx:89
EDataType
Definition: TDataType.h:28
Int_t fDefaultEntryOffsetLen
Initial Length of fEntryOffset table in the basket buffers.
Definition: TTree.h:85
virtual Option_t * GetOption() const
Definition: TObject.h:120
The TH1 histogram class.
Definition: TH1.h:56
virtual Long64_t GetChainEntryNumber(Long64_t entry) const
Definition: TTree.h:376
Long64_t fEstimate
Number of entries to estimate histogram limits.
Definition: TTree.h:93
UInt_t fMethodBit
Definition: TTree.h:170
Helper class to prevent infinite recursion in the usage of TTree Friends.
Definition: TTree.h:166
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
Definition: TClass.cxx:2887
virtual Int_t SetCacheSize(Long64_t cachesize=-1)
Set maximum size of the file cache .
Definition: TTree.cxx:8270
Int_t fDebug
! Debug level
Definition: TTree.h:102
Int_t SetCacheSizeAux(Bool_t autocache=kTRUE, Long64_t cacheSize=0)
Set the size of the file cache and create it if possible.
Definition: TTree.cxx:8296
Array of doubles (64 bits per element).
Definition: TArrayD.h:27
virtual Long64_t GetEntries() const
Definition: TTree.h:384
virtual void SetBasketSize(const char *bname, Int_t buffsize=16000)
Set a branch&#39;s basket size.
Definition: TTree.cxx:7955
virtual TBranch * BranchRef()
Build the optional branch supporting the TRefTable.
Definition: TTree.cxx:2198
virtual void ResetAfterMerge(TFileMergeInfo *)
Resets the state of this TTree after a merge (keep the customization but forget the data)...
Definition: TTree.cxx:7673
virtual Bool_t SetAlias(const char *aliasName, const char *aliasFormula)
Set a tree variable alias.
Definition: TTree.cxx:7775
Int_t fFileNumber
! current file number (if file extensions)
Definition: TTree.h:107
Mother of all ROOT objects.
Definition: TObject.h:37
Int_t fUpdate
Update frequency for EntryLoop.
Definition: TTree.h:84
Long64_t operator()()
Definition: TTree.h:277
virtual Int_t Branch(TCollection *list, Int_t bufsize=32000, Int_t splitlevel=99, const char *name="")
Create one branch for each element in the collection.
Definition: TTree.cxx:1711
Long64_t fEntries
Number of entries.
Definition: TTree.h:75
TList * fClones
! List of cloned trees which share our addresses
Definition: TTree.h:122
virtual Int_t MakeSelector(const char *selector=0, Option_t *option="")
Generate skeleton selector class for this tree.
Definition: TTree.cxx:6551
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
virtual Long64_t GetSelectedRows() const =0
Class implementing or helping the various TTree cloning method.
Definition: TTreeCloner.h:38
virtual Double_t * GetVal(Int_t i)
Definition: TTree.h:454
Abstract base class defining the interface for the plugins that implement Draw, Scan, Process, MakeProxy, etc.
Long64_t GetDebugMax() const
Definition: TTree.h:381
Definition: file.py:1
A TFriendElement TF describes a TTree object TF in a file.
virtual Long64_t GetZipBytes() const
Definition: TTree.h:465
Long64_t fNextEntry
Definition: TTree.h:241
Iterator on all the leaves in a TTree and its friend.
Definition: TTree.h:592
virtual TBranch * BronchExec(const char *name, const char *classname, void *addobj, Bool_t isptrptr, Int_t bufsize, Int_t splitlevel)
Helper function implementing TTree::Bronch and TTree::Branch(const char *name, T &obj);.
Definition: TTree.cxx:2282
virtual void RecursiveRemove(TObject *obj)
Make sure that obj (which is being deleted or will soon be) is no longer referenced by this TTree...
Definition: TTree.cxx:7546
virtual void SetCircular(Long64_t maxEntries)
Enable/Disable circularity for this tree.
Definition: TTree.cxx:8476
virtual void Reset(Option_t *option="")
Reset baskets, buffers and entries count in all branches and leaves.
Definition: TTree.cxx:7642
virtual void SetClusterPrefetch(Bool_t enabled)
Definition: TTree.h:536
Definition: tree.py:1
std::atomic< Long64_t > fTotalBuffers
! Total number of bytes in branch buffers
Definition: TTree.h:99
virtual void SetTimerInterval(Int_t msec=333)
Definition: TTree.h:569
virtual TTreeFormula * GetVar2() const =0
TObject * fNotify
! Object to be notified when loading a Tree
Definition: TTree.h:108
virtual Int_t SetCacheEntryRange(Long64_t first, Long64_t last)
interface to TTreeCache to set the cache entry range
Definition: TTree.cxx:8415
TTreeFormula * GetVar1()
Definition: TTree.h:446
A TTree object has a header with a name and a title.
Definition: TTree.h:70
#define gDirectory
Definition: TDirectory.h:213
TVirtualIndex * fTreeIndex
Pointer to the tree Index (if any)
Definition: TTree.h:117
TFriendLock & operator=(const TFriendLock &)
Assignment operator.
Definition: TTree.cxx:496
Int_t SetBranchAddressImp(TBranch *branch, void *addr, TBranch **ptr)
Change branch address, dealing with clone trees properly.
Definition: TTree.cxx:8039
TEventList * GetEventList() const
Definition: TTree.h:394
virtual void SetDefaultEntryOffsetLen(Int_t newdefault, Bool_t updateExisting=kFALSE)
Update the default value for the branch&#39;s fEntryOffsetLen.
Definition: TTree.cxx:8524
Definition: first.py:1
virtual void DropBaskets()
Remove some baskets from memory.
Definition: TTree.cxx:4293
virtual TIterator * GetIteratorOnAllLeaves(Bool_t dir=kIterForward)
Creates a new iterator that will go through all the leaves on the tree itself and its friend...
Definition: TTree.cxx:5801
virtual void SetImplicitMT(Bool_t enabled)
Definition: TTree.h:546
static Long64_t fgMaxTreeSize
Maximum size of a file containing a Tree.
Definition: TTree.h:135
virtual Long64_t SetEntries(Long64_t n=-1)
Change number of entries in the tree.
Definition: TTree.cxx:8595
virtual TFile * ChangeFile(TFile *file)
Called by TTree::Fill() when file has reached its maximum fgMaxTreeSize.
Definition: TTree.cxx:2594
static TTree * MergeTrees(TList *list, Option_t *option="")
Static function merging the trees in the TList into a new tree.
Definition: TTree.cxx:6580
A TTree is a list of TBranches.
Definition: TBranch.h:62
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Definition: TSelector.h:33
Int_t FlushBasketsImpl() const
Internal implementation of the FlushBaskets algorithm.
Definition: TTree.cxx:4901
A List of entry numbers in a TTree or TChain.
Definition: TEntryList.h:25
virtual Int_t AddBranchToCache(const char *bname, Bool_t subbranches=kFALSE)
Add branch with name bname to the Tree cache.
Definition: TTree.cxx:996
const Bool_t kTRUE
Definition: RtypesCore.h:87
Int_t fPacketSize
! Number of entries in one packet for parallel root
Definition: TTree.h:100
const Int_t n
Definition: legend1.C:16
virtual Long64_t Project(const char *hname, const char *varexp, const char *selection="", Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0)
Make a projection of a tree using selections.
Definition: TTree.cxx:7168
virtual void SetScanField(Int_t n=50)
Definition: TTree.h:568
Line Attributes class.
Definition: TAttLine.h:18
virtual Double_t * GetV1()
Definition: TTree.h:456
Int_t SetBranchAddress(const char *bname, T *add, TBranch **ptr=0)
Definition: TTree.h:522
TIOFeatures fIOFeatures
IO features to define for newly-written baskets and branches.
Definition: TTree.h:105
static constexpr Long64_t kMaxEntries
Definition: TTree.h:207
char name[80]
Definition: TGX11.cxx:109
TFriendLock(const TFriendLock &)
Copy constructor.
Definition: TTree.cxx:486
virtual Long64_t GetEntriesFriend() const
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:5238
virtual void SetName(const char *name)
Change the name of this tree.
Definition: TTree.cxx:8779
A Chain Index.
Definition: TChainIndex.h:39
virtual void PrintCacheStats(Option_t *option="") const
Print statistics about the TreeCache for this tree.
Definition: TTree.cxx:7042
void MoveReadCache(TFile *src, TDirectory *dir)
Move a cache from a file to the current file in dir.
Definition: TTree.cxx:6718
virtual void CopyAddresses(TTree *, Bool_t undo=kFALSE)
Set branch addresses of passed tree equal to ours.
Definition: TTree.cxx:3131
virtual TObjArray * GetListOfLeaves()
Definition: TTree.h:410
virtual Long64_t GetMaxVirtualSize() const
Definition: TTree.h:421
Long64_t fSavedBytes
Number of autosaved bytes.
Definition: TTree.h:79
Long64_t fCacheSize
! Maximum size of file buffers
Definition: TTree.h:96
virtual const char * GetFriendAlias(TTree *) const
If the &#39;tree&#39; is a friend, this method returns its alias name.
Definition: TTree.cxx:5751
virtual void SetChainOffset(Long64_t offset=0)
Definition: TTree.h:534
virtual Long64_t AutoSave(Option_t *option="")
AutoSave tree header every fAutoSave bytes.
Definition: TTree.cxx:1396
virtual Double_t * GetIndexValues()
Definition: TTree.h:403
virtual Double_t * GetV1() const =0
std::atomic< Long64_t > fIMTTotBytes
! Total bytes for the IMT flush baskets
Definition: TTree.h:140