LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
GaussianFlux.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 /*
3  * LSST Data Management System
4  * Copyright 2008-2015 AURA/LSST.
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_GaussianFlux_h_INCLUDED
25 #define LSST_MEAS_BASE_GaussianFlux_h_INCLUDED
26 
27 #include "lsst/pex/config.h"
35 
36 namespace lsst {
37 namespace meas {
38 namespace base {
39 
44 public:
45  LSST_CONTROL_FIELD(background, double, "FIXME! NEVER DOCUMENTED!");
46 
53 };
54 
63 public:
64  // Structures and routines to manage flaghandler
65  static FlagDefinitionList const& getFlagDefinitions();
66  static FlagDefinition const FAILURE;
67 
71 
73 
74  virtual void measure(afw::table::SourceRecord& measRecord,
75  afw::image::Exposure<float> const& exposure) const;
76 
77  virtual void fail(afw::table::SourceRecord& measRecord, MeasurementError* error = nullptr) const;
78 
79 private:
80  Control _ctrl;
81  FluxResultKey _instFluxResultKey;
82  FlagHandler _flagHandler;
83  SafeCentroidExtractor _centroidExtractor;
84  SafeShapeExtractor _shapeExtractor;
85 };
86 
88 public:
92 };
93 
94 } // namespace base
95 } // namespace meas
96 } // namespace lsst
97 
98 #endif // !LSST_MEAS_BASE_GaussianFlux_h_INCLUDED
table::Key< std::string > name
Definition: Amplifier.cc:116
SchemaMapper * mapper
Definition: SchemaMapper.cc:71
table::Schema schema
Definition: python.h:134
Defines the fields and offsets for a table.
Definition: Schema.h:51
A mapping between the keys of two Schemas, used to copy data between them.
Definition: SchemaMapper.h:21
Record class that contains measurements made on a single exposure.
Definition: Source.h:78
vector-type utility class to build a collection of FlagDefinitions
Definition: FlagHandler.h:60
Utility class for handling flag fields that indicate the failure modes of an algorithm.
Definition: FlagHandler.h:148
A FunctorKey for FluxResult.
Definition: FluxUtilities.h:59
Base for instFlux measurement transformations.
A measurement algorithm that estimates instFlux using an elliptical Gaussian weight.
Definition: GaussianFlux.h:62
static FlagDefinition const FAILURE
Definition: GaussianFlux.h:66
static FlagDefinitionList const & getFlagDefinitions()
Definition: GaussianFlux.cc:42
GaussianFluxAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema)
Definition: GaussianFlux.cc:44
virtual void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Called to measure a single child source in an image.
Definition: GaussianFlux.cc:53
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.
Definition: GaussianFlux.cc:65
GaussianFluxControl Control
A typedef to the Control object for this algorithm, defined above.
Definition: GaussianFlux.h:70
A C++ control class to handle GaussianFluxAlgorithm's configuration.
Definition: GaussianFlux.h:43
double background
"FIXME! NEVER DOCUMENTED!" ;
Definition: GaussianFlux.h:45
GaussianFluxControl()
Default constructor.
Definition: GaussianFlux.h:52
GaussianFluxTransform(Control const &ctrl, std::string const &name, afw::table::SchemaMapper &mapper)
Definition: GaussianFlux.h:90
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Definition: exceptions.h:48
Utility class for measurement algorithms that extracts a position from the Centroid slot and handles ...
Utility class for measurement algorithms that extracts an ellipse from the Shape slot and handles err...
An abstract base classes for which the same implementation can be used for both SingleFrameAlgorithm ...
Definition: Algorithm.h:170
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
A preprocessor macro used to define fields in C++ "control object" structs.
Definition: config.h:43
This defines the base of measurement transformations.
A base class for image defects.
Simple class used to define and document flags The name and doc constitute the identity of the FlagDe...
Definition: FlagHandler.h:40