SourceXtractorPlusPlus 0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
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
25
28
30
31namespace SourceXtractor {
32
34
36
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
116 return "FlexibleModelFitting";
117}
118
119}
static Logging getLogger(const std::string &name="")
void registerPlugin(PluginAPI &plugin_api) override
This interface is given to the plugin to let it access object instances from the framework.
Definition PluginAPI.h:40
Elements::Logging model_fitting_logger
static StaticPlugin< FlexibleModelFittingPlugin > flexible_modelfitting_plugin
constexpr int64_t flags2long(const Flags &a)
Definition SourceFlags.h:90