Rivet analyses referenceDELPHI_1992_I334948Charge multiplicity for different jet multiplicities in hadronic $Z^0$ decaysExperiment: DELPHI (LEP) Inspire ID: 334948 Status: VALIDATED Authors:
Beam energies: (45.6, 45.6) GeV Run details:
The charged multiplicity distribution in hadron $Z^0$ decays for different numbers of final state jets. Source code: DELPHI_1992_I334948.cc 1// -*- C++ -*-
2#include "Rivet/Analysis.hh"
3#include "Rivet/Projections/ChargedFinalState.hh"
4#include "Rivet/Projections/FastJets.hh"
5
6namespace Rivet {
7
8
9 /// @brief Charged multiplicity for different numbers of final state jets
10 class DELPHI_1992_I334948 : public Analysis {
11 public:
12
13 /// Constructor
14 RIVET_DEFAULT_ANALYSIS_CTOR(DELPHI_1992_I334948);
15
16
17 /// @name Analysis methods
18 /// @{
19
20 /// Book histograms and initialise projections before the run
21 void init() {
22
23 // Initialise and register projections
24 const ChargedFinalState cfs;
25 declare(cfs, "FS");
26 declare(FastJets(cfs, JetAlg::JADE, 0.7), "Jets");
27
28 // Book histograms
29 for (unsigned int ih=0; ih<3; ++ih) {
30 for (unsigned int iy=0; iy<3; ++iy) {
31 book(_h_mult[ih][iy], ih+1, 1, iy+1);
32 }
33 }
34 }
35
36
37 /// Perform the per-event analysis
38 void analyze(const Event& event) {
39 const FinalState& fs = apply<FinalState>(event, "FS");
40 const size_t numParticles = fs.particles().size();
41 // Even if we only generate hadronic events, we still need a cut on numCharged >= 2.
42 if (numParticles < 2) {
43 MSG_DEBUG("Failed leptonic event cut");
44 vetoEvent;
45 }
46 MSG_DEBUG("Passed leptonic event cut");
47 const FastJets& jets = apply<FastJets>(event, "Jets");
48 if (jets.clusterSeq()) {
49 vector<double> ycut = {0.01,0.02,0.04};
50 for (unsigned int ih=0;ih<3;++ih) {
51 int nbin = jets.clusterSeq()->n_exclusive_jets_ycut(ycut[ih])-2;
52 if (nbin<0 || nbin>2) continue;
53 _h_mult[ih][nbin]->fill(numParticles);
54 }
55 }
56 }
57
58
59 /// Normalise histograms etc., after the run
60 void finalize() {
61
62 for (unsigned int ih=0; ih<3; ++ih) {
63 for (unsigned int iy=0; iy<3; ++iy) {
64 normalize(_h_mult[ih][iy], 1000.);
65 }
66 }
67 }
68
69 /// @}
70
71
72 /// @name Histograms
73 /// @{
74 BinnedHistoPtr<int> _h_mult[3][3];
75 /// @}
76
77
78 };
79
80
81 RIVET_DECLARE_PLUGIN(DELPHI_1992_I334948);
82
83
84}
|