Rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2011_I954993

$WZ$ fiducial cross-section at 7 TeV in ATLAS
Experiment: ATLAS (LHC 7TeV)
Inspire ID: 954993
Status: VALIDATED
Authors:
  • Lynn Marx
  • Roman Lysak
References:
  • Phys.Lett. B709 (2012) 341-357
  • arXiv: 1111.5570
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
  • pp WZ events at 7 TeV with direct e, mu W/Z boson decays (no taus from W/Z)

This is a measurement of $WZ$ production in 1.02 fb$^{-1}$ of $pp$ collision data at $\sqrt{s} = $7 TeV collected by the ATLAS experiment in 2011. Doubly leptonic decay events are selected with electrons, muons and missing transverse momentum in the final state. The measurement of the combined fiducial cross section for the $WZ$ bosons decaying directly into electrons and muons is performed.

Source code: ATLAS_2011_I954993.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
109
110
111
112
113
114
115
116
117
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ZFinder.hh"
#include "Rivet/Projections/WFinder.hh"
#include "Rivet/Projections/VetoedFinalState.hh"

namespace Rivet {


  /// @brief WZ fiducial cross-section measurement
  class ATLAS_2011_I954993 : public Analysis {
  public:

    /// Default constructor
    ATLAS_2011_I954993()
      : Analysis("ATLAS_2011_I954993")
    {
      setNeedsCrossSection(true);
    }


    /// @name Analysis methods
    //@{

    /// Projection and histogram setup
    void init() {
      FinalState fs;
      Cut cuts = Cuts::abseta < 2.5 && Cuts::pT > 15*GeV;

      ZFinder zfinder_e(fs, cuts, PID::ELECTRON, 81.1876*GeV, 101.1876*GeV, 0.1, ZFinder::CLUSTERNODECAY);
      declare(zfinder_e, "ZFinder_e");
      ZFinder zfinder_mu(fs, cuts, PID::MUON, 81.1876*GeV, 101.1876*GeV, 0.1, ZFinder::CLUSTERNODECAY);
      declare(zfinder_mu, "ZFinder_mu");

      VetoedFinalState weinput;
      weinput.addVetoOnThisFinalState(zfinder_e);
      WFinder wfinder_e(weinput, cuts, PID::ELECTRON, 0*GeV, 1000*GeV, 25*GeV, 0.1, WFinder::CLUSTERNODECAY);
      declare(wfinder_e, "WFinder_e");

      VetoedFinalState wminput;
      wminput.addVetoOnThisFinalState(zfinder_mu);
      WFinder wfinder_mu(wminput,cuts, PID::MUON, 0*GeV, 1000*GeV, 25*GeV, 0.1, WFinder::CLUSTERNODECAY);
      declare(wfinder_mu, "WFinder_mu");

      // Histograms
      _h_fiducial = bookHisto1D(1,1,1);
    }


    /// Do the analysis
    void analyze(const Event& e) {
      const ZFinder& zfinder_e = apply<ZFinder>(e, "ZFinder_e");
      const ZFinder& zfinder_mu = apply<ZFinder>(e, "ZFinder_mu");
      const WFinder& wfinder_e = apply<WFinder>(e, "WFinder_e");
      const WFinder& wfinder_mu = apply<WFinder>(e, "WFinder_mu");

      // Looking for a Z, exit if not found
      if (zfinder_e.bosons().size() != 1 && zfinder_mu.bosons().size() != 1) {
        MSG_DEBUG("No Z boson found, vetoing event");
        vetoEvent;
      }

      // Looking for a W, exit if not found
      if (wfinder_e.bosons().size()!= 1 && wfinder_mu.bosons().size() != 1) {
        MSG_DEBUG("No W boson found, vetoing event");
        vetoEvent;
      }

      // If we find a W, make fiducial acceptance cuts and exit if not found
      if (wfinder_e.bosons().size() == 1) {
        const FourMomentum We = wfinder_e.constituentLeptons()[0];
        const FourMomentum Wenu = wfinder_e.constituentNeutrinos()[0];
        const double mT = wfinder_e.mT();
        if (Wenu.pT() < 25*GeV || We.pT() < 20*GeV || mT < 20*GeV) {
          MSG_DEBUG("Wnu pT = " << Wenu.pT()/GeV << " GeV, Wl pT = " << We.pT()/GeV << " GeV, mT = " << mT/GeV << " GeV");
          vetoEvent;
        }
      } else if (wfinder_mu.bosons().size() == 1) {
        const FourMomentum Wmu = wfinder_mu.constituentLeptons()[0];
        const FourMomentum Wmunu = wfinder_mu.constituentNeutrinos()[0];
        const double mT = wfinder_mu.mT();
        if (Wmunu.pT() < 25*GeV || Wmu.pT() < 20*GeV || mT < 20*GeV) {
          MSG_DEBUG("Wnu pT = " << Wmunu.pT()/GeV << ", Wl pT = " << Wmu.pT()/GeV << " GeV, mT = " << mT/GeV << " GeV");
          vetoEvent;
        }
      } else {
        MSG_DEBUG("No W boson found: vetoing event");
        vetoEvent;
      }

      // Update the fiducial cross-section histogram
      _h_fiducial->fill(7000, e.weight());
    }


    /// Finalize
    void finalize() {
      scale(_h_fiducial, crossSection()/femtobarn/sumOfWeights());
    }

    //@}


  private:

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

  };


  //// The hook for the plugin system
  DECLARE_RIVET_PLUGIN(ATLAS_2011_I954993);

}