SuperaAtomic

C++ software to generate true labels for lartpc_mlreco3d (repository), a full data reconstruction chain of modular machine learning (ML) algorithms for 3D particle images. The repository provides Python binding via pybind11, which can be optionally turned off. This software does not implement a process executable to run Supera. An implementation to run this software with EDepSim framework and to produce larcv, please see edep2supera.

How to build

  1. Use this docker image (or any other container image derived from it) to get the most of required softwares. Only additional item you would need is scikit-build which you can install with pip.
  • If you know how to use cmake for building a software, you can actually skip scikit-build and run cmake from src directory.
  1. Clone this repository (below) or fork-and-clone.
> git clone https://github.com/DeepLearnPhysics/SuperaAtomic
  1. Pull pybind subpackage https://github.com/pybind/pybind11.
> git submodule update --init
  1. Build + Install (the example below installs under your $HOME/.local path)
> pip install .

Software validation (unit test)

Simply try:

pytest test

at the top-level directory. Note you do need to specify test to avoid running pytest on pybind11 (which is under src directory and automatically searched by pytest unless you specify test directory target).

** Currently unit test is disabled. TODO: revive the unit test after lots of changes in the source code. **

How to contribute

  1. Fork this repository to your personal github account.
  2. Clone the repository to your local machine. Follow the build/install instruction above and make sure you can set up.
  3. Create your branch to contain your own development. Code code code.
  4. When it's ready to be shared, make sure the unit test passes. Then request to merge by sending a pull request.

Optional but strongly recommended: implement a unit test for the added component of your code so that we can reduce chance of someone else breaking in future development.

Communication for development

  • Feel free to use github issues! We try to be attentive as much as possible.
  • Join our weekly ND Technical Software Meeting (noon PST every Wednesday, here's indico category).
  • Join our mailing list dunend-simreco-technical@listserv.slac.stanford.edu
    • Send an email to listserv@listserv.slac.stanford.edu with an empty title. The body should include this text: SUBSCRIBE DUNEND-SIMRECO-TECHNICAL FIRST LAST where you should replace the FIRST and LAST with your first and last names respectively.
  • Join our slack channel (contact Kazu).

Status

More documentation to come. This repository is an attempt to decouple input file format dependency of the original toolkit Supera (repository) and currently under development.

Milestones