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
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// -*- 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
      // Initialise and register projections
      declare(DISLepton(), "Lepton");
      declare(DISKinematics(), "Kinematics");
		
	
       Histo1DPtr dummy;
	 _h_f2.add( 3.2,    4.0,book(dummy,1,1,1)); 
	 _h_f2.add( 4.0,    5.0,book(dummy,2,1,1));
	 _h_f2.add( 5.0,    7.0,book(dummy,3,1,1));
	 _h_f2.add( 7.0,    9.0,book(dummy,5,1,1));
	 _h_f2.add( 9.0,    11.0,book(dummy,6,1,1));
	 _h_f2.add( 11.0,   13.0,book(dummy,8,1,1));
	 _h_f2.add( 13.0,   16.0,book(dummy,9,1,1));
	 _h_f2.add( 16.0,   20.0,book(dummy,11,1,1));
	 _h_f2.add( 20.,    32,  book(dummy,13,1,1));
	 _h_f2.add( 32.,    40., book(dummy,15,1,1));
	 _h_f2.add( 40.,    50., book(dummy,17,1,1));
	 _h_f2.add( 50.,    65., book(dummy,18,1,1));
	 _h_f2.add( 65.,    85., book(dummy,19,1,1));
	 _h_f2.add( 85.,    110.,book(dummy,20,1,1));
	 _h_f2.add( 110.,   140.,book(dummy,21,1,1));
	 _h_f2.add( 140.,   185.,book(dummy,22,1,1));
	 _h_f2.add( 185.,   240.,book(dummy,23,1,1));
	 _h_f2.add( 240.,   310.,book(dummy,24,1,1));
	 _h_f2.add( 310.,   410.,book(dummy,25,1,1));
	 _h_f2.add( 410.,   530.,book(dummy,26,1,1));
	 _h_f2.add( 530.,   710.,book(dummy,27,1,1));
	 _h_f2.add( 710.,   900.,book(dummy,28,1,1));
	 _h_f2.add( 900.,  1300.,book(dummy,29,1,1));
	 _h_f2.add( 1300., 1800.,book(dummy,30,1,1));
	 _h_f2.add( 1800., 2500.,book(dummy,31,1,1));
	 _h_f2.add( 2500., 3500.,book(dummy,32,1,1));
	 _h_f2.add( 3500., 15000.,book(dummy,33,1,1));

/*
        book(_hist_Q2_10, "Q2_10",100,1., 11.0);
        book(_hist_Q2_100, "Q2_100",100,10., 100.0);
        book(_hist_Q2_1000, "Q2_1000",100,100., 1000.0);
        book(_hist_Q2_2000, "Q2_2000",100,800., 5000.0);
        book(_hist_Q2_3000, "Q2_3000",100,3000., 10000.0);
*/

    }


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

      const DISKinematics& dk = applyProjection<DISKinematics>(event, "Kinematics");
      //const DISLepton& dl = applyProjection<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*pow(Q2,2.)/(2.0*M_PI*pow(alpha,2.)*(1.0+pow((1.-y),2.)));
/*
	_hist_Q2_10-> fill(Q2) ;
	_hist_Q2_100-> fill(Q2) ;
	_hist_Q2_1000-> fill(Q2) ;
	_hist_Q2_2000-> fill(Q2) ;
	_hist_Q2_3000-> fill(Q2) ;
*/
	_h_f2.fill(Q2,x,F); // wypelniamy histogram x w skali Q2


    }


    /// Normalise histograms etc., after the run
    void finalize() {
	double gev2nb =0.389e6;
      double scalefactor=crossSection()/nanobarn/sumOfWeights()/gev2nb ;
      // with _h_f2.scale also q2 bin width is scaled
      _h_f2.scale(scalefactor, this);

    }

    ///@}


    /// @name Histograms
    ///@{
	BinnedHistogram _h_f2;
      Histo1DPtr _hist_Q2_10,_hist_Q2_100,_hist_Q2_1000,_hist_Q2_2000,_hist_Q2_3000;
    ///@}


  };


  RIVET_DECLARE_PLUGIN(ZEUS_1996_I420332);

}