1 #ifndef MeasAlgoShapeletEllipse_H
2 #define MeasAlgoShapeletEllipse_H
13 namespace algorithms {
26 Ellipse(std::complex<double> cen, std::complex<double> gamma,
27 std::complex<double> mu) :
64 const std::vector<PixelList>& pix,
65 int order,
int order2,
int maxm,
66 double sigma,
long& flag,
double thresh,
DMatrix* cov=0);
68 const std::vector<PixelList>& pix,
69 const std::vector<BVec>& psf,
70 int order,
int order2,
int maxm,
71 double sigma,
long& flag,
double thresh,
DMatrix* cov=0);
76 const BVec&
b,
bool psf,
int galOrder2,
double thresh,
95 const std::vector<PixelList>& pix,
BVec& bret,
96 int order,
int order2,
int maxm,
DMatrix* bcov=0)
const;
98 const std::vector<PixelList>& pix,
99 const std::vector<BVec>& psf,
BVec& bret,
100 int order,
int order2,
int maxm,
DMatrix* bcov=0)
const;
108 const std::vector<PixelList>& pix,
109 const std::vector<BVec>& psf,
BVec& bret,
int order,
int order2,
110 double pixScale,
DMatrix* bcov=0)
const;
112 const std::vector<PixelList>& pix,
BVec& bret,
int order,
int order2,
113 double pixScale,
DMatrix* bcov=0)
const;
117 void preShiftBy(
const std::complex<double>& cen,
118 const std::complex<double>& gamma,
119 const std::complex<double>& mu);
121 const std::complex<double>& gamma,
122 const std::complex<double>& mu);
162 const std::vector<PixelList>& pix,
163 const std::vector<BVec>* psf,
int order,
int order2,
int maxm,
164 double sigma,
long& flag,
double thresh,
DMatrix* cov=0);
167 const std::vector<PixelList>& pix,
168 const std::vector<BVec>* psf,
BVec& bret,
169 int order,
int order2,
int maxm,
DMatrix* bcov=0)
const;
172 const std::vector<PixelList>& pix,
173 const std::vector<BVec>* psf,
BVec& bret,
174 int order,
int order2,
double pixScale,
DMatrix* bcov=0)
const;
187 { s.
write(os);
return os; }
193 const std::complex<double> g1,
const std::complex<double> g2);
199 std::complex<double> c1, std::complex<double> g1, std::complex<double> m1,
200 std::complex<double> c2, std::complex<double> g2, std::complex<double> m2,
201 std::complex<double>& c3, std::complex<double>& g3,
202 std::complex<double>& m3);
void setTheta(double theta)
bool doMeasure(const std::vector< PixelList > &pix, const std::vector< BVec > *psf, int order, int order2, int maxm, double sigma, long &flag, double thresh, DMatrix *cov=0)
bool doAltMeasureShapelet(const std::vector< PixelList > &pix, const std::vector< BVec > *psf, BVec &bret, int order, int order2, double pixScale, DMatrix *bcov=0) const
Ellipse & operator=(const Ellipse &e2)
void postShiftBy(const std::complex< double > &cen, const std::complex< double > &gamma, const std::complex< double > &mu)
Ellipse(const Ellipse &e2)
bool findRoundFrame(const BVec &b, bool psf, int galOrder2, double thresh, long &flag, DMatrix *cov=0)
std::complex< double > _gamma
std::ostream & operator<<(std::ostream &os, const Position &pos)
Ellipse(std::complex< double > cen, std::complex< double > gamma, std::complex< double > mu)
void crudeMeasure(const PixelList &pix, double sigma)
std::complex< double > addShears(const std::complex< double > g1, const std::complex< double > g2)
afw::table::Key< double > sigma
void write(std::ostream &os) const
void peakCentroid(const PixelList &pix, double maxr)
void preShiftBy(const std::complex< double > &cen, const std::complex< double > &gamma, const std::complex< double > &mu)
bool doMeasureShapelet(const std::vector< PixelList > &pix, const std::vector< BVec > *psf, BVec &bret, int order, int order2, int maxm, DMatrix *bcov=0) const
std::complex< double > getGamma() const
std::complex< double > _cen
bool altMeasureShapelet(const std::vector< PixelList > &pix, const std::vector< BVec > &psf, BVec &bret, int order, int order2, double pixScale, DMatrix *bcov=0) const
void CalculateShift(std::complex< double > c1, std::complex< double > g1, std::complex< double > m1, std::complex< double > c2, std::complex< double > g2, std::complex< double > m2, std::complex< double > &c3, std::complex< double > &g3, std::complex< double > &m3)
bool measureShapelet(const std::vector< PixelList > &pix, BVec &bret, int order, int order2, int maxm, DMatrix *bcov=0) const
bool isFixedGamma() const
afw::table::Key< double > b
void setCen(const std::complex< double > &cen)
bool measure(const std::vector< PixelList > &pix, int order, int order2, int maxm, double sigma, long &flag, double thresh, DMatrix *cov=0)
std::complex< double > getCen() const
void setGamma(const std::complex< double > &gamma)
std::complex< double > _mu