lsst.meas.base  14.0-17-g4f4ea82+2
SdssCentroid.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 /*
3  * LSST Data Management System
4  * Copyright 2008-2013 LSST Corporation.
5  *
6  * This product includes software developed by the
7  * LSST Project (http://www.lsst.org/).
8  *
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the LSST License Statement and
20  * the GNU General Public License along with this program. If not,
21  * see <http://www.lsstcorp.org/LegalNotices/>.
22  */
23 
24 #ifndef LSST_MEAS_BASE_SdssCentroid_h_INCLUDED
25 #define LSST_MEAS_BASE_SdssCentroid_h_INCLUDED
26 
34 #include "lsst/pex/config.h"
39 
40 namespace lsst { namespace meas { namespace base {
41 
47 public:
48 
49  LSST_CONTROL_FIELD(binmax, int, "maximum allowed binning");
50  LSST_CONTROL_FIELD(peakMin, double, "if the peak's less than this insist on binning at least once");
51  LSST_CONTROL_FIELD(wfac, double, "fiddle factor for adjusting the binning");
53  "Do check that the centroid is contained in footprint.");
55  "If set > 0, Centroid Check also checks distance from footprint peak.");
62  SdssCentroidControl() : binmax(16), peakMin(-1.0), wfac(1.5), doFootprintCheck(true), maxDistToPeak(-1.0) {}
63 };
64 
69 public:
70 
71  // Structures and routines to manage flaghandler
72  static FlagDefinitionList const & getFlagDefinitions();
73  static FlagDefinition const FAILURE;
74  static FlagDefinition const EDGE;
78 
82 
83  SdssCentroidAlgorithm(Control const & ctrl, std::string const & name, afw::table::Schema & schema);
84 
85  virtual void measure(
86  afw::table::SourceRecord & measRecord,
87  afw::image::Exposure<float> const & exposure
88  ) const;
89 
90  virtual void fail(
91  afw::table::SourceRecord & measRecord,
92  MeasurementError * error=nullptr
93  ) const;
94 
95 private:
96 
97  Control _ctrl;
98  CentroidResultKey _centroidKey;
99  FlagHandler _flagHandler;
100  SafeCentroidExtractor _centroidExtractor;
101  CentroidChecker _centroidChecker;
102 };
103 
105 public:
107 
108  SdssCentroidTransform(Control const & ctrl, std::string const & name, afw::table::SchemaMapper & mapper);
109 };
110 
111 }}} // namespace lsst::meas::base
112 
113 #endif // !LSST_MEAS_BASE_SdssCentroid_h_INCLUDED
double maxDistToPeak
"If set > 0, Centroid Check also checks distance from footprint peak." ;
Definition: SdssCentroid.h:55
The Sdss Centroid Algorithm.
Definition: SdssCentroid.h:68
Simple class used to define and document flags The name and doc constitute the identity of the FlagDe...
Definition: FlagHandler.h:38
A C++ control class to handle SdssCentroidAlgorithm&#39;s configuration.
Definition: SdssCentroid.h:46
int binmax
"maximum allowed binning" ;
Definition: SdssCentroid.h:49
Utility class for measurement algorithms that extracts a position from the Centroid slot and handles ...
static FlagDefinition const ALMOST_NO_SECOND_DERIVATIVE
Definition: SdssCentroid.h:76
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Definition: exceptions.h:48
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
static FlagDefinition const NOT_AT_MAXIMUM
Definition: SdssCentroid.h:77
STL class.
Utility class for handling flag fields that indicate the failure modes of an algorithm.
Definition: FlagHandler.h:156
static FlagDefinition const EDGE
Definition: SdssCentroid.h:74
static FlagDefinition const NO_SECOND_DERIVATIVE
Definition: SdssCentroid.h:75
double peakMin
"if the peak&#39;s less than this insist on binning at least once" ;
Definition: SdssCentroid.h:50
double wfac
"fiddle factor for adjusting the binning" ;
Definition: SdssCentroid.h:51
An abstract base classes for which the same implementation can be used for both SingleFrameAlgorithm ...
Definition: Algorithm.h:184
SdssCentroidControl Control
A typedef to the Control object for this algorithm, defined above.
Definition: SdssCentroid.h:81
A FunctorKey for CentroidResult.
SdssCentroidControl()
Default constructor.
Definition: SdssCentroid.h:62
bool doFootprintCheck
"Do check that the centroid is contained in footprint." ;
Definition: SdssCentroid.h:53
vector-type utility class to build a collection of FlagDefinitions
Definition: FlagHandler.h:63
static FlagDefinition const FAILURE
Definition: SdssCentroid.h:73
Base for centroid measurement transformations.