lsst.meas.base  14.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
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");
52  LSST_CONTROL_FIELD(doFootprintCheck, bool,
53  "Do check that the centroid is contained in footprint.");
54  LSST_CONTROL_FIELD(maxDistToPeak, double,
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
&quot;If set &gt; 0, Centroid Check also checks distance from footprint peak.&quot; ;
Definition: SdssCentroid.h:55
SdssCentroidAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema)
The Sdss Centroid Algorithm.
Definition: SdssCentroid.h:68
virtual void fail(afw::table::SourceRecord &measRecord, MeasurementError *error=nullptr) const
Handle an exception thrown by the current algorithm by setting flags in the given record...
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
&quot;maximum allowed binning&quot; ;
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
static FlagDefinition const NOT_AT_MAXIMUM
Definition: SdssCentroid.h:77
static FlagDefinitionList const & getFlagDefinitions()
Definition: SdssCentroid.cc:47
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
&quot;if the peak&#39;s less than this insist on binning at least once&quot; ;
Definition: SdssCentroid.h:50
double wfac
&quot;fiddle factor for adjusting the binning&quot; ;
Definition: SdssCentroid.h:51
An abstract base classes for which the same implementation can be used for both SingleFrameAlgorithm ...
Definition: Algorithm.h:184
virtual void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Called to measure a single child source in an image.
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
&quot;Do check that the centroid is contained in footprint.&quot; ;
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.
SdssCentroidTransform(Control const &ctrl, std::string const &name, afw::table::SchemaMapper &mapper)