Skip to content

gnn-tracking/gnn_tracking

Repository files navigation

GNNs for Charged Particle Tracking

DOI CalVer YY.0M.MICRO Documentation Status pre-commit.ci status gh actions Check Markdown links codecov

This repository holds the main python package for the GNN Tracking project. See the readme of the organization for an overview of the task. Detailed write-ups of our progress are available in arXiv:2309.16754 and arXiv:2312.03823. More resources are provided in the reading list here.

  • 🔋 Batteries included: This repository implements a hole pipeline: from preprocessing to models, to the evaluation of the final performance metrics.
  • ⚡ Built around pytorch lightning, our models are easy to train and to restore. By using hooks and callbacks, everything remains modular and maintainable.
  • ✅ Tested: Most of the code is guaranteed to run

🔥 Installation

  1. Install micromamba (installation instructions). Conda works as well, but will be slow to solve the environment, so it's not recommended.
  2. Set up your environment with one of the environment/*.yml files (see the readme in that folder)
  3. Run pip3 install -e '.[testing,dev]' from this directory.
  4. Run pytest from this directory to check if everything worked
  5. For development: Install pre-commit hooks: pre-commit install (from this directory)

A good place to get started are the demo notebooks. This package is versioned as CalVer YY.0M.MICRO.

🧰 Development guidelines

If you open a PR and pre-commit fails for formatting, commentpre-commit.ci autofix to trigger a fixup commit from pre-commit.

To skip the slowest tests with pytest, run pytest --no-slow.

💚 Contributing, contact, citation

You can reach us per mail. You can cite this software with the zenodo DOI. Please also cite our [latest preprint][preprint].

A good place to start contributing are the issues marked with 'good first issue'. It is always best to have the issue assigned to you before starting to work on it.

Core developers (emoji key):

Gage DeZoort
Gage DeZoort

💻 🤔
Kilian Lieret
Kilian Lieret

💻 ⚠️

Thanks also goes to these wonderful people:

Shubhanshu Saxena
Shubhanshu Saxena

💻
Geo Jolly
Geo Jolly

⚠️
Jian Park
Jian Park

💻 🤔
Devdoot Chatterjee
Devdoot Chatterjee

💻 🔬
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!