DevelopKit logo

DevelopKit

This is the LHCb DevelopKit, a workshop/lesson series covering development in LHCb software, focused on the upgrade for Run 3.

If you have any problems or questions, you can send an email to lhcb-starterkit@cern.ch.

Prerequisites

You should have completed StarterKit, and optionally ImpactKit. Before starting, you should have lesson series 1 completed, as they deal with setup, and take a fair amount of time. Select one that best suits your development environment; for upgrade work, you will want a complete environment.

Topics

  1. Setting up a local LHCb environment
    1. CernVM
    2. Docker
    3. SLC6 (needs volenteer)
    4. Setting up a development environment for minor changes
    5. Setting up a development environment completely
    6. Building LHCb software (partial)
    7. Testing and examples in LHCb (new)
  2. Introduction to Gaudi
    1. Hello World in the Gaudi Framework
    2. Intro to the Gaudi Framework
    3. Intro to Conditions (needs volenteer)
    4. Detector Description (needs volenteer)
  3. Frameworks in the update
    1. The Gaudi Framework
    2. Upgrading Algorithms
    3. Tesla/Turbo (needs volenteer)
    4. Ganga (needs volenteer)
    5. Dirac (needs volenteer)
    6. DaVinci (needs volenteer)
  4. Design
    1. The event model (in progress)
    2. Designing a (functional) algorithm (in progress)
  5. New features in C++
    1. C++11
    2. C++14
    3. C++17
    4. C++ Future
  6. General topics
    1. C++ performance
    2. Python in the upgrade era

Schedule

00:00 Setting up a local LHCb environment - CernVM Do you want a portable, local install?
02:00 Setting up a local LHCb environment - Docker Do you want a integrated local install?
02:25 Setting up a local LHCb environment - Scientific Linux 6 Do you already have an SL6 system or VM?
04:25 Setup Simple Can you set up an incremental build?
04:45 Setup Complete Can you run LHCb software from scratch?
06:05 Building LHCb software How are LHCb builds structured?
06:25 Running and testing How to I work with testing?
06:55 Hello World in the Gaudi Framework How do I make a simple Gaudi program?
07:45 Intro to the Gaudi framework What does Gaudi do?
08:35 Using Conditions What are conditions?
09:25 Detector description How is the detector description used?
10:15 The Gaudi framework Why is Gaudi used?
12:15 Upgrading an Algorithm What is the procedure for convering an algorithm?
13:05 The Tesla framework Why is Tesla used?
15:05 The Ganga application Why is Ganga used?
17:05 The Dirac framework Why is Dirac used?
19:05 The DaVinci framework Why is DaVinci used?
21:05 The Event Model What might the new event model look like?
23:05 The New Algorithms What does a new algorithm look like?
25:05 New features in C++11 for LHCb Physicists What can I use from the improvements C++ in 2011?
25:25 New features in C++14 for LHCb Physicists What can I use from the improvements C++ in 2014?
25:45 New features in C++17 for LHCb Physicists What can I use from the improvements C++ in 2017?
26:05 New features in the distant future for LHCb Physicists What can I use from the improvements C++ in 2020+?
26:20 C++ Performance How do I write fast code?
26:50 Python in the upgrade era What are some good resources for transitioning to Python 3?
27:10 Finish