2 #ifndef LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H 3 #define LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H 36 afw::geom::Box2D
const &focalPlaneBBox,
int visitOrder = 7)
37 : _fittingChips(false), _fittingVisits(false) {
51 void offsetParams(Eigen::VectorXd
const &delta)
override;
64 Eigen::VectorXd &derivatives)
const override;
89 template <
class ChipTransfo,
class VisitTransfo,
class ChipVisitMapping>
106 initialize<FluxTransfoSpatiallyInvariant, FluxTransfoChebyshev, ChipVisitFluxMapping>(
107 ccdImageList, focalPlaneBBox, visitOrder);
138 return photoCalib->getCalibrationMean();
145 afw::geom::Box2D
const &focalPlaneBBox,
int visitOrder = 7)
147 initialize<MagnitudeTransfoSpatiallyInvariant, MagnitudeTransfoChebyshev, ChipVisitMagnitudeMapping>(
148 ccdImageList, focalPlaneBBox, visitOrder);
153 fittedStar.
getMag() -= delta;
179 return magFromFlux(photoCalib->getCalibrationMean());
186 #endif // LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H Objects used as position anchors, typically USNO stars.
virtual double transformError(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const =0
Return the on-sky transformed flux uncertainty for measuredStar on ccdImage.
double getFluxErr(size_t filter) const
reference fluxErr in a given filter
double getRefError(RefStar const &refStar) const override
Return the refStar error appropriate for this model (e.g. fluxErr or magErr).
double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib)
Return the initial calibration to use from this photoCalib.
ConstrainedFluxModel(CcdImageList const &ccdImageList, afw::geom::Box2D const &focalPlaneBBox, int visitOrder=7)
virtual double computeResidual(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const =0
Compute the residual between the model applied to a star and its associated fittedStar.
Relates transfo(s) to their position in the fitting matrix and allows interaction with the transfo(s)...
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)...
virtual std::shared_ptr< afw::image::PhotoCalib > toPhotoCalib(CcdImage const &ccdImage) const =0
Return the mapping of ccdImage represented as a PhotoCalib.
std::map< VisitIdType, std::shared_ptr< PhotometryMapping > > VisitMapType
ConstrainedPhotometryModel(CcdImageList const &ccdImageList, afw::geom::Box2D const &focalPlaneBBox, int visitOrder=7)
Construct a constrained photometry model.
void offsetFittedStar(FittedStar &fittedStar, double delta) const override
Offset the appropriate flux or magnitude (by -delta).
unsigned assignIndices(std::string const &whatToFit, unsigned firstIndex) override
Assign indices in the full matrix to the parameters being fit in the mappings, starting at firstIndex...
int getTotalParameters() const override
Return the total number of parameters in this model.
double getRefError(RefStar const &refStar) const override
Return the refStar error appropriate for this model (e.g. fluxErr or magErr).
Class for a simple mapping implementing a generic Gtransfo.
PhotometryMappingBase * findMapping(CcdImage const &ccdImage) const override
Return a pointer to the mapping associated with this ccdImage.
objects measured on actual images.
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)...
void initialize(CcdImageList const &ccdImageList, afw::geom::Box2D const &focalPlaneBBox, int visitOrder)
Initialize the chip, visit, and chipVisit mappings by creating appropriate transfos and mappings...
void computeParameterDerivatives(MeasuredStar const &measuredStar, CcdImage const &ccdImage, Eigen::VectorXd &derivatives) const override
Compute the parametric derivatives of this model.
std::map< CcdIdType, std::shared_ptr< PhotometryMapping > > ChipMapType
double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib)
Return the initial calibration to use from this photoCalib.
std::unordered_map< CcdImageKey, std::unique_ptr< ChipVisitPhotometryMapping > > MapType
void dump(std::ostream &stream=std::cout) const override
Dump the contents of the transfos, for debugging.
void offsetParams(Eigen::VectorXd const &delta) override
Offset the parameters by the provided amounts (by -delta).
Interface class for PhotometryFit.
Photometry model with constraints, .
double getFlux(size_t filter) const
reference flux in a given filter
virtual double initialChipCalibration(std::shared_ptr< afw::image::PhotoCalib const > photoCalib)=0
Return the initial calibration to use from this photoCalib.
Handler of an actual image from a single CCD.
ConstrainedPhotometryModel & operator=(ConstrainedPhotometryModel const &)=delete
The objects which have been measured several times.
ConstrainedMagnitudeModel(CcdImageList const &ccdImageList, afw::geom::Box2D const &focalPlaneBBox, int visitOrder=7)
void freezeErrorTransform() override
Once this routine has been called, the error transform is not modified by offsetParams().
virtual double transform(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const =0
Return the on-sky transformed flux for measuredStar on ccdImage.
void getMappingIndices(CcdImage const &ccdImage, std::vector< unsigned > &indices) const override
Get how this set of parameters (of length Npar()) map into the "grand" fit.
void offsetFittedStar(FittedStar &fittedStar, double delta) const override
Offset the appropriate flux or magnitude (by -delta).