|
ROOT 6.10/00 Reference Guide |
Helper class that updates and returns TTree branches as well as TDataFrame temporary columns.
| T | The type of the column |
TDataFrame nodes must access two different types of values during the event loop: values of real branches, for which TTreeReader{Values,Arrays} act as proxies, or temporary columns whose values are generated on the fly. While the type of the value is known at compile time (or just-in-time), it is only at runtime that nodes can check whether a certain value is generated on the fly or not.
TColumnValuePtr abstracts this difference by providing the same interface for both cases and handling the reading or generation of new values transparently. Only one of the two data members fReaderProxy or fValuePtr will be non-null for a given TColumnValue, depending on whether the value comes from a real TTree branch or from a temporary column respectively.
TDataFrame nodes can store tuples of TColumnValues and retrieve an updated value for the column via the Get method.
Definition at line 129 of file TDFNodes.hxx.
Public Member Functions | |
| TColumnValue ()=default | |
| template<typename U = T, typename std::enable_if< std::is_same< typename TColumnValue< U >::ProxyParam_t, U >::value, int >::type = 0> | |
| T & | Get (Long64_t entry) |
| template<typename U = T, typename std::enable_if<!std::is_same< ProxyParam_t, U >::value, int >::type = 0> | |
| std::array_view< ProxyParam_t > | Get (Long64_t) |
| void | MakeProxy (TTreeReader *r, const std::string &bn) |
| void | Reset () |
| void | SetTmpColumn (unsigned int slot, TCustomColumnBase *tmpColumn) |
Private Types | |
| using | ProxyParam_t = typename std::conditional< std::is_same< ReaderValueOrArray_t< T >, TTreeReaderValue< T >>::value, T, ExtractType_t< T >>::type |
Private Attributes | |
| std::unique_ptr < TTreeReaderArray < ProxyParam_t > > | fReaderArray {nullptr} |
| non-temporary columns and T != std::array_view<U> More... | |
| std::unique_ptr < TTreeReaderValue< T > > | fReaderValue {nullptr} |
| unsigned int | fSlot {0} |
| TCustomColumnBase * | fTmpColumn {nullptr} |
| T * | fValuePtr {nullptr} |
| non-temporary columsn and T == std::array_view<U>. More... | |
#include <ROOT/TDFNodes.hxx>
|
private |
Definition at line 133 of file TDFNodes.hxx.
|
default |
| T & ROOT::Internal::TDF::TColumnValue< T >::Get | ( | Long64_t | entry | ) |
Definition at line 570 of file TDFNodes.hxx.
|
inline |
Definition at line 163 of file TDFNodes.hxx.
|
inline |
Definition at line 148 of file TDFNodes.hxx.
|
inline |
Definition at line 177 of file TDFNodes.hxx.
| void ROOT::Internal::TDF::TColumnValue< T >::SetTmpColumn | ( | unsigned int | slot, |
| TCustomColumnBase * | tmpColumn | ||
| ) |
Definition at line 550 of file TDFNodes.hxx.
|
private |
non-temporary columns and T != std::array_view<U>
Definition at line 136 of file TDFNodes.hxx.
|
private |
Definition at line 134 of file TDFNodes.hxx.
|
private |
Definition at line 141 of file TDFNodes.hxx.
|
private |
Definition at line 140 of file TDFNodes.hxx.
|
private |
non-temporary columsn and T == std::array_view<U>.
Definition at line 139 of file TDFNodes.hxx.