Skip to content

The simulation framework

The simulation project is responsible the simulation of all things necessary for LHCb by providing overall coordination and support for physics analyses for all runs of the LHC. This includes the development and maintenance of many simulation specific applications and software, including Gauss and Boole, along with handling the various processing needs for the production of simulation samples. More information about the Simulation Project as a whole can be found on their dedicated website: https://lhcb-simulation.web.cern.ch/.

Gauss is the primary LHCb simulation framework that interfaces generators to decay engines and then simulate the response of our detector. This lesson will give a basic introduction to Gauss, focussing on the most common use-cases analysts might encounter. Additional information and a collection of useful links can be found on the project's website : https://lhcbdoc.web.cern.ch/lhcbdoc/gauss/.

Learning objectives

  • Understand how a signal decay sample is produced in the LHCb framework
  • Produce generator level Monte Carlo, print the decay tree and produce nTuples
  • Read a DecFile and understand what it produces, including generator level cuts
  • Generate an event type with modified channels and generator level cuts
  • Understand the available options for fast simulation

Before we continue, please use these steps to set up Gauss v56r8:

Setting up Gauss within an apptainer

  • As of the time of writing, Gauss is only supported on CentOS7 platforms. To proceed, we need to work inside an apptainer container
  • For more information on containers, including how to set up a CentOS7 container for a RHEL9 machine, see the dedicated lesson
  • Set up the required platform: lb-set-platform x86_64_v2-centos7-gcc11-opt.
    • You can check what platforms are available by running lb-run -L Gauss/v56r8
  • Set up Gauss: lb-dev Gauss/v56r8
    • Doing this may produce warnings and info, but this should be ignored.
  • cd ./GaussDev_v56r8
  • Get the DecFiles package for later: git lb-clone-pkg Gen/DecFiles -b Sim10
    • We're specifically checking out the Sim10 branch as we are aiming to have a setup for Sim10. The master branch is built for Sim09!
  • Build it: make

Or simply copy and paste the following lines:

lb-dev Gauss/v56r8
cd ./GaussDev_v56r8
git lb-clone-pkg Gen/DecFiles -b Sim10
make

This configures a build environment for that latest Sim10 version of Gauss.

There is a chance the step creating the dec files repository didn't work on systems outside of lxplus, if this is the case, you may need to run git config --global lb-use.protocol ssh first .

Table of Contents