rivet is hosted by Hepforge, IPPP Durham

## Rivet analyses reference

### CDF_2005_S6080774

Differential cross sections for prompt diphoton production
Experiment: CDF (Tevatron Run 2)
Inspire ID: 667384
Status: VALIDATED
Authors:
• Frank Siegert
References:
Beams: p- p+
Beam energies: (980.0, 980.0) GeV
Run details:
• $p \bar{p} \to \gamma \gamma$ [+ jets] at 1960 GeV. The analysis uses photons with pT larger then 13 GeV. To allow for shifts in the shower, the ME cut on the transverse photon momentum shouldn't be too hard, e.g. 5 GeV.

Measurement of the cross section of prompt diphoton production in $p\bar{p}$ collisions at $\sqrt{s} = 1.96$ TeV using a data sample of 207 pb$^{-1}$ as a function of the diphoton mass, the transverse momentum of the diphoton system, and the azimuthal angle between the two photons.

Source code: CDF_2005_S6080774.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 // -*- C++ -*- #include "Rivet/Analysis.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/IdentifiedFinalState.hh" #include namespace Rivet { /// @brief CDF diff cross-sections for prompt di-photon production class CDF_2005_S6080774 : public Analysis { public: /// Constructor CDF_2005_S6080774() : Analysis("CDF_2005_S6080774") { } /// @name Analysis methods //@{ void init() { FinalState fs; declare(fs, "FS"); IdentifiedFinalState ifs(Cuts::abseta < 0.9 && Cuts::pT > 13*GeV); ifs.acceptId(PID::PHOTON); declare(ifs, "IFS"); for (size_t yAxisId=0; yAxisId<4; ++yAxisId) { book(_h_m_PP[yAxisId], 1, 1, yAxisId + 1); book(_h_pT_PP[yAxisId], 2, 1, yAxisId + 1); book(_h_dphi_PP[yAxisId], 3, 1, yAxisId + 1); } } void analyze(const Event& event) { Particles photons = apply(event, "IFS").particlesByPt(); if (photons.size() < 2 || photons[0].pT() < 14.0*GeV) { vetoEvent; } // Isolate photons with ET_sum in cone Particles isolated_photons; Particles fs = apply(event, "FS").particles(); for (const Particle& photon : photons) { FourMomentum mom_in_cone; double eta_P = photon.eta(); double phi_P = photon.phi(); for (const Particle& p : fs) { if (deltaR(eta_P, phi_P, p.eta(), p.phi()) < 0.4) { mom_in_cone += p.momentum(); } } if (mom_in_cone.Et()-photon.Et() < 1.0*GeV) { isolated_photons.push_back(photon); } } if (isolated_photons.size() != 2) { vetoEvent; } FourMomentum mom_PP = isolated_photons[0].momentum() + isolated_photons[1].momentum(); for (size_t i=0; i<4; ++i) { _h_m_PP[i]->fill(mom_PP.mass()); _h_pT_PP[i]->fill(mom_PP.pT()); _h_dphi_PP[i]->fill(mapAngle0ToPi(isolated_photons[0].phi()- isolated_photons[1].phi())/M_PI); } } void finalize() { for (size_t i=0; i<4; ++i) { scale(_h_m_PP[i], crossSection()/sumOfWeights()); scale(_h_pT_PP[i], crossSection()/sumOfWeights()); scale(_h_dphi_PP[i], crossSection()/M_PI/sumOfWeights()); } } //@} private: /// @name Histograms //@{ std::array _h_m_PP; std::array _h_pT_PP; std::array _h_dphi_PP; //@} }; // The hook for the plugin system DECLARE_RIVET_PLUGIN(CDF_2005_S6080774); }