Skip to content

Conversation

@linev
Copy link
Member

@linev linev commented Nov 26, 2025

I guess, it also can be interesting for @will-cern.

xRooNode is special object used in xRooBrowser to explore content of RooWorkspace
Try to use it as well in RBrowser browsable API.

There is special Browsable::RElement entry for xRooNode which holds shared_ptr and provides class/name/title/isfolder information about it.

There is very basic iterator over sub-items. It can be improved to exclude/hide items which should not be seen in the hierarchy.

Try to use xRooNode::Draw() function for display. Works only for some kinds of data - when special objects like TGraph created and add to the pad.

xRooBrowser

So it is only first draft of the functionality.

Next points to do:

  1. Correctly differentiate folder/object elements in hierarchy
  2. Hide elements which should not be seen - just skip them by iteration
  3. Provide class info for contained objects, probably assign custom icons - like RegisterClass("RooRealVar", "sap-icon://picture");
  4. Reorganize drawing. One should not add xRooNode to the canvas while web graphics does not support it. Instead one always should add only supported classes like TH1/TGraph/RooHist/RooCurve. In ideal case one provide special function which will use TPad* as argument to avoid usage of gPad.

On the long run one should split xRooNode functionality to avoid direct dependency from TG... and TRootBrowser classes.

On very very long run one can add support of Browsable classes in classical TBrowser.

@github-actions
Copy link

Test Results

    22 files      22 suites   4d 2h 4m 42s ⏱️
 3 780 tests  3 777 ✅   0 💤 3 ❌
81 231 runs  81 113 ✅ 115 💤 3 ❌

For more details on these failures, see this check.

Results for commit 0978a16.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant