NeutralFourTop.hh
Go to the documentation of this file.
1 #pragma once
2 
4 
7 
9 
10 namespace heavyhiggs
11 {
12 
13 namespace analysis
14 {
15 
16 template<typename Tagger_>
17 class NeutralFourTop : public HeavyHiggs<Tagger_>
18 {
19 
20 public:
21 
24  }
25 
26  std::string Name() const override {
27  return "NeutralFourTop-" + boca::Name(this->Collider()) + "-" + boca::units::Name(this->Mass()) + "-new-bg";
28  }
29 
30  void SetFiles(Phase const& phase) override {
31  switch (phase.Tag()) {
32  case Tag::signal :
33  this->AddSignal(Process::Htt);
34  this->AddSignal(Process::Htwb);
35  break;
36  case Tag::background :
37  if (this->template TaggerIs<tagger::JetPair>()) this->AddBackground(Process::Htt);
38  if (this->template TaggerIs<tagger::JetPair>()) this->AddBackground(Process::Htwb);
42  break;
43  }
44  }
45 
46  boca::Crosssection Crosssection(Process process) const override {
47  switch (this->Collider()) {
49  switch (process) {
50  case Process::Htt:
51  switch (static_cast<int>(Mass() / GeV)) {
52  case 500 : return 0.911648_fb;
53  case 700 : return 0.346647_fb;
54  case 750 : return 0.307192_fb;
55  case 800 : return 0.225386_fb;
56  case 1000 : return 0.10028_fb;
57  case 1500 : return 0.0168305_fb;
58  case 2000 : return 0.00345315_fb;
59  DEFAULT(static_cast<int>(Mass() / GeV), fb)
60  }
61  case Process::Htwb:
62  switch (static_cast<int>(Mass() / GeV)) {
63  case 500 : return 0.471031_fb;
64  case 700 : return 0.216664_fb;
65  case 750 : return 0.188463_fb;
66  case 800 : return 0.150792_fb;
67  case 1000 : return 0.0758434_fb;
68  case 1500 : return 0.0159789_fb;
69  case 2000 : return 0.00384621_fb;
70  DEFAULT(static_cast<int>(Mass() / GeV), fb)
71  }
72 // case Process::ttwwbb : return 2.126_fb;
73 // case Process::ttwbb : return 0.13588_fb;
74  case Process::tttt : return 0.4849_fb;
75  case Process::tttwb : return 0.06012_fb;
76  case Process::ttwbb : return 0.03284_fb;
77  DEFAULT(heavyhiggs::Name(process), fb)
78  };
80  switch (process) {
81  case Process::Htt:
82  switch (static_cast<int>(Mass() / GeV)) {
83  case 500 : return 152.154_fb;
84  case 700 : return 79.3982_fb;
85  case 800 : return 60.9656_fb;
86  case 1000 : return 36.5579_fb;
87  case 1500 : return 12.4039_fb;
88  case 2000 : return 5.09533_fb;
89  case 3000 : return 1.21763_fb;
90  case 4000 : return 0.385975_fb;
91  case 5000 : return 0.14659_fb;
92  case 6000 : return 0.062513_fb;
93  case 7000 : return 0.026579_fb;
94  case 8000 : return 0.0132781_fb;
95  case 10000 : return 0.00380676_fb;
96  DEFAULT(static_cast<int>(Mass() / GeV), fb)
97  }
98  case Process::Htwb:
99  switch (static_cast<int>(Mass() / GeV)) {
100  case 500 : return 117.041_fb;
101  case 700 : return 79.5743_fb;
102  case 800 : return 66.4861_fb;
103  case 1000 : return 47.8374_fb;
104  case 1500 : return 23.1449_fb;
105  case 2000 : return 12.5153_fb;
106  case 3000 : return 4.60995_fb;
107  case 4000 : return 2.01434_fb;
108  case 5000 : return 0.975944_fb;
109  case 6000 : return 0.509747_fb;
110  case 7000 : return 0.256938_fb;
111  case 8000 : return 0.148312_fb;
112  case 10000 : return 0.0539546_fb;
113  DEFAULT(static_cast<int>(Mass() / GeV), fb)
114  }
115  case Process::ttwwbb : return 396_fb;
116  case Process::ttwbb : return 1.3204_fb;
117  DEFAULT(heavyhiggs::Name(process), fb)
118  }
119  DEFAULT(boca::Name(this->Collider()), fb)
120  }
121  }
122 
123 private:
124 
125  bool PassPreCut(boca::Event const&) const override {
126 // std::vector<Particle> Particles = event.GenParticles();
127 //
128 // std::vector<Particle> Tops = CopyIfParticle(Particles, Id::top);
129 // std::vector<Particle> Bottoms = CopyIfParticle(Particles, Id::bottom);
130 //
131 // if (event.MissingEt().Pt() < this->MissingEt()) return false;
132 // std::vector<Lepton> leptons = SortedByPt(event.Leptons());
133 // if (Leptons.size() < 2) return false;
134 // int positive_lepton = 0;
135 // int negative_lepton = 0;
136 // for (auto const & lepton : Leptons) {
137 // if (lepton.Pt() > this->LeptonPt() && lepton.Info().Charge() > 0) ++positive_lepton;
138 // if (lepton.Pt() > this->LeptonPt() && lepton.Info().Charge() < 0) ++negative_lepton;
139 // }
140 //
141 // if (positive_lepton < 2 && negative_lepton < 2) return false;
142 // if ((positive_lepton + negative_lepton) > 2) return false;
143 //
144 // std::vector<Jet> jets = event.Jets();
145 // if (jets.size() < 4) return false;
146  return true;
147  }
148 
149 };
150 
151 }
152 
153 }
Analysis for heavy higgs.
Definition: HeavyHiggs.hh:59
void AddSignal(Process process)
Definition: HeavyHiggs.hh:265
NeutralFourTop()
Definition: NeutralFourTop.hh:22
static void SetCollider(boca::Collider collider)
Definition: Settings.cpp:40
Heavy Higgs partner.
Definition: Charged.hh:7
std::string Name() const override
Definition: NeutralFourTop.hh:26
Base class for the event Topology.
Definition: Event.hh:53
std::string Name(Energy const &energy)
Definition: ElectronVolt.cpp:34
default detector for a 100TeV collider
void AddBackground(Process process)
Definition: HeavyHiggs.hh:269
#define DEFAULT(...)
Definition: DEBUG_MACROS.hh:118
void SetFiles(Phase const &phase) override
Definition: NeutralFourTop.hh:30
boost::units::quantity< barn::Area > Crosssection
Crosssection measured in barn.
Definition: Barn.hh:36
std::string Name(Process process)
Definition: HeavyHiggs.cpp:7
Process
Definition: HeavyHiggs.hh:18
boca::Collider Collider() const
Definition: HeavyHiggs.hh:113
boca::Crosssection Crosssection(Process process) const override
Definition: NeutralFourTop.hh:46
std::string Name(Output output)
Definition: Base.cpp:23
boca::Mass Mass() const
Definition: HeavyHiggs.hh:68
Definition: NeutralFourTop.hh:17
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
default LHC detector