Skip to content
Snippets Groups Projects
Commit 1227039a authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

MinimizerContainerItem: fix

parent 6451a04e
No related branches found
No related tags found
1 merge request!1004Fit: catalogize algorithms, not minimizers
...@@ -32,39 +32,42 @@ const QMap<QString, QString> minimizer_names_map = { ...@@ -32,39 +32,42 @@ const QMap<QString, QString> minimizer_names_map = {
{"GSL Levenberg-Marquardt", GSLLMAMinimizerItem::M_TYPE}}; {"GSL Levenberg-Marquardt", GSLLMAMinimizerItem::M_TYPE}};
const QString default_minimizer = minimizer_names_map.key(MinuitMinimizerItem::M_TYPE); const QString default_minimizer = minimizer_names_map.key(MinuitMinimizerItem::M_TYPE);
#ifdef ALGORITHM_LIST
QMap<QString/*algorithm*/, QString/*minimizer*/> algorithm_minimizer_map; QMap<QString/*algorithm*/, QString/*minimizer*/> algorithm_minimizer_map;
QStringList common_algorithms_list; QStringList create_algorithm_minimizer_map()
void create_algorithm_minimizer_map()
{ {
QString name = "_wrong_name_"; QString name = "_wrong_name_";
QStringList common_algorithms_list;
QStringList minuit2Algorithms = MinimizerItemCatalog::algorithmNames(MinuitMinimizerItem::M_TYPE); QStringList minuit2Algorithms = MinimizerItemCatalog::algorithmNames(MinuitMinimizerItem::M_TYPE);
for(QString algorithm : minuit2Algorithms) { for(QString algorithm : minuit2Algorithms) {
name = algorithm + " (ROOT Minuit2)"; name = algorithm + " (ROOT Minuit2)";
common_algorithms_list.append(name); common_algorithms_list.append(name);
algorithm_minimizer_map.insert(name, MinuitMinimizerItem::M_TYPE); algorithm_minimizer_map.insert(name, minimizer_names_map.key(MinuitMinimizerItem::M_TYPE));
} }
QStringList multiMinAlgorithms = MinimizerItemCatalog::algorithmNames(GSLMultiMinimizerItem::M_TYPE); QStringList multiMinAlgorithms = MinimizerItemCatalog::algorithmNames(GSLMultiMinimizerItem::M_TYPE);
for(QString algorithm : multiMinAlgorithms) { for(QString algorithm : multiMinAlgorithms) {
name = algorithm + " (GSL)"; name = algorithm + " (GSL)";
common_algorithms_list.append(name); common_algorithms_list.append(name);
algorithm_minimizer_map.insert(name, GSLMultiMinimizerItem::M_TYPE); algorithm_minimizer_map.insert(name, minimizer_names_map.key(GSLMultiMinimizerItem::M_TYPE));
} }
name = "Genetic (ROOT TMVA)"; name = "Genetic (ROOT TMVA)";
common_algorithms_list.append(name); common_algorithms_list.append(name);
algorithm_minimizer_map.insert(name, GeneticMinimizerItem::M_TYPE); algorithm_minimizer_map.insert(name, minimizer_names_map.key(GeneticMinimizerItem::M_TYPE));
name = "Simulated Annealing (GSL)"; name = "Simulated Annealing (GSL)";
common_algorithms_list.append(name); common_algorithms_list.append(name);
algorithm_minimizer_map.insert(name, SimAnMinimizerItem::M_TYPE); algorithm_minimizer_map.insert(name, minimizer_names_map.key(SimAnMinimizerItem::M_TYPE));
name = "Levenberg-Marquardt (GSL)"; name = "Levenberg-Marquardt (GSL)";
common_algorithms_list.append(name); common_algorithms_list.append(name);
algorithm_minimizer_map.insert(name, GSLLMAMinimizerItem::M_TYPE); algorithm_minimizer_map.insert(name, minimizer_names_map.key(GSLLMAMinimizerItem::M_TYPE));
return common_algorithms_list;
} }
const QString default_common_algorithm = common_algorithms_list.first(); #endif
} // namespace } // namespace
...@@ -86,12 +89,8 @@ MinimizerContainerItem::MinimizerContainerItem() ...@@ -86,12 +89,8 @@ MinimizerContainerItem::MinimizerContainerItem()
addProperty<GSLLMAMinimizerItem>(GSLLMAMinimizerItem::M_TYPE); addProperty<GSLLMAMinimizerItem>(GSLLMAMinimizerItem::M_TYPE);
#ifdef ALGORITHM_LIST #ifdef ALGORITHM_LIST
qInfo() << algorithm_minimizer_map.keys(); const QStringList common_algorithms_list = create_algorithm_minimizer_map();
qInfo() << algorithm_minimizer_map.values(); const QString default_common_algorithm = common_algorithms_list.first();
qInfo() << "----\n init \n ---";
create_algorithm_minimizer_map();
qInfo() << algorithm_minimizer_map.keys();
qInfo() << algorithm_minimizer_map.values();
ComboProperty common_algorithm_combo = ComboProperty common_algorithm_combo =
ComboProperty::fromList(common_algorithms_list, default_common_algorithm); ComboProperty::fromList(common_algorithms_list, default_common_algorithm);
addProperty(P_COMMON_ALGORITHMS, common_algorithm_combo.variant()); addProperty(P_COMMON_ALGORITHMS, common_algorithm_combo.variant());
...@@ -169,6 +168,9 @@ void MinimizerContainerItem::setCurrentCommonAlgorithm(const QString &name) ...@@ -169,6 +168,9 @@ void MinimizerContainerItem::setCurrentCommonAlgorithm(const QString &name)
combo.setCurrentValue(name); combo.setCurrentValue(name);
setItemValue(P_COMMON_ALGORITHMS, combo.variant()); setItemValue(P_COMMON_ALGORITHMS, combo.variant());
qInfo() << "setCurrentCommonAlgorithm" << name;
qInfo() << "minimizer changed to" << algorithm_minimizer_map.value(name);
qInfo() << algorithm_minimizer_map.values();
setCurrentMinimizer(algorithm_minimizer_map.value(name)); setCurrentMinimizer(algorithm_minimizer_map.value(name));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment