WHadronic.hh
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include <functional>
7 
8 #include "boca/tagger/Tagger.hh"
13 
14 namespace standardmodel
15 {
16 
17 namespace tagger {
18 
23 class WHadronic : public Tagger<Doublet, branch::WHadronic>
24 {
25 
26  using Function = std::function<boost::optional<Doublet>(Doublet&)>;
27 
28 public:
29 
30  WHadronic();
31 
32  int Train(boca::Event const& event, PreCuts const& pre_cuts, Tag Tag) override;
33 
34  using Tagger::Multiplets;
35 
36  std::vector<Doublet> Multiplets(std::vector<boca::Jet> const& jets, PreCuts const& pre_cuts, TMVA::Reader const& reader) override;
37 
38  boost::optional<Doublet> Multiplet(boca::Jet const& jet, const TMVA::Reader& reader);
39 
40  boost::optional<Doublet> Multiplet(boca::Jet const& jet_1, boca::Jet const& jet_2, TMVA::Reader const& reader);
41 
42  boost::optional<Doublet> SubMultiplet(boca::Jet const& jet, TMVA::Reader const& reader);
43 
44  std::string Name() const override;
45 
46  latex::String LatexName() const override;
47 
48 private:
49 
50  std::vector<Particle> Particles(boca::Event const& event) const;
51 
52  std::vector<Doublet> Doublets(boca::Event const& event, PreCuts const& pre_cuts, Function const& function);
53 
54  std::vector<Doublet> Doublets(std::vector<boca::Jet> const& jets, Function const& function) const;
55 
56  boost::optional<Doublet> CheckDoublet(Doublet doublet, PreCuts const& pre_cuts, Tag tag) const;
57 
58  std::vector<Doublet> Multiplets(boca::Event const& event, PreCuts const& pre_cuts, TMVA::Reader const& reader) override;
59 
60  boost::optional<Doublet> SubDoublet(boca::Jet const& jet, const Function& function);
61 
62  bool Problematic(boca::Doublet const& doublet, boca::PreCuts const& pre_cuts, Tag tag) const;
63 
64  bool Problematic(boca::Doublet const& doublet, boca::PreCuts const& pre_cuts) const;
65 
66  boost::optional<Doublet> Multiplet(boca::Doublet& doublet, boca::PreCuts const& pre_cuts, TMVA::Reader const& reader);
67 
68  Reader<tagger::Bottom> bottom_reader_;
69 
70  Mass w_mass_window_;
71 };
72 
73 }
74 
75 }
Jet.
Definition: Jet.hh:15
Generic problematic cases.
Definition: Exception.hh:19
read results of multivariant analysis wrapper for TMVA::Reader
Definition: Reader.hh:26
Definition: PreCuts.hh:14
Tag
The Tag distinguishes between signal and background events.
Definition: Tag.hh:14
Base class for the event Topology.
Definition: Event.hh:53
std::vector< Doublet > Multiplets(std::vector< boca::Jet > const &jets, PreCuts const &pre_cuts, TMVA::Reader const &reader) override
Definition: WHadronic.cpp:131
Definition: String.hh:45
WHadronic()
Definition: WHadronic.cpp:20
virtual std::vector< Multiplet_ > Multiplets(std::vector< Jet > const &, PreCuts const &, TMVA::Reader const &)
Definition: Tagger.hh:66
Standard Model.
Definition: StandardModel.cpp:4
latex::String LatexName() const override
Definition: WHadronic.cpp:177
A Doublet consisting of two Singlets.
Definition: Doublet.hh:16
Tagger base class using Branch template
Definition: Tagger.hh:23
BDT tagger for hadronically decaying W bosons.
Definition: WHadronic.hh:23
int Train(boca::Event const &event, PreCuts const &pre_cuts, Tag Tag) override
Definition: WHadronic.cpp:26
Doublet Multiplet() const
Definition: Tagger.hh:60
Reading stage.
std::string Name() const override
Definition: WHadronic.cpp:172
Energy Mass
Mass measured in electronvolt.
Definition: ElectronVolt.hh:62
boost::optional< Doublet > SubMultiplet(boca::Jet const &jet, TMVA::Reader const &reader)
Definition: WHadronic.cpp:146