An interface for reading values stored in ROOT columnar datasets.
The TTreeReaderValue is a type-safe tool to be used in association with a TTreeReader to access the values stored in TTree, TNtuple and TChain datasets. TTreeReaderValue can be also used to access collections such as std::vector
s or TClonesArray stored in columnar datasets but it is recommended to use TTreeReaderArray instead as it offers several advantages.
See the documentation of TTreeReader for more details and examples.
Definition at line 140 of file TTreeReaderValue.h.
Public Types | |
using | NonConstT_t = typename std::remove_const< T >::type |
Public Types inherited from ROOT::Internal::TTreeReaderValueBase | |
typedef Bool_t(ROOT::Detail::TBranchProxy::* | BranchProxyRead_t) () |
enum | EReadStatus { kReadSuccess = 0 , kReadNothingYet , kReadError } |
enum | ESetupStatus { kSetupNotSetup = -7 , kSetupTreeDestructed = -8 , kSetupMakeClassModeMismatch = -7 , kSetupMissingCounterBranch = -6 , kSetupMissingBranch = -5 , kSetupInternalError = -4 , kSetupMissingDictionary = -3 , kSetupMismatch = -2 , kSetupNotACollection = -1 , kSetupMatch = 0 , kSetupMatchBranch = 0 , kSetupNoCheck = 5 , kSetupMatchLeaf = 6 } |
Public Member Functions | |
TTreeReaderValue ()=delete | |
TTreeReaderValue (TTreeReader &tr, const char *branchname) | |
T * | Get () |
Return a pointer to the value of the current entry. More... | |
T & | operator* () |
Return a reference to the value of the current entry. More... | |
T * | operator-> () |
Return a pointer to the value of the current entry. More... | |
Public Member Functions inherited from ROOT::Internal::TTreeReaderValueBase | |
virtual | ~TTreeReaderValueBase () |
Unregister from tree reader, cleanup. More... | |
void * | GetAddress () |
Returns the memory address of the object being read. More... | |
const char * | GetBranchName () const |
TLeaf * | GetLeaf () |
If we are reading a leaf, return the corresponding TLeaf. More... | |
virtual EReadStatus | GetReadStatus () const |
ESetupStatus | GetSetupStatus () const |
Bool_t | IsValid () const |
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. More... | |
Protected Member Functions | |
virtual const char * | GetDerivedTypeName () const |
Get the template argument as a string. More... | |
Protected Member Functions inherited from ROOT::Internal::TTreeReaderValueBase | |
TTreeReaderValueBase (const TTreeReaderValueBase &) | |
Copy-construct. More... | |
TTreeReaderValueBase (TTreeReader *reader, const char *branchname, TDictionary *dict) | |
Construct a tree value reader and register it with the reader object. More... | |
virtual void | CreateProxy () |
Create the proxy object for our branch. More... | |
virtual const char * | GetDerivedTypeName () const =0 |
Detail::TBranchProxy * | GetProxy () const |
void | MarkTreeReaderUnavailable () |
void | NotifyNewTree (TTree *newTree) |
The TTreeReader has switched to a new TTree. Update the leaf. More... | |
TTreeReaderValueBase & | operator= (const TTreeReaderValueBase &) |
Copy-assign. More... | |
void | RegisterWithTreeReader () |
Register with tree reader. More... | |
TBranch * | SearchBranchWithCompositeName (TLeaf *&myleaf, TDictionary *&branchActualType, std::string &err) |
Search a branch the name of which contains a ".". More... | |
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. More... | |
static std::string | GetElementTypeName (const std::type_info &ti) |
Stringify the template argument. More... | |
Protected Attributes inherited from ROOT::Internal::TTreeReaderValueBase | |
TString | fBranchName |
TDictionary * | fDict |
int | fHaveLeaf: 1 |
int | fHaveStaticClassOffsets: 1 |
TLeaf * | fLeaf = nullptr |
TString | fLeafName |
Detail::TBranchProxy * | fProxy = nullptr |
Read_t | fProxyReadFunc = &TTreeReaderValueBase::ProxyReadDefaultImpl |
! Pointer to the Read implementation to use. More... | |
EReadStatus | fReadStatus: 2 |
ESetupStatus | fSetupStatus = kSetupNotSetup |
std::vector< Long64_t > | fStaticClassOffsets |
TTreeReader * | fTreeReader |
#include <TTreeReaderValue.h>
using TTreeReaderValue< T >::NonConstT_t = typename std::remove_const<T>::type |
Definition at line 144 of file TTreeReaderValue.h.
|
delete |
|
inline |
Definition at line 146 of file TTreeReaderValue.h.
|
inline |
Return a pointer to the value of the current entry.
Return a nullptr and print an error if no entry has been loaded yet. The returned address is guaranteed to stay constant while a given TTree is being read from a given file, unless the branch addresses are manipulated directly (e.g. through TTree::SetBranchAddress()). The address might also change when the underlying TTree/TFile is switched, e.g. when a TChain switches files.
Definition at line 155 of file TTreeReaderValue.h.
|
inlineprotectedvirtual |
Get the template argument as a string.
Implements ROOT::Internal::TTreeReaderValueBase.
Definition at line 173 of file TTreeReaderValue.h.
|
inline |
Return a reference to the value of the current entry.
Equivalent to dereferencing the pointer returned by Get(). Behavior is undefined if no entry has been loaded yet. Most likely a crash will occur.
Definition at line 168 of file TTreeReaderValue.h.
|
inline |
Return a pointer to the value of the current entry.
Equivalent to Get().
Definition at line 164 of file TTreeReaderValue.h.