Rivet analyses


title: 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

Run details: none 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

```c++ // -- C++ --

include "Rivet/Analysis.hh"

include "Rivet/Projections/DISKinematics.hh"

include "Rivet/Projections/FastJets.hh"

include "Rivet/Projections/FinalState.hh"

namespace Rivet {

/// @brief F2 structure function in DIS e+ p (ZEUS)

class ZEUS_1996_I420332 : public Analysis { public:

/// Constructor
RIVET_DEFAULT_ANALYSIS_CTOR(ZEUS_1996_I420332);


/// @name Analysis methods
/// @{

/// Book histograms and initialise projections before the run
void init() {

  // Initialise and register projections
  declare(DISLepton(), "Lepton");
  declare(DISKinematics(), "Kinematics");


  book(_h_f2, {3.2,  4.,   5.,   7.,   9.,   11.,  13.,  16.,  20.,  32.,   40.,   50.,   65.,   85.,
               110., 140., 185., 240., 310., 410., 530., 710., 900., 1300., 1800., 2500., 3500., 15000.});
  size_t idx = 1;
  for (auto& b : _h_f2->bins()) {
    if (idx == 4 || idx == 7 || idx == 10 || idx == 12 || idx == 14 || idx == 16) ++idx;
    book(b, idx++, 1, 1);
  }
}


/// Perform the per-event analysis
void analyze(const Event& event) {

  const DISKinematics& dk = apply<DISKinematics>(event, "Kinematics");
  //const DISLepton& dl = apply<DISLepton>(event,"Lepton");

  // Get the DIS kinematics
  double x = dk.x();
  double y = dk.y();
  double Q2 = dk.Q2() / GeV;

  // Flux factor
  const double alpha = 7.29927e-3;
  double F = x * sqr(Q2) / (2.0 * M_PI * sqr(alpha) * (1.0 + sqr(1. - y)));
  _h_f2->fill(Q2, x, F);
}


/// Normalise histograms etc., after the run
void finalize() {
  const double gev2nb = 0.389e6;
  const double scalefactor = crossSection() / nanobarn / sumOfWeights() / gev2nb;
  scale(_h_f2, scalefactor);
  divByGroupWidth(_h_f2);
}

/// @}


/// @name Histograms
/// @{
Histo1DGroupPtr _h_f2;
/// @}

};

RIVET_DECLARE_PLUGIN(ZEUS_1996_I420332);

} ```