lsst.jointcal  16.0-16-g925333c+6
MeasuredStar.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 #ifndef LSST_JOINTCAL_MEASURED_STAR_H
3 #define LSST_JOINTCAL_MEASURED_STAR_H
4 
5 #include <iostream>
6 
7 #include "lsst/afw/table/misc.h"
10 #include "lsst/jointcal/StarList.h"
11 
12 namespace lsst {
13 namespace jointcal {
14 
15 class CcdImage;
16 
19 class MeasuredStar : public BaseStar {
20 public:
22  : BaseStar(),
23  _id(0),
24  _instFlux(0.),
25  _instFluxErr(0.),
26  _ccdImage(0),
27  _valid(true),
28  _xFocal(0.0),
29  _yFocal(0.0),
30  _instMag(0.),
31  _instMagErr(0.) {}
32 
33  MeasuredStar(BaseStar const &baseStar)
34  : BaseStar(baseStar),
35  _id(0),
36  _instFluxErr(0.),
37  _ccdImage(0),
38  _valid(true),
39  _xFocal(0.0),
40  _yFocal(0.0),
41  _instMag(0.),
42  _instMagErr(0.) {}
43 
46  MeasuredStar(MeasuredStar const &) = default;
47  MeasuredStar(MeasuredStar &&) = delete;
48  MeasuredStar &operator=(MeasuredStar const &) = delete;
49  MeasuredStar &operator=(MeasuredStar &&) = delete;
50 
52  if (fittedStar) fittedStar->getMeasurementCount()++;
53  _fittedStar = std::move(fittedStar);
54  }
55 
56  void dump(std::ostream &stream = std::cout) const {
57  BaseStar::dump(stream);
58  stream << " instFlux: " << _instFlux << " instFluxErr: " << _instFluxErr << " id: " << _id
59  << " valid: " << _valid;
60  }
61 
62  void setInstFluxAndErr(double instFlux, double instFluxErr) {
63  _instFlux = instFlux;
64  _instMag = magFromFlux(instFlux);
65  _instFluxErr = instFluxErr;
66  _instMagErr = magErrFromFluxErr(instFlux, instFluxErr);
67  }
68 
69  double getInstFlux() const { return _instFlux; }
70  double getInstFluxErr() const { return _instFluxErr; }
71  double getInstMag() const { return _instMag; }
72  double getInstMagErr() const { return _instMagErr; }
73 
74  void setId(afw::table::RecordId id) { _id = id; }
75  afw::table::RecordId getId() { return _id; }
76 
78  double getMagWeight() const { return (_instFlux * _instFlux / (_instFluxErr * _instFluxErr)); }
79 
80  double getXFocal() const { return _xFocal; }
81  void setXFocal(double xFocal) { _xFocal = xFocal; }
82  double getYFocal() const { return _yFocal; }
83  void setYFocal(double yFocal) { _yFocal = yFocal; }
84 
85  std::shared_ptr<FittedStar> getFittedStar() const { return _fittedStar; };
86 
87  CcdImage const &getCcdImage() const { return *_ccdImage; };
88 
89  void setCcdImage(const CcdImage *ccdImage) { _ccdImage = ccdImage; };
90 
92  bool isValid() const { return _valid; }
94  void setValid(bool v) { _valid = v; }
95 
96 private:
97  afw::table::RecordId _id; // id in original catalog
98 
99  // on-chip flux, in ADU
100  double _instFlux;
101  double _instFluxErr;
102 
103  const CcdImage *_ccdImage;
104  // Note: _fittedStar is not const, but measuredStar won't modify it.
105  std::shared_ptr<FittedStar> _fittedStar;
106  bool _valid;
107 
108  double _xFocal, _yFocal;
109 
110  // on-sensor "magnitudes", used when fitting the MagnitudeModel.
111  double _instMag;
112  double _instMagErr;
113 };
114 
115 /****** MeasuredStarList */
116 
118 class MeasuredStarList : public StarList<MeasuredStar> {
119 public:
121 
122  void setCcdImage(const CcdImage *_ccdImage);
123 };
124 
125 typedef MeasuredStarList::const_iterator MeasuredStarCIterator;
126 typedef MeasuredStarList::iterator MeasuredStarIterator;
127 
130 const BaseStarList &Measured2Base(const MeasuredStarList &This);
131 const BaseStarList *Measured2Base(const MeasuredStarList *This);
132 } // namespace jointcal
133 } // namespace lsst
134 
135 #endif // LSST_JOINTCAL_MEASURED_STAR_H
void setXFocal(double xFocal)
Definition: MeasuredStar.h:81
virtual void dump(std::ostream &stream=std::cout) const
utility
Definition: BaseStar.h:59
MeasuredStarList::iterator MeasuredStarIterator
Definition: MeasuredStar.h:126
MeasuredStar(BaseStar const &baseStar)
Definition: MeasuredStar.h:33
CcdImage const & getCcdImage() const
Definition: MeasuredStar.h:87
MeasuredStar & operator=(MeasuredStar const &)=delete
void setCcdImage(const CcdImage *ccdImage)
Definition: MeasuredStar.h:89
A list of MeasuredStar. They are usually filled in Associations::createCcdImage.
Definition: MeasuredStar.h:118
void setYFocal(double yFocal)
Definition: MeasuredStar.h:83
The base class for handling stars. Used by all matching routines.
Definition: BaseStar.h:27
afw::table::RecordId getId()
Definition: MeasuredStar.h:75
void dump(std::ostream &stream=std::cout) const
utility
Definition: MeasuredStar.h:56
std::lists of Stars.
Definition: StarList.h:35
void setFittedStar(std::shared_ptr< FittedStar > fittedStar)
Definition: MeasuredStar.h:51
Class for a simple mapping implementing a generic Gtransfo.
MeasuredStarList::const_iterator MeasuredStarCIterator
Definition: MeasuredStar.h:125
void setInstFluxAndErr(double instFlux, double instFluxErr)
Definition: MeasuredStar.h:62
double getInstMagErr() const
Definition: MeasuredStar.h:72
double getInstFluxErr() const
Definition: MeasuredStar.h:70
objects measured on actual images.
Definition: MeasuredStar.h:19
double getMagWeight() const
the inverse of the mag variance
Definition: MeasuredStar.h:78
T move(T... args)
void setValid(bool v)
Fits may use that to discard outliers.
Definition: MeasuredStar.h:94
BaseStarList & Measured2Base(MeasuredStarList &This)
Definition: MeasuredStar.cc:35
Handler of an actual image from a single CCD.
Definition: CcdImage.h:41
void setId(afw::table::RecordId id)
Definition: MeasuredStar.h:74
bool isValid() const
Fits may use that to discard outliers.
Definition: MeasuredStar.h:92
std::shared_ptr< FittedStar > getFittedStar() const
Definition: MeasuredStar.h:85
STL class.