WIP: Make unpacker data dependencies explicit
Right now HLT2 lines have to explicit schedule the 'upfront reconstruction':
HltLine(
name=name,
algs=upfront_reconstruction() + [dstars],
prescale=prescale
)
This is a consequence of the data unpacking not being configured in a way that allows the scheduler to automatically deduce what needs to be run.
This MR amends to configuration to allow for that. Lines can then just be:
HltLine(name=name, algs=[dstars], prescale=prescale)
This is done by specifying the data dependencies between unpacked objects 'by hand', and then communicating this to the scheduler by using the ExtraInputs
property of each unpacker.
Or at least, that's the idea. In reality there's one spanner in the works: the charged ProtoParticle 'reconstruction' requires a few algorithms which mutate the protos container, and such algorithms must always be scheduled explicitly. The upfront_reconstruction()
hack is the cleanest way of doing this, so even if the changes in this MR were accepted, line definitions would have to remain the same. I've opened this for the record but will close it immediately.
/cc @sstahl, once your work on the reco-protos-particle bridge is done, we might be able to revisit this.