rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

L3_1990_I298078

Jets Rates using the Jade Algorithm at 91 GeV
Experiment: L3 (LEP)
Inspire ID: 298078
Status: VALIDATED
Authors:
  • Peter Richardson
References:
  • Phys.Lett.B 248 (1990) 464-472, 1990.
Beams: e+ e-
Beam energies: (45.6, 45.6) GeV
Run details:
  • e+e- to hadrons

Measurement of the integrated jet rates using the Jade algorithm by the L3 experiment at LEP1.

Source code: L3_1990_I298078.cc
 1// -*- C++ -*-
 2#include "Rivet/Analysis.hh"
 3#include "Rivet/Projections/FastJets.hh"
 4#include "Rivet/Projections/FinalState.hh"
 5
 6namespace Rivet {
 7
 8
 9  /// @brief Add a short analysis description here
10  class L3_1990_I298078 : public Analysis {
11  public:
12
13    /// Constructor
14    RIVET_DEFAULT_ANALYSIS_CTOR(L3_1990_I298078);
15
16
17    /// @name Analysis methods
18    /// @{
19
20    /// Book histograms and initialise projections before the run
21    void init() {
22
23      // Projections to use
24      const FinalState FS;
25      declare(FS, "FS");
26      FastJets jadeJets = FastJets(FS, JetAlg::JADE, 0.7, JetMuons::ALL, JetInvisibles::DECAY);
27      declare(jadeJets, "JadeJets");
28      // book histos
29      book(_h_y_2_JADE, 1,1,1);
30      book(_h_y_3_JADE, 1,1,2);
31      book(_h_y_4_JADE, 1,1,3);
32    }
33
34
35    /// Perform the per-event analysis
36    void analyze(const Event& event) {
37      const FastJets& jadejet = apply<FastJets>(event, "JadeJets");
38      if (jadejet.clusterSeq()) {
39        const double y_23 = jadejet.clusterSeq()->exclusive_ymerge_max(2);
40        const double y_34 = jadejet.clusterSeq()->exclusive_ymerge_max(3);
41        const double y_45 = jadejet.clusterSeq()->exclusive_ymerge_max(4);
42        for (const auto& b : _h_y_2_JADE->bins()) {
43          const double ycut = std::stod(b.xEdge());
44          if (y_23 < ycut)  _h_y_2_JADE->fill(b.xEdge());
45        }
46        for (const auto& b : _h_y_3_JADE->bins()) {
47          const double ycut = std::stod(b.xEdge());
48          if (y_34 < ycut && y_23 > ycut) {
49            _h_y_3_JADE->fill(b.xEdge());
50          }
51        }
52        for (const auto& b : _h_y_4_JADE->bins()) {
53          const double ycut = std::stod(b.xEdge());
54          if (y_45 < ycut && y_34 > ycut) {
55            _h_y_4_JADE->fill(b.xEdge());
56          }
57        }
58      }
59    }
60
61
62    /// Normalise histograms etc., after the run
63    void finalize() {
64      scale(_h_y_2_JADE, 100./ sumOfWeights());
65      scale(_h_y_3_JADE, 100./ sumOfWeights());
66      scale(_h_y_4_JADE, 100./ sumOfWeights());
67    }
68
69    /// @}
70
71
72    /// @name Histograms
73    /// @{
74    BinnedHistoPtr<string> _h_y_2_JADE, _h_y_3_JADE, _h_y_4_JADE;
75    /// @}
76
77
78  };
79
80
81  RIVET_DECLARE_PLUGIN(L3_1990_I298078);
82
83}