FNAL Programming Reconstruction Software for Large Computing Projects Course Twiki¶
Brief description of the TWiki and course description¶
This TWiki describes and contains materials for a course on programing reconstruction software for large computing projects. The course is intended for graduate students and starting postdocs who have programming experience but have not developed software within the framework of a large computing project. The course focuses on programing reconstruction software using tracking reconstruction in C++ as an example. The course is otherwise general and applies to programing problems in any large experimental particle physics project.
Introduction to the course¶
The development of effective software for the reconstruction of datasets from large scale physics experiments is a complex collaborative effort between dedicated physicists and software engineers. Physicist effort is essential in that it brings knowledge of the design and physics purpose of the experiment as well as project manpower. However, most physicists do not have formal training in software design or experience in large and complex software projects. This can hamper central project goals, such as achieving the primary purpose of the software, and other considerations, such as working within processing power, memory and storage space limitations, code maintenance, and code transparency for users. This course is designed to train physicists from a practical standpoint in these issues in the format of a one-week intensive workshop. The course is primarily designed around programming examples performed in a group work setting. The course includes introductory reading, lectures and in class exercises. Together the daily exercises represent a complete project in reconstructing data.
As the initial primary instructor and course designer Prof. Matthew Herndon brings practical experience in the design and management of large-scale reconstruction software from the CDF and CMS experiments. Prof. Herndon’s primary experience has involved the CDF silicon tracking software where he was a primary author of the silicon hit building code, the forward silicon only tracking code and the version of the silicon tracking code used in the CDF online trigger. Also he was the convener of the CDF tracking group with overall management responsibility for the CDF tracking code. More recently he has worked on online muon tracking code at the CMS experiment. In addition, he has experience in the design of new courses including a course on experimental methods in particle physics.
- Students should have experience in C++ programing.
- Students should have familiarity with the process of compiling, linking and running programs in a UNIX environment
- Students should have familiarity with the physics of charged particle trajectories in magnetic fields
- Students must complete the pre course exercise. (available starting July 28th)
- Students should have knowledge of C++ at the level or higher of a text such as: Accelerated C++ by Andrew Koenig and Barbara Moo
Documents and course software¶
- Course Syllabus.
- Coding Standards document for the FNAL C++ course.
- Software school code repository: GitHub FNALComp code repository