Find file History
Latest commit 520ce15 Dec 18, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
Exercises Style fix Dec 8, 2017 Update Dec 18, 2017

ROOT Basic Course

This course targets scientists and engineers with little or no experience of ROOT. The basics of the package are covered as well as high level concepts of C++ and Python.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Slides of the Course

You can find the slides of the course here.

Preparation for the Course

Participants of the ROOT basic course need to perform the following preparation actions prior to the course.

Install the ROOT Virtual Machine Image

Participants have at their disposal a virtual machine image where ROOT is installed. With this image, they can instantiate a virtual machine and execute the ROOT examples and exercises that will be shown during the course.

In order to install the ROOT Virtual Machine image in their own machine, participants can follow these steps:

Make sure you can log in to SWAN

SWAN (Service for Web-based ANalysis) is a CERN service that allows interactive edition and execution of ROOT programs from a web browser.

In order to be able to connect and use the SWAN service during the course, participants need to make sure that:


Day 1

1. Introduction

  • What is ROOT?
  • Usage patterns and example applications
  • Structure and elements of ROOT
  • Setting up the exercise environment

2. The C++ Interpreter

  • C++ Crash course
  • The ROOT prompt
  • ROOT as a calculator and notepad for your C++
  • Interpreter commands
  • Macros
  • Exercises

3. Histograms, Graphs and Functions

  • Histograms
  • Graphs
  • Functions
  • Basic interaction with the canvas, plotting, styling
  • Exercises

4. Graphics

  • Creating a nice plot: best practices, axes, legends, styles, colours, markers and fonts
  • Introduction to JSROOT
  • Exercises

5. Fitting

  • Likelihood and Chi2 maximisation
  • Introduction to fitting and common fitting problems
  • Building sophisticated fit functions
  • Interface to Minimization
  • Using the ROOT Fit GUI
  • Random number generation
  • Exercises

Day 2

6. Python Interface

  • Python crash course
  • Mapping C++ to Python with PyROOT: elements of the ROOT Python "bindings"
  • Exercises

7. ROOTBooks

  • Complement the macro, prompt and script approach with a web-based solution
  • Create a nice ROOTBook: best practices, plotting
  • JSROOT in ROOTBooks
  • ROOTBooks at CERN: SWAN service
  • Exercises

8. Working with Files

  • The problem of input and output of data
  • Elements of file structure and format
  • Write and read objects
  • The TBrowser
  • Exercises

9. Working with Columnar Data

  • Two storage options: row- and column-wise
  • TDataFrame: the handle on the ROOT (and not only) columnar data
  • Exercises

10. Developing packages using ROOT

  • Setting up the environment
  • Linking libraries, finding headers: the root-config script
  • Exercises