[Rivet-svn] rivet: 2 new changesets

Rivet Mercurial rivet at projects.hepforge.org
Mon 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