Rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### ATLAS_2015_I1387176

Energy-energy correlation
Experiment: ATLAS (LHC)
Inspire ID: 1387176
Status: VALIDATED
Authors:
• Javier Llorente
References:
Beams: p+ p+
Beam energies: (3500.0, 3500.0) GeV
Run details:
• inclusive jets

High transverse momentum jets produced in $pp$ collisions at a centre-of-mass energy of 7\,TeV are used to measure the transverse energy-energy correlation function and its associated azimuthal asymmetry. The data were recorded with the ATLAS detector at the LHC in the year 2011 and correspond to an integrated luminosity of $158\,\text{pb}^{1}$. The selection criteria demand the average transverse momentum of the two leading jets in an event to be larger than 250\,GeV. The data are unfolded to the particle level. NB--If the routine is to be run on several samples (with different cross sections), the asymmetry has to be calculated again in a post-processing step using the merged output file.

Source code: ATLAS_2015_I1387176.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/FastJets.hh" namespace Rivet { /// Rivet analysis class for ATLAS_2015_I1387176 dataset class ATLAS_2015_I1387176 : public Analysis { public: /// Constructor DEFAULT_RIVET_ANALYSIS_CTOR(ATLAS_2015_I1387176); /// Initialization, called once before running void init() { // Projections FastJets jets(FinalState(), FastJets::ANTIKT, 0.4); jets.useInvisibles(); declare(jets, "Jets"); // Book histograms _hist_EEC = bookHisto1D(1, 1, 1); _hist_AEEC = bookScatter2D(2, 1, 1); // add dummy histogram for heterogenous merging string hname = "d01-x01-y01"; const Scatter2D& ref = refData(hname); hname = "d01-x01-y02"; _hist_dummy = bookHisto1D(hname, ref); } void analyze(const Event& event) { const double evtWeight = event.weight(); const Jets& jets = apply(event, "Jets").jetsByPt(Cuts::pT > 50.0*GeV && Cuts::abseta < 2.5); if (jets.size() < 2) vetoEvent; if (jets[0].pT() + jets[1].pT() < 500*GeV) vetoEvent; double sumEt = 0.0; foreach (Jet j, jets) sumEt += j.E() / cosh(j.eta()); foreach (Jet j1, jets) { double et1 = j1.E() / cosh(j1.eta()); foreach (Jet j2, jets) { double et2 = j2.E() / cosh(j2.eta()); double etWeight = et1 * et2 / ( sumEt * sumEt ); double dPhi = deltaPhi(j1, j2); double cosPhi = cos(dPhi); if (cosPhi == 1.0) cosPhi = 0.9999; _hist_EEC->fill(cosPhi, etWeight * evtWeight); _hist_dummy->fill(cosPhi, etWeight * evtWeight); } } } void finalize() { scale(_hist_dummy, crossSectionPerEvent()); normalize(_hist_EEC); vector points; size_t nBins = _hist_EEC->numBins(); for (size_t k = 0; k < nBins/2; ++k) { double x = _hist_EEC->bin(k).midpoint(); double y = _hist_EEC->bin(k).height() - _hist_EEC->bin(nBins-(k+1)).height(); double ex = _hist_EEC->bin(k).xWidth()/2; double e1 = _hist_EEC->bin(k).heightErr(); double e2 = _hist_EEC->bin(nBins-(k+1)).heightErr(); double ey = sqrt( e1 * e1 + e2 * e2 ); points.push_back(Point2D(x, y, ex, ey)); } _hist_AEEC->addPoints(points); } private: Histo1DPtr _hist_EEC; Histo1DPtr _hist_dummy; Scatter2DPtr _hist_AEEC; }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(ATLAS_2015_I1387176); }