lsst.gauss2d.fit
g199a45376c+7362695278
Toggle main menu visibility
Loading...
Searching...
No Matches
parameters.h
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
11
#include "lsst/modelfit/parameters.h"
12
13
namespace
parameters = lsst::modelfit::parameters;
14
15
namespace
lsst::gauss2d::fit {
16
17
class
UnitNone
:
public
parameters::Unit {
18
public
:
19
std::string get_name()
const override
{
20
static
const
std::string name_none =
"None"
;
21
return
name_none;
22
}
23
};
24
25
static
const
UnitNone
unit_none{};
26
28
struct
SizeParameterD
{
29
virtual
double
get_size()
const
= 0;
30
virtual
void
set_size(
double
size) = 0;
31
32
virtual
~SizeParameterD
() =
default
;
33
};
34
35
struct
SizeXParameterD
:
public
SizeParameterD
{
36
virtual
~SizeXParameterD
() =
default
;
37
};
38
39
struct
SizeYParameterD
:
public
SizeParameterD
{
40
virtual
~SizeYParameterD
() =
default
;
41
};
42
43
template
<
typename
T>
44
using
Param = parameters::Parameter<double, T>;
45
46
struct
CentroidXParameterD
:
public
Param<CentroidXParameterD> {
47
static
inline
const
std::string _desc =
"Centroid (x)"
;
48
static
inline
const
std::string _name =
"cen_x"
;
49
using
Param<
CentroidXParameterD
>::Parameter;
50
};
51
52
struct
CentroidYParameterD
:
public
Param<CentroidYParameterD> {
53
static
inline
const
std::string _desc =
"Centroid (y)"
;
54
static
inline
const
std::string _name =
"cen_y"
;
55
using
Param<
CentroidYParameterD
>::Parameter;
56
};
57
58
struct
IntegralParameterD
:
public
Param<IntegralParameterD> {
59
public
:
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"
;
64
using
Param<
IntegralParameterD
>::Parameter;
65
};
66
67
struct
MeanParameterD
:
public
Param<MeanParameterD> {
68
static
inline
const
std::string _desc =
"Gaussian (1D normal) mean"
;
69
static
inline
const
std::string _name =
"mean"
;
70
using
Param<
MeanParameterD
>::Parameter;
71
};
72
73
struct
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"
;
78
using
Param<
MoffatConcentrationParameterD
>::Parameter;
79
};
80
81
struct
ProperFractionParameterD
:
public
Param<ProperFractionParameterD> {
82
public
:
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"
;
87
using
Param<
ProperFractionParameterD
>::Parameter;
88
};
89
91
struct
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"
;
96
using
Param<
RadiusScaleParameterD
>::Parameter;
97
};
98
99
struct
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"
;
106
using
Param<
ReffXParameterD
>::Parameter;
107
};
108
109
struct
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"
;
116
using
Param<
ReffYParameterD
>::Parameter;
117
};
118
119
struct
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"
;
125
using
Param<
RhoParameterD
>::Parameter;
126
};
127
128
struct
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"
;
133
using
Param<
SersicIndexParameterD
>::Parameter;
134
};
135
136
struct
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"
;
143
using
Param<
SigmaXParameterD
>::Parameter;
144
};
145
146
struct
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"
;
153
using
Param<
SigmaYParameterD
>::Parameter;
154
};
155
156
struct
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"
;
161
using
Param<
StdDevParameterD
>::Parameter;
162
};
163
164
}
// namespace lsst::gauss2d::fit
165
166
#endif
// LSST_GAUSS2D_FIT_PARAMETERS_H
lsst::gauss2d::fit::UnitNone
Definition
parameters.h:17
lsst::gauss2d::fit::CentroidXParameterD
Definition
parameters.h:46
lsst::gauss2d::fit::CentroidYParameterD
Definition
parameters.h:52
lsst::gauss2d::fit::IntegralParameterD
Definition
parameters.h:58
lsst::gauss2d::fit::MeanParameterD
Definition
parameters.h:67
lsst::gauss2d::fit::MoffatConcentrationParameterD
Definition
parameters.h:73
lsst::gauss2d::fit::ProperFractionParameterD
Definition
parameters.h:81
lsst::gauss2d::fit::RadiusScaleParameterD
A generic scale radius, for profiles without specific names like "effective radius".
Definition
parameters.h:91
lsst::gauss2d::fit::ReffXParameterD
Definition
parameters.h:99
lsst::gauss2d::fit::ReffYParameterD
Definition
parameters.h:109
lsst::gauss2d::fit::RhoParameterD
Definition
parameters.h:119
lsst::gauss2d::fit::SersicIndexParameterD
Definition
parameters.h:128
lsst::gauss2d::fit::SigmaXParameterD
Definition
parameters.h:136
lsst::gauss2d::fit::SigmaYParameterD
Definition
parameters.h:146
lsst::gauss2d::fit::SizeParameterD
A Parameter representing a size (i.e. a physical length).
Definition
parameters.h:28
lsst::gauss2d::fit::SizeXParameterD
Definition
parameters.h:35
lsst::gauss2d::fit::SizeYParameterD
Definition
parameters.h:39
lsst::gauss2d::fit::StdDevParameterD
Definition
parameters.h:156
include
lsst
gauss2d
fit
parameters.h
Generated by
1.17.0