rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### D0_2004_S5992206

Run II jet azimuthal decorrelation analysis
Experiment: D0 (Tevatron Run 2)
Inspire ID: 659398
Status: VALIDATED
Authors:
• Lars Sonnenschein
References:
Beams: p- p+
Beam energies: (980.0, 980.0) GeV
Run details:
• QCD events in ppbar interactions at $\sqrt{s} = 1960$ GeV.

Correlations in the azimuthal angle between the two largest pT jets have been measured using the D0 detector in ppbar collisions at 1960 GeV. The analysis is based on an inclusive dijet event sample in the central rapidity region. The correlations are determined for four different pT intervals.

Source code: D0_2004_S5992206.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FastJets.hh" #include "Rivet/Projections/VetoedFinalState.hh" #include "Rivet/Projections/VisibleFinalState.hh" #include "Rivet/Projections/MissingMomentum.hh" namespace Rivet { /* @brief D0 Run II angular correlations in di-jet events * @author Lars Sonnenschein * * Measurement of angular correlations in di-jet events. * * @par Run conditions * * @arg \f$\sqrt{s} = \f$ 1960 GeV * @arg Run with generic QCD events. * @arg Several \f$p_\perp^\text{min} \f$ cutoffs are probably required to fill the histograms: * @arg \f$p_\perp^\text{min} = \f$ 50, 75, 100, 150 GeV for the four pT ranges respecively * */ class D0_2004_S5992206 : public Analysis { public: /// @name Constructors etc. //@{ /// Constructor. D0_2004_S5992206() : Analysis("D0_2004_S5992206") { } //@} /// @name Analysis methods //@{ void init() { // Final state for jets, mET etc. const FinalState fs(-3.0, 3.0); declare(fs, "FS"); // Veto neutrinos, and muons with pT above 1.0 GeV VetoedFinalState vfs(fs); vfs.vetoNeutrinos(); vfs.addVetoPairDetail(PID::MUON, 1.0*GeV, MAXDOUBLE); declare(vfs, "VFS"); declare(FastJets(vfs, FastJets::D0ILCONE, 0.7), "Jets"); declare(MissingMomentum(vfs), "CalMET"); // Book histograms _histJetAzimuth_pTmax75_100 = bookHisto1D(1, 2, 1); _histJetAzimuth_pTmax100_130 = bookHisto1D(2, 2, 1); _histJetAzimuth_pTmax130_180 = bookHisto1D(3, 2, 1); _histJetAzimuth_pTmax180_ = bookHisto1D(4, 2, 1); } /// Do the analysis void analyze(const Event& event) { // Analyse and print some info const JetAlg& jetpro = apply(event, "Jets"); MSG_DEBUG("Jet multiplicity before any pT cut = " << jetpro.size()); const Jets jets = jetpro.jetsByPt(40.0*GeV); if (jets.size() >= 2) { MSG_DEBUG("Jet multiplicity after pT > 40 GeV cut = " << jets.size()); } else { vetoEvent; } const double rap1 = jets[0].rapidity(); const double rap2 = jets[1].rapidity(); if (fabs(rap1) > 0.5 || fabs(rap2) > 0.5) { vetoEvent; } MSG_DEBUG("Jet eta and pT requirements fulfilled"); const double pT1 = jets[0].pT(); const MissingMomentum& caloMissEt = apply(event, "CalMET"); MSG_DEBUG("Missing vector Et = " << caloMissEt.vectorEt()/GeV << " GeV"); if (caloMissEt.vectorEt().mod() > 0.7*pT1) { MSG_DEBUG("Vetoing event with too much missing ET: " << caloMissEt.vectorEt()/GeV << " GeV > " << 0.7*pT1/GeV << " GeV"); vetoEvent; } if (pT1/GeV >= 75.0) { const double weight = event.weight(); const double dphi = deltaPhi(jets[0].phi(), jets[1].phi()); if (inRange(pT1/GeV, 75.0, 100.0)) { _histJetAzimuth_pTmax75_100->fill(dphi, weight); } else if (inRange(pT1/GeV, 100.0, 130.0)) { _histJetAzimuth_pTmax100_130->fill(dphi, weight); } else if (inRange(pT1/GeV, 130.0, 180.0)) { _histJetAzimuth_pTmax130_180->fill(dphi, weight); } else if (pT1/GeV > 180.0) { _histJetAzimuth_pTmax180_->fill(dphi, weight); } } } // Finalize void finalize() { // Normalize histograms to unit area normalize(_histJetAzimuth_pTmax75_100); normalize(_histJetAzimuth_pTmax100_130); normalize(_histJetAzimuth_pTmax130_180); normalize(_histJetAzimuth_pTmax180_); } //@} private: /// @name Histograms //@{ Histo1DPtr _histJetAzimuth_pTmax75_100; Histo1DPtr _histJetAzimuth_pTmax100_130; Histo1DPtr _histJetAzimuth_pTmax130_180; Histo1DPtr _histJetAzimuth_pTmax180_; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(D0_2004_S5992206); }