Rivet analyses referenceZEUS_1996_I420332Measurement of the F2 structure function in deep inelastic e+ p scattering using 1994 data from the ZEUS detector at HERAExperiment: ZEUS (HERA) Inspire ID: 420332 Status: VALIDATED Authors:
Beam energies: (27.5, 820.0); (820.0, 27.5) GeV
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}
|