rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

CMD2_2007_I728302

Cross section for $e^+e^-\to \pi^+\pi^-$ between 600 and 970 MeV
Experiment: CMD2 (VEPP-2M)
Inspire ID: 728302
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Lett. B648 (2007) 28-38, 2007
Beams: e+ e-
Beam energies: (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.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5); (0.5, 0.5) GeV
Run details:
  • e+ e- to hadrons below 0.6 and 0.9 GeV

Measurement of the cross section for $e^+e^-\to \pi^+\pi^-$ at energies between 600 and 970 MeV. Useful for comparing models of the pion form factor.

Source code: CMD2_2007_I728302.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4
 5
 6namespace Rivet {
 7
 8
 9  /// @brief Add a short analysis description here
10  class CMD2_2007_I728302 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(CMD2_2007_I728302);
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(_npion, 2,1,1);
28      vector<int> enint({600, 630, 660, 690, 720, 750, 760, 764, 770, 774, 778, 780, 781, 782,
29          783, 784, 786, 790, 794, 800, 810, 820, 840, 880, 920, 940, 950, 958, 970});
30      icms=-1;
31      for(const int& en : enint) {
32        double end = double(en)*MeV;
33        if(isCompatibleWithSqrtS(end)) {
34          icms = en;
35          break;
36        }
37      }
38      if(icms<0) MSG_ERROR("Beam energy incompatible with analysis.");
39    }
40
41
42    /// Perform the per-event analysis
43    void analyze(const Event& event) {
44      const FinalState& fs = apply<FinalState>(event, "FS");
45      if(fs.particles().size()!=2) vetoEvent;
46      for (const Particle& p : fs.particles()) {
47	if(abs(p.pid())!=PID::PIPLUS) vetoEvent;
48      }
49      _npion->fill(icms);
50    }
51
52
53    /// Normalise histograms etc., after the run
54    void finalize() {
55      scale(_npion,crossSection()/ sumOfWeights() /nanobarn);
56    }
57
58    /// @}
59
60
61    /// @name Histograms
62    /// @{
63    BinnedHistoPtr<int> _npion;
64    int icms;
65    /// @}
66
67
68  };
69
70
71  RIVET_DECLARE_PLUGIN(CMD2_2007_I728302);
72
73
74}