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.
Related to DPA master task https://gitlab.cern.ch/lhcb-dpa/project/-/issues/121.
Edited by Eduardo Rodrigues