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

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Mon Dec 7 15:43:53 GMT 2009


Author: buckley
Date: Mon Dec  7 15:43:53 2009
New Revision: 2141

Log:
Small Hemispheres improvements, and using 1/Evis rather than 1/sqrt(s) for scaling of hemisphere masses, since the results otherwise miss the data by the neutral particle fraction

Modified:
   trunk/include/Rivet/Projections/Hemispheres.hh
   trunk/src/Analyses/OPAL_2004_S6132243.cc

Modified: trunk/include/Rivet/Projections/Hemispheres.hh
==============================================================================
--- trunk/include/Rivet/Projections/Hemispheres.hh	Mon Dec  7 11:58:13 2009	(r2140)
+++ trunk/include/Rivet/Projections/Hemispheres.hh	Mon Dec  7 15:43:53 2009	(r2141)
@@ -63,13 +63,10 @@
   public:
 
     /// Constructor.
-    Hemispheres(const AxesDefinition& ax)
-      : _E2vis(-1), _M2high(-1), _M2low(-1),
-        _Bmax(-1), _Bmin(-1),
-        _highMassEqMaxBroad(true)
-    {
+    Hemispheres(const AxesDefinition& ax) {
       setName("Hemispheres");
       addProjection(ax, "Axes");
+      clear();
     }
 
     /// Clone on the heap.
@@ -77,6 +74,17 @@
       return new Hemispheres(*this);
     }
 
+    // Reset the projection
+    void clear() {
+      _E2vis = -1;
+      _M2high = -1;
+      _M2low = -1;
+      _Bmax = -1;
+      _Bmin = -1;
+      _highMassEqMaxBroad = true;
+    }
+
+
   protected:
 
     /// Perform the projection on the Event.
@@ -91,10 +99,10 @@
   public:
 
     /// @name Hemisphere masses (scaled by \f$ 1 / E^2_\mathrm{vis} \f$).
-    ///@{
+    //@{
 
     double E2vis() const { return _E2vis; }
-    double Evis() const { return sqrt(_E2vis); }
+    double Evis() const { return sqrt(E2vis()); }
 
     double M2high() const { return _M2high; }
     double Mhigh() const { return sqrt(M2high()); }
@@ -103,38 +111,38 @@
     double Mlow() const { return sqrt(M2low()); }
 
     double M2diff() const { return _M2high -_M2low; }
-    double Mdiff() const { return sqrt(M2diff()); }
+    double Mdiff() const { return sqrt(Mhigh() - Mlow()); }
 
     double scaledM2high() const {
-      if (_M2high == 0.0) return 0.0;
-      if (_E2vis != 0.0) return _M2high/_E2vis;
+      if (M2high() == 0.0) return 0.0;
+      if (E2vis() != 0.0) return M2high()/E2vis();
       else return std::numeric_limits<double>::max();
     }
     double scaledMhigh() const { return sqrt(scaledM2high()); }
 
     double scaledM2low() const {
-      if (_M2low == 0.0) return 0.0;
-      if (_E2vis != 0.0) return _M2low/_E2vis;
+      if (M2low() == 0.0) return 0.0;
+      if (E2vis() != 0.0) return M2low()/E2vis();
       else return std::numeric_limits<double>::max();
     }
     double scaledMlow() const { return sqrt(scaledM2low()); }
 
     double scaledM2diff() const {
-      if (M2diff() == 0.0) return 0.0;
-      if (_E2vis != 0.0) return M2diff()/_E2vis;
+      if (Mdiff() == 0.0) return 0.0;
+      if (Evis() != 0.0) return Mdiff()/Evis();
       else return std::numeric_limits<double>::max();
     }
     double scaledMdiff() const { return sqrt(scaledM2diff()); }
-    ///@}
+    //@}
 
 
     /// @name Hemisphere broadenings.
-    ///@{
+    //@{
     double Bmax() const { return _Bmax; }
     double Bmin() const { return _Bmin; }
     double Bsum() const { return _Bmax + _Bmin; }
     double Bdiff() const { return fabs(_Bmax - _Bmin); } // <- fabs(), just in case...
-    ///@}
+    //@}
 
 
     /// Is the hemisphere with the max mass the same as the one with the max broadening?

Modified: trunk/src/Analyses/OPAL_2004_S6132243.cc
==============================================================================
--- trunk/src/Analyses/OPAL_2004_S6132243.cc	Mon Dec  7 11:58:13 2009	(r2140)
+++ trunk/src/Analyses/OPAL_2004_S6132243.cc	Mon Dec  7 15:43:53 2009	(r2141)
@@ -53,8 +53,6 @@
     void init() {
       // Projections
       addProjection(Beam(), "Beams");
-      // Don't use pT or eta cuts here. Read the paper instead.
-      // Hint: It's section 4.2 and 5.2.
       const ChargedFinalState cfs;
       addProjection(cfs, "FS");
       addProjection(FastJets(cfs, FastJets::DURHAM, 0.7), "DurhamJets");
@@ -153,8 +151,10 @@
    
       // Hemispheres
       const Hemispheres& hemi = applyProjection<Hemispheres>(event, "Hemispheres");
-      const double hemi_mh = sqrt(hemi.scaledM2high());
-      const double hemi_ml = sqrt(hemi.scaledM2low());
+      // The paper says that M_H/L are scaled by sqrt(s), but scaling by E_vis is the way that fits the data...
+      const double hemi_mh = hemi.scaledMhigh();
+      const double hemi_ml = hemi.scaledMlow();
+      //
       const double hemi_bmax = hemi.Bmax();
       const double hemi_bmin = hemi.Bmin();
       const double hemi_bsum = hemi.Bsum();


More information about the Rivet-svn mailing list