lsst.shapelet
gc794cbe0cf+cb1993dea9
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
shapelet
RadialProfile.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* Copyright 2008-2014 LSST Corporation.
5
*
6
* This product includes software developed by the
7
* LSST Project (http://www.lsst.org/).
8
*
9
* This program is free software: you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation, either version 3 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the LSST License Statement and
20
* the GNU General Public License along with this program. If not,
21
* see <http://www.lsstcorp.org/LegalNotices/>.
22
*/
23
24
#ifndef LSST_SHAPELET_RadialProfile_h_INCLUDED
25
#define LSST_SHAPELET_RadialProfile_h_INCLUDED
26
27
#include <map>
28
29
#include "
lsst/shapelet/MultiShapeletBasis.h
"
30
31
namespace
lsst
{
namespace
shapelet
{
32
60
class
RadialProfile
{
61
public
:
62
69
static
RadialProfile
&
get
(
std::string
const
& name);
70
72
std::string
const
getName
()
const
{
return
_name; }
73
79
virtual
double
evaluate
(
double
r)
const
= 0;
80
86
ndarray::Array<double,1,1>
evaluate
(ndarray::Array<double const,1,1>
const
& r)
const
;
87
89
double
getMomentsRadiusFactor
()
const
{
return
_momentsRadiusFactor
; }
90
107
std::shared_ptr<MultiShapeletBasis>
getBasis
(
int
nComponents,
int
maxRadius=0)
const
;
108
112
void
registerBasis
(
std::shared_ptr<MultiShapeletBasis>
basis,
int
nComponents,
int
maxRadius);
113
114
protected
:
115
116
explicit
RadialProfile
(
std::string
const
& name,
int
defaultMaxRadius);
117
118
double
_momentsRadiusFactor
;
119
120
private
:
121
122
typedef
std::map<std::pair<int,int>
,
std::shared_ptr<MultiShapeletBasis>
> BasisRegistry;
123
124
std::string
const
_name;
125
int
_defaultMaxRadius;
126
BasisRegistry _basisRegistry;
127
};
128
129
}}
// namespace lsst::shapelet
130
131
#endif
// !LSST_SHAPELET_RadialProfile_h_INCLUDED
MultiShapeletBasis.h
std::string
lsst::shapelet::RadialProfile::RadialProfile
RadialProfile(std::string const &name, int defaultMaxRadius)
lsst::shapelet::RadialProfile::registerBasis
void registerBasis(std::shared_ptr< MultiShapeletBasis > basis, int nComponents, int maxRadius)
Register a basis with the profile, making it available to callers of getBasis().
lsst::shapelet::RadialProfile::getName
std::string const getName() const
Return the name of the profile.
Definition
RadialProfile.h:72
lsst::shapelet::RadialProfile::get
static RadialProfile & get(std::string const &name)
Return a predefined radial profile given its name.
lsst::shapelet::RadialProfile::evaluate
virtual double evaluate(double r) const =0
Evaluate the profile at the given radius.
lsst::shapelet::RadialProfile::getBasis
std::shared_ptr< MultiShapeletBasis > getBasis(int nComponents, int maxRadius=0) const
Return a multi-Gaussian approximation to the radial profile.
lsst::shapelet::RadialProfile::_momentsRadiusFactor
double _momentsRadiusFactor
Definition
RadialProfile.h:118
lsst::shapelet::RadialProfile::getMomentsRadiusFactor
double getMomentsRadiusFactor() const
Return the 2nd-moment radius in units of the half-light radius.
Definition
RadialProfile.h:89
lsst::shapelet::RadialProfile::evaluate
ndarray::Array< double, 1, 1 > evaluate(ndarray::Array< double const, 1, 1 > const &r) const
Evaluate the profile at the given radius (vectorized).
std::map
lsst::shapelet
Definition
BasisEvaluator.h:37
lsst
std::shared_ptr
Generated on
for lsst.shapelet by
1.17.0