RootSpy is a C++ software package based on ROOT. The purpose is to provide a way to dynamically "spy" on ROOT histograms and trees using a remote process as they are being filled. This is done without any direct involvement by the code that actually creates and fills the histograms. This has two main applications:
1. In an online monitoring environment where one wishes to view histograms or trees being filled from the incoming data stream.
2. While running a job interactively where one does not wish to have to stop the job to see the contents of the histogram(s) currently being written to the file.
This is possible due to ROOT keeping information about named objects in a global memory space. RootSpy is able to look at this global memory space to identify available histograms and grab copies of them to send over the network to remote viewers.
The process that fills the histograms needs to be linked to the RootsSpy library and needs to instantiate a single DRootSpy object, but that is all. The DRootSpy object creates a separate thread that it uses to listen for requests over over the network via cMsg. Through the network communication, it can provide a list of all histograms and trees as well as deliver any of them upon request.
Have a look at the Screen Shots page for some examples of the ROOT-based viewer program.