Rivet analyses
Differential cross sections for prompt diphoton production
Experiment: CDF (Tevatron Run 2)
Inspire ID: 667384
Status: VALIDATED
Authors: - Frank Siegert
References: - Phys. Rev. Lett. 95, 022003 - DOI: 10.1103/PhysRevLett.95.022003 - arXiv: hep-ex/0412050
Beams: p- p+
Beam energies: (980.0, 980.0)GeV
Run details: - pp̄ → γγ [+ 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 pp̄ 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_I667384.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/IdentifiedFinalState.hh"
#include <array>
namespace Rivet {
/// @brief CDF diff cross-sections for prompt di-photon production
class CDF_2005_I667384 : public Analysis {
public:
RIVET_DEFAULT_ANALYSIS_CTOR(CDF_2005_I667384);
/// @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<IdentifiedFinalState>(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<FinalState>(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()/picobarn/sumOfWeights());
scale(_h_pT_PP[i], crossSection()/picobarn/sumOfWeights());
scale(_h_dphi_PP[i], crossSection()/picobarn/M_PI/sumOfWeights());
}
}
/// @}
private:
/// @name Histograms
/// @{
std::array<Histo1DPtr,4> _h_m_PP;
std::array<Histo1DPtr,4> _h_pT_PP;
std::array<Histo1DPtr,4> _h_dphi_PP;
/// @}
};
RIVET_DECLARE_ALIASED_PLUGIN(CDF_2005_I667384, CDF_2005_S6080774);
}Aliases: - CDF_2005_S6080774