Skip to content

"SOA Particle" + combiner and filter to use it with

Niklas Stefan Nolte requested to merge NN_particlev2 into master

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::ProtoParticles 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 //TODOs 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 :)

Edited by Sascha Stahl

Merge request reports