22#ifndef LSST_AFW_CAMERAGEOM_AMPLIFIER_H_INCLUDED
23#define LSST_AFW_CAMERAGEOM_AMPLIFIER_H_INCLUDED
102 void toRecord(table::BaseRecord & record) const;
table::Key< std::string > name
table::Key< double > gain
table::Key< double > saturation
table::Key< double > readNoise
table::Key< table::Flag > rawFlipX
table::Key< int > readoutCorner
table::Key< table::Flag > rawFlipY
table::Key< double > suspectLevel
A mutable Amplifier subclass class that can be used to incrementally construct or modify Amplifiers.
void setSaturation(double saturation)
Level in ADU above which pixels are considered saturated; use nan if no such level applies.
void setRawParallelOverscanBBox(lsst::geom::Box2I const &bbox)
The bounding box of parallel overscan pixels (equivalent to vertical overscan pixels) in the image to...
void setBBox(lsst::geom::Box2I const &bbox)
Bounding box of amplifier pixels in the trimmed, assembled image.
Builder & operator=(Builder const &)=default
Standard copy assignment.
void setRawFlipY(bool rawFlipY)
Is this amplifier (and the image to which it is attached) flipped in the Y direction,...
Builder()=default
Construct a Builder with default values for all fields.
void setReadNoise(double readNoise)
Amplifier read noise, in e-.
void setLinearityThreshold(double threshold)
Level in ADU above which linearity should be applied.
void setLinearityCoeffs(ndarray::Array< double const, 1, 1 > const &coeffs)
Vector of linearity coefficients.
Builder(Builder &&)=default
Standard move constructor.
Builder(Builder const &)=default
Standard copy constructor.
void setRawSerialOverscanBBox(lsst::geom::Box2I const &bbox)
The bounding box of serial overscan pixels (equivalent to horizontal overscan pixels) in the image to...
~Builder() noexcept override=default
void setRawHorizontalPrescanBBox(lsst::geom::Box2I const &bbox)
The bounding box of horizontal/serial prescan pixels in the image to which it is attached,...
static Builder fromRecord(table::BaseRecord const &record)
Construct a new Builder object from the fields in the given record.
void setRawHorizontalOverscanBBox(lsst::geom::Box2I const &bbox)
The bounding box of horizontal overscan pixels in the image to which it is attached,...
void setRawFlipX(bool rawFlipX)
Is this amplifier (and the image to which it is attached) flipped in the X direction,...
Fields const & getFields() const override
void setGain(double gain)
Amplifier gain in e-/ADU.
void setReadoutCorner(ReadoutCorner readoutCorner)
Readout corner in the trimmed, assembled image.
void setRawDataBBox(lsst::geom::Box2I const &bbox)
Bounding box of amplifier data pixels in the image to which it is attached, which is assumed to be un...
Builder & operator=(Builder &&)=default
Standard move assignment.
std::shared_ptr< Amplifier const > finish() const
Construct an immutable Amplifier with the same values as the Builder.
void setLinearityMaximum(double maximum)
Level in ADU above which the linearity relation is poorly defined.
void setSuspectLevel(double suspectLevel)
Level in ADU above which pixels are considered suspicious, meaning they may be affected by unknown sy...
void setLinearityType(std::string const &type)
Name of linearity parameterization.
void setRawVerticalOverscanBBox(lsst::geom::Box2I const &bbox)
The bounding box of vertical overscan pixels in the image to which it is attached,...
void setRawXYOffset(lsst::geom::Extent2I const &xy)
Offset in transformation from this amplifier (and the image to which it is attached) to trimmed,...
void setRawPrescanBBox(lsst::geom::Box2I const &bbox)
The bounding box of (horizontal) prescan pixels in the image to which it is attached,...
void setRawSerialPrescanBBox(lsst::geom::Box2I const &bbox)
The bounding box of horizontal/serial prescan pixels in the image to which it is attached,...
void setName(std::string const &name)
Name of the amplifier.
void setLinearityUnits(std::string const &units)
Units for the input to the linearity relation (DN).
void setRawBBox(lsst::geom::Box2I const &bbox)
Bounding box of the untrimmed amplifier in the image to which it is attached, which is assumed to be ...
Geometry and electronic information about raw amplifier images.
Amplifier(Amplifier &&)=default
Builder rebuild() const
Return a Builder object initialized with the fields of this.
lsst::geom::Box2I getRawVerticalOverscanBBox() const
The bounding box of vertical overscan pixels in the image to which it is attached,...
lsst::geom::Box2I getRawSerialPrescanBBox() const
The bounding box of horizontal/serial prescan pixels in the image to which it is attached,...
lsst::geom::Box2I getRawDataBBox() const
Bounding box of amplifier data pixels in the image to which it is attached, which is assumed to be un...
lsst::geom::Box2I getRawHorizontalOverscanBBox() const
The bounding box of horizontal overscan pixels in the image to which it is attached,...
Amplifier & operator=(Amplifier &&)=default
ndarray::Array< double const, 1, 1 > getLinearityCoeffs() const
Vector of linearity coefficients.
bool getRawFlipX() const
Is this amplifier (and the image to which it is attached) flipped in the X direction,...
ReadoutCorner getReadoutCorner() const
Readout corner in the trimmed, assembled image.
lsst::geom::Box2I getRawSerialOverscanBBox() const
The bounding box of serial overscan pixels (equivalent to horizontal overscan pixels) in the image to...
virtual Fields const & getFields() const =0
void toRecord(table::BaseRecord &record) const
Copy the Amplifier's fields into the given record.
lsst::geom::Box2I getRawBBox() const
Bounding box of the untrimmed amplifier in the image to which it is attached, which is assumed to be ...
Amplifier(Amplifier const &)=default
lsst::geom::Box2I getRawHorizontalPrescanBBox() const
The bounding box of horizontal/serial prescan pixels in the image to which it is attached,...
lsst::geom::Box2I getRawParallelOverscanBBox() const
The bounding box of parallel overscan pixels (equivalent to vertical overscan pixels) in the image to...
lsst::geom::Extent2I getRawXYOffset() const
Offset in transformation from this amplifier (and the image to which it is attached) to trimmed,...
std::string getName() const
Name of the amplifier.
double getLinearityMaximum() const
Level in ADU above which the linearity relation is poorly defined.
static table::Schema getRecordSchema()
Return the schema used in the afw.table representation of amplifiers.
double getSaturation() const
Level in ADU above which pixels are considered saturated; use nan if no such level applies.
std::string getLinearityUnits() const
Units for the input to the linearity relation (DN).
virtual ~Amplifier() noexcept=default
double getSuspectLevel() const
Level in ADU above which pixels are considered suspicious, meaning they may be affected by unknown sy...
bool getRawFlipY() const
Is this amplifier (and the image to which it is attached) flipped in the Y direction,...
Amplifier & operator=(Amplifier const &)=default
std::string getLinearityType() const
Name of linearity parameterization.
lsst::geom::Box2I getRawPrescanBBox() const
The bounding box of (horizontal) prescan pixels in the image to which it is attached,...
double getReadNoise() const
Amplifier read noise, in e-.
double getGain() const
Amplifier gain in e-/ADU.
double getLinearityThreshold() const
Level in ADU above which linearity should be applied.
lsst::geom::Box2I getBBox() const
Bounding box of amplifier pixels in the trimmed, assembled image.
Base class for all records.
Defines the fields and offsets for a table.
An integer coordinate rectangle.
ReadoutCorner
Readout corner, in the frame of reference of the assembled image.
AssemblyState
Assembly state of the amplifier, used to identify bounding boxes and component existence.
std::string linearityType
lsst::geom::Extent2I rawXYOffset
lsst::geom::Box2I rawVerticalOverscanBBox
double linearityThreshold
std::string linearityUnits
lsst::geom::Box2I rawPrescanBBox
lsst::geom::Box2I rawBBox
lsst::geom::Box2I rawHorizontalOverscanBBox
ndarray::Array< double const, 1, 1 > linearityCoeffs
lsst::geom::Box2I rawDataBBox
ReadoutCorner readoutCorner