std::vector<Quintet> NewPartnerLeptonic::Multiplets(boca::Event const& event, boca::PreCuts const&, TMVA::Reader const& reader)
{
    return Quintets(event, [&](Quintet & quintet) {
        quintet.SetBdt(Bdt(quintet, reader));
        return quintet;
    });
}
예제 #2
0
std::vector<EventMultiplet<Decuplet532>> EventSingleLeptonicTagger::Multiplets(boca::Event const& event, boca::PreCuts const&, TMVA::Reader const& reader)
{
  INFO0;
  return ReduceResult(Events(event, [&](EventMultiplet<Decuplet532>& multiplet_event) {
    multiplet_event.SetBdt(Bdt(multiplet_event, reader));
    return multiplet_event;
  }), 1);
}
예제 #3
0
boost::optional<Doublet> Higgs::Multiplet(Doublet& doublet, std::vector<Lepton>& leptons, PreCuts const& pre_cuts, TMVA::Reader const& reader)
{
    INFO0;
    doublet = PrepareDoublet(doublet, leptons);
    if (Problematic(doublet, pre_cuts)) return boost::none;
    doublet.SetBdt(Bdt(doublet, reader));
    return doublet;
}
예제 #4
0
std::vector<Quattuordecuplet554> SignatureEffectiveTagger::Multiplets(Event const& event, boca::PreCuts const&, TMVA::Reader const& reader)
{
    INFO0;
    return ReduceResult(Quattuordecuplets(event, [&](Quattuordecuplet554 & quattuordecuplet) {
        quattuordecuplet.SetBdt(Bdt(quattuordecuplet, reader));
        return quattuordecuplet;
    }), 1);
}
예제 #5
0
std::vector<Doublet> WLeptonic::Multiplets(boca::Event const &event, PreCuts const &pre_cuts, TMVA::Reader const &reader)
{
    INFO0;
    return Doublets(event, [&](Doublet & doublet) -> boost::optional<Doublet> {
        if (Problematic(doublet, pre_cuts)) return boost::none;
        doublet.SetBdt(Bdt(doublet, reader));
        return doublet;
    });
}
예제 #6
0
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
}
예제 #7
0
std::vector<MultipletSignature<Quartet211>> SignatureLeptonTagger::Multiplets(Event const& event, PreCuts const&, TMVA::Reader const& reader)
{
    INFO0;
   std::vector<Lepton> leptons = event.Leptons().leptons();
    if (leptons.size() < 2) return {};
    std::vector<Doublet> doublets = higgs_reader_.Multiplets(event);
    INFO(doublets.size());
    std::vector<MultipletSignature<Quartet211>> quartets = Triples(leptons, doublets, [&](Singlet const& singlet_1, Singlet const& singlet_2, Doublet const& doublet) {
        MultipletSignature<Quartet211> quartet = Signature(doublet, singlet_1, singlet_2);
        quartet.SetBdt(Bdt(quartet, reader));
        return quartet;
    });
    return ReduceResult(quartets);
}
예제 #8
0
std::vector<MultipletSignature<Octet332>> SignatureT::Multiplets(boca::Event const& event, PreCuts const&, TMVA::Reader const& reader)
{
    INFO0;
    auto doublets = higgs_reader_.Multiplets(event);
    INFO(doublets.size());
    auto triplets = top_reader_.Multiplets(event);
    INFO(triplets.size());
    auto octets = Triples(triplets, doublets, [&](Triplet const & triplet_1, Triplet const & triplet_2, Doublet const & doublet) {
        auto octet = Signature(triplet_1, triplet_2, doublet);
        octet.SetBdt(Bdt(octet, reader));
        return octet;
    });
    DEBUG(octets.size());
    return octets;
}
std::vector<Octet62> SignatureNeutral::Multiplets(boca::Event const& event, PreCuts const&, TMVA::Reader const& reader)
{
    INFO0;
    auto doublets = jet_pair_reader_.Multiplets(event);
    auto sextets = heavy_higgs_semi_reader_.Multiplets(event);
    std::vector<Octet62> octets;
    for (auto const & doublet : doublets) {
        for (auto const & sextet : sextets) {
            Octet62 octet(sextet, doublet);
            if (octet.Overlap()) continue;
            octet.SetBdt(Bdt(octet, reader));
            octets.emplace_back(octet);
        }
    }
//     if(octets.size()==0)ERROR(octets.size(), doublets.size(), sextets.size());
    return octets;
}
예제 #10
0
std::vector<Doublet>  HeavyHiggsTauTagger::Multiplets(Event const& event, PreCuts const&, TMVA::Reader const& reader)
{
    INFO0;
    std::vector<Jet> jets;// = tau_reader_.Multiplets(event);
    INFO(jets.size());
    auto missing_et = event.Hadrons().MissingEt();
    std::vector<Doublet> doublets;
    for (auto const & jet : jets)  {
        Doublet pre_doublet(jet, missing_et);
//         std::vector<Doublet> Postdoublets = GetNeutrinos(Predoublet);
//         for (auto & Postdoublet : Postdoublets) {
//             if (Postdoublet.Mass() < 10) continue;
        pre_doublet.SetBdt(Bdt(pre_doublet, reader));
        doublets.emplace_back(pre_doublet);
//         }
    }
    return doublets;
}
std::vector<Sextet33> TopLeptonicPair::Multiplets(boca::Event const& event, boca::PreCuts const&, TMVA::Reader const& reader)
{
    auto triplets = top_leptonic_reader_.Multiplets(event);
    INFO(triplets.size());
    auto  sextets = UnorderedPairs(triplets, [&](Triplet const & triplet_1, Triplet const & triplet_2) {
        Quartet22 quartet(Doublet(triplet_1.Singlet(), triplet_1.Doublet().Jet()), Doublet(triplet_2.Singlet(), triplet_2.Doublet().Jet()));
        if (quartet.Overlap()) throw Overlap();
        quartet.Doublet1().SetBdt(triplet_1.Bdt());
        quartet.Doublet2().SetBdt(triplet_2.Bdt());
        WimpMass wimp_mass;
//             for (auto sextet : wimp_mass.Sextets(quartet, event.MissingEt())) {
        Sextet33 sextet = wimp_mass.Fake(quartet);
        sextet.SetBdt(Bdt(sextet, reader));
        return sextet;
//             }
    });
    INFO(sextets.size());
    return sextets;
}