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, FastJets::JADE, 0.7, JetAlg::Muons::ALL, JetAlg::Invisibles::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 (size_t i = 0; i < _h_y_2_JADE->numBins(); ++i) {
43	  double ycut = _h_y_2_JADE->bin(i).xMid();
44	  double width = _h_y_2_JADE->bin(i).width();
45	  if (y_23 < ycut) _h_y_2_JADE->fillBin(i,width);
46	}
47	for (size_t i = 0; i < _h_y_3_JADE->numBins(); ++i) {
48	  double ycut = _h_y_3_JADE->bin(i).xMid();
49	  double width = _h_y_3_JADE->bin(i).width();
50	  if (y_34 < ycut && y_23 > ycut) {
51	    _h_y_3_JADE->fillBin(i,width);
52	  }
53	}
54	for (size_t i = 0; i < _h_y_4_JADE->numBins(); ++i) {
55	  double ycut = _h_y_4_JADE->bin(i).xMid();
56	  double width = _h_y_4_JADE->bin(i).width();
57	  if (y_45 < ycut && y_34 > ycut) {
58	    _h_y_4_JADE->fillBin(i,width);
59	  }
60	}
61      }
62    }
63
64
65    /// Normalise histograms etc., after the run
66    void finalize() {
67      scale(_h_y_2_JADE, 100./ sumOfWeights());
68      scale(_h_y_3_JADE, 100./ sumOfWeights());
69      scale(_h_y_4_JADE, 100./ sumOfWeights());
70    }
71
72    ///@}
73
74
75    /// @name Histograms
76    ///@{
77    Histo1DPtr _h_y_2_JADE,_h_y_3_JADE,_h_y_4_JADE;
78    ///@}
79
80
81  };
82
83
84  RIVET_DECLARE_PLUGIN(L3_1990_I298078);
85
86}