Multiple hit output datasets
In !485 (merged) I ended up with sort of an ugly solution when I wanted multiple origin options (beamspot or primary vertex) for hit outputs: we have two vectors of hit writers (each with a different write
signature), but given the configuration (which allows a single optional hit dumping block) we can only ever put one entry in one of them. In theory we might want to schedule multiple writers for each type of tracks.
The obvious solution would be to have N blocks of hit configurations. The problem there is that we share the config between the decorator and the writer, and the decorator doesn't support beamspot origin at the moment. So possible solutions:
- Leave things as they are for now, sort of weird to have vectors that only have 0 or 1 entries but ok.
- Replace the vectors with an optional type for each writer.
- Unify the signature for the writers and make an internal switch to decide if they are going to use beamspot or primary vertex. I think this is a bit of a forced abstraction, but it sounds nice in theory.
- Break the configuration into a decorator block and a writer block, make the writer block variable length.
- Make sure the decorator code supports the beamspot origin in a somewhat sensible way.