rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2016_I1467454

High-mass Drell-Yan at 8 TeV
Experiment: ATLAS (LHC)
Inspire ID: 1467454
Status: VALIDATED
Authors:
  • Markus Zinser
References: Beams: p+ p+
Beam energies: (4000.0, 4000.0) GeV
Run details:
  • Drell-Yan production in $pp$ collisons at 8 TeV, leptonic $Z$ decays

This paper presents a measurement of the double-differential cross section for the Drell-Yan $Z/\gamma^\ast \rightarrow \ell^+\ell^-$ and photon-induced $\gamma\gamma \rightarrow \ell^+\ell^-$ processes where $\ell$ is an electron or muon. The measurement is performed for invariant masses of the lepton pairs, $m_{\ell\ell}$, between 116 GeV and 1500 GeV using a sample of 20.3 fb$^{-1}$ of pp collisions data at centre-of-mass energy of $\sqrt{s} = 8$ TeV collected by the ATLAS detector at the LHC in 2012. The data are presented double differentially in invariant mass and absolute dilepton rapidity as well as in invariant mass and absolute pseudorapidity separation of the lepton pair. The single-differential cross section as a function of $m_{\ell\ell}$ is also reported. The electron and muon channel measurements are combined and a total experimental precision of better than 1\% is achieved at low $m_{\ell\ell}$. A comparison to next-to-next-to-leading order perturbative QCD predictions using several recent parton distribution functions and including next-to-leading order electroweak effects indicates the potential of the data to constrain parton distribution functions. In particular, a large impact of the data on the photon PDF is demonstrated.

Source code: ATLAS_2016_I1467454.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
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/ZFinder.hh"
#include "Rivet/Tools/BinnedHistogram.hh"

namespace Rivet {


  /// @brief High-mass Drell-Yan at 8 TeV
  class ATLAS_2016_I1467454 : public Analysis {
  public:

    /// Constructor
    ATLAS_2016_I1467454(const string& name="ATLAS_2016_I1467454", size_t channel = 0,
                        const string& ref_data="ATLAS_2016_I1467454") : Analysis(name) {
      _mode = 0; // use electron channel by default
      setRefDataName(ref_data);
    }


    /// @name Analysis methods
    //@{

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

      const FinalState fs;
      Cut cuts = Cuts::abseta < 2.5 && Cuts::pT > 30*GeV;
      ZFinder zfinder(fs, cuts, _mode? PID::MUON : PID::ELECTRON, 116*GeV, 1500*GeV, 0.1);
      declare(zfinder, "ZFinder");

      size_t ch = _mode? 11 : 0; // offset
      _hist_mll = bookHisto1D(18 + ch, 1, 1);

      vector<double> mll_bins = { 116., 150., 200., 300., 500., 1500. };
      for (size_t i = 0; i < (mll_bins.size() - 1); ++i) {
        _hist_rap.addHistogram( mll_bins[i], mll_bins[i+1], bookHisto1D(19 + ch + i, 1, 1));
        _hist_deta.addHistogram(mll_bins[i], mll_bins[i+1], bookHisto1D(24 + ch + i, 1, 1));
      }

    }


    /// Perform the per-event analysis
    void analyze(const Event& event) {

      const ZFinder& zfinder = apply<ZFinder>(event, "ZFinder");
      if (zfinder.bosons().size() != 1)  vetoEvent;

      const Particle z0  = zfinder.bosons()[0];
      /// @todo Could use z0.constituents()
      const Particle el1 = zfinder.constituentLeptons()[0];
      const Particle el2 = zfinder.constituentLeptons()[1];

      if (el1.pT() > 40*GeV || el2.pT() > 40*GeV) {
        const double mass = z0.mass();
        const double weight = event.weight();
        _hist_mll->fill(mass/GeV, weight);
        _hist_rap. fill(mass/GeV, z0.absrap(), weight);
        _hist_deta.fill(mass/GeV, deltaEta(el1,el2), weight);
      }
    }


    /// Normalise histograms etc., after the run
    void finalize() {

      const double sf = crossSection()/sumOfWeights();
      scale(_hist_mll, sf);
      _hist_rap.scale(sf*0.5,  this);
      _hist_deta.scale(sf*0.5, this);

    }

    //@}


    /// Choose to work in electron or muon mode
    size_t _mode;


    /// @name Histograms
    //@{
    Histo1DPtr _hist_mll;
    BinnedHistogram<double> _hist_rap, _hist_deta;
    //@}

  };


  /// High-mass Drell-Yan at 8 TeV, electron channel
  struct ATLAS_2016_I1467454_EL : public ATLAS_2016_I1467454 {
    ATLAS_2016_I1467454_EL() : ATLAS_2016_I1467454("ATLAS_2016_I1467454_EL", 0) { }
  };


  /// High-mass Drell-Yan at 8 TeV, muon channel
  struct ATLAS_2016_I1467454_MU : public ATLAS_2016_I1467454 {
    ATLAS_2016_I1467454_MU() : ATLAS_2016_I1467454("ATLAS_2016_I1467454_MU", 1) { }
  };


  DECLARE_RIVET_PLUGIN(ATLAS_2016_I1467454);
  DECLARE_RIVET_PLUGIN(ATLAS_2016_I1467454_EL);
  DECLARE_RIVET_PLUGIN(ATLAS_2016_I1467454_MU);

}