Rivet analyses referenceSND_2020_I1789269Cross section for $e^+e^-\to \pi^+\pi^-$ at energies between 0.525 and 0.883 GeVExperiment: SND (VEPP-2M) Inspire ID: 1789269 Status: VALIDATED Authors:
Beam energies: (0.3, 0.3); (0.3, 0.3); (0.3, 0.3); (0.3, 0.3); (0.3, 0.3); (0.3, 0.3); (0.3, 0.3); (0.3, 0.3); (0.3, 0.3); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4) GeV Run details:
Measurement of the cross section for $e^+e^-\to \pi^+\pi^-$ at energies between 0.525 and 0.883 GeV. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples. Source code: SND_2020_I1789269.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5namespace Rivet {
6
7
8 /// @brief e+e- -> pi+pi-
9 class SND_2020_I1789269 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(SND_2020_I1789269);
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(FinalState(), "FS");
24
25 // Book histograms
26 book(_npion, 1,1,1);
27 for (const string& en : _npion.binning().edges<0>()) {
28 double end = std::stod(en)*MeV;
29 if(isCompatibleWithSqrtS(end)) {
30 _ecms = en;
31 break;
32 }
33 }
34 if(_ecms.empty()) MSG_ERROR("Beam energy incompatible with analysis.");
35 }
36
37 /// Perform the per-event analysis
38 void analyze(const Event& event) {
39 const FinalState& fs = apply<FinalState>(event, "FS");
40 if(fs.particles().size()!=2) vetoEvent;
41 for (const Particle& p : fs.particles()) {
42 if(abs(p.pid())!=PID::PIPLUS) vetoEvent;
43 }
44 _npion->fill(_ecms);
45 }
46
47
48 /// Normalise histograms etc., after the run
49 void finalize() {
50 scale(_npion,crossSection()/ sumOfWeights() /nanobarn);
51 }
52
53 /// @}
54
55
56 /// @name Histograms
57 /// @{
58 BinnedHistoPtr<string> _npion;
59 string _ecms;
60 /// @}
61
62
63 };
64
65
66 RIVET_DECLARE_PLUGIN(SND_2020_I1789269);
67
68}
|