# 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).