IRIS-HEP Fellow: Saransh Chopra



Fellowship dates: Jun – Aug, 2022

Home Institution: Cluster Innovation Centre, University of Delhi


Project: Vector - Constructors, documentation, and benchmarks

Vector is a Python library for 2D, 3D, and Lorentz vectors, including arrays of vectors, designed to solve common physics problems in a NumPy-like way. Vector currently supports pure Python Object, NumPy, Awkward, and Numba-based (Numba-Object, Numba-Awkward) backends.

The user-facing API of Vector is a bit confusing as it does not expose its true API, which are the Python classes. The current API provides wrapper functions (named as obj, arr, and awk) to users which are also shown in the internal classes' __repr__ methods, making these constructor functions even more ambiguous.

Additionally, the vector library lacks proper user as well as API documentation. Currently, there are no detailed explanations in the existing tutorials, and most of the functions and classes do not contain docstrings, which automatically render when displayed on the documentation website. Furthermore, benchmarking would be a valuable addition to the Vector project, which could then be propagated to all Scikit-HEP packages in the future.

This project would aim to prepare Vector for its first major release by exposing its internal API to the users, improving the documentation, and adding benchmarks.

More information: My project proposal

Mentors:
  • Henry Schreiner (Princeton University)

  • Jim Pivarski (Princeton University)

Presentations and Publications
Current Status
August 2024 - Assistant Research Software Engineer at Centre for Advanced Research Computing, University College London

Contact me: