![]() |
NA64DP
0.0.1
A software pipeline for data processing in NA64 experiment
|
This project had began as an educational fixture devoted to basic analysis of the data produced within the NA64 experiment (CERN, SPS). Refer to How to Install Cheatsheet section below for a list of commands to build everything within a dedicated Docker container.
The project is written on C/C++. There are one shared library that is used by two executable applications or by Python bindings, all produced by this package.
Once build this project will provide na64dp-pipe application that is an entry point to actual data processing.
Optionally, the na64dp-tests application that performs self-testing routines may be built as well.
There is an online documentation page, generated by Doxygen system, based on the source code provided within this project.
In the doc/ directory of current repository, one can find detailed explaination on key concepts of the project, various details on how to install and run the project and so on.
Project is documented via Doxygen engine. Check out the generated output for guideines, code reference and various instructive examples (see "Related pages" section of online docs for a full list).
Mandatory vendor-specific dependencies are:
Optional dependencies, extending the features:
gtest) provides unit testing facilityAlso, there are some dependencies from NA64 software ecosystem that are not shipped within this project. One may either rely on their own building instructions, or utilize Docker container supported within this project.
This is the brief instructions of the recommended install procedure. For detailed version, see doc/install.md.
$ git clone https://bitbucket.org/CrankOne/na64-ecal-edu.git ecal-edu $ git clone https://gitlab.cern.ch/P348/p348-daq.git $ git clone https://gitlab.cern.ch/P348/na64-event-exchange.git na64ee $ mkdir na64ee.build $ cd ecal-edu/presets/docker $ docker build -t hepfarm4ecal-edu . $ cd -
For data located in, say /data, run the interactive session within the container:
$ docker run -p5723 --volume $(readlink -f .):/var/src \
--volume /data:/data \
--volume /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY \
-ti hepfarm4ecal-edu
Build all the libs (in container session we mark prompt with @$ instead of $):
@$ export ROOTSYS=/usr/lib/root/6.12
@$ export PATH="$PATH:/usr/lib/root/6.12/bin"
@$ cd p348-daq
@$ ./build
@$ cd na64ee.build
@$ cmake ../na64ee \
-DDAQDECODING_LIB_STATIC=../p348-daq/coral/src/DaqDataDecoding/src/libDaqDataDecoding.a \
-DMONITOR_LIB_STATIC=../p348-daq/date/monitoring/Linux/libmonitor.a \
-DCMAKE_INSTALL_PREFIX=../bundle.install
@$ make
@$ make install
@$ cd ..
Build this project itself with following commands:
@$ mkdir ecal-edu.build @$ cd ecal-edu.build @$ cmake ../ecal-edu -DCMAKE_PREFIX_PATH=../bundle.install/lib/cmake/na64 @$ make
All the built libraries are stored on the host, so there is no need for above procedure to ran each time you enter the container.
The following structure is respected:
bin/ is directory for executable files. Besides binary executables produced with make there are various Python and Bash scripts that have to be kept there.doc/ lists the documentation assets (guideline pages, examples, etc.)include/ is for C/C++ header filesnotebooks/ is for Jupyter's notebooks: Python and ROOT.presets/ is for configuration filessrc/ is for C/C++ inplementation filesutils/ is for various utils, tiny subprojects, etc.CMakeLists.txt file is main file that performs build procedure of the project (to be precise, instructs the CMake application how to generate a Makefile that is then used by make to build up everything).README.md is this fileOn behalf of NA64 collaboration:
1.8.16