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:
lhcb-gaussino a stable slot for general development,
lhcb-dd4hep the nightly slot used for the integration of DD4hep sub-detectors,
lhcb-gaussino-fastsim nightly slot for developments with Geant4 10.7,
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.