Rivet analyses


title: 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: - Expt page: ATLAS-STDM-2011-25 - 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

```c++ // -- C++ --

include "Rivet/Analysis.hh"

include "Rivet/Projections/DileptonFinder.hh"

include "Rivet/Projections/LeptonFinder.hh"

include "Rivet/Projections/MissingMomentum.hh"

include "Rivet/Projections/PromptFinalState.hh"

include "Rivet/Projections/VetoedFinalState.hh"

namespace Rivet {

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

/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2011_I954993);


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

/// Projection and histogram setup
void init() {
  Cut cuts = Cuts::abseta < 2.5 && Cuts::pT > 15 * GeV;
  DileptonFinder zfinder_e(91.2 * GeV, 0.1, cuts && Cuts::abspid == PID::ELECTRON,
                           Cuts::massIn(81.1876 * GeV, 101.1876 * GeV));
  declare(zfinder_e, "DileptonFinder_e");
  DileptonFinder zfinder_mu(91.2 * GeV, 0.1, cuts && Cuts::abspid == PID::MUON,
                            Cuts::massIn(81.1876 * GeV, 101.1876 * GeV));
  declare(zfinder_mu, "DileptonFinder_mu");

  declare("MET", MissingMomentum());
  VetoedFinalState weinput;
  weinput.addVetoOnThisFinalState(zfinder_e);
  LeptonFinder ef(weinput, 0.1, cuts && Cuts::abspid == PID::ELECTRON);
  declare(ef, "Elecs");
  VetoedFinalState wminput;
  wminput.addVetoOnThisFinalState(zfinder_mu);
  LeptonFinder mf(wminput, 0.1, cuts && Cuts::abspid == PID::MUON);
  declare(mf, "Muons");

  // Histograms
  book(_h_fiducial, 1, 1, 1);
}


/// Do the analysis
void analyze(const Event& event) {

  // Looking for a Z, exit if not found
  const DileptonFinder& zfinder_e = apply<DileptonFinder>(event, "DileptonFinder_e");
  const DileptonFinder& zfinder_mu = apply<DileptonFinder>(event, "DileptonFinder_mu");
  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
  const P4& pmiss = apply<MissingMom>(event, "MET").missingMom();
  if (pmiss.Et() < 25 * GeV) vetoEvent;
  const Particles& es = apply<LeptonFinder>(event, "Elecs").particles();
  const int iefound = closestMatchIndex(es, pmiss, Kin::mass, 80.4 * GeV, 0 * GeV, 1000 * GeV);
  const Particles& mus = apply<LeptonFinder>(event, "Muons").particles();
  const int imfound = closestMatchIndex(mus, pmiss, Kin::mass, 80.4 * GeV, 0 * GeV, 1000 * GeV);
  if (iefound < 0 && imfound < 0) {
    MSG_DEBUG("No W boson found, vetoing event");
    vetoEvent;
  }

  // If we find a W, make fiducial acceptance cuts and exit if not found
  if (iefound >= 0) {
    const Particle& e = es[iefound];
    const double mt = mT(pmiss, e);
    if (e.pT() < 20 * GeV || mt < 20 * GeV) vetoEvent;
  }
  else if (imfound >= 0) {
    const Particle& m = mus[imfound];
    const double mt = mT(pmiss, m);
    if (m.pT() < 20 * GeV || mt < 20 * GeV) vetoEvent;
  }

  // Update the fiducial cross-section histogram
  /// @todo Would be better as a counter
  _h_fiducial->fill(7000);
}


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

/// @}

private:

/// Histogram
Histo1DPtr _h_fiducial;

};

RIVET_DECLARE_PLUGIN(ATLAS_2011_I954993);

} ```