SourceXtractorPlusPlus
0.8
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
FlexibleModelFittingModel.h
Go to the documentation of this file.
1
17
/*
18
* FlexibleModelFittingModel.h
19
*
20
* Created on: Sep 17, 2018
21
* Author: mschefer
22
*/
23
24
#ifndef _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGMODEL_H_
25
#define _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGMODEL_H_
26
27
#include "
ModelFitting/Models/ConstantModel.h
"
28
#include "
ModelFitting/Models/PointModel.h
"
29
#include "
ModelFitting/Models/TransformedModel.h
"
30
31
#include "
SEFramework/Source/SourceInterface.h
"
32
#include "
SEFramework/CoordinateSystem/CoordinateSystem.h
"
33
34
namespace
SourceXtractor {
35
36
class
FlexibleModelFittingParameterManager;
37
38
class
FlexibleModelFittingModel
{
39
public
:
40
virtual
~FlexibleModelFittingModel
() {}
41
42
virtual
void
addForSource
(
FlexibleModelFittingParameterManager
& manager,
43
const
SourceInterface
& source,
44
std::vector<ModelFitting::ConstantModel>
& constant_models,
45
std::vector<ModelFitting::PointModel>
& point_models,
46
std::vector<ModelFitting::TransformedModel>
& extended_models,
47
std::tuple<double, double, double, double>
jacobian,
48
std::shared_ptr<CoordinateSystem>
reference_coordinates,
49
std::shared_ptr<CoordinateSystem>
coordinates,
PixelCoordinate
offset)
const
= 0;
50
51
private
:
52
};
53
54
class
FlexibleModelFittingPointModel
:
public
FlexibleModelFittingModel
{
55
public
:
56
FlexibleModelFittingPointModel
(
std::shared_ptr<FlexibleModelFittingParameter>
x
,
57
std::shared_ptr<FlexibleModelFittingParameter>
y
,
58
std::shared_ptr<FlexibleModelFittingParameter>
flux)
59
:
m_x
(x),
m_y
(y),
m_flux
(flux) {}
60
61
virtual
~FlexibleModelFittingPointModel
() {}
62
63
virtual
void
addForSource
(
FlexibleModelFittingParameterManager
& manager,
64
const
SourceInterface
& source,
65
std::vector<ModelFitting::ConstantModel>
& constant_models,
66
std::vector<ModelFitting::PointModel>
& point_models,
67
std::vector<ModelFitting::TransformedModel>
& extended_models,
68
std::tuple<double, double, double, double>
jacobian,
69
std::shared_ptr<CoordinateSystem>
reference_coordinates,
70
std::shared_ptr<CoordinateSystem>
coordinates,
PixelCoordinate
offset)
const
;
71
private
:
72
std::shared_ptr<FlexibleModelFittingParameter>
m_x
;
73
std::shared_ptr<FlexibleModelFittingParameter>
m_y
;
74
std::shared_ptr<FlexibleModelFittingParameter>
m_flux
;
75
};
76
77
class
FlexibleModelFittingExponentialModel
:
public
FlexibleModelFittingModel
{
78
public
:
79
FlexibleModelFittingExponentialModel
(
std::shared_ptr<FlexibleModelFittingParameter>
x
,
80
std::shared_ptr<FlexibleModelFittingParameter>
y
,
81
std::shared_ptr<FlexibleModelFittingParameter>
flux,
82
std::shared_ptr<FlexibleModelFittingParameter>
effective_radius,
83
std::shared_ptr<FlexibleModelFittingParameter>
aspect_ratio,
84
std::shared_ptr<FlexibleModelFittingParameter>
angle)
85
:
m_x
(x),
86
m_y
(y),
87
m_flux
(flux),
88
m_effective_radius
(effective_radius),
89
m_aspect_ratio
(aspect_ratio),
90
m_angle
(angle) {}
91
92
virtual
~FlexibleModelFittingExponentialModel
() {}
93
94
virtual
void
addForSource
(
FlexibleModelFittingParameterManager
& manager,
95
const
SourceInterface
& source,
96
std::vector<ModelFitting::ConstantModel>
& constant_models,
97
std::vector<ModelFitting::PointModel>
& point_models,
98
std::vector<ModelFitting::TransformedModel>
& extended_models,
99
std::tuple<double, double, double, double>
jacobian,
100
std::shared_ptr<CoordinateSystem>
reference_coordinates,
101
std::shared_ptr<CoordinateSystem>
coordinates,
PixelCoordinate
offset)
const
;
102
103
private
:
104
std::shared_ptr<FlexibleModelFittingParameter>
m_x
;
105
std::shared_ptr<FlexibleModelFittingParameter>
m_y
;
106
std::shared_ptr<FlexibleModelFittingParameter>
m_flux
;
107
std::shared_ptr<FlexibleModelFittingParameter>
m_effective_radius
;
108
std::shared_ptr<FlexibleModelFittingParameter>
m_aspect_ratio
;
109
std::shared_ptr<FlexibleModelFittingParameter>
m_angle
;
110
};
111
112
class
FlexibleModelFittingDevaucouleursModel
:
public
FlexibleModelFittingModel
{
113
public
:
114
FlexibleModelFittingDevaucouleursModel
(
std::shared_ptr<FlexibleModelFittingParameter>
x
,
115
std::shared_ptr<FlexibleModelFittingParameter>
y
,
116
std::shared_ptr<FlexibleModelFittingParameter>
flux,
117
std::shared_ptr<FlexibleModelFittingParameter>
effective_radius,
118
std::shared_ptr<FlexibleModelFittingParameter>
aspect_ratio,
119
std::shared_ptr<FlexibleModelFittingParameter>
angle)
120
:
m_x
(x),
121
m_y
(y),
122
m_flux
(flux),
123
m_effective_radius
(effective_radius),
124
m_aspect_ratio
(aspect_ratio),
125
m_angle
(angle) {}
126
127
virtual
~FlexibleModelFittingDevaucouleursModel
() {}
128
129
virtual
void
addForSource
(
FlexibleModelFittingParameterManager
& manager,
130
const
SourceInterface
& source,
131
std::vector<ModelFitting::ConstantModel>
& constant_models,
132
std::vector<ModelFitting::PointModel>
& point_models,
133
std::vector<ModelFitting::TransformedModel>
& extended_models,
134
std::tuple<double, double, double, double>
jacobian,
135
std::shared_ptr<CoordinateSystem>
reference_coordinates,
136
std::shared_ptr<CoordinateSystem>
coordinates,
PixelCoordinate
offset)
const
;
137
138
private
:
139
std::shared_ptr<FlexibleModelFittingParameter>
m_x
;
140
std::shared_ptr<FlexibleModelFittingParameter>
m_y
;
141
std::shared_ptr<FlexibleModelFittingParameter>
m_flux
;
142
std::shared_ptr<FlexibleModelFittingParameter>
m_effective_radius
;
143
std::shared_ptr<FlexibleModelFittingParameter>
m_aspect_ratio
;
144
std::shared_ptr<FlexibleModelFittingParameter>
m_angle
;
145
};
146
147
class
FlexibleModelFittingSersicModel
:
public
FlexibleModelFittingModel
{
148
public
:
149
FlexibleModelFittingSersicModel
(
std::shared_ptr<FlexibleModelFittingParameter>
x
,
150
std::shared_ptr<FlexibleModelFittingParameter>
y
,
151
std::shared_ptr<FlexibleModelFittingParameter>
flux,
152
std::shared_ptr<FlexibleModelFittingParameter>
sersic_index,
153
std::shared_ptr<FlexibleModelFittingParameter>
effective_radius,
154
std::shared_ptr<FlexibleModelFittingParameter>
aspect_ratio,
155
std::shared_ptr<FlexibleModelFittingParameter>
angle)
156
:
m_x
(x),
157
m_y
(y),
158
m_flux
(flux),
159
m_sersic_index
(sersic_index),
160
m_effective_radius
(effective_radius),
161
m_aspect_ratio
(aspect_ratio),
162
m_angle
(angle) {}
163
164
virtual
~FlexibleModelFittingSersicModel
() {}
165
166
virtual
void
addForSource
(
FlexibleModelFittingParameterManager
& manager,
167
const
SourceInterface
& source,
168
std::vector<ModelFitting::ConstantModel>
& constant_models,
169
std::vector<ModelFitting::PointModel>
& point_models,
170
std::vector<ModelFitting::TransformedModel>
& extended_models,
171
std::tuple<double, double, double, double>
jacobian,
172
std::shared_ptr<CoordinateSystem>
reference_coordinates,
173
std::shared_ptr<CoordinateSystem>
coordinates,
PixelCoordinate
offset)
const
;
174
175
private
:
176
std::shared_ptr<FlexibleModelFittingParameter>
m_x
;
177
std::shared_ptr<FlexibleModelFittingParameter>
m_y
;
178
std::shared_ptr<FlexibleModelFittingParameter>
m_flux
;
179
std::shared_ptr<FlexibleModelFittingParameter>
m_sersic_index
;
180
std::shared_ptr<FlexibleModelFittingParameter>
m_effective_radius
;
181
std::shared_ptr<FlexibleModelFittingParameter>
m_aspect_ratio
;
182
std::shared_ptr<FlexibleModelFittingParameter>
m_angle
;
183
};
184
185
class
FlexibleModelFittingConstantModel
:
public
FlexibleModelFittingModel
{
186
public
:
187
FlexibleModelFittingConstantModel
(
std::shared_ptr<FlexibleModelFittingParameter>
value)
188
:
m_value
(value) {}
189
190
virtual
~FlexibleModelFittingConstantModel
() {}
191
192
virtual
void
addForSource
(
FlexibleModelFittingParameterManager
& manager,
193
const
SourceInterface
& source,
194
std::vector<ModelFitting::ConstantModel>
& constant_models,
195
std::vector<ModelFitting::PointModel>
& point_models,
196
std::vector<ModelFitting::TransformedModel>
& extended_models,
197
std::tuple<double, double, double, double>
jacobian,
198
std::shared_ptr<CoordinateSystem>
reference_coordinates,
199
std::shared_ptr<CoordinateSystem>
coordinates,
PixelCoordinate
offset)
const
;
200
201
private
:
202
std::shared_ptr<FlexibleModelFittingParameter>
m_value
;
203
};
204
205
206
}
207
208
#endif
/* _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGMODEL_H_ */
SourceXtractor::FlexibleModelFittingDevaucouleursModel::m_x
std::shared_ptr< FlexibleModelFittingParameter > m_x
Definition:
FlexibleModelFittingModel.h:139
SourceXtractor::FlexibleModelFittingDevaucouleursModel::m_effective_radius
std::shared_ptr< FlexibleModelFittingParameter > m_effective_radius
Definition:
FlexibleModelFittingModel.h:142
SourceXtractor::FlexibleModelFittingConstantModel::m_value
std::shared_ptr< FlexibleModelFittingParameter > m_value
Definition:
FlexibleModelFittingModel.h:202
SourceXtractor::FlexibleModelFittingPointModel::addForSource
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
Definition:
FlexibleModelFittingModel.cpp:73
SourceXtractor::FlexibleModelFittingPointModel
Definition:
FlexibleModelFittingModel.h:54
std::shared_ptr
PointModel.h
SourceXtractor::FlexibleModelFittingExponentialModel::m_angle
std::shared_ptr< FlexibleModelFittingParameter > m_angle
Definition:
FlexibleModelFittingModel.h:109
SourceXtractor::FlexibleModelFittingExponentialModel::m_x
std::shared_ptr< FlexibleModelFittingParameter > m_x
Definition:
FlexibleModelFittingModel.h:104
SourceXtractor::FlexibleModelFittingSersicModel::m_x
std::shared_ptr< FlexibleModelFittingParameter > m_x
Definition:
FlexibleModelFittingModel.h:176
SourceXtractor::FlexibleModelFittingDevaucouleursModel::m_angle
std::shared_ptr< FlexibleModelFittingParameter > m_angle
Definition:
FlexibleModelFittingModel.h:144
SourceXtractor::FlexibleModelFittingPointModel::m_x
std::shared_ptr< FlexibleModelFittingParameter > m_x
Definition:
FlexibleModelFittingModel.h:72
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:92
TransformedModel.h
SourceXtractor::FlexibleModelFittingExponentialModel::m_y
std::shared_ptr< FlexibleModelFittingParameter > m_y
Definition:
FlexibleModelFittingModel.h:105
SourceXtractor::FlexibleModelFittingDevaucouleursModel
Definition:
FlexibleModelFittingModel.h:112
SourceXtractor::FlexibleModelFittingExponentialModel::m_flux
std::shared_ptr< FlexibleModelFittingParameter > m_flux
Definition:
FlexibleModelFittingModel.h:106
SourceXtractor::FlexibleModelFittingPointModel::FlexibleModelFittingPointModel
FlexibleModelFittingPointModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux)
Definition:
FlexibleModelFittingModel.h:56
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:92
SourceXtractor::FlexibleModelFittingSersicModel::m_flux
std::shared_ptr< FlexibleModelFittingParameter > m_flux
Definition:
FlexibleModelFittingModel.h:178
SourceXtractor::FlexibleModelFittingDevaucouleursModel::m_y
std::shared_ptr< FlexibleModelFittingParameter > m_y
Definition:
FlexibleModelFittingModel.h:140
SourceXtractor::FlexibleModelFittingPointModel::~FlexibleModelFittingPointModel
virtual ~FlexibleModelFittingPointModel()
Definition:
FlexibleModelFittingModel.h:61
SourceXtractor::FlexibleModelFittingDevaucouleursModel::~FlexibleModelFittingDevaucouleursModel
virtual ~FlexibleModelFittingDevaucouleursModel()
Definition:
FlexibleModelFittingModel.h:127
SourceXtractor::FlexibleModelFittingSersicModel::m_aspect_ratio
std::shared_ptr< FlexibleModelFittingParameter > m_aspect_ratio
Definition:
FlexibleModelFittingModel.h:181
SourceXtractor::FlexibleModelFittingDevaucouleursModel::addForSource
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
Definition:
FlexibleModelFittingModel.cpp:145
SourceXtractor::FlexibleModelFittingConstantModel::FlexibleModelFittingConstantModel
FlexibleModelFittingConstantModel(std::shared_ptr< FlexibleModelFittingParameter > value)
Definition:
FlexibleModelFittingModel.h:187
SourceXtractor::FlexibleModelFittingModel
Definition:
FlexibleModelFittingModel.h:38
SourceXtractor::FlexibleModelFittingParameterManager
Definition:
FlexibleModelFittingParameterManager.h:43
SourceXtractor::FlexibleModelFittingConstantModel::addForSource
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
Definition:
FlexibleModelFittingModel.cpp:241
SourceXtractor::FlexibleModelFittingExponentialModel::m_aspect_ratio
std::shared_ptr< FlexibleModelFittingParameter > m_aspect_ratio
Definition:
FlexibleModelFittingModel.h:108
SourceXtractor::FlexibleModelFittingSersicModel::m_y
std::shared_ptr< FlexibleModelFittingParameter > m_y
Definition:
FlexibleModelFittingModel.h:177
SourceXtractor::PixelCoordinate
A pixel coordinate made of two integers m_x and m_y.
Definition:
PixelCoordinate.h:37
SourceXtractor::FlexibleModelFittingPointModel::m_y
std::shared_ptr< FlexibleModelFittingParameter > m_y
Definition:
FlexibleModelFittingModel.h:73
std::tuple< double, double, double, double >
SourceXtractor::FlexibleModelFittingSersicModel::m_effective_radius
std::shared_ptr< FlexibleModelFittingParameter > m_effective_radius
Definition:
FlexibleModelFittingModel.h:180
SourceXtractor::FlexibleModelFittingExponentialModel::~FlexibleModelFittingExponentialModel
virtual ~FlexibleModelFittingExponentialModel()
Definition:
FlexibleModelFittingModel.h:92
SourceXtractor::FlexibleModelFittingSersicModel::m_sersic_index
std::shared_ptr< FlexibleModelFittingParameter > m_sersic_index
Definition:
FlexibleModelFittingModel.h:179
SourceXtractor::FlexibleModelFittingModel::addForSource
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const =0
SourceInterface.h
CoordinateSystem.h
SourceXtractor::FlexibleModelFittingExponentialModel::m_effective_radius
std::shared_ptr< FlexibleModelFittingParameter > m_effective_radius
Definition:
FlexibleModelFittingModel.h:107
std::vector< ModelFitting::ConstantModel >
SourceXtractor::FlexibleModelFittingPointModel::m_flux
std::shared_ptr< FlexibleModelFittingParameter > m_flux
Definition:
FlexibleModelFittingModel.h:74
SourceXtractor::FlexibleModelFittingExponentialModel::FlexibleModelFittingExponentialModel
FlexibleModelFittingExponentialModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux, std::shared_ptr< FlexibleModelFittingParameter > effective_radius, std::shared_ptr< FlexibleModelFittingParameter > aspect_ratio, std::shared_ptr< FlexibleModelFittingParameter > angle)
Definition:
FlexibleModelFittingModel.h:79
SourceXtractor::FlexibleModelFittingDevaucouleursModel::m_aspect_ratio
std::shared_ptr< FlexibleModelFittingParameter > m_aspect_ratio
Definition:
FlexibleModelFittingModel.h:143
SourceXtractor::FlexibleModelFittingDevaucouleursModel::m_flux
std::shared_ptr< FlexibleModelFittingParameter > m_flux
Definition:
FlexibleModelFittingModel.h:141
ConstantModel.h
SourceXtractor::FlexibleModelFittingConstantModel::~FlexibleModelFittingConstantModel
virtual ~FlexibleModelFittingConstantModel()
Definition:
FlexibleModelFittingModel.h:190
SourceXtractor::FlexibleModelFittingSersicModel::m_angle
std::shared_ptr< FlexibleModelFittingParameter > m_angle
Definition:
FlexibleModelFittingModel.h:182
SourceXtractor::FlexibleModelFittingSersicModel
Definition:
FlexibleModelFittingModel.h:147
SourceXtractor::FlexibleModelFittingExponentialModel
Definition:
FlexibleModelFittingModel.h:77
SourceXtractor::FlexibleModelFittingDevaucouleursModel::FlexibleModelFittingDevaucouleursModel
FlexibleModelFittingDevaucouleursModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux, std::shared_ptr< FlexibleModelFittingParameter > effective_radius, std::shared_ptr< FlexibleModelFittingParameter > aspect_ratio, std::shared_ptr< FlexibleModelFittingParameter > angle)
Definition:
FlexibleModelFittingModel.h:114
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
SourceXtractor::FlexibleModelFittingSersicModel::~FlexibleModelFittingSersicModel
virtual ~FlexibleModelFittingSersicModel()
Definition:
FlexibleModelFittingModel.h:164
SourceXtractor::FlexibleModelFittingExponentialModel::addForSource
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
Definition:
FlexibleModelFittingModel.cpp:98
SourceXtractor::FlexibleModelFittingSersicModel::FlexibleModelFittingSersicModel
FlexibleModelFittingSersicModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux, std::shared_ptr< FlexibleModelFittingParameter > sersic_index, std::shared_ptr< FlexibleModelFittingParameter > effective_radius, std::shared_ptr< FlexibleModelFittingParameter > aspect_ratio, std::shared_ptr< FlexibleModelFittingParameter > angle)
Definition:
FlexibleModelFittingModel.h:149
SourceXtractor::FlexibleModelFittingModel::~FlexibleModelFittingModel
virtual ~FlexibleModelFittingModel()
Definition:
FlexibleModelFittingModel.h:40
SourceXtractor::FlexibleModelFittingConstantModel
Definition:
FlexibleModelFittingModel.h:185
SourceXtractor::FlexibleModelFittingSersicModel::addForSource
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
Definition:
FlexibleModelFittingModel.cpp:198
Generated by
1.8.5