Coordinators:
Rudi Frühwirth,
HEPHY Vienna |
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 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/ |
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. |
|
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. |
|
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++. |
Assisted by
|
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. |
||
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 :
|