Pair.hh
Go to the documentation of this file.
1 #pragma once
2 
5 
10 namespace heavyhiggs
11 {
12 
13 using namespace boca;
14 
15 enum class Production
16 {
18 };
19 
20 std::string Name(Production production_channel);
21 
22 namespace analysis
23 {
24 
32 template <typename Tagger_>
33 class Pair : public boca::Analysis<Tagger_>
34 {
35 
36 public:
37 
38  void SetFiles(Phase const& phase) override {
39  switch (phase.Tag()) {
40  case Tag::signal :
41  this->AddSignal(Process::bb, Production::VBF);
42  break;
43  case Tag::background :
44  this->AddBackground(Process::bb, Production::DYP);
45  this->AddBackground(Process::cc, Production::DYP);
46  this->AddBackground(Process::cc, Production::VBF);
47  this->AddBackground(Process::jj, Production::DYP);
48  this->AddBackground(Process::jj, Production::VBF);
49  break;
50  }
51  }
52 
53  std::string Name() const override {
54  return boca::Name(Collider()) + "-eta3.5";
55  // return ProductionChannelName(ProductionChannel()) + DetectorName(Collider()) + "_" + Name(Mass());
56  }
57 
58 private:
59 
60  long TrainNumberMax() const override {
61  return 1000000;
62  return 100000;
63  return 10000;
64  return 1000;
65  return 100;
66  };
67 
68  Production ProductionChannel() const {
69  // return Production::DYP;
70  return Production::VBF;
71  // return Production::Associated;
72  }
73 
74  boca::Collider Collider() const {
75  return boca::Collider::lhc;
77  }
78 
79  Id MotherId(Production production) const {
80  switch (production) {
81  case Production::DYP : return Id::Z;
82  case Production::VBF : return Id::bottom;
83  case Production::Associated : return Id::gluon;
84  DEFAULT(to_int(production), Id::none);
85  }
86  }
87 
88  int BackgroundFileNumber() const override {
89  return 1;
90  }
91 
92  Crosssection SignalCrosssection() const {
93  return pb;
94  }
95 
96  boca::Mass Mass() const {
97  return 400_GeV;
98  return 600_GeV;
99  return 1000_GeV;
100  return 2000_GeV;
101  return 3000_GeV;
102  return 4000_GeV;
103  return 5000_GeV;
104  return 6000_GeV;
105  return 7000_GeV;
106  return 8000_GeV;
107  return 9000_GeV;
108  return 10000_GeV;
109  }
110 
111  void AddSignal(Process process, Production production) {
112  boca::analysis::Base::AddSignal(NameString(process, production));
113  }
114 
115  void AddBackground(Process process, Production production) {
116  boca::analysis::Base::AddBackground(NameString(process, production));
117  }
118 
119  void NewFile(Tag tag, Process process, Production production) {
120  this->NewFile(tag, NameString(process, production));
121  }
122 
123 
124 // std::string NameString(Process process) const {
125 // return heavyhiggs::Name(ProductionChannel()) + heavyhiggs::Name(process) + "_" + boca::Name(Collider());
126 // }
127 
128  std::string NameString(Process process, Production production) const {
129  return heavyhiggs::Name(production) + heavyhiggs::Name(process) + "_" + boca::Name(Collider());
130  }
131 
132 // FileInfo BackgroundFile(Process process, Production production) const {
133 // return BackgroundFile(process, BackgroundFileNumber(), production);
134 // }
135 //
136 // FileInfo BackgroundFile(Process process) const {
137 // return BackgroundFile(process, BackgroundFileNumber());
138 // }
139 //
140 // FileInfo BackgroundFile(Process process, int) const {
141 // std::vector<std::string> names;
142 // names.emplace_back(NameString(process));
143 // return FileInfo(names , BackgroundCrosssection(process));
144 // }
145 //
146 // FileInfo BackgroundFile(Process process, int, Production production) const {
147 // std::vector<std::string> names;
148 // names.emplace_back(NameString(process, production));
149 // return FileInfo(names , BackgroundCrosssection(process));
150 // }
151 
152 
153 // std:: string SignalName(Process process) {
154 // return NameString(process) + "_" + boca::units::Name(Mass());
155 // }
156 
157  Crosssection BackgroundCrosssection(Process) const {
158  return pb;
159  }
160 
161 };
162 
163 }
164 
165 }
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
Heavy Higgs partner.
Definition: Charged.hh:7
Id
PDG particle naming conventions.
Definition: Id.hh:23
void SetFiles(Phase const &phase) override
Definition: Pair.hh:38
Tag
The Tag distinguishes between signal and background events.
Definition: Tag.hh:14
Analysis subclass defining the HiggsCPV Analysis.
Definition: Pair.hh:33
provides main analysis loops and logic.
Definition: Analysis.hh:29
default detector for a 100TeV collider
decltype(auto) to_int(Enumeration value)
Definition: Types.hh:29
Boosted Collider Analysis.
Definition: Analysis.hh:15
#define DEFAULT(...)
Definition: DEBUG_MACROS.hh:118
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
std::string Name(Output output)
Definition: Base.cpp:23
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 Name() const override
Definition: Pair.hh:53
The phases of the multivariant tagging process.
Definition: Phase.hh:16
Energy Mass
Mass measured in electronvolt.
Definition: ElectronVolt.hh:62
boca::Tag Tag() const
The Tag of the multivariant tagging process.
Definition: Phase.cpp:18
default LHC detector
Production
Definition: Pair.hh:15