25#ifndef LSST_JOINTCAL_SIMPLE_ASTROMETRY_MAPPING_H
26#define LSST_JOINTCAL_SIMPLE_ASTROMETRY_MAPPING_H
91 Eigen::MatrixX2d &
H)
const override;
144 Eigen::MatrixX2d &
H)
const override;
157 Eigen::Matrix2d preDer;
170 Eigen::MatrixX2d &
H)
const {
virtual class needed in the abstraction of the distortion model
A Point with uncertainties.
Class for a simple mapping implementing a generic AstrometryTransform.
std::shared_ptr< AstrometryTransform > errorProp
virtual void freezeErrorTransform()
bool getToBeFit() const
Get whether this mapping is fit as part of a Model.
SimpleAstrometryMapping & operator=(SimpleAstrometryMapping const &)=delete
void computeTransformAndDerivatives(FatPoint const &where, FatPoint &outPoint, Eigen::MatrixX2d &H) const override
Actually applies the AstrometryMapping and evaluates the derivatives w.r.t the fitted parameters.
void print(std::ostream &out) const override
Print a string representation of the contents of this mapping, for debugging.
virtual AstrometryTransform const & getTransform() const
Access to the (fitted) transform.
std::size_t getNpar() const override
Number of parameters in total.
void setIndex(Eigen::Index i)
Set the index of this mapping in the grand fit.
std::shared_ptr< AstrometryTransform > transform
SimpleAstrometryMapping(SimpleAstrometryMapping &&)=delete
void getMappingIndices(IndexVector &indices) const override
Sets how this set of parameters (of length Npar()) map into the "grand" fit Expects that indices has ...
void setToBeFit(bool value)
Set whether this Mapping is to be fit as part of a Model.
std::unique_ptr< AstrometryTransformLinear > lin
SimpleAstrometryMapping & operator=(SimpleAstrometryMapping &&)=delete
SimpleAstrometryMapping(AstrometryTransform const &astrometryTransform, bool toBeFit=true)
void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const override
The same as above but without the parameter derivatives (used to evaluate chi^2)
Eigen::Index getIndex() const
position of the parameters within the grand fitting scheme
void positionDerivative(Point const &where, Eigen::Matrix2d &derivative, double epsilon) const override
The derivative w.r.t. position.
void offsetParams(Eigen::VectorXd const &delta) override
Remember the error scale and freeze it.
SimpleAstrometryMapping(SimpleAstrometryMapping const &)=delete
No copy or move: there is only ever one instance of a given mapping (i.e.. per ccd+visit)
Mapping implementation for a polynomial transformation.
~SimplePolyMapping()=default
SimplePolyMapping(SimplePolyMapping const &)=delete
No copy or move: there is only ever one instance of a given mapping (i.e.. per ccd+visit)
SimplePolyMapping & operator=(SimplePolyMapping &&)=delete
SimplePolyMapping(SimplePolyMapping &&)=delete
void computeTransformAndDerivatives(FatPoint const &where, FatPoint &outPoint, Eigen::MatrixX2d &H) const override
Calls the transforms and implements the centering and scaling of coordinates.
void positionDerivative(Point const &where, Eigen::Matrix2d &derivative, double epsilon) const override
The derivative w.r.t. position.
AstrometryTransform const & getTransform() const override
Access to the (fitted) transform.
SimplePolyMapping & operator=(SimplePolyMapping const &)=delete
void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const override
The same as above but without the parameter derivatives (used to evaluate chi^2)