[Rivet-svn] r2749 - in trunk: . include/Rivet/Projections src/Analyses src/Projections

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Wed Nov 10 15:10:14 GMT 2010


Author: buckley
Date: Wed Nov 10 15:10:13 2010
New Revision: 2749

Log:
Adding a mechanism to allow JetAlg to be run without the wrapping of the passed FinalState in a VetoedFinalState. This will allow ATLAS to reproduce its hadronic-neutrino-corrected jet studies.

Modified:
   trunk/ChangeLog
   trunk/include/Rivet/Projections/JetAlg.hh
   trunk/src/Analyses/CDF_2008_S7782535.cc
   trunk/src/Projections/FastJets.cc
   trunk/src/Projections/JetAlg.cc

Modified: trunk/ChangeLog
==============================================================================
--- trunk/ChangeLog	Tue Nov  9 19:06:30 2010	(r2748)
+++ trunk/ChangeLog	Wed Nov 10 15:10:13 2010	(r2749)
@@ -1,3 +1,10 @@
+2010-11-10  Andy Buckley  <andy at insectnation.org>
+
+	* Adding a JetAlg::useInvisibles(bool) mechanism to allow ATLAS
+	jet studies to include neutrinos. Anyone who chooses to use this
+	mechanism had better be careful to remove hard neutrinos manually
+	in the provided FinalState object.
+
 2010-11-09  Hendrik Hoeth <hendrik.hoeth at cern.ch>
 
 	* Adding ATLAS-CONF-2010-049 conference note. Data is read from plots.

Modified: trunk/include/Rivet/Projections/JetAlg.hh
==============================================================================
--- trunk/include/Rivet/Projections/JetAlg.hh	Tue Nov  9 19:06:30 2010	(r2748)
+++ trunk/include/Rivet/Projections/JetAlg.hh	Wed Nov 10 15:10:13 2010	(r2749)
@@ -57,7 +57,6 @@
 
   /// Abstract base class for projections which can return a set of {@link Jet}s.
   class JetAlg : public Projection {
- 
   public:
 
     /// Constructor
@@ -69,6 +68,18 @@
     /// Destructor
     virtual ~JetAlg() { }
 
+    /// @brief Include invisible particles in jet construction.
+    /// The default behaviour is that jets are only constructed from visible
+    /// (i.e. charged under an SM gauge group) particles. Some jet studies,
+    /// including those from ATLAS, use a definition in which neutrinos from hadron
+    /// decays are included (via MC correction) in the experimental jet definition.
+    /// Setting this flag to true avoids the automatic restriction to a VisibleFinalState.
+    void useInvisibles(bool useinvis=true) {
+      _useInvisibles = useinvis;
+    }
+
+    /// Get jets in no guaranteed order, with an optional cut on min \f$ p_\perp \f$.
+    /// @todo Provide an extra optional cut on ptmax?
     virtual Jets jets(double ptmin=0.0) const = 0;
 
     /// Get the jets, ordered by supplied sorting function object.
@@ -112,7 +123,7 @@
     collection_type entities() const { return jets(); }
 
     /// Do the calculation locally (no caching).
-    void calc(const ParticleVector& ps);
+    virtual void calc(const ParticleVector& ps) = 0;
 
 
   protected:
@@ -123,6 +134,12 @@
     /// Compare projections.
     virtual int compare(const Projection& p) const = 0;
 
+
+  protected:
+
+    /// Flag to determine whether or not the VFS wrapper is to be used.
+    bool _useInvisibles;
+
   };
 
 

Modified: trunk/src/Analyses/CDF_2008_S7782535.cc
==============================================================================
--- trunk/src/Analyses/CDF_2008_S7782535.cc	Tue Nov  9 19:06:30 2010	(r2748)
+++ trunk/src/Analyses/CDF_2008_S7782535.cc	Wed Nov 10 15:10:13 2010	(r2749)
@@ -87,7 +87,7 @@
           // Fill each entry in profile
           for (size_t rbin = 0; rbin < js.numBins(); ++rbin) {
             const double rad_Psi = js.rMin() + (rbin+1.0)*js.interval();
-            /// @todo Yuck... JetShape's interface sucks
+            /// @todo Yuck... ClosestJetShape's interface sucks
             _h_Psi_pT[jet_pt_bin]->fill(rad_Psi/_Rjet, js.intJetShape(jind, rbin), event.weight() );
           }
         }

Modified: trunk/src/Projections/FastJets.cc
==============================================================================
--- trunk/src/Projections/FastJets.cc	Tue Nov  9 19:06:30 2010	(r2748)
+++ trunk/src/Projections/FastJets.cc	Wed Nov 10 15:10:13 2010	(r2749)
@@ -78,7 +78,7 @@
   int FastJets::compare(const Projection& p) const {
     const FastJets& other = dynamic_cast<const FastJets&>(p);
     return \
-      mkNamedPCmp(other, "FS") ||
+      (_useInvisibles ? mkNamedPCmp(other, "FS") : mkNamedPCmp(other, "VFS")) ||
       cmp(_jdef.jet_algorithm(), other._jdef.jet_algorithm()) ||
       cmp(_jdef.recombination_scheme(), other._jdef.recombination_scheme()) ||
       cmp(_jdef.plugin(), other._jdef.plugin()) ||
@@ -89,8 +89,13 @@
 
 
   void FastJets::project(const Event& e) {
-    const FinalState& fs = applyProjection<FinalState>(e, "FS");
-    calc(fs.particles());
+    ParticleVector particles;
+    if (_useInvisibles) {
+      particles = applyProjection<FinalState>(e, "FS").particles();
+    } else {
+      particles = applyProjection<FinalState>(e, "VFS").particles();
+    }
+    calc(particles);
   }
 
 

Modified: trunk/src/Projections/JetAlg.cc
==============================================================================
--- trunk/src/Projections/JetAlg.cc	Tue Nov  9 19:06:30 2010	(r2748)
+++ trunk/src/Projections/JetAlg.cc	Wed Nov 10 15:10:13 2010	(r2749)
@@ -6,11 +6,13 @@
 namespace Rivet {
 
 
-  JetAlg::JetAlg(const FinalState& fs) {
+  JetAlg::JetAlg(const FinalState& fs)
+    : _useInvisibles(false)
+  {
     setName("JetAlg");
     VisibleFinalState vfs(fs);
     getLog() << Log::DEBUG << "Making visible final state from provided FS" << endl;
-    addProjection(vfs, "FS");
+    addProjection(vfs, "VFS");
   }
 
 


More information about the Rivet-svn mailing list