rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

ZEUS_1996_I420332

Measurement of the F2 structure function in deep inelastic e+ p scattering using 1994 data from the ZEUS detector at HERA
Experiment: ZEUS (HERA)
Inspire ID: 420332
Status: VALIDATED
Authors:
  • Hannes Jung
References:
  • Z.Phys.C 72 (1996) 399, DOI:10.1007/s002880050260,10.1007/BF02909169, - hep-ex/9607002
Beams: e+ p+, p+ e+
Beam energies: (27.5, 820.0); (820.0, 27.5) GeV
    No run details listed

We present measurements of the structure function $F_2$ in ep scattering at HERA in the range $ 3.5 < Q^2 < 5000 $ GeV$^2$. A new reconstruction method has allowed a significant improvement in the resolution of the kinematic variables and an extension of the kinematic region covered by the experiment. At $Q^2 < 35 $ GeV$^2$ the range in $x$ now spans $ 6.3 \cdot 10^{-5} < x < 0.08$ providing overlap with measurements from fixed target experiments. At values of $Q^2$ above 1000 GeV$^2$ the $x$ range extends to 0.5.

Source code: ZEUS_1996_I420332.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/FastJets.hh"
 5#include "Rivet/Projections/DISKinematics.hh"
 6
 7namespace Rivet {
 8
 9
10  /// @brief   F2 structure function in DIS e+ p (ZEUS)
11
12  class ZEUS_1996_I420332 : public Analysis {
13  public:
14
15    /// Constructor
16    RIVET_DEFAULT_ANALYSIS_CTOR(ZEUS_1996_I420332);
17
18
19    /// @name Analysis methods
20    /// @{
21
22    /// Book histograms and initialise projections before the run
23    void init() {
24
25      // Initialise and register projections
26      declare(DISLepton(), "Lepton");
27      declare(DISKinematics(), "Kinematics");
28
29
30      book(_h_f2, {3.2, 4., 5., 7., 9., 11., 13., 16., 20., 32., 40., 50., 65., 85., 110., 140.,
31                   185., 240., 310., 410., 530., 710., 900., 1300., 1800., 2500., 3500., 15000.});
32      size_t idx = 1;
33      for (auto& b : _h_f2->bins()) {
34        if (idx == 4 || idx == 7 || idx == 10 || idx == 12 || idx == 14 || idx == 16)  ++idx;
35        book(b, idx++, 1, 1);
36      }
37
38    }
39
40
41    /// Perform the per-event analysis
42    void analyze(const Event& event) {
43
44      const DISKinematics& dk = apply<DISKinematics>(event, "Kinematics");
45      //const DISLepton& dl = apply<DISLepton>(event,"Lepton");
46
47      // Get the DIS kinematics
48      double x  = dk.x();
49      double y = dk.y();
50      double Q2 = dk.Q2()/GeV;
51
52      // Flux factor
53      const double alpha = 7.29927e-3;
54      double F = x*sqr(Q2)/(2.0*M_PI*sqr(alpha)*(1.0+sqr(1.-y)));
55      _h_f2->fill(Q2,x,F);
56
57
58    }
59
60
61    /// Normalise histograms etc., after the run
62    void finalize() {
63      const double gev2nb = 0.389e6;
64      const double scalefactor=crossSection()/nanobarn/sumOfWeights()/gev2nb ;
65      scale(_h_f2, scalefactor);
66      divByGroupWidth(_h_f2);
67    }
68
69    /// @}
70
71
72    /// @name Histograms
73    /// @{
74    Histo1DGroupPtr _h_f2;
75    /// @}
76
77
78  };
79
80
81  RIVET_DECLARE_PLUGIN(ZEUS_1996_I420332);
82
83}