LSSTApplications  11.0-13-gbb96280,12.1+18,12.1+7,12.1-1-g14f38d3+72,12.1-1-g16c0db7+5,12.1-1-g5961e7a+84,12.1-1-ge22e12b+23,12.1-11-g06625e2+4,12.1-11-g0d7f63b+4,12.1-19-gd507bfc,12.1-2-g7dda0ab+38,12.1-2-gc0bc6ab+81,12.1-21-g6ffe579+2,12.1-21-gbdb6c2a+4,12.1-24-g941c398+5,12.1-3-g57f6835+7,12.1-3-gf0736f3,12.1-37-g3ddd237,12.1-4-gf46015e+5,12.1-5-g06c326c+20,12.1-5-g648ee80+3,12.1-5-gc2189d7+4,12.1-6-ga608fc0+1,12.1-7-g3349e2a+5,12.1-7-gfd75620+9,12.1-9-g577b946+5,12.1-9-gc4df26a+10
LSSTDataManagementBasePackage
Algorithm.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_MEAS_BASE_Algorithm_h_INCLUDED
25 #define LSST_MEAS_BASE_Algorithm_h_INCLUDED
26 
27 #include "lsst/afw/table/fwd.h"
31 
32 namespace lsst { namespace meas { namespace base {
33 
40 public:
41 
58  virtual void fail(
59  afw::table::SourceRecord & measRecord,
60  MeasurementError * error=NULL
61  ) const = 0;
62 
63  virtual ~BaseAlgorithm() {}
64 
65 };
66 
77 class SingleFrameAlgorithm : public virtual BaseAlgorithm {
78 public:
79 
88  virtual void measure(
89  afw::table::SourceRecord & measRecord,
90  afw::image::Exposure<float> const & exposure
91  ) const = 0;
92 
103  virtual void measureN(
104  afw::table::SourceCatalog const & measCat,
105  afw::image::Exposure<float> const & exposure
106  ) const;
107 
108 };
109 
128 class ForcedAlgorithm : public virtual BaseAlgorithm {
129 public:
130 
139  virtual void measureForced(
140  afw::table::SourceRecord & measRecord,
141  afw::image::Exposure<float> const & exposure,
142  afw::table::SourceRecord const & refRecord,
143  afw::image::Wcs const & refWcs
144  ) const = 0;
145 
156  virtual void measureNForced(
157  afw::table::SourceCatalog const & measCat,
158  afw::image::Exposure<float> const & exposure,
159  afw::table::SourceCatalog const & refRecord,
160  afw::image::Wcs const & refWcs
161  ) const;
162 
163 };
164 
178 public:
179 
180  virtual void measureForced(
181  afw::table::SourceRecord & measRecord,
182  afw::image::Exposure<float> const & exposure,
183  afw::table::SourceRecord const & refRecord,
184  afw::image::Wcs const & refWcs
185  ) const {
186  measure(measRecord, exposure);
187  }
188 
189  virtual void measureNForced(
190  afw::table::SourceCatalog const & measCat,
191  afw::image::Exposure<float> const & exposure,
192  afw::table::SourceCatalog const & refRecord,
193  afw::image::Wcs const & refWcs
194  ) const {
195  measureN(measCat, exposure);
196  }
197 
198 };
199 
200 }}} // namespace lsst::meas::base
201 
202 #endif // !LSST_MEAS_BASE_Algorithm_h_INCLUDED
virtual void measureNForced(afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure, afw::table::SourceCatalog const &refRecord, afw::image::Wcs const &refWcs) const
Called to simultaneously measure all children in a deblend family, in a single image.
Definition: Algorithm.h:189
virtual void measureForced(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure, afw::table::SourceRecord const &refRecord, afw::image::Wcs const &refWcs) const
Called to measure a single child source in an image.
Definition: Algorithm.h:180
Base class for algorithms that measure the properties of sources on single image. ...
Definition: Algorithm.h:77
Implementation of the WCS standard for a any projection.
Definition: Wcs.h:107
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Definition: exceptions.h:48
Forward declarations and typedefs for afw::table.
Base class for algorithms that measure the properties of sources on one image, using previous measure...
Definition: Algorithm.h:128
def error
Definition: log.py:103
virtual void measureN(afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure) const
Called to simultaneously measure all children in a deblend family, in a single image.
Definition: Algorithm.cc:29
Custom catalog class for record/table subclasses that are guaranteed to have an ID, and should generally be sorted by that ID.
Definition: fwd.h:55
Ultimate abstract base class for all C++ measurement algorithms.
Definition: Algorithm.h:39
virtual void measureNForced(afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure, afw::table::SourceCatalog const &refRecord, afw::image::Wcs const &refWcs) const
Called to simultaneously measure all children in a deblend family, in a single image.
Definition: Algorithm.cc:39
virtual void fail(afw::table::SourceRecord &measRecord, MeasurementError *error=NULL) const =0
Handle an exception thrown by the current algorithm by setting flags in the given record...
An abstract base classes for which the same implementation can be used for both SingleFrameAlgorithm ...
Definition: Algorithm.h:177
virtual void measureForced(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure, afw::table::SourceRecord const &refRecord, afw::image::Wcs const &refWcs) const =0
Called to measure a single child source in an image.
virtual void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const =0
Called to measure a single child source in an image.
Record class that contains measurements made on a single exposure.
Definition: Source.h:80