std::vector<EventMultiplet<Decuplet532>> EventSingleLeptonicTagger::Events(Event const& event, std::function<EventMultiplet<Decuplet532>(EventMultiplet<Decuplet532> &)> const& function)
{
  INFO0;
  auto global_observables = global_reader_.Multiplets(event).front();
  std::vector<EventMultiplet<Decuplet532>> events;
  for (auto const & decuplet : signature_reader_.Multiplets(event)) {
    EventMultiplet<Decuplet532> multiplet_event(decuplet, global_observables);
    events.emplace_back(function(multiplet_event));
  }
  return events;
}
std::vector<EventMultiplet<Octet332>> EventT::Multiplets(boca::Event const& event, PreCuts const&, TMVA::Reader const& reader)
{
    INFO0;
    auto jets = bottom_reader_.Jets(event);
    auto octets = signature_reader_.Multiplets(event);
    std::vector<EventMultiplet<Octet332>> multiplet_events;
    for (auto const & octet : octets) {
        EventMultiplet<Octet332> multiplet_event(octet.Multiplet(), event, jets);
                multiplet_event.SetBdt(Bdt(multiplet_event, reader)); //FIXME reanble this
        multiplet_events.emplace_back(multiplet_event);
    }
        return ReduceResult(multiplet_events,1); //FIXME reanble this
}