LHCb DaVinci Tutorial

This hands on tutorial should be followed by all newcomers to the LHCb physics analysis software. The purpose of these exercises is to allow you to write a complete though simple selection algorithms for a typical decay: Bs → J/ψφ. The exercises covers the following topics:

It is assumed that you are familiar with the basic tutorial. You are also invited to register to the lhcb-davinci and lhcb-distributed-analysis mailing lists.

The basic part of this tutorial has last been tested with DaVinci v33r7 release candidate (meaning it was not yet out) and Tutorial/Analysis v10r6. Important message: PLEASE REPORT ANY MISTAKES. Unfortunately we cannot guarantee that all tutorials always work out of the box.


There are talks covering the tutorials. Use the latest version if available.

  • 21 October 2013 PPTS: Two talks about Decay Finders and BackgroundCategory (relates to Tutorial 6): Agenda.
  • October 2012 Analysis Week. Covers Tutorials 0 and 8: Agenda.
  • April 2012 Analysis Week. Covers uDST and RooStats: Agenda.
  • March 2011 LHCb week. Covers Tutorials 0 and 8: Agenda.
  • January 2011 UK Software Course. Agenda.
  • December 2010 LHCb week. Covers Tutorials 0 and 8: Agenda.
  • October 2010 LHCb week. Covers Tutorials 0 and 8: Agenda.
  • February 2010 Software week. Covers Tutorials 0 and 4 (DaVinci v24r7p3): Agenda.
  • January 2010 Cambridge Tutorial : Overview of LHCb Software, primarily aimed at analysis (DaVinci v24r7, Ganga and Python). Agenda.
  • October 2009 Software Week Tutorial. Covers tutorial 1 and an introduction to the DaVinci configurable with DaVinci v22r1 . Agenda.


You will need to be familiar both with C++ and python. After that you will need to do AT LEAST the following tutorials before starting the DaVinci tutorial.

It would be very beneficial if before attending the DaVinci tutorials you have tried the GaudiPython python pre-requisites exercises

Pop Quiz:

If you know the following concepts you should be OK in this tutorial:

  • What is a pure virtual baseclass in C++?
  • How can you loop over a dictionary in Python?
  • What does CMT stand for?
  • What will SetupProject --build-env do for any project?
  • How do you set the OutputLevel for a GaudiAlgorithm?
  • If you have a checked out project how do you build it?
  • What is Dirac, and what does CMTCONFIG=x86_64-slc5-gcc43-opt mean?
  • How can you resubmit all failed subjobs in Ganga?


There are many exercises available all based on the Tutorial/Analysis package. Latest version is v10r6 (for DaVinci v33r7). The excercises are divided into a fast-track Introductory set, and an Advanced set if you wish to see and program the C++.

Getting Started:

Getting your hands dirty:
  • DaVinciTutorial8 : Introduction: Run on a stripped DST (uses some of 6, but not 4).
  • DaVinciTutorial6 : Introduction: Fill an NTuple with MC truth, tagging and trigger info (requires 4 or 8, not 5).
  • DaVinciTutorial7 : Advanced: DecayTreeTuple (requires 6).
  • DaVinciTutorial4 : Introduction: write a full Bs->J/psi Phi selection chain using the selection "framework" and no C++.
  • DaVinciTutorial5 : Introduction: Use some debugging tools (requires 4).
  • DaVinciTutorial9 : Introduction: Use the Dictionary Tools to add a multivariate classifier to your selection (requires 4).
  • DaVinciTutorial9a: Advanced: Adding a custom multivariate algorithm to the MVADictTools. (requires 9)
  • DaVinciTutorial9b: Advanced: Applying arbitrary functors to a kinematically refitted decay tree. (requires 9)
  • DaVinciTutorial1 : Advanced: write a simple algorithm looping over all muons and filling some plots.
  • DaVinciTutorial2 : Advanced: extend the algorithm to make a J/psi in C++ (requires 1).
    • Do this exercise if you plan to reconstruct a decay chain writing your own C++ code. The recommended way of doing this is explained in 4.
  • DaVinciTutorial3 : Advanced: extend the algorithm to be able to also make Phi's (requires 2). A bit more about C++.
We recommend you start with DaVinciTutorial0, followed by DaVinciTutorial0p5 to learn ganga. Then go to DaVinciTutorial8 as this is most likely what you'll need first.

Related additional tutorials:

And Finally

More interactive Tutorials

-- PatrickKoppenburg - 22 Sep 2007 - 12 Jan 2009 -- PatrickSKoppenburg - 30-Sep-2013
Edit | Attach | Watch | Print version | History: r72 < r71 < r70 < r69 < r68 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r72 - 2016-03-14 - SebastianNeubert
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

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