-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FairRunOnline: Support for non-jsroot monitoring? #1220
Comments
Dear Philipp, First of all it is nice to see that you like what Denis Bertini and me did 20 years ago (Qt-Interface to ROOT and Go4 GUI). However, as you realise yourself what the Go4 GUI is doing is to give the user a different way of accessing the same functionality in ROOT.
That said, I would recommend to implement this dependancy on your experiment code and not on FairRoot level, i.e: you can sub-class the FairRunOnline in your experiment code and add what ever dependancy you like. Best, Mohammad |
Hi Mohammad, |
While I have to concede that jsroot works, I would still prefer (optional) support for some non-web GUI.
During the last two decades, a vaguely FAIR-related Helmholtz center created a software which allows monitoring online histograms using a QT based GUI.
That software is called Go4. While -- as traditional for all software projects based on ROOT -- it features its own event loop and event processing base classes, it also supports a mode where it simply spawns a TCP server transmitting histograms filled elsewhere to the GUI.
(
I am not known to enthusiastically praise software, but the Go4 Gui is probably what TBrowser wants to grow up to be. Key features include the ability to compose multi-histogram views ad-hoc by selecting multiple histograms and then superimposing them or displaying them side by side. (Using some gentle API hooking, I one can also make the bins of an overview TH2 (displaying the number of events in 1k channels) open a particular channel when clicked. In principle, this could also be done in js, of course.)
As it uses native ROOT GUI primitives, it is rather more intuitively usable for long-term ROOT users (who consider it perfectly normal to right-click on the canvas background instead of an axis to toggle logness).
As the Go4 GUI keeps a local copy of the histograms around, the memory requirements of it are typically higher than jsroot. However, a recent breakthrough in GUI architecture allows forwarding X11 programs over secure shell, so it is perfectly feasible to run the GUI on a beefy server while viewing it on a normal desktop.
I do not propose replacing jsroot, but claim that both jsroot and Go4 come with advantages and disadvantages over the other.
)
We could (optionally) allow linking FairRoot with the relevant parts of Go4. It should not be terribly difficult: in FairRunOnline::AddObject, recursively add the contents of TFolders using TGo4Analysis::AddHistogram()/AddObject while keeping track of the folder path. Put the actual handling of Go4 classes behind some #ifdef GO4.
Would you consider merging a PR doing such a thing?
Cheers,
Philipp
The text was updated successfully, but these errors were encountered: