SourceXtractorPlusPlus
0.10
Please provide a description of the project.
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
SEImplementation
Plugin
FlexibleModelFitting
FlexibleModelFittingConverterFactory.h
Go to the documentation of this file.
1
17
/*
18
* FlexibleModelFittingConverterFactory.h
19
*
20
* Created on: May 10, 2019
21
* Author: mschefer
22
*/
23
24
#ifndef _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGCONVERTERFACTORY_H_
25
#define _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGCONVERTERFACTORY_H_
26
27
#include <memory>
28
#include <functional>
29
30
namespace
ModelFitting {
31
class
CoordinateConverter;
32
}
33
34
namespace
SourceXtractor {
35
36
class
SourceInterface;
37
38
39
class
FlexibleModelFittingConverterFactory
{
40
public
:
41
virtual
~FlexibleModelFittingConverterFactory
() =
default
;
42
virtual
std::unique_ptr<ModelFitting::CoordinateConverter>
getConverter
(
double
initial_value,
const
SourceInterface
& source)
const
= 0;
43
};
44
45
class
FlexibleModelFittingExponentialRangeConverterFactory
:
public
FlexibleModelFittingConverterFactory
{
46
public
:
50
using
RangeFunc
=
std::function<std::pair<double, double>
(double,
const
SourceInterface
&)>;
51
52
FlexibleModelFittingExponentialRangeConverterFactory
(
RangeFunc
range) :
m_range
(range) {}
53
54
std::unique_ptr<ModelFitting::CoordinateConverter>
getConverter
(
double
initial_value,
const
SourceInterface
& source)
const override
;
55
56
private
:
57
RangeFunc
m_range
;
58
};
59
60
class
FlexibleModelFittingLinearRangeConverterFactory
:
public
FlexibleModelFittingConverterFactory
{
61
public
:
62
using
RangeFunc
=
std::function<std::pair<double, double>
(double,
const
SourceInterface
&)>;
63
64
65
FlexibleModelFittingLinearRangeConverterFactory
(
RangeFunc
range) :
m_range
(range) {}
66
67
std::unique_ptr<ModelFitting::CoordinateConverter>
getConverter
(
double
initial_value,
const
SourceInterface
& source)
const override
;
68
69
private
:
70
RangeFunc
m_range
;
71
};
72
73
class
FlexibleModelFittingUnboundedConverterFactory
:
public
FlexibleModelFittingConverterFactory
{
74
public
:
75
using
ValueFunc
=
std::function<double(double, const SourceInterface&)>
;
76
77
FlexibleModelFittingUnboundedConverterFactory
(
ValueFunc
normalization_factor)
78
:
m_normalization_factor
(normalization_factor) {}
79
80
std::unique_ptr<ModelFitting::CoordinateConverter>
getConverter
(
double
initial_value,
const
SourceInterface
& source)
const override
;
81
82
private
:
83
ValueFunc
m_normalization_factor
;
84
};
85
86
}
87
88
#endif
/* _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGCONVERTERFACTORY_H_ */
89
std::function< std::pair< double, double >(double, const SourceInterface &)>
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory::m_normalization_factor
ValueFunc m_normalization_factor
Definition:
FlexibleModelFittingConverterFactory.h:83
SourceXtractor::FlexibleModelFittingConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:39
SourceXtractor::FlexibleModelFittingLinearRangeConverterFactory::getConverter
std::unique_ptr< ModelFitting::CoordinateConverter > getConverter(double initial_value, const SourceInterface &source) const override
Definition:
FlexibleModelFittingConverterFactory.cpp:47
SourceXtractor::FlexibleModelFittingLinearRangeConverterFactory::FlexibleModelFittingLinearRangeConverterFactory
FlexibleModelFittingLinearRangeConverterFactory(RangeFunc range)
Definition:
FlexibleModelFittingConverterFactory.h:65
SourceXtractor::FlexibleModelFittingLinearRangeConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:60
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory::FlexibleModelFittingExponentialRangeConverterFactory
FlexibleModelFittingExponentialRangeConverterFactory(RangeFunc range)
Definition:
FlexibleModelFittingConverterFactory.h:52
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:73
SourceXtractor::FlexibleModelFittingConverterFactory::~FlexibleModelFittingConverterFactory
virtual ~FlexibleModelFittingConverterFactory()=default
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory::m_range
RangeFunc m_range
Definition:
FlexibleModelFittingConverterFactory.h:57
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory::getConverter
std::unique_ptr< ModelFitting::CoordinateConverter > getConverter(double initial_value, const SourceInterface &source) const override
Definition:
FlexibleModelFittingConverterFactory.cpp:56
std::unique_ptr< ModelFitting::CoordinateConverter >
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:45
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory::FlexibleModelFittingUnboundedConverterFactory
FlexibleModelFittingUnboundedConverterFactory(ValueFunc normalization_factor)
Definition:
FlexibleModelFittingConverterFactory.h:77
SourceXtractor::FlexibleModelFittingLinearRangeConverterFactory::m_range
RangeFunc m_range
Definition:
FlexibleModelFittingConverterFactory.h:70
SourceXtractor::FlexibleModelFittingConverterFactory::getConverter
virtual std::unique_ptr< ModelFitting::CoordinateConverter > getConverter(double initial_value, const SourceInterface &source) const =0
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory::getConverter
std::unique_ptr< ModelFitting::CoordinateConverter > getConverter(double initial_value, const SourceInterface &source) const override
Definition:
FlexibleModelFittingConverterFactory.cpp:38
Generated by
1.8.5