LSST Applications 29.2.0,g04e9c324dd+8c5ae1fdc5,g123d84c11c+8c5ae1fdc5,g1567b3d500+b0659b51fd,g1fd858c14a+f0198063e6,g262e1987ae+ddad5971a2,g29a0cc5914+9941618539,g29ae962dfc+65771b1219,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+65596d926d,g47891489e3+f62ff855a3,g4d44eb3520+5e59dfe5df,g53246c7159+8c5ae1fdc5,g667e5db04e+cf951d6fc1,g67b6fd64d1+f62ff855a3,g67fd3c3899+c3deb07ab9,g74acd417e5+29806445f4,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g89139ef638+f62ff855a3,g8d7436a09f+1e696a951a,g8ea07a8fe4+72e50bfcbe,g90f42f885a+232124b352,g97be763408+27a7069373,g9dd6db0277+c3deb07ab9,ga1e959baac+5fbc491aed,ga2a72113ab+fe106acc69,gabf8522325+f227d7ba3a,gac2eed3f23+f62ff855a3,gb89ab40317+f62ff855a3,gceab9eb81a+45f7d1ed17,gd14cc1c8cb+796e414499,gd8ff7fe66e+c3deb07ab9,gdab6d2f7ff+29806445f4,gdc713202bf+c3deb07ab9,ge410e46f29+f62ff855a3,geaed405ab2+2322f1d6ea,gffca2db377+8c5ae1fdc5
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