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.
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.
- 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.
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 engine on your system: https://docs.docker.com/engine/install/ubuntu/
- Follow docker post-installation steps: https://docs.docker.com/engine/install/linux-postinstall/
- Clone ER repository:
git clone https://github.com/FLNR-JINR/er/ .
git checkout dev
- Build docker image with ER:
docker build --build-arg ER=dev -t er .
- Run er container, compile updated sources, run simulation:
docker run --entrypoint /bin/bash --net=host -v /home/vitaliy/er:/opt/er -v /home/vitaliy/er/macro/EXP1904_H7:/opt/run -w /opt/run -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/.Xauthority:/home/jovyan/.Xauthority:rw -e DISPLAY=$DISPLAY -it er
cd /opt/er
mkdir build
cd build
export SIMPATH=/opt/FairSoft/
export FAIRROOTPATH=/opt/FairRoot/
cmake ../ -DACCULINNA_GO4=/opt/accdaq/install/
make
source ./config.sh
# to run with new build
cd /opt/run/
root -l sim_digi.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.
Redifinition of entrypoint
is needed because er/build/config.sh
may not exists in mapped volume.
In case Docker-image installation is not preferable or impossible in some reasons one can install all dependencies using the following instructions.
1. Install FairSoft
mkdir ~/fair_install
cd ~/fair_install
git clone https://github.com/FairRootGroup/FairSoft.git
cd FairSoft
git checkout BRANCHE_NAME
./configure.sh
# 1) gcc (on Linux) 5) Clang (on OSX)
# 2) No Debug Info
# 3) Yes (ROOT6)
# 4) Yes (Install engines)
# 5) Internet (install G4 files from internet)
# 6) No (without python)
# path: ~/fair_install/FairSoftInst
BRANCH_NAME=oct17p4
2. Install FairRoot
# Set the shell variable SIMPATH to the installation directory
export SIMPATH=~/fair_install/FairSoftInst
cd ~/fair_install
git clone https://github.com/FairRootGroup/FairRoot.git
cd FairRoot
git checkout BRANCH_NAME
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX="~/fair_install/FairRootInst" ..
make
make install
BRANCH_NAME=v-17.10
3. Install ExpertRoot
# Set the shell variable FAIRROOTPATH to the FairRoot installation directory
export FAIRROOTPATH=~/fair_install/FairRootInst
cd ~
mkdir expertroot
cd expertroot
git clone https://github.com/ExpertRootGroup/er/ .
git checkout BRANCH_NAME
cd ../
mkdir build
cd build
cmake ../ -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
make
If you need to handle a raw experimental data, please install the Go4 and AccDAQ
Install Go4
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
tar xzf go4.tar.gz
rm go4.tar.gz
mv go4-6.0.0 go4
cd go4
source $SIMPATH/bin/thisroot.sh
make withqt=no -j4
Install AccDAQ
git clone https://github.com/flnr-jinr/ACCULINNA_go4_user_library accdaq &&\
cd accdaq
git checkout master
mkdir build && cd build
source $SIMPATH/bin/thisroot.sh
source $GO4_PATH/go4login
cmake ../ -DCMAKE_INSTALL_PREFIX=<installtion directory path>
make install -j4
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.
Environment variables must be initialized in every terminal session.
source <path_to_build>/config.sh
Otherwise ER won't work.
To run the entire test suite:
cd build && cmake build . && ctest .
To run a specific test:
cd build && cmake build . && ctest -R exp1904_h7_sim