rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

DM1_1979_I132828

Cross section for $e^+e^-\to\pi^+\pi^+\pi^-\pi^+$ between 0.89 and 1.1 GeV
Experiment: DM1 (ACO)
Inspire ID: 132828
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Lett. B81 (1979) 389-392, 1979
Beams: e+ e-
Beam energies: ANY
Run details:
  • e+e- to hadrons

Measurement of the cross section for $e^+e^-\to\pi^+\pi^+\pi^-\pi^+$ between 0.89 and 1.1 GeV

Source code: DM1_1979_I132828.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief Add a short analysis description here
 9  class DM1_1979_I132828 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(DM1_1979_I132828);
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 histograms
24      book(_npion, 1, 1, 1);
25
26    }
27
28
29    /// Perform the per-event analysis
30    void analyze(const Event& event) {
31      if (Ecm == "") {
32        const size_t idx = _ecmAxis.index(sqrtS()/MeV);
33        Ecm = idx? _npion->xEdges()[idx-1] : "OTHER";
34      }
35      const FinalState& fs = apply<FinalState>(event, "FS");
36      if(fs.particles().size()!=4) vetoEvent;
37      for (const Particle& p : fs.particles()) {
38        if(abs(p.pid())!=PID::PIPLUS)  vetoEvent;
39      }
40      _npion->fill(Ecm);
41    }
42
43
44    /// Normalise histograms etc., after the run
45    void finalize() {
46      scale(_npion, crossSection()/ sumOfWeights() /nanobarn);
47    }
48
49    /// @}
50
51    /// @name Histograms
52    /// @{
53    BinnedHistoPtr<string> _npion;
54    YODA::Axis<double> _ecmAxis{963., 1008., 1024., 1055., 1088., 1108.};
55    string Ecm = "";
56    /// @}
57
58
59  };
60
61
62  RIVET_DECLARE_PLUGIN(DM1_1979_I132828);
63
64
65}