rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

AMY_1990_I295160

Hadronic charged multiplicity measurement between 50 and 61.4 GeV
Experiment: AMY (TRISTAN)
Inspire ID: 295160
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Rev. D42 (1990) 737-747
Beams: e+ e-
Beam energies: (25.0, 25.0); (26.0, 26.0); (27.5, 27.5); (28.0, 28.0); (28.5, 28.5); (30.0, 30.0); (30.4, 30.4); (30.7, 30.7); (28.5, 28.5) GeV
Run details:
  • Hadronic e+ e- events generated below the Z pole. Beam energy must be specified (in GeV) as analysis option "ENERGY" when rivet-merging samples.

The charged particle multiplicity distribution of hadronic $e^+e^-$ events as measured between 50 and 61.4 GeV using the AMY detector at TRISTAN. Beam energy must be specified (in GeV) as analysis option "ENERGY" when rivet-merging samples.

Source code: AMY_1990_I295160.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/ChargedFinalState.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief Charged multiplicity below Z pole based on ALEPH Z pole analysis
 9  ///
10  /// @author Peter Richardson
11  class AMY_1990_I295160 : public Analysis {
12  public:
13
14    /// Constructor
15    RIVET_DEFAULT_ANALYSIS_CTOR(AMY_1990_I295160);
16
17
18    /// @name Analysis methods
19    /// @{
20
21    /// Book histograms and initialise projections before the run
22    void init() {
23      const ChargedFinalState cfs;
24      declare(cfs, "CFS");
25      unsigned int offset = 0;
26      if(isCompatibleWithSqrtS(50.0*GeV)) {
27        offset = 1;
28      }
29      else if(isCompatibleWithSqrtS(52.0*GeV)) {
30        offset = 2;
31      }
32      else if(isCompatibleWithSqrtS(55.0*GeV)) {
33        offset = 3;
34      }
35      else if(isCompatibleWithSqrtS(56.0*GeV)) {
36        offset = 4;
37      }
38      else if(isCompatibleWithSqrtS(57.0*GeV)) {
39        offset = 5;
40      }
41      else if(isCompatibleWithSqrtS(60.0*GeV)) {
42        offset = 6;
43      }
44      else if(isCompatibleWithSqrtS(60.8*GeV)) {
45        offset = 7;
46      }
47      else if(isCompatibleWithSqrtS(61.4*GeV)) {
48        offset = 8;
49      }
50      else {
51        MSG_WARNING("CoM energy of events sqrt(s) = " << sqrtS()/GeV
52                    << " doesn't match any available analysis energy .");
53      }
54      book(_histChTotal, 1, 1, offset);
55      book(_histTotal, 2, 1, 1);
56      if (offset==5) {
57        book(_histChAver, 1, 1, 9);
58      }
59    }
60
61    /// Perform the per-event analysis
62    void analyze(const Event& event) {
63      const string ECMS = _histTotal->bin(ecmsAxis.index(sqrtS()/GeV)).xEdge();
64      const FinalState& cfs = apply<FinalState>(event, "CFS");
65      MSG_DEBUG("Total charged multiplicity = " << cfs.size());
66      _histChTotal->fill(cfs.size());
67      _histTotal->fill(ECMS, cfs.size());
68      if (_histChAver) {
69        _histChAver->fill(cfs.size());
70        _histTotal->fill(string("50.0 - 61.4"), cfs.size());
71      }
72    }
73
74    /// Normalise histograms etc., after the run
75    void finalize() {
76      scale(_histChTotal, 100.0/sumOfWeights()); // %age (100)
77      if (_histChAver) scale(_histChAver, 100.0/sumOfWeights());
78    }
79
80    /// @}
81
82
83  private:
84
85    /// @name Histograms
86    /// @{
87    BinnedHistoPtr<int> _histChTotal, _histChAver;
88    BinnedProfilePtr<string> _histTotal;
89    YODA::Axis<double> ecmsAxis{49., 51., 53., 55.5, 56.5, 58., 60.5, 61., 62.};
90    /// @}
91
92  };
93
94
95  RIVET_DECLARE_PLUGIN(AMY_1990_I295160);
96
97}