Scientific Computing in High-Energy Physics
PH2286 is a semester module in English language at Master’s level which is offered in summer semester.
This module description is valid from SS 2019 to WS 2019/20.
If not stated otherwise for export to a non-physics program the student workload is given in the following table.
Responsible coordinator of the module PH2286 is Ante Bilandzic.
Content, Learning Outcome and Preconditions
The module will give an introduction to the core data analysis tools and techniques which are used in experimental high-energy physics. Typically, analysis of data in high-energy physics is characterized nowadays 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 files is necessary. By combining the functionalities of Linux, Bash, and ROOT, this can be achieved, and physics observables of interest can be extracted quickly from available large datasets.
This module covers the most important aspects of the Linux operating system, scripting with Bash programming language, and ROOT analysis framework, putting always an emphasis on real-case scenarios of their usage as encountered in high-energy physics. 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 an object-oriented framework written mostly in C++ and developed by physicists at CERN, with the specific aim for high-energy physics. All major collaborations in this field worldwide (e.g. ALICE, ATLAS, CMS at LHC, STAR at RHIC, CBM at FAIR, etc.) use ROOT.
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 can:
- 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
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.