Scientific Computing in High-Energy Physics
This module handbook serves to describe contents, learning outcome, methods and examination type as well as linking to current dates for courses and module examination in the respective sections.
PH2286 is a semester module in English language at which is offered in summer semester.
This Module is included in the following catalogues within the study programs in physics.
- Specific catalogue of special courses for nuclear, particle, and astrophysics
- Complementary catalogue of special courses for condensed matter physics
- Complementary catalogue of special courses for Biophysics
- Complementary catalogue of special courses for Applied and Engineering Physics
If not stated otherwise for export to a non-physics program the student workload is given in the following table.
|Total workload||Contact hours||Credits (ECTS)|
|150 h||30 h||5 CP|
Responsible coordinator of the module PH2286 is Ante Bilandzic.
Content, Learning Outcome and Preconditions
The module will give an introduction to the core tools and techniques for the analysis of experimental data in high-energy physics. Typically, such analyses are characterized both by large datasets and by large computing facilities (e.g. at experiments at CERN's Large Hadron Collider), for which the stability and parallelization of running analysis jobs, automated operation of various tasks, and efficient compression of large data is necessary. By combining the functionalities of Linux, Bash, and ROOT, this can be achieved.
This module introduces the Linux operating system, scripting with Bash programming language, and ROOT. Linux is the default operating system used in high-energy physics due to its high performance in computing, security and free and open-source nature. Bash is by far the most popular shell on Linux platforms and its knowledge is essential for a physicist in order to use Linux. In addition, Bash can be used to automate with scripts all repetitive programming tasks encountered in data analysis. Finally, ROOT is object-oriented framework written mostly in C++ and developed at CERN, with the specific aim at high-energy physics. All major collaborations in this field worldwide (e.g. ALICE, ATLAS, CMS at LHC, STAR at RHIC, etc.) use ROOT.
The topics to be covered include:
- Linux: filesystem hierarchy and file manipulation, handling processes and jobs, frequently used commands;
- Bash: shell environment, variables, string manipulation, built-in commands, aliases, functions, conditional statements, loops, command substitution, command chain, test constructs, piping, redirections, code blocks, subshells, process substitution, brace expansion, regular expressions, here-strings and here-documents, etc.;
- ROOT: using ROOT GUI, plotting, histogramming, fitting, trees, etc.
All covered Linux, Bash and ROOT functionalities will be supported with concrete examples of their usage in high-energy physics.
After successful completion of the module the students are able to:
- use the Linux operating system at an advanced level and perform on it all tasks typically encountered by experimental physicists;
- master in-depth the shell scripting, terminal control, and task automation with Bash programming language;
- use the most important ROOT functionalities (e.g. sampling, histogramming, plotting, fitting, data storage, file merging, etc.).
These three aspects are among the most important core skills required nowadays for high-energy experimental physicists, doing large scale data analysis for instance in experiments at CERN's Large Hadron Collider.
No preconditions in addition to the requirements for the Master’s program in Physics.
Courses, Learning and Teaching Methods and Literature
Courses and Schedule
|VI||2||Scientific Computing in High-Energy Physics||Bilandzic, A.||
Thu, 14:00–16:00, PH 2024
and singular or moved dates
Learning and Teaching Methods
The content of the lecture is delivered through the presentation, assuming no prior knowledge on the subject. During each lecture, the newly introduced programming concepts will be demonstrated on a computer by the lecturer.
In total there will be 12 days of lectures, each lecture lasting 2x45min.
Presentation projected from the laptop. Blackboard for additional clarifications. Summary of each lecture, including integrated code snippets with exercises, in .html format.
- Mendel Cooper: "Advanced Bash-Scripting Guide" (http://tldp.org/LDP/abs/abs-guide.pdf)
- Cameron Newham and Bill Rosenblatt, 'Learning the bash Shell: Unix Shell Programming (In a Nutshell (O'Reilly))'
- ROOT User's Guide (https://root.cern.ch/root/htmldoc/guides/users-guide/ROOTUsersGuide.html)
Description of exams and course work
The achievement of the competencies given in section learning outcome is tested exemplarily at least to the given cognition level using presentations independently prepared by the students. The exam of 25 minutes consists of the presentation and a subsequent discussion.
For example an assignment in the exam might be:
- Develop a Bash script which will automate all stages (job submission, re-submission of failed jobs, quality assurance of output files, the final merging of output files, etc.) for a given Linux process
- Develop a Bash script which will automate common maintenance tasks on a Linux machine
- Set up from scratch a Monte Carlo simulation in ROOT for some physical observable of interest
There will be a bonus (one intermediate stepping of "0,3" to the better grade) on passed module exams (4,3 is not upgraded to 4,0). The bonus is applicable to the exam period directly following the lecture period (not to the exam repetition) and subject to the condition that the student passes the mid-term of successfully completing 75% of the homework problems.
The exam may be repeated at the end of the semester.