Using BmnRoot Container

Introduction

install_bmn_container.sh script deploys the BmnRoot container and adds aliases to easy operate. By default, the script bypasses the installation of the apptainer package (used for the container creation) if it is already present on the machine.

Three options provide configuring the installation:
  –force/-f : installs/reinstalls the apptainer package, even if it is already installed (it removes any version of Apptainer or Singularity and installs the Apptainer package)
  –os=containerOS : ubuntu OR almalinux. Allows one to choose an operating system of the BmnRoot container from the set (AlmaLinux 9 chosen by default)
  –cvmfs : deploys BmnRoot container that employs the central CernVM-FS repository with pre-installed FairSoft and FairRoot frameworks instead of their fully-installed versions in containers.
Without –cvmfs option FairSoft, FairRoot and BmnRoot are used from prepared containers, which are deployed on the local machine. It does not require internet connection while working with the BmnRoot container after the installation.
In case of the –cvmfs option the obtained BmnRoot container is more lightweight, uses officially approved central software repository on CVMFS and includes only BmnRoot sources downloaded inside. But it requires stable internet connection to download libraries requested while working to the local cache. In addition, the first launch of the lightweight container is accompanied by the installation of the BmnRoot (takes some time).

Usage example: source install_bmn_container.sh –os=almalinux –cvmfs

Start Guide

1. Download and run install_bmn_container.sh (git package is required).

git clone https://git.jinr.ru/nica/Docker-Images.git docker-images
cd docker-images/images/bmn/
source install_bmn_container.sh     # 'sudo' rights will be requested if some necessary packages are missing

2. Run the BmnRoot container

bmn_container

To test the BmnRoot container

root -b -q /bmnroot/macro/run/run_sim_bmn.C
root -b -q /bmnroot/macro/run/run_reco_bmn.C
root /bmnroot/macro/eventdisplay/eventdisplay.C

Rebuild the BmnRoot container if required (all container data will be removed)

rebuild_bmn_container