rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

MC_ZKTSPLITTINGS

Monte Carlo validation observables for $Z[\ell^+ \, \ell^-]$ + jets production
Experiment: ()
Status: VALIDATED
Authors:
  • Frank Siegert
  • Christian Gutschow
No references listed
Beams: * *
Beam energies: ANY
Run details:
  • $\ell^+ \ell^-$ + jets analysis. Needs mass cut on lepton pair to avoid photon singularity, e.g. a min range of $66 < m_{ll} < 116$ GeV

Monte Carlo validation observables for $Z[\ell^+ \, \ell^-]$ + jets production

Source code: MC_ZKTSPLITTINGS.cc
 1// -*- C++ -*-
 2#include "Rivet/Analyses/MC_KTSPLITTINGS_BASE.hh"
 3#include "Rivet/Projections/DileptonFinder.hh"
 4#include "Rivet/Projections/FastJets.hh"
 5
 6namespace Rivet {
 7
 8
 9  /// @brief MC validation analysis for Z + jets events
10  class MC_ZKTSPLITTINGS : public MC_KTSPLITTINGS_BASE {
11  public:
12
13    /// Default constructor
14    MC_ZKTSPLITTINGS()
15      : MC_KTSPLITTINGS_BASE("MC_ZKTSPLITTINGS", 4, "Jets")
16    {    }
17
18
19    /// @name Analysis methods
20    /// @{
21
22    /// Book histograms
23    void init() {
24      _dR = (getOption("SCHEME") == "BARE") ? 0.0 : 0.2;
25      _lepton = (getOption("LMODE") == "MU") ? PID::MUON : PID::ELECTRON;
26
27      // set FS cuts from input options
28      const double etacut = getOption<double>("ABSETALMAX", 3.5);
29      const double ptcut = getOption<double>("PTLMIN", 25.);
30
31      Cut cut = Cuts::abseta < etacut && Cuts::pT > ptcut*GeV;
32      DileptonFinder zfinder(91.2*GeV, _dR, cut && Cuts::abspid == _lepton, Cuts::massIn(65*GeV, 115*GeV));
33      declare(zfinder, "DileptonFinder");
34
35      // set clustering radius from input option
36      const double R = getOption<double>("R", 0.6);
37
38      FastJets jetpro(zfinder.remainingFinalState(), JetAlg::KT, R);
39      declare(jetpro, "Jets");
40
41      MC_KTSPLITTINGS_BASE::init();
42    }
43
44
45
46    /// Do the analysis
47    void analyze(const Event & e) {
48      const DileptonFinder& zfinder = apply<DileptonFinder>(e, "DileptonFinder");
49      if (zfinder.bosons().size() != 1) vetoEvent;
50
51      MC_KTSPLITTINGS_BASE::analyze(e);
52    }
53
54
55    /// Finalize
56    void finalize() {
57      MC_KTSPLITTINGS_BASE::finalize();
58    }
59
60    /// @}
61
62
63  protected:
64
65    /// @name Parameters for specialised e/mu and dressed/bare subclassing
66    /// @{
67    double _dR;
68    PdgId _lepton;
69    /// @}
70
71  };
72
73
74  RIVET_DECLARE_PLUGIN(MC_ZKTSPLITTINGS);
75
76}