What is Gauss?
Learning objective
- Understand how a signal decay sample is produced in the LHCb framework
Gauss is the LHCb simulation framework which manages the creation of simulated events by interfacing to multiple external applications. Most commonly, an event is created via the following procedure:
- The
ProductionTool
(Pythia, GenXicc, ...) generates an event with the required signal parent particle. Either by generating minimum bias events until a matching particle is found or by ensuring one is produced in every event. The resulting event is comprised of either stable particles or unstable particles which are known to either EvtGen or Geant4 and can be decayed. - The parent is decayed using the
DecayTool
(EvtGen) to the desired final state, all remaining unstable particles are decayed independently. - The parent and its decay products might be required to pass generator level cuts implemented as a
CutTool
. - Particles are transported through the detector simulation.
Things to remember
Before looking at the specific commands needed to run the simulation, these points are should be kept in mind:
- The detector simulation is by far the most time consuming step (minutes, compared to seconds for the rest). So make sure your generator cuts remove events you cannot possibly reconstruct or select later on. Additional options are available to increase the speed, please talk to your MC liaisons!
- The generator cuts are only applied to the signal that was forced to decay to the specific final state. Any other true signal candidate is not required to pass. Furthermore, if the signal candidate flies in negative
z
direction, the event is mirrored to optimise the use of available CPU resources. - The number of generated events refers to the number entering step 4 above, so those passing the generator level cuts. Not the number of events produced by the
ProductionTool
in the first step.
Choosing your Gauss Version
Each release of Gauss v56 represents a different release of Sim10. You may want to run an older version of Gauss to verify something in a pre-existing MC dataset or for any number of other reasons. A good overview of the differences between Sim10 versions can be found in the Simulation website. For those of you who want to learn more about what is different between each Gauss release, that can be found on the Gauss GitLab page.
Once in a few years, major Sim versions are released, which involve newer versions of GEANT4, Pythia8 and other software, as well as major fixes to the detector description. Prior to production release, an extensive testing is performed by the Simulation group. The current major release is Sim10, with details being found in the paragraph above. The next major release is Sim11 (Gauss versions above v60) which is currently under validation as of the time of writing. This will be the first release of Gauss based on the Gaussino framework, and will support simulation for Upgrade2. You can read more about it in the official documentation for Gauss v60 and Gaussino.
Whilst these act as guidelines, to find the version of Gauss used for a specific production you can run this command:
lb-dirac dirac-bookkeeping-production-information <prodID>
Here <prodID>
represents your production number, this is a 5 or 6 digit number. If you don't know this, it can be found by using this command1:
lb-dirac dirac-bookkeeping-decays-path <Dec Number>
Here the production ID will be the last number given in each line. Note that you may need to use ProdID-1 for flagged samples or ProdID-2 for filtered samples since the generation, filtering and sprucing are done in different steps.
-
Dec Numbers are explained later in this lesson, but essentially are the 8-digit number assigned to each event type we may be interested in (i.e. which parent and childen using which decay model, their children and their decay model, ...). ↩