Rivet analyses referenceMARKI_1975_I100592Cross section and charged particle multiplicity for energies between 2.6 and 5 GeVExperiment: MARKI (SPEAR) Inspire ID: 100592 Status: VALIDATED Authors:
Beam energies: (1.2, 1.2); (1.3, 1.3); (1.4, 1.4); (1.5, 1.5); (1.6, 1.6); (1.6, 1.6); (1.6, 1.6); (1.7, 1.7); (1.8, 1.8); (1.9, 1.9); (2.0, 2.0); (2.0, 2.0); (2.1, 2.1); (2.1, 2.1); (2.2, 2.2); (2.3, 2.3); (2.4, 2.4); (2.5, 2.5) GeV Run details:
Cross section and harged particle multiplicity for energies between 2.6 and 5 GeV. Beam energy must be specified as analysis option "ENERGY" when rivet-merging samples. Source code: MARKI_1975_I100592.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ChargedFinalState.hh"
4
5namespace Rivet {
6
7
8 /// @brief cross section and charged multiplicity
9 class MARKI_1975_I100592 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(MARKI_1975_I100592);
14
15
16 /// @name Analysis methods
17 /// @{
18
19 /// Book histograms and initialise projections before the run
20 void init() {
21
22 // Initialise and register projections
23 declare(ChargedFinalState(), "FS");
24
25 // Book histograms
26 book(_nEvent , 1, 1, 1);
27 book(_nHadrons, 2, 1, 1);
28 for (const string& en : _nEvent.binning().edges<0>()) {
29 double end = std::stod(en)*GeV;
30 if(isCompatibleWithSqrtS(end)) {
31 _ecms = en;
32 break;
33 }
34 }
35 if(_ecms.empty()) MSG_ERROR("Beam energy incompatible with analysis.");
36 }
37
38
39 /// Perform the per-event analysis
40 void analyze(const Event& event) {
41 const ChargedFinalState& fs = apply<ChargedFinalState>(event, "FS");
42 _nEvent->fill(_ecms);
43 _nHadrons->fill(_ecms,fs.particles().size());
44 }
45
46 /// Normalise histograms etc., after the run
47 void finalize() {
48 scale(_nEvent,crossSection()/ sumOfWeights() /nanobarn);
49 }
50
51 /// @}
52
53
54 /// @name Histograms
55 /// @{
56 BinnedHistoPtr<string> _nEvent;
57 BinnedProfilePtr<string> _nHadrons;
58 string _ecms;
59 /// @}
60
61
62 };
63
64
65 RIVET_DECLARE_PLUGIN(MARKI_1975_I100592);
66
67
68}
|