Logo ROOT  
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 "Compression.h"
30#include "ROOT/TIOFeatures.hxx"
31#include "TArrayD.h"
32#include "TArrayI.h"
33#include "TAttFill.h"
34#include "TAttLine.h"
35#include "TAttMarker.h"
36#include "TBranch.h"
37#include "TBuffer.h"
38#include "TClass.h"
39#include "TDataType.h"
40#include "TDirectory.h"
41#include "TObjArray.h"
42#include "TVirtualTreePlayer.h"
43
44#include <array>
45#include <atomic>
46
47
48class TBranch;
49class TBrowser;
50class TFile;
51class TLeaf;
52class TH1;
53class TTreeFormula;
54class TPolyMarker;
55class TEventList;
56class TEntryList;
57class TList;
58class TSQLResult;
59class TSelector;
60class TPrincipal;
61class TFriendElement;
62class TCut;
63class TVirtualIndex;
64class TBranchRef;
65class TBasket;
66class TStreamerInfo;
67class TTreeCache;
68class TTreeCloner;
69class TFileMergeInfo;
71
72class TTree : public TNamed, public TAttLine, public TAttFill, public TAttMarker {
73
75
76protected:
77 Long64_t fEntries; ///< Number of entries
78// NOTE: cannot use std::atomic for these counters as it cannot be serialized.
79 Long64_t fTotBytes; ///< Total number of bytes in all branches before compression
80 Long64_t fZipBytes; ///< Total number of bytes in all branches after compression
81 Long64_t fSavedBytes; ///< Number of autosaved bytes
82 Long64_t fFlushedBytes; ///< Number of auto-flushed bytes
83 Double_t fWeight; ///< Tree weight (see TTree::SetWeight)
84 Int_t fTimerInterval; ///< Timer interval in milliseconds
85 Int_t fScanField; ///< Number of runs before prompting in Scan
86 Int_t fUpdate; ///< Update frequency for EntryLoop
87 Int_t fDefaultEntryOffsetLen; ///< Initial Length of fEntryOffset table in the basket buffers
88 Int_t fNClusterRange; ///< Number of Cluster range in addition to the one defined by 'AutoFlush'
89 Int_t fMaxClusterRange; ///<! Memory allocated for the cluster range.
90 Long64_t fMaxEntries; ///< Maximum number of entries in case of circular buffers
91 Long64_t fMaxEntryLoop; ///< Maximum number of entries to process
92 Long64_t fMaxVirtualSize; ///< Maximum total size of buffers kept in memory
93 Long64_t fAutoSave; ///< Autosave tree when fAutoSave entries written or -fAutoSave (compressed) bytes produced
94 Long64_t fAutoFlush; ///< Auto-flush tree when fAutoFlush entries written or -fAutoFlush (compressed) bytes produced
95 Long64_t fEstimate; ///< Number of entries to estimate histogram limits
96 Long64_t *fClusterRangeEnd; ///<[fNClusterRange] Last entry of a cluster range.
97 Long64_t *fClusterSize; ///<[fNClusterRange] Number of entries in each cluster for a given range.
98 Long64_t fCacheSize; ///<! Maximum size of file buffers
99 Long64_t fChainOffset; ///<! Offset of 1st entry of this Tree in a TChain
100 Long64_t fReadEntry; ///<! Number of the entry being processed
101 std::atomic<Long64_t> fTotalBuffers; ///<! Total number of bytes in branch buffers
102 Int_t fPacketSize; ///<! Number of entries in one packet for parallel root
103 Int_t fNfill; ///<! Local for EntryLoop
104 Int_t fDebug; ///<! Debug level
105 Long64_t fDebugMin; ///<! First entry number to debug
106 Long64_t fDebugMax; ///<! Last entry number to debug
107 TIOFeatures fIOFeatures{0}; ///< IO features to define for newly-written baskets and branches.
108 Int_t fMakeClass; ///<! not zero when processing code generated by MakeClass
109 Int_t fFileNumber; ///<! current file number (if file extensions)
110 TObject *fNotify; ///<! Object to be notified when loading a Tree
111 TDirectory *fDirectory; ///<! Pointer to directory holding this tree
112 TObjArray fBranches; ///< List of Branches
113 TObjArray fLeaves; ///< Direct pointers to individual branch leaves
114 TList *fAliases; ///< List of aliases for expressions based on the tree branches.
115 TEventList *fEventList; ///<! Pointer to event selection list (if one)
116 TEntryList *fEntryList; ///<! Pointer to event selection list (if one)
117 TArrayD fIndexValues; ///< Sorted index values
118 TArrayI fIndex; ///< Index of sorted values
119 TVirtualIndex *fTreeIndex; ///< Pointer to the tree Index (if any)
120 TList *fFriends; ///< pointer to list of friend elements
121 TVirtualPerfStats *fPerfStats; ///<! pointer to the current perf stats object
122 TList *fUserInfo; ///< pointer to a list of user objects associated to this Tree
123 TVirtualTreePlayer *fPlayer; ///<! Pointer to current Tree player
124 TList *fClones; ///<! List of cloned trees which share our addresses
125 TBranchRef *fBranchRef; ///< Branch supporting the TRefTable (if any)
126 UInt_t fFriendLockStatus; ///<! Record which method is locking the friend recursion
127 TBuffer *fTransientBuffer; ///<! Pointer to the current transient buffer.
128 Bool_t fCacheDoAutoInit; ///<! true if cache auto creation or resize check is needed
129 Bool_t fCacheDoClusterPrefetch;///<! true if cache is prefetching whole clusters
130 Bool_t fCacheUserSet; ///<! true if the cache setting was explicitly given by user
131 Bool_t fIMTEnabled; ///<! true if implicit multi-threading is enabled for this tree
132 UInt_t fNEntriesSinceSorting; ///<! Number of entries processed since the last re-sorting of branches
133 std::vector<std::pair<Long64_t,TBranch*>> fSortedBranches; ///<! Branches to be processed in parallel when IMT is on, sorted by average task time
134 std::vector<TBranch*> fSeqBranches; ///<! Branches to be processed sequentially when IMT is on
135 Float_t fTargetMemoryRatio{1.1f}; ///<! Ratio for memory usage in uncompressed buffers versus actual occupancy. 1.0
136 /// indicates basket should be resized to exact memory usage, but causes significant
137/// memory churn.
138#ifdef R__TRACK_BASKET_ALLOC_TIME
139 mutable std::atomic<ULong64_t> fAllocationTime{0}; ///<! Time spent reallocating basket memory buffers, in microseconds.
140#endif
141 mutable std::atomic<UInt_t> fAllocationCount{0}; ///<! Number of reallocations basket memory buffers.
142
143 static Int_t fgBranchStyle; ///< Old/New branch style
144 static Long64_t fgMaxTreeSize; ///< Maximum size of a file containing a Tree
145
146private:
147 // For simplicity, although fIMTFlush is always disabled in non-IMT builds, we don't #ifdef it out.
148 mutable Bool_t fIMTFlush{false}; ///<! True if we are doing a multithreaded flush.
149 mutable std::atomic<Long64_t> fIMTTotBytes; ///<! Total bytes for the IMT flush baskets
150 mutable std::atomic<Long64_t> fIMTZipBytes; ///<! Zip bytes for the IMT flush baskets.
151
152 void InitializeBranchLists(bool checkLeafCount);
153 void SortBranchesByTime();
154 Int_t FlushBasketsImpl() const;
155 void MarkEventCluster();
156
157protected:
158 virtual void KeepCircular();
159 virtual TBranch *BranchImp(const char* branchname, const char* classname, TClass* ptrClass, void* addobj, Int_t bufsize, Int_t splitlevel);
160 virtual TBranch *BranchImp(const char* branchname, TClass* ptrClass, void* addobj, Int_t bufsize, Int_t splitlevel);
161 virtual TBranch *BranchImpRef(const char* branchname, const char* classname, TClass* ptrClass, void* addobj, Int_t bufsize, Int_t splitlevel);
162 virtual TBranch *BranchImpRef(const char* branchname, TClass* ptrClass, EDataType datatype, void* addobj, Int_t bufsize, Int_t splitlevel);
163 virtual TBranch *BranchImpArr(const char* branchname, EDataType datatype, std::size_t N, void* addobj, Int_t bufsize, Int_t splitlevel);
164 virtual Int_t CheckBranchAddressType(TBranch* branch, TClass* ptrClass, EDataType datatype, Bool_t ptr);
165 virtual TBranch *BronchExec(const char* name, const char* classname, void* addobj, Bool_t isptrptr, Int_t bufsize, Int_t splitlevel);
166 friend TBranch *TTreeBranchImpRef(TTree *tree, const char* branchname, TClass* ptrClass, EDataType datatype, void* addobj, Int_t bufsize, Int_t splitlevel);
167 Int_t SetBranchAddressImp(TBranch *branch, void* addr, TBranch** ptr);
168 virtual TLeaf *GetLeafImpl(const char* branchname, const char* leafname);
169
170 Long64_t GetCacheAutoSize(Bool_t withDefault = kFALSE) const;
171 char GetNewlineValue(std::istream &inputStream);
172 void ImportClusterRanges(TTree *fromtree);
173 void MoveReadCache(TFile *src, TDirectory *dir);
174 Int_t SetCacheSizeAux(Bool_t autocache = kTRUE, Long64_t cacheSize = 0);
175
177 // Helper class to prevent infinite recursion in the
178 // usage of TTree Friends. Implemented in TTree.cxx.
179 TTree *fTree; // Pointer to the locked tree
180 UInt_t fMethodBit; // BIT for the locked method
181 Bool_t fPrevious; // Previous value of the BIT.
182
183 protected:
184 TFriendLock(const TFriendLock&);
186
187 public:
188 TFriendLock(TTree* tree, UInt_t methodbit);
189 ~TFriendLock();
190 };
191 friend class TFriendLock;
192 // So that the index class can use TFriendLock:
193 friend class TTreeIndex;
194 friend class TChainIndex;
195 // So that the TTreeCloner can access the protected interfaces
196 friend class TTreeCloner;
197
198 // use to update fFriendLockStatus
210 kPrint = BIT(10),
213 };
214
215public:
216 // Used as the max value for any TTree range operation.
218
219 // SetBranchAddress return values
232 kNeedEnableDecomposedObj = BIT(29), // DecomposedObj is the newer name of MakeClass mode
235 };
236
237 // TTree status bits
241 /// If set, the branch's buffers will grow until an event cluster boundary is hit,
242 /// guaranteeing a basket per cluster. This mode does not provide any guarantee on the
243 /// memory bounds in the case of extremely large events.
245 /// If set, signals that this TTree is the output of the processing of another TTree, and
246 /// the entries are reshuffled w.r.t. to the original TTree. As a safety measure, a TTree
247 /// with this bit set cannot add friends nor can be added as a friend. If you know what
248 /// you are doing, you can manually unset this bit with `ResetBit(EStatusBits::kEntriesReshuffled)`.
249 kEntriesReshuffled = BIT(19) // bits 15-18 are used by TChain
250 };
251
252 // Split level modifier
253 enum {
255 };
256
258 {
259 private:
260 TTree *fTree; // TTree upon which we are iterating.
261 Int_t fClusterRange; // Which cluster range are we looking at.
262 Long64_t fStartEntry; // Where does the cluster start.
263 Long64_t fNextEntry; // Where does the cluster end (exclusive).
264 Long64_t fEstimatedSize; // If positive, the calculated estimated tree size.
265
267
268 protected:
269 friend class TTree;
270 TClusterIterator(TTree *tree, Long64_t firstEntry);
271
272 public:
273 // Intentionally used the default copy constructor and default destructor
274 // as the TClusterIterator does not own the TTree.
275 // TClusterIterator(const TClusterIterator&);
276 // ~TClusterIterator();
277
278 // No public constructors, the iterator must be
279 // created via TTree::GetClusterIterator
280
281 // Move on to the next cluster and return the starting entry
282 // of this next cluster
283 Long64_t Next();
284
285 // Move on to the previous cluster and return the starting entry
286 // of this previous cluster
288
289 // Return the start entry of the current cluster.
291 return fStartEntry;
292 }
293
294 // Return the first entry of the next cluster.
296 return fNextEntry;
297 }
298
299 Long64_t operator()() { return Next(); }
300 };
301
302 TTree();
303 TTree(const char* name, const char* title, Int_t splitlevel = 99, TDirectory* dir = gDirectory);
304 virtual ~TTree();
305
306 TTree(const TTree& tt) = delete;
307 TTree& operator=(const TTree& tt) = delete;
308
309 virtual Int_t AddBranchToCache(const char *bname, Bool_t subbranches = kFALSE);
310 virtual Int_t AddBranchToCache(TBranch *branch, Bool_t subbranches = kFALSE);
311 virtual Int_t DropBranchFromCache(const char *bname, Bool_t subbranches = kFALSE);
312 virtual Int_t DropBranchFromCache(TBranch *branch, Bool_t subbranches = kFALSE);
313 void AddClone(TTree*);
314 virtual TFriendElement *AddFriend(const char* treename, const char* filename = "");
315 virtual TFriendElement *AddFriend(const char* treename, TFile* file);
316 virtual TFriendElement *AddFriend(TTree* tree, const char* alias = "", Bool_t warn = kFALSE);
317 // As the TBasket invokes Add{Tot,Zip}Bytes on its parent tree, we must do these updates in a thread-safe
318 // manner only when we are flushing multiple baskets in parallel.
319 virtual void AddTotBytes(Int_t tot) { if (fIMTFlush) { fIMTTotBytes += tot; } else { fTotBytes += tot; } }
320 virtual void AddZipBytes(Int_t zip) { if (fIMTFlush) { fIMTZipBytes += zip; } else { fZipBytes += zip; } }
321// NOTE: these counters aren't thread safe like the ones above.
322#ifdef R__TRACK_BASKET_ALLOC_TIME
323 void AddAllocationTime(ULong64_t time) { fAllocationTime += time; }
324#endif
326 virtual Long64_t AutoSave(Option_t* option = "");
327
328 /// Add a new branch, and infer the data type from the type of `obj` being passed.
329 ///
330 /// \note This and the next overload should cover most cases for creating a branch. Try to use these two whenever
331 /// possible, unless e.g. type conversions are needed.
332 ///
333 /// \param[in] name Name of the branch to be created.
334 /// \param[in] obj Address of the object to be added. Make sure to pass a pointer to the actual type/class that
335 /// should be stored in the tree (no pointers to base classes). When calling Fill(), the current value of the type/object will be saved.
336 /// \param[in] bufsize The buffer size in bytes for this branch. When the buffer is full, it is compressed and written to disc.
337 /// The default value of 32000 bytes and should be ok for most simple types. Larger buffers (e.g. 256000) if your Tree is not split and each entry is large (Megabytes).
338 /// A small value for bufsize is beneficial if entries in the Tree are accessed randomly and the Tree is in split mode.
339 /// \param[in] splitlevel If T is a class or struct and splitlevel > 0, the members of the object are serialised as separate branches.
340 /// \return Pointer to the TBranch that was created. The branch is owned by the tree.
341 template <class T> TBranch *Branch(const char* name, T* obj, Int_t bufsize = 32000, Int_t splitlevel = 99)
342 {
343 return BranchImpRef(name, TClass::GetClass<T>(), TDataType::GetType(typeid(T)), obj, bufsize, splitlevel);
344 }
345
346 /// Add a new branch, and infer the data type from the array `addobj` being passed.
347 ///
348 /// \note This and the previous overload should cover most cases for creating a branch. Try to use these two whenever
349 /// possible, unless e.g. type conversions are needed.
350 ///
351 /// \param[in] name Name of the branch to be created.
352 /// \param[in] obj Array of the objects to be added. When calling Fill(), the current value of the type/object will be saved.
353 /// \param[in] bufsize he buffer size in bytes for this branch. When the buffer is full, it is compressed and written to disc.
354 /// The default value of 32000 bytes and should be ok for most simple types. Larger buffers (e.g. 256000) if your Tree is not split and each entry is large (Megabytes).
355 /// A small value for bufsize is beneficial if entries in the Tree are accessed randomly and the Tree is in split mode.
356 /// \param[in] splitlevel If T is a class or struct and splitlevel > 0, the members of the object are serialised as separate branches.
357 /// \return Pointer to the TBranch that was created. The branch is owned by the tree.
358 template <class T> TBranch *Branch(const char* name, T** addobj, Int_t bufsize = 32000, Int_t splitlevel = 99)
359 {
360 return BranchImp(name, TClass::GetClass<T>(), addobj, bufsize, splitlevel);
361 }
362
363 virtual Int_t Branch(TCollection* list, Int_t bufsize = 32000, Int_t splitlevel = 99, const char* name = "");
364 virtual Int_t Branch(TList* list, Int_t bufsize = 32000, Int_t splitlevel = 99);
365 virtual Int_t Branch(const char* folder, Int_t bufsize = 32000, Int_t splitlevel = 99);
366 virtual TBranch *Branch(const char* name, void* address, const char* leaflist, Int_t bufsize = 32000);
367 TBranch *Branch(const char* name, char* address, const char* leaflist, Int_t bufsize = 32000)
368 {
369 // Overload to avoid confusion between this signature and the template instance.
370 return Branch(name,(void*)address,leaflist,bufsize);
371 }
372 TBranch *Branch(const char* name, Long_t address, const char* leaflist, Int_t bufsize = 32000)
373 {
374 // Overload to avoid confusion between this signature and the template instance.
375 return Branch(name,(void*)address,leaflist,bufsize);
376 }
377 TBranch *Branch(const char* name, int address, const char* leaflist, Int_t bufsize = 32000)
378 {
379 // Overload to avoid confusion between this signature and the template instance.
380 return Branch(name,(void*)(Long_t)address,leaflist,bufsize);
381 }
382 virtual TBranch *Branch(const char* name, const char* classname, void* addobj, Int_t bufsize = 32000, Int_t splitlevel = 99);
383 template <class T> TBranch *Branch(const char* name, const char* classname, T* obj, Int_t bufsize = 32000, Int_t splitlevel = 99)
384 {
385 // See BranchImpRed for details. Here we __ignore
386 return BranchImpRef(name, classname, TClass::GetClass<T>(), obj, bufsize, splitlevel);
387 }
388 template <class T> TBranch *Branch(const char* name, const char* classname, T** addobj, Int_t bufsize = 32000, Int_t splitlevel = 99)
389 {
390 // See BranchImp for details
391 return BranchImp(name, classname, TClass::GetClass<T>(), addobj, bufsize, splitlevel);
392 }
393 template <typename T, std::size_t N> TBranch *Branch(const char* name, std::array<T, N> *obj, Int_t bufsize = 32000, Int_t splitlevel = 99)
394 {
395 TClass *cl = TClass::GetClass<T>();
396 if (cl) {
397 TClass *arrCl = TClass::GetClass<std::array<T, N>>();
398 Error("Branch","std::array of objects not yet supported as top level branch object (the class is %s)",
399 arrCl ? arrCl->GetName() : cl->GetName());
400 return nullptr;
401 }
402 return BranchImpArr(name, TDataType::GetType(typeid(T)), N, obj, bufsize, splitlevel);
403 }
404 virtual TBranch *Bronch(const char* name, const char* classname, void* addobj, Int_t bufsize = 32000, Int_t splitlevel = 99);
405 virtual TBranch *BranchOld(const char* name, const char* classname, void* addobj, Int_t bufsize = 32000, Int_t splitlevel = 1);
406 virtual TBranch *BranchRef();
407 virtual void Browse(TBrowser*);
408 virtual Int_t BuildIndex(const char* majorname, const char* minorname = "0");
409 TStreamerInfo *BuildStreamerInfo(TClass* cl, void* pointer = 0, Bool_t canOptimize = kTRUE);
410 virtual TFile *ChangeFile(TFile* file);
411 virtual TTree *CloneTree(Long64_t nentries = -1, Option_t* option = "");
412 virtual void CopyAddresses(TTree*,Bool_t undo = kFALSE);
413 virtual Long64_t CopyEntries(TTree* tree, Long64_t nentries = -1, Option_t *option = "");
414 virtual TTree *CopyTree(const char* selection, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
415 virtual TBasket *CreateBasket(TBranch*);
416 virtual void DirectoryAutoAdd(TDirectory *);
417 Int_t Debug() const { return fDebug; }
418 virtual void Delete(Option_t* option = ""); // *MENU*
419 virtual void Draw(Option_t* opt) { Draw(opt, "", "", kMaxEntries, 0); }
420 virtual Long64_t Draw(const char* varexp, const TCut& selection, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
421 virtual Long64_t Draw(const char* varexp, const char* selection, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0); // *MENU*
422 virtual void DropBaskets();
423 virtual void DropBuffers(Int_t nbytes);
424 virtual Int_t Fill();
425 virtual TBranch *FindBranch(const char* name);
426 virtual TLeaf *FindLeaf(const char* name);
427 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*
428 virtual Int_t FlushBaskets(Bool_t create_cluster = true) const;
429 virtual const char *GetAlias(const char* aliasName) const;
431#ifdef R__TRACK_BASKET_ALLOC_TIME
432 ULong64_t GetAllocationTime() const { return fAllocationTime; }
433#endif
434 virtual Long64_t GetAutoFlush() const {return fAutoFlush;}
435 virtual Long64_t GetAutoSave() const {return fAutoSave;}
436 virtual TBranch *GetBranch(const char* name);
437 virtual TBranchRef *GetBranchRef() const { return fBranchRef; };
438 virtual Bool_t GetBranchStatus(const char* branchname) const;
439 static Int_t GetBranchStyle();
440 virtual Long64_t GetCacheSize() const { return fCacheSize; }
441 virtual TClusterIterator GetClusterIterator(Long64_t firstentry);
442 virtual Long64_t GetChainEntryNumber(Long64_t entry) const { return entry; }
443 virtual Long64_t GetChainOffset() const { return fChainOffset; }
445 TFile *GetCurrentFile() const;
447 Long64_t GetDebugMax() const { return fDebugMax; }
448 Long64_t GetDebugMin() const { return fDebugMin; }
449 TDirectory *GetDirectory() const { return fDirectory; }
450 virtual Long64_t GetEntries() const { return fEntries; }
451 virtual Long64_t GetEntries(const char *selection);
452 virtual Long64_t GetEntriesFast() const { return fEntries; }
453 virtual Long64_t GetEntriesFriend() const;
454 virtual Long64_t GetEstimate() const { return fEstimate; }
455 virtual Int_t GetEntry(Long64_t entry = 0, Int_t getall = 0);
456 Int_t GetEvent(Long64_t entry = 0, Int_t getall = 0) { return GetEntry(entry, getall); }
457 virtual Int_t GetEntryWithIndex(Int_t major, Int_t minor = 0);
458 virtual Long64_t GetEntryNumberWithBestIndex(Long64_t major, Long64_t minor = 0) const;
459 virtual Long64_t GetEntryNumberWithIndex(Long64_t major, Long64_t minor = 0) const;
460 TEventList *GetEventList() const { return fEventList; }
461 virtual TEntryList *GetEntryList();
462 virtual Long64_t GetEntryNumber(Long64_t entry) const;
463 virtual Int_t GetFileNumber() const { return fFileNumber; }
464 virtual TTree *GetFriend(const char*) const;
465 virtual const char *GetFriendAlias(TTree*) const;
467 virtual Bool_t GetImplicitMT() { return fIMTEnabled; }
468 virtual Int_t *GetIndex() { return &fIndex.fArray[0]; }
469 virtual Double_t *GetIndexValues() { return &fIndexValues.fArray[0]; }
472 virtual TLeaf *GetLeaf(const char* branchname, const char* leafname);
473 virtual TLeaf *GetLeaf(const char* name);
474 virtual TList *GetListOfClones() { return fClones; }
475 virtual TObjArray *GetListOfBranches() { return &fBranches; }
476 virtual TObjArray *GetListOfLeaves() { return &fLeaves; }
477 virtual TList *GetListOfFriends() const { return fFriends; }
478 virtual TList *GetListOfAliases() const { return fAliases; }
479
480 // GetMakeClass is left non-virtual for efficiency reason.
481 // Making it virtual affects the performance of the I/O
482 Int_t GetMakeClass() const { return fMakeClass; }
483
484 virtual Long64_t GetMaxEntryLoop() const { return fMaxEntryLoop; }
485 virtual Double_t GetMaximum(const char* columname);
486 static Long64_t GetMaxTreeSize();
487 virtual Long64_t GetMaxVirtualSize() const { return fMaxVirtualSize; }
488 virtual Double_t GetMinimum(const char* columname);
490 TObject *GetNotify() const { return fNotify; }
492 virtual Int_t GetPacketSize() const { return fPacketSize; }
493 virtual TVirtualPerfStats *GetPerfStats() const { return fPerfStats; }
496 virtual Long64_t GetReadEntry() const { return fReadEntry; }
497 virtual Long64_t GetReadEvent() const { return fReadEntry; }
498 virtual Int_t GetScanField() const { return fScanField; }
501 virtual Int_t GetTimerInterval() const { return fTimerInterval; }
503 virtual Long64_t GetTotBytes() const { return fTotBytes; }
504 virtual TTree *GetTree() const { return const_cast<TTree*>(this); }
505 virtual TVirtualIndex *GetTreeIndex() const { return fTreeIndex; }
506 virtual Int_t GetTreeNumber() const { return 0; }
508 virtual Int_t GetUpdate() const { return fUpdate; }
509 virtual TList *GetUserInfo();
510 // See TSelectorDraw::GetVar
512 // See TSelectorDraw::GetVar
514 // See TSelectorDraw::GetVar
516 // See TSelectorDraw::GetVar
518 // See TSelectorDraw::GetVar
520 // See TSelectorDraw::GetVal
521 virtual Double_t *GetVal(Int_t i) { return GetPlayer()->GetVal(i); }
522 // See TSelectorDraw::GetVal
523 virtual Double_t *GetV1() { return GetPlayer()->GetV1(); }
524 // See TSelectorDraw::GetVal
525 virtual Double_t *GetV2() { return GetPlayer()->GetV2(); }
526 // See TSelectorDraw::GetVal
527 virtual Double_t *GetV3() { return GetPlayer()->GetV3(); }
528 // See TSelectorDraw::GetVal
529 virtual Double_t *GetV4() { return GetPlayer()->GetV4(); }
530 virtual Double_t *GetW() { return GetPlayer()->GetW(); }
531 virtual Double_t GetWeight() const { return fWeight; }
532 virtual Long64_t GetZipBytes() const { return fZipBytes; }
533 virtual void IncrementTotalBuffers(Int_t nbytes) { fTotalBuffers += nbytes; }
534 Bool_t IsFolder() const { return kTRUE; }
535 virtual Int_t LoadBaskets(Long64_t maxmemory = 2000000000);
536 virtual Long64_t LoadTree(Long64_t entry);
537 virtual Long64_t LoadTreeFriend(Long64_t entry, TTree* T);
538 virtual Int_t MakeClass(const char* classname = 0, Option_t* option = "");
539 virtual Int_t MakeCode(const char* filename = 0);
540 virtual Int_t MakeProxy(const char* classname, const char* macrofilename = 0, const char* cutfilename = 0, const char* option = 0, Int_t maxUnrolling = 3);
541 virtual Int_t MakeSelector(const char* selector = 0, Option_t* option = "");
542 Bool_t MemoryFull(Int_t nbytes);
543 virtual Long64_t Merge(TCollection* list, Option_t* option = "");
544 virtual Long64_t Merge(TCollection* list, TFileMergeInfo *info);
545 static TTree *MergeTrees(TList* list, Option_t* option = "");
546 virtual Bool_t Notify();
547 virtual void OptimizeBaskets(ULong64_t maxMemory=10000000, Float_t minComp=1.1, Option_t *option="");
548 TPrincipal *Principal(const char* varexp = "", const char* selection = "", Option_t* option = "np", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
549 virtual void Print(Option_t* option = "") const; // *MENU*
550 virtual void PrintCacheStats(Option_t* option = "") const;
551 virtual Long64_t Process(const char* filename, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0); // *MENU*
552 virtual Long64_t Process(TSelector* selector, Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
553 virtual Long64_t Project(const char* hname, const char* varexp, const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
554 virtual TSQLResult *Query(const char* varexp = "", const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
555 virtual Long64_t ReadFile(const char* filename, const char* branchDescriptor = "", char delimiter = ' ');
556 virtual Long64_t ReadStream(std::istream& inputStream, const char* branchDescriptor = "", char delimiter = ' ');
557 virtual void Refresh();
558 virtual void RecursiveRemove(TObject *obj);
559 virtual void RemoveFriend(TTree*);
560 virtual void Reset(Option_t* option = "");
561 virtual void ResetAfterMerge(TFileMergeInfo *);
562 virtual void ResetBranchAddress(TBranch *);
563 virtual void ResetBranchAddresses();
564 virtual Long64_t Scan(const char* varexp = "", const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0); // *MENU*
565 virtual Bool_t SetAlias(const char* aliasName, const char* aliasFormula);
566 virtual void SetAutoSave(Long64_t autos = -300000000);
567 virtual void SetAutoFlush(Long64_t autof = -30000000);
568 virtual void SetBasketSize(const char* bname, Int_t buffsize = 16000);
569 virtual Int_t SetBranchAddress(const char *bname,void *add, TBranch **ptr = 0);
570 virtual Int_t SetBranchAddress(const char *bname,void *add, TClass *realClass, EDataType datatype, Bool_t isptr);
571 virtual Int_t SetBranchAddress(const char *bname,void *add, TBranch **ptr, TClass *realClass, EDataType datatype, Bool_t isptr);
572 template <class T> Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr = 0) {
573 TClass *cl = TClass::GetClass<T>();
575 if (cl==0) type = TDataType::GetType(typeid(T));
576 return SetBranchAddress(bname,add,ptr,cl,type,true);
577 }
578#ifndef R__NO_CLASS_TEMPLATE_SPECIALIZATION
579 // This can only be used when the template overload resolution can distinguish between
580 // T* and T**
581 template <class T> Int_t SetBranchAddress(const char *bname, T *add, TBranch **ptr = 0) {
582 TClass *cl = TClass::GetClass<T>();
584 if (cl==0) type = TDataType::GetType(typeid(T));
585 return SetBranchAddress(bname,add,ptr,cl,type,false);
586 }
587#endif
588 virtual void SetBranchStatus(const char* bname, Bool_t status = 1, UInt_t* found = 0);
589 static void SetBranchStyle(Int_t style = 1); //style=0 for old branch, =1 for new branch style
590 virtual Int_t SetCacheSize(Long64_t cachesize = -1);
592 virtual void SetCacheLearnEntries(Int_t n=10);
593 virtual void SetChainOffset(Long64_t offset = 0) { fChainOffset=offset; }
594 virtual void SetCircular(Long64_t maxEntries);
595 virtual void SetClusterPrefetch(Bool_t enabled) { fCacheDoClusterPrefetch = enabled; }
596 virtual void SetDebug(Int_t level = 1, Long64_t min = 0, Long64_t max = 9999999); // *MENU*
597 virtual void SetDefaultEntryOffsetLen(Int_t newdefault, Bool_t updateExisting = kFALSE);
598 virtual void SetDirectory(TDirectory* dir);
599 virtual Long64_t SetEntries(Long64_t n = -1);
600 virtual void SetEstimate(Long64_t nentries = 1000000);
602 virtual void SetFileNumber(Int_t number = 0);
603 virtual void SetEventList(TEventList* list);
604 virtual void SetEntryList(TEntryList* list, Option_t *opt="");
605 virtual void SetImplicitMT(Bool_t enabled) { fIMTEnabled = enabled; }
606 virtual void SetMakeClass(Int_t make);
607 virtual void SetMaxEntryLoop(Long64_t maxev = kMaxEntries) { fMaxEntryLoop = maxev; } // *MENU*
608 static void SetMaxTreeSize(Long64_t maxsize = 100000000000LL);
609 virtual void SetMaxVirtualSize(Long64_t size = 0) { fMaxVirtualSize = size; } // *MENU*
610 virtual void SetName(const char* name); // *MENU*
611
612 /**
613 * @brief Sets the address of the object to be notified when the tree is loaded.
614 *
615 * The method TObject::Notify is called for the given object when the tree
616 * is loaded. Specifically this occurs in the TTree::LoadTree method. To
617 * remove the notification call this method with nullptr:
618 * @code tree->SetNotify(nullptr); @endcode
619 *
620 * @param[in] obj Pointer to a TObject to be notified.
621 */
622 virtual void SetNotify(TObject* obj) { fNotify = obj; }
623
624 virtual void SetObject(const char* name, const char* title);
625 virtual void SetParallelUnzip(Bool_t opt=kTRUE, Float_t RelSize=-1);
626 virtual void SetPerfStats(TVirtualPerfStats* perf);
627 virtual void SetScanField(Int_t n = 50) { fScanField = n; } // *MENU*
629 virtual void SetTimerInterval(Int_t msec = 333) { fTimerInterval=msec; }
630 virtual void SetTreeIndex(TVirtualIndex* index);
631 virtual void SetWeight(Double_t w = 1, Option_t* option = "");
632 virtual void SetUpdate(Int_t freq = 0) { fUpdate = freq; }
633 virtual void Show(Long64_t entry = -1, Int_t lenmax = 20);
634 virtual void StartViewer(); // *MENU*
636 virtual Int_t UnbinnedFit(const char* funcname, const char* varexp, const char* selection = "", Option_t* option = "", Long64_t nentries = kMaxEntries, Long64_t firstentry = 0);
637 void UseCurrentStyle();
638 virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0);
639 virtual Int_t Write(const char *name=0, Int_t option=0, Int_t bufsize=0) const;
640
641 ClassDef(TTree, 20) // Tree descriptor (the main ROOT I/O class)
642};
643
644//////////////////////////////////////////////////////////////////////////
645// //
646// TTreeFriendLeafIter //
647// //
648// Iterator on all the leaves in a TTree and its friend //
649// //
650//////////////////////////////////////////////////////////////////////////
651
653
654protected:
655 TTree *fTree; ///< tree being iterated
656 TIterator *fLeafIter; ///< current leaf sub-iterator.
657 TIterator *fTreeIter; ///< current tree sub-iterator.
658 Bool_t fDirection; ///< iteration direction
659
661 fDirection(0) { }
662
663public:
667 TIterator &operator=(const TIterator &rhs);
669
670 const TCollection *GetCollection() const { return 0; }
671 Option_t *GetOption() const;
672 TObject *Next();
675 // TODO: Implement me
676 return false;
677 }
679 // TODO: Implement me
680 return false;
681 }
683 // TODO: Implement me
684 return nullptr;
685 }
686 ClassDef(TTreeFriendLeafIter,0) //Linked list iterator
687 };
688
689
690#endif
#define SafeDelete(p)
Definition: RConfig.hxx:550
int Int_t
Definition: RtypesCore.h:41
unsigned int UInt_t
Definition: RtypesCore.h:42
const Bool_t kFALSE
Definition: RtypesCore.h:88
long Long_t
Definition: RtypesCore.h:50
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
long long Long64_t
Definition: RtypesCore.h:69
unsigned long long ULong64_t
Definition: RtypesCore.h:70
float Float_t
Definition: RtypesCore.h:53
const Bool_t kTRUE
Definition: RtypesCore.h:87
const char Option_t
Definition: RtypesCore.h:62
#define ClassDef(name, id)
Definition: Rtypes.h:326
#define BIT(n)
Definition: Rtypes.h:83
const Bool_t kIterForward
Definition: TCollection.h:40
EDataType
Definition: TDataType.h:28
@ kOther_t
Definition: TDataType.h:32
#define gDirectory
Definition: TDirectory.h:223
#define N
char name[80]
Definition: TGX11.cxx:109
int type
Definition: TGX11.cxx:120
int nentries
Definition: THbookFile.cxx:89
TIOFeatures provides the end-user with the ability to change the IO behavior of data written via a TT...
Definition: TIOFeatures.hxx:62
Array of doubles (64 bits per element).
Definition: TArrayD.h:27
Double_t * fArray
Definition: TArrayD.h:30
Array of integers (32 bits per element).
Definition: TArrayI.h:27
Int_t * fArray
Definition: TArrayI.h:30
Fill Area Attributes class.
Definition: TAttFill.h:19
Line Attributes class.
Definition: TAttLine.h:18
Marker Attributes class.
Definition: TAttMarker.h:19
Manages buffers for branches of a Tree.
Definition: TBasket.h:34
A branch containing and managing a TRefTable for TRef autoloading.
Definition: TBranchRef.h:29
A TTree is a list of TBranches.
Definition: TBranch.h:91
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
Buffer base class used for serializing objects.
Definition: TBuffer.h:42
A Chain Index.
Definition: TChainIndex.h:39
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:75
Collection abstract base class.
Definition: TCollection.h:63
A specialized string object used for TTree selections.
Definition: TCut.h:25
Int_t GetType() const
Definition: TDataType.h:68
Describe directory structure in memory.
Definition: TDirectory.h:34
A List of entry numbers in a TTree or TChain.
Definition: TEntryList.h:26
A TEventList object is a list of selected events (entries) in a TTree.
Definition: TEventList.h:31
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format.
Definition: TFile.h:48
A TFriendElement TF describes a TTree object TF in a file.
The TH1 histogram class.
Definition: TH1.h:56
Iterator abstract base class.
Definition: TIterator.h:30
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Definition: TLeaf.h:49
A doubly linked list.
Definition: TList.h:44
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
An array of TObjects.
Definition: TObjArray.h:37
Int_t GetEntriesFast() const
Definition: TObjArray.h:64
Mother of all ROOT objects.
Definition: TObject.h:37
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definition: TObject.cxx:880
EStatusBits
Definition: TObject.h:57
A PolyMarker is defined by an array on N points in a 2-D space.
Definition: TPolyMarker.h:31
Principal Components Analysis (PCA)
Definition: TPrincipal.h:20
A TSelector object is used by the TTree::Draw, TTree::Scan, TTree::Process to navigate in a TTree and...
Definition: TSelector.h:33
Describe Streamer information for one class version.
Definition: TStreamerInfo.h:43
A cache to speed-up the reading of ROOT datasets.
Definition: TTreeCache.h:35
Class implementing or helping the various TTree cloning method.
Definition: TTreeCloner.h:38
Used to pass a selection expression to the Tree drawing routine.
Definition: TTreeFormula.h:58
Iterator on all the leaves in a TTree and its friend.
Definition: TTree.h:652
TObject * Next()
Go the next friend element.
Definition: TTree.cxx:9547
TTree * fTree
tree being iterated
Definition: TTree.h:655
Option_t * GetOption() const
Returns the object option stored in the list.
Definition: TTree.cxx:9586
TIterator & operator=(const TIterator &rhs)
Overridden assignment operator. Does NOT copy the 'cursor' location!
Definition: TTree.cxx:9524
Bool_t operator!=(const TIterator &) const
Compare two iterator objects.
Definition: TTree.h:674
TIterator * fLeafIter
current leaf sub-iterator.
Definition: TTree.h:656
TIterator * fTreeIter
current tree sub-iterator.
Definition: TTree.h:657
Bool_t fDirection
iteration direction
Definition: TTree.h:658
const TCollection * GetCollection() const
Definition: TTree.h:670
TObject * operator*() const
Return current object or nullptr.
Definition: TTree.h:682
A Tree Index with majorname and minorname.
Definition: TTreeIndex.h:29
Helper class to iterate over cluster of baskets.
Definition: TTree.h:258
Long64_t GetEstimatedClusterSize()
Estimate the cluster size.
Definition: TTree.cxx:597
Long64_t Previous()
Move on to the previous cluster and return the starting entry of this previous cluster.
Definition: TTree.cxx:680
Long64_t GetStartEntry()
Definition: TTree.h:290
Long64_t fNextEntry
Definition: TTree.h:263
Long64_t operator()()
Definition: TTree.h:299
Long64_t Next()
Move on to the next cluster and return the starting entry of this next cluster.
Definition: TTree.cxx:636
Long64_t GetNextEntry()
Definition: TTree.h:295
Long64_t fStartEntry
Definition: TTree.h:262
Long64_t fEstimatedSize
Definition: TTree.h:264
TClusterIterator(TTree *tree, Long64_t firstEntry)
Regular constructor.
Definition: TTree.cxx:546
Helper class to prevent infinite recursion in the usage of TTree Friends.
Definition: TTree.h:176
TFriendLock & operator=(const TFriendLock &)
Assignment operator.
Definition: TTree.cxx:516
TFriendLock(const TFriendLock &)
Copy constructor.
Definition: TTree.cxx:506
UInt_t fMethodBit
Definition: TTree.h:180
TTree * fTree
Definition: TTree.h:179
~TFriendLock()
Restore the state of tree the same as before we set the lock.
Definition: TTree.cxx:529
Bool_t fPrevious
Definition: TTree.h:181
A TTree represents a columnar dataset.
Definition: TTree.h:72
virtual Int_t Fill()
Fill all branches.
Definition: TTree.cxx:4487
virtual TFriendElement * AddFriend(const char *treename, const char *filename="")
Add a TFriendElement to the list of friends.
Definition: TTree.cxx:1300
TBranchRef * fBranchRef
Branch supporting the TRefTable (if any)
Definition: TTree.h:125
virtual Int_t AddBranchToCache(const char *bname, Bool_t subbranches=kFALSE)
Add branch with name bname to the Tree cache.
Definition: TTree.cxx:1028
virtual TBranch * FindBranch(const char *name)
Return the branch that correspond to the path 'branchname', which can include the name of the tree or...
Definition: TTree.cxx:4723
virtual TVirtualPerfStats * GetPerfStats() const
Definition: TTree.h:493
virtual void SetTimerInterval(Int_t msec=333)
Definition: TTree.h:629
TTreeFormula * GetSelect()
Definition: TTree.h:499
virtual TBranch * GetBranch(const char *name)
Return pointer to the branch with the given name in this tree or its friends.
Definition: TTree.cxx:5170
virtual Int_t GetScanField() const
Definition: TTree.h:498
static Int_t GetBranchStyle()
Static function returning the current branch style.
Definition: TTree.cxx:5264
TList * fFriends
pointer to list of friend elements
Definition: TTree.h:120
virtual Long64_t GetChainEntryNumber(Long64_t entry) const
Definition: TTree.h:442
UInt_t fFriendLockStatus
! Record which method is locking the friend recursion
Definition: TTree.h:126
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:5958
Long64_t fTotBytes
Total number of bytes in all branches before compression.
Definition: TTree.h:79
Int_t GetDefaultEntryOffsetLen() const
Definition: TTree.h:446
Int_t fMaxClusterRange
! Memory allocated for the cluster range.
Definition: TTree.h:89
virtual void Show(Long64_t entry=-1, Int_t lenmax=20)
Print values of all active leaves for entry.
Definition: TTree.cxx:9096
TEventList * fEventList
! Pointer to event selection list (if one)
Definition: TTree.h:115
virtual Long64_t GetAutoSave() const
Definition: TTree.h:435
virtual Int_t StopCacheLearningPhase()
Stop the cache learning phase.
Definition: TTree.cxx:9185
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:133
virtual void SetCircular(Long64_t maxEntries)
Enable/Disable circularity for this tree.
Definition: TTree.cxx:8629
virtual Long64_t GetEstimate() const
Definition: TTree.h:454
Long64_t GetDebugMax() const
Definition: TTree.h:447
Long64_t fSavedBytes
Number of autosaved bytes.
Definition: TTree.h:81
virtual TClusterIterator GetClusterIterator(Long64_t firstentry)
Return an iterator over the cluster of baskets starting at firstentry.
Definition: TTree.cxx:5326
virtual void ResetBranchAddress(TBranch *)
Tell all of our branches to set their addresses to zero.
Definition: TTree.cxx:7849
char GetNewlineValue(std::istream &inputStream)
Determine which newline this file is using.
Definition: TTree.cxx:7398
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:2809
TBranch * Branch(const char *name, T **addobj, Int_t bufsize=32000, Int_t splitlevel=99)
Add a new branch, and infer the data type from the array addobj being passed.
Definition: TTree.h:358
TIOFeatures fIOFeatures
IO features to define for newly-written baskets and branches.
Definition: TTree.h:107
virtual Long64_t GetSelectedRows()
Definition: TTree.h:500
void AddAllocationCount(UInt_t count)
Definition: TTree.h:325
virtual void SetMaxEntryLoop(Long64_t maxev=kMaxEntries)
Definition: TTree.h:607
virtual Long64_t GetEntryNumberWithIndex(Long64_t major, Long64_t minor=0) const
Return entry number corresponding to major and minor number.
Definition: TTree.cxx:5770
Long64_t fDebugMin
! First entry number to debug
Definition: TTree.h:105
virtual Long64_t SetEntries(Long64_t n=-1)
Change number of entries in the tree.
Definition: TTree.cxx:8748
TBranch * Branch(const char *name, Long_t address, const char *leaflist, Int_t bufsize=32000)
Definition: TTree.h:372
virtual TObjArray * GetListOfLeaves()
Definition: TTree.h:476
Bool_t fCacheDoClusterPrefetch
! true if cache is prefetching whole clusters
Definition: TTree.h:129
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:2038
virtual TBranch * BranchRef()
Build the optional branch supporting the TRefTable.
Definition: TTree.cxx:2292
TFile * GetCurrentFile() const
Return pointer to the current file.
Definition: TTree.cxx:5338
TObject * GetNotify() const
Definition: TTree.h:490
TList * fAliases
List of aliases for expressions based on the tree branches.
Definition: TTree.h:114
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:3635
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:5005
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:4955
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:8449
Long64_t * fClusterRangeEnd
[fNClusterRange] Last entry of a cluster range.
Definition: TTree.h:96
std::atomic< Long64_t > fIMTZipBytes
! Zip bytes for the IMT flush baskets.
Definition: TTree.h:150
void UseCurrentStyle()
Replace current attributes by current style.
Definition: TTree.cxx:9448
TVirtualTreePlayer * GetPlayer()
Load the TTreePlayer (if not already done).
Definition: TTree.cxx:6161
Float_t fTargetMemoryRatio
! Ratio for memory usage in uncompressed buffers versus actual occupancy.
Definition: TTree.h:135
virtual Double_t * GetIndexValues()
Definition: TTree.h:469
virtual TList * GetListOfAliases() const
Definition: TTree.h:478
virtual Long64_t ReadStream(std::istream &inputStream, const char *branchDescriptor="", char delimiter=' ')
Create or simply read branches from an input stream.
Definition: TTree.cxx:7425
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:8665
Int_t fScanField
Number of runs before prompting in Scan.
Definition: TTree.h:85
virtual Double_t GetWeight() const
Definition: TTree.h:531
virtual ~TTree()
Destructor.
Definition: TTree.cxx:904
virtual TTree * GetFriend(const char *) const
Return a pointer to the TTree friend whose name or alias is 'friendname.
Definition: TTree.cxx:5835
virtual Int_t SetBranchAddress(const char *bname, void *add, TBranch **ptr=0)
Change branch address, dealing with clone trees properly.
Definition: TTree.cxx:8127
TTreeFormula * GetVar(Int_t i)
Definition: TTree.h:511
virtual Double_t GetMaximum(const char *columname)
Return maximum of column with name columname.
Definition: TTree.cxx:6091
virtual Long64_t GetEntryNumberWithBestIndex(Long64_t major, Long64_t minor=0) const
Return entry number corresponding to major and minor number.
Definition: TTree.cxx:5750
static void SetMaxTreeSize(Long64_t maxsize=100000000000LL)
Set the maximum size in bytes of a Tree file (static function).
Definition: TTree.cxx:8934
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:2376
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:9436
Int_t fNClusterRange
Number of Cluster range in addition to the one defined by 'AutoFlush'.
Definition: TTree.h:88
virtual void PrintCacheStats(Option_t *option="") const
Print statistics about the TreeCache for this tree.
Definition: TTree.cxx:7185
virtual Int_t BuildIndex(const char *majorname, const char *minorname="0")
Build a Tree Index (default is TTreeIndex).
Definition: TTree.cxx:2601
TVirtualTreePlayer * fPlayer
! Pointer to current Tree player
Definition: TTree.h:123
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:8914
virtual void IncrementTotalBuffers(Int_t nbytes)
Definition: TTree.h:533
TObjArray fBranches
List of Branches.
Definition: TTree.h:112
TDirectory * GetDirectory() const
Definition: TTree.h:449
TTreeCache * GetReadCache(TFile *file) const
Find and return the TTreeCache registered with the file and which may contain branches for us.
Definition: TTree.cxx:6174
Bool_t fCacheUserSet
! true if the cache setting was explicitly given by user
Definition: TTree.h:130
Long64_t fEntries
Number of entries.
Definition: TTree.h:77
virtual TFile * ChangeFile(TFile *file)
Called by TTree::Fill() when file has reached its maximum fgMaxTreeSize.
Definition: TTree.cxx:2691
virtual Bool_t GetBranchStatus(const char *branchname) const
Return status of branch with name branchname.
Definition: TTree.cxx:5249
virtual TEntryList * GetEntryList()
Returns the entry list assigned to this tree.
Definition: TTree.cxx:5714
virtual void SetWeight(Double_t w=1, Option_t *option="")
Set tree weight.
Definition: TTree.cxx:9085
void InitializeBranchLists(bool checkLeafCount)
Divides the top-level branches into two vectors: (i) branches to be processed sequentially and (ii) b...
Definition: TTree.cxx:5641
Long64_t * fClusterSize
[fNClusterRange] Number of entries in each cluster for a given range.
Definition: TTree.h:97
virtual Bool_t GetImplicitMT()
Definition: TTree.h:467
Long64_t fFlushedBytes
Number of auto-flushed bytes.
Definition: TTree.h:82
virtual void SetPerfStats(TVirtualPerfStats *perf)
Set perf stats.
Definition: TTree.cxx:9040
TTreeFormula * GetVar2()
Definition: TTree.h:515
std::atomic< Long64_t > fIMTTotBytes
! Total bytes for the IMT flush baskets
Definition: TTree.h:149
virtual void SetCacheLearnEntries(Int_t n=10)
Interface to TTreeCache to set the number of entries for the learning phase.
Definition: TTree.cxx:8602
void SetTargetMemoryRatio(Float_t ratio)
Definition: TTree.h:628
TEntryList * fEntryList
! Pointer to event selection list (if one)
Definition: TTree.h:116
virtual TVirtualIndex * GetTreeIndex() const
Definition: TTree.h:505
Int_t Debug() const
Definition: TTree.h:417
virtual Long64_t Merge(TCollection *list, Option_t *option="")
Merge the trees in the TList into this tree.
Definition: TTree.cxx:6762
virtual void SetMaxVirtualSize(Long64_t size=0)
Definition: TTree.h:609
virtual void DropBaskets()
Remove some baskets from memory.
Definition: TTree.cxx:4406
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:8084
virtual void SetImplicitMT(Bool_t enabled)
Definition: TTree.h:605
TBranch * Branch(const char *name, const char *classname, T **addobj, Int_t bufsize=32000, Int_t splitlevel=99)
Definition: TTree.h:388
Long64_t fMaxEntryLoop
Maximum number of entries to process.
Definition: TTree.h:91
Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr=0)
Definition: TTree.h:572
friend TBranch * TTreeBranchImpRef(TTree *tree, const char *branchname, TClass *ptrClass, EDataType datatype, void *addobj, Int_t bufsize, Int_t splitlevel)
Float_t GetTargetMemoryRatio() const
Definition: TTree.h:507
virtual void SetDirectory(TDirectory *dir)
Change the tree's directory.
Definition: TTree.cxx:8703
virtual Long64_t CopyEntries(TTree *tree, Long64_t nentries=-1, Option_t *option="")
Copy nentries from given tree to this tree.
Definition: TTree.cxx:3466
void SortBranchesByTime()
Sorts top-level branches by the last average task time recorded per branch.
Definition: TTree.cxx:5694
virtual Int_t * GetIndex()
Definition: TTree.h:468
virtual TBranchRef * GetBranchRef() const
Definition: TTree.h:437
virtual Double_t * GetV3()
Definition: TTree.h:527
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:7265
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:1602
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:8806
TBranch * Branch(const char *name, int address, const char *leaflist, Int_t bufsize=32000)
Definition: TTree.h:377
void MoveReadCache(TFile *src, TDirectory *dir)
Move a cache from a file to the current file in dir.
Definition: TTree.cxx:6857
TTree & operator=(const TTree &tt)=delete
Long64_t fAutoFlush
Auto-flush tree when fAutoFlush entries written or -fAutoFlush (compressed) bytes produced.
Definition: TTree.h:94
Int_t fUpdate
Update frequency for EntryLoop.
Definition: TTree.h:86
virtual void ResetAfterMerge(TFileMergeInfo *)
Resets the state of this TTree after a merge (keep the customization but forget the data).
Definition: TTree.cxx:7818
virtual void CopyAddresses(TTree *, Bool_t undo=kFALSE)
Set branch addresses of passed tree equal to ours.
Definition: TTree.cxx:3238
TBranch * Branch(const char *name, std::array< T, N > *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Definition: TTree.h:393
@ kSplitCollectionOfPointers
Definition: TTree.h:254
virtual Long64_t GetEntries() const
Definition: TTree.h:450
virtual void SetEstimate(Long64_t nentries=1000000)
Set number of entries to estimate variable limits.
Definition: TTree.cxx:8847
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:5942
Int_t fTimerInterval
Timer interval in milliseconds.
Definition: TTree.h:84
Int_t fDebug
! Debug level
Definition: TTree.h:104
virtual Long64_t AutoSave(Option_t *option="")
AutoSave tree header every fAutoSave bytes.
Definition: TTree.cxx:1467
virtual Long64_t GetEntryNumber(Long64_t entry) const
Return entry number corresponding to entry.
Definition: TTree.cxx:5725
virtual TTree * CloneTree(Long64_t nentries=-1, Option_t *option="")
Create a clone of this tree and copy nentries.
Definition: TTree.cxx:3078
Int_t fFileNumber
! current file number (if file extensions)
Definition: TTree.h:109
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:6051
virtual Long64_t GetZipBytes() const
Definition: TTree.h:532
TObjArray fLeaves
Direct pointers to individual branch leaves.
Definition: TTree.h:113
virtual void Reset(Option_t *option="")
Reset baskets, buffers and entries count in all branches and leaves.
Definition: TTree.cxx:7787
virtual void Print(Option_t *option="") const
Print a summary of the tree contents.
Definition: TTree.cxx:7065
virtual void KeepCircular()
Keep a maximum of fMaxEntries in memory.
Definition: TTree.cxx:6271
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:3735
Long64_t GetCacheAutoSize(Bool_t withDefault=kFALSE) const
Used for automatic sizing of the cache.
Definition: TTree.cxx:5276
virtual Bool_t SetAlias(const char *aliasName, const char *aliasFormula)
Set a tree variable alias.
Definition: TTree.cxx:7920
Long64_t fMaxVirtualSize
Maximum total size of buffers kept in memory.
Definition: TTree.h:92
virtual Long64_t GetTotBytes() const
Definition: TTree.h:503
virtual void SetObject(const char *name, const char *title)
Change the name and title of this tree.
Definition: TTree.cxx:8971
TVirtualPerfStats * fPerfStats
! pointer to the current perf stats object
Definition: TTree.h:121
Double_t fWeight
Tree weight (see TTree::SetWeight)
Definition: TTree.h:83
virtual void SetUpdate(Int_t freq=0)
Definition: TTree.h:632
std::vector< TBranch * > fSeqBranches
! Branches to be processed sequentially when IMT is on
Definition: TTree.h:134
Long64_t fDebugMax
! Last entry number to debug
Definition: TTree.h:106
Int_t fDefaultEntryOffsetLen
Initial Length of fEntryOffset table in the basket buffers.
Definition: TTree.h:87
TTree()
Default constructor and I/O constructor.
Definition: TTree.cxx:723
Long64_t fAutoSave
Autosave tree when fAutoSave entries written or -fAutoSave (compressed) bytes produced.
Definition: TTree.h:93
TBranch * Branch(const char *name, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Add a new branch, and infer the data type from the type of obj being passed.
Definition: TTree.h:341
virtual void SetDefaultEntryOffsetLen(Int_t newdefault, Bool_t updateExisting=kFALSE)
Update the default value for the branch's fEntryOffsetLen.
Definition: TTree.cxx:8677
std::atomic< UInt_t > fAllocationCount
indicates basket should be resized to exact memory usage, but causes significant
Definition: TTree.h:141
virtual Int_t GetEntryWithIndex(Int_t major, Int_t minor=0)
Read entry corresponding to major and minor number.
Definition: TTree.cxx:5787
static TTree * MergeTrees(TList *list, Option_t *option="")
Static function merging the trees in the TList into a new tree.
Definition: TTree.cxx:6719
TTreeFormula * GetVar4()
Definition: TTree.h:519
virtual Long64_t GetReadEntry() const
Definition: TTree.h:496
virtual TObjArray * GetListOfBranches()
Definition: TTree.h:475
virtual void SetParallelUnzip(Bool_t opt=kTRUE, Float_t RelSize=-1)
Enable or disable parallel unzipping of Tree buffers.
Definition: TTree.cxx:9002
Long64_t fZipBytes
Total number of bytes in all branches after compression.
Definition: TTree.h:80
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:7691
virtual TTree * GetTree() const
Definition: TTree.h:504
TBuffer * fTransientBuffer
! Pointer to the current transient buffer.
Definition: TTree.h:127
virtual Double_t * GetVal(Int_t i)
Definition: TTree.h:521
Bool_t fIMTEnabled
! true if implicit multi-threading is enabled for this tree
Definition: TTree.h:131
virtual void SetEntryList(TEntryList *list, Option_t *opt="")
Set an EntryList.
Definition: TTree.cxx:8783
virtual Int_t DropBranchFromCache(const char *bname, Bool_t subbranches=kFALSE)
Remove the branch with name 'bname' from the Tree cache.
Definition: TTree.cxx:1111
virtual void AddZipBytes(Int_t zip)
Definition: TTree.h:320
virtual Long64_t LoadTree(Long64_t entry)
Set current entry.
Definition: TTree.cxx:6329
virtual Long64_t ReadFile(const char *filename, const char *branchDescriptor="", char delimiter=' ')
Create or simply read branches from filename.
Definition: TTree.cxx:7379
virtual const char * GetAlias(const char *aliasName) const
Returns the expanded value of the alias. Search in the friends if any.
Definition: TTree.cxx:5102
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:8867
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:5497
virtual TBasket * CreateBasket(TBranch *)
Create a basket for this tree and given branch.
Definition: TTree.cxx:3647
TList * fUserInfo
pointer to a list of user objects associated to this Tree
Definition: TTree.h:122
virtual Double_t GetMinimum(const char *columname)
Return minimum of column with name columname.
Definition: TTree.cxx:6131
virtual void RemoveFriend(TTree *)
Remove a friend from the list of friends.
Definition: TTree.cxx:7761
virtual Long64_t GetEntriesFast() const
Definition: TTree.h:452
virtual Double_t * GetV1()
Definition: TTree.h:523
virtual TList * GetUserInfo()
Return a pointer to the list containing user objects associated to this tree.
Definition: TTree.cxx:6212
virtual void SetNotify(TObject *obj)
Sets the address of the object to be notified when the tree is loaded.
Definition: TTree.h:622
TEventList * GetEventList() const
Definition: TTree.h:460
Int_t SetBranchAddress(const char *bname, T *add, TBranch **ptr=0)
Definition: TTree.h:581
Long64_t fChainOffset
! Offset of 1st entry of this Tree in a TChain
Definition: TTree.h:99
@ kOnlyFlushAtCluster
If set, the branch's buffers will grow until an event cluster boundary is hit, guaranteeing a basket ...
Definition: TTree.h:244
@ kEntriesReshuffled
If set, signals that this TTree is the output of the processing of another TTree, and the entries are...
Definition: TTree.h:249
@ kCircular
Definition: TTree.h:240
@ kForceRead
Definition: TTree.h:239
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:5371
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:7328
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:2368
virtual void SetBasketSize(const char *bname, Int_t buffsize=16000)
Set a branch's basket size.
Definition: TTree.cxx:8100
static void SetBranchStyle(Int_t style=1)
Set the current branch style.
Definition: TTree.cxx:8407
virtual Long64_t GetReadEvent() const
Definition: TTree.h:497
void ImportClusterRanges(TTree *fromtree)
Appends the cluster range information stored in 'fromtree' to this tree, including the value of fAuto...
Definition: TTree.cxx:6228
Long64_t fEstimate
Number of entries to estimate histogram limits.
Definition: TTree.h:95
TH1 * GetHistogram()
Definition: TTree.h:466
UInt_t GetAllocationCount() const
Definition: TTree.h:430
Int_t FlushBasketsImpl() const
Internal implementation of the FlushBaskets algorithm.
Definition: TTree.cxx:5022
Long64_t GetDebugMin() const
Definition: TTree.h:448
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:6425
TVirtualIndex * fTreeIndex
Pointer to the tree Index (if any)
Definition: TTree.h:119
virtual void Browse(TBrowser *)
Browse content of the TTree.
Definition: TTree.cxx:2573
virtual Int_t GetTreeNumber() const
Definition: TTree.h:506
TObject * fNotify
! Object to be notified when loading a Tree
Definition: TTree.h:110
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:1521
virtual TList * GetListOfClones()
Definition: TTree.h:474
Long64_t fCacheSize
! Maximum size of file buffers
Definition: TTree.h:98
TList * fClones
! List of cloned trees which share our addresses
Definition: TTree.h:124
std::atomic< Long64_t > fTotalBuffers
! Total number of bytes in branch buffers
Definition: TTree.h:101
Bool_t fCacheDoAutoInit
! true if cache auto creation or resize check is needed
Definition: TTree.h:128
virtual Int_t MakeSelector(const char *selector=0, Option_t *option="")
Generate skeleton selector class for this tree.
Definition: TTree.cxx:6690
ELockStatusBits
Definition: TTree.h:199
@ kFindBranch
Definition: TTree.h:200
@ kFindLeaf
Definition: TTree.h:201
@ kGetEntryWithIndex
Definition: TTree.h:205
@ kPrint
Definition: TTree.h:210
@ kGetFriend
Definition: TTree.h:206
@ kGetBranch
Definition: TTree.h:203
@ kSetBranchStatus
Definition: TTree.h:212
@ kLoadTree
Definition: TTree.h:209
@ kGetEntry
Definition: TTree.h:204
@ kGetLeaf
Definition: TTree.h:208
@ kRemoveFriend
Definition: TTree.h:211
@ kGetFriendAlias
Definition: TTree.h:207
@ kGetAlias
Definition: TTree.h:202
virtual Double_t * GetV4()
Definition: TTree.h:529
TBranch * Branch(const char *name, const char *classname, T *obj, Int_t bufsize=32000, Int_t splitlevel=99)
Definition: TTree.h:383
virtual void Draw(Option_t *opt)
Default Draw method for all objects.
Definition: TTree.h:419
virtual Int_t MakeClass(const char *classname=0, Option_t *option="")
Generate a skeleton analysis class for this tree.
Definition: TTree.cxx:6475
TTreeFormula * GetVar3()
Definition: TTree.h:517
virtual void SetTreeIndex(TVirtualIndex *index)
The current TreeIndex is replaced by the new index.
Definition: TTree.cxx:9057
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:6903
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:7313
virtual Int_t SetCacheEntryRange(Long64_t first, Long64_t last)
interface to TTreeCache to set the cache entry range
Definition: TTree.cxx:8568
static Long64_t GetMaxTreeSize()
Static function which returns the tree file size limit in bytes.
Definition: TTree.cxx:6121
Int_t SetBranchAddressImp(TBranch *branch, void *addr, TBranch **ptr)
Change branch address, dealing with clone trees properly.
Definition: TTree.cxx:8187
virtual Int_t GetTimerInterval() const
Definition: TTree.h:501
virtual void SetScanField(Int_t n=50)
Definition: TTree.h:627
TTree(const TTree &tt)=delete
Long64_t fMaxEntries
Maximum number of entries in case of circular buffers.
Definition: TTree.h:90
TBranch * Branch(const char *name, char *address, const char *leaflist, Int_t bufsize=32000)
Definition: TTree.h:367
virtual void DropBuffers(Int_t nbytes)
Drop branch buffers to accommodate nbytes below MaxVirtualsize.
Definition: TTree.cxx:4419
virtual void SetName(const char *name)
Change the name of this tree.
Definition: TTree.cxx:8942
virtual void Delete(Option_t *option="")
Delete this tree from memory or/and disk.
Definition: TTree.cxx:3663
virtual TList * GetListOfFriends() const
Definition: TTree.h:477
virtual void Refresh()
Refresh contents of this tree and its branches from the current status on disk.
Definition: TTree.cxx:7722
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:7975
static Long64_t fgMaxTreeSize
Maximum size of a file containing a Tree.
Definition: TTree.h:144
Long64_t fReadEntry
! Number of the entry being processed
Definition: TTree.h:100
TArrayD fIndexValues
Sorted index values.
Definition: TTree.h:117
void MarkEventCluster()
Mark the previous event as being at the end of the event cluster.
Definition: TTree.cxx:8037
virtual Int_t GetNbranches()
Definition: TTree.h:489
virtual Int_t MakeCode(const char *filename=0)
Generate a skeleton function for this tree.
Definition: TTree.cxx:6508
UInt_t fNEntriesSinceSorting
! Number of entries processed since the last re-sorting of branches
Definition: TTree.h:132
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:6636
virtual void SetFileNumber(Int_t number=0)
Set fFileNumber to number.
Definition: TTree.cxx:8890
virtual TLeaf * FindLeaf(const char *name)
Find leaf..
Definition: TTree.cxx:4795
Int_t GetEvent(Long64_t entry=0, Int_t getall=0)
Definition: TTree.h:456
virtual void StartViewer()
Start the TTreeViewer on this tree.
Definition: TTree.cxx:9170
Int_t GetMakeClass() const
Definition: TTree.h:482
TDirectory * fDirectory
! Pointer to directory holding this tree
Definition: TTree.h:111
ESetBranchAddressStatus
Definition: TTree.h:220
@ kNeedEnableDecomposedObj
Definition: TTree.h:232
@ kClassMismatch
Definition: TTree.h:225
@ kNeedDisableDecomposedObj
Definition: TTree.h:233
@ kVoidPtr
Definition: TTree.h:230
@ kNoCheck
Definition: TTree.h:231
@ kMatchConversionCollection
Definition: TTree.h:228
@ kMissingCompiledCollectionProxy
Definition: TTree.h:223
@ kMismatch
Definition: TTree.h:224
@ kMatchConversion
Definition: TTree.h:227
@ kInternalError
Definition: TTree.h:222
@ kDecomposedObjMask
Definition: TTree.h:234
@ kMatch
Definition: TTree.h:226
@ kMissingBranch
Definition: TTree.h:221
@ kMakeClass
Definition: TTree.h:229
static Int_t fgBranchStyle
Old/New branch style.
Definition: TTree.h:143
virtual void ResetBranchAddresses()
Tell all of our branches to drop their current objects and allocate new ones.
Definition: TTree.cxx:7859
Int_t fNfill
! Local for EntryLoop
Definition: TTree.h:103
virtual Long64_t GetCacheSize() const
Definition: TTree.h:440
TArrayI fIndex
Index of sorted values.
Definition: TTree.h:118
Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition: TTree.h:534
virtual Int_t GetPacketSize() const
Definition: TTree.h:492
virtual Int_t SetCacheSize(Long64_t cachesize=-1)
Set maximum size of the file cache .
Definition: TTree.cxx:8423
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:1188
virtual void SetBranchStatus(const char *bname, Bool_t status=1, UInt_t *found=0)
Set branch status to Process or DoNotProcess.
Definition: TTree.cxx:8276
TBuffer * GetTransientBuffer(Int_t size)
Returns the transient buffer currently used by this TTree for reading/writing baskets.
Definition: TTree.cxx:1006
ROOT::TIOFeatures GetIOFeatures() const
Returns the current set of IO settings.
Definition: TTree.cxx:5934
virtual Int_t GetFileNumber() const
Definition: TTree.h:463
virtual const char * GetFriendAlias(TTree *) const
If the 'tree' is a friend, this method returns its alias name.
Definition: TTree.cxx:5892
virtual void SetChainOffset(Long64_t offset=0)
Definition: TTree.h:593
virtual Bool_t GetClusterPrefetch() const
Definition: TTree.h:444
virtual Bool_t Notify()
Function called when loading a new class library.
Definition: TTree.cxx:6879
virtual Double_t * GetW()
Definition: TTree.h:530
Bool_t MemoryFull(Int_t nbytes)
Check if adding nbytes to memory we are still below MaxVirtualsize.
Definition: TTree.cxx:6705
TTreeFormula * GetVar1()
Definition: TTree.h:513
virtual Double_t * GetV2()
Definition: TTree.h:525
Int_t fPacketSize
! Number of entries in one packet for parallel root
Definition: TTree.h:102
virtual Int_t GetUpdate() const
Definition: TTree.h:508
virtual Long64_t GetChainOffset() const
Definition: TTree.h:443
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:9485
TStreamerInfo * BuildStreamerInfo(TClass *cl, void *pointer=0, Bool_t canOptimize=kTRUE)
Build StreamerInfo for class cl.
Definition: TTree.cxx:2616
virtual TBranch * BranchImpArr(const char *branchname, EDataType datatype, std::size_t N, void *addobj, Int_t bufsize, Int_t splitlevel)
Definition: TTree.cxx:1698
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:7878
virtual Long64_t GetMaxEntryLoop() const
Definition: TTree.h:484
Bool_t fIMTFlush
! True if we are doing a multithreaded flush.
Definition: TTree.h:148
virtual void SetClusterPrefetch(Bool_t enabled)
Definition: TTree.h:595
virtual void AddTotBytes(Int_t tot)
Definition: TTree.h:319
Int_t fMakeClass
! not zero when processing code generated by MakeClass
Definition: TTree.h:108
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:6307
static constexpr Long64_t kMaxEntries
Definition: TTree.h:217
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:7046
virtual Long64_t GetAutoFlush() const
Definition: TTree.h:434
virtual Long64_t GetMaxVirtualSize() const
Definition: TTree.h:487
Abstract interface for Tree Index.
Definition: TVirtualIndex.h:30
Provides the interface for the PROOF internal performance measurement and event tracing.
Abstract base class defining the interface for the plugins that implement Draw, Scan,...
virtual TTreeFormula * GetVar1() const =0
virtual Double_t * GetV4() const =0
virtual Double_t * GetW() const =0
virtual TTreeFormula * GetVar4() const =0
virtual TTreeFormula * GetVar(Int_t) const =0
virtual Double_t * GetVal(Int_t) const =0
virtual TTreeFormula * GetVar2() const =0
virtual Double_t * GetV1() const =0
static constexpr Long64_t kMaxEntries
virtual TTreeFormula * GetVar3() const =0
virtual Double_t * GetV2() const =0
virtual TTreeFormula * GetSelect() const =0
virtual TH1 * GetHistogram() const =0
virtual Long64_t GetSelectedRows() const =0
virtual Double_t * GetV3() const =0
const Int_t n
Definition: legend1.C:16
double T(double x)
Definition: ChebyshevPol.h:34
constexpr std::array< decltype(std::declval< F >()(std::declval< int >())), N > make(F f)
Definition: file.py:1
Definition: first.py:1
Definition: tree.py:1
TCanvas * style()
Definition: style.C:1
auto * tt
Definition: textangle.C:16