Installation

Please note that Gauss is an LHCb-dependent package. If you are looking for an experiment-independent solutions, visit Gaussino:

If you need to make changes to packages that Gauss depends on, such as Detector, please see the whole stack section.

Gauss only

Running Gauss from the nightlies

source /cvmfs/lhcb.cern.ch/lib/LbEnv
lb-set-platform x86_64_v2-centos7-gcc11-opt
lb-run --nightly lhcb-gaussino/latest Gauss/Futurev5 gaudirun.py your_options.py

Building Gauss with a local copy of the nightly build

Tip

In the examples below, we are going to use nightly build system in LHCb. You can check the status of nightly build by visiting the LHCb nightly webpage. There are a few nightly slots currently available for Gaussino:

Currently, Gaussino is built in each nightly slots on 3 platforms:

  • x86_64_v2-centos7-gcc11-opt release build with DetDesc & DD4Hep geometry,

  • x86_64_v2-centos7-gcc11-dbg debug build with DetDesc & DD4Hep geometry,

  • x86_64_v2-centos7-gcc11+detdesc-opt release build with DetDesc only geometry,

We’re going to create a local copy of the projects used in the nightly slot. Gauss requires Gaussino, Gaudi, Detector, LHCb, Run2Support and GaussinoExtLibs (temporary project).

Make sure that you are using LbEnv on lxplus or similar. You can run this to be sure:

source /cvmfs/lhcb.cern.ch/lib/LbEnv

The following will make sure that you have the most recent platform.

lb-set-platform x86_64_v2-centos7-gcc11-opt
export LCG_VERSION=103

Fetch the nightlies locally

lbn-install --verbose --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
cd lhcb-gaussino/Today
lb-set-workspace .

Attention

The Today version of the nightly slot might not always be available. Please, always check directly on the website if the build of Gaussino & Gauss was successful (cells in the table should be either orange or green, but not red!). Always use the latest version that was successful (yesterday, 1222 etc.).

Clone, configure, build and install Gauss:

git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss.git
cd Gauss
git checkout Futurev5
lb-project-init .
make install

Building only a subset of Gauss packages

The example below shows you how to work and build a subset of the packages of Gaussino. We will use lb-dev for this purpose. We are going to need one of the nightly slots mentioned in the previous section.

source /cvmfs/lhcb.cern.ch/lib/LbEnv
lb-dev --nightly lhcb-gaussino/Today Gauss/Futurev5
cd GaussDev_Futurev5
git lb-use Gauss

Configure and build the package you’d like to modify. Below you will find an example for Sim/Gauss.

git lb-checkout Gauss/Futurev5 Sim/Gauss
make

Whole stack

As Gauss has a lot of project dependencies, building the whole stack by yourself might become not an easy task. Therefore, we recommend using the lb-stack-setup tool. It already does a lot of work for you. You might also benefit from using intellisense for C++/python in VSCode and many more.

curl https://gitlab.cern.ch/rmatev/lb-stack-setup/raw/master/setup.py | python3 - stack
cd stack
make Gauss

Attention

Please, always follow the instructions available directly on lb-stack-setup.