|
|
|
|
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.
|
|
|