rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMS_2012_I1102908

Measurement of inclusive and exclusive dijet production ratio at large rapidity intervals at center-of-mass energy 7 TeV.
Experiment: CMS (LHC)
Inspire ID: 1102908
Status: VALIDATED
Authors:
  • Grzegorz Brona
  • Vladimir Gavrilov
  • Hannes Jung
  • Victor Kim
  • Victor Murzin
  • Vadim Oreshkin
  • Grigory Pivovarov
  • Ivan Pozdnyakov
  • Grigory Safronov
References:
  • CMS-FWD-10-014
  • CERN-PH-EP-2012-088
  • arXiv: 1204.0696
  • Submitted to the EPJ C
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • Inclusive QCD at 7TeV comEnergy, ptHat (or equivalent) greater than 15 GeV

This is a measurement of the ratio of inclusive to exclusive dijet production as a function of the absolute distance in rapidity, $\Delta y$, between jets. The ratio of the Mueller-Navelet to exclusive dijet production is also measured. These measurements were performed with the CMS detector in proton-proton collisions at $\sqrt{s} = 7$ TeV for jets with $p_T > 35$ GeV and $|y| < 4.7$ taken from a mixture of two data samples, one of which containing dijets with moderate rapidity separation and the other containing dijets with large rapidity separation, with integrated luminosity of 33/nb and 5/pb respectively. The measured observables are corrected for detector effects.

Source code: CMS_2012_I1102908.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/FastJets.hh"
 5#include <sstream>
 6
 7namespace Rivet {
 8
 9
10  /// @brief CMS inclusive and exclusive dijet production ratio at large rapidity intervals
11  class CMS_2012_I1102908 : public Analysis {
12  public:
13
14    CMS_2012_I1102908()
15      : Analysis("CMS_2012_I1102908")
16    {  }
17
18
19  void init() {
20    // Projections
21    declare(FastJets(FinalState(), FastJets::ANTIKT, 0.5), "antikT");
22
23    // Histograms
24    /// @todo Can we manage to only register these as they are "really" created in the finalize()?
25    book(_h_dijet_ratio   , 1, 1, 1);
26    book(_h_MN_dijet_ratio, 2, 1, 1);
27
28    // Temporary histograms (directly instantiated)
29    book(_h_DeltaY_exclusive ,"TMP/excl",refData(1, 1, 1));
30    book(_h_DeltaY_inclusive ,"TMP/incl",refData(1, 1, 1));
31    book(_h_DeltaY_MN ,"TMP/YMN",refData(1, 1, 1));
32  }
33
34
35  void analyze(const Event & event) {
36    const double weight = 1.0;
37
38    // Jets with  pT > 35.0, -4.7 < y < 4.7
39    const JetAlg& jet_alg = apply<JetAlg>(event, "antikT");
40    const Jets& jets = jet_alg.jets(Cuts::pT > 35*GeV && Cuts::absrap < 4.7);
41
42    // Veto event if number of jets less than 2
43    if (jets.size() < 2) return;
44
45    // Loop over jet pairs
46    double deltaY_MN = 0.0;
47    for (size_t ij1 = 0; ij1 < jets.size(); ++ij1) {
48      for (size_t ij2 = ij1 + 1; ij2 < jets.size(); ++ij2) {
49        const double deltaY = fabs(jets[ij1].rapidity() - jets[ij2].rapidity());
50        // Exclusive dijet case:
51        if (jets.size() == 2) _h_DeltaY_exclusive->fill(deltaY, weight);
52        // Inclusive jets case:
53        _h_DeltaY_inclusive->fill(deltaY, weight);
54        // Mueller-Navelet:
55        if (deltaY > deltaY_MN) deltaY_MN = deltaY;
56      }
57    }
58    _h_DeltaY_MN->fill(deltaY_MN, weight);
59  }
60
61
62  void finalize() {
63    efficiency(_h_DeltaY_exclusive, _h_DeltaY_inclusive, _h_dijet_ratio);
64    efficiency(_h_DeltaY_exclusive, _h_DeltaY_MN, _h_MN_dijet_ratio);
65    transformY(*_h_dijet_ratio, _invert);
66    transformY(*_h_MN_dijet_ratio, _invert);
67  }
68
69
70  private:
71
72    /// Reciprocal function with div-by-zero protection, for inverting the efficiency measure
73    static double _invert(double x) { return (x > 0) ? 1/x : 0; }
74
75    /// @name Histograms
76    //@{
77    Scatter2DPtr _h_dijet_ratio, _h_MN_dijet_ratio;
78    Histo1DPtr _h_DeltaY_inclusive, _h_DeltaY_exclusive, _h_DeltaY_MN;
79    //@}
80
81  };
82
83
84  RIVET_DECLARE_PLUGIN(CMS_2012_I1102908);
85
86}