W.hh
Go to the documentation of this file.
1 #pragma once
2 
5 
6 namespace standardmodel
7 {
8 
9 namespace analysis
10 {
11 
19 template <typename Tagger_>
20 class W : public StandardModel<Tagger_>
21 {
22 
23 public:
24 
25  W()
26  {
27  this->PreCuts().PtLowerCut().Set(Id::W, this->LowerPtCut());
28  this->PreCuts().PtUpperCut().Set(Id::W, this->UpperPtCut());
29 // this->PreCuts().MassUpperCut().Set(Id::W, 200_GeV);
30  // PreCuts().TrackerMaxEta().Set(Id::top, Settings::TrackerEtaMax);
31  this->PreCuts().ConsiderBuildingBlock().Set(Id::W, false);
32  }
33 
34  static Decay WDecay()
35  {
36  return Decay::hadronic;
37  return Decay::leptonic;
38  }
39 
40 private:
41 
42  std::string Name() const override
43  {
44  return boca::Name(this->Collider()) + "-" + boca::units::Name(this->LowerPtCut()) + "-bottom";
45  }
46 
47 
48  void SetFiles(Phase const& phase) override
49  {
50  switch (phase.Tag()) {
51  case Tag::signal :
52  if (!this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::ww);
53  if (this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::bb);
54  if (this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::tt_had);
55  if (this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::tt_lep);
56  if (this->template TaggerIs<tagger::Bottom>()) this->AddSignal(Process::hh);
57  break;
58  case Tag::background :
63  if (this->template TaggerIs<tagger::WHadronic>() && phase.Stage() == Stage::reader) this->AddBackground(Process::tt_had);
64  if (!this->template TaggerIs<tagger::Bottom>()) this->AddBackground(Process::hh_bb);
65  if (!this->template TaggerIs<tagger::Bottom>()) this->AddBackground(Process::bb);
66  if (!this->template TaggerIs<tagger::Bottom>()) this->AddBackground(Process::tt_lep);
67  break;
68  }
69  }
70 
71  bool PassPreCut(boca::Event const &event) const override
72  {
73  return true;
74  auto particles = SortedByPt(event.GenParticles());
75  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;
76  return false;
77  }
78 
79 };
80 
81 }
82 
83 }
Momentum LowerQuarkCut() const
Definition: StandardModel.hh:114
void AddSignal(Process process)
Definition: StandardModel.hh:106
boca::Collider Collider() const
Definition: StandardModel.hh:82
static Decay WDecay()
Definition: W.hh:34
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
PreCut< bool > & ConsiderBuildingBlock()
Definition: PreCuts.cpp:43
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
Momentum UpperQuarkCut() const
Definition: StandardModel.hh:118
Standard model analysis base.
Definition: StandardModel.hh:54
PreCut< Momentum > & PtUpperCut()
Definition: PreCuts.cpp:27
Standard Model.
Definition: StandardModel.cpp:4
std::string Name(Output output)
Definition: Base.cpp:23
HAnalysis subclass defining the W Tagger ananlysis.
Definition: W.hh:20
Decay
Definition: Event.hh:31
std::vector< Multiplet > SortedByPt(std::vector< Multiplet > multiplets)
Definition: Sort.hh:53
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
std::vector< Particle > GenParticles() const
Generator level Particles.
Definition: Event.cpp:56
W()
Definition: W.hh:25