Rivet analyses referenceARGUS_1988_I260828Cross sction for $\gamma\gamma\to K^+K^-\pi^+\pi^-\pi^0$ $\sqrt{s}=2\to3.6\,$GeVExperiment: ARGUS (DORIS) Inspire ID: 260828 Status: VALIDATED Authors:
Beam energies: ANY Run details:
Measurement of the cross section for $\gamma\gamma\to K^+K^-\pi^+\pi^-\pi^0$ with $\sqrt{s}=2\to3.6\,$GeV. Source code: ARGUS_1988_I260828.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5namespace Rivet {
6
7
8 /// @brief gamma gamma -> K+ K- pi+ pi-
9 class ARGUS_1988_I260828 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(ARGUS_1988_I260828);
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 // histos
24 book(_h, 1, 1, 1);
25
26 _edge = "OTHER"s;
27 for (const string& edge : _h.binning().edges<0>()) {
28 if (isCompatibleWithSqrtS(std::stod(edge)*GeV)) {
29 _edge = edge;
30 }
31 }
32 }
33
34
35 /// Perform the per-event analysis
36 void analyze(const Event& event) {
37 const FinalState& fs = apply<FinalState>(event, "FS");
38 // find the final-state particles
39 map<long,int> nCount;
40 int ntotal(0);
41 for (const Particle& p : fs.particles()) {
42 nCount[p.pid()] += 1;
43 ++ntotal;
44 }
45 if (ntotal==5 && nCount[211]==1 && nCount[-211]==1 &&
46 nCount[321]==1 && nCount[-321]==1 && nCount[111]==1) _h->fill(_edge);
47 }
48
49
50 /// Normalise histograms etc., after the run
51 void finalize() {
52 scale(_h, crossSection()/nanobarn/sumOfWeights());
53 }
54
55 /// @}
56
57
58 /// @name Histograms
59 /// @{
60 BinnedHistoPtr<string> _h;
61 string _edge;
62 /// @}
63
64
65 };
66
67
68 RIVET_DECLARE_PLUGIN(ARGUS_1988_I260828);
69
70}
|