MadAnalysis5 - Improving the validation environment

Description

MadAnalysis 5 is a framework for phenomenological investigations at particle colliders. Based on a C++ kernel, this program allows to efficiently perform, in a straightforward and user-friendly fashion, sophisticated physics analyses of event files such as those generated by a large class of Monte Carlo (MC) event generators. MadAnalysis 5 comes with two modes of running. The first one, easier to handle, uses the strengths of a powerful Python interface to implement the analysis utilizing a set of intuitive commands. The second one requires implementing the analysis in the C++ programming language directly within the core of the analysis framework. This opens unlimited possibilities concerning the level of complexity that can be reached by the analysis, which is only limited by the programming skills and the originality of the user.

Validation is an essential ingredient of software development. The current testing and validation structure of MadAnalysis relies on legacy code that is executed on private servers. Only a fraction of the validation process has been implemented to be run on GitHub. We want to extend this, and implement a separate function-based testing environment which can be executed within GitHub’s CI/CD workflow. This project will allow the contributor to learn an essential ingredient of software development through the creation of a GitHub-based testing module which can work efficiently and effectively within the CI/CD workflow. This project will involve the identification of functions that need testing, the creation of an efficient module taking into account the limited resources provided by GitHub, and the deployment of validated software.

Task ideas

This project will target the design of a C++ based unit test module and its execution of this module within the GitHub workflow. We therefore expect contributors to have a good understanding of C++ unit tests and some working knowledge of GitHub’s CI/CD workflows.

Expected results & Milestones

Requirements

Mentors

Additional Information

Corresponding Project

Participating Organizations