rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMS_2017_I1467451

Measurement of the transverse momentum spectrum of the Higgs boson produced in $pp$collisions at $\sqrt{s} = 8$ TeV using H to WW decays
Experiment: CMS (LHC)
Inspire ID: 1467451
Status: VALIDATED
Authors:
  • Lorenzo Viliani lorenzo.viliani@cern.ch
References:
  • JHEP 1703 (2017) 032, 2017
  • DOI:10.1007/JHEP03(2017)032
  • arXiv: 1606.01522
  • CMS-HIG-15-010
Beams: p+ p+
Beam energies: (4000.0, 4000.0) GeV
Run details:
  • H->WW->lvlv, both ggH and XH (VBF anf VH) productions modes are included

The cross section for Higgs boson production in pp collisions is studied using the $H\rightarrow W^+ W^-$ decay mode, followed by leptonic decays of the W bosons to an oppositely charged electron-muon pair in the final state. The measurements are performed using data collected by the CMS experiment at the LHC at a centre-of-mass energy of 8 TeV, corresponding to an integrated luminosity of $19.4\,\text{fb}^{-1}$. The Higgs boson transverse momentum ($p_\text{T}$) is reconstructed using the lepton pair $p_\text{T}$ and missing $p_\text{T}$. The differential cross section times branching fraction is measured as a function of the Higgs boson $p_\text{T}$ in a fiducial phase space defined to match the experimental acceptance in terms of the lepton kinematics and event topology. The production cross section times branching fraction in the fiducial phase space is measured to be $39 \pm 8\,\text{(stat)} \pm 9\,\text{(syst)}\,\text{fb}$. The measurements are found to agree, within experimental uncertainties, with theoretical calculations based on the standard model. The fiducial region is defined at particle level (using Born level leptons) as: - emununu, leptons are required not to originate from leptonic tau decays - leading lepton $p_T > 20$ GeV - subleading lepton $p_T > 10$ GeV - psudorapidity of electrons and muons $|\eta| < 2.5$ - Invariant mass of the two charged leptons $m_{ll} > 12$ GeV - Charged lepton pair $p_T > 30$ GeV - Invariant mass of the leptonic system in the transverse plane $m_T^{e\mu\nu\nu} > 50$ GeV

Source code: CMS_2017_I1467451.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
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/ChargedLeptons.hh"
#include "Rivet/Projections/DressedLeptons.hh"
#include "Rivet/Projections/IdentifiedFinalState.hh"
#include "Rivet/Projections/PromptFinalState.hh"
#include "Rivet/Projections/MissingMomentum.hh"

namespace Rivet {


  /// Higgs -> WW -> emu + MET in 8 TeV pp collisions
  class CMS_2017_I1467451 : public Analysis {
  public:

    /// Constructor
    DEFAULT_RIVET_ANALYSIS_CTOR(CMS_2017_I1467451);


    /// Book histograms and initialise projections before the run
    void init() {

      const double lepConeSize = 0.1;
      const double lepMaxEta = 2.5;
      const Cut lepton_cut = (Cuts::abseta < lepMaxEta);

      // Initialise and register projections
      FinalState fs(-2.5,2.5,0.0*GeV);
      FinalState fsm(-5,5,0.0*GeV);
      addProjection(fs, "FS");
      addProjection(fsm, "FSM");

      ChargedLeptons charged_leptons(fs);
      IdentifiedFinalState photons(fs);
      photons.acceptIdPair(PID::PHOTON);

      PromptFinalState prompt_leptons(charged_leptons);
      prompt_leptons.acceptMuonDecays(true);
      prompt_leptons.acceptTauDecays(false);

      PromptFinalState prompt_photons(photons);
      prompt_photons.acceptMuonDecays(true);
      prompt_photons.acceptTauDecays(false);

      DressedLeptons dressed_leptons = DressedLeptons(prompt_photons, prompt_leptons, lepConeSize, lepton_cut, true);
      addProjection(dressed_leptons, "DressedLeptons");

      MissingMomentum Met(fsm);
      addProjection(Met, "MET");


      // Book histograms
      histoPtH = bookHisto1D(1,1,1);
      histoXsec = bookHisto1D(2,1,1);
    }


    /// Perform the per-event analysis
    void analyze(const Event& event) {
      const double weight = event.weight();

      Particles leptons = applyProjection<DressedLeptons>(event, "DressedLeptons").particlesByPt(10.0*GeV);
      if (leptons.size() < 2) vetoEvent;
      if (leptons[0].pT() < 20*GeV || leptons[1].pT() < 10*GeV) vetoEvent;
      if (leptons[0].charge() == leptons[1].charge()) vetoEvent;
      if (leptons[0].abspid() == leptons[1].abspid()) vetoEvent;

      FourMomentum LL = (leptons[0].momentum() + leptons[1].momentum());
      if (LL.mass() < 12*GeV) vetoEvent;
      if (LL.pT() < 30*GeV) vetoEvent;

      FourMomentum EtMiss = applyProjection<MissingMomentum>(event,"MET").missingMomentum();
      FourMomentum P4H = LL + EtMiss;

      double dphi = deltaPhi(LL, EtMiss);

      double mT = sqrt(2*LL.pT()*EtMiss.pT()*(1-cos(dphi)));
      if (mT < 50*GeV) vetoEvent;

      histoPtH->fill(min(P4H.pT()/GeV, 199.), weight);
      histoXsec->fill(8000, weight); ///< @todo Should probably be a Counter
    }


    /// Normalise histograms etc., after the run
    void finalize() {
      scale(histoPtH, crossSection()/sumOfWeights());
      scale(histoXsec, (histoXsec->xMax()-histoXsec->xMin())*crossSection()/sumOfWeights());
    }


  private:

    Histo1DPtr histoPtH, histoXsec;

  };


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

}