University of Heidelberg

Einführung in die Datenanalyse mit dem C++ Toolkit ROOT
(WS 2023/24)

Diese Kombination aus Vorlesung und Übungen vermittelt einen Einblick in die Grundlagen der computergestützten Datenanalyse. Moderne Analyse Toolkits erlauben die Auswertung physikalischer Daten mit Hilfe vorgefertigter Programme. Trotzdem müssen häufig problembezogene Anpassungen und eine Aufbereitung der Daten vorgenommen werden um diese Werkzeuge nutzen zu können. Dazu eignen sich Programmiersprachen wie C++ besonders gut.

In diesem Kurs werden C++ Kenntnisse vorausgesetzt, wobei die Grundlagen wiederholt werden. Dabei liegt der Schwerpunkt auf den Sprachelementen, die zur Nutzung eines auf C++ basierenden Datenanalyse Toolkits ROOT benötigt werden. Bei diesem Toolkit handelt es sich um frei verfügbare Software, die im Rahmen der Analyse der Large Hadron Collider Daten entwickelt wurde. Es stellt die Funktionalität zur Verfügung, die zum Prozessieren von grossen Datenmengen, zur statistischen Analyse, zur Visualisierung von Daten und der Speicherung notwendig ist. Zur interaktiven Analyse gibt es Interpreter in C++, Python und R. Dank der großen Flexibilität und des offenen, in C++ geschriebenen Quellcodes des Toolkits wird es in zunehmendem Maße ausserhalb der Hochenergiephysik verwendet, wie z.B. der Astrophysik, Biologie und Finanzen.

Sie lernen C++ Programme in einer Unix Umgebung zu schreiben, zu kompilieren und auszuführen, sowie interaktive und kompilierbare Programme in ROOT zu erstellen. Daten werden eingelesen, analysiert, graphisch dargestellt und statistische Methoden, soweit für Analysezwecke notwendig, erläutert. Es werden einfache Beispiele programmiert, um das Potential zu zeigen und Sie sollen in die Lage versetzt werden, kompliziertere Aufgaben zu bearbeiten.

Abhängig von den Vorkentnissen der Gruppe soll auch versucht werden, das Python Interface von ROOT an Hand von ausgewählten Beispielen zu verwenden. Für den Programmteil Maschinelles Lernen sind Python Grundkenntnisse erforderlich.

Kurszeiten

Freitags 14-17 Uhr im CIP Pool des Physikalischen Instituts (INF 226 CIP 1.305)

Zielgruppe

Studenten mit C++ Vorkenntnissen. Zur Vorbereitung dient hier der Kurs: Einführung in die C++ Programmierung, der vor Beginn der Vorlesungszeit als Blockkurs stattfindet.

Der Kurs ist im Bachelor- und Masterstudiengang Physik (Überfachliche Kompetenzen) anrechenbar und bringt 2 Leistungspunkte.

Max Anzahl der Teilnehmer

20 entsprechend der Zahl der Plätze im CIP Pool im Physikalischen Institut (INF226). Eine Voranmeldung zu diesem Kurs ist notwendig und kann ab dem 13.9. (10 Uhr) unter folgendem Link erfolgen.

Ziel

  • Nutzung und Programmierung eines Computers in einer Unix Umgebung
  • Einführung in Datenanalysetechniken unter Verwendung von ROOT
  • Themen

  • Einleitung, Programmierwerkzeuge unter Linux (Editor, shell, Compiler, Linker)
  • Kurze C++ Wiederholung
  • ROOT - ein (interaktives) Datenanalyse Toolkit
  • C++ Interpreter und Compiler in ROOT
  • Pythonintegration mit PyRoot
  • Datenstrukturen und Ein/Ausgabe
  • Auswertung und Darstellung von Messdaten
  • Anpassung von Funktionen (Fit) an Messdaten
  • Statistische Datenanalyse mit rooFIT
  • Multivariate Datenanalyse
  • Einführung Maschinelles Lernen
  • Studierenden Vorträge
  • Programm

    Ein detailliertes Programm und Informationen wird es zu Beginn des Kurses geben (siehe).

    Leistungsnachweis

    Kriterien für einen Leistungsnachweis sind:
  • Anwesenheit und aktive Mitarbeit während des Kurses
  • Hausaufgaben
  • Seminarvortrag
  • ROOT Installation

    Damit Sie mit ROOT die Beispiele ausführen können, wird eine ROOT Installation benötigt. Sie steht im CIP Pool zur Verfügung. Eine weitere Möglichkeit ist die Installation von ROOT auf Ihrem eigenen Computer, der source code ist unter https://root.cern.ch für MacOS X und LINUX zu finden. Bei Interesse wird die Installation im Rahmen des Kurses oder in Zusatzstunden erläutert, gegebenenfalls auf Ihrem Laptop installiert.

    Fragen, Kommentare, Anregungen

    Bitte per mail an Jörg Marks, marks at physi.uni-heidelberg.de
    Webmaster:
    IT Department