25#ifndef LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H
26#define LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H
77 void offsetParams(Eigen::VectorXd
const &delta)
override;
90 Eigen::VectorXd &derivatives)
const override;
117 template <
class ChipTransform,
class VisitTransform,
class ChipVisitMapping>
145 LOG_GET(
"lsst.jointcal.ConstrainedFluxModel"), visitOrder,
147 initialize<FluxTransformSpatiallyInvariant, FluxTransformChebyshev, ChipVisitFluxMapping>(
148 ccdImageList, focalPlaneBBox, visitOrder);
182 return photoCalib->getCalibrationMean();
191 LOG_GET(
"lsst.jointcal.ConstrainedMagnitudeModel"), visitOrder,
199 fittedStar.
getMag() -= delta;
#define LOG_GET(logger)
Returns a Log object associated with logger.
A floating-point coordinate rectangle geometry.
double getFluxErr() const
Handler of an actual image from a single CCD.
std::shared_ptr< afw::image::PhotoCalib > toPhotoCalib(CcdImage const &ccdImage) const override
Return the mapping of ccdImage represented as a PhotoCalib.
double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib) override
Return the initial calibration to use from this photoCalib.
double computeResidual(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override
Compute the residual between the model applied to a star and its associated fittedStar.
ConstrainedFluxModel(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, int visitOrder=7, double errorPedestal=0)
void offsetFittedStar(FittedStar &fittedStar, double delta) const override
Offset the appropriate flux or magnitude (by -delta).
double transformError(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override
Return the on-sky transformed flux uncertainty for measuredStar on ccdImage.
void print(std::ostream &out) const override
Print a string representation of the contents of this mapping, for debugging.
double getRefError(RefStar const &refStar) const override
Return the refStar error appropriate for this model (e.g. fluxErr or magErr).
double computeRefResidual(FittedStar const &fittedStar, RefStar const &refStar) const override
Return the fittedStar - refStar residual appropriate for this model (e.g. flux - flux or mag - mag).
double computeResidual(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override
Compute the residual between the model applied to a star and its associated fittedStar.
void offsetFittedStar(FittedStar &fittedStar, double delta) const override
Offset the appropriate flux or magnitude (by -delta).
ConstrainedMagnitudeModel(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, int visitOrder=7, double errorPedestal=0)
double computeRefResidual(FittedStar const &fittedStar, RefStar const &refStar) const override
Return the fittedStar - refStar residual appropriate for this model (e.g. flux - flux or mag - mag).
double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib) override
Return the initial calibration to use from this photoCalib.
double getRefError(RefStar const &refStar) const override
Return the refStar error appropriate for this model (e.g. fluxErr or magErr).
void print(std::ostream &out) const override
Print a string representation of the contents of this mapping, for debugging.
double transformError(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override
Return the on-sky transformed flux uncertainty for measuredStar on ccdImage.
std::shared_ptr< afw::image::PhotoCalib > toPhotoCalib(CcdImage const &ccdImage) const override
Return the mapping of ccdImage represented as a PhotoCalib.
Photometry model with constraints, .
PrepPhotoCalib prepPhotoCalib(CcdImage const &ccdImage) const
Helper for preparing toPhotoCalib()
void initialize(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, int visitOrder)
Initialize the chip, visit, and chipVisit mappings by creating appropriate transforms and mappings.
PhotometryMappingBase * findMapping(CcdImage const &ccdImage) const override
Return a pointer to the mapping associated with this ccdImage.
void freezeErrorTransform() override
Once this routine has been called, the error transform is not modified by offsetParams().
void offsetParams(Eigen::VectorXd const &delta) override
Offset the parameters by the provided amounts (by -delta).
ConstrainedPhotometryModel(ConstrainedPhotometryModel &&)=delete
ConstrainedPhotometryModel & operator=(ConstrainedPhotometryModel &&)=delete
ConstrainedPhotometryModel(CcdImageList const &ccdImageList, geom::Box2D const &focalPlaneBBox, LOG_LOGGER log, int visitOrder=7, double errorPedestal=0)
Construct a constrained photometry model.
void print(std::ostream &out) const override
Print a string representation of the contents of this mapping, for debugging.
std::size_t getTotalParameters() const override
Return the total number of parameters in this model.
Eigen::Index assignIndices(std::string const &whatToFit, Eigen::Index firstIndex) override
Assign indices in the full matrix to the parameters being fit in the mappings, starting at firstIndex...
void getMappingIndices(CcdImage const &ccdImage, IndexVector &indices) const override
Get how this set of parameters (of length Npar()) map into the "grand" fit.
~ConstrainedPhotometryModel()=default
ConstrainedPhotometryModel & operator=(ConstrainedPhotometryModel const &)=delete
void computeParameterDerivatives(MeasuredStar const &measuredStar, CcdImage const &ccdImage, Eigen::VectorXd &derivatives) const override
Compute the parametric derivatives of this model.
ConstrainedPhotometryModel(ConstrainedPhotometryModel const &)=delete
No copy or move: there is only ever one instance of a given model (i.e. per ccd+visit)
virtual double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib)=0
Return the initial calibration to use from this photoCalib.
FittedStars are objects whose position or flux is going to be fitted, and which come from the associa...
Sources measured on images.
Relates transform(s) to their position in the fitting matrix and allows interaction with the transfor...
Objects used as position/flux anchors (e.g.
double nanojanskyToABMagnitude(double flux)
Convert a flux in nanojansky to AB magnitude.
To hold the return of prepPhotoCalib.
afw::geom::TransformPoint2ToGeneric visitTransform
std::shared_ptr< afw::geom::TransformPoint2ToPoint2 > pixToFocal