An interface for reading collections stored in ROOT columnar datasets.
The TTreeReaderArray is a type-safe tool to be used in association with a TTreeReader to access the collections stored in TTree, TNtuple and TChain datasets. In order to access values which are not collections, the TTreeReaderValue class can be used.
See the documentation of TTreeReader for more details and examples.
Definition at line 75 of file TTreeReaderArray.h.
Classes | |
class | Iterator_t |
Random access iterator to the elements of a TTreeReaderArray. More... | |
Public Types | |
using | const_iterator = Iterator_t< const TTreeReaderArray< T > > |
using | iterator = Iterator_t< TTreeReaderArray< T > > |
Public Types inherited from ROOT::Internal::TTreeReaderValueBase | |
typedef bool(ROOT::Detail::TBranchProxy::* | BranchProxyRead_t) () |
enum | EReadStatus { kReadSuccess = 0 , kReadNothingYet , kReadError } |
enum | ESetupStatus { kSetupNotSetup = -7 , kSetupTreeDestructed = -8 , kSetupMakeClassModeMismatch = -9 , kSetupMissingCounterBranch = -6 , kSetupMissingBranch = -5 , kSetupInternalError = -4 , kSetupMissingDictionary = -3 , kSetupMismatch = -2 , kSetupNotACollection = -1 , kSetupMatch = 0 , kSetupMatchBranch = 7 , kSetupNoCheck = 5 , kSetupMatchLeaf = 6 } |
Status flags, 0 is good. More... | |
Public Member Functions | |
TTreeReaderArray (TTreeReader &tr, const char *branchname) | |
Create an array reader of branch "branchname" for TTreeReader "tr". | |
T & | At (std::size_t idx) |
const T & | At (std::size_t idx) const |
iterator | begin () |
const_iterator | begin () const |
const_iterator | cbegin () const |
const_iterator | cend () const |
iterator | end () |
const_iterator | end () const |
T & | operator[] (std::size_t idx) |
const T & | operator[] (std::size_t idx) const |
Public Member Functions inherited from ROOT::Internal::TTreeReaderArrayBase | |
TTreeReaderArrayBase (TTreeReader *reader, const char *branchname, TDictionary *dict) | |
EReadStatus | GetReadStatus () const override |
std::size_t | GetSize () const |
bool | IsEmpty () const |
Public Member Functions inherited from ROOT::Internal::TTreeReaderValueBase | |
virtual | ~TTreeReaderValueBase () |
Unregister from tree reader, cleanup. | |
void * | GetAddress () |
Returns the memory address of the object being read. | |
const char * | GetBranchName () const |
TLeaf * | GetLeaf () |
If we are reading a leaf, return the corresponding TLeaf. | |
ESetupStatus | GetSetupStatus () const |
Return this TTreeReaderValue's setup status. | |
bool | IsValid () const |
Return true if the branch was setup and read correctly. | |
EReadStatus | ProxyRead () |
EReadStatus | ProxyReadDefaultImpl () |
template<BranchProxyRead_t Func> | |
ROOT::Internal::TTreeReaderValueBase::EReadStatus | ProxyReadTemplate () |
Try to read the value from the TBranchProxy, returns the status of the read. | |
Protected Member Functions | |
const char * | GetDerivedTypeName () const override |
Protected Member Functions inherited from ROOT::Internal::TTreeReaderArrayBase | |
void | CreateProxy () override |
Create the proxy object for our branch. | |
bool | GetBranchAndLeaf (TBranch *&branch, TLeaf *&myLeaf, TDictionary *&branchActualType, bool suppressErrorsForMissingBranch=false) |
Determine the branch / leaf and its type; reset fProxy / fSetupStatus on error. | |
const char * | GetBranchContentDataType (TBranch *branch, TString &contentTypeName, TDictionary *&dict) |
Access a branch's collection content (not the collection itself) through a proxy. | |
void | SetImpl (TBranch *branch, TLeaf *myLeaf) |
Create the TVirtualCollectionReader object for our branch. | |
void * | UntypedAt (std::size_t idx) const |
Protected Member Functions inherited from ROOT::Internal::TTreeReaderValueBase | |
TTreeReaderValueBase (const TTreeReaderValueBase &) | |
Copy-construct. | |
TTreeReaderValueBase (TTreeReader *reader, const char *branchname, TDictionary *dict, bool opaqueRead=false) | |
Construct a tree value reader and register it with the reader object. | |
void | ErrorAboutMissingProxyIfNeeded () |
Detail::TBranchProxy * | GetProxy () const |
void | MarkTreeReaderUnavailable () |
void | NotifyNewTree (TTree *newTree) |
The TTreeReader has switched to a new TTree. Update the leaf. | |
TTreeReaderValueBase & | operator= (const TTreeReaderValueBase &) |
Copy-assign. | |
void | RegisterWithTreeReader () |
Register with tree reader. | |
TBranch * | SearchBranchWithCompositeName (TLeaf *&myleaf, TDictionary *&branchActualType, std::string &err) |
Search a branch the name of which contains a ".". | |
Additional Inherited Members | |
Protected Types inherited from ROOT::Internal::TTreeReaderValueBase | |
typedef EReadStatus(TTreeReaderValueBase::* | Read_t) () |
Static Protected Member Functions inherited from ROOT::Internal::TTreeReaderValueBase | |
static const char * | GetBranchDataType (TBranch *branch, TDictionary *&dict, TDictionary const *curDict) |
Retrieve the type of data stored by branch; put its dictionary into dict, return its type name. | |
static std::string | GetElementTypeName (const std::type_info &ti) |
Stringify the template argument. | |
Protected Attributes inherited from ROOT::Internal::TTreeReaderArrayBase | |
std::unique_ptr< TVirtualCollectionReader > | fImpl |
Protected Attributes inherited from ROOT::Internal::TTreeReaderValueBase | |
TString | fBranchName |
Name of the branch to read data from. | |
TDictionary * | fDict |
Type that the branch should contain. | |
bool | fHaveLeaf: 1 |
Whether the data is in a leaf. | |
bool | fHaveStaticClassOffsets: 1 |
Whether !fStaticClassOffsets.empty() | |
TLeaf * | fLeaf = nullptr |
TString | fLeafName |
bool | fOpaqueRead {false} |
If true, the reader will not do any type-checking against the actual type held by the branch. | |
Detail::TBranchProxy * | fProxy = nullptr |
Proxy for this branch, owned by TTreeReader. | |
Read_t | fProxyReadFunc = &TTreeReaderValueBase::ProxyReadDefaultImpl |
! Pointer to the Read implementation to use. | |
EReadStatus | fReadStatus: 2 |
Read status of this data access. | |
ESetupStatus | fSetupStatus = kSetupNotSetup |
Setup status of this data access. | |
std::vector< Long64_t > | fStaticClassOffsets |
TTreeReader * | fTreeReader |
Tree reader we belong to. | |
#include <TTreeReaderArray.h>
using TTreeReaderArray< T >::const_iterator = Iterator_t<const TTreeReaderArray<T> > |
Definition at line 199 of file TTreeReaderArray.h.
using TTreeReaderArray< T >::iterator = Iterator_t<TTreeReaderArray<T> > |
Definition at line 198 of file TTreeReaderArray.h.
|
inline |
Create an array reader of branch "branchname" for TTreeReader "tr".
Definition at line 202 of file TTreeReaderArray.h.
|
inline |
Definition at line 205 of file TTreeReaderArray.h.
|
inline |
Definition at line 206 of file TTreeReaderArray.h.
|
inline |
Definition at line 210 of file TTreeReaderArray.h.
|
inline |
Definition at line 212 of file TTreeReaderArray.h.
|
inline |
Definition at line 214 of file TTreeReaderArray.h.
|
inline |
Definition at line 215 of file TTreeReaderArray.h.
|
inline |
Definition at line 211 of file TTreeReaderArray.h.
|
inline |
Definition at line 213 of file TTreeReaderArray.h.
|
inlineoverrideprotectedvirtual |
Implements ROOT::Internal::TTreeReaderValueBase.
Definition at line 219 of file TTreeReaderArray.h.
|
inline |
Definition at line 207 of file TTreeReaderArray.h.
|
inline |
Definition at line 208 of file TTreeReaderArray.h.