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// -*- C++ -*-
  2#include "Rivet/Analysis.hh"
  3#include "Rivet/Projections/ZFinder.hh"
  4#include "Rivet/Projections/WFinder.hh"
  5#include "Rivet/Projections/VetoedFinalState.hh"
  6
  7namespace Rivet {
  8
  9
 10  /// @brief WZ fiducial cross-section measurement
 11  class ATLAS_2011_I954993 : public Analysis {
 12  public:
 13
 14    /// Default constructor
 15    ATLAS_2011_I954993()
 16      : Analysis("ATLAS_2011_I954993")
 17    {
 18
 19    }
 20
 21
 22    /// @name Analysis methods
 23    //@{
 24
 25    /// Projection and histogram setup
 26    void init() {
 27      FinalState fs;
 28      Cut cuts = Cuts::abseta < 2.5 && Cuts::pT > 15*GeV;
 29
 30      ZFinder zfinder_e(fs, cuts, PID::ELECTRON, 81.1876*GeV, 101.1876*GeV, 0.1, ZFinder::ClusterPhotons::NODECAY);
 31      declare(zfinder_e, "ZFinder_e");
 32      ZFinder zfinder_mu(fs, cuts, PID::MUON, 81.1876*GeV, 101.1876*GeV, 0.1, ZFinder::ClusterPhotons::NODECAY);
 33      declare(zfinder_mu, "ZFinder_mu");
 34
 35      VetoedFinalState weinput;
 36      weinput.addVetoOnThisFinalState(zfinder_e);
 37      WFinder wfinder_e(weinput, cuts, PID::ELECTRON, 0*GeV, 1000*GeV, 25*GeV, 0.1, WFinder::ChargedLeptons::PROMPT, WFinder::ClusterPhotons::NODECAY);
 38      declare(wfinder_e, "WFinder_e");
 39
 40      VetoedFinalState wminput;
 41      wminput.addVetoOnThisFinalState(zfinder_mu);
 42      WFinder wfinder_mu(wminput,cuts, PID::MUON, 0*GeV, 1000*GeV, 25*GeV, 0.1, WFinder::ChargedLeptons::PROMPT, WFinder::ClusterPhotons::NODECAY);
 43      declare(wfinder_mu, "WFinder_mu");
 44
 45      // Histograms
 46      book(_h_fiducial ,1,1,1);
 47    }
 48
 49
 50    /// Do the analysis
 51    void analyze(const Event& e) {
 52      const ZFinder& zfinder_e = apply<ZFinder>(e, "ZFinder_e");
 53      const ZFinder& zfinder_mu = apply<ZFinder>(e, "ZFinder_mu");
 54      const WFinder& wfinder_e = apply<WFinder>(e, "WFinder_e");
 55      const WFinder& wfinder_mu = apply<WFinder>(e, "WFinder_mu");
 56
 57      // Looking for a Z, exit if not found
 58      if (zfinder_e.bosons().size() != 1 && zfinder_mu.bosons().size() != 1) {
 59        MSG_DEBUG("No Z boson found, vetoing event");
 60        vetoEvent;
 61      }
 62
 63      // Looking for a W, exit if not found
 64      if (wfinder_e.bosons().size()!= 1 && wfinder_mu.bosons().size() != 1) {
 65        MSG_DEBUG("No W boson found, vetoing event");
 66        vetoEvent;
 67      }
 68
 69      // If we find a W, make fiducial acceptance cuts and exit if not found
 70      if (wfinder_e.bosons().size() == 1) {
 71        const FourMomentum We = wfinder_e.constituentLeptons()[0];
 72        const FourMomentum Wenu = wfinder_e.constituentNeutrinos()[0];
 73        const double mT = wfinder_e.mT();
 74        if (Wenu.pT() < 25*GeV || We.pT() < 20*GeV || mT < 20*GeV) {
 75          MSG_DEBUG("Wnu pT = " << Wenu.pT()/GeV << " GeV, Wl pT = " << We.pT()/GeV << " GeV, mT = " << mT/GeV << " GeV");
 76          vetoEvent;
 77        }
 78      } else if (wfinder_mu.bosons().size() == 1) {
 79        const FourMomentum Wmu = wfinder_mu.constituentLeptons()[0];
 80        const FourMomentum Wmunu = wfinder_mu.constituentNeutrinos()[0];
 81        const double mT = wfinder_mu.mT();
 82        if (Wmunu.pT() < 25*GeV || Wmu.pT() < 20*GeV || mT < 20*GeV) {
 83          MSG_DEBUG("Wnu pT = " << Wmunu.pT()/GeV << ", Wl pT = " << Wmu.pT()/GeV << " GeV, mT = " << mT/GeV << " GeV");
 84          vetoEvent;
 85        }
 86      } else {
 87        MSG_DEBUG("No W boson found: vetoing event");
 88        vetoEvent;
 89      }
 90
 91      // Update the fiducial cross-section histogram
 92      _h_fiducial->fill(7000);
 93    }
 94
 95
 96    /// Finalize
 97    void finalize() {
 98      scale(_h_fiducial, crossSection()/femtobarn/sumOfWeights());
 99    }
100
101    //@}
102
103
104  private:
105
106    /// @name Histograms
107    //@{
108    Histo1DPtr _h_fiducial;
109    //@}
110
111  };
112
113
114  //// The hook for the plugin system
115  RIVET_DECLARE_PLUGIN(ATLAS_2011_I954993);
116
117}