lsst.jointcal  16.0-7-g6e35192+1
ConstrainedPhotometryModel.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 #ifndef LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H
3 #define LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H
4 
5 #include <map>
6 
10 
11 namespace lsst {
12 namespace jointcal {
13 
26 public:
35  explicit ConstrainedPhotometryModel(CcdImageList const &ccdImageList,
36  afw::geom::Box2D const &focalPlaneBBox, int visitOrder = 7);
37 
43 
45  unsigned assignIndices(std::string const &whatToFit, unsigned firstIndex) override;
46 
48  void offsetParams(Eigen::VectorXd const &delta) override;
49 
51  void offsetFittedStar(FittedStar &fittedStar, double delta) const { fittedStar.getFlux() -= delta; }
52 
54  double computeResidual(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override;
55 
57  double transform(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override;
58 
60  double transformError(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override;
61 
63  void freezeErrorTransform() override;
64 
66  void getMappingIndices(CcdImage const &ccdImage, std::vector<unsigned> &indices) const override;
67 
69  int getTotalParameters() const override;
70 
72  void computeParameterDerivatives(MeasuredStar const &measuredStar, CcdImage const &ccdImage,
73  Eigen::VectorXd &derivatives) const override;
74 
76  double getRefError(RefStar const &refStar) const override { return refStar.getFluxErr(); }
77 
79  double computeRefResidual(FittedStar const &fittedStar, RefStar const &refStar) const override {
80  return fittedStar.getFlux() - refStar.getFlux();
81  };
82 
84  std::shared_ptr<afw::image::PhotoCalib> toPhotoCalib(CcdImage const &ccdImage) const override;
85 
87  void dump(std::ostream &stream = std::cout) const override;
88 
89 private:
90  PhotometryMappingBase *findMapping(CcdImage const &ccdImage) const override;
91 
92  // Which components of the model are we fitting currently?
93  bool _fittingChips;
94  bool _fittingVisits;
95 
96  /* The per-ccdImage transforms, each of which is a composition of a chip and visit transform.
97  * Not all pairs of _visitMap[visit] and _chipMap[chip] are guaranteed to have an entry in
98  * _chipVisitMap (for example, one ccd in one visit might fail to produce a catalog).
99  */
101  MapType _chipVisitMap;
102 
103  // The per-visit transforms that go into _chipVisitMap.
105  VisitMapType _visitMap;
106  // The per-chip transforms that go into _chipVisitMap.
108  ChipMapType _chipMap;
109 };
110 
111 } // namespace jointcal
112 } // namespace lsst
113 
114 #endif // LSST_JOINTCAL_CONSTRAINED_PHOTOMETRY_MODEL_H
Objects used as position anchors, typically USNO stars.
Definition: RefStar.h:16
double getFluxErr(size_t filter) const
reference fluxErr in a given filter
Definition: RefStar.h:44
Relates transfo(s) to their position in the fitting matrix and allows interaction with the transfo(s)...
ConstrainedPhotometryModel(CcdImageList const &ccdImageList, afw::geom::Box2D const &focalPlaneBBox, int visitOrder=7)
Construct a constrained photometry model.
void offsetFittedStar(FittedStar &fittedStar, double delta) const
Offset the appropriate flux or magnitude.
STL class.
double getRefError(RefStar const &refStar) const override
Return the refStar error appropriate for this model (e.g. fluxErr or magErr).
STL class.
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.
Class for a simple mapping implementing a generic Gtransfo.
double computeResidual(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override
double transformError(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override
Return the on-sky transformed flux uncertainty for measuredStar on ccdImage.
objects measured on actual images.
Definition: MeasuredStar.h:19
void computeParameterDerivatives(MeasuredStar const &measuredStar, CcdImage const &ccdImage, Eigen::VectorXd &derivatives) const override
Compute the parametric derivatives of this model.
double getFlux() const
Definition: BaseStar.h:73
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.
Interface class for PhotometryFit.
Photometry model with constraints, .
double transform(CcdImage const &ccdImage, MeasuredStar const &measuredStar) const override
Return the on-sky transformed flux for measuredStar on ccdImage.
double getFlux(size_t filter) const
reference flux in a given filter
Definition: RefStar.h:42
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)...
std::shared_ptr< afw::image::PhotoCalib > toPhotoCalib(CcdImage const &ccdImage) const override
Return the mapping of ccdImage represented as a PhotoCalib.
Handler of an actual image from a single CCD.
Definition: CcdImage.h:41
ConstrainedPhotometryModel & operator=(ConstrainedPhotometryModel const &)=delete
STL class.
The objects which have been measured several times.
Definition: FittedStar.h:37
void freezeErrorTransform() override
Once this routine has been called, the error transform is not modified by offsetParams().
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.