Home Computing DAQ E-mail Notes Meetings Subsystems Search

This page last edited by JPP on November 17, 2006 .

DaVinci is the OO-based (physics) analysis software for the LHCb experiment, based on the Gaudi framework

This page is obsolete and no longer maintained.

The new address for the DaVinci documentation is:


DaVinci is organized as a CMT project containing an application package, also called DaVinci. The  component packages that are combined to produce the application come from the Phys and Rec projects. Follow the link in the doxygen pages to access these projects. All projects are based on the Gaudi framework and LHCb core packages.

Avaiable versions (in $LHCBRELEASES/DAVINCI)

Doxygen code documentation, release notes, requirements, distribution kits

DaVinci Version

Compatible Data

Release Date

Notes (click on the version number for full details)

DC06 development versions
v17r4 DC06 sim files. DST and rDST files from Brunel v30r10 or higher Oct 5 2006  

Development version for physics validation. Supercedes v17r2.

Based on Phys v4r3, Rec v3r12, Lbcom v5r7, LHCb v21r10 and Gaudi v18r9


  • First DC06 implementations of DecayChainNTuple (J. Nardulli).
  • First DC06 implementation of FlavourTagging package (M. Musy).
  • First DC06 implementation of BackgrountCategory (V. Gligorov).
  • New package Phys/PhysDict with Reflex dictionary for DaVinciKernel and DaVinciMCKernel interfaces (J. Palacios)
  • Fix to DaVinciAssociators reverse association.
  • Many important bug fixes.
  • Small changes to solve Win32 and SLC4 compilation problems.

See Phys v4r2 and v4r3 release notes for more details.

There is a doxygen todo list here.


v17r2 DC06 sim files. DST and rDST files from Brunel v30r9 or higher Oct 5 2006  

Development version for initial physics validation. Supercedes v17r1.

Based on Phys v4r1, Rec v3r10, Lbcom v5r5, LHCb v21r8 and Gaudi v18r7


  • New Particle -> PV association. Widely used in DaVinciFilter filter criteria tools
  • New ParticleTransporter for composite and neutral particles
  • Fixes to vertex fitters and MakeResonances
  • DVAlgorithm tool implementations now accessible from job options by name
  • LoKi reinstated
  • Photon, pi0, merged pi0, electron bremmstrahlung correction in ParticleMakers
  • Various fixes and restored functionality. See Phys v4r1 release notes for more details


There is a doxygen todo list here.


v17r1 DC06 sim files. DST and rDST files from Brunel v30r6 or higher Aug 4 2006  

Development version with new vertex classes

Based on Phys v4r0, Rec v3r6, Lbcom v5r3, LHCb v21r3 and Gaudi v18r6


  • New vertex classes (not backwards-compatible)
  • Benefits from new Gaudi job options service
  • CommonParticles translated to new ProtoParticle filtering scheme
  • Most pre-selections running but untested
  • LoKi temporarilly removed until adapted to new vertex classes
  • See Phys v4r0 release notes for more details

The status of the packages is described in this wiki page.


There is a doxygen todo list here.


v16r2 DC06 sim, DST and rDST files July 7 2006  

DC06 version for development and testing of DC06 pre-selections

Based on Phys v3r2, Rec v3r5, Lbcom v5r2, LHCb v21r2 and Gaudi v18r5


  • New ParticleMakers
  • Fully functional VertexFit
  • New DaVinciAssociators
  • CommonParticles

New options files

  • $DAVINCIROOT/options/TestDC06CommonParticles.opts runs on a Brunel v30r4 and makes standard particles, producing some monitoring plots.
  • $DAVINCIROOT/options/DVDC06StripETCRandom.opts runs on a Brunel v30r4 rDST and makes some stable particles using CommonParticles, randomly selects some events using the RandomEventFilter algorithm, and writes an event tag collection (ETC).

The status of the packages is described in this wiki page.


There is a doxygen todo list here.


16r1 DC06 sim files May 30 2006


Updated DC06 version


Based on Phys v3r1, Rec v3r3, Lbcom v5r0, LHCb v21r0, Gaudi v18r4.

There is a very limited set of packages available and no Brunel-output data. These versions are essentially there to allow developers to compile their packages against DC06 software.

The only options file:

  • $DAVINCIROOT/options/DVDC06MCParticlemaker.opts runs on Gauss events and calls the MCParticleMaker to produce Particles. Then some test algorithms are called.

The status of the packages is described in this wiki page.


There is a doxygen todo list here.


Stay tuned...

v16r0 DC06 sim files March 29 2006

First DC06 version


Based on Phys v3r0, No Rec, Lbcom v4r1, LHCb v20r1, Gaudi v18r2.

Development version able to read RTTC data
v15r0 RTTC data 26 Jan 2006


Development version for trigger studies with new track event model


Based on Phys v2r0, Rec v2r2, Lbcom v3r2, LHCb v19r3, Gaudi v17r2.


This version is able to read RTTC data and contains the new track event model. Unsuitable for physics analyses as the ProtoParticle making is confused between Track and TrStoredTrack. Works fine for trigger.

Incorporates developments on physics software already released in DaVinci v12r15 for DC04 data.

RTTC-compatible development versions

All physics and HLT packages are in Phys, all reconstruction and trigger packages are now in Rec. Have a look at these transparencies for some details. Users are not affected. Still just do "DaVinciEnv". The rest follows.

v14r5 RTTC data 10 Nov 2005

Final RTTC version


Based on Phys v1r5, Rec v1r5, Lbcom v2r5, LHCb v18r9, Gaudi v16r5.

Incorporates developments on physics software already released in DaVinci v12r14 for DC04 data.

v14r4 RTTC data 26 Jul 2005

RTTC legacy version

DC04 versions
v12r18 DC04 data May 30 2006  

DC06 preselections test version:

Main modifications:

  • CommonParticles: Many more "standard" particles are provided on-demand. See option files for details.
  • All physics selections rewritten.
  • Tagging updated.

See the release notes for details.

v12r17 DC04 data Saint-Patrick's Day 2006 DC06 preselections preparation version:
v12r16 DC04 data 6 February 2006 DC04v2 re-stripping version
v12r14 DC04 data 19 October 2005 Updated DC04 release based on new LHCb and Gaudi. Used for "Tagging Stripping".
Obsolete versions:

Fields in RED indicate versions that will be removed. Please switch to the latest version compatible with the data type you are analyzing (indicated in gray). Users of versions in PINK are also encouraged to upgrade.

Production versions:

Fields in PINK indicate production versions. They are used in the stripping and kept for reference. Users are encouraged to use the latest releases.


Details relative to all released versions including those no longer supported can be found here.

Supported platforms and compilers

DaVinci is currently supported on Linux SLC3 with gcc 3.2.3 and windows with VC7.


How-to and Documentation

Getting started Tutorial DaVinci Tutorial. Refers to version v12 for DC04 and v16 for DC06
Getting Started The very basic steps
Reference Guide Commented links to the doxygen documentation.
FAQ The DaVinci Troubleshooting Guide. A living document.
CMT / getpack:

Quick get the package/control the application (under CMT projects).

Windows How to use DaVinci under windows (including the terminal server)
LoKi Get the documentation from CERN documentation server or getpack the Doc/LoKiDoc package.
Migration to DC06

The status of the packages is described in this wiki page.


There is a doxygen todo list here.


Have a look at the DC04 page.


Particle Makers Global Particle ID Twiki page
Particle maker: How to use and  more info on CombinedParticleMaker.
KS: How to run the new KS algorithm with all type of tracks.
p0 and g->ee p0 and g->ee are also made in the Phys/CommonParticles package.
K*, f, D0, D*, J/y... Many standard intermediate state particles are provided in Phys/CommonParticles. Have a look here.
Any other: Don't waste time writing new selection algorithms. Use the standard tools starting from MakeResonances and FilterDesktop. Have a look at the "DaVinci for Busy People" Tutorial or the note.
Flavour Tagging The Twiki page of the Flavour Tagging Working Group provides a how-to.
MC truth Associators: DaVinciAssociators User Guide. NEW!
See also the DaVinci Tutorial.
Efficiency: How to configure the Efficiency algorithm and definition of reconstructible/reconstructed.
Trigger L0 and L1 To retrieve the L0 and L1 decisions, use the TrgDecision class. Note that this is not filled at start-up of DaVinci. The L1 decision is presently not stored on DST. You need to re-run the L1 trigger.
HLT Have a look at the HLT page or the HLT Design note.
Reference Particle codes: All known particle names and PDG id numbers can be found in $PARAMFILESROOT/data/ParticleTable.txt
Code optimization: How to make your code more efficient.
Responsibilities: Who is responsible for which package.

To facilitate discussion and sharing of information a mailing list is available (previous mail exchanges can be accessed via its archive). To subscribe to the mailing list send a request to the LHCb secretariat.

DaVinci issues, depending on the topics, can be discussed in the LHCb Tuesday Meetings (Phone and video conference available), the Monday afternoon Reconstruction Meeting (Phone and video conference available) or the Wednesday morning Core-Software Meeting (Phone conference available).


        Future Releases

Next expected versions

  • v12r18 - sometime in April.

  • v16r3 - With LHCb v21r3. Expect to have fully de-bugged CommonParticles and new Vertex/PrimVertex classes

DaVinci releases are 3-weekly in average. Code for inclusion should be sent to the application coordinator.

People developing specific physics analysis will also develop algorithms and tools of general utility. These should be included in the DaVinci libraries and made available to others in the experiment.