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: B
s → 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.
Talks
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
.
Prerequisites
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?
Exercises
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