Rivet analyses referenceSND_2018_I1637194Cross section for $e^+e^-\to$ $K^0_SK^0_L\pi^0$ for energies between 1.3 and 2.0Experiment: SND (VEPP-2M) Inspire ID: 1637194 Status: VALIDATED Authors:
Beam energies: ANY Run details:
Measurement of the cross section for $e^+e^-\to$ $K^0_SK^0_L\pi^0$ for energies from 1.3 to 2.0 GeV. Source code: SND_2018_I1637194.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5namespace Rivet {
6
7
8 /// @brief e+e- > KS0 KL0 pi0
9 class SND_2018_I1637194 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(SND_2018_I1637194);
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(FinalState(), "FS");
23 book(_nKKpi, 1, 1, 1);
24 for (const string& en : _nKKpi.binning().edges<0>()) {
25 const size_t idx = en.find("-");
26 if(idx!=std::string::npos) {
27 const double emin = std::stod(en.substr(0,idx));
28 const double emax = std::stod(en.substr(idx+1,string::npos));
29 if(inRange(sqrtS()/GeV, emin, emax)) {
30 _ecms = en;
31 break;
32 }
33 }
34 else {
35 const double end = std::stod(en)*GeV;
36 if (isCompatibleWithSqrtS(end)) {
37 _ecms = en;
38 break;
39 }
40 }
41 }
42 if (_ecms.empty())
43 MSG_ERROR("Beam energy incompatible with analysis.");
44 }
45
46
47 /// Perform the per-event analysis
48 void analyze(const Event& event) {
49 const FinalState& fs = apply<FinalState>(event, "FS");
50
51 map<long,int> nCount;
52 int ntotal(0);
53 for (const Particle& p : fs.particles()) {
54 nCount[p.pid()] += 1;
55 ++ntotal;
56 }
57
58 if(ntotal==3 && nCount[130]==1 && nCount[310]==1 && nCount[111] ==1)
59 _nKKpi->fill(_ecms);
60 }
61
62
63 /// Normalise histograms etc., after the run
64 void finalize() {
65 scale(_nKKpi, crossSection()/ sumOfWeights() /nanobarn);
66 }
67
68 /// @}
69
70
71 /// @name Histograms
72 /// @{
73 BinnedHistoPtr<string> _nKKpi;
74 string _ecms;
75 /// @}
76
77
78 };
79
80
81 RIVET_DECLARE_PLUGIN(SND_2018_I1637194);
82
83
84}
|