Rivet analyses

High-mass Drell-Yan at 7 TeV

Experiment: ATLAS (LHC)

Inspire ID: 1234228

Status: VALIDATED

Authors: - Christian Gutschow

References: - Expt page: ATLAS-STDM-2012-10 - Phys.Lett. B725 (2013) 223-242 - DOI: 10.1016/j.physletb.2013.07.049 - arXiv: 1305.4192

Beams: p+ p+

Beam energies: (3500.0, 3500.0)GeV

Run details: - Drell-Yan production in pp collisions at 7 TeV

This Letter reports a measurement of the high-mass Drell-Yan differential cross-section in proton-proton collisions at a centre-of-mass energy of 7 TeV at the LHC. Based on an integrated luminosity of 4.9 fb−1, the differential cross-section in the Z/γ* → e+e channel is measured with the ATLAS detector as a function of the invariant mass, mee, in the range 116 < mee < 1500 GeV, for a fiducial region in which both the electron and the positron have transverse momentum pT > 25 GeV and pseudorapidity |η| < 2.5. A comparison is made to various event generators and to the predictions of perturbative QCD calculations at next-to-next-to-leading order.

Source code:ATLAS_2013_I1234228.cc

// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/DileptonFinder.hh"

namespace Rivet {


  /// @brief Add a short analysis description here
  class ATLAS_2013_I1234228 : public Analysis {
  public:


    /// Constructor
    RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2013_I1234228);

    /// @name Analysis methods
    /// @{

    /// Book histograms and initialise projections before the run
    void init() {

      const FinalState fs;
      Cut cuts = Cuts::abseta < 2.5 && Cuts::pT > 25*GeV;
      DileptonFinder zfinder(91.2*GeV, 0.1, cuts && Cuts::abspid == PID::ELECTRON, Cuts::massIn(116*GeV, 1500*GeV));
      declare(zfinder, "DileptonFinder");

      book(_hist_mll, 1, 1, 2);
    }


    /// Perform the per-event analysis
    void analyze(const Event& event) {
      const DileptonFinder& zfinder = apply<DileptonFinder>(event, "DileptonFinder");

      if (zfinder.bosons().size() != 1)  vetoEvent;

      double mass = zfinder.bosons()[0].mass();
      _hist_mll->fill(mass);
    }


    /// Normalise histograms etc., after the run
    void finalize() {
      const double sf = crossSection()/picobarn/sumOfWeights();
      scale(_hist_mll, sf);
    }

    /// @}

  private:


    /// @name Histograms
    /// @{
    Histo1DPtr _hist_mll;
    /// @}

  };

  RIVET_DECLARE_PLUGIN(ATLAS_2013_I1234228);

}