There are a few commonly-used LoKi functors that do not yet have ThOr equivalents. For example:
proper lifetime with respect to the "best" primary vertex
functors to interact with "extra info" (see LHCb#106), for example reading saved selection or isolation MVA values
functors to do with changing assigned mass hypotheses
ID, ABSID and possibly other functors accessing true ID information
[other missing functors to be filled in here]
The range of functors used in the Run 2 trigger was surveyed in this talk.
At this stage of ThOr/LoKi cross-validation these should probably be implemented with an (if constexpr) branch on LHCb::Particle, although this can be dropped in due course.
Hello, when modifying bandq(onia) particle builders into Thor style, we find several functions missing:
F.BPVLTIME seems to return a too small value. A known issue mentioned in Rec#204.
BPVDLS not in Thor. A temporary solution is to use the FDCHI2 variable F.BPVFDCHI2(pvs), and assume significance = sqrt(chi2).
In dimuon builders, we start from the basic dimuon combiner make_dimuon_base in standard_particles, then use CHILDCUT, MINTREE and MAXTREE to cut the muons. Seems these functions are not supported in Thor. A potential solution is to define a new combiner, and use F.SUM, F.MIN, F.MAX or directly cut input muons; but maybe there are more beautiful solutions.
OK thanks. It would be great if you were able to understand whether they should be the same, i.e. if DLS is defined as √(FDCHI2), or whether they just are numerically similar.
For the flight distance chi2 variable BPVVDCHI2, we could see its definition in the twiki: https://twiki.cern.ch/twiki/bin/view/LHCb/LoKiHybridFilters#BPVVDCHI2_separation_from_relate. It's basically a chi2 value obtained using the position vector and corresponding error matrix. I did not see contribution from the momentum information. (Or if we check /cvmfs/lhcb.cern.ch/lib/lhcb/PHYS/PHYS_v26r0/Phys/LoKiPhys/src/Particles1.cpp, the VertexChi2Distance function, which is used to define BPVVDCHI2, also takes only the 3D vertex information as input.)
Thank you! It sounds like DLS can be computed using the same machinery as the lifetime then. I wonder if we can use the information already computed in !2486 (closed) to implement DLS.
it doesn't really matter. ID and ABSID are good functors for both, we might want to think about something like (or more descriptive than) Particle.h/Common.h
I've added a link the similar (and more complete) issue in DPA gitlab, https://gitlab.cern.ch/lhcb-dpa/project/-/issues/61 to the description. Should we close this one in order not to duplicate stuff? Of course, ideally this issue should be in the Rec/ package. DPA is not the most obvious place for HLT2 line developers to search for. But I guess it will be now too painful to move things around.