lsst.gauss2d.fit
g199a45376c+7362695278
Toggle main menu visibility
Loading...
Searching...
No Matches
shapeprior.h
1
#ifndef LSST_GAUSS2D_FIT_SHAPEPRIOR_H
2
#define LSST_GAUSS2D_FIT_SHAPEPRIOR_H
3
4
#include <memory>
5
6
#include "lsst/gauss2d/object.h"
7
8
#include "parametricellipse.h"
9
#include "parametricgaussian1d.h"
10
#include "prior.h"
11
#include "transforms.h"
12
13
namespace
lsst::gauss2d::fit {
14
18
class
ShapePriorOptions
:
public
Object {
19
public
:
20
static
inline
const
double
delta_jacobian_default = 1e-5;
21
static
inline
const
double
size_maj_floor_default = 1e-3;
22
static
inline
const
double
axrat_floor_default = 1e-3;
23
31
explicit
ShapePriorOptions
(
double
delta_jacobian = delta_jacobian_default,
32
double
size_maj_floor = size_maj_floor_default,
33
double
axrat_floor = axrat_floor_default);
34
35
bool
check_delta_jacobian(
double
delta_jacobian,
bool
do_throw =
false
);
36
bool
check_size_maj_floor(
double
size_maj_floor,
bool
do_throw =
false
);
37
bool
check_axrat_floor(
double
axrat_floor,
bool
do_throw =
false
);
38
39
double
get_delta_jacobian()
const
;
40
double
get_size_maj_floor()
const
;
41
double
get_axrat_floor()
const
;
42
43
void
set_delta_jacobian(
double
delta_jacobian);
44
void
set_size_maj_floor(
double
size_maj_floor);
45
void
set_axrat_floor(
double
axrat_floor);
46
47
std::string repr(
bool
name_keywords =
false
,
48
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR)
const override
;
49
std::string str()
const override
;
50
51
private
:
52
double
_delta_jacobian;
53
double
_size_maj_floor;
54
double
_axrat_floor;
55
};
56
63
class
ShapePrior
:
public
Prior
{
64
public
:
72
explicit
ShapePrior
(std::shared_ptr<const ParametricEllipse> ellipse,
73
std::shared_ptr<ParametricGaussian1D> prior_size =
nullptr
,
74
std::shared_ptr<ParametricGaussian1D> prior_axrat =
nullptr
,
75
std::shared_ptr<ShapePriorOptions> options =
nullptr
);
76
~ShapePrior
();
77
78
PriorEvaluation
evaluate
(
bool
calc_jacobians =
false
,
bool
normalize_loglike =
false
)
const override
;
79
80
std::shared_ptr<ParametricGaussian1D> get_prior_size()
const
;
81
std::shared_ptr<ParametricGaussian1D> get_prior_axrat()
const
;
82
83
std::vector<double>
get_loglike_const_terms
()
const override
;
84
85
void
set_prior_size(std::shared_ptr<ParametricGaussian1D> prior_size);
86
void
set_prior_axrat(std::shared_ptr<ParametricGaussian1D> prior_axrat);
87
88
size_t
size()
const override
;
89
90
std::string repr(
bool
name_keywords =
false
,
91
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR)
const override
;
92
std::string str()
const override
;
93
94
private
:
95
std::shared_ptr<const ParametricEllipse> _ellipse;
96
std::shared_ptr<ParametricGaussian1D> _prior_size;
97
std::shared_ptr<ParametricGaussian1D> _prior_axrat;
98
std::shared_ptr<ShapePriorOptions> _options;
99
};
100
}
// namespace lsst::gauss2d::fit
101
102
#endif
lsst::gauss2d::fit::PriorEvaluation
Definition
prior.h:16
lsst::gauss2d::fit::Prior
Definition
prior.h:38
lsst::gauss2d::fit::ShapePrior::evaluate
PriorEvaluation evaluate(bool calc_jacobians=false, bool normalize_loglike=false) const override
Definition
shapeprior.cc:127
lsst::gauss2d::fit::ShapePrior::ShapePrior
ShapePrior(std::shared_ptr< const ParametricEllipse > ellipse, std::shared_ptr< ParametricGaussian1D > prior_size=nullptr, std::shared_ptr< ParametricGaussian1D > prior_axrat=nullptr, std::shared_ptr< ShapePriorOptions > options=nullptr)
Definition
shapeprior.cc:109
lsst::gauss2d::fit::ShapePrior::get_loglike_const_terms
std::vector< double > get_loglike_const_terms() const override
Return the constant terms of the log likelihood (dependent on stddevs only).
Definition
shapeprior.cc:225
lsst::gauss2d::fit::ShapePriorOptions::ShapePriorOptions
ShapePriorOptions(double delta_jacobian=delta_jacobian_default, double size_maj_floor=size_maj_floor_default, double axrat_floor=axrat_floor_default)
Definition
shapeprior.cc:35
include
lsst
gauss2d
fit
shapeprior.h
Generated by
1.17.0