LSST Applications 24.1.6,g063fba187b+56b85ce14a,g0f08755f38+df8a265115,g12f32b3c4e+891a09f10d,g1524ad2192+7a5d7b3fbd,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g28da252d5a+07cb1400be,g2bbee38e9b+ae03bbfc84,g2bc492864f+ae03bbfc84,g3156d2b45e+6e55a43351,g347aa1857d+ae03bbfc84,g35bb328faa+a8ce1bb630,g3a166c0a6a+ae03bbfc84,g3e281a1b8c+c5dd892a6c,g414038480c+6b9177ef31,g41af890bb2+8f257c4c0b,g781aacb6e4+a8ce1bb630,g7af13505b9+7137b3b17d,g80478fca09+6df6903293,g82479be7b0+091ce1d07f,g858d7b2824+df8a265115,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,g9726552aa6+414189b318,ga5288a1d22+4a2bca08d7,gacef1a1666+c9a8ff65f4,gb58c049af0+d64f4d3760,gbcfae0f0a0+de1d42d831,gc28159a63d+ae03bbfc84,gcf0d15dbbd+72117bf34e,gda6a2b7d83+72117bf34e,gdaeeff99f8+1711a396fd,ge500cccec5+c8c9c9af63,ge79ae78c31+ae03bbfc84,gf0baf85859+c1f95f4921,gfa517265be+df8a265115,gfa999e8aa5+17cd334064,gfb92a5be7c+df8a265115
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
lsst::ip::diffim::PsfDipoleFlux Class Reference

Implementation of Psf dipole flux. More...

#include <DipoleAlgorithms.h>

Inheritance diagram for lsst::ip::diffim::PsfDipoleFlux:
lsst::ip::diffim::DipoleFluxAlgorithm lsst::meas::base::SimpleAlgorithm lsst::meas::base::SingleFrameAlgorithm lsst::meas::base::ForcedAlgorithm lsst::meas::base::BaseAlgorithm lsst::meas::base::BaseAlgorithm

Public Types

typedef PsfDipoleFluxControl Control
 
typedef meas::base::FluxResultKey ResultKey
 

Public Member Functions

 PsfDipoleFlux (PsfDipoleFluxControl const &ctrl, std::string const &name, afw::table::Schema &schema)
 
std::pair< double, int > chi2 (afw::table::SourceRecord &source, afw::image::Exposure< float > const &exposure, double negCenterX, double negCenterY, double negFlux, double posCenterX, double poCenterY, double posFlux) const
 
void measure (afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
 Called to measure a single child source in an image.
 
void fail (afw::table::SourceRecord &measRecord, meas::base::MeasurementError *error=NULL) const
 Handle an exception thrown by the current algorithm by setting flags in the given record.
 
ResultKey const & getPositiveKeys () const
 Return the standard flux keys registered by this algorithm.
 
ResultKey const & getNegativeKeys () const
 
void measureForced (afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure, afw::table::SourceRecord const &refRecord, afw::geom::SkyWcs const &refWcs) const override
 Called to measure a single child source in an image.
 
void measureNForced (afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure, afw::table::SourceCatalog const &refRecord, afw::geom::SkyWcs const &refWcs) const override
 Called to simultaneously measure all children in a deblend family, in a single image.
 
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.
 
std::string getLogName () const
 

Static Public Member Functions

static meas::base::FlagDefinitionList const & getFlagDefinitions ()
 

Static Public Attributes

static meas::base::FlagDefinition const FAILURE = dipoleFluxFlagDefinitions.addFailureFlag("general failure flag, set if anything went wrong")
 
static meas::base::FlagDefinition const POS_FLAG = dipoleFluxFlagDefinitions.add("pos_flag", "failure flag for positive, set if anything went wrong")
 
static meas::base::FlagDefinition const NEG_FLAG = dipoleFluxFlagDefinitions.add("neg_flag", "failure flag for negative, set if anything went wrong")
 

Protected Attributes

meas::base::FluxResultKey _fluxResultKey
 
meas::base::FlagHandler _flagHandler
 
ResultKey _positiveKeys
 
ResultKey _negativeKeys
 
std::string _logName
 

Detailed Description

Implementation of Psf dipole flux.

Definition at line 211 of file DipoleAlgorithms.h.

Member Typedef Documentation

◆ Control

Definition at line 214 of file DipoleAlgorithms.h.

◆ ResultKey

Definition at line 131 of file DipoleAlgorithms.h.

Constructor & Destructor Documentation

◆ PsfDipoleFlux()

lsst::ip::diffim::PsfDipoleFlux::PsfDipoleFlux ( PsfDipoleFluxControl const & ctrl,
std::string const & name,
afw::table::Schema & schema )
inline

Definition at line 216 of file DipoleAlgorithms.h.

216 :
217 DipoleFluxAlgorithm(ctrl, name, schema, "jointly fitted psf flux counts"),
218 _ctrl(ctrl),
219 _chi2dofKey(schema.addField<float>(name+"_chi2dof",
220 "chi2 per degree of freedom of fit"))
221 {
222 meas::base::CentroidResultKey::addFields(schema, name+"_pos_centroid", "psf fitted center of positive lobe", meas::base::SIGMA_ONLY);
223 meas::base::CentroidResultKey::addFields(schema, name+"_neg_centroid", "psf fitted center of negative lobe", meas::base::SIGMA_ONLY);
224 meas::base::CentroidResultKey::addFields(schema, name, "average of negative and positive lobe positions", meas::base::SIGMA_ONLY);
225 _posCentroid = meas::base::CentroidResultKey(schema[name+"_pos_centroid"]);
226 _negCentroid = meas::base::CentroidResultKey(schema[name+"_neg_centroid"]);
227 _avgCentroid = meas::base::CentroidResultKey(schema[name]);
228 }
table::Schema schema
Definition python.h:134
DipoleFluxAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema, std::string const &doc)
static CentroidResultKey addFields(afw::table::Schema &schema, std::string const &name, std::string const &doc, UncertaintyEnum uncertainty)
Add the appropriate fields to a Schema, and return a CentroidResultKey that manages them.
@ SIGMA_ONLY
Only the diagonal elements of the covariance matrix are provided.
Definition constants.h:45

Member Function Documentation

◆ chi2()

std::pair< double, int > lsst::ip::diffim::PsfDipoleFlux::chi2 ( afw::table::SourceRecord & source,
afw::image::Exposure< float > const & exposure,
double negCenterX,
double negCenterY,
double negFlux,
double posCenterX,
double poCenterY,
double posFlux ) const

Definition at line 148 of file DipoleAlgorithms.cc.

153 {
154
155 geom::Point2D negCenter(negCenterX, negCenterY);
156 geom::Point2D posCenter(posCenterX, posCenterY);
157
159
160 /*
161 * Fit for the superposition of Psfs at the two centroids.
162 */
163 std::shared_ptr<afwDet::Psf const> psf = exposure.getPsf();
164 std::shared_ptr<afwImage::Image<afwMath::Kernel::Pixel>> negPsf = psf->computeImage(negCenter);
165 std::shared_ptr<afwImage::Image<afwMath::Kernel::Pixel>> posPsf = psf->computeImage(posCenter);
166
167 afwImage::Image<double> negModel(footprint->getBBox());
168 afwImage::Image<double> posModel(footprint->getBBox());
169 afwImage::Image<float> data(*(exposure.getMaskedImage().getImage()),footprint->getBBox());
170 afwImage::Image<afwImage::VariancePixel> var(*(exposure.getMaskedImage().getVariance()),
171 footprint->getBBox());
172
173 geom::Box2I negPsfBBox = negPsf->getBBox();
174 geom::Box2I posPsfBBox = posPsf->getBBox();
175 geom::Box2I negModelBBox = negModel.getBBox();
176 geom::Box2I posModelBBox = posModel.getBBox();
177
178 // Portion of the negative Psf that overlaps the model
179 int negXmin = std::max(negPsfBBox.getMinX(), negModelBBox.getMinX());
180 int negYmin = std::max(negPsfBBox.getMinY(), negModelBBox.getMinY());
181 int negXmax = std::min(negPsfBBox.getMaxX(), negModelBBox.getMaxX());
182 int negYmax = std::min(negPsfBBox.getMaxY(), negModelBBox.getMaxY());
183 geom::Box2I negBBox = geom::Box2I(geom::Point2I(negXmin, negYmin),
184 geom::Point2I(negXmax, negYmax));
185 afwImage::Image<afwMath::Kernel::Pixel> negSubim(*negPsf, negBBox);
186 afwImage::Image<double> negModelSubim(negModel, negBBox);
187 negModelSubim += negSubim;
188
189 // Portion of the positive Psf that overlaps the model
190 int posXmin = std::max(posPsfBBox.getMinX(), posModelBBox.getMinX());
191 int posYmin = std::max(posPsfBBox.getMinY(), posModelBBox.getMinY());
192 int posXmax = std::min(posPsfBBox.getMaxX(), posModelBBox.getMaxX());
193 int posYmax = std::min(posPsfBBox.getMaxY(), posModelBBox.getMaxY());
194 geom::Box2I posBBox = geom::Box2I(geom::Point2I(posXmin, posYmin),
195 geom::Point2I(posXmax, posYmax));
196 afwImage::Image<afwMath::Kernel::Pixel> posSubim(*posPsf, posBBox);
197 afwImage::Image<double> posModelSubim(posModel, posBBox);
198 posModelSubim += posSubim;
199
200 negModel *= negFlux; // scale negative model to image
201 posModel *= posFlux; // scale positive model to image
202 afwImage::Image<double> residuals(negModel, true); // full model contains negative lobe...
203 residuals += posModel; // plus positive lobe...
204 residuals -= data; // minus the data...
205 residuals *= residuals; // squared...
206 residuals /= var; // divided by the variance : [(model-data)/sigma]**2
208 double chi2 = stats.getValue(afwMath::SUM);
209 int nPix = stats.getValue(afwMath::NPOINT);
210 return std::pair<double,int>(chi2, nPix);
211}
char * data
Definition BaseRecord.cc:61
A class to represent a 2-dimensional array of pixels.
Definition Image.h:51
A class to evaluate image statistics.
Definition Statistics.h:222
An integer coordinate rectangle.
Definition Box.h:55
int getMinY() const noexcept
Definition Box.h:158
int getMinX() const noexcept
Definition Box.h:157
int getMaxX() const noexcept
Definition Box.h:161
int getMaxY() const noexcept
Definition Box.h:162
std::pair< double, int > chi2(afw::table::SourceRecord &source, afw::image::Exposure< float > const &exposure, double negCenterX, double negCenterY, double negFlux, double posCenterX, double poCenterY, double posFlux) const
T max(T... args)
T min(T... args)
const char * source()
Source function that allows astChannel to source from a Stream.
Definition Stream.h:224
Statistics makeStatistics(lsst::afw::image::Image< Pixel > const &img, lsst::afw::image::Mask< image::MaskPixel > const &msk, int const flags, StatisticsControl const &sctrl=StatisticsControl())
Handle a watered-down front-end to the constructor (no variance)
Definition Statistics.h:361
@ SUM
find sum of pixels in the image
Definition Statistics.h:68
@ NPOINT
number of sample points
Definition Statistics.h:56
Key< int > psf
Definition Exposure.cc:65

◆ fail()

void lsst::ip::diffim::PsfDipoleFlux::fail ( afw::table::SourceRecord & measRecord,
meas::base::MeasurementError * error = NULL ) const
virtual

Handle an exception thrown by the current algorithm by setting flags in the given record.

fail() is called by the measurement framework when an exception is allowed to propagate out of one the algorithm's measure() methods. It should generally set both a general failure flag for the algorithm as well as a specific flag indicating the error condition, if possible. To aid in this, if the exception was an instance of MeasurementError, it will be passed in, carrying information about what flag to set.

An algorithm can also to chose to set flags within its own measure() methods, and then just return, rather than throw an exception. However, fail() should be implemented even when all known failure modes do not throw exceptions, to ensure that unexpected exceptions thrown in lower-level code are properly handled.

Implements lsst::meas::base::BaseAlgorithm.

Definition at line 309 of file DipoleAlgorithms.cc.

309 {
310 _flagHandler.handleFailure(measRecord, error);
311}
void handleFailure(afw::table::BaseRecord &record, MeasurementError const *error=nullptr) const
Handle an expected or unexpected Exception thrown by a measurement algorithm.

◆ getFlagDefinitions()

meas::base::FlagDefinitionList const & lsst::ip::diffim::DipoleFluxAlgorithm::getFlagDefinitions ( )
staticinherited

Definition at line 65 of file DipoleAlgorithms.cc.

65 {
66 return dipoleFluxFlagDefinitions;
67}

◆ getLogName()

std::string lsst::meas::base::BaseAlgorithm::getLogName ( ) const
inlineinherited

Definition at line 66 of file Algorithm.h.

66{ return _logName; }

◆ getNegativeKeys()

ResultKey const & lsst::ip::diffim::DipoleFluxAlgorithm::getNegativeKeys ( ) const
inlineinherited

Definition at line 134 of file DipoleAlgorithms.h.

◆ getPositiveKeys()

ResultKey const & lsst::ip::diffim::DipoleFluxAlgorithm::getPositiveKeys ( ) const
inlineinherited

Return the standard flux keys registered by this algorithm.

Definition at line 133 of file DipoleAlgorithms.h.

◆ measure()

void lsst::ip::diffim::PsfDipoleFlux::measure ( afw::table::SourceRecord & measRecord,
afw::image::Exposure< float > const & exposure ) const
virtual

Called to measure a single child source in an image.

Before this method is called, all neighbors will be replaced with noise, using the outputs of the deblender. Outputs should be saved in the given SourceRecord, which can also be used to obtain centroid (see SafeCentroidExtractor) and shape (see SafeShapeExtractor) information.

Implements lsst::meas::base::SingleFrameAlgorithm.

Definition at line 213 of file DipoleAlgorithms.cc.

216 {
217
219
221 if (!footprint) {
222 throw LSST_EXCEPT(pex::exceptions::RuntimeError,
223 (boost::format("No footprint for source %d") % source.getId()).str());
224 }
225
226 afw::detection::PeakCatalog peakCatalog = afw::detection::PeakCatalog(footprint->getPeaks());
227
228 if (peakCatalog.size() == 0) {
229 throw LSST_EXCEPT(pex::exceptions::RuntimeError,
230 (boost::format("No peak for source %d") % source.getId()).str());
231 }
232 else if (peakCatalog.size() == 1) {
233 // No deblending to do
234 return;
235 }
236
237 // For N>=2, just measure the brightest-positive and brightest-negative
238 // peaks. peakCatalog is automatically ordered by peak flux, with the most
239 // positive one (brightest) being first
240 afw::detection::PeakRecord const& positivePeak = peakCatalog.front();
241 afw::detection::PeakRecord const& negativePeak = peakCatalog.back();
242
243 // Set up fit parameters and param names
244 ROOT::Minuit2::MnUserParameters fitPar;
245
246 fitPar.Add((boost::format("P%d")%NEGCENTXPAR).str(), negativePeak.getFx(), _ctrl.stepSizeCoord);
247 fitPar.Add((boost::format("P%d")%NEGCENTYPAR).str(), negativePeak.getFy(), _ctrl.stepSizeCoord);
248 fitPar.Add((boost::format("P%d")%NEGFLUXPAR).str(), negativePeak.getPeakValue(), _ctrl.stepSizeFlux);
249 fitPar.Add((boost::format("P%d")%POSCENTXPAR).str(), positivePeak.getFx(), _ctrl.stepSizeCoord);
250 fitPar.Add((boost::format("P%d")%POSCENTYPAR).str(), positivePeak.getFy(), _ctrl.stepSizeCoord);
251 fitPar.Add((boost::format("P%d")%POSFLUXPAR).str(), positivePeak.getPeakValue(), _ctrl.stepSizeFlux);
252
253 // Create the minuit object that knows how to minimise our functor
254 //
255 MinimizeDipoleChi2 minimizerFunc(*this, source, exposure);
256 minimizerFunc.setErrorDef(_ctrl.errorDef);
257
258 //
259 // tell minuit about it
260 //
261 ROOT::Minuit2::MnMigrad migrad(minimizerFunc, fitPar);
262
263 //
264 // And let it loose
265 //
266 ROOT::Minuit2::FunctionMinimum min = migrad(_ctrl.maxFnCalls);
267
268 float minChi2 = min.Fval();
269 bool const isValid = min.IsValid() && std::isfinite(minChi2);
270
271 if (true || isValid) { // calculate coeffs even in minuit is unhappy
272
273 /* I need to call chi2 one more time to grab nPix to calculate chi2/dof.
274 Turns out that the Minuit operator method has to be const, and the
275 measurement _apply method has to be const, so I can't store nPix as a
276 private member variable anywhere. Consted into a corner.
277 */
278 std::pair<double,int> fit = chi2(source, exposure,
279 min.UserState().Value(NEGCENTXPAR),
280 min.UserState().Value(NEGCENTYPAR),
281 min.UserState().Value(NEGFLUXPAR),
282 min.UserState().Value(POSCENTXPAR),
283 min.UserState().Value(POSCENTYPAR),
284 min.UserState().Value(POSFLUXPAR));
285 double evalChi2 = fit.first;
286 int nPix = fit.second;
287
288 std::shared_ptr<geom::Point2D> minNegCentroid(new geom::Point2D(min.UserState().Value(NEGCENTXPAR),
289 min.UserState().Value(NEGCENTYPAR)));
290 source.set(getNegativeKeys().getInstFlux(), min.UserState().Value(NEGFLUXPAR));
291 source.set(getNegativeKeys().getInstFluxErr(), min.UserState().Error(NEGFLUXPAR));
292
293 std::shared_ptr<geom::Point2D> minPosCentroid(new geom::Point2D(min.UserState().Value(POSCENTXPAR),
294 min.UserState().Value(POSCENTYPAR)));
295 source.set(getPositiveKeys().getInstFlux(), min.UserState().Value(POSFLUXPAR));
296 source.set(getPositiveKeys().getInstFluxErr(), min.UserState().Error(POSFLUXPAR));
297
298 source.set(_chi2dofKey, evalChi2 / (nPix - minimizerFunc.getNpar()));
299 source.set(_negCentroid.getX(), minNegCentroid->getX());
300 source.set(_negCentroid.getY(), minNegCentroid->getY());
301 source.set(_posCentroid.getX(), minPosCentroid->getX());
302 source.set(_posCentroid.getY(), minPosCentroid->getY());
303 source.set(_avgCentroid.getX(), 0.5*(minNegCentroid->getX() + minPosCentroid->getX()));
304 source.set(_avgCentroid.getY(), 0.5*(minNegCentroid->getY() + minPosCentroid->getY()));
305
306 }
307}
int min
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition Exception.h:48
MaskedImage< ImageT, MaskT, VarianceT > MaskedImageT
Definition Exposure.h:74
T Value
The data type for get and set.
Definition FunctorKey.h:77
ResultKey const & getPositiveKeys() const
Return the standard flux keys registered by this algorithm.
ResultKey const & getNegativeKeys() const
float stepSizeCoord
"Default initial step size for coordinates in non-linear fitter" ;
double errorDef
"How many sigma the error bars of the non-linear fitter represent" ;
float stepSizeFlux
"Default initial step size for flux in non-linear fitter" ;
int maxFnCalls
"Maximum function calls for non-linear fitter; 0 = unlimited" ;
afw::table::Key< CentroidElement > getX() const
Return a Key for the x coordinate.
afw::table::Key< CentroidElement > getY() const
Return a Key for the y coordinate.
bool isValid
Definition fits.cc:404
T isfinite(T... args)
Definition __init__.py:1
afw::table::CatalogT< PeakRecord > PeakCatalog
Definition Peak.h:244
int const NEGFLUXPAR(2)
int const NEGCENTXPAR(0)
int const NEGCENTYPAR(1)
int const POSFLUXPAR(5)
int const POSCENTXPAR(3)
int const POSCENTYPAR(4)

◆ measureForced()

void lsst::meas::base::SimpleAlgorithm::measureForced ( afw::table::SourceRecord & measRecord,
afw::image::Exposure< float > const & exposure,
afw::table::SourceRecord const & refRecord,
afw::geom::SkyWcs const & refWcs ) const
inlineoverridevirtualinherited

Called to measure a single child source in an image.

Before this method is called, all neighbors will be replaced with noise, using the outputs of the deblender. Outputs should be saved in the given SourceRecord, which can also be used to obtain centroid (see SafeCentroidExtractor) and shape (see SafeShapeExtractor) information.

Implements lsst::meas::base::ForcedAlgorithm.

Reimplemented in lsst::meas::extensions::photometryKron::KronFluxAlgorithm.

Definition at line 172 of file Algorithm.h.

175 {
176 measure(measRecord, exposure);
177 }
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.

◆ measureN()

void lsst::meas::base::SingleFrameAlgorithm::measureN ( afw::table::SourceCatalog const & measCat,
afw::image::Exposure< float > const & exposure ) const
virtualinherited

Called to simultaneously measure all children in a deblend family, in a single image.

Outputs should be saved in the given SourceCatalog, which can also be used to obtain centroid (see SafeCentroidExtractor) and shape (see SafeShapeExtractor) information.

The default implementation simply throws an exception, indicating that simultaneous measurement is not supported.

Definition at line 31 of file Algorithm.cc.

32 {
33 throw LSST_EXCEPT(pex::exceptions::LogicError, "measureN not implemented for this algorithm");
34}

◆ measureNForced()

void lsst::meas::base::SimpleAlgorithm::measureNForced ( afw::table::SourceCatalog const & measCat,
afw::image::Exposure< float > const & exposure,
afw::table::SourceCatalog const & refRecord,
afw::geom::SkyWcs const & refWcs ) const
inlineoverridevirtualinherited

Called to simultaneously measure all children in a deblend family, in a single image.

Outputs should be saved in the given SourceCatalog, which can also be used to obtain centroid (see SafeCentroidExtractor) and shape (see SafeShapeExtractor) information.

The default implementation simply throws an exception, indicating that simultaneous measurement is not supported.

Reimplemented from lsst::meas::base::ForcedAlgorithm.

Definition at line 179 of file Algorithm.h.

182 {
183 measureN(measCat, exposure);
184 }
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:31

Member Data Documentation

◆ _flagHandler

meas::base::FlagHandler lsst::ip::diffim::DipoleFluxAlgorithm::_flagHandler
protectedinherited

Definition at line 145 of file DipoleAlgorithms.h.

◆ _fluxResultKey

meas::base::FluxResultKey lsst::ip::diffim::DipoleFluxAlgorithm::_fluxResultKey
protectedinherited

Definition at line 144 of file DipoleAlgorithms.h.

◆ _logName

std::string lsst::meas::base::BaseAlgorithm::_logName
protectedinherited

Definition at line 69 of file Algorithm.h.

◆ _negativeKeys

ResultKey lsst::ip::diffim::DipoleFluxAlgorithm::_negativeKeys
protectedinherited

Definition at line 148 of file DipoleAlgorithms.h.

◆ _positiveKeys

ResultKey lsst::ip::diffim::DipoleFluxAlgorithm::_positiveKeys
protectedinherited

Definition at line 147 of file DipoleAlgorithms.h.

◆ FAILURE

meas::base::FlagDefinition const lsst::ip::diffim::DipoleFluxAlgorithm::FAILURE = dipoleFluxFlagDefinitions.addFailureFlag("general failure flag, set if anything went wrong")
staticinherited

Definition at line 118 of file DipoleAlgorithms.h.

◆ NEG_FLAG

meas::base::FlagDefinition const lsst::ip::diffim::DipoleFluxAlgorithm::NEG_FLAG = dipoleFluxFlagDefinitions.add("neg_flag", "failure flag for negative, set if anything went wrong")
staticinherited

Definition at line 120 of file DipoleAlgorithms.h.

◆ POS_FLAG

meas::base::FlagDefinition const lsst::ip::diffim::DipoleFluxAlgorithm::POS_FLAG = dipoleFluxFlagDefinitions.add("pos_flag", "failure flag for positive, set if anything went wrong")
staticinherited

Definition at line 119 of file DipoleAlgorithms.h.


The documentation for this class was generated from the following files: