Rivet analyses referenceCMD2_1999_I502164Cross section for $e^+e^-\to K^0_SK^0_L$ at energies near the $\phi$ massExperiment: CMD2 (VEPP-2M) Inspire ID: 502164 Status: VALIDATED Authors:
Beam energies: ANY Run details:
1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5
6namespace Rivet {
7
8
9 /// @brief e+ e- > KS0 KL0
10 class CMD2_1999_I502164 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(CMD2_1999_I502164);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 declare(FinalState(), "FS");
23 for(unsigned int ix=0;ix<4;++ix)
24 book(_sigma[ix], "TMP/sigma_"+toString(ix), refData(1+ix, 1, 1));
25
26 }
27
28
29 /// Perform the per-event analysis
30 void analyze(const Event& event) {
31
32 const FinalState& fs = apply<FinalState>(event, "FS");
33
34 map<long,int> nCount;
35 int ntotal(0);
36 for (const Particle& p : fs.particles()) {
37 nCount[p.pid()] += 1;
38 ++ntotal;
39 }
40 if(ntotal==2 &&
41 nCount[130]==1 && nCount[310]==1) {
42 for(unsigned int ix=0;ix<4;++ix) _sigma[ix]->fill(sqrtS()/MeV);
43 }
44 }
45
46
47 /// Normalise histograms etc., after the run
48 void finalize() {
49 double fact = crossSection()/ sumOfWeights() /nanobarn;
50 for(unsigned int ix=0;ix<4;++ix) {
51 scale(_sigma[ix],fact);
52 Estimate1DPtr tmp;
53 book(tmp, 1+ix, 1, 1);
54 barchart(_sigma[ix],tmp);
55 }
56 }
57
58 /// @}
59
60
61 /// @name Histograms
62 /// @{
63 Histo1DPtr _sigma[4];
64 /// @}
65
66
67 };
68
69
70 RIVET_DECLARE_PLUGIN(CMD2_1999_I502164);
71
72
73}
|