Rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### ATLAS_2010_S8919674

$W$ + jets jet multiplicities and $p_\perp$
Experiment: ATLAS (LHC)
Inspire ID: 882534
Status: VALIDATED
Authors:
• Frank Siegert
References:
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
• W+jets events ideally with matrix element corrections to describe the higher jet multiplicities correctly. Both channels, electron and muon, are part of this analysis and should be run simultaneously.

Cross sections, in both the electron and muon decay modes of the W boson, are presented as a function of jet multiplicity and of the transverse momentum of the leading and next-to-leading jets in the event. Measurements are also presented of the ratio of cross sections for inclusive jet multiplicities. The results, based on an integrated luminosity of 1.3 pb-1, have been corrected for all known detector effects and are quoted in a limited and well-defined range of jet and lepton kinematics.

Source code: ATLAS_2010_S8919674.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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/WFinder.hh" namespace Rivet { /// W + jets jet multiplicities and pT class ATLAS_2010_S8919674 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor ATLAS_2010_S8919674() : Analysis("ATLAS_2010_S8919674") { } //@} public: /// @name Analysis methods //@{ /// Book histograms and initialise projections before the run void init() { // Set up projections to find the electron and muon Ws FinalState fs; Cut cuts = (Cuts::abseta < 1.37 || Cuts::absetaIn(1.52, 2.47)) && Cuts::pT > 20*GeV; WFinder wfinder_e(fs, cuts, PID::ELECTRON, 0*GeV, 1000*GeV, 25*GeV); declare(wfinder_e, "W_e"); WFinder wfinder_mu(fs, Cuts::abseta < 2.4 && Cuts::pT > 20*GeV, PID::MUON, 0*GeV, 1000*GeV, 25*GeV); declare(wfinder_mu, "W_mu"); // Input for the jets: no neutrinos, no muons, and no electron which passed the electron cuts VetoedFinalState veto; veto.addVetoOnThisFinalState(wfinder_e); veto.addVetoOnThisFinalState(wfinder_mu); veto.addVetoPairId(PID::MUON); veto.vetoNeutrinos(); FastJets jets(veto, FastJets::ANTIKT, 0.4); declare(jets, "jets"); /// Book histograms _h_el_njet_inclusive = bookHisto1D(1,1,1); _h_mu_njet_inclusive = bookHisto1D(2,1,1); _h_el_pT_jet1 = bookHisto1D(5,1,1); _h_mu_pT_jet1 = bookHisto1D(6,1,1); _h_el_pT_jet2 = bookHisto1D(7,1,1); _h_mu_pT_jet2 = bookHisto1D(8,1,1); } /// Perform the per-event analysis void analyze(const Event& event) { const double weight = event.weight(); const Jets& jets = apply(event, "jets").jetsByPt(20.0*GeV); const WFinder& We = apply(event, "W_e"); if (We.bosons().size() == 1) { const FourMomentum p_miss = We.constituentNeutrinos()[0]; const FourMomentum p_lept = We.constituentLeptons()[0]; if (p_miss.Et() > 25*GeV && We.mT() > 40*GeV) { Jets js; for (const Jet& j : jets) { if (j.abseta() < 2.8 && deltaR(p_lept, j.momentum()) > 0.5) js.push_back(j); } _h_el_njet_inclusive->fill(0, weight); if (js.size() >= 1) { _h_el_njet_inclusive->fill(1, weight); _h_el_pT_jet1->fill(js[0].pT(), weight); } if (js.size() >= 2) { _h_el_njet_inclusive->fill(2, weight); _h_el_pT_jet2->fill(js[1].pT(), weight); } if (js.size() >= 3) { _h_el_njet_inclusive->fill(3, weight); } } } const WFinder& Wm = apply(event, "W_mu"); if (Wm.bosons().size() == 1) { const FourMomentum p_miss = Wm.constituentNeutrinos()[0]; const FourMomentum p_lept = Wm.constituentLeptons()[0]; if (p_miss.Et() > 25*GeV && Wm.mT() > 40*GeV) { Jets js; for (const Jet& j : jets) { if (j.abseta() < 2.8 && deltaR(p_lept, j.momentum()) > 0.5) js.push_back(j); } _h_mu_njet_inclusive->fill(0, weight); if (js.size() >= 1) { _h_mu_njet_inclusive->fill(1, weight); _h_mu_pT_jet1->fill(js[0].pT(), weight); } if (js.size() >= 2) { _h_mu_njet_inclusive->fill(2, weight); _h_mu_pT_jet2->fill(js[1].pT(), weight); } if (js.size() >= 3) { _h_mu_njet_inclusive->fill(3, weight); } if (js.size() >= 4) { _h_mu_njet_inclusive->fill(4, weight); } } } } /// Normalise histograms etc., after the run void finalize() { double normfac = crossSection()/sumOfWeights(); scale(_h_el_njet_inclusive, normfac); scale(_h_mu_njet_inclusive, normfac); scale(_h_el_pT_jet1, normfac); scale(_h_mu_pT_jet1, normfac); scale(_h_el_pT_jet2, normfac); scale(_h_mu_pT_jet2, normfac); } //@} private: /// @name Histograms //@{ Histo1DPtr _h_el_njet_inclusive; Histo1DPtr _h_mu_njet_inclusive; Histo1DPtr _h_el_pT_jet1; Histo1DPtr _h_mu_pT_jet1; Histo1DPtr _h_el_pT_jet2; Histo1DPtr _h_mu_pT_jet2; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2010_S8919674); }