Working with Gauss-on-Gaussino [TO BE MOVED]¶
Attention
This section will be moved to a new documentation website dedicated to Gauss.
Using the LHCb nightly build system¶
Building Gauss and Gaussino from source¶
If you wish to work with Gauss (LHCb simulation framework) based on Gaussino’s core functionalities, follow the recipe in the section dedicated to Gaussino (see: Working with Gaussino) and go back to the directory where your local copy of the nighly slot resides.
Tip
If you do not have any changes in Gaussino, you can use Gaussino directly from the nightlies. Just follow the same recipe up to the section Fetch the nightlies locally and add Gaussino to the list of copied projects:
lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,Gaussino, GaussinoExtLibs lhcb-gaussino Today
We really encourage you to use lbn-install as it generates a local copy of the nightly build directly on your machine and will create the most stable environment for your developments.
Clone Gauss and prepare your local development branch¶
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
cd Gauss
Gauss-on-Gaussino is develped on a dedicated branch: Futurev5
. So your development has to start from this branch.
git checkout Futurev5
git checkout -b your_local_dev_branch
The rest is very similar to the development in Gaussino:
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)!
Hint
The list of open merge requests with the label lhcb-gaussino
can be acquired automatically with this command:
curl -s "https://gitlab.cern.ch/api/v4/projects/2606/merge_requests?state=opened&labels=lhcb-gaussino" | jq '.[].iid'
In order to get the list of pending merge requests check the checkout report by clicking on the black arrow next to the Gauss project on the website. You will get a list of the MR ids that are needed to work with this build of Gauss. For example, if the MRs are Gauss!800 and Gauss!845, you can do the following:
git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
git merge --no-edit 800 845
Configure, build and install Gauss-on-Gaussino¶
lb-project-init .
make -j4 install
Run Gauss¶
./build.x86_64_v2-centos7-gcc11-opt/run gaudirun.py your_options.py
Example 1 building Gauss only¶
Below you will find a summary of the commands that should cover the majority of the use cases.
source /cvmfs/lhcb.cern.ch/lib/LbEnv
lb-set-platform x86_64_v2-centos7-gcc11-opt
export LCG_VERSION=101a
lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
cd lhcb-gaussino/Today
lb-set-workspace .
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
cd Gauss
git checkout Futurev5
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install
Example 2 building Gauss and Gaussino¶
Below you will find a summary of the commands that should cover the majority of the use cases in which we need to modify both Gauss & Gaussino.
source /cvmfs/lhcb.cern.ch/lib/LbEnv
lb-set-platform x86_64_v2-centos7-gcc11-opt
export LCG_VERSION=101a
lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-gaussino Today
cd lhcb-gaussino/Today
lb-set-workspace .
git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
cd Gaussino
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 23 45
lb-project-init .
make -j4 install
cd ..
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
cd Gauss
git checkout Futurev5
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install
Example 3 working with DD4hep and Detector from the nightlies¶
Below you will find a summary of the commands needed to work with DD4hep/Detector that is taken from the nightlies. There should be ne need to change anything in Gaussino, so we will only build Gauss.
source /cvmfs/lhcb.cern.ch/lib/LbEnv
lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
export LCG_VERSION=101a
lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs,Gaussino lhcb-dd4hep Today
cd lhcb-dd4hep/Today
lb-set-workspace .
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
cd Gauss
git checkout Futurev5
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install
Example 4 working with DD4hep and Detector built locally¶
Below you will find a summary of the commands needed to work with DD4hep/Detector that is built locally. In this case, we have to rebuild all the projects downstream with respect to the Detector.
source /cvmfs/lhcb.cern.ch/lib/LbEnv
lb-set-platform x86_64_v2-centos7-gcc11+dd4hep-opt
export LCG_VERSION=101a
lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11+dd4hep-opt --projects=Gaudi,Geant4,DBASE lhcb-dd4hep Today
cd lhcb-dd4hep/Today
lb-set-workspace .
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Detector.git
cd Detector
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install
cd ..
git clone ssh://git@gitlab.cern.ch:7999/lhcb/LHCb.git
cd LHCb
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install
cd ..
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Run2Support.git
cd Run2Support
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install
cd ..
git clone ssh://git@gitlab.cern.ch:7999/Gaussino/GaussinoExtLibs.git
cd GaussinoExtLibs
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 23 45
lb-project-init .
make -j4 install
cd ..
git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
cd Gaussino
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 23 45
lb-project-init .
make -j4 install
cd ..
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
cd Gauss
git checkout Futurev5
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install
Example 5: working with fast simulations with Geant4 10.7¶
Below you will find a summary of the commands needed to work with fast simulations with Geant4 10.7. In this example we will also build Gaussino as there might be some changes required in the generic fast simulation interface.
source /cvmfs/lhcb.cern.ch/lib/LbEnv
lb-set-platform x86_64_v2-centos7-gcc11-opt
export LCG_VERSION=101a
lbn-install --verbose --platforms=x86_64_v2-centos7-gcc11-opt --projects=Gaudi,Geant4,DBASE,Detector,LHCb,Run2Support,GaussinoExtLibs
lhcb-gaussino-fastsim Today
cd lhcb-gaussino-fastsim/Today
lb-set-workspace .
git clone ssh://git@gitlab.cern.ch:7999/Gaussino/Gaussino.git
cd Gaussino
git checkout FASTSIM
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 23 45
lb-project-init .
make -j4 install
cd ..
git clone ssh://git@gitlab.cern.ch:7999/lhcb/Gauss
cd Gauss
git checkout FASTSIM
git checkout -b your_local_dev_branch
# check the MRs!
# git fetch && git fetch origin '+refs/merge-requests/*/head:refs/remotes/*'
# git merge --no-edit 800 845
lb-project-init .
make -j4 install