|
[Rivet-svn] r2141 - in trunk: include/Rivet/Projections src/Analysesblackhole at projects.hepforge.org blackhole at projects.hepforge.orgMon 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 |