Rivet analyses referenceCDF_2009_I834437Measurement of the inclusive isolated prompt photon cross-sectionExperiment: CDF (Tevatron Run 2) Inspire ID: 834437 Status: VALIDATED Authors:
Beam energies: (980.0, 980.0) GeV Run details:
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}
|