StandardModel.hh
Go to the documentation of this file.
1 
4 #pragma once
5 
7 #include "boca/Settings.hh"
8 
14 namespace standardmodel
15 {
16 
17 using namespace boca;
18 
23 namespace analysis
24 {
25 
26 enum class Process
27 {
28  tt,
29  tt_lep,
30  tt_had,
31  hh,
32  hh_bb,
33  zz,
34  zz_bb,
35  ww,
36  bb,
37  cc,
38  qq,
39  gg
40 };
41 
42 std::string ProcessName(Process process);
43 
45 
46 std::string Name(Process process);
47 
53 template<typename Tagger_>
54 class StandardModel : public Analysis<Tagger_>
55 {
56 
57 public:
58 
61  }
62 
63 protected:
64 
65  Momentum LowerPtCut() const {
66  return 500_GeV;
67  return 1_TeV;
68  return 750_GeV;
69  return 600_GeV;
70  return 1.5_TeV;
71  return 2_TeV;
72  return 2.5_TeV;
73  return 3_TeV;
74  return 3.5_TeV;
75  return 4_TeV;
76  return 350_GeV;
77  return 700_GeV;
78  return 800_GeV;
79  return 1.2_TeV;
80  }
81 
83  return boca::Collider::lhc;
85  }
86 
87  Momentum UpperPtCut() const {
88  switch (static_cast<int>(LowerPtCut() / GeV)) {
89  case 750 : return 1_TeV;
90  case 500 : return 600_GeV;
91  case 600 : return 700_GeV;
92  case 700 : return 1_TeV;
93  case 1000 : return 1.5_TeV;
94  case 1200 : return 1.5_TeV;
95  case 1500 : return 2_TeV;
96  case 2000 : return 2.5_TeV;
97  case 2500 : return 3_TeV;
98  case 3000 : return 3.5_TeV;
99  case 3500 : return 4_TeV;
100  case 4000 : return 4.5_TeV;
101  default : std::cout << "Switch default for LowerPtCut of " << LowerPtCut() << '\n';
102  return at_rest;
103  }
104  }
105 
106  void AddSignal(Process process) {
107  boca::analysis::Base::AddSignal(File(process));
108  }
109 
110  void AddBackground(Process process) {
112  }
113 
115  return LowerPtCut() * 1.01;
116  }
117 
119  return UpperPtCut() * 0.99;
120  }
121 
122 private:
123 
124  long TrainNumberMax() const override {
125  return 500;
126  return 10000;
127  return 1000;
128  return 100;
129  return 5000;
130  }
131 
132  int BackgroundFileNumber() const override {
133  return 1;
134  return 2;
135  return 4;
136  return 5;
137  return 10;
138  }
139 
140  Momentum MadGraphCut() const {
141  switch (static_cast<int>(LowerPtCut() / GeV)) {
142  case 500: return 500_GeV;
143  case 600: return 500_GeV;
144  case 700 : return 500_GeV;
145  case 750 : return 750_GeV;
146  case 1000 : return 1_TeV;
147  case 1200 : return 1_TeV;
148  case 1500 : return 1_TeV;
149  case 2000 : return 1_TeV;
150  case 2500 : return 1_TeV;
151  case 3000 : return 1_TeV;
152  case 3500 : return 1_TeV;
153  case 4000 : return 1_TeV;
154  default : std::cout << "Switch default for LowerPtCut of " << LowerPtCut() << '\n';
155  return at_rest;
156  }
157  }
158 
159  std::string FileName(Process process) const {
160  switch (Collider()) {
161  case boca::Collider::future : return ProcessName(process) + "_" + boca::units::Name(MadGraphCut());
162  case boca::Collider::lhc : return ProcessName(process) + "_14TeV-" + boca::units::Name(MadGraphCut());
163  default : std::cout << "Switch default for process " << ProcessName(process) << '\n';
164  return "";
165  }
166  }
167 
168 // std::string FilePath() const override {
169 // return this->WorkingPath() + "../";
170 // }
171 
172  boca::FileInfo File(Process process) const {
173  auto file = boca::FileInfo({FileName(process)}, {Name(process), LatexName(process)});
174  file.SetPath("../");
175  return file;
176  }
177 
178 };
179 
180 }
181 
182 }
StandardModel()
Definition: StandardModel.hh:59
Momentum const at_rest
Definition: ElectronVolt.hh:71
Momentum LowerQuarkCut() const
Definition: StandardModel.hh:114
void AddSignal(Process process)
Definition: StandardModel.hh:106
void AddSignal(std::string const &file_name, latex::String const &latex_name="", boca::Crosssection const &crosssection=0_b, boca::Mass const &mass=0_eV, std::string const &path="")
Definition: Base.cpp:97
boca::Collider Collider() const
Definition: StandardModel.hh:82
static void SetCollider(boca::Collider collider)
Definition: Settings.cpp:40
latex::String LatexName(Significance significance)
Definition: Significance.cpp:100
void SetPath(std::string const &path)
Definition: FileInfo.cpp:85
std::string FileName(std::string const &file)
Definition: Debug.cpp:48
void AddBackground(Process process)
Definition: StandardModel.hh:110
std::string Name(Energy const &energy)
Definition: ElectronVolt.cpp:34
provides main analysis loops and logic.
Definition: Analysis.hh:29
Definition: String.hh:45
Momentum LowerPtCut() const
Definition: StandardModel.hh:65
default detector for a 100TeV collider
Momentum UpperPtCut() const
Definition: StandardModel.hh:87
Process
Definition: StandardModel.hh:26
Boosted Collider Analysis.
Definition: Analysis.hh:15
Momentum UpperQuarkCut() const
Definition: StandardModel.hh:118
Standard model analysis base.
Definition: StandardModel.hh:54
Standard Model.
Definition: StandardModel.cpp:4
Input file infos.
Definition: FileInfo.hh:22
std::string Name(TopTagger top_tagger)
Definition: Top.cpp:7
Energy Momentum
Momentum measured in electronvolt.
Definition: ElectronVolt.hh:68
Collider
Detector type indicates which kind of detector geometry is going to be used.
Definition: Settings.hh:30
void AddBackground(std::string const &file_name, latex::String const &latex_name="", boca::Crosssection const &crosssection=0_b, boca::Mass const &mass=0_eV, std::string const &path="")
Definition: Base.cpp:105
std::string ProcessName(Process process)
Definition: StandardModel.cpp:10
default LHC detector