24 #ifndef LSST_MEAS_ALGORITHMS_DoubleGaussianPsf_h_INCLUDED
25 #define LSST_MEAS_ALGORITHMS_DoubleGaussianPsf_h_INCLUDED
29 #include "boost/serialization/nvp.hpp"
30 #include "boost/serialization/void_cast.hpp"
32 namespace lsst {
namespace meas {
namespace algorithms {
76 template <
class Archive>
78 boost::serialization::void_cast_register<DoubleGaussianPsf, Psf>(
86 namespace boost {
namespace serialization {
88 template <
class Archive>
98 ar << make_nvp(
"width", width);
99 ar << make_nvp(
"height", height);
100 ar << make_nvp(
"sigma1", sigma1);
101 ar << make_nvp(
"sigma2", sigma2);
102 ar << make_nvp(
"b", b);
105 template <
class Archive>
115 ar >> make_nvp(
"width", width);
116 ar >> make_nvp(
"height", height);
117 ar >> make_nvp(
"sigma1", sigma1);
118 ar >> make_nvp(
"sigma2", sigma2);
119 ar >> make_nvp(
"b", b);
125 #endif // !LSST_MEAS_ALGORITHMS_DoubleGaussianPsf_h_INCLUDED
void load_construct_data(Archive &ar, lsst::meas::algorithms::DoubleGaussianPsf *p, unsigned int const )
A Psf defined by a Kernel.
void save_construct_data(Archive &ar, lsst::meas::algorithms::DoubleGaussianPsf const *p, unsigned int const )
double getSigma2() const
Return the radius of the outer Gaussian.
friend class boost::serialization::access
void serialize(Archive &, unsigned int const)
io::OutputArchiveHandle OutputArchiveHandle
DoubleGaussianPsf(int width, int height, double sigma1, double sigma2=0.0, double b=0.0)
Represent a Psf as a circularly symmetrical double Gaussian.
boost::shared_ptr< afw::math::Kernel const > getKernel() const
Return the Kernel used to define this Psf.
double getB() const
Return the ratio of Gaussian peak amplitudes: outer/inner.
afw::table::Key< double > sigma1
virtual void write(OutputArchiveHandle &handle) const
Write the object to one or more catalogs.
afw::table::Key< double > b
virtual bool isPersistable() const
Whether this Psf is persistable (always true for DoubleGaussianPsf).
virtual std::string getPersistenceName() const
Return the unique name used to persist this object and look up its factory.
double getSigma1() const
Return the radius of the inner Gaussian.
A polymorphic base class for representing an image's Point Spread Function.
A CRTP facade class for subclasses of Persistable.
afw::table::Key< double > sigma2
virtual boost::shared_ptr< afw::detection::Psf > clone() const
Polymorphic deep copy. Usually unnecessary, as Psfs are immutable.