Computing and Software

Links to Topics:

Simulation Digitization Reconstruction CondDB EOS
WinCC Usage BGV Offline Analysis


The BGV computing model provides the means to simulate, reconstruct and analyse beam-gas interactions for the BGV. The geometry description includes both the detector and other relevant system components (vacuum chambers, supports, infrastructure).

The BGV computing model is based on the LHCb computing framework (Gaudi). The advantages of this approach are the comprehensive capabilities and flexibility of Gaudi. The disadvantages are the added complexity and overhead for the contributors not familiar with Gaudi.

The aim is to stay as close as possible to what is done in LHCb, both online and offline and use as much as possible the existing approaches, algorithms and configuration examples.

Things copied from the VELO:

  • Raw data format (the same TELL1 algorithms will be used on the real BGV data)
  • Event Model classes for ChannelID, LiteCluster and Cluster
  • Raw bank encoding and decoding algorithms
  • Clusterization algorithm

Things copied from the LHCb SciFi:

The BGV pattern recognition can profit from the existing LHCb T-station, VELO and SciFi algorithms

  • The plan is to use the same reconstruction algorithms online and offline
  • The development progress can be found on the SW Reconstruction page

Introduction to the LHCb Software

There are plenty of twiki pages documenting the LHCb SW. Here, an attempt is made to select a few topics/links that are most relevant to the typical usage of the BGV SW. Still, the information is quite comprehensive, and attention should be paid only to certain sections. Some of the links below are suitable as a reference and in-depth description of components of the framework and the various ways to use them.

From the LHCb FAQ Web:

LHCb.LHCbGettingStartedWiki The essential terms
LHCb.FAQ.RunTimeEnv How to configure the run-time environment for an application
LHCb.InstallAreaWiki Working with CMT install areas. Only the first 2 sections are relevant
LHCb.FAQ.GaussFAQ Gauss -- the event generation/simulation application
LHCb.PanoRamixWiki Panoramix -- event display and more
LHCb.GaudiPython Run GaudiPython jobs (useful for prototyping and quick studies)
LHCb.CondDBHowTo Conditions Database How-To
LHCb.FAQ.LHCbFAQ General questions for the LHCb software. Examples of using some of the many capabilities of Gaudi
LHCb.CodeAnalysisTools Variety of code profiling and debugging tools
LHCb.FAQ.CMakeFAQ Usage of cmake instead of cmt (as of June 2015 the BGV SW is still using cmt)

From the Main LHCb Computing page:

LHCb.LHCbComputing: Software_training_FAQs Software Training tutorials (the first 2 might be useful) and FAQ web (see the table above)
LHCb.LHCbComputing: Software_development_environment Guidelines for writing code and other (mostly irrelevant to BGV) topics
LHCb.LHCbComputing: Simulation_Reconstruction_and_Al Overviews of Simulation, Tracking, Vertexing and Alignment in LHCb
LHCb.CondDBPages Main page of the LHCb Conditions Database. Contains links to a nice overview ( LHCb.FAQCondDB) and the LHCb.CondDBHowTo also given in the table above

Running the BGV Software

A dedicated BGV project folder is available on AFS: /afs/
The intended approach is the following:

  • Use the LHCb Gaudi projects as released by LHCb on AFS
    • A “private” BGV installation is also possible as described here
  • Get the BGV packages from BGV svn (head or tags)
    • Compile in dedicated folders in the BGV afs tree, or privately, in ~/cmtuser
  • Define the commands needed to setup the environment for compiling and running the SW

These slides provide description and instructions how to setup the BGV SW environment. Running a job is identical to LHCb ( for option files, and python for GaudiPython scripts).

Prior to June 2015, the development of the BGV SW was taking place in a user folder on AFS. The relevant instructions (not maintained anymore) were moved to this page.
Prior to July 2017, the development of the BGV SW was taking place in the project folder on AFS. The relevant instructions (not maintained anymore) were moved to this page.

Target To run or develop the BGV SW:

  • Login to LXPLUS
  • Setup the BGV environment:
    • source /afs/
    • SetBGVEnv vXrY       (use SetBGVEnv -l to list the existing BGV release versions)
      • The call of this script results into defining the environment variables $BGVSim, $BGVDigi, $BGVRec, and $BGVRELEASE. The first three expand to (for example) Boole v29r6. The last one expands to (for example) --user-area /afs/ The values of these variables are determined by the argument vXrY
  • Setup the LHCb environment:
    • Use the standard LHCb statements: SetupProject for running a job, or setenvProject for compiling code
    • E.g. SetupProject $BGVDigi $BGVRELEASE
    • Use the argument $BGVRELEASE if you want to run a job using a BGV SW release in /afs/ These releases are installed by a "BGV release manager" for common usage. If you don't give this argument, the $User_release_area will be used (by default = ~/cmtuser)
    • For code development, use your own location (e.g. ~/cmtuser), i.e. a statement like setenvProject $BGVRec ( without $BGVRELEASE )
  • Run your or GaudiPython job
    • Standard job options can be found in the options directory in some of the BGV packages. For further instructions and examples, look at the dedicated Simulation, Digitization and Reconstruction topics

Location of the Software Elements

The following locations will be used for storing and sharing the BGV software:

  • BGV project space on eos: /eos/project/l/lhcbgv
    • contains data, scripts and some user analysis folders
  • BGV GIT Repository:
  • BGV project space on afs: /afs/
    • Replaces the previously used folder /afs/
    • Info about access rights and administration can be found here

  • BGV SVN Repository: (not updated anymore, all moved to gitlab, only left here for reference)
    • General description and usage guidelines: BGV SVN

  • Geometry description: package XmlDDDB/DDDB ( see on gitlab)

  • Data files and Monitoring histograms:
    • The official repository for the BGV detector data (.raw, .digi etc files) and data simulated with Gauss/Gaudi is the BGV EOS space
    • It is planned to keep small data samples (~10^5 events) and monitoring histograms in /afs/ as a reference for the different BGV SW releases

  • Job options and GaudiPython scripts (examples):
    • Can be found in the options directory in some of the BGV packages. For further instructions and examples, look at the dedicated SWSim, SWDigi and SWRec topics
    • Other old and not-maintained examples can be found here: /afs/ (for usage, see the related instructions)

Installing the BGV Software

Private/independent installation of the LHCb software can be made following the official LHCb instructions. Currently (June 2015), there is only one officially supported platform: x86_64-slc6-gcc48-opt. In practical terms, it means you need SLC6.

It is possible to install OLD SLC5 releases (deprecated since 2013) on Ubuntu 12:

  • possible to use the pre-compiled binaries (the "-b" option)
  • In order to be able to compile the code (e.g. when a package is modified). Follow the instructions given here.

The BGV packages can be obtained from the BGV SVN repository given above. The compilation is like in LHCb (currently using cmt, cmake not tested).


The ToyMC is a standalone python application used in the initial BGV design (simulation) studies. It is described on a separate page.

Edit | Attach | Watch | Print version | History: r37 < r36 < r35 < r34 < r33 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r37 - 2017-09-12 - AndreasAlexopoulos
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    BGV All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright &© 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback