12#ifndef ROOT_RDF_RTREECOLUMNREADER
13#define ROOT_RDF_RTREECOLUMNREADER
45 std::unique_ptr<ROOT::Internal::TTreeReaderOpaqueValue>
fTreeValue;
76 bool fCopyWarningPrinted =
false;
80 if (
entry == fLastEntry)
96 fStorageType = EStorageType::kContiguous;
99 fStorageType = EStorageType::kSparse;
105 if (EStorageType::kContiguous == fStorageType ||
106 (EStorageType::kUnknown == fStorageType &&
readerArray.GetSize() < 2)) {
121 if (!fCopyWarningPrinted) {
122 Warning(
"RTreeColumnReader::Get",
123 "Branch %s hangs from a non-split branch. A copy is being performed in order "
124 "to properly read the content.",
126 fCopyWarningPrinted =
true;
129 (void)fCopyWarningPrinted;
191template <
typename T, std::
size_t N>
193 std::unique_ptr<TTreeReaderArray<T>> fTreeArray;
202 if (
entry == fLastEntry)
203 return fArray.data();
206 RVec<T> view{&fTreeArray->At(0), fTreeArray->GetSize()};
213 return fArray.data();
#define R__unlikely(expr)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
void * GetImpl(Long64_t entry) final
std::unique_ptr< TTreeReaderArray< T > > fTreeArray
RTreeColumnReader(TTreeReader &r, const std::string &colName)
EStorageType
Enumerator for the memory layout of the branch.
RVec< T > fRVec
We return a reference to this RVec to clients, to guarantee a stable address and contiguous memory la...
RVec< bool > fRVec
We return a reference to this RVec to clients, to guarantee a stable address and contiguous memory la...
std::unique_ptr< TTreeReaderArray< bool > > fTreeArray
RTreeColumnReader(TTreeReader &r, const std::string &colName)
void * GetImpl(Long64_t) final
RTreeColumnReader specialization for TTree values read via TTreeReaderValues.
RTreeColumnReader(TTreeReader &r, const std::string &colName)
Construct the RTreeColumnReader. Actual initialization is performed lazily by the Init method.
void * GetImpl(Long64_t) final
std::unique_ptr< TTreeReaderValue< T > > fTreeValue
std::unique_ptr< ROOT::Internal::TTreeReaderOpaqueValue > fTreeValue
RTreeOpaqueColumnReader(TTreeReader &r, const std::string &colName)
Construct the RTreeColumnReader. Actual initialization is performed lazily by the Init method.
void * GetImpl(Long64_t) final
Read a value in a branch without knowledge of its type.
@ kReadError
Problem reading data.
const_iterator begin() const
const_iterator end() const
A "std::vector"-like collection of values implementing handy operation to analyse them.
An interface for reading collections stored in ROOT columnar datasets.
An interface for reading values stored in ROOT columnar datasets.
A simple, robust and fast interface to read values from ROOT columnar datasets such as TTree,...
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...