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  // The hook for the plugin system
68  RIVET_DECLARE_PLUGIN(BESIII_2019_I1724880);
69
70
71}