TotemMonitor
Collection of data-quality monitoring tools focusing on low-level entities (e.g. single VFAT channels). It comprises interactive GUI as well as batch-processing utilities for automated testing.
Documentation:
Versions
- The current version based on Qt4 is available at
trunk/online/monitor
in the TOTEM SVN Repository.
- A historical version based on Qt3 is available at
/branches/monitor_qt3/
.
The rest of this page refers to the current version.
Compilation
CMake build system is used. Using the usual Cmake build routine is sufficient if all libraries are detected correctly - if not one should consider specifying them manually.
-
mkdir workingdir && cd workingdir
-
cmake ..
-
make
You may consider adding
-j[number of threads]
flag to
make
execution - it will improve build time greatly (remark: try to adjust number of threads to number of cores at your machine).
Please note that you can build only binary that you actually need without building the rest of project - simply type binary name as make target, for instance
make monitor
.
When running
cmake
yields errors about libraries not found try specifying their locations manually as described in
README.md
.
For supported library versions refer to
README.md
.
Running
After project is built you can find executables at
workingdir/build/bin/
Project development
Project subdirectories are considered as subprojects. Each subproject build produces a library and (optionally) executables. Basically by convention
src/ contents form a library while each item from
test/ constitutes a executable.
Then needed subprojects (their libraries) are linked to executables. Remember that you can build only binary that you actually need without building the rest of project (only libraries that are actually linked are build).
To add your own subproject edit
CMakeLists.txt
and add entry for subproject's library (that should be a-copy-paste of any other library). Then create executable definition (which again should be quite analogous to others) and link subproject's library along with other dependencies.
Directory structure, file names and coding rules
Each directory (subproject) should contain
at least following subdirectories:
- interface (for headers *.h) ,
- src (for sources *.cc , without main() function)
- test (for examples *.cc , with main() function)
It is recommended for source files to have extensions
*.cc, header files
*.h .
Class names should begin with upper case letter, one class should be in one file and name of class should be the same as name of file.
For example: class BigCar (not bigCar or bigcar) should be in file BigCar.h and BigCar.cc .