Event dumping?
The tracking group (cc @gfacini @srettie @jburzyns) have expressed interesting in re-using FTAG workflows for various tasks:
- Event wide (Primary/Secondary/LLP) vertexing using GNNs (based on FTAG models)
- Pixel NN trainings (using clusters)
Harmonisation of workflows would be beneficial, but this package is really designed to dump information per-jet, so we have to think a bit about how/whether we can support these event-wise workflows.
One hacky solutions is to just save one jet per event, and then dump everything for that single jet and call it an "event". Currently this would require us to re-associate the tracks we would want to save to the jet with a wide association upstream of the dumper. This is relatively easy since we already have similar workflows that rerun the track-jet association. Meanwhile for hits the association is I believe running inside the dumper already, so no changes would be needed there. For the pixel NN trainings we would need to support 2D vector outputs for each hit to save the full charge matrix however.
If we go down this road the main concern (aside from it being inherently hacky) would be that we want to avoid the main event loop (which is already bloated #106 (closed)) getting clogged up with statements that correspond to event dumping behaviour. I can't think of any good examples of what these might be, maybe others can? In any case, a dedicated tracking fork of this repository potentially could help here.
- Try to modularise this package and move some stuff (e.g. the writer) to athena, and then have the tracking group implement a second dumper which reuses the writers but implements it's own event loop.
- The tracking group just reimplement something from scratch heavily inspired by this package (which I believe is that @jburzyns already started working on). The downside here is that we will need to duplicate more work.