rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ATLAS_2023_I2625697

Transverse energ-energy correlations in multijets at 13 TeV
Experiment: ATLAS (LHC)
Inspire ID: 2625697
Status: VALIDATED
Authors:
  • Manuel Alvarez
  • Javier Llorente
References: Beams: p+ p+
Beam energies: (6500.0, 6500.0) GeV
Run details:
  • pp QCD interactions at 13 TeV. Particles with c*tau>10mm are stable.

Measurements of transverse energy-energy correlations and their associated azimuthal asymmetries in multijet events are presented. The analysis is performed using a data sample corresponding to 139 fb$^{-1}$ of proton-proton collisions at a centre-of-mass energy of $\sqrt{s}=13$ TeV, collected with the ATLAS detector at the Large Hadron Collider. The measurements are presented in bins of the scalar sum of the transverse momenta of the two leading jets and unfolded to particle level. They are then compared to next-to-next-to-leading-order perturbative QCD calculations for the first time, which feature a significant reduction in the theoretical uncertainties estimated using variations of the renormalisation and factorisation scales. The agreement between data and theory is good, thus providing a precision test of QCD at large momentum transfers $Q$. The strong coupling constant $\alpha_\text{s}$ is extracted differentially as a function of $Q$, showing a good agreement with the renormalisation group equation and with previous analyses. A simultaneous fit to all transverse energy-energy correlation distributions across different kinematic regions yields a value of $\alpha_\text{s}(m_Z) = 0.1175 \pm 0.0006$ (exp.) $+0.0034-0.0017$ (theo.), while the global fit to the asymmetry distributions yields $\alpha_\text{s}(m_Z)$=0.1185$\pm$0.0009 (exp.)+0.0025-0.0012 (theo.).

Source code: ATLAS_2023_I2625697.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/FastJets.hh"
 5
 6namespace Rivet {
 7
 8
 9  /// @brief TEEC in multijets at 13 TeV
10  class ATLAS_2023_I2625697 : public Analysis {
11  public:
12
13    /// Default constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(ATLAS_2023_I2625697);
15
16    /// @name Analysis methods
17    /// @{
18
19    void init() {
20      // Projections AntiKt4TruthJets
21      const FinalState fs(Cuts::abseta < 4.5);
22      FastJets jets(fs, JetAlg::ANTIKT, 0.4, JetMuons::NONE, JetInvisibles::NONE);
23      declare(jets, "Jets");
24
25      // Book histograms
26      for (int k = 0; k < 11; ++k) {
27        book(_hEEC[k], k+1, 1, 1);
28        book(_hAEEC[k], k+12, 1, 1);
29      }
30    }
31
32    void analyze(const Event& event) {
33
34      const double htBins[11] = {1000.0, 1200.0, 1400.0, 1600.0, 1800.0, 2000.0, 2300.0, 2600.0, 3000.0, 3500.0, 13000.0};
35
36      const Jets jets = apply<JetFinder>(event, "Jets").jetsByPt(Cuts::pT > 60.0*GeV && Cuts::abseta < 2.4);
37
38      if (jets.size() < 2) vetoEvent;
39
40      const double sumPt12 = jets[0].pt()+jets[1].pt();
41      if (sumPt12 < 1000.0*GeV) vetoEvent;
42
43      const double sumEt = sum(jets, Kin::Et, 0.0);
44
45      for (const Jet& j1 : jets) {
46        for (const Jet& j2 : jets) {
47
48          const double etWeight = j1.Et()*j2.Et()/sqr(sumEt);
49          const double dPhi = deltaPhi(j1, j2);
50
51          double cosPhi = cos(dPhi);
52          if (cos(dPhi) == 1.0) cosPhi = 0.9999;
53
54          _hEEC[0]->fill(cosPhi, etWeight);
55
56          for (int k = 0; k < 10; ++k){
57            if (inRange(sumPt12/GeV, htBins[k], htBins[k+1])) _hEEC[k+1]->fill(cosPhi, etWeight);
58          }
59        }
60      }
61    }
62
63    void finalize(){
64
65      normalize(_hEEC);
66
67      for (int iBin = 0; iBin < 11; ++iBin) {
68        size_t nBins= _hEEC[iBin]->numBins();
69        for (size_t k = 1; k <= (nBins/2)+1; ++k) {
70          const double dV = _hEEC[iBin]->bin(k).dVol();
71          const double y = (_hEEC[iBin]->bin(k).sumW() - _hEEC[iBin]->bin(nBins-k+1).sumW())/dV;
72          const double ey = sqrt( sqr(_hEEC[iBin]->bin(k).errW()) + sqr(_hEEC[iBin]->bin(nBins-k+1).errW()) )/dV;
73          _hAEEC[iBin]->bin(k).set(y, ey);
74        }
75       }
76    }
77
78    /// @}
79
80  private:
81
82    map<int, Histo1DPtr> _hEEC;
83    map<int, Estimate1DPtr> _hAEEC;
84
85  };
86
87
88  RIVET_DECLARE_PLUGIN(ATLAS_2023_I2625697);
89
90}