Rivet analyses referenceBES_1995_I39870Measurement of the hadronic cross section for energies between 3.08 and 3.116 GeVExperiment: BES (BEPC) Inspire ID: 39870 Status: VALIDATED Authors:
Beam energies: (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.5, 1.5); (1.6, 1.6); (1.6, 1.6); (1.6, 1.6); (1.6, 1.6); (1.6, 1.6) GeV Run details:
Measurement of the hadronic cross section in $e^+e^-$ collisions by BES for energies between 3.08 and 3.116 GeV. Source code: BES_1995_I39870.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4
5namespace Rivet {
6
7
8 /// @brief Measurement of the hadronic cross section for energies between 3.08 and 3.116 GeV
9 class BES_1995_I39870 : public Analysis {
10 public:
11
12 /// Constructor
13 RIVET_DEFAULT_ANALYSIS_CTOR(BES_1995_I39870);
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
24 // Book histograms
25 book(_c_hadrons, 1, 1, 1);
26 for (const string& en : _c_hadrons.binning().edges<0>()) {
27 double end = std::stod(en)*GeV;
28 if(isCompatibleWithSqrtS(end)) {
29 _ecms = en;
30 break;
31 }
32 }
33 if(_ecms.empty()) MSG_ERROR("Beam energy incompatible with analysis.");
34 }
35
36
37 /// Perform the per-event analysis
38 void analyze(const Event& event) {
39 const FinalState& fs = apply<FinalState>(event, "FS");
40
41 map<long,int> nCount;
42 int ntotal(0);
43 for (const Particle& p : fs.particles()) {
44 nCount[p.pid()] += 1;
45 ++ntotal;
46 }
47 // mu+mu- + photons
48 if (nCount[-13]==1 and nCount[13]==1 && ntotal==2+nCount[22]) vetoEvent;
49 // everything else
50 else _c_hadrons->fill(_ecms);
51 }
52
53
54 /// Normalise histograms etc., after the run
55 void finalize() {
56 double fact = crossSection()/ sumOfWeights() /nanobarn;
57 scale(_c_hadrons,fact);
58 }
59
60 /// @}
61
62
63 /// @name Histograms
64 /// @{
65 BinnedHistoPtr<string> _c_hadrons;
66 string _ecms;
67 /// @}
68
69 };
70
71
72 RIVET_DECLARE_PLUGIN(BES_1995_I39870);
73
74}
|