6 #include "TMVA/Reader.h" 25 template<
typename Tagger_>
38 stage_(reader.stage_),
40 tagger_(reader.tagger_) {
53 if (Debug()) std::cout <<
"Reader: " <<
Tagger().Name() <<
'\n';
56 std::ofstream cout_file(
Tagger().AnalysisName() +
"/Reader.txt", std::ios_base::app | std::ios_base::out);
57 auto cout = std::cout.rdbuf();
58 std::cout.rdbuf(cout_file.rdbuf());
61 std::cout.rdbuf(cout);
68 template <
typename Multiplet_>
69 double Bdt(Multiplet_
const& multiplet) {
70 if (Debug()) std::cout <<
"Reader: " <<
Tagger().Name() <<
" reading bdt" <<
'\n';
74 template <
typename Multiplet_>
78 }
catch (std::exception
const&) {
79 multiplet.SetBdt(
Tagger().MvaRange().Min());
84 template <
typename Input_>
85 auto Multiplets(Input_
const& input, std::size_t number = 4) {
87 return Tagger().ReducedMultiplets(input, pre_cuts,
TReader(), number);
90 template <
typename Input_>
91 auto Jets(Input_
const& input) {
97 return Tagger().Particles(event);
104 template <
typename Input_>
109 template <
typename Input_1_,
typename Input_2_>
110 auto Multiplet(Input_1_
const& input_1, Input_2_
const& input_2) {
114 template <
typename Input_>
119 template <
typename Input_>
130 Tagger().NewBranch(tree_writer, stage);
133 template<
typename Multiplet_>
135 auto multiplets = std::vector<Multiplet_>{};
136 for (
auto const & multiplet :
Multiplets(event)) {
137 auto new_multiplet = Multiplet_{};
138 new_multiplet.Enforce(multiplet);
139 multiplets.emplace_back(new_multiplet);
165 void AddObservables() {
166 for (
auto const & variable :
Tagger().Variables())
TReader().AddVariable(variable.Expression(), &variable.Value());
167 for (
auto const & spectator :
Tagger().Spectators())
TReader().AddSpectator(spectator.Expression(), &spectator.Value());
170 TMVA::IMethod& BookMva() {
171 std::cout <<
Tagger().MethodName() <<
" " <<
Tagger().WeightFileName() <<
'\n';
180 constexpr
bool Debug()
const {
186 TMVA::Reader reader_;
190 bool initialized_ =
false;
Jet.
Definition: Jet.hh:15
auto SubMultiplet(Input_ const &input)
Definition: Reader.hh:120
Reader(Stage stage=Stage::reader)
Definition: Reader.hh:31
Stage
The stage of the multivariant tagging process.
Definition: Stage.hh:15
read results of multivariant analysis wrapper for TMVA::Reader
Definition: Reader.hh:26
auto Transform(Event const &event)
Definition: Reader.hh:134
Definition: PreCuts.hh:14
TMVA::Reader const & TReader() const
Definition: Reader.hh:151
auto Jets(Input_ const &input)
Definition: Reader.hh:91
Key-value-pair options.
Definition: Options.hh:29
auto Multiplets(Input_ const &input, std::size_t number=4)
Definition: Reader.hh:85
Multiplet_ Multiplet(Multiplet_ multiplet, PreCuts const &pre_cuts) const
Definition: Reader.hh:75
auto SubMultiplet(Input_ const &input, int number)
Definition: Reader.hh:115
void NewBranch(TreeWriter &tree_writer, Stage stage)
Definition: Reader.hh:129
Reader(Reader const &&reader)
Definition: Reader.hh:44
double Bdt(Multiplet_ const &multiplet)
Definition: Reader.hh:69
Base class for the event Topology.
Definition: Event.hh:53
int Bdt(Event const &event, PreCuts const &pre_cuts)
Definition: Reader.hh:64
auto Multiplet(Jet &input)
Definition: Reader.hh:100
Definition: TreeWriter.hh:14
Boosted Collider Analysis.
Definition: Analysis.hh:15
void Initialize()
Definition: Reader.hh:51
Reader(Reader const &reader)
Definition: Reader.hh:37
Tagger_ const & Tagger() const
Definition: Reader.hh:124
auto Multiplet(Input_ const &input)
Definition: Reader.hh:105
Tagger_ & Tagger()
Definition: Reader.hh:144
auto Particles(Event const &event) const
Definition: Reader.hh:96
auto Multiplet(Input_1_ const &input_1, Input_2_ const &input_2)
Definition: Reader.hh:110