rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2021_I1868813

Cross section for $K^0_S$ production for energies between 3.645 and 3.7 GeV
Experiment: BESIII (BEPC)
Inspire ID: 1868813
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Lett.B 820 (2021) 136576
Beams: e- e+
Beam energies: (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.8, 1.8); (1.9, 1.9) GeV
Run details:
  • e+ e- to hadrons

Cross section for the production of $K^0_S$ for energies between 3.645 and 3.7, i.e near the $\psi(2S)$ resonace measured by BESIII. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples.

Source code: BESIII_2021_I1868813.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief  kaon production at low energies
 9  class BESIII_2021_I1868813 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2021_I1868813);
14
15
16    /// @name Analysis methods
17    ///@{
18
19    /// Book histograms and initialise projections before the run
20    void init() {
21
22      // Initialise and register projections
23      declare(UnstableParticles(), "UFS");
24      book(_c_kaons   , "TMP/nK", refData<YODA::BinnedEstimate<string>>(1, 1, 1));
25
26      for (const string& en : _c_kaons.binning().edges<0>()) {
27        const double end = std::stod(en)*GeV;
28        if (isCompatibleWithSqrtS(end)) {
29          _ecms = en;
30          break;
31        }
32      }
33      if(_ecms.empty()) MSG_ERROR("Beam energy incompatible with analysis.");
34    }
35
36
37    /// Perform the per-event analysis
38    void analyze(const Event& event) {
39      const UnstableParticles& ufs = apply<UnstableParticles>(event, "UFS");
40      unsigned int count = ufs.particles(Cuts::pid==310).size();
41      _c_kaons->fill(_ecms,count);
42    }
43
44
45    /// Normalise histograms etc., after the run
46    void finalize() {
47      BinnedEstimatePtr<string> mult;
48      book(mult,1, 1, 1);
49      barchart(_c_kaons,mult);
50      scale(mult,crossSection()/nanobarn);
51    }
52
53    ///@}
54
55
56    /// @name Histograms
57    ///@{
58    BinnedProfilePtr<string> _c_kaons;
59    string _ecms;
60    ///@}
61
62
63  };
64
65
66  RIVET_DECLARE_PLUGIN(BESIII_2021_I1868813);
67
68}