rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2011_S9131140

Measurement of the Z pT with electrons and muons at 7 TeV
Experiment: ATLAS (LHC)
Inspire ID: 917931
Status: VALIDATED
Authors:
  • Elena Yatsenko
  • Judith Katzy
References: Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • Run with inclusive $Z$ events, with $Z/\gamma^*$ decays to electrons and/or muons.

The Z pT at $\sqrt{s} = 7$ TeV is measured using electron and muon $Z$ decay channels. The dressed leptons definition uses photons clustered in a cone around the charged leptons, while the bare lepton definition uses the post-FSR charged leptons only in the $Z$ reconstruction. The data used in the bare leptons calculation are based on a forward application of a PHOTOS-based energy loss correction and are hence not quite model-independent.

Source code: ATLAS_2011_S9131140.cc
  1// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/ZFinder.hh"
  4
  5namespace Rivet {
  6
  7
  8  /// @brief ATLAS Z pT in Drell-Yan events at 7 TeV
  9  ///
 10  /// @author Elena Yatsenko, Judith Katzy
 11  class ATLAS_2011_S9131140 : public Analysis {
 12  public:
 13
 14    /// Constructor
 15    RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2011_S9131140);
 16
 17
 18    /// @name Analysis methods
 19    //@{
 20
 21    void init() {
 22
 23      // Set up projections
 24      FinalState fs;
 25      Cut cut = Cuts::abseta < 2.4 && Cuts::pT > 20*GeV;
 26
 27      ZFinder zfinder_dressed_el(fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::ClusterPhotons::NODECAY);
 28      declare(zfinder_dressed_el, "ZFinder_dressed_el");
 29      ZFinder zfinder_bare_el(fs, cut, PID::ELECTRON, 66.0*GeV, 116.0*GeV, 0.0, ZFinder::ClusterPhotons::NONE);
 30      declare(zfinder_bare_el, "ZFinder_bare_el");
 31      ZFinder zfinder_dressed_mu(fs, cut, PID::MUON, 66.0*GeV, 116.0*GeV, 0.1, ZFinder::ClusterPhotons::NODECAY);
 32      declare(zfinder_dressed_mu, "ZFinder_dressed_mu");
 33      ZFinder zfinder_bare_mu(fs, cut, PID::MUON, 66.0*GeV, 116.0*GeV, 0.0, ZFinder::ClusterPhotons::NONE);
 34      declare(zfinder_bare_mu, "ZFinder_bare_mu");
 35
 36      // Book histograms
 37      book(_hist_zpt_el_dressed     ,1, 1, 2);  // electron "dressed"
 38      book(_hist_zpt_el_bare        ,1, 1, 3);  // electron "bare"
 39      book(_hist_zpt_mu_dressed     ,2, 1, 2);  // muon "dressed"
 40      book(_hist_zpt_mu_bare        ,2, 1, 3);  // muon "bare"
 41
 42      book(_sumw_el_bare, "_sumw_el_bare");
 43      book(_sumw_el_dressed, "_sumw_el_dressed");
 44      book(_sumw_mu_bare, "_sumw_mu_bare");
 45      book(_sumw_mu_dressed, "_sumw_mu_dressed");
 46    }
 47
 48
 49    /// Do the analysis
 50    void analyze(const Event& evt) {
 51      const ZFinder& zfinder_dressed_el = apply<ZFinder>(evt, "ZFinder_dressed_el");
 52      if (!zfinder_dressed_el.bosons().empty()) {
 53        _sumw_el_dressed->fill();
 54        const FourMomentum pZ = zfinder_dressed_el.bosons()[0].momentum();
 55        _hist_zpt_el_dressed->fill(pZ.pT()/GeV);
 56      }
 57
 58      const ZFinder& zfinder_bare_el = apply<ZFinder>(evt, "ZFinder_bare_el");
 59      if (!zfinder_bare_el.bosons().empty()) {
 60        _sumw_el_bare->fill();
 61	    const FourMomentum pZ = zfinder_bare_el.bosons()[0].momentum();
 62        _hist_zpt_el_bare->fill(pZ.pT()/GeV);
 63      }
 64
 65      const ZFinder& zfinder_dressed_mu = apply<ZFinder>(evt, "ZFinder_dressed_mu");
 66      if (!zfinder_dressed_mu.bosons().empty()) {
 67        _sumw_mu_dressed->fill();
 68        const FourMomentum pZ = zfinder_dressed_mu.bosons()[0].momentum();
 69        _hist_zpt_mu_dressed->fill(pZ.pT()/GeV);
 70      }
 71
 72      const ZFinder& zfinder_bare_mu = apply<ZFinder>(evt, "ZFinder_bare_mu");
 73      if (!zfinder_bare_mu.bosons().empty()) {
 74        _sumw_mu_bare->fill();
 75        const FourMomentum pZ = zfinder_bare_mu.bosons()[0].momentum();
 76        _hist_zpt_mu_bare->fill(pZ.pT()/GeV);
 77      }
 78
 79    }
 80
 81
 82    void finalize() {
 83      if (_sumw_el_dressed->val() != 0) scale(_hist_zpt_el_dressed, 1/ *_sumw_el_dressed);
 84      if (_sumw_el_bare->val()    != 0) scale(_hist_zpt_el_bare,    1/ *_sumw_el_bare);
 85      if (_sumw_mu_dressed->val() != 0) scale(_hist_zpt_mu_dressed, 1/ *_sumw_mu_dressed);
 86      if (_sumw_mu_bare->val()    != 0) scale(_hist_zpt_mu_bare,    1/ *_sumw_mu_bare);
 87    }
 88
 89    //@}
 90
 91
 92    private:
 93
 94	CounterPtr _sumw_el_bare, _sumw_el_dressed;
 95	CounterPtr _sumw_mu_bare, _sumw_mu_dressed;
 96
 97	Histo1DPtr _hist_zpt_el_dressed;
 98	Histo1DPtr _hist_zpt_el_bare;
 99	Histo1DPtr _hist_zpt_mu_dressed;
100	Histo1DPtr _hist_zpt_mu_bare;
101  };
102
103
104
105  RIVET_DECLARE_ALIASED_PLUGIN(ATLAS_2011_S9131140, ATLAS_2011_I917931);
106
107}