|
[Rivet-svn] rivet: 2 new changesetsRivet Mercurial rivet at projects.hepforge.orgMon May 8 16:30:02 BST 2017
details: https://rivet.hepforge.org/hg/rivet/rev/c12fc0570494 branches: release-2-5-x changeset: 5756:c12fc0570494 user: Andy Buckley <andy at insectnation.org> date: Mon May 08 16:18:35 2017 +0100 description: Add protection against leptons from QED FSR photon conversions in assigning PartonicTop decay modes. Thanks to Markus Seidel for the report and suggested fix. details: https://rivet.hepforge.org/hg/rivet/rev/e7e86f0a3c8a branches: release-2-5-x changeset: 5757:e7e86f0a3c8a user: Andy Buckley <andy at insectnation.org> date: Mon May 08 16:23:52 2017 +0100 description: Add doc & TODO comments diffs (50 lines): --- a/ChangeLog Mon May 08 14:00:36 2017 +0100 +++ b/ChangeLog Mon May 08 16:23:52 2017 +0100 @@ -1,5 +1,9 @@ 2017-05-08 Andy Buckley <andy.buckley at cern.ch> + * Add protection against leptons from QED FSR photon conversions + in assigning PartonicTop decay modes. Thanks to Markus Seidel for + the report and suggested fix. + * Reimplement FastJets methods in terms of new static helper functions. * Add new mkClusterInputs, mkJet and mkJets static methods to --- a/include/Rivet/Projections/FastJets.hh Mon May 08 14:00:36 2017 +0100 +++ b/include/Rivet/Projections/FastJets.hh Mon May 08 16:23:52 2017 +0100 @@ -153,8 +153,11 @@ /// @name Static helper functions for FastJet interaction, with tagging //@{ + /// Make PseudoJets for input to a ClusterSequence, with user_index codes for constituent- and tag-particle linking static PseudoJets mkClusterInputs(const Particles& fsparticles, const Particles& tagparticles=Particles()); + /// Make a Rivet Jet from a PseudoJet holding a user_index code for lookup of Rivet fsparticle or tagparticle links static Jet mkJet(const PseudoJet& pj, const Particles& fsparticles, const Particles& tagparticles=Particles()); + /// Convert a whole list of PseudoJets to a list of Jets, with mkJet-style unpacking static Jets mkJets(const PseudoJets& pjs, const Particles& fsparticles, const Particles& tagparticles=Particles()); //@} --- a/include/Rivet/Projections/PartonicTops.hh Mon May 08 14:00:36 2017 +0100 +++ b/include/Rivet/Projections/PartonicTops.hh Mon May 08 16:23:52 2017 +0100 @@ -68,8 +68,8 @@ if (_decaymode != ALL) { const auto fn = [&](const Particle& t) { const Particles descendants = t.allDescendants(); - const bool prompt_e = any(descendants, [&](const Particle& p){ return p.abspid() == PID::ELECTRON && p.isPrompt(_emu_from_prompt_tau); }); - const bool prompt_mu = any(descendants, [&](const Particle& p){ return p.abspid() == PID::MUON && p.isPrompt(_emu_from_prompt_tau); }); + const bool prompt_e = any(descendants, [&](const Particle& p){ return p.abspid() == PID::ELECTRON && p.isPrompt(_emu_from_prompt_tau) && !p.hasAncestor(PID::PHOTON); }); + const bool prompt_mu = any(descendants, [&](const Particle& p){ return p.abspid() == PID::MUON && p.isPrompt(_emu_from_prompt_tau) && !p.hasAncestor(PID::PHOTON); }); if (prompt_e && (_decaymode == ELECTRON || _decaymode == E_MU || _decaymode == E_MU_TAU)) return true; if (prompt_mu && (_decaymode == MUON || _decaymode == E_MU || _decaymode == E_MU_TAU)) return true; const bool prompt_tau = any(descendants, [&](const Particle& p){ return p.abspid() == PID::TAU && p.isPrompt(); }); --- a/src/Projections/FastJets.cc Mon May 08 14:00:36 2017 +0100 +++ b/src/Projections/FastJets.cc Mon May 08 16:23:52 2017 +0100 @@ -78,7 +78,7 @@ // STATIC PseudoJets FastJets::mkClusterInputs(const Particles& fsparticles, const Particles& tagparticles) { vector<fastjet::PseudoJet> pjs; - /// @todo Use FastJet3's UserInfo system + /// @todo Use FastJet3's UserInfo system to store Particle pointers directly? // Store 4 vector data about each particle into FastJet's PseudoJets for (size_t i = 0; i < fsparticles.size(); ++i) {
More information about the Rivet-svn mailing list |