rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

BESIII_2019_I1724880

Charge particle multiplicity in $\eta_c$ decays
Experiment: BESIII (BEPC)
Inspire ID: 1724880
Status: VALIDATED
Authors:
  • Peter Richardson
References: Beams: * *
Beam energies: ANY
Run details:
  • Any process producing eta_c mesons

Measurement of the charged particle multiplicity distribution in $\eta_c$ decays by the BESIII collaboration.

Source code: BESIII_2019_I1724880.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/UnstableParticles.hh"
 4
 5namespace Rivet {
 6
 7
 8  /// @brief Charged particle multiplicity in eta_c decays
 9  class BESIII_2019_I1724880 : public Analysis {
10  public:
11
12    /// Constructor
13    RIVET_DEFAULT_ANALYSIS_CTOR(BESIII_2019_I1724880);
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(UnstableParticles(), "UFS");
24
25      // Book histograms
26      book(_h_n, 1, 1, 1);
27
28    }
29
30    void findChildren(const Particle & p,int & nCharged) {
31      for( const Particle &child : p.children()) {
32        if(child.children().empty()) {
33          if(PID::isCharged(child.pid())) ++nCharged;
34        }
35        else
36          findChildren(child,nCharged);
37      }
38    }
39
40    /// Perform the per-event analysis
41    void analyze(const Event& event) {
42      for (const Particle& p :  apply<FinalState>(event, "UFS").particles(Cuts::pid==441)) {
43        int nCharged(0);
44        findChildren(p,nCharged);
45        _h_n->fill(min(nCharged,8));
46      }
47    }
48
49
50    /// Normalise histograms etc., after the run
51    void finalize() {
52      normalize(_h_n,2.);
53    }
54
55    /// @}
56
57
58    /// @name Histograms
59    /// @{
60    Histo1DPtr _h_n;
61    /// @}
62
63
64  };
65
66
67  RIVET_DECLARE_PLUGIN(BESIII_2019_I1724880);
68
69}