rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

D0_2008_S7662670

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_S7662670.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_S7662670 : public Analysis {
 16  public:
 17
 18    RIVET_DEFAULT_ANALYSIS_CTOR(D0_2008_S7662670);
 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, FastJets::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 JetAlg& jetpro = apply<JetAlg>(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 L_eff = sig_MC * L_exp / num_MC
 80      const double lumi_mc = sumOfWeights() / crossSection();
 81      const double scalefactor =  1 / lumi_mc;
 82      scale(_h_dsigdptdy_y00_04, scalefactor);
 83      scale(_h_dsigdptdy_y04_08, scalefactor);
 84      scale(_h_dsigdptdy_y08_12, scalefactor);
 85      scale(_h_dsigdptdy_y12_16, scalefactor);
 86      scale(_h_dsigdptdy_y16_20, scalefactor);
 87      scale(_h_dsigdptdy_y20_24, scalefactor);
 88    }
 89
 90    /// @}
 91
 92
 93  private:
 94
 95    /// @name Histograms
 96    /// @{
 97    Histo1DPtr _h_dsigdptdy_y00_04;
 98    Histo1DPtr _h_dsigdptdy_y04_08;
 99    Histo1DPtr _h_dsigdptdy_y08_12;
100    Histo1DPtr _h_dsigdptdy_y12_16;
101    Histo1DPtr _h_dsigdptdy_y16_20;
102    Histo1DPtr _h_dsigdptdy_y20_24;
103    /// @}
104
105  };
106
107
108
109  RIVET_DECLARE_ALIASED_PLUGIN(D0_2008_S7662670, D0_2008_I779574);
110
111}