33 std::shared_ptr<ROOT::RNTupleReader> fReader;
37 std::unique_ptr<TH1> fHistogram;
38 std::string fFieldName;
45 const auto &desc = fReader->GetDescriptor();
47 fIsLeaf = desc.GetFieldDescriptor(fBrowsableFieldId).GetLinkIds().empty();
48 fFieldName = desc.GetFieldDescriptor(fFieldId).GetFieldName();
49 fTypeName = desc.GetFieldDescriptor(fFieldId).GetTypeName();
57 const auto &desc = fReader->GetDescriptor();
63 auto view = fReader->GetView<
void>(desc.GetQualifiedFieldName(fBrowsableFieldId));
67 fHistogram = std::unique_ptr<TH1>(
drawVisitor.MoveHist());
68 if (fHistogram->GetEntries() == 0) {
69 gPad->DrawFrame(-1., -1., 1., 1.);
81 for (
const auto &
f : desc.GetFieldIterable(fBrowsableFieldId)) {
82 b->Add(
new RFieldBrowsable(fReader,
f.GetId()),
f.GetFieldName().c_str());
87 bool IsFolder()
const final {
return !fIsLeaf; }
88 const char *GetIconName()
const final {
return IsFolder() ?
"RNTuple-folder" :
"RNTuple-leaf"; }
90 const char *GetName()
const final {
return fFieldName.c_str(); }
102 const auto &desc =
reader->GetDescriptor();
103 for (
const auto &
f : desc.GetTopLevelFields()) {
104 b->Add(
new RFieldBrowsable(
reader,
f.GetId()),
f.GetFieldName().c_str());
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Representation of an RNTuple data set in a ROOT file.
Using a TBrowser one can browse all ROOT objects.
Mother of all ROOT objects.
Base class for several text objects.
void BrowseRNTuple(const void *ntuple, TBrowser *b)
DescriptorId_t GetNextBrowsableField(DescriptorId_t fieldId, const RNTupleDescriptor &desc)
std::uint64_t DescriptorId_t
Distriniguishes elements of the same type within a descriptor, e.g. different fields.
constexpr DescriptorId_t kInvalidDescriptorId