Allow opt-out from deduplication?
As discussed on slide 3 of
there is a potential issue in the framework with deduplication of intermediate "basic" particle inputs. Specifically the issue arises in the case where such inputs may alternate between being identical or not identical depending on the current tuning of the trigger selections in question. Identical here means same reconstruction runs to make the particles and the same cuts are applied to them, using the same functors.
Specifically the issue about naming will arise each time when selections which have no a priori reason to be identical end up identical as a result of a performance tuning.
The issue is not only technical but sociological: experience shows that it is not realistic to anticipate all such cases in advance, but with O(2000) HLT2 + Sprucing lines expected to run in production we can be sure that cases will come up over time. The goal should be to optimize both code maintainability, reliability, and expenditure of people's time and energy on discussions. This is also what separates the impact on selections which are managed by a very large group of people (who have a diverse range of skills) from reconstruction where this feature is absolutely desirable but which consists of O(dozens) of algorithms maintained by a core team of developers with a relatively more homogeneous skillset.
One obvious way around this would be to allow an explicit opt-out of deduplication within the framework. I'm opening this issue to discuss the point in a structured way, since it does come up from time to time in meetings. It isn't obvious to me that such an opt-out is a "wrecking amendment" to the framework: from a management point of view it is natural because almost all complex systems have opt-outs to avoid having to come up with an infinite set of hard rules for each corner case.
Other solutions may be possible, and the argument that there is nothing to solve was also raised during the WP3 discussion. Let's talk about it.
cc @mstahl @mvesteri @poluekt @sstahl @graven @rmatev @chasse @nnolte @pkoppenb @erodrigu @nskidmor