rivet is hosted by Hepforge, IPPP Durham

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// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FastJets.hh"
 4#include "Rivet/Projections/FinalState.hh"
 5
 6namespace Rivet {
 7
 8
 9  class CMS_2012_I1184941 : public Analysis {
10  public:
11
12    CMS_2012_I1184941()
13      : Analysis("CMS_2012_I1184941")
14    {   }
15
16
17    void init() {
18      FinalState fs;
19      declare(fs, "FS");
20
21      const FastJets jets(FinalState((Cuts::etaIn(-4.9, 4.9))), JetAlg::ANTIKT, 0.5);
22      declare(jets, "AntiKtJets05");
23
24      book(_h_xi ,1, 1, 1);
25    }
26
27
28    void analyze(const Event& event) {
29      double xiM = 0.;
30      double xiP = 0.;
31
32      const Jets jets = apply<FastJets>(event, "AntiKtJets05").jetsByPt(Cuts::pT > 20.*GeV);
33      if (jets.size() < 2) vetoEvent;  // require a dijet system with a 20 GeV cut on both jets
34      if (fabs(jets[0].eta()) > 4.4 || fabs(jets[1].eta()) > 4.4) vetoEvent;
35
36      const FinalState& fsp = apply<FinalState>(event, "FS");
37
38      for (const Particle& p : fsp.particles(cmpMomByEta)) {
39        const double eta = p.eta();
40        const double energy = p.E();
41        const double costheta = cos(p.theta());
42        // Yes, they really correct to +/- infinity, using Pythia 8 ...
43        if (eta < 4.9)  xiP += (energy + energy*costheta);
44        if (eta > -4.9 ) xiM += (energy - energy*costheta);
45      }
46
47      xiP = xiP / (sqrtS()/GeV);
48      xiM = xiM / (sqrtS()/GeV);
49
50      _h_xi->fill( xiM ); // Fill the histogram both with xiP and xiM, and get the average in the endjob.
51      _h_xi->fill( xiP );
52    }
53
54
55    void finalize() {
56      scale( _h_xi, crossSection()/microbarn/sumOfWeights() / 2.);
57    }
58
59
60  private:
61
62    Histo1DPtr _h_xi;
63
64  };
65
66  RIVET_DECLARE_PLUGIN(CMS_2012_I1184941);
67
68}