LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
Utility class for handling flag fields that indicate the failure modes of an algorithm. More...
#include <FlagHandler.h>
Public Member Functions | |
FlagHandler () | |
Each error should have a corresponding static FlagDefinition object. | |
FlagHandler (afw::table::SubSchema const &s, FlagDefinitionList const &flagDefs, FlagDefinitionList const &exclDefs=FlagDefinitionList::getEmptyList()) | |
Construct a FlagHandler to manage fields already added to a schema. | |
unsigned int | getFlagNumber (std::string const &flagName) const |
Return the index of a flag with the given flag name. | |
std::string | getFlagName (std::size_t i) const |
Return the value of the flag name corresponding to the given flag index. | |
bool | getValue (afw::table::BaseRecord const &record, std::size_t i) const |
Return the value of the flag field corresponding to the given flag index. | |
bool | getValue (afw::table::BaseRecord const &record, std::string const &flagName) const |
Return the value of the flag field with the given flag name. | |
void | setValue (afw::table::BaseRecord &record, std::size_t i, bool value) const |
Set the flag field corresponding to the given flag index. | |
void | setValue (afw::table::BaseRecord &record, std::string const &flagName, bool value) const |
Set the flag field corresponding to the given flag name. | |
std::size_t | getFailureFlagNumber () const |
Get the index of the General Failure flag, if one is defined. | |
void | handleFailure (afw::table::BaseRecord &record, MeasurementError const *error=nullptr) const |
Handle an expected or unexpected Exception thrown by a measurement algorithm. | |
Static Public Member Functions | |
static std::string const & | getFailureFlagName () |
Define the universal name of the general failure flag. | |
static FlagHandler | addFields (afw::table::Schema &schema, std::string const &prefix, FlagDefinitionList const &flagDefs, FlagDefinitionList const &exclDefs=FlagDefinitionList::getEmptyList()) |
Add Flag fields to a schema, creating a FlagHandler object to manage them. | |
Public Attributes | |
std::size_t | failureFlagNumber |
Utility class for handling flag fields that indicate the failure modes of an algorithm.
The typical pattern for using FlagHandler within an Algorithm is:
See PsfFluxAlgorithm for a complete example.
Definition at line 149 of file FlagHandler.h.
|
inline |
Each error should have a corresponding static FlagDefinition object.
In the Algorithm header file, this will be defined like this:
static FlagDefinition const & FAILURE; static FlagDefinition const & SOME_OTHER_FAILURE_MODE; ...
A static FlagDefinitionList is created in the Algorithm .cc file, like this:
FlagDefinitionList flagDefinitions; FlagDefinition const FAILURE = flagDefinitions.addFailureFlag(); FlagDefinition const FAILURE_MODE = flagDefinitions.add("flag_mode", "Specific failure flag");
Default constructor for delayed initialization.
This constructor creates an invalid, unusable FlagHandler in the same way a const_iterator default constructor constructs an invalid const_iterator. Its only purpose is to delay construction of the FlagHandler from an Algorithm constructor's initializer list to the constructor body, which can be necessary when the list of possible flags depends on the algorithm's configuration. To use this constructor to delay initialization, simply use it in the initializer list, and then assign the result of a call to addFields() to the FlagHandler data member later in the constructor.
Definition at line 177 of file FlagHandler.h.
lsst::meas::base::FlagHandler::FlagHandler | ( | afw::table::SubSchema const & | s, |
FlagDefinitionList const & | flagDefs, | ||
FlagDefinitionList const & | exclDefs = FlagDefinitionList::getEmptyList() ) |
Construct a FlagHandler to manage fields already added to a schema.
This is primarily intended for use by forced measurement algorithms that need to parse the flags of the single-frame measurement algorithms providing their reference parameters.
[in] | A | SubSchema object that holds the fields to extract and their namespace. Obtainable from the arguments to addFields() as "schema[prefix]". |
[in] | flagDefs | Reference to a FlagDefinitionList |
[in] | exclDefs | optional FlagDefinitionList of flags to exclude |
As with addFields(), pointers must be valid only for the duration of this constructor call.
Definition at line 68 of file FlagHandler.cc.
|
static |
Add Flag fields to a schema, creating a FlagHandler object to manage them.
This is the way FlagHandlers will typically be constructed for new algorithms.
[out] | schema | Schema to which fields should be added. |
[in] | prefix | String name of the algorithm or algorithm component. Field names will be constructed by using schema.join() on this and the flag name from the FlagDefinition array. |
[in] | flagDefs | Reference to a FlagDefinitionList |
[in] | exclDefs | optional FlagDefinitionList of flags to exclude |
If the set of flags depends on the algorithm configuration, a flag may be excluded from the schema using the optional exclDefs parameter. This can be specified using an initializer_list, as in: _flagHandler = FlagHandler::addFields(schema, prefix, flagDefs, {NO_PSF})
Definition at line 47 of file FlagHandler.cc.
|
inlinestatic |
Define the universal name of the general failure flag.
Definition at line 182 of file FlagHandler.h.
|
inline |
Get the index of the General Failure flag, if one is defined.
This flag is defined by most algorithms, and if defined, is set whenever an error is caught by the FlagHandler. If no General Failure flag is defined, this routine will return FlagDefinition::number_undefined
Definition at line 287 of file FlagHandler.h.
|
inline |
Return the value of the flag name corresponding to the given flag index.
Definition at line 234 of file FlagHandler.h.
|
inline |
Return the index of a flag with the given flag name.
Definition at line 223 of file FlagHandler.h.
|
inline |
Return the value of the flag field corresponding to the given flag index.
Definition at line 243 of file FlagHandler.h.
|
inline |
Return the value of the flag field with the given flag name.
Definition at line 252 of file FlagHandler.h.
void lsst::meas::base::FlagHandler::handleFailure | ( | afw::table::BaseRecord & | record, |
MeasurementError const * | error = nullptr ) const |
Handle an expected or unexpected Exception thrown by a measurement algorithm.
If the exception is expected, it should inherit from MeasurementError and can be passed here; this allows handleFailure to extract the failure mode enum value from the exception and set the corresponding flag. The general failure flag will be set regardless of whether the "error" argument is nullptr (which happens when an unexpected error occurs).
Definition at line 86 of file FlagHandler.cc.
|
inline |
Set the flag field corresponding to the given flag index.
Definition at line 263 of file FlagHandler.h.
|
inline |
Set the flag field corresponding to the given flag name.
Definition at line 273 of file FlagHandler.h.
std::size_t lsst::meas::base::FlagHandler::failureFlagNumber |
Definition at line 298 of file FlagHandler.h.