SourceXtractorPlusPlus
0.10
Please provide a description of the project.
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
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory::getConverter
std::unique_ptr< ModelFitting::CoordinateConverter > getConverter(double initial_value, const SourceInterface &source) const override
Definition:
FlexibleModelFittingConverterFactory.cpp:38
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:73
SourceXtractor::FlexibleModelFittingLinearRangeConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:60
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::FlexibleModelFittingConverterFactory::~FlexibleModelFittingConverterFactory
virtual ~FlexibleModelFittingConverterFactory()=default
std::function< std::pair< double, double >(double, const SourceInterface &)>
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory::getConverter
std::unique_ptr< ModelFitting::CoordinateConverter > getConverter(double initial_value, const SourceInterface &source) const override
Definition:
FlexibleModelFittingConverterFactory.cpp:56
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory::m_range
RangeFunc m_range
Definition:
FlexibleModelFittingConverterFactory.h:57
SourceXtractor
Definition:
Aperture.h:30
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:45
SourceXtractor::FlexibleModelFittingConverterFactory::getConverter
virtual std::unique_ptr< ModelFitting::CoordinateConverter > getConverter(double initial_value, const SourceInterface &source) const =0
SourceXtractor::FlexibleModelFittingExponentialRangeConverterFactory::FlexibleModelFittingExponentialRangeConverterFactory
FlexibleModelFittingExponentialRangeConverterFactory(RangeFunc range)
Definition:
FlexibleModelFittingConverterFactory.h:52
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory::m_normalization_factor
ValueFunc m_normalization_factor
Definition:
FlexibleModelFittingConverterFactory.h:83
SourceXtractor::FlexibleModelFittingConverterFactory
Definition:
FlexibleModelFittingConverterFactory.h:39
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
std::unique_ptr< ModelFitting::CoordinateConverter >
SourceXtractor::FlexibleModelFittingUnboundedConverterFactory::FlexibleModelFittingUnboundedConverterFactory
FlexibleModelFittingUnboundedConverterFactory(ValueFunc normalization_factor)
Definition:
FlexibleModelFittingConverterFactory.h:77
ModelFitting
Definition:
AsinhChiSquareComparator.h:30
SourceXtractor::FlexibleModelFittingLinearRangeConverterFactory::m_range
RangeFunc m_range
Definition:
FlexibleModelFittingConverterFactory.h:70
Generated by
1.8.17