er  dev
ER

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

Experimental data processing

ER extends FairRoot with experiment-specific tasks and adds several features which enables to use it for different studies.

Key features:

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.

  1. Install docker desktop on your system: https://www.docker.com/get-started
  2. Follow docker post-installation steps: https://docs.docker.com/engine/install/linux-postinstall/
  1. Clone ER repository:
1 git clone https://github.com/FLNR-JINR/er/ .
2 git checkout dev
  1. Build docker image with ER:
1 docker build --build-arg ER=dev -t er .
  1. Enjoy ROOT, Go4, AccDAQ and ER:
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
4 root -l -q sim_digi.C
5 root -l sim_digi.root

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.

1 docker run -v /Users/vitaliy/er/macro/EXP1904_H7:/opt/run -w /opt/run er root -l -b -q create_passive_component.C
  1. 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
2 cd /opt/er
3 mkdir build
4 cd /build
5 export SIMPATH=/opt/FairSoft/
6 export FAIRROOTPATH=/opt/FairRoot/
7 cmake ../ -DACCULINNA_GO4=/opt/accdaq/install/
8 make
9 source ./config.sh
10 # to run with new build
11 cd /opt/run/
12 root -l sim_digi.C

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.

1. Install FairSoft

1 mkdir ~/fair_install
2 cd ~/fair_install
3 git clone https://github.com/FairRootGroup/FairSoft.git
4 cd FairSoft
5 git checkout BRANCHE_NAME
6 ./configure.sh
7 # 1) gcc (on Linux) 5) Clang (on OSX)
8 # 2) No Debug Info
9 # 3) Yes (ROOT6)
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

2. Install FairRoot

1 # Set the shell variable SIMPATH to the installation directory
2 export SIMPATH=~/fair_install/FairSoftInst
3 
4 cd ~/fair_install
5 git clone https://github.com/FairRootGroup/FairRoot.git
6 cd FairRoot
7 git checkout BRANCH_NAME
8 mkdir build
9 cd build
10 cmake -DCMAKE_INSTALL_PREFIX="~/fair_install/FairRootInst" ..
11 make
12 make install

BRANCH_NAME=v-17.10

3. Install ExpertRoot

1 # Set the shell variable FAIRROOTPATH to the FairRoot installation directory
2 export FAIRROOTPATH=~/fair_install/FairRootInst
3 cd ~
4 mkdir expertroot
5 cd expertroot
6 git clone https://github.com/ExpertRootGroup/er/ .
7 git checkout BRANCH_NAME
8 cd ../
9 mkdir build
10 cd build
11 cmake ../ -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
12 make

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
2 tar xzf go4.tar.gz
3 rm go4.tar.gz
4 mv go4-6.0.0 go4
5 cd go4
6 source $SIMPATH/bin/thisroot.sh
7 make withqt=no -j4

Install AccDAQ

1 git clone https://github.com/flnr-jinr/ACCULINNA_go4_user_library accdaq &&\
2 cd accdaq
3 git checkout master
4 mkdir build && cd build
5 source $SIMPATH/bin/thisroot.sh
6 source $GO4_PATH/go4login
7 cmake ../ -DCMAKE_INSTALL_PREFIX=<installtion directory path>
8 make install -j4

CMake options

There will be cmake options that affect the build process.

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: