lsst::afw::table::SlotDefinition Class Reference

Base class for helper classes that define slots on SourceTable/SourceRecord. More...

#include <slots.h>

Inheritance diagram for lsst::afw::table::SlotDefinition:

Public Member Functions

SlotDefinition (std::string const &name)
Construct a SlotDefinition from the name of the slot (e.g. "Centroid" or "PsfFlux") More...

std::string getName () const
Return the name of the slot (e.g. "Centroid" or "PsfFlux") More...

std::string getAlias () const
Return the alias field prefix used to lookup Keys for the slot. More...

SlotDefinition (SlotDefinition const &)=default

SlotDefinition (SlotDefinition &&)=default

SlotDefinitionoperator= (SlotDefinition const &)=default

SlotDefinitionoperator= (SlotDefinition &&)=default

~SlotDefinition ()=default

Protected Attributes

std::string _name

Detailed Description

Base class for helper classes that define slots on SourceTable/SourceRecord.

Each type of slot corresponds to a subclass of SlotDefinition, and each actual slot corresponds to a particular field name prefix. For instance, to look up the centroid slot, we look for fields named "slot_Centroid_x" and "slot_Centroid_y". Instead of actually naming a particular field that, however, we use Schema's alias mechanism (see AliasMap) to make these field name lookups resolve to the name of other fields. The actual definition of the slots is thus managed by the Schema's AliasMap, though a SourceTable object will cache Keys for the various slots to make sure accessing slot values is efficient (more precisely, when you set an alias related to a slot on an AliasMap, any table it corresponds to will receive a notification that it should update its Keys). These cached Keys are actually stored within the SlotDefinition (as data members of derived classes).

Note that the uncertainty and failure flag components of slots are not required; a slot may have only a measurement defined, or a measurement and either one of these (but not both). A slot may not have only an uncertainty and/or a a failure flag, however.

A SlotDefinition instance is not just an internal object used by SourceTable; it can also be used to inspect the slots via SourceTable::getXxxSlot(), which is now the preferred way to access the Keys that slots correspond to. SlotDefinition objects should only be constructed by SourceTable, however.

Definition at line 47 of file slots.h.

◆ SlotDefinition() [1/3]

 lsst::afw::table::SlotDefinition::SlotDefinition ( std::string const & name )
inlineexplicit

Construct a SlotDefinition from the name of the slot (e.g. "Centroid" or "PsfFlux")

Definition at line 50 of file slots.h.

50 : _name(name) {}
table::Key< std::string > name
Definition: Amplifier.cc:116

◆ SlotDefinition() [2/3]

 lsst::afw::table::SlotDefinition::SlotDefinition ( SlotDefinition const & )
default

◆ SlotDefinition() [3/3]

 lsst::afw::table::SlotDefinition::SlotDefinition ( SlotDefinition && )
default

◆ ~SlotDefinition()

 lsst::afw::table::SlotDefinition::~SlotDefinition ( )
default

◆ getAlias()

 std::string lsst::afw::table::SlotDefinition::getAlias ( ) const
inline

Return the alias field prefix used to lookup Keys for the slot.

This simply prepends "slot_" to the slot name.

Definition at line 60 of file slots.h.

60 { return "slot_" + _name; }

◆ getName()

 std::string lsst::afw::table::SlotDefinition::getName ( ) const
inline

Return the name of the slot (e.g. "Centroid" or "PsfFlux")

Definition at line 53 of file slots.h.

53 { return _name; }

◆ operator=() [1/2]

 SlotDefinition& lsst::afw::table::SlotDefinition::operator= ( SlotDefinition && )
default

◆ operator=() [2/2]

 SlotDefinition& lsst::afw::table::SlotDefinition::operator= ( SlotDefinition const & )
default

◆ _name

 std::string lsst::afw::table::SlotDefinition::_name
protected

Definition at line 69 of file slots.h.

The documentation for this class was generated from the following file:
• /j/snowflake/release/lsstsw/stack/lsst-scipipe-0.7.0/Linux64/afw/22.0.1-42-gca6935d93+ba5e5ca3eb/include/lsst/afw/table/slots.h