24 #ifndef LSST_MEAS_MODELFIT_Model_h_INCLUDED
25 #define LSST_MEAS_MODELFIT_Model_h_INCLUDED
29 #include "lsst/base.h"
30 #include "lsst/afw/geom/ellipses/Ellipse.h"
31 #include "lsst/shapelet/MultiShapeletBasis.h"
34 namespace lsst {
namespace meas {
namespace modelfit {
66 typedef std::vector<PTR(shapelet::MultiShapeletBasis)>
BasisVector;
149 ndarray::Array<Scalar const,1,1>
const & nonlinear,
150 ndarray::Array<Scalar const,1,1>
const & amplitudes,
151 ndarray::Array<Scalar const,1,1>
const & fixed
216 ndarray::Array<
Scalar const,1,1> const & nonlinear,
217 ndarray::Array<
Scalar const,1,1> const & fixed
232 ndarray::Array<
Scalar,1,1> const & nonlinear,
233 ndarray::Array<Scalar,1,1> const & fixed
246 ndarray::Array<Scalar,1,1> const & nonlinear,
247 ndarray::Array<Scalar,1,1> const & amplitudes,
248 ndarray::Array<Scalar,1,1> const & fixed
279 #endif // !LSST_MEAS_MODELFIT_Model_h_INCLUDED
shapelet::MultiShapeletFunction makeShapeletFunction(ndarray::Array< Scalar const, 1, 1 > const &nonlinear, ndarray::Array< Scalar const, 1, 1 > const &litudes, ndarray::Array< Scalar const, 1, 1 > const &fixed) const
Create a MultiShapeletFunction object from a set of parameter vectors.
virtual EllipseVector makeEllipseVector() const =0
Return an uninitialized vector of afw::geom::ellipses::Ellipse with the parametrization expected by r...
int getBasisCount() const
Return the number of MultiShapeletBasis objects (equivalently, the number of ellipses) ...
double Scalar
Typedefs to be used for probability and parameter values.
NameVector const & getAmplitudeNames() const
Return the names of the amplitude parameters.
std::vector< boost::shared_ptr< Model > > ModelVector
virtual boost::shared_ptr< Prior > adaptPrior(boost::shared_ptr< Prior > prior) const =0
Given an arbitrary prior, return one compatible with this Model or throw LogicError.
NameVector const & getFixedNames() const
Return the names of the fixed nonlinear parameters.
Abstract base class and concrete factories that define multi-shapelet galaxy models.
int getFixedDim() const
Return the number of fixed nonlinear parameters.
static boost::shared_ptr< Model > make(BasisVector basisVector, NameVector const &prefixes, CenterEnum center)
Construct a concrete Model instance with multiple ellipses and multishapelet bases.
std::vector< std::string > NameVector
std::vector< boost::shared_ptr< shapelet::MultiShapeletBasis > > BasisVector
NameVector const & getNonlinearNames() const
Return the names of the free nonlinear parameters.
int getNonlinearDim() const
Return the number of free nonlinear parameters.
Base class for Bayesian priors.
BasisVector const & getBasisVector() const
Return the MultiShapeletBasis objects that comprise the Model.
virtual void readEllipses(EllipseConstIterator ellipseIter, Scalar *nonlinearIter, Scalar *fixedIter) const =0
Convert a vector of ellipses to a set of nonlinear+fixed parameter arrays.
Model & operator=(const Model &)=delete
static boost::shared_ptr< Model > makeGaussian(CenterEnum center, double radius=1.0)
Construct a concrete Model instance that represents a single elliptical Gaussian function.
int getAmplitudeDim() const
Return the number of linear parameters.
std::vector< afw::geom::ellipses::Ellipse >::iterator EllipseIterator
virtual void writeEllipses(Scalar const *nonlinearIter, Scalar const *fixedIter, EllipseIterator ellipseIter) const =0
Convert a set of nonlinear+fixed parameter arrays to a vector of ellipses.
Model(const Model &)=delete
virtual void transformParameters(LocalUnitTransform const &transform, ndarray::Array< Scalar, 1, 1 > const &nonlinear, ndarray::Array< Scalar, 1, 1 > const &litudes, ndarray::Array< Scalar, 1, 1 > const &fixed) const
Transform (in-place) parameter vectors from one unit system to another.
std::vector< afw::geom::ellipses::Ellipse > EllipseVector
std::vector< afw::geom::ellipses::Ellipse >::const_iterator EllipseConstIterator