Rivet analyses referenceMC_JETSMonte Carlo validation observables for jet productionExperiment: () Status: VALIDATED Authors:
Beams: * * Beam energies: ANY Run details:
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}
|