Rivet analyses referenceMC_HKTSPLITTINGSMonte Carlo validation observables for $h[\tau^+ \, \tau^-]$ + jets productionExperiment: () Status: VALIDATED Authors:
Beams: * * Beam energies: ANY Run details:
Monte Carlo validation observables for $h[\tau^+ \, \tau^-]$ + jets production Source code: MC_HKTSPLITTINGS.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 /// MC validation analysis for Higgs [-> tau tau] + jets events
10 class MC_HKTSPLITTINGS : public MC_KTSPLITTINGS_BASE {
11 public:
12
13 /// Default constructor
14 MC_HKTSPLITTINGS()
15 : MC_KTSPLITTINGS_BASE("MC_HKTSPLITTINGS", 4, "Jets")
16 { }
17
18
19 /// @name Analysis methods
20 /// @{
21
22 /// Book histograms
23 void init() {
24 // set FS cuts from input options
25 const double etacut = getOption<double>("ABSETATAUMAX", 3.5);
26 const double ptcut = getOption<double>("PTTAUMIN", 25.);
27
28 Cut cut = Cuts::abseta < etacut && Cuts::pT > ptcut*GeV;
29 /// @todo FS taus??
30 DileptonFinder hfinder(125*GeV, 0.0, cut && Cuts::abspid == PID::TAU, Cuts::massIn(115*GeV, 135*GeV));
31
32 declare(hfinder, "Hfinder");
33
34 // set clustering radius from input option
35 const double R = getOption<double>("R", 0.6);
36
37 FastJets jetpro(hfinder.remainingFinalState(), JetAlg::KT, R);
38 declare(jetpro, "Jets");
39
40 MC_KTSPLITTINGS_BASE::init();
41 }
42
43
44 /// Do the analysis
45 void analyze(const Event & e) {
46 const DileptonFinder& hfinder = apply<DileptonFinder>(e, "Hfinder");
47 if (hfinder.bosons().size() != 1) vetoEvent;
48 MC_KTSPLITTINGS_BASE::analyze(e);
49 }
50
51
52 /// Finalize
53 void finalize() {
54 MC_KTSPLITTINGS_BASE::finalize();
55 }
56
57 /// @}
58
59 };
60
61
62
63 RIVET_DECLARE_PLUGIN(MC_HKTSPLITTINGS);
64
65}
|