rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

D0_1996_I416886

Azimuthal decorrelation of jets widely separated in rapidity
Experiment: D0 (Tevatron Run 1)
Inspire ID: 416886
Status: VALIDATED
Authors:
  • Frank Siegert
References: Beams: p- p+
Beam energies: (900.0, 900.0) GeV
Run details:
  • $p \bar{p} \to \,\text{jets}$ at 1800 \text{GeV}

First measurement of the azimuthal decorrelation between jets with pseudorapidity separation up to five units. The data were accumulated using the D0 detector during Tevatron Run 1 at $\sqrt{s} = 1.8 \text{TeV}$. Requires di-jet events with at least one jet above 50 GeV and two jets above 20 GeV.

Source code: D0_1996_I416886.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FastJets.hh"
 4#include "Rivet/Projections/FinalState.hh"
 5
 6namespace Rivet {
 7
 8
 9  /// D0 azimuthal correlation of jets widely separated in rapidity
10  class D0_1996_I416886 : public Analysis {
11  public:
12
13    RIVET_DEFAULT_ANALYSIS_CTOR(D0_1996_I416886);
14
15
16    /// @name Analysis methods
17    /// @{
18
19    void init() {
20      const FinalState fs;
21      declare(fs, "FS");
22      /// @todo Use correct jet algorithm
23      declare(FastJets(fs, JetAlg::D0ILCONE, 0.7), "ConeJets");
24
25      book(_h_deta, 1, 1, 1);
26      book(_h_dphi, {0., 2., 4., 6.}, {"d02-x01-y01", "d02-x01-y02", "d02-x01-y03"});
27      book(_h_cosdphi_deta, 3, 1, 1);
28    }
29
30
31    void analyze(const Event& event) {
32
33      Jets jets = apply<FastJets>(event, "ConeJets").jets(Cuts::Et > 20*GeV && Cuts::abseta<3, cmpMomByEt);
34
35      if (jets.size() < 2) vetoEvent;
36
37      FourMomentum minjet = jets[0].momentum();
38      FourMomentum maxjet = jets[1].momentum();
39      double mineta = minjet.eta();
40      double maxeta = maxjet.eta();
41
42      for (const Jet& jet : jets) {
43        double eta = jet.eta();
44        if (eta < mineta) {
45          minjet = jet.momentum();
46          mineta = eta;
47        } else if (eta > maxeta) {
48          maxjet = jet.momentum();
49          maxeta = eta;
50        }
51      }
52
53      if (minjet.Et() < 50*GeV && maxjet.Et() < 50.0*GeV) vetoEvent;
54
55      double deta = maxjet.eta()-minjet.eta();
56      double dphi = mapAngle0To2Pi(maxjet.phi()-minjet.phi());
57
58      _h_deta->fill(deta);
59      _h_dphi->fill(deta, 1.0-dphi/M_PI);
60      _h_cosdphi_deta->fill(deta, cos(M_PI-dphi));
61    }
62
63
64    void finalize() {
65      // Normalised to #events
66      normalize(_h_deta, 8830.); // fixed norm OK
67
68      // Normalied to 1/(4pi)
69      normalize(_h_dphi, 1./(4.*M_PI));
70
71    }
72
73    /// @}
74
75
76  private:
77
78    /// @name Histograms
79    /// @{
80    Histo1DPtr _h_deta;
81    Histo1DGroupPtr _h_dphi;
82    Profile1DPtr _h_cosdphi_deta;
83    /// @}
84
85  };
86
87
88
89  RIVET_DECLARE_ALIASED_PLUGIN(D0_1996_I416886, D0_1996_S3324664);
90
91}