Rivet analyses

Measurement of the low-mass Drell-Yan differential cross section at 7 TeV

Experiment: ATLAS (LHC)

Inspire ID: 1288706

Status: VALIDATED

Authors: - Elena Yatsenko

References: - Expt page: ATLAS-STDM-2011-41 - JHEP06(2014)112 - DOI: 10.1007/JHEP06(2014)112 - arXiv: 1404.1212

Beams: p+ p+

Beam energies: (3500.0, 3500.0)GeV

Run details: - Run with inclusive Z events, with Z/γ* decays to electrons and/or muons at $\sqrt{s} = 7$~TeV.

Measurements of the differential cross section for the process Z/γ* → l (l = e, μ) as a function of dilepton invariant mass in pp collisions at $\sqrt{s} = 7$~TeV. The measurement is performed in the e and μ channels for invariant masses between 26 GeV and 66 GeV in the fiducial region pTleading > 15~GeV, pTsubleading > 12~GeV, |η| < 2.4 using an integrated luminosity of 1.6~fb−1. The analysis is extended to invariant masses as low as 12 GeV in the muon channel within a fiducal region of pTleading > 9~GeV, pTsubleading > 6~GeV, |η| < 2.4 with 35~pb−1.

Source code:ATLAS_2014_I1288706.cc

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

namespace Rivet {


  /// Low-mass Drell-Yan differential cross section at 7 TeV
  class ATLAS_2014_I1288706 : public Analysis {
  public:

    /// Constructor
    RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2014_I1288706);


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

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

      // Set up projections
      DileptonFinder zfinder_ext_dressed_mu(91.2*GeV, 0.1, Cuts::abseta < 2.4 && Cuts::pT > 6.0*GeV && Cuts::abspid == PID::MUON, Cuts::massIn(12.0*GeV, 66.0*GeV));
      declare(zfinder_ext_dressed_mu, "DileptonFinder_ext_dressed_mu");

      DileptonFinder zfinder_dressed_mu(91.2*GeV, 0.1, Cuts::abseta < 2.4 && Cuts::pT > 12*GeV && Cuts::abspid == PID::MUON, Cuts::massIn(26.0*GeV, 66.0*GeV));
      declare(zfinder_dressed_mu, "DileptonFinder_dressed_mu");

      DileptonFinder zfinder_dressed_el(91.2*GeV, 0.1, Cuts::abseta < 2.4 && Cuts::pT > 12*GeV && Cuts::abspid == PID::ELECTRON, Cuts::massIn(26.0*GeV, 66.0*GeV));
      declare(zfinder_dressed_el, "DileptonFinder_dressed_el");

      book(_hist_ext_mu_dressed, 1, 1, 1); // muon, dressed level, extended phase space
      book(_hist_mu_dressed, 2, 1, 1); // muon, dressed level, nominal phase space
      book(_hist_el_dressed, 2, 1, 2); // electron, dressed level, nominal phase space
    }


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

      const DileptonFinder& zfinder_ext_dressed_mu = apply<DileptonFinder>(event, "DileptonFinder_ext_dressed_mu");
      const DileptonFinder& zfinder_dressed_mu     = apply<DileptonFinder>(event, "DileptonFinder_dressed_mu"    );
      const DileptonFinder& zfinder_dressed_el     = apply<DileptonFinder>(event, "DileptonFinder_dressed_el"    );

      fillPlots(zfinder_ext_dressed_mu, _hist_ext_mu_dressed, 9*GeV);
      fillPlots(zfinder_dressed_mu,     _hist_mu_dressed,    15*GeV);
      fillPlots(zfinder_dressed_el,     _hist_el_dressed,    15*GeV);
    }


    /// Helper function to fill the histogram if a Z is found with the required lepton cuts
    void fillPlots(const DileptonFinder& zfinder, Histo1DPtr hist, double leading_pT) {
      if (zfinder.bosons().size() != 1) return;
      const FourMomentum el1 = zfinder.leptons()[0];
      const FourMomentum el2 = zfinder.leptons()[1];
      if (el1.pT() < leading_pT && el2.pT() < leading_pT) return;
      const double mass = zfinder.bosons()[0].mass();
      hist->fill(mass/GeV);
    }


    /// Normalise histograms etc., after the run
    void finalize() {
      scale(_hist_ext_mu_dressed, crossSection()/picobarn/sumOfWeights());
      scale(_hist_mu_dressed,     crossSection()/picobarn/sumOfWeights());
      scale(_hist_el_dressed,     crossSection()/picobarn/sumOfWeights());
    }

    /// @}


  private:

    /// Histograms
    Histo1DPtr _hist_ext_mu_dressed, _hist_mu_dressed, _hist_el_dressed;

  };


  RIVET_DECLARE_PLUGIN(ATLAS_2014_I1288706);

}