Rivet Analyses Reference

CMS_2012_I1184941

Measurement of the differential cross section for inclusive dijet production as a function of $\xi$ in 7 TeV proton-proton collisions.
Experiment: CMS (LHC)
Inspire ID: 1184941
Status: VALIDATED
Authors:
  • Sercan Sen
  • Alexander Proskuryakov
References:Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • High statistics is needed to observe events in the lowest (xi) bin. Distributions are presented for hard QCD events (i.e. with $\hat{p_\perp}$ greater than 15 GeV) and diffractive-enhanced events.

Measurement of the differential cross section for inclusive dijet production as a function of $\xi$ which approximates the fractional momentum loss of the scattered proton in single-diffraction events. The data used has a total integrated luminosity of 2.7 nb$^{-1}$ collected during 2010 with low instantaneous luminosity. Events are selected with at least two jets in $|\eta| < 4.4$ with $p_\perp > 20$ GeV and all final states particles are used for the reconstruction of $\xi$.

Source code: CMS_2012_I1184941.cc
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FastJets.hh"
#include "Rivet/Projections/FinalState.hh"

namespace Rivet {


  class CMS_2012_I1184941 : public Analysis {
  public:

    CMS_2012_I1184941()
      : Analysis("CMS_2012_I1184941")
    {   }


    void init() {
      FinalState fs;
      declare(fs, "FS");

      const FastJets jets(FinalState((Cuts::etaIn(-4.9, 4.9))), FastJets::ANTIKT, 0.5);
      declare(jets, "AntiKtJets05");

      book(_h_xi ,1, 1, 1);
    }


    void analyze(const Event& event) {
      double xiM = 0.;
      double xiP = 0.;

      const Jets jets = apply<FastJets>(event, "AntiKtJets05").jetsByPt(20.*GeV);
      if (jets.size() < 2) vetoEvent;  // require a dijet system with a 20 GeV cut on both jets
      if (fabs(jets[0].eta()) > 4.4 || fabs(jets[1].eta()) > 4.4) vetoEvent;

      const FinalState& fsp = apply<FinalState>(event, "FS");

      for (const Particle& p : fsp.particles(cmpMomByEta)) {
        const double eta = p.eta();
        const double energy = p.E();
        const double costheta = cos(p.theta());
        // Yes, they really correct to +/- infinity, using Pythia 8 ...
        if (eta < 4.9)  xiP += (energy + energy*costheta);
        if (eta > -4.9 ) xiM += (energy - energy*costheta);
      }

      xiP = xiP / (sqrtS()/GeV);
      xiM = xiM / (sqrtS()/GeV);

      const double weight = 1.0;
      _h_xi->fill( xiM, weight ); // Fill the histogram both with xiP and xiM, and get the average in the endjob.
      _h_xi->fill( xiP, weight );
    }


    void finalize() {
      scale( _h_xi, crossSection()/microbarn/sumOfWeights() / 2.);
    }


  private:

    Histo1DPtr _h_xi;

  };

  // The hook for the plugin system
  RIVET_DECLARE_PLUGIN(CMS_2012_I1184941);

}