92, fEntryOffsetLen(1000)
95, fExtraBasket(nullptr)
103, fFirstBasketEntry(-1)
104, fNextBasketEntry(-1)
105, fCurrentBasket(nullptr)
112, fBaskets(fMaxBaskets)
113, fBasketBytes(nullptr)
114, fBasketEntry(nullptr)
115, fBasketSeek(nullptr)
122, fEntryBuffer(nullptr)
123, fTransientBuffer(nullptr)
124, fBrowsables(nullptr)
127, fReadLeaves(&
TBranch::ReadLeavesImpl)
128, fFillLeaves(&
TBranch::FillLeavesImpl)
207, fExtraBasket(nullptr)
208, fIOFeatures(tree ? tree->GetIOFeatures().GetFeatures() : 0)
216, fFirstBasketEntry(-1)
217, fNextBasketEntry(-1)
218, fCurrentBasket(nullptr)
225, fBaskets(fMaxBaskets)
226, fBasketBytes(nullptr)
227, fBasketEntry(nullptr)
228, fBasketSeek(nullptr)
232, fAddress((char *)address)
233, fDirectory(fTree->GetDirectory())
235, fEntryBuffer(nullptr)
236, fTransientBuffer(nullptr)
237, fBrowsables(nullptr)
240, fReadLeaves(&
TBranch::ReadLeavesImpl)
241, fFillLeaves(&
TBranch::FillLeavesImpl)
261, fExtraBasket(nullptr)
262, fIOFeatures(parent->fIOFeatures)
270, fFirstBasketEntry(-1)
271, fNextBasketEntry(-1)
272, fCurrentBasket(nullptr)
279, fBaskets(fMaxBaskets)
280, fBasketBytes(nullptr)
281, fBasketEntry(nullptr)
282, fBasketSeek(nullptr)
283, fTree(parent ? parent->GetTree() : nullptr)
284, fMother(parent ? parent->GetMother() : nullptr)
286, fAddress((char *)address)
287, fDirectory(fTree ? fTree->GetDirectory() : nullptr)
289, fEntryBuffer(nullptr)
290, fTransientBuffer(nullptr)
291, fBrowsables(nullptr)
294, fReadLeaves(&
TBranch::ReadLeavesImpl)
295, fFillLeaves(&
TBranch::FillLeavesImpl)
334 char* pos =
const_cast<char*
>(
leaflist);
338 if ((*pos ==
':') || (*pos == 0)) {
341 char*
ctype =
nullptr;
352 Warning(
"TBranch",
"No name was given to the leaf number '%d' in the leaflist of the branch '%s'.",
fNleaves,
name);
357 Warning(
"TBranch",
"Array size for branch '%s' must be specified after leaf name, not after the type name!",
name);
360 Warning(
"TBranch",
"Extra characters after type tag '%s' for branch '%s'; must be one character.",
leaftype,
name);
408 if (
leaf->IsZombie()) {
411 auto msg =
"Illegal leaf: %s/%s. If this is a variable size C array it's possible that the branch holding the size is not available.";
418 leaf->SetBranch(
this);
421 if (
leaf->GetLeafCount()) {
478 if (
lst &&
lst->GetLast()!=-1) {
560 Warning(
"AddBasket",
"The assumption that out-of-order basket only comes from disk based ntuple is false.");
571 Error(
"AddBasket",
"An out-of-order basket matches the entry number of an existing basket.");
589 Fatal(
"AddBasket",
"Dropping non-empty 'write' basket in %s %s",
760 if (options && options[0]) {
796 branch->DropBaskets(
"all");
907 if (!
basket->GetNevBufSize()) {
926 if (
nout < 0)
Error(
"TBranch::Fill",
"Failed to write out basket.\n");
948 if (
basket->GetNevBuf()) {
1042 std::size_t dim =
longnm.find_first_of(
'[');
1043 if (dim != std::string::npos) {
1066 if (namelen ==
brlen
1094 if (dim >= 0)
leafname.Remove(dim);
1194 if (
basket->GetBufferRef()->IsReading()) {
1232 static std::atomic<Int_t>
nerrors(0);
1242 if (file ==
nullptr) {
1262 if (
pf->IsLearning())
pf->LearnBranch(
this,
false);
1271 if (
nerrors > 10)
return nullptr;
1273 printf(
" file probably overwritten: stopping reporting error messages\n");
1275 printf(
"===>File is more than 2 Gigabytes\n");
1279 printf(
"===>Your file is may be bigger than the maximum file size allowed on your system\n");
1280 printf(
" Check your AFS maximum file size limit for example\n");
1284 Error(
"GetBasket",
"File: %s at byte:%lld, branch:%s, entry:%lld, badread=%d, nerrors=%d, basketnumber=%d",file->
GetName(),
basket->GetSeekKey(),
GetName(),
fReadEntry,
badread,
nerrors.load(),
basketnumber);
1335 return "TBranchElement-folder";
1337 return "TBranchElement-leaf";
1375 Error(
"GetBasketAndFirst",
"In the branch %s, no basket contains the entry %lld\n",
GetName(),
entry);
1501 Error(
"GetBulkEntries",
"Failed to get a new buffer.\n");
1506 Error(
"GetBulkEntries",
"Basket has displacement.\n");
1535 Error(
"GetBulkEntries",
"Leaf failed to read.\n");
1541 R__ASSERT(
fExtraBasket ==
nullptr &&
"fExtraBasket should have been set to nullptr by GetFreshBasket");
1595 Error(
"GetEntriesSerialized",
"Encountered a branch with destructive deserialization; failing.");
1610 Error(
"GetEntriesSerialized",
"Failed to read from full cluster; first entry is %lld; requested entry is %lld.\n", first,
entry);
1619 Error(
"GetEntriesSerialized",
"Failed to get a new buffer.\n");
1624 Error(
"GetEntriesSerialized",
"Basket has displacement.\n");
1661 Error(
"GetEntriesSerialized",
"Failed to read count leaf.\n");
1671 for (
int idx=0; idx<
N; idx++) {
1679 R__ASSERT(
fExtraBasket ==
nullptr &&
"fExtraBasket should have been set to nullptr by GetFreshBasket");
1725 if (!file)
return -1;
1727 buf =
basket->GetBufferRef();
1843 Error(
"GetExpectedType",
"Did not find any leaves in %s",
GetName());
1858 TFile *file =
nullptr;
1878 if (!file)
return nullptr;
1879 if (file->
IsZombie()) {
delete file;
return nullptr;}
1902 if (
GetTree()->MemoryFull(0)) {
1924#ifdef R__TRACK_BASKET_ALLOC_TIME
1925 fTree->AddAllocationTime(
basket->GetResetAllocationTime());
2149 for (
Int_t i = 0; i <
n; ++i) {
2167 if (
this ==
child) {
2172 if (
child->fParent) {
2173 return child->fParent;
2292 for (
Int_t i = 0; i <
nb; ++i) {
2314 if (!file)
return 0;
2325 Error(
"Loadbaskets",
"Error while reading basket buffer %d of branch %s",i,
GetName());
2383 if (tmp[end] ==
':')
break;
2386 bline[pos ++] =
' ';
2389 bline[pos ++] =
'*';
2390 bline[pos ++] =
'\n';
2391 bline[pos ++] =
'*';
2394 bline[pos ++] =
' ';
2397 for (
int n =
beg;
n <= end;
n ++)
2404 bline[pos ++] =
' ';
2407 bline[pos ++] =
'*';
2428 if (
strncmp(
option,
"basketsInfo",std::char_traits<char>::length(
"basketsInfo"))==0) {
2431 Printf(
"*Basket #%4d entry=%6lld pos=%6lld size=%5d",
2436 Printf(
"*............................................................................*");
2465 leaf->ReadBasket(
b);
2500 leaf->FillBasket(
b);
2510 if (
b==
nullptr)
return;
2660 leaf->SetAddress(
nullptr);
2698 else leaf->SetAddress(
nullptr);
2750 Error(
"TBranch::SetAddress",
"Filling from a TBuffer can only be done with a not split object branch. Request ignored.");
2785 if (level < 0) level = 0;
2786 if (level > 99) level = 99;
2798 branch->SetCompressionLevel(level);
2829 while ( (
b = (
TBranch*)next() ) ) {
2941 Warning(
"SetObject",
"is not supported in TBranch objects");
2958 if (
b.IsReading()) {
2962 gROOT->SetReadingObject(
true);
2981 leaf->SetBranch(
this);
2993 bk->SetBranch(
this);
3007 gROOT->SetReadingObject(
false);
3061 leaf->SetBranch(
this);
3067 bk->SetBranch(
this);
3082 gROOT->SetReadingObject(
false);
3115 leaf->SetBranch(
this);
3121 bk->SetBranch(
this);
3155 gROOT->SetReadingObject(
false);
3219 Error(
"WriteBasketImpl",
"basket's WriteBuffer failed.");
3235#ifdef R__TRACK_BASKET_ALLOC_TIME
void tobuf(char *&buf, Bool_t x)
#define R__unlikely(expr)
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
const UInt_t kNewClassTag
const UInt_t kByteCountMask
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t child
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char mode
R__EXTERN TVirtualMutex * gROOTMutex
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD_IMT(mutex)
#define R__LOCKGUARD(mutex)
void SetUsed(Int_t basketNumber)
Mark if the basket has been marked as 'used'.
void Print(const char *owner, Long64_t *entries) const
Print the info we have for the baskets.
A helper class for managing IMT work during TTree:Fill operations.
TIOFeatures provides the end-user with the ability to change the IO behavior of data written via a TT...
Fill Area Attributes class.
virtual void Streamer(TBuffer &)
Manages buffers for branches of a Tree.
A TTree is a list of TBranches.
virtual TLeaf * GetLeaf(const char *name) const
Return pointer to the 1st Leaf named name in thisBranch.
virtual bool GetMakeClass() const
Return whether this branch is in a mode where the object are decomposed or not (Also known as MakeCla...
virtual void SetupAddresses()
If the branch address is not set, we set all addresses starting with the top level parent branch.
virtual void ResetAddress()
Reset the address of the branch.
TString fFileName
Name of file where buffers are stored ("" if in same file as Tree header)
virtual const char * GetClassName() const
Return the name of the user class whose content is stored in this branch, if any.
TBasket * GetFreshBasket(Int_t basketnumber, TBuffer *user_buffer)
Return a fresh basket by either reusing an existing basket that needs to be drop (according to TTree:...
TBasket * GetBasketImpl(Int_t basket, TBuffer *user_buffer)
Return pointer to basket basketnumber in this Branch.
Int_t fEntryOffsetLen
Initial Length of fEntryOffset table in the basket buffers.
virtual void DeleteBaskets(Option_t *option="")
Loop on all branch baskets.
virtual Long64_t GetBasketSeek(Int_t basket) const
Return address of basket in the file.
TBranch()
Default constructor. Used for I/O by default.
void SetCompressionSettings(Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
Set compression settings.
const char * GetIconName() const override
Return icon name depending on type of branch.
Int_t BackFill()
Loop on all leaves of this branch to back fill Basket buffer.
~TBranch() override
Destructor.
Int_t fMaxBaskets
Maximum number of Baskets so far.
Long64_t fTotBytes
Total number of bytes in all leaves before compression.
TBuffer * fTransientBuffer
! Pointer to the current transient buffer.
virtual void ReadBasket(TBuffer &b)
Loop on all leaves of this branch to read Basket buffer.
FillLeaves_t fFillLeaves
! Pointer to the FillLeaves implementation to use.
virtual TString GetFullName() const
Return the 'full' name of the branch.
@ kDoNotUseBufferMap
If set, at least one of the entry in the branch will use the buffer's map of classname and objects.
@ kIsClone
To indicate a TBranchClones.
@ kDoNotProcess
Active bit for branches.
TObjArray fLeaves
-> List of leaves of this branch
Int_t GetBasketAndFirst(TBasket *&basket, Long64_t &first, TBuffer *user_buffer)
A helper function to locate the correct basket - and its first entry.
char * fAddress
! Address of 1st leaf (variable or object)
virtual void DropBaskets(Option_t *option="")
Loop on all branch baskets.
TObjArray * GetListOfBranches()
virtual TList * GetBrowsables()
Returns (and, if 0, creates) browsable objects for this branch See TVirtualBranchBrowsable::FillListO...
TList * fBrowsables
! List of TVirtualBranchBrowsables used for Browse()
void ReadLeavesImpl(TBuffer &b)
Loop on all leaves of this branch to read Basket buffer.
Int_t fOffset
Offset of this branch.
Long64_t * fBasketEntry
[fMaxBaskets] Table of first entry in each basket
Int_t GetEntriesSerialized(Long64_t N, TBuffer &user_buf)
void ExpandBasketArrays()
Increase BasketEntry buffer of a minimum of 10 locations and a maximum of 50 per cent of current size...
void Init(const char *name, const char *leaflist, Int_t compress)
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all leaves of entry and return total number of bytes read.
TIOFeatures GetIOFeatures() const
Returns the IO settings currently in use for this branch.
TClass * IsA() const override
void FillLeavesImpl(TBuffer &b)
Loop on all leaves of this branch to fill Basket buffer.
Long64_t fReadEntry
! Current entry number when reading
void Print(Option_t *option="") const override
Print TBranch parameters.
static void ResetCount()
Static function resetting fgCount.
TBranch * GetSubBranch(const TBranch *br) const
Find the parent branch of child.
ReadLeaves_t fReadLeaves
! Pointer to the ReadLeaves implementation to use.
virtual void SetObject(void *objadd)
Set object this branch is pointing to.
Int_t FlushBaskets()
Flush to disk all the baskets of this branch and any of subbranches.
void ReadLeaves2Impl(TBuffer &b)
Read two leaves without the overhead of a loop.
virtual void AddBasket(TBasket &b, bool ondisk, Long64_t startEntry)
Add the basket to this branch.
virtual void SetAddress(void *add)
Set address of this branch.
static Int_t fgCount
! branch counter
virtual void AddLastBasket(Long64_t startEntry)
Add the start entry of the write basket (not yet created)
TBasket * GetBasket(Int_t basket)
Int_t fNBaskets
! Number of baskets in memory
void ReadLeaves1Impl(TBuffer &b)
Read one leaf without the overhead of a loop.
Int_t GetBulkEntries(Long64_t, TBuffer &)
Read a basket of events into the given buffer with byte swapping.
virtual void SetFile(TFile *file=nullptr)
Set file where this branch writes/reads its buffers.
virtual Int_t GetEntryExport(Long64_t entry, Int_t getall, TClonesArray *list, Int_t n)
Read all leaves of an entry and export buffers to real objects in a TClonesArray list.
virtual void SetAutoDelete(bool autodel=true)
Set the automatic delete bit.
Long64_t fZipBytes
Total number of bytes in all leaves after compression.
TIOFeatures fIOFeatures
IO features for newly-created baskets.
void Browse(TBrowser *b) override
Browser interface.
void SetCompressionAlgorithm(Int_t algorithm=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
Set compression algorithm.
virtual void SetEntryOffsetLen(Int_t len, bool updateSubBranches=false)
Update the default value for the branch's fEntryOffsetLen if and only if it was already non zero (and...
virtual TLeaf * FindLeaf(const char *name)
Find the leaf corresponding to the name 'searchname'.
CacheInfo_t fCacheInfo
! Hold info about which basket are in the cache and if they have been retrieved from the cache.
TObjArray * GetListOfBaskets()
virtual void SetBufferAddress(TBuffer *entryBuffer)
Set address of this branch directly from a TBuffer to avoid streaming.
Long64_t GetEntries() const
Int_t fNleaves
! Number of leaves
Int_t fSplitLevel
Branch split level.
Int_t WriteBasketImpl(TBasket *basket, Int_t where, ROOT::Internal::TBranchIMTHelper *)
Write the current basket to disk and return the number of bytes written to the file.
virtual void UpdateFile()
Refresh the value of fDirectory (i.e.
Int_t * fBasketBytes
[fMaxBaskets] Length of baskets on file
Long64_t fNextBasketEntry
! Next entry that will requires us to go to the next basket
bool IsAutoDelete() const
Return true if an existing object in a TBranchObject must be deleted.
Int_t FillEntryBuffer(TBasket *basket, TBuffer *buf, Int_t &lnew)
Copy the data from fEntryBuffer into the current basket.
virtual TFile * GetFile(Int_t mode=0)
Return pointer to the file where branch buffers reside, returns 0 in case branch buffers reside in th...
TObjArray fBranches
-> List of Branches of this branch
virtual void KeepCircular(Long64_t maxEntries)
keep a maximum of fMaxEntries in memory
virtual void SetStatus(bool status=true)
Set branch status to Process or DoNotProcess.
virtual void ResetAfterMerge(TFileMergeInfo *)
Reset a Branch.
void ReadLeaves0Impl(TBuffer &b)
Read zero leaves without the overhead of a loop.
bool SupportsBulkRead() const
Returns true if this branch supports bulk IO, false otherwise.
TString GetRealFileName() const
Get real file name.
virtual TBranch * FindBranch(const char *name)
Find the immediate sub-branch with passed name.
TDirectory * fDirectory
! Pointer to directory where this branch buffers are stored
void PrintCacheInfo() const
Print the information we have about which basket is currently cached and whether they have been 'used...
TObjArray fBaskets
-> List of baskets of this branch
virtual Int_t LoadBaskets()
Baskets associated to this branch are forced to be in memory.
TBranch * fMother
! Pointer to top-level parent branch in the tree.
Long64_t GetTotBytes(Option_t *option="") const
Return total number of bytes in the branch (excluding current buffer) if option ="*" includes all sub...
TBranch * fParent
! Pointer to parent branch.
Int_t WriteBasket(TBasket *basket, Int_t where)
Int_t FlushOneBasket(UInt_t which)
If we have a write basket in memory and it contains some entries and has not yet been written to disk...
bool fSkipZip
! After being read, the buffer will not be unzipped.
virtual Int_t GetExpectedType(TClass *&clptr, EDataType &type)
Fill expectedClass and expectedType with information on the data type of the object/values contained ...
bool IsFolder() const override
Return true if more than one leaf or browsables, false otherwise.
virtual void SetFirstEntry(Long64_t entry)
set the first entry number (case of TBranchSTL)
Long64_t GetTotalSize(Option_t *option="") const
Return total number of bytes in the branch (including current buffer)
Long64_t GetZipBytes(Option_t *option="") const
Return total number of zip bytes in the branch if option ="*" includes all sub-branches of this branc...
virtual void SetBasketSize(Int_t buffsize)
Set the basket size The function makes sure that the basket size is greater than fEntryOffsetlen.
virtual void Refresh(TBranch *b)
Refresh this branch using new information in b This function is called by TTree::Refresh.
virtual bool SetMakeClass(bool decomposeObj=true)
Set the branch in a mode where the object are decomposed (Also known as MakeClass mode).
Int_t fWriteBasket
Last basket number written.
Long64_t * fBasketSeek
[fMaxBaskets] Addresses of baskets on file
TObjArray * GetListOfLeaves()
virtual void SetEntries(Long64_t entries)
Set the number of entries in this branch.
Int_t fReadBasket
! Current basket number when reading
Long64_t fFirstEntry
Number of the first entry in this branch.
TBasket * fExtraBasket
! Allocated basket not currently holding any data.
virtual Int_t GetRow(Int_t row)
Return all elements of one row unpacked in internal array fValues [Actually just returns 1 (?...
Int_t fBasketSize
Initial Size of Basket Buffer.
virtual void Reset(Option_t *option="")
Reset a Branch.
Long64_t fEntryNumber
Current entry number (last one filled in this branch)
TBranch * GetMother() const
Get our top-level parent branch in the tree.
Int_t fCompress
Compression level and algorithm.
TBuffer * GetTransientBuffer(Int_t size)
Returns the transient buffer currently used by this TBranch for reading/writing baskets.
virtual Int_t FillImpl(ROOT::Internal::TBranchIMTHelper *)
Loop on all leaves of this branch to fill Basket buffer.
TBuffer * fEntryBuffer
! Buffer used to directly pass the content without streaming
TBasket * fCurrentBasket
! Pointer to the current basket.
Long64_t fFirstBasketEntry
! First entry in the current basket.
void SetCompressionLevel(Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin)
Set compression level.
void Streamer(TBuffer &) override
Stream a class object.
Long64_t fEntries
Number of entries.
TBasket * GetFreshCluster(TBuffer *user_buffer)
Drops the cluster two behind the current cluster and returns a fresh basket by either reusing or crea...
TTree * fTree
! Pointer to Tree header
Using a TBrowser one can browse all ROOT objects.
The concrete implementation of TBuffer for writing/reading to/from a ROOT file or socket.
Buffer base class used for serializing objects.
void SetWriteMode()
Set buffer in write mode.
void Expand(Int_t newsize, Bool_t copy=kTRUE)
Expand (or shrink) the I/O buffer to newsize bytes.
virtual Int_t GetBufferDisplacement() const =0
virtual void ResetMap()=0
void SetBufferOffset(Int_t offset=0)
virtual Int_t GetMapCount() const =0
void SetReadMode()
Set buffer in read mode.
virtual void WriteBuf(const void *buf, Int_t max)=0
TClass * IsA() const override
virtual void SetBufferDisplacement()=0
virtual char * ReadString(char *s, Int_t max)=0
TClass instances represent classes, structs and namespaces in the ROOT type system.
An array of clone (identical) objects.
void Browse(TBrowser *b) override
Browse this collection (called by TBrowser).
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
TDirectory::TContext keeps track and restore the current directory.
Describe directory structure in memory.
virtual TFile * GetFile() const
TObject * FindObject(const char *name) const override
Find object by name in the list of memory objects.
virtual Bool_t IsWritable() const
A cache when reading files over the network.
A ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
Int_t GetCompressionLevel() const
virtual void MakeFree(Long64_t first, Long64_t last)
Mark unused bytes on the file.
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
Create / open a file.
void Close(Option_t *option="") override
Close a file.
A TLeaf for an 8 bit Integer data type.
A TLeaf for a variable length string.
A TLeaf for a 24 bit truncated floating point data type.
A TLeaf for a 64 bit floating point data type.
A TLeaf for a 24 bit truncated floating point data type.
A TLeaf for a 32 bit floating point data type.
A TLeaf for a 64 bit Integer data type.
A TLeaf for an Integer data type.
A TLeaf for a 64 bit Integer data type.
A TLeaf for a bool data type.
A TLeaf for a 16 bit Integer data type.
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
The TNamed class is the base class for all named ROOT classes.
const char * GetName() const override
Returns name of object.
void Streamer(TBuffer &) override
Stream an object of class TObject.
const char * GetTitle() const override
Returns title of object.
Int_t GetEntriesFast() const
virtual void Expand(Int_t newSize)
Expand or shrink the array to newSize elements.
void AddAt(TObject *obj, Int_t idx) override
Add object at position ids.
virtual void AddAtAndExpand(TObject *obj, Int_t idx)
Add object at position idx.
void Streamer(TBuffer &) override
Stream all objects in the array to or from the I/O buffer.
Int_t GetEntries() const override
Return the number of objects in array (i.e.
void Delete(Option_t *option="") override
Remove all objects from the array AND delete all heap based objects.
TObject * At(Int_t idx) const override
TObject * UncheckedAt(Int_t i) const
TObject * Remove(TObject *obj) override
Remove object from array.
void SetLast(Int_t last)
Set index of last object in array, effectively truncating the array.
TObject * RemoveAt(Int_t idx) override
Remove object at index idx.
Int_t GetLast() const override
Return index of last object in array.
void Add(TObject *obj) override
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
R__ALWAYS_INLINE Bool_t IsZombie() const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
static Int_t * ReAllocInt(Int_t *vp, size_t size, size_t oldsize)
Reallocate (i.e.
static void * ReAlloc(void *vp, size_t size, size_t oldsize)
Reallocate (i.e.
void ToLower()
Change string to lower-case.
const char * Data() const
virtual void Streamer(TBuffer &)
Stream a string object.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual Bool_t IsAbsoluteFileName(const char *dir)
Return true if dir is an absolute pathname.
virtual TString GetDirName(const char *pathname)
Return the directory name in pathname.
Helper class to iterate over cluster of baskets.
Long64_t Previous()
Move on to the previous cluster and return the starting entry of this previous cluster.
Long64_t Next()
Move on to the next cluster and return the starting entry of this next cluster.
A TTree represents a columnar dataset.
virtual TVirtualPerfStats * GetPerfStats() const
virtual TClusterIterator GetClusterIterator(Long64_t firstentry)
Return an iterator over the cluster of baskets starting at firstentry.
void AddAllocationCount(UInt_t count)
virtual TObjArray * GetListOfLeaves()
TFile * GetCurrentFile() const
Return pointer to the current file.
void Draw(Option_t *opt) override
Default Draw method for all objects.
virtual void IncrementTotalBuffers(Int_t nbytes)
TDirectory * GetDirectory() const
TTreeCache * GetReadCache(TFile *file) const
Find and return the TTreeCache registered with the file and which may contain branches for us.
virtual bool GetClusterPrefetch() const
virtual TObjArray * GetListOfBranches()
virtual void AddZipBytes(Int_t zip)
virtual TBasket * CreateBasket(TBranch *)
Create a basket for this tree and given branch.
@ kOnlyFlushAtCluster
If set, the branch's buffers will grow until an event cluster boundary is hit, guaranteeing a basket ...
virtual void AddTotBytes(Int_t tot)
virtual Long64_t GetAutoFlush() const
virtual Long64_t GetMaxVirtualSize() const
This class represents a WWW compatible URL.
static Int_t FillListOfBrowsables(TList &list, const TBranch *branch, const TVirtualBranchBrowsable *parent=nullptr)
Askes all registered generators to fill their browsables into the list.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Long64_t BinarySearch(Long64_t n, const T *array, T value)
Binary search in an array of n values to locate value.
@ kUndefined
Undefined compression algorithm (must be kept the last of the list in case a new algorithm is added).
@ kUseMin
Compression level reserved when we are not sure what to use (1 is for the fastest compression)