ExpertRoot(ER) is a FairRoot-based framework dedicated to the simulation, reconstruction, data acquisition, and analysis of the nuclear physics experiments. Primarily developed for the needs of experiments on fragment separator ACCULLINA-2 at Fleurov Nuclear Research in JINR and experiment EXPERT on fragment separator SUPER-FRS at FAIR in GSI.
Library Stack
Simulation, reconstruction and analysis in the ER is based on
- FairSoft - includes widespread Geant4, ROOT, VMC and others utilities.
- FairRoot - framework which provides the base classes for IO-management, base classes event-based tasks for the simulation and reconstruction.
Experimental data processing
- Go4 - framework for on-line and off-line processing of experimental data.
- AccDAQ - library for unpacking and transformation of the raw experimental data in lmd file format produced by Go4 to root format. Output files are applicable for the analysis in the ExpertRoot.
ER extends FairRoot with experiment-specific tasks and adds several features which enables to use it for different studies.
Key features:
- User-defined interactions: reactions and decays.
- It is possible to take into account energy losses of projectiles in the target and the beam detector components such as ToF scintillators and MWPC stations.
- Simulation and analysis of cocktail and defocusing beam.
- Accounting for energy losses in the dead layers of the detector during reconstruction of ejectiles energies by experimental data.
Run using Docker
Due to high dependencies on the external packages of various versions, we strongly recommend to use the docker-image docker to deploy ER installation.
- Install docker desktop on your system: https://www.docker.com/get-started
- Follow docker post-installation steps: https://docs.docker.com/engine/install/linux-postinstall/
- Clone ER repository:
1 git clone https://github.com/FLNR-JINR/er/ .
- Build docker image with ER:
1 docker build --build-arg ER=dev -t er .
- Enjoy ROOT, Go4, AccDAQ and ER:
- To run simulation in interactive session:
1 docker run -v /home/vitaliy/er/macro/EXP1904_H7:/opt/run -w /opt/run -e DISPLAY=$DISPLAY -it er /bin/bash
2 root -l -q create_passive_component.C
3 root -l -q create_target_exp1904.C
where -v is used to map your host working directory '/home/vitaliy/er/macro/EXP1904_H7' and working directory '/opt/run' inside container; -w /opt/run - set working directory for interactive session; -e DISPLAY=$DISPLAY is needed to forward gui from container to host machine; -it - to set interactive session.
- To run macro in batch mode:
1 docker run -v /Users/vitaliy/er/macro/EXP1904_H7:/opt/run -w /opt/run er root -l -b -q create_passive_component.C
- ER developing:
Map ER source directory on host machine and container to compile updated sources:
1 docker run --entrypoint /bin/bash -v /home/vitaliy/er:/opt/er -v /home/vitaliy/er/macro/EXP1904_H7:/opt/run -w /opt/run -e DISPLAY=$DISPLAY -it er
5 export SIMPATH=/opt/FairSoft/
6 export FAIRROOTPATH=/opt/FairRoot/
7 cmake ../ -DACCULINNA_GO4=/opt/accdaq/install/
10 # to run with new build
Redifinition of entrypoint
is needed because er/build/config.sh
may not exists in mapped volume.
Step by Step installation
In case Docker-image installation is not preferable or impossible in some reasons one can install all dependencies using the following instructions.
3 git clone https://github.com/FairRootGroup/FairSoft.git
5 git checkout BRANCHE_NAME
7 # 1) gcc (on Linux) 5) Clang (on OSX)
10 # 4) Yes (Install engines)
11 # 5) Internet (install G4 files from internet)
12 # 6) No (without python)
13 # path: ~/fair_install/FairSoftInst
BRANCH_NAME=oct17p4
1 # Set the shell variable SIMPATH to the installation directory
2 export SIMPATH=~/fair_install/FairSoftInst
5 git clone https://github.com/FairRootGroup/FairRoot.git
7 git checkout BRANCH_NAME
10 cmake -DCMAKE_INSTALL_PREFIX="~/fair_install/FairRootInst" ..
BRANCH_NAME=v-17.10
1 # Set the shell variable FAIRROOTPATH to the FairRoot installation directory
2 export FAIRROOTPATH=~/fair_install/FairRootInst
6 git clone https://github.com/ExpertRootGroup/er/ .
7 git checkout BRANCH_NAME
11 cmake ../ -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
Experimental data preprocessing
If you need to handle a raw experimental data, please install the Go4 and AccDAQ
Install Go4
1 wget -O go4.tar.gz http://web-docs.gsi.de/~go4/software/download.php?http://web-docs.gsi.de/~go4/download/go4-6.0.0.tar.gz
6 source $SIMPATH/bin/thisroot.sh
1 git clone https://github.com/flnr-jinr/ACCULINNA_go4_user_library accdaq &&\
4 mkdir build && cd build
5 source $SIMPATH/bin/thisroot.sh
6 source $GO4_PATH/go4login
7 cmake ../ -DCMAKE_INSTALL_PREFIX=<installtion directory path>
CMake options
There will be cmake options that affect the build process.
-DACCULINNA_GO4 = <acculina_go4_install_path_>
To use ERDigibuilder to read experimental data from AccDAQ. You should indicate in which directory the library was installed.
Initialize
Environment variables must be initialized in every terminal session.
1 source <path_to_build>/config.sh
Otherwise ER won't work.
Run tests
To run the entire test suite:
1 cd build && cmake build . && ctest .
To run a specific test:
1 cd build && cmake build . && ctest -R exp1904_h7_sim
Authors and contributors
ER is currently developed and mantained at FLNR and LIT by: