LSSTApplications  11.0-24-g0a022a1,14.0+77,15.0,15.0+1
LSSTDataManagementBasePackage
Mapping.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 #ifndef LSST_JOINTCAL_MAPPING_H
3 #define LSST_JOINTCAL_MAPPING_H
4 
5 #include <vector>
7 
8 namespace lsst {
9 namespace jointcal {
10 
11 class FatPoint;
12 class Point;
13 
15 class Mapping {
16 public:
18  virtual unsigned getNpar() const = 0;
19 
22  virtual void getMappingIndices(std::vector<unsigned> &indices) const = 0;
23 
25 
28  virtual void computeTransformAndDerivatives(FatPoint const &where, FatPoint &outPoint,
29  Eigen::MatrixX2d &H) const = 0;
31  virtual void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const = 0;
32 
34  // virtual void freezeErrorTransform() = 0;
35 
36  virtual void offsetParams(Eigen::VectorXd const &delta) = 0;
37 
39  virtual void positionDerivative(Point const &where, Eigen::Matrix2d &derivative,
40  double epsilon) const = 0;
41 
43  virtual ~Mapping(){};
44 };
45 } // namespace jointcal
46 } // namespace lsst
47 #endif // LSST_JOINTCAL_MAPPING_H
virtual class needed in the abstraction of the distortion model
Definition: Mapping.h:15
A point in a plane.
Definition: Point.h:13
virtual ~Mapping()
Definition: Mapping.h:43
virtual void computeTransformAndDerivatives(FatPoint const &where, FatPoint &outPoint, Eigen::MatrixX2d &H) const =0
Actually applies the mapping and evaluates the derivatives w.r.t the fitted parameters.
virtual void getMappingIndices(std::vector< unsigned > &indices) const =0
Sets how this set of parameters (of length Npar()) map into the "grand" fit Expects that indices has ...
A Point with uncertainties.
Definition: FatPoint.h:11
A base class for image defects.
Definition: cameraGeom.dox:3
Eigen::Matrix< double, Eigen::Dynamic, 2 > MatrixX2d
Definition: Eigenstuff.h:9
virtual unsigned getNpar() const =0
Number of parameters in total.
virtual void positionDerivative(Point const &where, Eigen::Matrix2d &derivative, double epsilon) const =0
The derivative w.r.t. position.
virtual void offsetParams(Eigen::VectorXd const &delta)=0
Remember the error scale and freeze it.
virtual void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const =0
The same as above but without the parameter derivatives (used to evaluate chi^2)