rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

JADE_1985_I213948

Photon, $\pi^0$ and $\eta$ spectra in $e^+e^-$ collisions at 14, 22.5 and 34.4 GeV
Experiment: JADE (Petra)
Inspire ID: 213948
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Z.Phys.C 28 (1985) 343
Beams: e+ e-
Beam energies: (7.0, 7.0); (11.2, 11.2); (17.2, 17.2) GeV
Run details:
  • e+ e- to hadrons

Measurement of the Photon, $\pi^0$ and $\eta$ spectra in $e^+e^-$ collisions at14, 22.5 and 34.4 GeV by the JADE experiment at Petra. N.B. The binning was not provided in the HepData entry and had to be deduced from the average values in the bins.

Source code: JADE_1985_I213948.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
// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/FinalState.hh"
#include "Rivet/Projections/UnstableParticles.hh"
#include "Rivet/Projections/Beam.hh"

namespace Rivet {


  /// @brief  gamma, pi0 and eta spectra at 14, 22.5 and 34.4 GeV
  class JADE_1985_I213948 : public Analysis {
  public:

    /// Constructor
    DEFAULT_RIVET_ANALYSIS_CTOR(JADE_1985_I213948);


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

    /// Book histograms and initialise projections before the run
    void init() {
      declare(Beam(), "Beams");
      declare(FinalState(), "FS");
      declare(UnstableParticles(), "UFS");
      // find the beam energy
      int ioff=-1;
      if(fuzzyEquals(sqrtS()/GeV,34.5,1e-3)) {
      	ioff=0;
      }
      else if(fuzzyEquals(sqrtS()/GeV,22.5,1e-3)) {
      	ioff=1;
      }
      else if(fuzzyEquals(sqrtS()/GeV,14.0,1e-3)) {
      	ioff=2;
      }
      else
      	MSG_ERROR("Beam energy " << sqrtS() << " not supported!");
      // book histos
      book(_h_gamma,ioff+1,1,1);
      book(_h_pi0  ,ioff+4,1,1);
      if(ioff==0)
	book(_h_eta,7,1,1);
    }


    /// Perform the per-event analysis
    void analyze(const Event& event) {
      // Get beams and average beam momentum
      const ParticlePair& beams = apply<Beam>(event, "Beams").beams();
      const double meanBeamMom = ( beams.first.p3().mod() +
                                   beams.second.p3().mod() ) / 2.0;
      // gamma
      const FinalState& fs = apply<FinalState>(event, "FS");
      for (const Particle& p : fs.particles(Cuts::pid==22)) {
      	double xE = p.E()/meanBeamMom;
      	_h_gamma->fill(xE);
      }
      // pi0, eta
      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
      for (const Particle& p : ufs.particles(Cuts::pid==111 or Cuts::pid==221)) {
      	double xE = p.E()/meanBeamMom;
      	if(p.pid()==111)
      	  _h_pi0->fill(xE);
      	else if(_h_eta)
      	  _h_eta->fill(xE);
      }
    }


    /// Normalise histograms etc., after the run
    void finalize() {
      scale(_h_gamma, crossSection()*sqr(sqrtS())/microbarn/sumOfWeights());
      scale(_h_pi0  , crossSection()*sqr(sqrtS())/microbarn/sumOfWeights());
      if(_h_eta) scale(_h_eta  , crossSection()*sqr(sqrtS())/microbarn/sumOfWeights());
    }

    ///@}


    /// @name Histograms
    ///@{
    Histo1DPtr _h_gamma, _h_pi0, _h_eta;
    ///@}


  };


  DECLARE_RIVET_PLUGIN(JADE_1985_I213948);

}