Rivet analyses

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 $ = $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++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/DileptonFinder.hh"
#include "Rivet/Projections/MissingMomentum.hh"
#include "Rivet/Projections/LeptonFinder.hh"
#include "Rivet/Projections/VetoedFinalState.hh"
#include "Rivet/Projections/PromptFinalState.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);

}