Base.hh
Go to the documentation of this file.
1 
4 #pragma once
5 
6 #include "TMVA/Types.h"
7 
10 
11 class TCut;
16 namespace TMVA
17 {
18 class Reader;
19 }
20 
21 namespace boca
22 {
23 
24 class PreCuts;
25 class Event;
26 class Jet;
27 class TreeWriter;
28 class TreeBranch;
29 class Filter;
30 template<typename> class Range;
31 
32 namespace branch{
33 class Result;
34 }
35 
40 namespace tagger
41 {
42 
47 class Base
48 {
49 
50 public:
51 
52  Base() {};
53 
54  virtual std::string Name() const = 0;
55 
56  virtual int SaveBdt(Event const&, PreCuts const&, TMVA::Reader const&) = 0;
57 
58  virtual int Train(Event const&, PreCuts const&, Tag) = 0;
59 
60  virtual const branch::Result& Branch() const = 0;
61 
62  virtual branch::Result& Branch() = 0;
63 
64  virtual latex::String LatexName() const;
65 
66  virtual TMVA::Types::EMVA Mva() const;
67 
68  std::string MvaName() const;
69 
70  void Initialize(std::string const& analysis_name = "");
71 
72  std::vector<Observable> const& Variables() const;
73 
74  std::vector<Observable> const& Spectators() const;
75 
76  std::vector<std::string> TreeNames(Tag tag) const;
77 
78  std::vector<std::string> TreeNames(Phase const& phase) const;
79 
80  TCut Cut() const;
81 
82  std::string AnalysisName() const;
83 
84  std::string BranchName(Stage stage) const;
85 
86  std::string FactoryFileName() const;
87 
88  std::string ExportFileName() const;
89 
90  std::string ExportFileName(Stage stage, Tag tag) const;
91 
92  std::string ExportFileName(Phase const& phase) const;
93 
94  std::string ExportFolderName() const;
95 
96  std::string FolderName() const;
97 
98  std::string FileName(Stage stage, Tag tag) const;
99 
100  std::string FileName(Phase const& phase) const;
101 
102  std::string BranchName(Phase const& phase) const;
103 
104  std::string MethodName() const;
105 
106  std::string WeightFileName() const;
107 
108  std::string WeightFileExtension() const;
109 
110  std::string WeightBranchName() const;
111 
112  void AddTreeName(std::string const& signal_tree_name, Tag tag);
113 
114  void NewBranch(TreeWriter& tree_writer, boca::Stage stage);
115 
116  void ClearTreeNames();
117 
118  virtual TClass& Class() const = 0;
119 
120  Base(Base const&) = default;
121 
122  Base(Base &&) = default;
123 
124  Base &operator=(Base const&) & = default;
125 
126  Base &operator=(Base &&) & = default;
127 
128  bool Cut(TMVA::Reader const& reader, double eff) const;
129 
130 protected:
131 
132  ~Base() {}
133 
134  virtual void DefineVariables() = 0;
135 
136  std::vector<Jet>SubJets(Jet const& jet, int sub_jet_number) const;
137 
138  void AddVariable(Observable& observable);
139 
140  void AddSpectator(Observable& observable);
141 
142  void ClearObservables();
143 
144  boca::TreeBranch& TreeBranch() const;
145 
146  double Bdt(TMVA::Reader const& reader) const;
147 
148  virtual boca::Filter Filter() const;
149 
150  Range<double> MvaRange() const;
151 
152 private:
153 
154  std::string ReaderName() const;
155 
156  std::string ReaderName(std::string const& name) const;
157 
158  std::string TrainerName() const;
159 
160  std::string TrainerName(std::string const& name) const;
161 
162  std::string SignalFileName(Stage stage) const;
163 
164  std::string BackgroundFileName(Stage stage) const;
165 
166  std::string Root() const;
167 
168  std::string PathName(std::string const& file_name, std::string const& suffix = ".root") const;
169 
170  std::string WeightName() const;
171 
172  std::string BackgroundName() const;
173 
174  std::string BackgroundName(std::string const& name) const;
175 
176  std::string SignalName() const;
177 
178  std::string SignalName(std::string const& name) const;
179 
180  std::string MvaFileName() const;
181 
182  std::string ExportName() const;
183 
184  std::string Name(Stage stage, Tag tag) const;
185 
186  std::string Name(Phase const& phase) const;
187 
188  std::string Name(Stage stage) const;
189 
190 // std::string BranchName(Stage stage, Tag tag) const;
191 
196  boca::TreeBranch* tree_branch_;
197 
202 // static std::string analysis_name_;
203 
208  std::vector<std::string> background_tree_names_;
209 
214  std::vector<std::string> signal_tree_names_;
215 
220  std::vector<Observable> variables_;
221 
226  std::vector<Observable> spectators_;
227 
228 };
229 
230 }
231 
232 }
Jet.
Definition: Jet.hh:15
~Base()
Definition: Base.hh:132
Result tree branch
Definition: Result.hh:19
Stage
The stage of the multivariant tagging process.
Definition: Stage.hh:15
event BDT for semi leptonic heavy higgs
Definition: Event.hh:19
latex::String LatexName(Significance significance)
Definition: Significance.cpp:100
Definition: PreCuts.hh:14
Definition: TreeBranch.hh:12
std::string FileName(std::string const &file)
Definition: Debug.cpp:48
Tag
The Tag distinguishes between signal and background events.
Definition: Tag.hh:14
Definition: Filter.hh:8
Definition: String.hh:45
Definition: Observable.hh:11
Definition: TreeWriter.hh:14
Boosted Collider Analysis.
Definition: Analysis.hh:15
Branch
Definition: TreeReader.hh:18
Base()
Definition: Base.hh:52
Definition: DelphesClasses.h:50
TMVA provides a ROOT-integrated machine learning environment for the processing and parallel evaluati...
Definition: Base.hh:16
Reading stage.
Prepares multivariant analysis.
Definition: Base.hh:47
std::string Name(Output output)
Definition: Base.cpp:23
The phases of the multivariant tagging process.
Definition: Phase.hh:16
Definition: DelphesClasses.h:336