An open API service indexing awesome lists of open source software.

https://github.com/deeplearnphysics/superaatomic


https://github.com/deeplearnphysics/superaatomic

Last synced: 12 months ago
JSON representation

Awesome Lists containing this project

README

          

# SuperaAtomic

C++ software to generate true labels for `lartpc_mlreco3d` ([repository](https://github.com/DeepLearnPhysics/lartpc_mlreco3d)), a full data reconstruction chain of modular machine learning (ML) algorithms for 3D particle images. The repository provides Python binding via [`pybind11`](https://pybind11.readthedocs.io/en/stable/), 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](https://github.com/ClarkMcGrew/edep-sim) framework and to produce [larcv](https://github.com/DeepLearnPhysics/larcv3), please see [edep2supera](https://github.com/DeepLearnPhysics/edep2supera).

## How to build
1. Use [this docker image](https://hub.docker.com/layers/deeplearnphysics/dune-nd-sim/ub20.04-cpubase-edep2supera/images/sha256-a9f01459ec3f67c85e2bea813d14d1069ca41a5d8f4b8f301336b992de238ca2?context=repo) (or any other container image derived from it) to get the _most_ of required softwares. Only additional item you would need is [scikit-build](https://scikit-build.readthedocs.io/en/latest/skbuild.html) 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.
2. Clone this repository (below) or fork-and-clone.
```
> git clone https://github.com/DeepLearnPhysics/SuperaAtomic
```
3. Pull pybind subpackage https://github.com/pybind/pybind11.
```
> git submodule update --init
```
4. 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](https://indico.slac.stanford.edu/category/23/)).
* 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](mailto:kterao@slac.stanford.edu)).

## Status

More documentation to come.
This repository is an attempt to decouple input file format dependency of the original toolkit `Supera` ([repository](https://github.com/DeepLearnPhysics/Supera)) and currently under development.

Milestones

- [x] Working cmake build with python binding

- [x] Migrate [SuperaMCParticleClusterData](https://github.com/DeepLearnPhysics/Supera/blob/icarus/SuperaMCParticleClusterData.h)

- [x] Migrate [SuperaBBoxInteraction](https://github.com/DeepLearnPhysics/Supera/blob/icarus/SuperaBBoxInteraction.h)

- [ ] Migrate [SuperaMCParticleCluster](https://github.com/DeepLearnPhysics/Supera/blob/icarus/SuperaMCParticleCluster.h)