rivet is hosted by Hepforge, IPPP Durham

Rivet analyses reference

MC_JETS

Monte Carlo validation observables for jet production
Experiment: ()
Status: VALIDATED
Authors:
  • Frank Siegert
No references listed
Beams: * *
Beam energies: ANY
Run details:
  • Pure QCD jet production events at an arbitrary collider.

Jets with $p_\perp>20$ GeV are constructed with an anti-$k_\perp$ jet finder with $R=0.4$ and projected onto many different observables.

Source code: MC_JETS.cc
 1// -*- C++ -*-
 2#include "Rivet/Analyses/MC_JETS_BASE.hh"
 3#include "Rivet/Projections/FinalState.hh"
 4#include "Rivet/Projections/FastJets.hh"
 5#include "fastjet/contrib/SoftDrop.hh"
 6
 7namespace Rivet {
 8
 9
10
11  /// @brief MC validation analysis for jet events
12  class MC_JETS : public MC_JETS_BASE {
13  public:
14
15    MC_JETS()
16      : MC_JETS_BASE("MC_JETS", 4, "Jets")
17    {    }
18
19
20    void init() {
21      // set ptcut from input option
22      const double jetptcut = getOption<double>("PTJMIN", 20.0);
23      _jetptcut = jetptcut * GeV;
24
25      // set clustering radius from input option
26      const double R = getOption<double>("R", 0.4);
27
28      // set clustering algorithm from input option
29      JetAlg clusterAlgo;
30      const string algoopt = getOption("ALGO", "ANTIKT");
31      if ( algoopt == "KT" ) {
32	clusterAlgo = JetAlg::KT;
33      } else if ( algoopt == "CA" ) {
34	clusterAlgo = JetAlg::CA;
35      } else if ( algoopt == "ANTIKT" ) {
36	clusterAlgo = JetAlg::ANTIKT;
37      } else {
38	MSG_WARNING("Unknown jet clustering algorithm option " + algoopt + ". Defaulting to anti-kT");
39	clusterAlgo = JetAlg::ANTIKT;
40      }
41           
42      FinalState fs;
43      FastJets jetpro(fs, clusterAlgo, R);
44      
45      const string groomopt = getOption("GROOM", "");
46
47      if (groomopt == "SD") {
48        jetpro.addTrf(new fastjet::contrib::SoftDrop(0.0, 0.1));
49      } else if (groomopt == "TRIM") {
50        jetpro.addTrf(new fastjet::Filter(fastjet::JetDefinition(fastjet::kt_algorithm, 0.2), fastjet::SelectorPtFractionMin(0.05)));
51      } else if (groomopt != "") {
52        MSG_WARNING("Unknown GROOM=" + groomopt + " option. Not applying jet grooming");
53      }
54
55      declare(jetpro, "Jets");
56      MC_JETS_BASE::init();
57    }
58
59
60    void analyze(const Event& event) {
61      MC_JETS_BASE::analyze(event);
62    }
63
64
65    void finalize() {
66      MC_JETS_BASE::finalize();
67    }
68
69  };
70
71
72  RIVET_DECLARE_PLUGIN(MC_JETS);
73
74}