RootSpy
Summer 2024 Upgrade
Overview
RootSpy is software used to create plots for the online monitoring system used for the GlueX experiment in experimental Hall-D at Jefferson Lab. David Lawrence is the original author, but it has had contributions from numerous other people from High School students, to undergraduates, to grad. students, to professors. More recently, it had the RSAI utility added that allows plots to be generated continuously (about every minute) in a way that they can be consumed by the Hydra AI DQM system.
The package has needed an overhaul for quite some time. It has a lot of nice features and could be made to be generally useful for other experiments. Even without that though, GlueX could benefit from having the versioning and build systems modernized. Functionally, it really needs a re-factoring to allow it to scale better with lots of producer nodes and lots of clients.
Goals
Here are a list of goals for the refactoring effort:
- Copy the code from the subversion repository to a repository on GitHub under the Jefferson Lab organization
- Make an effort to copy the commit history over if possible so that some record of the people who worked on it is maintained
- Replace the scons build system with cmake
- This should use the find_package() feature to include the dependencies root and xmsg (zmq if needed along with anything else)
- Fix or replace the RSAggregator program
- This program is supposed to read and merge histograms from multiple producers so every client doesn't have to communicate with every producer. (It never actually worked)
- Create a tests directory and put some test cases in there
- These should exercise core functionality of the system
- Add a Github runner CI to build the software and run the tests when a new PR is submitted. This should allow us to know new code doesn't break old features before it is merged in.
- Update documentation
- Do this in markdown in the Github repository itself starting with a README.md file in the top directory.
- This should include build instructions and as well as instructions for setting up and running the software.
- Make standalone test that can be used with the Hydra Docker container
- This should allow interested people to setup and have a running system within a few minutes.