WIP shiny combiny
functional substitute for combineparticles/nbodydecays (2,3,4 body).
uses @olupton's ThOr functors.
it is by no means feature complete, but its good enough for further development (given that we have the required functors available, which is the next todo).
It supports mother/daughter cuts similar to how combineparticles does, and a seemingly peculiar set of combination cuts:
- cut<12> (a combination cut between the first and the second particle in the decay descriptor)
- (for 3 and 4 body only) cut<13>
- (for 3 and 4 body only) cut<123>
- (for 4 body only) cut<1234>
- (for 4 body only) cut<14>
For reference:N<M>BodyDecays
supports {cut<12>, cut<123>, ..., cut<123..m>}
So the addition in this combiner is basically cut<13> and cut<14>.
This is because of the loop implementation.
signature: list of SharedParticleContainer
s --> std::vector<LHCb::Vertex>
and std::vector<LHCb::Particle>
.
it has some leftover TODOs, but i think this is a mergable first iteration.
The optimizations that would/will make this stage fast are:
- efficient implementations for complicated functors like DOCACHI2 (implies suitable particle class design)
- an efficient vertex fit (probably implies suitable particle class design, not as much as the functors though)
- an efficient way to check for overlaps between particles (see the
CheckOverlapTool
)
depends on Rec!1728 (merged)
Edited by Niklas Stefan Nolte