rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

D0_2008_I779574

Measurement of D0 Run II differential jet cross sections
Experiment: D0 (Tevatron Run 2)
Inspire ID: 779574
Status: VALIDATED
Authors:
  • Andy Buckley
  • Gavin Hesketh
References: Beams: p- p+
Beam energies: (980.0, 980.0) GeV
Run details:
  • QCD events at $\sqrt{s} = 1960 \text{GeV}$. A $p_\perp^\text{min} cut is probably necessary since the lowest jet $p_\perp$ bin is at 50 GeV

Measurement of the inclusive jet cross section in $p \bar{p}$ collisions at center-of-mass energy $\sqrt{s} = 1.96 \text{TeV}$. The data cover jet transverse momenta from 50--600 GeV and jet rapidities in the range -2.4 to 2.4.

Source code: D0_2008_I779574.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/FinalState.hh"
  4#include "Rivet/Projections/LeadingParticlesFinalState.hh"
  5#include "Rivet/Projections/VetoedFinalState.hh"
  6#include "Rivet/Projections/FastJets.hh"
  7
  8namespace Rivet {
  9
 10
 11  /// @brief D0 differential jet cross sections
 12  ///
 13  /// @author Andy Buckley
 14  /// @author Gavin Hesketh
 15  class D0_2008_I779574 : public Analysis {
 16  public:
 17
 18    RIVET_DEFAULT_ANALYSIS_CTOR(D0_2008_I779574);
 19
 20
 21    /// @name Analysis methods
 22    /// @{
 23
 24    void init() {
 25      // Full final state
 26      FinalState fs;
 27      declare(fs, "FS");
 28
 29      // Jets
 30      FastJets jetpro(fs, JetAlg::D0ILCONE, 0.7);
 31      declare(jetpro, "Jets");
 32
 33      // Book histograms
 34      book(_h_dsigdptdy_y00_04, 1, 1, 1);
 35      book(_h_dsigdptdy_y04_08, 2, 1, 1);
 36      book(_h_dsigdptdy_y08_12, 3, 1, 1);
 37      book(_h_dsigdptdy_y12_16, 4, 1, 1);
 38      book(_h_dsigdptdy_y16_20, 5, 1, 1);
 39      book(_h_dsigdptdy_y20_24, 6, 1, 1);
 40    }
 41
 42
 43    /// Do the analysis
 44    void analyze(const Event& event) {
 45      // Skip if the event is empty
 46      const FinalState& fs = apply<FinalState>(event, "FS");
 47      if (fs.empty()) {
 48        MSG_DEBUG("Empty event!");
 49        vetoEvent;
 50      }
 51
 52      // Find the jets
 53      const JetFinder& jetpro = apply<JetFinder>(event, "Jets");
 54      // Fill histo for each jet
 55      for (const Jet& j : jetpro.jets(Cuts::pT > 50*GeV)) {
 56        const double pt = j.pT();
 57        const double y = j.absrap();
 58        MSG_TRACE("Filling histos: pT = " << pt/GeV << ", |y| = " << y);
 59        if (y < 0.4) {
 60          _h_dsigdptdy_y00_04->fill(pt/GeV);
 61        } else if (y < 0.8) {
 62          _h_dsigdptdy_y04_08->fill(pt/GeV);
 63        } else if (y < 1.2) {
 64          _h_dsigdptdy_y08_12->fill(pt/GeV);
 65        } else if (y < 1.6) {
 66          _h_dsigdptdy_y12_16->fill(pt/GeV);
 67        } else if (y < 2.0) {
 68          _h_dsigdptdy_y16_20->fill(pt/GeV);
 69        } else if (y < 2.4) {
 70          _h_dsigdptdy_y20_24->fill(pt/GeV);
 71        }
 72      }
 73
 74    }
 75
 76
 77    /// Finalize
 78    void finalize() {
 79      /// Scale by cross-section
 80      const double scalefactor = crossSection()/picobarn / sumOfWeights();
 81      scale(_h_dsigdptdy_y00_04, scalefactor);
 82      scale(_h_dsigdptdy_y04_08, scalefactor);
 83      scale(_h_dsigdptdy_y08_12, scalefactor);
 84      scale(_h_dsigdptdy_y12_16, scalefactor);
 85      scale(_h_dsigdptdy_y16_20, scalefactor);
 86      scale(_h_dsigdptdy_y20_24, scalefactor);
 87    }
 88
 89    /// @}
 90
 91
 92  private:
 93
 94    /// @name Histograms
 95    /// @{
 96    Histo1DPtr _h_dsigdptdy_y00_04;
 97    Histo1DPtr _h_dsigdptdy_y04_08;
 98    Histo1DPtr _h_dsigdptdy_y08_12;
 99    Histo1DPtr _h_dsigdptdy_y12_16;
100    Histo1DPtr _h_dsigdptdy_y16_20;
101    Histo1DPtr _h_dsigdptdy_y20_24;
102    /// @}
103
104  };
105
106
107
108  RIVET_DECLARE_ALIASED_PLUGIN(D0_2008_I779574, D0_2008_S7662670);
109
110}