More ADL support for ThOr
- add support for
decayProducts
andsubCombination
ADL customization points to Particle v1 (by moving ParticleCombination from Rec to LHCb, and simplifying it) - Move the generic, ip-related part of TrackVertexUtils from Rec to LHCb (to allow future simplification/generalization of computing IP-related quantities)
- rename the vaguely named
hasVertex
property to the more descriptivecanBeExtrapolatedDownstream
which distinguishes objects which can be extrapolated downstream, and which in general represent 'things' which are parameterized by a state as a function of z, versus objects which (also) contain an end vertex, and which should (under regular circumstances) thus not be extrapolated beyond their 'end', and which are as a result typically parameterized as a vertex, and their momentum at that vertex (note: they may of course still be extrapolated 'upstream' of their end vertex, but in that case one starts with a parameterization using a vertex and momentum). In addition,canBeExtrapolatedDownstream
is not abool
, but a tag type which can still be used as if it were abool
, but which allows eg. for tag dispatching, and it can have more values than justbool
(eg. aParticle
v1 might represent a track, or a composite, so one cannot determine at compile time whether it can be extrapolated downstream -- hence it returns a 'maybe', which, if not supported by the caller, turns into 'no'. But code which is happy to check at runtime can write anif
, and then try to access any underlying track which is downstream extrapolatable.
Must be applied in conjunction with Rec!2709 (merged)
Edited by Gerhard Raven