12#ifndef ROOT_TTreeReaderFast
13#define ROOT_TTreeReaderFast
32namespace Experimental {
34class TTreeReaderValueFast;
35class TTreeReaderValueFastBase;
46 public std::iterator<std::input_iterator_tag, const Long64_t, Long64_t> {
79 return !(*
this == lhs);
160 std::deque<ROOT::Experimental::Internal::TTreeReaderValueFastBase*>
fValues;
#define R__unlikely(expr)
#define ClassDef(name, id)
bool operator==(const Iterator_t &lhs) const
Compare two iterators for equality.
Iterator_t(TTreeReaderFast &reader, Long64_t first)
Initialize the iterator with the reader it steers and a tree entry number; -1 is invalid.
Int_t fCount
Number of entries inside this cluster.
Long64_t operator*() const
Long64_t fEntry
Entry number of the tree referenced by this iterator; -1 is invalid.
Iterator_t & operator++()
Increment the iterator (prefix ++i).
Int_t * fIdx
Current offset inside this cluster.
Iterator_t operator++(int)
Increment the iterator (postfix i++).
bool operator!=(const Iterator_t &lhs) const
Compare two iterators for inequality.
bool IsValid() const
Whether the iterator points to a valid entry.
Long64_t operator*()
Set the entry number in the reader and return it.
TTreeReaderFast * fReader
The reader we select the entries on.
Iterator_t()
Default-initialize the iterator as "past the end".
Int_t GetNextRange(Int_t)
Advance to the next range in the file; returns the number of events in the range.
void Initialize()
Initialization of the director.
std::deque< ROOT::Experimental::Internal::TTreeReaderValueFastBase * > fValues
readers that use our director
TTree * fTree
tree that's read
TTreeReader::EEntryStatus SetEntriesRange(Long64_t first, Long64_t last)
TDirectory * fDirectory
directory (or current file for chains)
~TTreeReaderFast()
Tell all value readers that the tree reader does not exist anymore.
ROOT::Internal::TBranchProxyDirector * fDirector
proxying director, owned
Iterator_t begin()
Return an iterator to the 0th TTree entry.
TTreeReader::EEntryStatus GetEntryStatus() const
TTreeReader::EEntryStatus fEntryStatus
status of most recent read request
TTreeReader::EEntryStatus SetEntry(Long64_t)
Set an entry to be read.
void DeregisterValueReader(ROOT::Experimental::Internal::TTreeReaderValueFastBase *reader)
Remove a value reader for this tree.
void RegisterValueReader(ROOT::Experimental::Internal::TTreeReaderValueFastBase *reader)
Add a value reader for this tree.
Describe directory structure in memory.
Mother of all ROOT objects.
A simple, robust and fast interface to read values from ROOT columnar datasets such as TTree,...
@ kEntryNotLoaded
no entry has been loaded yet
@ kEntryBadReader
One of the readers was not successfully initialized.
A TTree represents a columnar dataset.