rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMD_1985_I221309

Cross section for $e^+e^-\to \pi^+\pi^-$ for energies below 1.4 GeV
Experiment: CMD (VEPP-2M)
Inspire ID: 221309
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Nucl.Phys. B256 (1985) 365-384, 1985
Beams: e+ e-
Beam energies: (0.2, 0.2); (0.2, 0.2); (0.2, 0.2); (0.2, 0.2); (0.2, 0.2); (0.2, 0.2); (0.2, 0.2); (0.2, 0.2); (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.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); (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.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); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (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); (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.6, 0.6); (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); (0.7, 0.7); (0.7, 0.7) GeV
Run details:
  • e+e- to hadrons

Source code: CMD_1985_I221309.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4
 5
 6namespace Rivet {
 7
 8
 9  /// @brief e+e- -> pi+pi-
10  class CMD_1985_I221309 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(CMD_1985_I221309);
15
16
17    /// @name Analysis methods
18    /// @{
19
20    /// Book histograms and initialise projections before the run
21    void init() {
22
23      // Initialise and register projections
24      declare(FinalState(), "FS");
25
26      // Book histograms
27      book(_sigma1, 1,1,1);
28      book(_sigma2, 2,1,1);
29      for (const string& en : _sigma1.binning().edges<0>()) {
30        double end = std::stod(en)*MeV;
31        if(isCompatibleWithSqrtS(end)) {
32          ecms = en;
33          break;
34        }
35      }
36      icms=-1;
37      for(const int& en : _sigma2.binning().edges<0>()) {
38        double end = double(en)*MeV;
39        if(isCompatibleWithSqrtS(end)) {
40          icms = en;
41          break;
42        }
43      }
44      if(ecms.empty() && icms<0) MSG_ERROR("Beam energy incompatible with analysis.");
45    }
46
47
48    /// Perform the per-event analysis
49    void analyze(const Event& event) {
50      const FinalState& fs = apply<FinalState>(event, "FS");
51      if(fs.particles().size()!=2) vetoEvent;
52      for (const Particle& p : fs.particles()) {
53	if(abs(p.pid())!=PID::PIPLUS) vetoEvent;
54      }
55      if(!ecms.empty()) _sigma1->fill(ecms);
56      if(icms>0       ) _sigma2->fill(icms);
57    }
58
59
60    /// Normalise histograms etc., after the run
61    void finalize() {
62      scale(_sigma1,crossSection()/ sumOfWeights() /nanobarn);
63      scale(_sigma2,crossSection()/ sumOfWeights() /nanobarn);
64    }
65
66    /// @}
67
68
69    /// @name Histograms
70    /// @{
71    BinnedHistoPtr<string>  _sigma1;
72    BinnedHistoPtr<int>     _sigma2;
73    string ecms;
74    int icms;
75    /// @}
76
77
78  };
79
80
81  RIVET_DECLARE_PLUGIN(CMD_1985_I221309);
82
83
84}