"SOA Particle" + combiner and filter to use it with
depends on LHCb!2309 (merged) and Rec!1728 (merged)
DISCLAIMER: this does not aim to provide anything feature complete, rather the opposite. its super incomplete.
this supersedes !603 (closed) by modernizing the combiner introduced there.
other than that, i introduce some stuff that could at some point end up as variant alternative in v2::Particle
for now, all of the things related to the model are stored in Particle_v2.h
, although we will want to change that later (as it grows).
the ChargedBasics
are currently a zip of many smaller things like MuonPIDs
, RichPIDs
, ParticleIDs
and (for now) Fitted::Forward::Tracks
(we probably want to change that at some point)
to fill the ChargedBasics
, i currently run something that converts LHCb::ProtoParticle
s to ChargedBasics
(Particle_to_Particle_v2.h) (the protos come from file in the hlt2_example in moore)
the ThOrParticleCombiner
currently supports 2,3,4 body combination, and the only possible signature right now is [ChargedBasics] -> Composites
(also residing in Particle_v2.h). there are many open todos, like supporting combination of composites, vertex fitting with something other than the Closest To Beam state, vectorizing the combination cut and so on. a (incomplete) list of todos is listed in the combiner file, together with //TODO
s here and there
there are significant speedups to be gained, the ones i saw during development ranged from 2x to 10x (do not hold me accountable or quote me for these numbers in the end), even with a fast vertexfitter (ParticleVertexFitter
) and distancecalculator TrgDistanceCalculator
activated.
you may ask: why merge this if its so highly incomplete? because this MR is already huge and incremental steps seem better for synchronization with others and to try to keep an overview. and rebasing is a PITA
thx to @olupton for the help with debugging :)