10 #include <mva/interface/Options.h>
12 #include <boost/property_tree/ptree.hpp>
13 #include <gtest/gtest.h>
19 TEST(OptionsTest, GeneralOptions)
24 EXPECT_EQ(general_options.m_method,
"");
25 EXPECT_EQ(general_options.m_identifier,
"");
26 EXPECT_EQ(general_options.m_datafiles.size(), 0);
27 EXPECT_EQ(general_options.m_treename,
"ntuple");
28 EXPECT_EQ(general_options.m_variables.size(), 0);
29 EXPECT_EQ(general_options.m_spectators.size(), 0);
30 EXPECT_EQ(general_options.m_signal_class, 1);
31 EXPECT_EQ(general_options.m_target_variable,
"isSignal");
32 EXPECT_EQ(general_options.m_weight_variable,
"__weight__");
33 EXPECT_EQ(general_options.m_max_events, 0u);
35 general_options.m_method =
"Method";
36 general_options.m_identifier =
"Weightfile";
37 general_options.m_datafiles = {
"Datafile"};
38 general_options.m_treename =
"Tree";
39 general_options.m_variables = {
"v",
"a",
"r",
"s"};
40 general_options.m_spectators = {
"x",
"M"};
41 general_options.m_signal_class = 2;
42 general_options.m_max_events = 100;
43 general_options.m_target_variable =
"Target";
44 general_options.m_weight_variable =
"Weight";
46 boost::property_tree::ptree pt;
47 general_options.save(pt);
48 EXPECT_EQ(pt.get<std::string>(
"method"),
"Method");
49 EXPECT_EQ(pt.get<std::string>(
"weightfile"),
"Weightfile");
50 EXPECT_EQ(pt.get<
unsigned int>(
"number_data_files"), 1);
51 EXPECT_EQ(pt.get<std::string>(
"datafile0"),
"Datafile");
52 EXPECT_EQ(pt.get<std::string>(
"treename"),
"Tree");
53 EXPECT_EQ(pt.get<std::string>(
"target_variable"),
"Target");
54 EXPECT_EQ(pt.get<std::string>(
"weight_variable"),
"Weight");
55 EXPECT_EQ(pt.get<
int>(
"signal_class"), 2);
56 EXPECT_EQ(pt.get<
unsigned int>(
"max_events"), 100u);
57 EXPECT_EQ(pt.get<
unsigned int>(
"number_feature_variables"), 4);
58 EXPECT_EQ(pt.get<std::string>(
"variable0"),
"v");
59 EXPECT_EQ(pt.get<std::string>(
"variable1"),
"a");
60 EXPECT_EQ(pt.get<std::string>(
"variable2"),
"r");
61 EXPECT_EQ(pt.get<std::string>(
"variable3"),
"s");
62 EXPECT_EQ(pt.get<
unsigned int>(
"number_spectator_variables"), 2);
63 EXPECT_EQ(pt.get<std::string>(
"spectator0"),
"x");
64 EXPECT_EQ(pt.get<std::string>(
"spectator1"),
"M");
67 general_options2.
load(pt);
69 EXPECT_EQ(general_options2.
m_method,
"Method");
72 EXPECT_EQ(general_options2.
m_datafiles[0],
"Datafile");
73 EXPECT_EQ(general_options2.
m_treename,
"Tree");
88 auto description = general_options.getDescription();
89 EXPECT_EQ(description.options().size(), 11);
92 TEST(OptionsTest, MetaOptions)
95 EXPECT_EQ(meta_options.m_use_splot,
false);
96 EXPECT_EQ(meta_options.m_splot_variable,
"M");
97 EXPECT_EQ(meta_options.m_splot_mc_files.size(), 0);
98 EXPECT_EQ(meta_options.m_splot_combined,
false);
99 EXPECT_EQ(meta_options.m_splot_boosted,
false);
100 EXPECT_EQ(meta_options.m_use_sideband_substraction,
false);
101 EXPECT_EQ(meta_options.m_sideband_variable,
"");
102 EXPECT_EQ(meta_options.m_sideband_mc_files.size(), 0u);
103 EXPECT_EQ(meta_options.m_use_reweighting,
false);
104 EXPECT_EQ(meta_options.m_reweighting_identifier,
"");
105 EXPECT_EQ(meta_options.m_reweighting_variable,
"");
106 EXPECT_EQ(meta_options.m_reweighting_data_files.size(), 0u);
107 EXPECT_EQ(meta_options.m_reweighting_mc_files.size(), 0u);
109 meta_options.m_use_reweighting =
true;
110 meta_options.m_reweighting_identifier =
"test";
111 meta_options.m_reweighting_variable =
"A";
112 meta_options.m_reweighting_mc_files = {
"reweighting_mc.root"};
113 meta_options.m_reweighting_data_files = {
"reweighting_data.root"};
114 meta_options.m_use_sideband_substraction =
true;
115 meta_options.m_sideband_variable =
"B";
116 meta_options.m_sideband_mc_files = {
"sideband_mc.root"};
117 meta_options.m_use_splot =
true;
118 meta_options.m_splot_variable =
"Q";
119 meta_options.m_splot_mc_files = {
"splot_mc.root"};
120 meta_options.m_splot_combined =
true;
121 meta_options.m_splot_boosted =
true;
123 boost::property_tree::ptree pt;
124 meta_options.save(pt);
125 EXPECT_EQ(pt.get<
bool>(
"use_splot"),
true);
126 EXPECT_EQ(pt.get<
bool>(
"splot_combined"),
true);
127 EXPECT_EQ(pt.get<
bool>(
"splot_boosted"),
true);
128 EXPECT_EQ(pt.get<
unsigned int>(
"splot_number_of_mc_files"), 1);
129 EXPECT_EQ(pt.get<std::string>(
"splot_mc_file0"),
"splot_mc.root");
130 EXPECT_EQ(pt.get<std::string>(
"splot_variable"),
"Q");
131 EXPECT_EQ(pt.get<
bool>(
"use_sideband_substraction"),
true);
132 EXPECT_EQ(pt.get<std::string>(
"sideband_variable"),
"B");
133 EXPECT_EQ(pt.get<
bool>(
"use_reweighting"),
true);
134 EXPECT_EQ(pt.get<std::string>(
"reweighting_identifier"),
"test");
135 EXPECT_EQ(pt.get<std::string>(
"reweighting_variable"),
"A");
136 EXPECT_EQ(pt.get<
unsigned int>(
"reweighting_number_of_mc_files"), 1);
137 EXPECT_EQ(pt.get<std::string>(
"reweighting_mc_file0"),
"reweighting_mc.root");
138 EXPECT_EQ(pt.get<
unsigned int>(
"reweighting_number_of_data_files"), 1);
139 EXPECT_EQ(pt.get<std::string>(
"reweighting_data_file0"),
"reweighting_data.root");
140 EXPECT_EQ(pt.get<
unsigned int>(
"sideband_number_of_mc_files"), 1);
141 EXPECT_EQ(pt.get<std::string>(
"sideband_mc_file0"),
"sideband_mc.root");
144 meta_options2.
load(pt);
165 auto description = meta_options.getDescription();
166 EXPECT_EQ(description.options().size(), 13);