25#ifndef LSST_IP_DIFFIM_DIPOLEALGORITHMS_H
26#define LSST_IP_DIFFIM_DIPOLEALGORITHMS_H
40#include "ndarray/eigen.h"
218 _numPositiveKey(schema.addField<int>(name+
"_npos",
"number of positive pixels",
"count")),
219 _numNegativeKey(schema.addField<int>(name+
"_nneg",
"number of negative pixels",
"count"))
297 _chi2dofKey(schema.addField<float>(name+
"_chi2dof",
298 "chi2 per degree of freedom of fit"))
309 double negCenterX,
double negCenterY,
double negFlux,
310 double posCenterX,
double poCenterY,
double posFlux
A class to contain the data, WCS, and other information needed to describe an image of the sky.
Tag types used to declare specialized field types.
Defines the fields and offsets for a table.
Record class that contains measurements made on a single exposure.
Intermediate base class for algorithms that compute a centroid.
meas::base::FluxResultKey _fluxResultKey
DipoleCentroidControl Control
ResultKey const & getPositiveKeys() const
Return the standard centroid keys registered by this algorithm.
static meas::base::FlagDefinition const FAILURE
meas::base::CentroidResultKey ResultKey
static meas::base::FlagDefinition const POS_FLAG
ResultKey const & getNegativeKeys() const
static meas::base::FlagDefinition const NEG_FLAG
static meas::base::FlagDefinitionList const & getFlagDefinitions()
DipoleCentroidAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema, std::string const &doc)
meas::base::FlagHandler _flagHandler
Intermediate base class for algorithms that compute a flux.
meas::base::FluxResultKey ResultKey
static meas::base::FlagDefinitionList const & getFlagDefinitions()
DipoleFluxControl Control
A typedef to the Control object for this algorithm, defined above.
ResultKey const & getPositiveKeys() const
Return the standard flux keys registered by this algorithm.
static meas::base::FlagDefinition const POS_FLAG
static meas::base::FlagDefinition const NEG_FLAG
ResultKey const & getNegativeKeys() const
meas::base::FluxResultKey _fluxResultKey
DipoleFluxAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema, std::string const &doc)
meas::base::FlagHandler _flagHandler
static meas::base::FlagDefinition const FAILURE
Intermediate base class for algorithms that compute a centroid.
ResultKey const & getPositiveKeys() const
ResultKey const & getNegativeKeys() const
meas::base::CentroidResultKey ResultKey
Tuple type that holds the keys that define a standard centroid algorithm.
NaiveDipoleCentroid(Control const &ctrl, std::string const &name, afw::table::Schema &schema, ResultKey const &positiveKeys, ResultKey const &negativeKeys)
Initialize with a manually-constructed key tuple.
void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Given an image and a pixel position, return a Centroid using a naive 3x3 weighted moment.
void mergeCentroids(afw::table::SourceRecord &source, double posValue, double negValue) const
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 & getCenterKeys() const
Return the standard centroid keys registered by this algorithm.
void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Given an image and a pixel position, return a Centroid using a naive 3x3 weighted moment.
DipoleFluxControl Control
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.
NaiveDipoleFlux(Control const &ctrl, std::string const &name, afw::table::Schema &schema)
C++ control object for PSF dipole fluxes.
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" ;
Implementation of Psf dipole flux.
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
PsfDipoleFluxControl Control
void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Called to measure a single child source in an image.
PsfDipoleFlux(PsfDipoleFluxControl const &ctrl, std::string const &name, afw::table::Schema &schema)
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.
A FunctorKey for CentroidResult.
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.
vector-type utility class to build a collection of FlagDefinitions
Utility class for handling flag fields that indicate the failure modes of an algorithm.
static FlagHandler addFields(afw::table::Schema &schema, std::string const &prefix, FlagDefinitionList const &flagDefs, FlagDefinitionList const &exclDefs=FlagDefinitionList::getEmptyList())
Add Flag fields to a schema, creating a FlagHandler object to manage them.
A FunctorKey for FluxResult.
static FluxResultKey addFields(afw::table::Schema &schema, std::string const &name, std::string const &doc)
Add a pair of _instFlux, _instFluxErr fields to a Schema, and return a FluxResultKey that points to t...
Exception to be thrown when a measurement algorithm experiences a known failure mode.
An abstract base classes for which the same implementation can be used for both SingleFrameAlgorithm ...
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
A preprocessor macro used to define fields in C++ "control object" structs.
@ SIGMA_ONLY
Only the diagonal elements of the covariance matrix are provided.
Simple class used to define and document flags The name and doc constitute the identity of the FlagDe...