25 #ifndef LSST_IP_DIFFIM_DIPOLEALGORITHMS_H
26 #define LSST_IP_DIFFIM_DIPOLEALGORITHMS_H
39 class DipoleCentroidControl;
40 class DipoleFluxControl;
86 afw::table::Schema &
schema,
142 afw::table::Schema &
schema,
158 Algorithm(ctrl), _positiveKeys(positiveKeys), _negativeKeys(negativeKeys)
164 Algorithm(ctrl), _positiveKeys(afw::table::
addCentroidFields(schema, ctrl.name +
".pos", doc)),
175 Algorithm(ctrl), _positiveKeys(positiveKeys), _negativeKeys(negativeKeys)
181 Algorithm(ctrl), _positiveKeys(afw::table::
addFluxFields(schema, ctrl.name +
".pos", doc)),
182 _negativeKeys(afw::table::
addFluxFields(schema, ctrl.name +
".neg", doc))
216 afw::table::Schema & schema,
PTR(daf::base::
PropertyList) const & metadata
226 LSST_CONTROL_FIELD(stepSizeCoord,
float,
"Default initial step size for coordinates in non-linear fitter");
228 LSST_CONTROL_FIELD(errorDef,
double,
"How many sigma the error bars of the non-linear fitter represent");
231 stepSizeCoord(0.1), stepSizeFlux(1.0), errorDef(1.0), maxFnCalls(100000) {}
236 afw::table::Schema & schema,
PTR(daf::base::
PropertyList) const & metadata
243 #endif // !LSST_IP_DIFFIM_DIPOLEALGORITHMS_H
NaiveDipoleCentroidControl()
Defines the fields and offsets for a table.
virtual boost::shared_ptr< meas::algorithms::Algorithm > _makeAlgorithm(afw::table::Schema &schema, boost::shared_ptr< daf::base::PropertyList > const &metadata) const
DipoleFluxControl(std::string const &name_, double priority=2.0)
Class for storing ordered metadata with comments.
virtual boost::shared_ptr< AlgorithmControl > _clone() const =0
KeyTuple const & getNegativeKeys() const
C++ control object for naive dipole centroid.
double priority
"Parameter that sets the sort order for algorithms; lower numbers go first. " "Typically, priority=0 for centroids, 1 for shapes, and 2 for fluxes." ;
KeyTuple const & getPositiveKeys() const
Return the standard centroid keys registered by this algorithm.
afw::table::KeyTuple< afw::table::Flux > KeyTuple
Tuple type that holds the keys that define a standard flux algorithm.
C++ control object for PSF dipole fluxes.
virtual boost::shared_ptr< meas::algorithms::AlgorithmControl > _clone() const
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
Base class for source measurement algorithms.
DipoleFluxAlgorithm(DipoleFluxControl const &ctrl, KeyTuple const &positiveKeys, KeyTuple const &negativeKeys)
Initialize with a manually-constructed key tuple.
Base class for measurement algorithm control objects.
DipoleCentroidControl(std::string const &name_, double priority=0.0)
DipoleFluxControl const & getControl() const
Return a clone of the control object used to construct the algorithm.
DipoleCentroidAlgorithm(DipoleCentroidControl const &ctrl, KeyTuple const &positiveKeys, KeyTuple const &negativeKeys)
Initialize with a manually-constructed key tuple.
KeyTuple const & getNegativeKeys() const
Intermediate base class for algorithms that compute a flux.
Intermediate base class for algorithms that compute a centroid.
afw::table::KeyTuple< afw::table::Centroid > KeyTuple
Tuple type that holds the keys that define a standard centroid algorithm.
virtual boost::shared_ptr< DipoleFluxAlgorithm > makeAlgorithm(afw::table::Schema &schema, boost::shared_ptr< daf::base::PropertyList > const &metadata=boost::shared_ptr< daf::base::PropertyList >(), meas::algorithms::AlgorithmMap const &others=meas::algorithms::AlgorithmMap()) const
virtual boost::shared_ptr< Algorithm > _makeAlgorithm(afw::table::Schema &schema, boost::shared_ptr< daf::base::PropertyList > const &metadata) const
virtual boost::shared_ptr< DipoleCentroidAlgorithm > makeAlgorithm(afw::table::Schema &schema, boost::shared_ptr< daf::base::PropertyList > const &metadata=boost::shared_ptr< daf::base::PropertyList >(), meas::algorithms::AlgorithmMap const &others=meas::algorithms::AlgorithmMap()) const
KeyTuple< Centroid > addCentroidFields(Schema &schema, std::string const &name, std::string const &doc)
Convenience function to setup fields for centroid measurement algorithms.
KeyTuple const & getPositiveKeys() const
Return the standard flux keys registered by this algorithm.
C++ control object for naive dipole fluxes.
virtual boost::shared_ptr< DipoleCentroidControl > clone() const
AlgorithmControl(std::string const &name_, double priority_)
virtual boost::shared_ptr< DipoleFluxControl > clone() const
std::map< std::string, boost::shared_ptr< Algorithm const > > AlgorithmMap
DipoleCentroidControl const & getControl() const
Return a clone of the control object used to construct the algorithm.
KeyTuple< lsst::afw::table::Flux > addFluxFields(lsst::afw::table::Schema &schema, std::string const &filter, std::string const &name, std::string const &doc, std::string const &unit)
Convenience function to setup fields for fluxes.