Rivet analyses

Measurement of the differential cross section for inclusive dijet production as a function of ξ in 7 TeV proton-proton collisions.

Experiment: CMS (LHC)

Inspire ID: 1184941

Status: VALIDATED

Authors: - Sercan Sen - Alexander Proskuryakov

References: - arXiv: 1209.1805 - Submitted to Phys. Rev. D

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{\pT}$ greater than 15 GeV) and diffractive-enhanced events.

Measurement of the differential cross section for inclusive dijet production as a function of ξ 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 |η| < 4.4 with $\pT > 20$ GeV and all final states particles are used for the reconstruction of ξ.

Source code:CMS_2012_I1184941.cc

// -*- 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))), JetAlg::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(Cuts::pT > 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);

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


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


  private:

    Histo1DPtr _h_xi;

  };

  RIVET_DECLARE_PLUGIN(CMS_2012_I1184941);

}