Rivet analyses referenceBESIII_2024_I2753516$\eta$ spectra for various energies between 2 and 3.671 GeVExperiment: BESIII (BEPC) Inspire ID: 2753516 Status: VALIDATED NOHEPDATA Authors:
Beam energies: (1.0, 1.0); (1.1, 1.1); (1.2, 1.2); (1.3, 1.3); (1.4, 1.4); (1.5, 1.5); (1.8, 1.8); (1.8, 1.8) GeV Run details:
Measurement of the momentum spectrum for $\eta$ production in $e^+e^-$ collisions at low energies by BES. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples. Source code: BESIII_2024_I2753516.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/UnstableParticles.hh"
4
5namespace Rivet {
6
7
8 /// @brief eta spectra
9 class BESIII_2024_I2753516 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2024_I2753516);
14
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and initialise projections before the run
20 void init() {
21 // Initialise and register projections
22 declare(UnstableParticles(Cuts::pid==221), "UFS");
23 // histos
24 vector<double> energies = { 2.0, 2.2, 2.396, 2.6444, 2.9, 3.05, 3.5000, 3.671};
25 unsigned int iloc;
26 for(iloc=0;iloc<energies.size();++iloc) {
27 if(isCompatibleWithSqrtS(energies[iloc])) break;
28 }
29 if (iloc==energies.size())
30 MSG_ERROR("Beam energy incompatible with analysis.");
31 book(_h,1,1,1+iloc);
32 }
33
34
35 /// Perform the per-event analysis
36 void analyze(const Event& event) {
37 const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
38 for(const Particle& p : ufs.particles()) {
39 _h->fill(p.momentum().p3().mod());
40 }
41 }
42
43
44 /// Normalise histograms etc., after the run
45 void finalize() {
46 scale(_h,1./sumOfWeights());
47 }
48
49 /// @}
50
51
52 /// @name Histograms
53 /// @{
54 Histo1DPtr _h;
55 /// @}
56
57
58 };
59
60
61 RIVET_DECLARE_PLUGIN(BESIII_2024_I2753516);
62
63}
|