EPJ Web of Conferences (Jan 2024)

Kiwaku, a C++20 library for multidimensional arrays. Application to ACTS tracking

  • Joube Sylvain,
  • Grasland Hadrien,
  • Chamont David,
  • Falcou Joël

DOI
https://doi.org/10.1051/epjconf/202429503021
Journal volume & issue
Vol. 295
p. 03021

Abstract

Read online

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.