Skip to content

Implementation strategy for mcMatch functor

The mcMatch functor has, in Run 1-2, extensively been used in DaVinci to:

  • build a trivial selection to run on MC, that is subsequently used to motivate a selection for data or study efficiencies
  • as variables through the LoKi Hybrid TupleTool to separate which particle comes from which decay chain

Plenty of examples of the former can be found in the analysis productions (for example in mctruthsels for D02HHPi0), and the latter in e.g. OmbToOmcPi_XibToXic0Pi. (it's used a lot)

These functors can act on LHCb::Particles, and can be given a list of linker tables if you do even more fancy linking. It effectively makes the hop of particle -> mcparticle for you, and then tests whether the mcparticle matches the MC decay descriptor:

LoKi_Bc.Variables["is_from_Bc_BsPi"] = "switch( mcMatch( '[B_c+ => (B_s0 => ((D_s- | D_s+) ==> K- K+ (pi- | pi+ ) ) (pi+ | pi-) ) pi+]CC'  , 1  ) , 1 , 0 )"

and you can do some fancy things like carets (like mcMatch('Z0 -> ^mu- mu+')).

This issue is to describe how this functionality is preserved technically with the new event model.

Note that:

  • An argument should be present to point to alternative linker tables
Edited by Laurent Dufour