rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

D0_2006_I698784

Inclusive isolated photon cross-section, differential in pT(gamma)
Experiment: D0 (Tevatron Run 2)
Inspire ID: 698784
Status: VALIDATED
Authors:
  • Andy Buckley
  • Gavin Hesketh
  • Frank Siegert
References: Beams: p- p+
Beam energies: (980.0, 980.0) GeV
Run details:
  • ppbar collisions at $\sqrt{s} = 1960$ GeV. Requires gamma + jet (q,qbar,g) hard processes, which for Pythia 6 means MSEL=10 for with MSUB indices 14, 18, 29, 114, 115 enabled.

Measurement of differential cross section for inclusive production of isolated photons in p pbar collisions at $\sqrt{s} = 1.96$ TeV with the D\O detector at the Fermilab Tevatron collider. The photons span transverse momenta 23--300 GeV and have pseudorapidity $|\eta| < 0.9$. Isolated direct photons are probes of pQCD via the annihilation ($q \bar{q} -> \gamma g$) and quark-gluon Compton scattering ($q g -> \gamma q$) processes, the latter of which is also sensitive to the gluon PDF. The initial state radiation / resummation formalisms are sensitive to the resulting photon pT spectrum

Source code: D0_2006_I698784.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/LeadingParticlesFinalState.hh"
 5#include "Rivet/Projections/VetoedFinalState.hh"
 6
 7namespace Rivet {
 8
 9
10  /// @brief D0 inclusive isolated photon cross-section vs. \f$ p_\perp(gamma) \f$.
11  ///
12  /// @author Andy Buckley
13  /// @author Gavin Hesketh
14  class D0_2006_I698784 : public Analysis {
15  public:
16
17    RIVET_DEFAULT_ANALYSIS_CTOR(D0_2006_I698784);
18
19
20    /// @name Analysis methods
21    /// @{
22
23    void init() {
24      // General FS for photon isolation
25      FinalState fs;
26      declare(fs, "AllFS");
27
28      // Get leading photon
29      LeadingParticlesFinalState photonfs(FinalState((Cuts::etaIn(-0.9, 0.9) && Cuts::pT >=  23.0*GeV)));
30      photonfs.addParticleId(PID::PHOTON);
31      declare(photonfs, "LeadingPhoton");
32
33      // Book histograms
34      book(_h_pTgamma ,1, 1, 1);
35    }
36
37
38    /// Do the analysis
39    void analyze(const Event& event) {
40
41      // Get the photon
42      const FinalState& photonfs = apply<FinalState>(event, "LeadingPhoton");
43      if (photonfs.particles().size() != 1) {
44        vetoEvent;
45      }
46      const FourMomentum photon = photonfs.particles().front().momentum();
47
48      // Isolate photon by ensuring that a 0.4 cone around it contains less than 10% of the photon's energy
49      double E_P   = photon.E();
50      double eta_P = photon.eta();
51      double phi_P = photon.phi();
52      double econe = 0.0;
53      for (const Particle& p : apply<FinalState>(event, "AllFS").particles()) {
54        if (deltaR(eta_P, phi_P,
55                   p.eta(), p.phi()) < 0.4) {
56          econe += p.E();
57          if (econe/E_P > 1.1) {
58            vetoEvent;
59          }
60        }
61      }
62
63      // Fill histo
64      _h_pTgamma->fill(photon.pT());
65    }
66
67
68    // Finalize
69    void finalize() {
70      const double lumi_gen = sumOfWeights()/crossSection()/picobarn;
71      // Divide by effective lumi, plus rapidity bin width of 1.8
72      scale(_h_pTgamma, 1/lumi_gen * 1/1.8);
73    }
74
75    /// @}
76
77
78  private:
79
80    /// @name Histograms
81    /// @{
82    Histo1DPtr _h_pTgamma;
83    /// @}
84
85  };
86
87
88
89  RIVET_DECLARE_ALIASED_PLUGIN(D0_2006_I698784, D0_2006_S6438750);
90
91}