Rivet analyses referenceBESIII_2022_I2593281Cross section for $e^+e^-\to p p \bar{p}\bar{n}\pi^-$+c.c. at energies between 4.16 and 4.70 GeVExperiment: BESIII (BEPC) Inspire ID: 2593281 Status: VALIDATED NOHEPDATA SINGLEWEIGHT Authors:
Beam energies: ANY Run details:
Cross section for $e^+e^-\to p p \bar{p}\bar{n}\pi^-$+c.c. at energies between 4.16 and 4.70 GeV measured by the BESIII collaboration. Source code: BESIII_2022_I2593281.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/FinalState.hh"
4#include "Rivet/Projections/UnstableParticles.hh"
5
6namespace Rivet {
7
8
9 /// @brief e+e- > p pbar p nbar pi- +cc
10 class BESIII_2022_I2593281 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2022_I2593281);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22 // Initialise and register projections
23 declare(FinalState(), "FS");
24 declare(UnstableParticles(), "UFS");
25 book(_sigma, "/TMP/n", refData(1,1,1));
26 book(_est, 1, 1, 1);
27 }
28
29
30 /// Perform the per-event analysis
31 void analyze(const Event& event) {
32 const FinalState& fs = apply<FinalState>(event, "FS");
33 // total hadronic and muonic cross sections
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 == 5 &&
41 ((nCount[ 2212]==2 && nCount[-2212]==1 && nCount[-2112]==1 && nCount[-211]==1) ||
42 (nCount[-2212]==2 && nCount[ 2212]==1 && nCount[ 2112]==1 && nCount[ 211]==1))) _sigma->fill(sqrtS());
43 }
44
45
46 /// Normalise histograms etc., after the run
47 void finalize() {
48 scale(_sigma,crossSection()/ sumOfWeights() /femtobarn);
49 barchart(_sigma, _est);
50 }
51
52 /// @}
53
54
55 /// @name Histograms
56 /// @{
57 Histo1DPtr _sigma;
58 Estimate1DPtr _est;
59 /// @}
60
61
62 };
63
64
65 RIVET_DECLARE_PLUGIN(BESIII_2022_I2593281);
66
67}
|