Working with Gaussino¶
Please note that Gaussino is an experiment-independent package. If you are looking for a concrete experiment implementation, here is the list:
Gauss-on-Gaussino (LHCb Experiment, for now using the nightly build system)
Using the LHCb nightly build system¶
About the nightly system¶
You can check the nighlty build status by visiting https://lhcb-nightlies.web.cern.ch/nightly/. There are a few nightly slots currently available for Gaussino:
lhcb-gaussino
standard slot for the majority of developments,lhcb-dd4hep
the nightly slot used for the integration of DD4hep sub-detectors,lhcb-gaussino-fastsim
nightly slot dedicated to fast simulation developments with Geant4 10.7,lhcb-gaussino-prerelease
the most stable version of Gaussino used to prepare beta releases with LHCb stack,
Gaussino is built in each nightly slots on 3 platforms:
x86_64_v2-centos7-gcc11-opt
release build with DetDesc geometry,x86_64_v2-centos7-gcc11-dbg
debug build with DetDesc geometry,x86_64_v2-centos7-gcc11+dd4hep-opt
release build with DD4Hep geometry,
Configuring the environment¶
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
Configure the platform¶
The following will make sure that you have the most recent platform.
lb-set-platform x86_64_v2-centos7-gcc11-opt
export LCG_VERSION=101a
Tip
Use x86_64_v2-centos7-gcc11+dd4hep-opt
on lhcb-dd4hep
if you want to work with Detector/DD4hep.
Building Gaussino from source¶
Note
This is the recommended way for now.
Fetch the nightlies locally¶
We’re going to create a local copy of the projects used in the nightly slot. Gaussino requires Gaudi, Detector, LHCb, Run2Support and GaussinoExtLibs. LHCb and Run2Support are used when building Gaussino in the LHCb stack.
lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs lhcb-gaussino Today
cd lhcb-gaussino/Today
lb-set-workspace .
Tip
Use x86_64_v2-centos7-gcc11+dd4hep-opt
on lhcb-dd4hep
if you want to work with Detector/DD4hep.
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 Gaussino and prepare your local development branch¶
git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
cd Gaussino
git checkout -b your_local_dev_branch
Attention
Don’t forget to merge all pending merge requests with a label lhcb-gaussino
(or any other MR that was picked up in the nightly)!
In order to get the list of pending merge requests check the checkout report by clicking on the black arrow next to the Gaussino project on the website. You will get a list of the MR ids that are needed to work with this build of Gaussino. For example, if the MRs are Gaussino!24 and Gaussino!51, you can do the following:
git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
git merge --no-edit 24 51
Configure, build and install Gaussino¶
lb-project-init .
make -j4 install
Run Gaussino¶
./build.x86_64_v2-centos7-gcc11-opt/run gaudirun.py your_options.py
Working on a satellite project¶
Error
This is not working yet and has to be updated.
Get a skeleton of your project¶
lb-dev --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
Additional configuration.¶
cd GaussinoDev_HEAD
git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
Configure the package¶
Conifure the package you’d like to develop. Here Sim/Gaussino
git lb-checkout Gaussino/master Sim/Gaussino
Build¶
make
Working on a satellite project with nightlies locally¶
Error
This is not working yet and has to be updated.
This might be useful if you want a local copy of the projects in the nighlt slot or if you’re looking for a nightly slot that is no longer present in /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino
ll /cvmfs/lhcbdev.cern.ch/nightlies/lhcb-gaussino
Here is an exemplary list of nighlty slots:
total 5.0K
drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 24 01:44 931
drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 26 01:05 932
drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 27 01:43 933
drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 29 01:20 934
drwxr-xr-x. 12 cvmfs cvmfs 224 Apr 30 02:30 935
drwxr-xr-x. 12 cvmfs cvmfs 224 May 2 02:53 936
lrwxrwxrwx. 1 cvmfs cvmfs 3 Apr 30 01:11 Fri -> 935
lrwxrwxrwx. 1 cvmfs cvmfs 3 May 2 00:10 latest -> 936
lrwxrwxrwx. 1 cvmfs cvmfs 3 May 2 00:10 Sun -> 936
lrwxrwxrwx. 1 cvmfs cvmfs 3 Apr 29 00:35 Thu -> 934
Today
nighlty slot will be used in further steps.
Create a base directory for your nighlties¶
mkdir gaussino_base
Install the nightlies in your base directory¶
lbn-install --verbose --projects Gaussino --platforms x86_64-centos7-gcc9-opt --dest gaussino_base/lhcb-gaussino/Today lhcb-gaussino Today
Use the nightlies in your base directory¶
lb-dev --nightly-base gaussino_base --nightly lhcb-gaussino/Today Gaussino/HEAD -c x86_64-centos7-gcc9-opt
Additional configuration¶
cd GaussinoDev_HEAD
git lb-use Gaussino https://gitlab.cern.ch/Gaussino/Gaussino
Configure the package¶
Configure the package you’d like to develop. Here Sim/Gaussino
git lb-checkout Gaussino/master Sim/Gaussino
Build¶
make