Rivet analyses referenceJADE_1990_I282847Photon, $\pi^0$ and $\eta$ spectra in $e^+e^-$ collisions at 35 and 44 GeVExperiment: JADE (Petra) Inspire ID: 282847 Status: VALIDATED Authors:
Beam energies: (17.5, 17.5); (22.0, 22.0) GeV Run details:
Measurement of the Photon, $\pi^0$ and $\eta$ spectra in $e^+e^-$ collisions at 35 and 44 GeV by the JADE experiment at Petra. The isolated photon spectrum which tests ISR and FST QED radiation is not implemented. The multiplicities are not implemented as they are in the PDG averages. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples. Source code: JADE_1990_I282847.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/UnstableParticles.hh"
5#include "Rivet/Projections/Beam.hh"
6
7namespace Rivet {
8
9
10 /// @brief gamma, pi0 and eta spectra at 35 and 44 GeV
11 class JADE_1990_I282847 : public Analysis {
12 public:
13
14 /// Constructor
15 RIVET_DEFAULT_ANALYSIS_CTOR(JADE_1990_I282847);
16
17
18 /// @name Analysis methods
19 /// @{
20
21 /// Book histograms and initialise projections before the run
22 void init() {
23
24 declare(Beam(), "Beams");
25 declare(FinalState(), "FS");
26 declare(UnstableParticles(), "UFS");
27
28 int ioff=-1;
29 if (isCompatibleWithSqrtS(35*GeV)) {
30 ioff=0;
31 }
32 else if (isCompatibleWithSqrtS(44*GeV)) {
33 ioff=1;
34 }
35 else {
36 MSG_ERROR("Beam energy " << sqrtS() << " not supported!");
37 }
38 // Book histograms
39 book(_h_gamma, 1+ioff, 1, 1);
40 book(_h_pi0 , 3+ioff, 1, 1);
41 if (ioff==0) book(_h_eta, 5, 1, 1);
42 }
43
44
45 /// Perform the per-event analysis
46 void analyze(const Event& event) {
47 // Get beams and average beam momentum
48 const ParticlePair& beams = apply<Beam>(event, "Beams").beams();
49 const double meanBeamMom = 0.5*(beams.first.p3().mod() + beams.second.p3().mod());
50 // gamma
51 const FinalState& fs = apply<FinalState>(event, "FS");
52 for (const Particle& p : fs.particles(Cuts::pid==22)) {
53 _h_gamma->fill(p.E()/meanBeamMom);
54 }
55 // pi0, eta
56 const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
57 for (const Particle& p : ufs.particles(Cuts::pid==111 or Cuts::pid==221)) {
58 const double modp = p.p3().mod();
59 const double xE = p.E()/meanBeamMom;
60 const double beta = modp/p.E();
61 if (p.pid()==111) {
62 _h_pi0->fill(xE,1./beta);
63 }
64 else if (_h_eta) {
65 _h_eta->fill(xE,1./beta);
66 }
67 }
68 }
69
70
71 /// Normalise histograms etc., after the run
72 void finalize() {
73 scale(_h_gamma, crossSection()*sqr(sqrtS())/microbarn/sumOfWeights());
74 scale(_h_pi0 , crossSection()*sqr(sqrtS())/microbarn/sumOfWeights());
75 if(_h_eta) scale(_h_eta , crossSection()*sqr(sqrtS())/microbarn/sumOfWeights());
76 }
77
78 /// @}
79
80 /// @name Histograms
81 /// @{
82 Histo1DPtr _h_gamma, _h_pi0, _h_eta;
83 /// @}
84
85 };
86
87
88 RIVET_DECLARE_PLUGIN(JADE_1990_I282847);
89
90
91}
|