Rivet analyses
Azimuthal separation in nearly back-to-back jet topologies in inclusive 2- and 3-jet events in pp collisions at $\sqrt{s} = 13$ TeV
Experiment: CMS (LHC)
Inspire ID: 1719955
Status: VALIDATED
Authors: - Armando Bermudez Martinez - SMP conveners
References: - 10.1140/epjc/s10052-019-7276-4 - arXiv: 1902.04374 - CERN-EP-2018-344
Beams: p+ p+
Beam energies: (6500.0, 6500.0)GeV
Run details: - QCD at $\sqrt{s} = 13$ TeV, ptHat (or equivalent) greater than 100 GeV for the 2-jet observables and greater than 10 GeV for the 3-jet observables
A measurement for inclusive 2- and 3-jet events of the azimuthal correlation between the two jets with the largest transverse momenta, Δϕ12, is presented. The measurement considers events where the two leading jets are nearly collinear (“back-to-back”) in the transverse plane and is performed for several ranges of the leading jet transverse momentum. Proton-proton collision data collected with the CMS experiment at a center-of-mass energy of 13 TeV and corresponding to an integrated luminosity of 35.9 fb−1 are used.
Source
code:CMS_2019_I1719955.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"
namespace Rivet {
/// CMS azimuthal decorrelations in back-to-back dijet events at 13 TeV
class CMS_2019_I1719955 : public Analysis {
public:
/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(CMS_2019_I1719955);
/// Book projections and histograms
void init() {
const FinalState fs;
declare(FastJets(fs, JetAlg::ANTIKT, 0.4), "ANTIKT");
book(_h_deltaPhi_2J, {200., 300., 400., 500., 600., 700., 800., 1000., 1200., 4000.});
book(_h_deltaPhi_3J, {200., 300., 400., 500., 600., 700., 800., 1000., 1200., 4000.});
for (size_t i=1; i<_h_deltaPhi_2J->numBins()+1; ++i) {
book(_h_deltaPhi_2J->bin(i), i, 1, 1);
book(_h_deltaPhi_3J->bin(i), i+9, 1, 1);
}
}
/// Per-event analysis
void analyze(const Event& event) {
const Jets& jets = apply<JetFinder>(event, "ANTIKT").jetsByPt(Cuts::absrap < 5. && Cuts::pT > 100*GeV);
const Jets& lowjets = apply<JetFinder>(event, "ANTIKT").jetsByPt(Cuts::absrap < 2.5 && Cuts::pT > 30*GeV);
if (jets.size() < 2) vetoEvent;
if (jets[0].absrap() > 2.5 || jets[1].absrap() > 2.5) vetoEvent;
const double dphi = 180./M_PI*deltaPhi(jets[0].phi(), jets[1].phi());
_h_deltaPhi_2J->fill(jets[0].pT(), dphi);
if (lowjets.size() > 2) _h_deltaPhi_3J->fill(jets[0].pT(), dphi);
}
/// Scale histograms
void finalize() {
int region_ptmax_2J = 0;
double norm_finalize[9];
for (auto& histo_2J : _h_deltaPhi_2J->bins()) {
norm_finalize[region_ptmax_2J] = histo_2J->integral();
if (norm_finalize[region_ptmax_2J] != 0) scale(histo_2J, 1.0/norm_finalize[region_ptmax_2J]);
region_ptmax_2J++;
}
int region_ptmax_3J = 0;
for (auto& histo_3J : _h_deltaPhi_3J->bins()) {
if (norm_finalize[region_ptmax_3J] != 0) scale(histo_3J, 1.0/norm_finalize[region_ptmax_3J]);
region_ptmax_3J++;
}
}
private:
Histo1DGroupPtr _h_deltaPhi_2J, _h_deltaPhi_3J;
};
RIVET_DECLARE_PLUGIN(CMS_2019_I1719955);
}