TopHadronic.hh
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include <functional>
10 
11 namespace boca
12 {
13 class MomentumRange;
14 }
15 
16 namespace standardmodel
17 {
18 
19 namespace tagger
20 {
21 
26 class TopHadronic : public Tagger<Triplet, branch::TopHadronic>
27 {
28 
29 public:
30 
31  TopHadronic(Id id = Id::top);
32 
33  int Train(boca::Event const& event, PreCuts const& pre_cuts, Tag tag) override;
34 
35  using Tagger::Multiplets;
36 
37  std::vector<Triplet> Multiplets(boca::Event const& event, PreCuts const& pre_cuts, TMVA::Reader const& reader) override;
38 
39  std::string Name() const override;
40 
41  latex::String LatexName() const override;
42 
43  virtual std::vector<Particle> Particles(boca::Event const& event) const;
44 
45  using Function = std::function<boost::optional<Triplet>(Triplet&, std::vector<boca::Jet> const&)>;
46 
47  std::vector<Triplet> Triplets(boca::Event const& event, Function const& function);
48 
49 private:
50 
51  std::vector<Triplet> ThreeJets(const std::vector< boca::Jet >& jets, const std::vector< boca::Lepton >& leptons, const Function& function, const boca::MomentumRange& range);
52 
53  std::vector<Triplet> TwoJets(const std::vector< boca::Jet >& jets, boca::Jet const& jet, const std::vector< boca::Lepton >& leptons, const Function& function, const boca::MomentumRange& range);
54 
55  std::vector<Triplet> ThreeSubJets(boca::Jet const& jet, const std::vector< boca::Lepton >& leptons, const Function& function, const boca::MomentumRange& range);
56 
57  std::vector<Triplet> TwoSubJets(boca::Jet const& jet, const std::vector< boca::Lepton >& leptons, const Function& function, const boca::MomentumRange& range);
58 
59  boost::optional<Triplet> HighlyBoosted(boca::Jet const& jet, std::vector<Lepton> const& leptons, Function const& function) const;
60 
61  boost::optional<Triplet> Tripple(Doublet const& doublet, boca::Jet const& jet, std::vector<Lepton> const& leptons, Function const& function, MomentumRange const& range, bool check_overlap = false) const;
62 
63  boost::optional<Triplet> Tripple(Triplet& triplet, std::vector<Lepton> const& leptons, PreCuts const& pre_cuts, Tag tag) const;
64 
65  std::vector<Triplet> Triplets(std::vector<Doublet> const& doublets, std::vector<boca::Jet> const& jets, std::vector<Lepton> const& leptons, Function const& function, MomentumRange const& range) const;
66 
67  std::vector<Triplet> Triplets(Doublet const& doublet, std::vector<boca::Jet> const& jets, std::vector<Lepton> const& leptons, Function const& function, MomentumRange const& range) const;
68 
69  boost::optional<Triplet> Multiplet(Triplet& triplet, std::vector<Lepton> const& leptons, PreCuts const& pre_cuts, TMVA::Reader const& reader);
70 
71  bool Problematic(Triplet const& triplet, PreCuts const& pre_cuts, Tag tag) const;
72 
73  bool Problematic(Triplet const& triplet, PreCuts const& pre_cuts) const;
74 
75  Reader<tagger::Bottom> bottom_reader_;
76 
77  Reader<tagger::WHadronic> w_hadronic_reader_;
78 
79  Mass top_mass_window_;
80 
81  Id id_;
82 
83 };
84 
85 }
86 
87 }
Jet.
Definition: Jet.hh:15
Definition: MomentumRange.hh:28
Generic problematic cases.
Definition: Exception.hh:19
latex::String LatexName(Significance significance)
Definition: Significance.cpp:100
read results of multivariant analysis wrapper for TMVA::Reader
Definition: Reader.hh:26
Definition: PreCuts.hh:14
Id
PDG particle naming conventions.
Definition: Id.hh:23
Tag
The Tag distinguishes between signal and background events.
Definition: Tag.hh:14
std::function< boost::optional< Triplet >(Triplet &, std::vector< boca::Jet > const &)> Function
Definition: TopHadronic.hh:45
Base class for the event Topology.
Definition: Event.hh:53
Definition: String.hh:45
A Triplet consisting of a Singlet and a Doublet.
Definition: Triplet.hh:17
BDT tagger for hadronically decaying top quarks.
Definition: TopHadronic.hh:26
Boosted Collider Analysis.
Definition: Analysis.hh:15
virtual std::vector< Multiplet_ > Multiplets(std::vector< Jet > const &, PreCuts const &, TMVA::Reader const &)
Definition: Tagger.hh:66
Standard Model.
Definition: StandardModel.cpp:4
Multiplet base class
Definition: Multiplet.hh:21
A Doublet consisting of two Singlets.
Definition: Doublet.hh:16
Tagger base class using Branch template
Definition: Tagger.hh:23
Top Quark.
Reading stage.
std::string Name(Output output)
Definition: Base.cpp:23
Energy Mass
Mass measured in electronvolt.
Definition: ElectronVolt.hh:62