SourceXtractorPlusPlus
0.19
SourceXtractor++, the next generation SExtractor
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SEImplementation
src
lib
Plugin
FlexibleModelFitting
FlexibleModelFittingPlugin.cpp
Go to the documentation of this file.
1
17
/*
18
* FlexibleModelFittingPlugin.cpp
19
*
20
* Created on: Sep 17, 2018
21
* Author: mschefer
22
*/
23
24
#include "
SEFramework/Plugin/StaticPlugin.h
"
25
26
#include "
SEImplementation/Plugin/FlexibleModelFitting/FlexibleModelFitting.h
"
27
#include "
SEImplementation/Plugin/FlexibleModelFitting/FlexibleModelFittingTaskFactory.h
"
28
29
#include "
SEImplementation/Plugin/FlexibleModelFitting/FlexibleModelFittingPlugin.h
"
30
31
namespace
SourceXtractor {
32
33
Elements::Logging
model_fitting_logger
=
Elements::Logging::getLogger
(
"ModelFitting"
);
34
35
static
StaticPlugin<FlexibleModelFittingPlugin>
flexible_modelfitting_plugin
;
36
37
void
FlexibleModelFittingPlugin::registerPlugin
(
PluginAPI
& plugin_api) {
38
plugin_api.
getTaskFactoryRegistry
().
registerTaskFactory
<
FlexibleModelFittingTaskFactory
,
FlexibleModelFitting
>();
39
40
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
double
>(
41
"fmf_reduced_chi_2"
,
42
[](
const
FlexibleModelFitting
& prop) {
43
return
prop.getReducedChiSquared();
44
},
45
""
,
46
"Reduced chi-square of the model fitting"
47
);
48
49
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
int
>(
50
"fmf_iterations"
,
51
[](
const
FlexibleModelFitting
& prop) {
52
return
prop.getIterations();
53
},
54
""
,
55
"Number of iterations in the model fitting"
56
);
57
58
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
int
>(
59
"fmf_stop_reason"
,
60
[](
const
FlexibleModelFitting
& prop) {
61
return
prop.getStopReason();
62
},
63
""
,
64
"Stop reason (engine dependent)"
65
);
66
67
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
float
>(
68
"fmf_duration"
,
69
[](
const
FlexibleModelFitting
& prop) {
70
return
prop.getDuration();
71
},
72
"seconds"
,
73
"Fitting runtime"
74
);
75
76
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
int64_t
>(
77
"fmf_flags"
,
78
[](
const
FlexibleModelFitting
& prop) {
79
return
flags2long
(prop.getFlags());
80
},
81
""
,
82
"Model fitting flags"
83
);
84
85
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
std::vector<SeFloat>
>(
86
"fmf_chi2_per_meta"
,
87
[](
const
FlexibleModelFitting
& prop) {
88
return
prop.getChiSquaredPerMetaIteration();
89
},
90
""
,
91
"Reduced chi^2 per meta-iteration"
92
);
93
94
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
std::vector<int>
>(
95
"fmf_iterations_per_meta"
,
96
[](
const
FlexibleModelFitting
& prop) {
97
return
prop.getIterationsPerMetaIteration();
98
},
99
""
,
100
"Iterations per meta-iteration"
101
);
102
103
plugin_api.
getOutputRegistry
().
registerColumnConverter
<
FlexibleModelFitting
,
int
>(
104
"fmf_meta_iterations"
,
105
[](
const
FlexibleModelFitting
& prop) {
106
return
prop.getMetaIterations();
107
},
108
""
,
109
"Meta-iterations"
110
);
111
112
plugin_api.
getOutputRegistry
().
enableOutput
<
FlexibleModelFitting
>(
"FlexibleModelFitting"
);
113
}
114
115
std::string
FlexibleModelFittingPlugin::getIdString
()
const
{
116
return
"FlexibleModelFitting"
;
117
}
118
119
}
SourceXtractor::flags2long
constexpr int64_t flags2long(const Flags &a)
Definition:
SourceFlags.h:90
SourceXtractor::OutputRegistry::enableOutput
void enableOutput(std::string alias_name, bool configurable_output=false)
Definition:
OutputRegistry.h:141
SourceXtractor::PluginAPI::getOutputRegistry
virtual OutputRegistry & getOutputRegistry() const =0
FlexibleModelFittingTaskFactory.h
SourceXtractor::TaskFactoryRegistry::registerTaskFactory
void registerTaskFactory()
Definition:
TaskFactoryRegistry.h:51
SourceXtractor::FlexibleModelFittingPlugin::registerPlugin
void registerPlugin(PluginAPI &plugin_api) override
Definition:
FlexibleModelFittingPlugin.cpp:37
std::string
STL class.
FlexibleModelFitting.h
std::int64_t
Elements::Logging
SourceXtractor::FlexibleModelFitting
Definition:
FlexibleModelFitting.h:40
StaticPlugin.h
SourceXtractor::PluginAPI
This interface is given to the plugin to let it access object instances from the framework.
Definition:
PluginAPI.h:40
SourceXtractor::FlexibleModelFittingTaskFactory
Definition:
FlexibleModelFittingTaskFactory.h:33
std::vector< SeFloat >
SourceXtractor::flexible_modelfitting_plugin
static StaticPlugin< FlexibleModelFittingPlugin > flexible_modelfitting_plugin
Definition:
FlexibleModelFittingPlugin.cpp:35
SourceXtractor::StaticPlugin
Used to register compile-time (static) plugins with the PluginManager.
Definition:
StaticPlugin.h:38
FlexibleModelFittingPlugin.h
SourceXtractor::model_fitting_logger
Elements::Logging model_fitting_logger
Definition:
FlexibleModelFittingPlugin.cpp:33
SourceXtractor::FlexibleModelFittingPlugin::getIdString
std::string getIdString() const override
Definition:
FlexibleModelFittingPlugin.cpp:115
SourceXtractor::PluginAPI::getTaskFactoryRegistry
virtual TaskFactoryRegistry & getTaskFactoryRegistry() const =0
Elements::Logging::getLogger
static Logging getLogger(const std::string &name="")
SourceXtractor::OutputRegistry::registerColumnConverter
void registerColumnConverter(std::string column_name, ColumnConverter< PropertyType, OutType > converter, std::string column_unit="", std::string column_description="")
Definition:
OutputRegistry.h:46
Generated by
1.8.5