27using namespace std::string_literals;
54 std::string
GetName()
const override {
return "TreeMap"; }
57 std::string
GetTitle()
const override {
return "TreeMap visualization of RNTuple structure and disk usage"; }
60 std::unique_ptr<RLevelIter>
GetChildsIter()
override {
return nullptr; }
80 auto item = std::make_unique<RNTupleItem>(
GetName(), 0,
"sap-icon://Chart-Tree-Map");
86 bool IsFolder()
const override {
return false; }
116 std::string
GetName()
const override {
return "Visualization"; }
119 std::string
GetTitle()
const override {
return "Visualization tools and options for RNTuple data"; }
128 std::unique_ptr<RHolder>
GetObject()
override {
return nullptr; }
137 std::make_unique<RNTupleItem>(
GetName(), 1,
"sap-icon://show", RNTupleItem::ECategory::kVisualization);
189 auto item = std::make_unique<RNTupleItem>(
"TreeMap", 0,
"sap-icon://Chart-Tree-Map");
190 item->SetTitle(
"TreeMap visualization of RNTuple structure and disk usage");
238 return "RField name "s +
fld.GetFieldName() +
" type "s +
fld.GetTypeName();
299 std::string
GetTitle()
const override {
return "RNTuple title"s; }
311 auto item = std::make_unique<RNTupleItem>(
GetName(), -1,
"sap-icon://table-chart");
341 const std::string &fileName =
"")
367 return "Visualization";
387 auto item = std::make_unique<RNTupleItem>(
"Visualization", 1,
"sap-icon://show",
388 RNTupleItem::ECategory::kVisualization);
389 item->SetTitle(
"Visualization tools and options for RNTuple data");
402 auto item = std::make_unique<RNTupleItem>(
field.GetFieldName(), nchilds,
403 nchilds > 0 ?
"sap-icon://split" :
"sap-icon://e-care");
405 item->SetTitle(
"RField name "s +
field.GetFieldName() +
" type "s +
field.GetTypeName());
423 std::vector<ROOT::DescriptorId_t> ids;
428 ids.emplace_back(
f.GetId());
434 const auto &
fld = desc.GetFieldDescriptor(
fFieldId);
435 prefix.append(
fld.GetFieldName());
438 return std::make_unique<RNTupleIterator>(
fNtplReader, std::move(ids), prefix);
443 std::vector<ROOT::DescriptorId_t> ids;
445 for (
auto &
f :
fNtplReader->GetDescriptor().GetTopLevelFields())
446 ids.emplace_back(
f.GetId());
472 return elem->IsNull() ? nullptr :
elem;
RNTupleBrowseProvider newRNTupleBrowseProvider
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
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 Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
EActionKind GetDefaultAction() const override
Get default action.
bool IsCapable(EActionKind kind) const override
Check if want to perform action.
std::shared_ptr< ROOT::RNTupleReader > fNtplReader
RFieldElement(std::shared_ptr< ROOT::RNTupleReader > ntplReader, const std::string &parent_name, const ROOT::DescriptorId_t id, const std::string &displayName)
std::unique_ptr< RHolder > GetObject() override
Access object.
std::string GetTitle() const override
Title of RField.
std::unique_ptr< RLevelIter > GetChildsIter() override
Create iterator for childs elements if any.
const TClass * GetClass() const
Return class of field - for a moment using RNTuple class as dummy.
std::string GetName() const override
Name of RField.
ROOT::DescriptorId_t fFieldId
~RFieldElement() override=default
Provider for browsing RNTuple classes.
~RNTupleBrowseProvider() override
Browsing element representing of RNTuple.
std::string GetName() const override
Name of NTuple.
~RNTupleElement() override=default
std::unique_ptr< RLevelIter > GetChildsIter() override
Create iterator for childs elements if any.
std::shared_ptr< ROOT::RNTupleReader > fNtplReader
const std::string & GetFileName() const
Get the filename.
bool IsNull() const
Returns true if no ntuple found.
std::unique_ptr< RItem > CreateItem() const override
Returns item with element description.
RNTupleElement(const std::string &ntplName, const std::string &filename)
std::string GetTitle() const override
Title of NTuple.
const TClass * GetClass() const
Iterator over RNTuple fields & visualization entry.
std::unique_ptr< RItem > CreateItem() override
Create element for the browser.
std::vector< ROOT::DescriptorId_t > fProvidedFieldIds
~RNTupleIterator() override=default
RNTupleIterator(std::shared_ptr< ROOT::RNTupleReader > ntplReader, std::vector< ROOT::DescriptorId_t > &&ids, const std::string &parent_name="", bool includeVisualization=false, const std::string &fileName="")
std::string GetItemName() const override
Returns current entry name
bool Next() override
Shift to next entry.
bool CanItemHaveChilds() const override
Returns true if current item can have childs.
std::vector< ROOT::DescriptorId_t > fActualFieldIds
std::shared_ptr< RElement > GetElement() override
Create RElement for current entry - may take much time to load object or open file.
std::shared_ptr< ROOT::RNTupleReader > fNtplReader
Basic element of browsable hierarchy.
EActionKind
Possible actions on double-click.
@ kActDraw6
can be drawn inside ROOT6 canvas
@ kActDraw7
can be drawn inside ROOT7 canvas
Iterator over single level hierarchy like any array, keys list, ...
Provider of different browsing methods for supported classes.
void RegisterNTupleFunc(BrowseNTupleFunc_t func)
static std::unique_ptr< RNTupleReader > Open(std::string_view ntupleName, std::string_view storage, const ROOT::RNTupleReadOptions &options=ROOT::RNTupleReadOptions())
Open an RNTuple for reading.
const_iterator begin() const
const_iterator end() const
Browsing element representing TreeMap visualization for RNTuple.
std::shared_ptr< ROOT::RNTupleReader > fNtplReader
~RTreeMapElement() override=default
bool IsCapable(EActionKind kind) const override
Check if visualization is capable of being drawn.
std::string GetTitle() const override
Title of TreeMap visualization.
void SetFileName(const std::string &fileName)
Set filename for treemap creation.
std::unique_ptr< RLevelIter > GetChildsIter() override
No children for TreeMap visualization.
std::string GetName() const override
Name of TreeMap visualization.
std::unique_ptr< RItem > CreateItem() const override
Create item with TreeMap icon.
EActionKind GetDefaultAction() const override
Default action is to draw the treemap.
RTreeMapElement(std::shared_ptr< ROOT::RNTupleReader > ntplReader, const std::string &fileName="")
const TClass * GetClass() const
Return class of RNTuple for consistency.
std::unique_ptr< RHolder > GetObject() override
Return holder with visualization data.
bool IsFolder() const override
Not expandable by default.
Browsing element representing visualization folder for RNTuple.
std::unique_ptr< RItem > CreateItem() const override
Create item with visualization folder icon.
bool IsFolder() const override
This is a folder.
~RVisualizationElement() override=default
std::string GetName() const override
Name of visualization folder.
void SetFileName(const std::string &fileName)
Set filename for child elements.
RVisualizationElement(std::shared_ptr< ROOT::RNTupleReader > ntplReader, const std::string &fileName="")
EActionKind GetDefaultAction() const override
Default action is none for folder.
std::shared_ptr< ROOT::RNTupleReader > fNtplReader
std::string GetTitle() const override
Title of visualization folder.
std::unique_ptr< RHolder > GetObject() override
No direct object for folder.
std::unique_ptr< RLevelIter > GetChildsIter() override
Create iterator for visualization children.
const TClass * GetClass() const
Return class of RNTuple for consistency.
Iterator over visualization options.
std::shared_ptr< RElement > GetElement() override
Create RElement for current entry - may take much time to load object or open file.
bool Next() override
Shift to next entry.
bool CanItemHaveChilds() const override
Returns true if current item can have childs.
std::shared_ptr< ROOT::RNTupleReader > fNtplReader
std::string GetItemName() const override
Returns current entry name
RVisualizationIterator(std::shared_ptr< ROOT::RNTupleReader > ntplReader, const std::string &fileName="")
std::unique_ptr< RItem > CreateItem() override
Create item for the browser.
~RVisualizationIterator() override=default
TClass instances represent classes, structs and namespaces in the ROOT type system.
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.