LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
DoubleGaussianPsf.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 /*
3  * LSST Data Management System
4  * Copyright 2008-2013 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_MEAS_ALGORITHMS_DoubleGaussianPsf_h_INCLUDED
25 #define LSST_MEAS_ALGORITHMS_DoubleGaussianPsf_h_INCLUDED
26 
28 
29 namespace lsst {
30 namespace meas {
31 namespace algorithms {
32 
34 class DoubleGaussianPsf : public afw::table::io::PersistableFacade<DoubleGaussianPsf>, public KernelPsf {
35 public:
45  DoubleGaussianPsf(int width, int height, double sigma1, double sigma2 = 0.0, double b = 0.0);
46 
48  PTR(afw::detection::Psf) clone() const override;
49 
51  PTR(afw::detection::Psf) resized(int width, int height) const override;
52 
54  double getSigma1() const { return _sigma1; }
55 
57  double getSigma2() const { return _sigma2; }
58 
60  double getB() const { return _b; }
61 
63  bool isPersistable() const noexcept override { return true; }
64 
65 protected:
66  std::string getPersistenceName() const override;
67 
68  void write(OutputArchiveHandle& handle) const override;
69 
70 private:
71  double _sigma1;
72  double _sigma2;
73  double _b;
74 };
75 
76 } // namespace algorithms
77 } // namespace meas
78 } // namespace lsst
79 
80 #endif // !LSST_MEAS_ALGORITHMS_DoubleGaussianPsf_h_INCLUDED
A Psf defined by a Kernel.
Definition: KernelPsf.h:36
void write(OutputArchiveHandle &handle) const override
Write the object to one or more catalogs.
An object passed to Persistable::write to allow it to persist itself.
boost::shared_ptr< afw::detection::Psf > clone() const override
Polymorphic deep copy. Usually unnecessary, as Psfs are immutable.
table::Key< int > b
double getSigma1() const
Return the radius of the inner Gaussian.
DoubleGaussianPsf(int width, int height, double sigma1, double sigma2=0.0, double b=0.0)
Constructor for a DoubleGaussianPsf.
table::Key< double > sigma2
STL class.
Represent a Psf as a circularly symmetrical double Gaussian.
A base class for image defects.
boost::shared_ptr< afw::detection::Psf > resized(int width, int height) const override
Return a clone with specified kernel dimensions.
double getSigma2() const
Return the radius of the outer Gaussian.
bool isPersistable() const noexcept override
Whether this Psf is persistable (always true for DoubleGaussianPsf).
double getB() const
Return the ratio of Gaussian peak amplitudes: outer/inner.
std::string getPersistenceName() const override
Return the unique name used to persist this object and look up its factory.
A polymorphic base class for representing an image&#39;s Point Spread Function.
Definition: Psf.h:75
A CRTP facade class for subclasses of Persistable.
Definition: Persistable.h:176
#define PTR(...)
Definition: base.h:41
table::Key< double > sigma1