---
# System prepended metadata

title: DUNE-ND Reconstruction Milestones

---

# DUNE-ND Reconstruction Milestones

A live note for re-implementing _Supera_ software, a toolkit to produce labels to optimize (via supervised learning) ML based data reconstruction chain for DUNE-ND. Technical discussion takes place during a dedicated weekly meeting (Wednesday 3PM ET, noon PT). Other communication channels include a mailing list and slack channel.

To join the mailing list, send an empty email to the SLAC listserv (listserv@listserv.slac.stanford.edu) without a title and with a body message:
```
SUBSCRIBE DUNEND-SIMRECO-TECHNICAL $FIRST_NAME $LAST_NAME
```
where you should replace the `$FIRST_NAME` and `$LAST_NAME` with yours.

## 1. Label making = Supera Overhaul
Need three pieces of software

### SuperaAtomic [(link)](https://github.com/DeepLearnPhysics/SuperaAtomic)
[x] 1.A ... A compilable software with Supera data types (`SuperaMCParticleClusterData`) **-Kazu**
[x] 1.B ... Implement Python binding (no ROOT) for data types.
[x] 1.C ... Add `SuperaBBoxInteraction` **-Kazu**
[ ] 1.D ... Add `SuperaMCParticleCluster` **-Kazu**

### Edep2Supera [(link)](https://github.com/DeepLearnPhysics/edep2supera)
[x] 1.E ... A compilable software with only a function that can access `EDepSim`'s `TG4Event` as a `PyROOT` object (handed through Python script) **-Kazu**
[ ] 1.F ... Translate `EdepSim` objects into Supera objects defined in `SupraAtomic` **-Zach/Kazu**
[ ] 1.G ... Write a script to run an event loop on `EDepSim` file and create `LArCV3` output file. **-Zach**


## 2. ~~Interfacing LArCV3~~
Implementation of LArCV3 is postponed. Items below will be pursued after we first implement LArCV2 interface. This is to accommodate time pressure to deliver a working reconstruction chain (i.e. making LArCV3 output requires the reconstruction chain software to also have an interface to take LArCV3 input files, which does not exist yet).

### LArCV3 file generation
[x] 2.A ... use a converter code: LArCV2 => LArCV3 (contact Corey Adams) while waiting for a new Supera to work (which can generate LArCV3 output) **-Zach**

### LArCV3 interface
[ ] 2.B ... implement torch DataSet inherited class to interface with LArCV3 inside [datasets.py](https://github.com/DeepLearnPhysics/lartpc_mlreco3d/blob/develop/mlreco/iotools/datasets.py) (currently you see `LArCVDataSet` for LArCV2). Ideally implement in a similar manner so that parsers can be re-used (understand this point before working on this project).
[ ] 2.C ... implement/modify parsers by introducing necessary changes wherever appropriate in [parsers.py](https://github.com/DeepLearnPhysics/lartpc_mlreco3d/blob/develop/mlreco/iotools/parsers.py). Verify parsed tensors agree to FP32 precision between larcv2 and larcv3 (for the same source file).

