rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CDF_2009_I834437

Measurement of the inclusive isolated prompt photon cross-section
Experiment: CDF (Tevatron Run 2)
Inspire ID: 834437
Status: VALIDATED
Authors:
  • Frank Siegert
References: Beams: p- p+
Beam energies: (980.0, 980.0) GeV
Run details:
  • $\gamma$ + jet processes in ppbar collisions at $\sqrt{s} = 1960$ GeV. Minimum pT cut on the photon in the analysis is 30 GeV.

A measurement of the cross section for the inclusive production of isolated photons. The measurement covers the pseudorapidity region $|\eta^\gamma|<1.0$ and the transverse energy range $E_T^\gamma>30$ GeV and is based on 2.5 fb$^{-1}$ of integrated luminosity. The cross section is measured differential in $E_\perp(\gamma)$.

Source code: CDF_2009_I834437.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/LeadingParticlesFinalState.hh"
 5
 6namespace Rivet {
 7
 8
 9  /// @brief CDF inclusive isolated prompt photon cross-section
10  class CDF_2009_I834437 : public Analysis {
11  public:
12
13    RIVET_DEFAULT_ANALYSIS_CTOR(CDF_2009_I834437);
14
15
16    /// @name Analysis methods
17    /// @{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21      FinalState fs;
22      declare(fs, "FS");
23
24      LeadingParticlesFinalState photonfs(FinalState((Cuts::etaIn(-1.0, 1.0) && Cuts::pT >=  30.0*GeV)));
25      photonfs.addParticleId(PID::PHOTON);
26      declare(photonfs, "LeadingPhoton");
27
28      book(_h_Et_photon ,1, 1, 1);
29    }
30
31
32    /// Perform the per-event analysis
33    void analyze(const Event& event) {
34      Particles fs = apply<FinalState>(event, "FS").particles();
35      Particles photons = apply<LeadingParticlesFinalState>(event, "LeadingPhoton").particles();
36      if (photons.size()!=1) {
37        vetoEvent;
38      }
39      FourMomentum leadingPhoton = photons[0].momentum();
40      double eta_P = leadingPhoton.eta();
41      double phi_P = leadingPhoton.phi();
42      FourMomentum mom_in_cone;
43      for (const Particle& p : fs) {
44        if (deltaR(eta_P, phi_P, p.eta(), p.phi()) < 0.4) {
45            mom_in_cone += p.momentum();
46        }
47      }
48      if ( (mom_in_cone.Et() - leadingPhoton.Et()) > 2.0*GeV) {
49        vetoEvent;
50      }
51      _h_Et_photon->fill(leadingPhoton.Et());
52    }
53
54
55    /// Normalise histograms etc., after the run
56    void finalize() {
57      scale(_h_Et_photon, crossSection()/picobarn/sumOfWeights()/2.0);
58    }
59
60    /// @}
61
62
63  private:
64
65    /// Histogram
66    Histo1DPtr _h_Et_photon;
67
68  };
69
70
71
72  RIVET_DECLARE_ALIASED_PLUGIN(CDF_2009_I834437, CDF_2009_S8436959);
73
74}