Rivet analyses referenceCLEOC_2005_I693873Cross section for $e^+e^-\to \pi^+\pi^-$, $K^+K^-$ and $p\bar{p}$ at 3.671 GeVExperiment: CLEOC (CESR) Inspire ID: 693873 Status: VALIDATED Authors:
Beam energies: (1.8, 1.8) GeV Run details:
Measurement of the cross section for $e^+e^-\to \pi^+\pi^-$, $K^+K^-$ and $p\bar{p}$ at 3.671 GeV by CLEO-c. Source code: CLEOC_2005_I693873.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5namespace Rivet {
6
7
8 /// @brief e+ e- > pi+pi-, K+K- and p pbar at 3.671 GeV
9 class CLEOC_2005_I693873 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(CLEOC_2005_I693873);
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(FinalState(), "FS");
24
25 // Book histograms
26 book(_npipi , 1,1,1);
27 book(_nKK , 1,1,2);
28 book(_nppbar, 1,1,3);
29 }
30
31
32 /// Perform the per-event analysis
33 void analyze(const Event& event) {
34
35 const FinalState& fs = apply<FinalState>(event, "FS");
36
37 map<long,int> nCount;
38 int ntotal(0);
39 for (const Particle& p : fs.particles()) {
40 nCount[p.pid()] += 1;
41 ++ntotal;
42 }
43 if(ntotal!=2) vetoEvent;
44
45 if(nCount[211]==1 && nCount[-211]==1)
46 _npipi->fill(ecms);
47 else if(nCount[321]==1 && nCount[-321]==1)
48 _nKK->fill(ecms);
49 else if(nCount[2212]==1 && nCount[-2212]==1)
50 _nppbar->fill(ecms);
51 }
52
53
54 /// Normalise histograms etc., after the run
55 void finalize() {
56 scale(_npipi ,crossSection()/ sumOfWeights() /picobarn);
57 scale(_nKK ,crossSection()/ sumOfWeights() /picobarn);
58 scale(_nppbar,crossSection()/ sumOfWeights() /picobarn);
59 }
60
61 /// @}
62
63
64 /// @name Histograms
65 /// @{
66 BinnedHistoPtr<string> _npipi,_nKK,_nppbar;
67 string ecms = "3.671";
68 /// @}
69
70
71 };
72
73
74 RIVET_DECLARE_PLUGIN(CLEOC_2005_I693873);
75
76
77}
|