Rivet analyses
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 F2 in ep scattering at HERA in the range $ 3.5 < Q^2 < 5000 $ GeV2. 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 $ GeV2 the range in x now spans $ 6.3 ^{-5} < x < 0.08$ providing overlap with measurements from fixed target experiments. At values of Q2 above 1000 GeV2 the x range extends to 0.5.
Source
code:ZEUS_1996_I420332.cc
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/FastJets.hh"
#include "Rivet/Projections/DISKinematics.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);
}