Skip to content

More ADL support for ThOr

Gerhard Raven requested to merge thor-more-adl into master
  • add support for decayProducts and subCombination 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 descriptive canBeExtrapolatedDownstream 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 a bool, but a tag type which can still be used as if it were a bool, but which allows eg. for tag dispatching, and it can have more values than just bool (eg. a Particle 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 an if, 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

Merge request reports