https://doi.org/10.1051/epjconf/202429503021
Kiwaku, a C++20 library for multidimensional arrays. Application to ACTS tracking
1 Université Paris-Saclay, CNRS/IN2P3, IJCLab, 91405, Orsay, France
2 Université Paris-Saclay, CNRS, Laboratoire interdisciplinaire des sciences du numérique, 91405, Orsay, France
* e-mail: sylvain.joube@lisn.fr
** e-mail: hadrien.grasland@ijclab.in2p3.fr
*** e-mail: david.chamont@ijclab.in2p3.fr
**** e-mail: joel.falcou@lisn.fr
Published online: 6 May 2024
C++ is a vital part of particle physics as it allows for high level abstractions while offering state of the art performance. In this article we will first introduce the C++ 20 concepts, a major C++ usability enhancement. We will then introduce Kiwaku, a new multidimensional arrays library taking advantage of the most advanced C++ features at the time of writing, providing the user with intuitive API while retaining state of the art performance. Multidimensional arrays are a basic building block for many scientific experiments and simulations, and particle physics is no exception. Using examples borrowed from Covfie and ACTS libraries, and using data from the ATLAS CERN experiment, we will show how Kiwaku offers good usability while having a negligible impact on performance compared to using classic C++ std::arrays.
© The Authors, published by EDP Sciences, 2024
This is an Open Access article distributed under the terms of the Creative Commons Attribution License 4.0, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.