Rivet analyses referenceOLYA_1984_I208231Cross section for $e^+e^-\to \pi^+\pi^-$ for energies between 640 and 1400 MeVExperiment: OLYA (VEPP-2M) Inspire ID: 208231 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.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (0.4, 0.4); (3788.0, 3788.0); (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); (3988.0, 3988.0); (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.5, 0.5); (4588.0, 4588.0); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (5435.0, 5435.0); (0.5, 0.5); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (6035.0, 6035.0); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.6, 0.6); (0.7, 0.7); (6585.0, 6585.0); (0.7, 0.7); (0.7, 0.7); (0.7, 0.7); (0.7, 0.7); (0.7, 0.7); (0.7, 0.7); (0.7, 0.7); (0.7, 0.7) GeV Run details:
Measurement of the cross section for $e^+e^-\to \pi^+\pi^-$ at energies between 640 and 1400 MeV. Source code: OLYA_1984_I208231.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 OLYA_1984_I208231 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(OLYA_1984_I208231);
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
24 // Book histograms
25 book(_npion,1,1,1);
26 for (const string& en : _npion.binning().edges<0>()) {
27 double end = std::stod(en)*MeV;
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 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 /// @{
59 BinnedHistoPtr<string> _npion;
60 string ecms;
61 /// @}
62
63
64 };
65
66
67 RIVET_DECLARE_PLUGIN(OLYA_1984_I208231);
68
69
70}
|