Skip to content

gabriele-sirri/statistical-data-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

106 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Statistical Data Analysis for Nuclear and Subnuclear Physics
Module 3

📄 Course Program and live sessions A.Y 2025/2025

This repository contains the materials for Module 3 of the Statistical Data Analysis for Nuclear and Subnuclear Physics course, part of the Master’s Degree in Physics at the University of Bologna.

Repository Structure

statistical-data-analysis/
│
├── classes/              → Live coding sessions from the classes
│ └── 2025/               → Materials for the 2025/26 academic year
│ 
├── data/                 → Datasets used for exercises 
│
├── docs/                 → Documentation and reference material
│ ├── howto/              → Practical guides (ROOT installation)
│ └── teaching_material/  → Slides and lecture material
│
├── templates/            → Analysis templates or notebook skeletons
│
└── exercises/            → Exercises organized by lesson or topic

Table of Contents


Course Overview

The module focuses on selected statistical analysis cases in High Energy Physics (HEP), using RooFit and RooStats as the main tools.

Key Topics

Area Tools / Concepts
Data Modeling RooFit
Statistical Analysis RooStats
Multivariate Analysis TMVA
Unfolding Techniques RooUnfold

Course Structure

  • 4 hands-on lab sessions
    • Each session begins with a short lecture (with slides)
    • Followed by guided exercises or project work
  • Assignments must be completed and submitted via Virtuale before the exam
  • Exercises are perfomed using PyROOT or C++ code

Submission of all assignments is mandatory to access the exam

  • Computer Lab Setup
    You can choose between two options:
    1. Personal Laptop (with ROOT installed and RooFit/RooStats/TMVA)
    2. Lab workstations (Windows machines accessible via UNIBO credentials)

Assessment

The final exam is joint between Modules 1, 2, and 3 and includes:

  1. Theory questions
  2. One practical exercise
  3. One question based on lab work (e.g., code analysis or commentary)

Eligibility: All assignments must be submitted before the exam.

Teaching Materials

Available on:

  • Virtuale (UNIBO): slides, assignments
  • GitHub: installation guides, examples, templates

Prerequisites

Students enrolling in this course are expected to have familiarity with basic concepts in statistics and programming, as well as with the ROOT Framework for data analysis and visualization.

Recommended Skills

Both C++ and Python users are welcome in this course. All students should be comfortable using ROOT to load and execute macros or run jupyter notebooks.

For C++ Users

  • Familiarity with C++ syntax and concepts. You will not be required to compile code
  • Ability to run C++ macros within the ROOT environment and manage ROOT files.

For Python Users

  • Familiarity with Python and Jupyter Notebooks.
  • Ability to use ROOT via PyROOT.

Preparation Before Laboratory Sessions

Before attending the lab sessions, students are expected to:

  1. Review the ROOT Primer.
  2. Read the following sections from Practical Statistics for the LHC:
    • Introduction
    • Conceptual Blocks for Modeling
  3. Refresh their programming fundamentals:
    • C++ Users: namespaces, classes, inheritance, pointers vs. references.
    • Python Users: Python syntax, Jupyter workflows, and ROOT integration.

Computing Environment

  • Required software: ROOT, Jupyter, Visual Studio Code (recommended)

  • Reference system:
    Linux Ubuntu 24.04 (Windows Subsystem for Linux WSL 2 on Windows)
    same setup as the university lab machines.

    📄 Installation guide:
    WSL Setup Guide with ROOT, Jupyter, and VS Code (Ubuntu 24.04)

  • Other options
    Native Linux / macOS / Windows setups are also suitable
    provided the required software tools are properly installed.

  • Cloud-based alternatives
    If you can't install ROOT locally, you can use one of the following cloud-based environments to run ROOT and notebooks directly in your browser.

    • ROOT on Colab
      Run ROOT interactively on Google Colab, with optional persistent storage through your Google Drive or github. Sessions are time-limited (typically up to 12 hours) and may disconnect after periods of inactivity.
    • ROOT on Binder
      Launch ROOT notebooks in a temporary Binder environment without any local setup.
      No account or installation is required, but all work is non-persistent (data is lost after the session ends unless you manually download or export your notebooks).

Testing Your Installation

To check that ROOT and its extensions are correctly installed:

# python
import ROOT
w = ROOT.RooWorkspace()       # Expected output: RooFit v3.xx -- Developed by ...
t = ROOT.TMVA.TMVAGui()       # Expected error: file TMVA.root does not exist
// C++
$ root
root [0] RooWorkspace w()      // Expected output: RooFit v3.xx -- Developed by ...
root [1] TMVA::TMVAGui()       // Expected error: file TMVA.root does not exist

Documentation

ROOT and Related Resources

ROOT

RooFit

RooStats

Linux Resources

To get familiar with Linux and the command line, refer to this comprehensive tutorial:

Further Reading on C++

💡 Learn and apply Modern C++ (C++11 / C++14 / C++17 / C++20)


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors