int SignatureT::Train(boca::Event const& event, boca::PreCuts const&, Tag tag) { INFO0; auto particles = event.GenParticles(); auto triplets = top_reader_.Multiplets(event); auto tops = CopyIfParticle(particles, Id::top); auto final_triplets = triplets; // auto final_triplets = BestMatches(triplets, tops, tag); DEBUG(triplets.size(), tops.size(), final_triplets.size()); auto doublets = higgs_reader_.Multiplets(event); auto higgses = CopyIfParticles(particles, {Id::higgs, Id::CP_violating_higgs}); auto final_doublets = doublets; // auto final_doublets = BestMatches(doublets, higgses, tag); DEBUG(doublets.size(), higgses.size(), final_doublets.size()); auto octets = Triples(final_triplets, final_doublets, [&](Triplet const & triplet_1, Triplet const & triplet_2, Doublet const & doublet) { auto octet = Signature(triplet_1, triplet_2, doublet); octet.SetTag(tag); return octet; }); DEBUG(octets.size()); return SaveEntries(octets, 1); }
int TopLeptonicPair::Train(boca::Event const& event, boca::PreCuts const&, Tag tag) { INFO0; auto triplets = top_leptonic_reader_.Multiplets(event); DEBUG(triplets.size()); auto particles = event.GenParticles(); auto top_particles = CopyIfParticle(particles, Id::top); CHECK(top_particles.size() == 2, top_particles.size()); // std::vector<Jet>neutrinos = CopyIfNeutrino(particles); if (top_particles.size() != 2 && tag == Tag::signal) DEBUG(particles.size()); auto final_triplets = BestMatches(triplets, top_particles, tag); // CHECK(final_triplets.size()==2, final_triplets.size()); auto sextets = UnorderedPairs(final_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; // Insert(sextets, wimp_mass.Sextet(quartet, event.MissingEt(), neutrinos, tag)); return wimp_mass.Fake(quartet); }); if (tag == Tag::signal && sextets.size() > 1) { DEBUG(sextets.size()); sextets = BestRapidity(sextets); } return SaveEntries(sextets); }
int SignatureLeptonTagger::Train(Event const& event, boca::PreCuts const&, Tag tag) { INFO0; std::vector<Lepton> leptons = event.Leptons().leptons(); if (leptons.size() < 2) return 0; std::vector<Particle> particles = event.Partons().GenParticles(); std::vector<Particle> lepton_particle = CopyIfParticles(particles, {Id::electron, Id::muon}); // ERROR(lepton_particle); lepton_particle = CopyIfGrandMother(lepton_particle, Id::top); // ERROR(lepton_particle); std::vector<Lepton> final_leptons = CopyIfClose(leptons, lepton_particle); // ERROR(final_leptons); std::vector<Doublet> doublets = higgs_reader_.Multiplets(event); std::vector<Particle> higgses = CopyIfParticles(particles, {Id::higgs, Id::CP_violating_higgs}); std::vector<Doublet> final_doublets = BestMatches(doublets, higgses, tag); std::vector<MultipletSignature<Quartet211>> quartets = Triples(final_leptons, final_doublets, [&](Singlet const& singlet_1, Singlet const& singlet_2, Doublet const& doublet) { MultipletSignature<Quartet211> quartet = Signature(doublet, singlet_1, singlet_2); quartet.SetTag(tag); return quartet; }); DEBUG(quartets.size()); if (tag == Tag::signal) quartets = ReduceResult(quartets, 1); DEBUG(quartets.size()); return SaveEntries(quartets); }
int Higgs::Train(boca::Event const& event, PreCuts const& pre_cuts, Tag tag) { INFO0; auto leptons = event.Leptons(); return SaveEntries(Doublets(event, [&](Doublet & doublet) { return SetTag(doublet, leptons, pre_cuts, tag); }), Particles(event), tag, Id::higgs); }
int SignatureEffectiveTagger::Train(Event const& event, PreCuts const&, Tag tag) { INFO0; return SaveEntries(Quattuordecuplets(event, [&](Quattuordecuplet554 & quattuordecuplet) { quattuordecuplet.SetTag(tag); return quattuordecuplet; }), tag); }
int TruthLevel::Train(Event const& event, PreCuts const& pre_cuts, Tag) { INFO0; return SaveEntries(Jets(event, pre_cuts, [&](Particle & jet) { // if (Problematic(jet, pre_cuts, tag)) throw boca::Problematic(); return jet; })); }
int EventSingleLeptonicTagger::Train(Event const& event, PreCuts const&, Tag tag) { INFO0; return SaveEntries(Events(event, [&](EventMultiplet<Decuplet532>& multiplet_event) { multiplet_event.SetTag(tag); return multiplet_event; }), tag); }
int NewPartnerLeptonic::Train(boca::Event const& event, PreCuts const&, Tag tag) { INFO0; return SaveEntries(Quintets(event, [&](Quintet & quintet) { quintet.SetTag(tag); return quintet; }), Particles(event), tag); }
int WLeptonic::Train(boca::Event const &event, boca::PreCuts const &pre_cuts, Tag tag) { INFO0; return SaveEntries(Doublets(event, [&](Doublet & doublet) -> boost::optional<Doublet> { if (Problematic(doublet, pre_cuts, tag)) return boost::none; doublet.SetTag(tag); return doublet; }), Particles(event), tag); }
void SRGP__activateApplColorTable (void) { #ifdef COLOR_QUICKDRAW if (applTableCurrentlyActivated) return; SaveEntries (NULL, srgpmac__savectab, *srgpmac__reqlist); RestoreEntries (srgpmac__applctab, NULL, *srgpmac__reqlist); applTableCurrentlyActivated = TRUE; #endif }
int EventT::Train(boca::Event const& event, boca::PreCuts const&, Tag tag) { INFO0; auto jets = bottom_reader_.Jets(event); auto octets = signature_reader_.Multiplets(event); INFO(octets.size()); std::vector<EventMultiplet<Octet332>> multipletevents; for (auto const & octet : octets) { EventMultiplet<Octet332> multipletevent(octet.Multiplet(), event, jets); multipletevent.SetTag(tag); multipletevents.emplace_back(multipletevent); } return SaveEntries(multipletevents, 1); //FIXME reanble this }
int HeavyHiggsTauTagger::Train(Event const& event, PreCuts const&, Tag tag) { INFO0; std::vector<Jet> jets;// = tau_reader_.Multiplets(event); INFO(jets.size()); auto MissingEt = event.Hadrons().MissingEt(); auto TauParticles = event.Partons().GenParticles(); TauParticles = CopyIfParticle(TauParticles, Id::tau); // TauParticles.erase(std::remove_if(TauParticles.begin(), TauParticles.end(), WrongAbsId(Id::tau)), TauParticles.end()); CHECK(TauParticles.size() == 1, TauParticles.size()); auto HiggsParticles = event.Partons().GenParticles(); HiggsParticles = CopyIfParticle(HiggsParticles, Id::charged_higgs); // HiggsParticles.erase(std::remove_if(HiggsParticles.begin(), HiggsParticles.end(), WrongAbsId(Id::charged_higgs)), HiggsParticles.end()); CHECK(HiggsParticles.size() == 1, HiggsParticles.size()); for (auto const & Particle : TauParticles) { SortedByMinDeltaRTo(jets, Particle); if (jets.front().DeltaRTo(Particle) < 0.4_rad) jets.front().Info().SetTag(Tag::signal); } std::vector<Jet>NewCleanJets; for (auto const & jet : jets) { if (jet.Info().Tag() != tag) continue; NewCleanJets.emplace_back(jet); } std::vector<Doublet> doublets; for (auto const & Jet : NewCleanJets) { Doublet Predoublet(Jet, MissingEt); // std::vector<Doublet> Postdoublets = GetNeutrinos(Predoublet); // std::sort(Postdoublets.begin(), Postdoublets.end(), MinDeltaR(HiggsParticles.front())); // if (Tag == Tag::signal && Postdoublets.size() > 1) Postdoublets.erase(Postdoublets.begin() + 1, Postdoublets.end()); // if (Tag == HBackground && !Postdoublets.empty()) Postdoublets.erase(Postdoublets.begin()); // for (auto & Postdoublet : Postdoublets) { Predoublet.SetTag(tag); doublets.emplace_back(Predoublet); // } } INFO(doublets.size()); return SaveEntries(doublets); }
void VFSManagerDialog::OnClose(wxCloseEvent& event) { SaveEntries(); event.Skip(); }
BonkEnc::CDDBBatch::~CDDBBatch() { SaveEntries(); }
void VFSManagerDialog::OnOK(wxCommandEvent& event) { SaveEntries(); event.Skip(); }
int SignatureNeutral::Train(boca::Event const& event, PreCuts const&, Tag tag) { INFO0; auto higgs = heavy_higgs_semi_reader_.Tagger().HiggsParticle(event, tag); auto sextets = heavy_higgs_semi_reader_.Multiplets(event); sextets = BestMatches(sextets, higgs, tag); auto doublets = jet_pair_reader_.Multiplets(event); auto bottoms = SortedByPt(jet_pair_reader_.Tagger().PairBottomQuarks(event, tag)); auto particles = event.GenParticles(); auto tops = CopyIfParticle(particles, Id::top); auto tops_even = CopyIfMother(tops, Id::heavy_higgs); auto tops_odd = CopyIfMother(tops, Id::CP_odd_higgs); auto top_higgs = Combine(tops_even, tops_odd); auto one_close_to_top = 0, two_close_to_top = 0; if (top_higgs.size() == 2) { for (auto const & doublet : doublets) { if ((Close<boca::Jet>(top_higgs.at(0))(doublet.Singlet1()) && Close<boca::Jet>(top_higgs.at(1))(doublet.Singlet2())) || (Close<boca::Jet>(top_higgs.at(1))(doublet.Singlet1()) && Close<boca::Jet>(top_higgs.at(0))(doublet.Singlet2()))) two_close_to_top++; if ((Close<boca::Jet>(top_higgs.at(0))(doublet.Singlet1()) || Close<boca::Jet>(top_higgs.at(1))(doublet.Singlet2())) || (Close<boca::Jet>(top_higgs.at(1))(doublet.Singlet1()) || Close<boca::Jet>(top_higgs.at(0))(doublet.Singlet2()))) one_close_to_top++; } } // ERROR(one_close_to_top, two_close_to_top); static auto close_to_top_ = 0; if (one_close_to_top == 6) { ++close_to_top_; } std::vector<Doublet> final_doublets; switch (tag) { case Tag::signal : if (bottoms.size() == 2) { for (auto const & doublet : doublets) { if ((Close<boca::Jet>(bottoms.at(0))(doublet.Singlet1()) && Close<boca::Jet>(bottoms.at(1))(doublet.Singlet2())) || (Close<boca::Jet>(bottoms.at(1))(doublet.Singlet1()) && Close<boca::Jet>(bottoms.at(0))(doublet.Singlet2()))) final_doublets.emplace_back(doublet); } } else ERROR(bottoms.size()); break; case Tag::background : final_doublets = doublets; break; } static auto zero_doublets = 0; if (one_close_to_top < 6 && final_doublets.empty()) { ++zero_doublets; } std::vector<Octet62> octets; for (auto const & doublet : final_doublets) { for (auto const & sextet : sextets) { Octet62 octet(sextet, doublet); if (octet.Overlap()) continue; octet.SetTag(tag); octets.emplace_back(octet); } } static auto zero_octets = 0; if (one_close_to_top < 6 && !final_doublets.empty() && octets.empty()) { ++zero_octets; } // ERROR(close_to_top_, zero_doublets, zero_octets); if (tag == Tag::signal && octets.size() > 1) { INFO(octets.size()); std::sort(octets.begin(), octets.end()); octets.erase(octets.begin() + 1, octets.end()); } return SaveEntries(octets); }
void AutoPauseManagerDialog::OnSave(wxCommandEvent& event) { SaveEntries(); LOG_SUCCESS(HLE,"Automatic pause: file pause.bin was updated."); //event.Skip(); }