Logo ROOT   master
Reference Guide
TTreeReaderValue< T > Class Template Referencefinal

template<typename T>
class TTreeReaderValue< T >

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::vectors 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 144 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 = -9, kSetupMissingCounterBranch = -6,
  kSetupMissingBranch = -5, kSetupInternalError = -4, kSetupMissingDictionary = -3, kSetupMismatch = -2,
  kSetupNotACollection = -1, kSetupMatch = 0, kSetupMatchBranch = 7, 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...
 
voidGetAddress ()
 Returns the memory address of the object being read. More...
 
const char * GetBranchName () const
 
TLeafGetLeaf ()
 If we are reading a leaf, return the corresponding TLeaf. More...
 
virtual EReadStatus GetReadStatus () const
 
ESetupStatus GetSetupStatus () const
 Return this TTreeReaderValue's setup status. More...
 
Bool_t IsValid () const
 Return true if the branch was setup and read correctly. More...
 
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 (TTreeReader *reader, const char *branchname, TDictionary *dict)
 Construct a tree value reader and register it with the reader object. More...
 
 TTreeReaderValueBase (const TTreeReaderValueBase &)
 Copy-construct. More...
 
virtual void CreateProxy ()
 Create the proxy object for our branch. More...
 
Detail::TBranchProxyGetProxy () const
 
void MarkTreeReaderUnavailable ()
 
void NotifyNewTree (TTree *newTree)
 The TTreeReader has switched to a new TTree. Update the leaf. More...
 
TTreeReaderValueBaseoperator= (const TTreeReaderValueBase &)
 Copy-assign. More...
 
void RegisterWithTreeReader ()
 Register with tree reader. More...
 
TBranchSearchBranchWithCompositeName (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
 
TDictionaryfDict
 
int fHaveLeaf: 1
 
int fHaveStaticClassOffsets: 1
 
TLeaffLeaf = nullptr
 
TString fLeafName
 
Detail::TBranchProxyfProxy = nullptr
 
Read_t fProxyReadFunc = &TTreeReaderValueBase::ProxyReadDefaultImpl
 ! Pointer to the Read implementation to use. More...
 
EReadStatus fReadStatus: 2
 
ESetupStatus fSetupStatus = kSetupNotSetup
 
std::vector< Long64_tfStaticClassOffsets
 
TTreeReaderfTreeReader
 

#include <TTreeReaderValue.h>

Inheritance diagram for TTreeReaderValue< T >:
[legend]

Member Typedef Documentation

◆ NonConstT_t

template<typename T>
using TTreeReaderValue< T >::NonConstT_t = typename std::remove_const<T>::type

Definition at line 148 of file TTreeReaderValue.h.

Constructor & Destructor Documentation

◆ TTreeReaderValue() [1/2]

template<typename T>
TTreeReaderValue< T >::TTreeReaderValue ( )
delete

◆ TTreeReaderValue() [2/2]

template<typename T>
TTreeReaderValue< T >::TTreeReaderValue ( TTreeReader tr,
const char *  branchname 
)
inline

Definition at line 150 of file TTreeReaderValue.h.

Member Function Documentation

◆ Get()

template<typename T>
T* TTreeReaderValue< T >::Get ( )
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 159 of file TTreeReaderValue.h.

◆ GetDerivedTypeName()

template<typename T>
virtual const char* TTreeReaderValue< T >::GetDerivedTypeName ( ) const
inlineprotectedvirtual

Get the template argument as a string.

Implements ROOT::Internal::TTreeReaderValueBase.

Definition at line 177 of file TTreeReaderValue.h.

◆ operator*()

template<typename T>
T& TTreeReaderValue< T >::operator* ( )
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 172 of file TTreeReaderValue.h.

◆ operator->()

template<typename T>
T* TTreeReaderValue< T >::operator-> ( )
inline

Return a pointer to the value of the current entry.

Equivalent to Get().

Definition at line 168 of file TTreeReaderValue.h.


The documentation for this class was generated from the following file: