CSC2008 Physics Computing Theme

Coordinators:

Rudi Frühwirth, HEPHY Vienna
Ivica Puljak, University of Split (FESB)
 

 

The track will first introduce the fundamental concepts of Physics Computing and will then address two specific aspects of scientific computing: the ROOT Technologies and Experiment Simulation. 

The first series of lectures gives an overview of the software and hardware components required for the processing of the experimental data, from the source - the detector - to the physics analysis. The emphasis is on the concepts, but some implementation details are discussed as well. The key concept is data reduction, both in terms of rate and in terms of information density. The various algorithms used for data reduction, both online and offline, are described. The flow of the real data is the main topic, but the need for and the production of simulated data is discussed as well.

 

The second series of lectures introduces the data analysis framework ROOT, covering all basic parts that are needed for a future LHC data analysis. The lectures will present by example how key requirements like performance, reliability, flexibility, platform independence, ease-of-use, and support for extensions are put into practice. Combined with the accompanying tutorials they will give an overview of the software techniques ROOT brings to life and hands-on experience of using ROOT.

 

The third lecture series concentrates on the GEANT4 toolkit which is a state of the art C++ simulation engine covering virtually all of the requirements for experiment simulation. Basic simulation requirements are explained, such as experimental setup in terms of geometry, materials, and external electromagnetic fields, principles of physics processes, selection and configuration of physics processes, run and event concepts, and generation of measurements. It is shown how this requirements are met by applying GEANT4. The programming language used throughout the lecture series is C++.

 

Glossary of the different acronyms: http://www.gridpp.ac.uk/gas/

Overview

Series

Type

Lecture

Description

Lecturer

     

 

 

General Introduction to Physics Computing

Lectures

Series

General Introduction to Physics Computing

The two lectures give an overview of the software and hardware components required for the processing of the experimental data, from the source - the detector - to the physics analysis. The emphasis is on the concepts, but some implementation details are discussed as well. The key concept is data reduction, both in terms of rate and in terms of information density. The various algorithms used for data reduction, both online and offline, are described. The flow of the real data is the main topic, but the need for and the production of simulated data is discussed as well.

Rudi Frühwirth

Lecture 1

Event filtering

The first lecture deals with the multi-level event filters (triggers) that are used to select the physically interesting events and to bring down the event rate to an acceptable figure. Some examples of the hardware and software that is deployed by the LHC experiments are presented.

Lecture 2

Reconstruction and simulation

The second lecture describes the various stages of event reconstruction, including calibration and alignment. The emphasis is on algorithms and data structures. The need for large amounts of simulated data is explained. The lecture concludes with a brief resume of the principles of physics analysis and the tools that are currently employed.

 

 

 

 

 

ROOT Technologies

Lectures

Lecture 1

Basics

To lay the foundation for the lectures of the coming days, we start by introducing the purpose of ROOT and its primary contexts of use. This will cover e.g. the C++ interpreter CINT and the just-in-time compiler ACLiC.

Axel Naumann

Bertrand Bellenot

Lecture 2

Tree

I/O: The exabytes of LHC data will be saved using ROOT's i/o. We will explain how ROOT persistency is integrated into C++ and the basics of ROOT's storage structure. As things change, modified classes must be taken into account by a mechanism called schema evolution.

Trees 1: One of HEP's most powerful and most commonly used collections is ROOT's TTree. We will explain why in the HEP context they are superior to e.g. STL collections, and which efficiency optimizations they provide for processing data (splitting, data access without library).

Lecture 3

Analysis

Trees 2: Two mechanisms for combining TTrees, friends and chains, will be introduced.

Data Analysis: ROOT is mainly used to analyze data. We will go through the steps of a realistic use case, calculating a trigger's efficiency from triggered data. Combining statistics, fitting, and ROOT we end up with a solution.

PROOF: Even though HEP's data is trivial to parallelize, most code is written linearly. PROOF allows you to run regular ROOT analysis code in a parallel environment. We will show you what it does and how to use it.

Exercises

Exercise 1

We will play with a few example macros, to get a feeling for the pros and cons of compiled versus interpreted mode. We apply the knowledge from the C++ introduction in the lecture to understand how object oriented design can help.

Exercise 2

We will store objects of our own class to a ROOT file and read it back.

Exercise 3

We will create chains of trees; we will create friend trees. We will run a simple analysis on a chain of trees using PROOF to see interactive parallelism in action.

Pre-requisite Knowledge

Mandatory pre-requisite

Install ROOT if you don't have it; start it up.

Create a one-dimensional histogram with 10 bins spanning the range 0..5.

Fill it with the values 4., 4.2, 5.8, 3.8, 4.7, and 2.7.

Draw it.

Fit it with a Gaussian using the default options.

Check that the mean of the fit should is 4.0 - otherwise you've done something wrong.

Desirable pre-requisite

 

and

 

references to further information

If you need to install ROOT, use the recommended version mentioned at:  http://root.cern.ch/root/Availability.html

To learn how to create, fill, draw, and fit histograms look at the User's Guide at: http://root.cern.ch/root/doc/RootDoc.html

chapters "Histograms" and "Fitting Histograms".

To see examples on how to create, fill, draw, and fit histograms look at the macros in $ROOTSYS/tutorials, esp. hsimple.C and fit1.C.

The reference guide for ROOT's histogram base class TH1 is located at : http://root.cern.ch/root/html/TH1.html

 

 

 

 

 

Experiment Simulation

 

Lectures

Lecture 1

Lecture 2

Lecture 3

The lecture gives an overview of the various aspects to be considered in the simulation of of a high energy physics experiment. An elementary introduction to the underlying Monte Carlo method is given. This method is widely used in experiment simulation, but has also many other practical applications.

GEANT4 is introduced as a state of the art C++ simulation engine covering many of the requirements for experiment simulation. GEANT4 is a toolkit for simulating the passage of particles through matter. It includes a complete range of functionality including tracking, geometry, physics models, and hits. The physics processes offered cover a comprehensive range, including electromagnetic, hadronic and optical processes, a large set of long-lived particles, materials and elements, over a wide energy range starting, in some cases, from 250 eV and extending in others to the TeV energy range. It has been designed and constructed to expose the physics models utilised, to handle complex geometries, and to enable its easy adaptation for optimal use in different sets of applications.

Basic simulation requirements are explained, such as experimental setup in terms of geometry, materials, and external electromagnetic fields, principles of physics processes, selection and configuration of physics processes, run and event concepts, and extraction of hit information. It is shown how this requirements are met by applying GEANT4. The programming language used throughout the lecture series is C++.

Martin Liendl

Assisted by

Aatos Heikkinen

 

Exercises

Exercise 1

Exercise 2

Exercise 3

The corresponding exercises will focus on detector description, physics processes selection and tuning, and data extraction from a running simulation. Basic knowledge of C++ is required to work on the provided code examples.
Depending on their study backgrounds and personal interests, students will have the possibility to work on various exercises split into two topic sets, one related to the physics aspects of simulation, the other related to  more general computing  topics such as modelling of 3D geometries, verification thereof, data extraction and storage.
Some exercises will use the Root toolkit for data analysis.

Prerequisite Knowledge

Desirable prerequisite

 

and

 references to further information

In order to benefit optimally from the lectures and the associated programming exercises, it is advisable to have some basic knowledge about the following topics :

  • Probability theory: definition of probability, discrete and continuous random variables, probability density and cumulative distribution, sampling from of a distribution

  • Data analysis: mean and variance of a data set, histograms

    • Mean values and variances will be computed in the exercises, histograms will be our elementary analysis tools.

    • Suggestion of links: same as above, wikipedia(histograms)

  • Object-oriented software development: UML class diagrams to represent classes, inheritance (is a – relationship, polymorphism, abstract classes), associations between classes (has a – relationship)

    • The design of GEANT4 is object-oriented. To understand its object model and its extensibility, we need to know the basics of object orientation.

    • Suggestion of links: wkipedia(class diagrams)

  • C++ programming language, some easy concepts of STL like vector<something>, map<key, value>

  • Elementary knowledge of the usage of some Linux/Unix tools like a shell, cd, ls. Standard editors like (x)emacs, nedit.. Knowledge about the GNU C++ compiler, make and debugging C++ on LIinux is an advantage.

    • All exercises consist of writing, building, and executing C++ simulation programs using the GEANT4 tool kit.