Skip to content

Can FunTuple be made input-agnostic?

Now FunTuple is templated by T (Particle, MCParticle...) but there are a lot of helpers that are specific. For instance can https://gitlab.cern.ch/lhcb/Analysis/-/blob/master/Phys/FunTuple/src/FunTuple.cpp#L450

  LHCb::FTuple::vec_vec_functor_t<LHCb::ThOrInputType::Signature_Particle>   m_fun_thor;
  LHCb::FTuple::vec_vec_functor_t<LHCb::ThOrInputType::Signature_MCParticle> m_mcfun_thor;
  LHCb::FTuple::map_functor_t<LHCb::ThOrInputType::Signature_Void>           m_void_thor;

be templated?

One reason FunTuple needs to know the type is the DecayFinder https://gitlab.cern.ch/lhcb/Analysis/-/blob/master/Phys/FunTuple/src/FunTuple.cpp#L423

  ToolHandle<Decays::IDecay>   m_decaytool_loki   = {this, "Decay", "LoKi::Decay"};
  ToolHandle<Decays::IMCDecay> m_mcdecaytool_loki = {this, "MCDecay", "LoKi::MCDecay"};

They should be re-implemented within ThOr (I'll open another issue). Or at least made templated. Now there are 2 distinct sets of classes, one for Particles, one for MCParticles.

Tagging @amathad @graven

Related to DPA master task https://gitlab.cern.ch/lhcb-dpa/project/-/issues/121.

Edited by Eduardo Rodrigues