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" 34 namespace algorithms {
63 double getB()
const {
return _b; }
79 template <
class Archive>
80 void serialize(Archive&,
unsigned int const) {
81 boost::serialization::void_cast_register<DoubleGaussianPsf, Psf>(
static_cast<DoubleGaussianPsf*
>(0),
82 static_cast<Psf*>(0));
91 namespace serialization {
93 template <
class Archive>
100 double b = p->
getB();
101 ar << make_nvp(
"width", width);
102 ar << make_nvp(
"height", height);
103 ar << make_nvp(
"sigma1", sigma1);
104 ar << make_nvp(
"sigma2", sigma2);
105 ar << make_nvp(
"b", b);
108 template <
class Archive>
110 unsigned int const) {
116 ar >> make_nvp(
"width", width);
117 ar >> make_nvp(
"height", height);
118 ar >> make_nvp(
"sigma1", sigma1);
119 ar >> make_nvp(
"sigma2", sigma2);
120 ar >> make_nvp(
"b", b);
127 #endif // !LSST_MEAS_ALGORITHMS_DoubleGaussianPsf_h_INCLUDED
A Psf defined by a Kernel.
virtual void write(OutputArchiveHandle &handle) const
friend class boost::serialization::access
double getSigma1() const
Return the radius of the inner Gaussian.
boost::shared_ptr< afw::math::Kernel const > getKernel() const
Return the Kernel used to define this Psf.
DoubleGaussianPsf(int width, int height, double sigma1, double sigma2=0.0, double b=0.0)
Constructor for a DoubleGaussianPsf.
Represent a Psf as a circularly symmetrical double Gaussian.
virtual std::string getPersistenceName() const
void load_construct_data(Archive &ar, lsst::afw::math::DeltaFunctionKernel *k, unsigned int const file_version)
virtual boost::shared_ptr< afw::detection::Psf > resized(int width, int height) const
Return a clone with specified kernel dimensions.
double getSigma2() const
Return the radius of the outer Gaussian.
virtual bool isPersistable() const noexcept override
Whether this Psf is persistable (always true for DoubleGaussianPsf).
afw::table::Key< double > sigma1
double getB() const
Return the ratio of Gaussian peak amplitudes: outer/inner.
io::OutputArchiveHandle OutputArchiveHandle
afw::table::Key< double > b
virtual boost::shared_ptr< afw::detection::Psf > clone() const
Polymorphic deep copy. Usually unnecessary, as Psfs are immutable.
afw::table::Key< double > sigma2
void save_construct_data(Archive &ar, lsst::afw::math::DeltaFunctionKernel const *k, unsigned int const file_version)