lsst.gauss2d.fit g199a45376c+3b7b3fd841
 
Loading...
Searching...
No Matches
sersicparametricellipse.h
1#ifndef LSST_GAUSS2D_FIT_SERSICPARAMETRICELLIPSE_H
2#define LSST_GAUSS2D_FIT_SERSICPARAMETRICELLIPSE_H
3
4#include <memory>
5
6#include "lsst/gauss2d/ellipse.h"
7
8#include "parameters.h"
9#include "parametricellipse.h"
10
11namespace lsst::gauss2d::fit {
16public:
24 explicit SersicParametricEllipse(std::shared_ptr<ReffXParameterD> size_x,
25 std::shared_ptr<ReffYParameterD> size_y,
26 std::shared_ptr<RhoParameterD> rho = nullptr);
27 explicit SersicParametricEllipse(double size_x = 0, double size_y = 0, double rho = 0);
28
29 ParamRefs& get_parameters(ParamRefs& params, ParamFilter* filter = nullptr) const override;
30 ParamCRefs& get_parameters_const(ParamCRefs& params, ParamFilter* filter = nullptr) const override;
31
32 double get_rho() const override;
33 double get_size_x() const override;
34 double get_size_y() const override;
35 std::array<double, 3> get_xyr() const override;
36
37 RhoParameterD& get_rho_param() const override;
38 SizeXParameterD& get_size_x_param() const override;
39 SizeYParameterD& get_size_y_param() const override;
40
41 std::shared_ptr<ReffXParameterD> get_reff_x_param_ptr();
42 std::shared_ptr<ReffYParameterD> get_reff_y_param_ptr();
43 std::shared_ptr<RhoParameterD> get_rho_param_ptr() override;
44 std::shared_ptr<SizeXParameterD> get_size_x_param_ptr() override;
45 std::shared_ptr<SizeYParameterD> get_size_y_param_ptr() override;
46
47 void set_rho(double rho) override;
48 void set_size_x(double size_x) override;
49 void set_size_y(double size_y) override;
50
51 std::string repr(bool name_keywords = false,
52 std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR) const override;
53 std::string str() const override;
54
55private:
56 std::shared_ptr<ReffXParameterD> _size_x;
57 std::shared_ptr<ReffYParameterD> _size_y;
58 std::shared_ptr<RhoParameterD> _rho;
59};
60} // namespace lsst::gauss2d::fit
61
62#endif
Definition parametricellipse.h:36
double get_rho() const override
Get the rho value.
Definition sersicparametricellipse.cc:33
SersicParametricEllipse(std::shared_ptr< ReffXParameterD > size_x, std::shared_ptr< ReffYParameterD > size_y, std::shared_ptr< RhoParameterD > rho=nullptr)
Definition sersicparametricellipse.cc:14
double get_size_y() const override
Get the size_y value.
Definition sersicparametricellipse.cc:35
double get_size_x() const override
Get the size_x value.
Definition sersicparametricellipse.cc:34
ParamRefs & get_parameters(ParamRefs &params, ParamFilter *filter=nullptr) const override
Definition sersicparametricellipse.cc:26
std::array< double, 3 > get_xyr() const override
Get the array of size_x, size_y, rho.
Definition sersicparametricellipse.cc:36
ParamCRefs & get_parameters_const(ParamCRefs &params, ParamFilter *filter=nullptr) const override
Same as get_parameters(), but for const refs.
Definition sersicparametricellipse.cc:29
Definition param_filter.h:17
Definition parameters.h:119
Definition parameters.h:35
Definition parameters.h:39