main daq online monitor - E1039-Collaboration/e1039-wiki GitHub Wiki
Online Monitor (OnlMon) for Main DAQ Data
This page explains the procedure for modifying/adding an OnlMonClient class. Each subsytem group is expected to develop and maintain its OnlMonClient class(es).
Prerequisite
The OnlMon system is based on the Fun4All framework for the event processing.
If you have never used the Fun4All macro and the SubsysReco
module, please first try e1039-analysis/AnaRealDst
for example.
You should be able to modify one of the modules (like AnaHodoHit
), rebuild the source code and execute Fun4All.C
.
The code structure of the whole OnlMon system is explained in e1039-onlmon/README.md. Please read it through first.
Preparation
The code is stored in the E1039-Collaboration/e1039-onlmon
GitHub repository.
It should be cloned and tested at e1039gat1
(not GPVM).
You might create a branch for development.
ssh e1039gat1.fnal.gov
cd e1039/git
git clone [email protected]:yours/e1039-onlmon.git
cd e1039-onlmon
git checkout -b devel_your_name
Test of One Subsystem
You might first build and run the OnlMon program as is, to confirm that the program runs fine.
The following commands do the whole process with a few subsystems enabled, using the 1st spill in run 5917 for example.
Output files will appear under /dev/shm/$USER/onlmon/plots
as printed at the end.
source setup.sh
cmake-this
make-this
cd work
root -b 'TestOnlMonClient.C(5917, 1)'
Modification of Existing OnlMon Subsystem (OnlMonClient)
All OnlMon subsystems are programmed under e1039-onlmon/src/
.
You edit the header and source files for the OnlMon subsystem that you modify (like OnlMonV1495.(h|cc)
).
You rebuild the code just by executing make-this
at any directory.
If you re-login to e1039gat1
or open a new text terminal, you need execute source setup.sh
.
Test of Modified OnlMonClient
The test should use one of the ended runs (not the run being taken), not to disturb the ongoing data taking.
e1039-onlmon/work/TestOnlMonClient.C
is the macro to execute the OnlMon program in a test environment.
You first edit the macro to register your subsystem only, simply by uncommenting it and commenting out the others.
You then execute the following command, which processes the 1st spill in run 5917.
root -b 'TestOnlMonClient.C(5917, 1)'
The OnlMon output files will appear under /dev/shm/$USER/onlmon/plots
.
If you need more statistics, you change the 2nd argument of the macro to 2
or larger.
Adoption of Updated Version
- You push the new version to the GitHub repository and make a pull request.
- The online software manager (Kenichi) will test it, merge it and update the running version of e1039-onlmon.
- The manager will post an elog entry to explain when (in which run) the updated version took effect.
- You should confirm that the updated version is running fine.
Addition of New OnlMon Subsystem (OnlMonClient)
This section is not yet documented.
Please first consult with the online software manager.
You are recommended to start with copying an existing class that has a similar function.
Note that you have to *add the new class to LinkDef.h
.