LSST Applications g1653933729+34a971ddd9,g1a997c3884+34a971ddd9,g2160c40384+da0d0eec6b,g28da252d5a+1236b942f7,g2bbee38e9b+e5a1bc5b38,g2bc492864f+e5a1bc5b38,g2ca4be77d2+192fe503f0,g2cdde0e794+704103fe75,g3156d2b45e+6e87dc994a,g347aa1857d+e5a1bc5b38,g35bb328faa+34a971ddd9,g3a166c0a6a+e5a1bc5b38,g3e281a1b8c+8ec26ec694,g4005a62e65+ba0306790b,g414038480c+9f5be647b3,g41af890bb2+c3a10c924f,g5065538af8+e7237db731,g5a0bb5165c+eae055db26,g717e5f8c0f+b65b5c3ae4,g80478fca09+4ce5a07937,g82479be7b0+08790af60f,g858d7b2824+b65b5c3ae4,g9125e01d80+34a971ddd9,ga5288a1d22+5df949a35e,gae0086650b+34a971ddd9,gb58c049af0+ace264a4f2,gbd397ab92a+2141afb137,gc28159a63d+e5a1bc5b38,gc805d3fbd4+b65b5c3ae4,gcf0d15dbbd+97632ccc20,gd6b7c0dfd1+de826e8718,gda6a2b7d83+97632ccc20,gdaeeff99f8+7774323b41,ge2409df99d+e6cadbf968,ge33fd446bb+b65b5c3ae4,ge79ae78c31+e5a1bc5b38,gf0baf85859+890af219f9,gf5289d68f6+a27069ed62,w.2024.37
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(T value=_get_default(), std::shared_ptr< const Limits< T > > limits=nullptr, const std::shared_ptr< const Transform< T > > transform=nullptr, std::shared_ptr< const Unit > unit=nullptr, bool fixed=false, std::string label="")
Initialize a Parameter.
Definition parameter.h:343
T get_value() const override
Return the untransformed value of this parameter instance.
Definition parameter.h:256
void set_value(T value) override
Set the untransformed value for this parameter instance.
Definition parameter.h:297
A generic interface for physical units described by strings.
Definition unit.h:35
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