28 auto columnIterable = desc.GetColumnIterable(fieldId);
32 auto columnId = fnGetPrincipalColumnId(field.
GetOnDiskId());
36 const auto &linkIds = desc.GetFieldDescriptor(field.
GetOnDiskId()).GetLinkIds();
37 std::deque<ROOT::DescriptorId_t> subFields(linkIds.begin(), linkIds.end());
38 while (!subFields.empty()) {
39 auto subFieldId = subFields.front();
40 subFields.pop_front();
41 columnId = fnGetPrincipalColumnId(subFieldId);
45 const auto &subLinkIds = desc.GetFieldDescriptor(subFieldId).GetLinkIds();
46 subFields.insert(subFields.end(), subLinkIds.begin(), subLinkIds.end());
54 auto arraySize = std::max(std::uint64_t(1), desc.GetFieldDescriptor(field.
GetOnDiskId()).GetNRepetitions());
const ROOT::RNTupleDescriptor & GetRef() const
Abstract interface to read data from an ntuple.
const RSharedDescriptorGuard GetSharedDescriptorGuard() const
Takes the read lock for the descriptor.
ROOT::RNTupleGlobalRange GetFieldRange(const ROOT::RFieldBase &field, const ROOT::Internal::RPageSource &pageSource)
Helper to get the iteration space of the given field that needs to be connected to the given page sou...