LSST Applications g04e9c324dd+8c5ae1fdc5,g0644efc3f0+366663dc37,g123d84c11c+8c5ae1fdc5,g1ec0fe41b4+6ec6b74de1,g1fd858c14a+1be88e80db,g3533f9d6cb+366663dc37,g35bb328faa+8c5ae1fdc5,g35ef7ab7cf+285dd5b202,g53246c7159+8c5ae1fdc5,g60b5630c4e+366663dc37,g663da51e9b+41529343ca,g6735e52a0d+29de3d959a,g67b6fd64d1+57193d00fb,g7605de067c+8f72e4d2dc,g78460c75b0+7e33a9eb6d,g786e29fd12+668abc6043,g844c57033c+03ddc13274,g8852436030+e345a59dd4,g89139ef638+57193d00fb,g989de1cb63+57193d00fb,g9a0bdda227+852181cf57,g9f33ca652e+a2d35689ce,ga1e959baac+5fbc491aed,ga2f891cd6c+366663dc37,gabe3b4be73+8856018cbb,gabf8522325+cc757f8247,gac2eed3f23+57193d00fb,gb1101e3267+f6b489998a,gb89ab40317+57193d00fb,gcf25f946ba+e345a59dd4,gd107969129+227687db21,gd6cbbdb0b4+8e46defd2a,gde0f65d7ad+2dad650f79,ge278dab8ac+2322f1d6ea,ge410e46f29+57193d00fb,gf30d85a44d+8e3077faf9,gf5e32f922b+8c5ae1fdc5,gff02db199a+5c78c1866e,w.2025.28
LSST Data Management Base Package
Loading...
Searching...
No Matches
parameters.h
Go to the documentation of this file.
1//
2// Created by dtaranu on 4/8/21.
3//
4
5#ifndef LSST_GAUSS2D_FIT_PARAMETERS_H
6#define LSST_GAUSS2D_FIT_PARAMETERS_H
7
8#include <cfloat>
9#include <iostream>
10
12
14
15namespace lsst::gauss2d::fit {
16
17class UnitNone : public parameters::Unit {
18public:
19 std::string get_name() const override {
20 static const std::string name_none = "None";
21 return name_none;
22 }
23};
24
25static const UnitNone unit_none{};
26
29 virtual double get_size() const = 0;
30 virtual void set_size(double size) = 0;
31
32 virtual ~SizeParameterD() = default;
33};
34
36 virtual ~SizeXParameterD() = default;
37};
38
40 virtual ~SizeYParameterD() = default;
41};
42
43template <typename T>
45
46struct CentroidXParameterD : public Param<CentroidXParameterD> {
47 static inline const std::string _desc = "Centroid (x)";
48 static inline const std::string _name = "cen_x";
50};
51
52struct CentroidYParameterD : public Param<CentroidYParameterD> {
53 static inline const std::string _desc = "Centroid (y)";
54 static inline const std::string _name = "cen_y";
56};
57
58struct IntegralParameterD : public Param<IntegralParameterD> {
59public:
60 static inline const bool _linear = true;
61 static inline constexpr double _min = 0.;
62 static inline const std::string _desc = "Gaussian integral (total integrated weight/flux)";
63 static inline const std::string _name = "integral";
65};
66
67struct MeanParameterD : public Param<MeanParameterD> {
68 static inline const std::string _desc = "Gaussian (1D normal) mean";
69 static inline const std::string _name = "mean";
71};
72
73struct MoffatConcentrationParameterD : public Param<MoffatConcentrationParameterD> {
74 static inline constexpr double _min = 1.;
75 static inline constexpr double _default = 2.5;
76 static inline const std::string _desc = "Moffat concentration (beta)";
77 static inline const std::string _name = "con_moffat";
79};
80
81struct ProperFractionParameterD : public Param<ProperFractionParameterD> {
82public:
83 static inline constexpr double _min = 0.;
84 static inline constexpr double _max = 1.;
85 static inline const std::string _desc = "Proper fraction (0 <= x <= 1)";
86 static inline const std::string _name = "proper_fraction";
88};
89
91struct RadiusScaleParameterD : public Param<RadiusScaleParameterD> {
92 static inline constexpr double _min = 0.;
93 static inline constexpr double _default = 1.;
94 static inline const std::string _desc = "Scale radius";
95 static inline const std::string _name = "r_scale";
97};
98
99struct ReffXParameterD : public Param<ReffXParameterD>, SizeXParameterD {
100 double get_size() const override { return this->get_value(); }
101 void set_size(double size) override { this->set_value(size); }
102
103 static inline constexpr double _min = 0.;
104 static inline const std::string _desc = "Sersic effective radius (x)";
105 static inline const std::string _name = "reff_x";
107};
108
109struct ReffYParameterD : public Param<ReffYParameterD>, SizeYParameterD {
110 double get_size() const override { return this->get_value(); }
111 void set_size(double size) override { this->set_value(size); }
112
113 static inline constexpr double _min = 0.;
114 static inline const std::string _desc = "Sersic effective radius (y)";
115 static inline const std::string _name = "reff_y";
117};
118
119struct RhoParameterD : public Param<RhoParameterD> {
120 static inline constexpr double _min = -1.;
121 static inline constexpr double _default = 0.;
122 static inline constexpr double _max = 1.;
123 static inline const std::string _desc = "Gaussian correlation (rho)";
124 static inline const std::string _name = "rho";
126};
127
128struct SersicIndexParameterD : public Param<SersicIndexParameterD> {
129 static inline constexpr double _min = 0.;
130 static inline constexpr double _default = 0.5;
131 static inline const std::string _desc = "Sersic index";
132 static inline const std::string _name = "n_ser";
134};
135
136struct SigmaXParameterD : public Param<SigmaXParameterD>, SizeXParameterD {
137 double get_size() const override { return this->get_value(); }
138 void set_size(double size) override { this->set_value(size); }
139
140 static inline constexpr double _min = 0.;
141 static inline const std::string _desc = "Gaussian sigma (x)";
142 static inline const std::string _name = "sigma_x";
144};
145
146struct SigmaYParameterD : public Param<SigmaYParameterD>, SizeYParameterD {
147 double get_size() const override { return this->get_value(); }
148 void set_size(double size) override { this->set_value(size); }
149
150 static inline constexpr double _min = 0.;
151 static inline const std::string _desc = "Gaussian sigma (y)";
152 static inline const std::string _name = "sigma_y";
154};
155
156struct StdDevParameterD : public Param<StdDevParameterD> {
157 static inline constexpr double _min = 0.;
158 static inline constexpr double _default = 1.0;
159 static inline const std::string _desc = "Gaussian (1D normal) standard deviation (sigma)";
160 static inline const std::string _name = "stddev";
162};
163
164} // namespace lsst::gauss2d::fit
165
166#endif // LSST_GAUSS2D_FIT_PARAMETERS_H
std::string get_name() const override
Return a string representation of this unit.
Definition parameters.h:19
A parameter with values and metadata.
Definition parameter.h:150
Parameter(double value=_get_default(), std::shared_ptr< const Limits< double > > limits=nullptr, const std::shared_ptr< const Transform< double > > transform=nullptr, std::shared_ptr< const Unit > unit=nullptr, bool fixed=false, std::string label="")
Definition parameter.h:343
A generic interface for physical units described by strings.
Definition unit.h:35
parameters::Parameter< double, T > Param
Definition parameters.h:44
static const std::string _desc
Definition parameters.h:47
static const std::string _name
Definition parameters.h:48
static const std::string _name
Definition parameters.h:54
static const std::string _desc
Definition parameters.h:53
static const std::string _desc
Definition parameters.h:62
static const std::string _name
Definition parameters.h:63
static const std::string _desc
Definition parameters.h:68
static const std::string _name
Definition parameters.h:69
A generic scale radius, for profiles without specific names like "effective radius".
Definition parameters.h:91
double get_size() const override
Definition parameters.h:100
static const std::string _desc
Definition parameters.h:104
static const std::string _name
Definition parameters.h:105
static constexpr double _min
Definition parameters.h:103
void set_size(double size) override
Definition parameters.h:101
void set_size(double size) override
Definition parameters.h:111
static const std::string _name
Definition parameters.h:115
static constexpr double _min
Definition parameters.h:113
static const std::string _desc
Definition parameters.h:114
double get_size() const override
Definition parameters.h:110
static constexpr double _min
Definition parameters.h:120
static constexpr double _max
Definition parameters.h:122
static const std::string _name
Definition parameters.h:124
static const std::string _desc
Definition parameters.h:123
static constexpr double _default
Definition parameters.h:121
double get_size() const override
Definition parameters.h:137
static constexpr double _min
Definition parameters.h:140
static const std::string _name
Definition parameters.h:142
void set_size(double size) override
Definition parameters.h:138
static const std::string _desc
Definition parameters.h:141
static const std::string _desc
Definition parameters.h:151
void set_size(double size) override
Definition parameters.h:148
double get_size() const override
Definition parameters.h:147
static constexpr double _min
Definition parameters.h:150
static const std::string _name
Definition parameters.h:152
A Parameter representing a size (i.e. a physical length)
Definition parameters.h:28
virtual void set_size(double size)=0
virtual double get_size() const =0
static constexpr double _default
Definition parameters.h:158
static constexpr double _min
Definition parameters.h:157
static const std::string _desc
Definition parameters.h:159
static const std::string _name
Definition parameters.h:160