Boson.hh
Go to the documentation of this file.
1 #pragma once
2 
5 
6 namespace standardmodel
7 {
8 
9 namespace analysis{
10 
18 template<typename Tagger_>
19 class Boson : public StandardModel<Tagger_>
20 {
21 
22 public:
23 
24  Boson() {
25  this->PreCuts().PtLowerCut().Set(MultiId::neutral_boson, this->LowerPtCut());
26  this->PreCuts().PtUpperCut().Set(MultiId::neutral_boson, this->UpperPtCut());
27 // this->PreCuts().PtLowerCut().Set(Id::bottom, this->LowerPtCut() / 5.);
28 // this->PreCuts().PtUpperCut().Set(Id::bottom, this->UpperPtCut() / 5.);
29  // this->PreCuts().MassUpperCut().Set(MultiId::neutral_boson, 250_GeV);
30  this->PreCuts().TrackerMaxEta().Set(MultiId::neutral_boson, Settings::TrackerEtaMax());
31  this->PreCuts().TrackerMaxEta().Set(Id::bottom, Settings::TrackerEtaMax());
32  }
33 
34 private:
35 
36  std::string Name() const override {
37  return boca::Name(this->Collider()) + "-" + boca::units::Name(this->LowerPtCut()) + "-large";
38  }
39 
40  void SetFiles(Phase const& phase) override {
41  switch (phase.Tag()) {
42  case Tag::signal :
44  if (!this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::zz);
45 // if (!this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::ww);
46  if (this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::bb);
47  if (this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::tt_had);
48  if (this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::tt_lep);
49  break;
50  case Tag::background :
51  if (!this->template TaggerIs<tagger::Bottom>()) this->AddBackground(Process::tt_lep);
52  if (!this->template TaggerIs<tagger::Bottom>()) this->AddBackground(Process::tt_had);
53  if (!this->template TaggerIs<tagger::Bottom>()) this->AddBackground(Process::bb);
57  if(phase.Stage() == Stage::reader) this->AddBackground(Process::ww);
58  break;
59  }
60 
61  }
62 
63  bool PassPreCut(boca::Event const&) const override {
64  return true;
65 // std::vector<Jet> jets = SortedByPt(event.Jets());
66 // if (jets.empty()) return false;
67 // if (jets.front().Pt() < this->LowerPtCut()) return false;
68 // std::vector<Jet> particles = SortedByPt(event.GenParticles());
69 // if ((particles.at(0).Pt() > this->LowerQuarkCut() && particles.at(0).Pt() < this->UpperQuarkCut()) && (particles.at(1).Pt() > this->LowerQuarkCut() && particles.at(1).Pt() < this->UpperQuarkCut())) return true;
70  return false;
71  }
72 
73 };
74 
75 }
76 
77 }
void AddSignal(Process process)
Definition: StandardModel.hh:106
Higgs tagger analysis.
Definition: Boson.hh:19
PreCut< Angle > & TrackerMaxEta()
Definition: PreCuts.cpp:39
boca::Collider Collider() const
Definition: StandardModel.hh:82
void Set(Id id, Value value)
Definition: PreCut.hh:18
PreCut< Momentum > & PtLowerCut()
Definition: PreCuts.cpp:23
void AddBackground(Process process)
Definition: StandardModel.hh:110
boca::PreCuts PreCuts() const
Definition: Base.cpp:130
Base class for the event Topology.
Definition: Event.hh:53
std::string Name(Energy const &energy)
Definition: ElectronVolt.cpp:34
Momentum LowerPtCut() const
Definition: StandardModel.hh:65
boca::Stage Stage() const
The stage of the multivariant tagging process.
Definition: Phase.cpp:13
Momentum UpperPtCut() const
Definition: StandardModel.hh:87
Standard model analysis base.
Definition: StandardModel.hh:54
PreCut< Momentum > & PtUpperCut()
Definition: PreCuts.cpp:27
Standard Model.
Definition: StandardModel.cpp:4
static Angle TrackerEtaMax()
Definition: Settings.cpp:83
std::string Name(Output output)
Definition: Base.cpp:23
The phases of the multivariant tagging process.
Definition: Phase.hh:16
boca::Tag Tag() const
The Tag of the multivariant tagging process.
Definition: Phase.cpp:18
Boson()
Definition: Boson.hh:24