LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
|
A helper class for Detector that allows amplifiers and most fields to be modified. More...
#include <Detector.h>
Public Types | |
using | CrosstalkMatrix = ndarray::Array<float const, 2> |
Public Member Functions | |
Builder (Builder const &)=delete | |
Builder (Builder &&)=delete | |
Builder & | operator= (Builder const &)=delete |
Builder & | operator= (Builder &&)=delete |
~Builder () noexcept override=0 | |
void | setBBox (lsst::geom::Box2I const &bbox) |
Set the bounding box. | |
void | setType (DetectorType type) |
Set the purpose of this detector. | |
void | setSerial (std::string const &serial) |
Set the detector serial "number". | |
void | setPhysicalType (std::string const &physicalType) |
Set the detector's physical type. | |
void | setCrosstalk (CrosstalkMatrix const &crosstalk) |
Set the crosstalk coefficients. | |
void | unsetCrosstalk () |
Remove the crosstalk coefficient matrix. | |
std::vector< std::shared_ptr< Amplifier::Builder > > const & | getAmplifiers () const |
Return the sequence of Amplifier::Builders directly. | |
auto | begin () |
An iterator range over amplifers. | |
auto | end () |
std::shared_ptr< Amplifier::Builder > | operator[] (size_t i) const |
Get the amplifier builder specified by index. | |
std::shared_ptr< Amplifier::Builder > | operator[] (std::string const &name) const |
Get a builder for the amplifier specified by name. | |
void | append (std::shared_ptr< Amplifier::Builder > builder) |
Append a new amplifier. | |
void | clear () |
Remove all amplifiers. | |
std::size_t | size () const |
Return the number of amplifiers (renamed to len in Python). | |
std::string | getName () const |
Get the detector name. | |
int | getId () const |
Get the detector ID. | |
DetectorType | getType () const |
Return the purpose of this detector. | |
std::string | getSerial () const |
Get the detector serial "number". | |
std::string | getPhysicalType () const |
Get the detector's physical type. | |
lsst::geom::Box2I | getBBox () const |
Get the bounding box. | |
Orientation | getOrientation () const |
Get detector's orientation in the focal plane. | |
lsst::geom::Extent2D | getPixelSize () const |
Get size of pixel along (mm) | |
bool | hasCrosstalk () const |
Have we got crosstalk coefficients? | |
CrosstalkMatrix | getCrosstalk () const |
Get the crosstalk coefficients. | |
CameraSys | makeCameraSys (CameraSys const &cameraSys) const |
Get a coordinate system from a coordinate system (return input unchanged and untested) | |
CameraSys | makeCameraSys (CameraSysPrefix const &cameraSysPrefix) const |
Get a coordinate system from a detector system prefix (add detector name) | |
CameraSys | getNativeCoordSys () const |
The "native" coordinate system of this detector. | |
Protected Member Functions | |
Builder (std::string const &name, int id) | |
Construct a Detector::Builder with no amplifiers and the given name and ID. | |
Builder (Fields fields, std::vector< std::shared_ptr< Amplifier::Builder > > &&lifiers) | |
Construct a Detector::Builder with the given field values and amplifiers. | |
Fields const & | getFields () const override |
Return a reference to a Fields struct. | |
std::vector< std::shared_ptr< Amplifier const > > | finishAmplifiers () const |
Create a vector of Amplifiers from the Amplifier::Builder sequence. | |
void | setOrientation (Orientation const &orientation) |
Set the orientation of the detector in the focal plane. | |
void | setPixelSize (lsst::geom::Extent2D const &pixelSize) |
Set the pixel size (in mm). | |
Static Protected Member Functions | |
static std::vector< std::shared_ptr< Amplifier::Builder > > | rebuildAmplifiers (Detector const &detector) |
Create a vector of Amplifier::Builders from the Amplifiers in a Detector. | |
A helper class for Detector that allows amplifiers and most fields to be modified.
Because Detector is immutable, creation and modification always go through Builder, or more precisely, one of its two subclasses:
Detector::Builder itself provides functionality common to these:
The name and ID of a detector (but not its "serial" string) are set at initial construction and are an integral part of the relationship between it and its Camera, and can never be changed, even by Builders.
The fact that Amplifier::Builder inherits from Amplifier does not mean that a container of Amplifier::Builder can inherit from a container of Amplifier, and hence Detector::Builder (which has a container of Amplifer::Builder) cannot inherit directly from Detector (which has a container of Amplifier). But in both Python and templated C++ code, the container interfaces of Detector and Detector::Builder are identical (i.e. they're "duck type" equivalent), aside from the fact that Detector::Builder also permits addition and removal of amplifiers.
Definition at line 362 of file Detector.h.
|
inherited |
Definition at line 59 of file Detector.h.
|
delete |
|
delete |
|
overridepure virtualdefaultnoexcept |
|
protected |
Construct a Detector::Builder with no amplifiers and the given name and ID.
Definition at line 391 of file Detector.cc.
|
inlineprotected |
Construct a Detector::Builder with the given field values and amplifiers.
Definition at line 471 of file Detector.h.
void lsst::afw::cameraGeom::Detector::Builder::append | ( | std::shared_ptr< Amplifier::Builder > | builder | ) |
Append a new amplifier.
Definition at line 376 of file Detector.cc.
|
inline |
An iterator range over amplifers.
Iterators dereference to shared_ptr<Amplifier::Builder>
.
Definition at line 426 of file Detector.h.
|
inline |
|
inline |
Definition at line 427 of file Detector.h.
|
protected |
Create a vector of Amplifiers from the Amplifier::Builder sequence.
Definition at line 398 of file Detector.cc.
|
inline |
Return the sequence of Amplifier::Builders directly.
Definition at line 418 of file Detector.h.
|
inlineinherited |
Get the bounding box.
Definition at line 85 of file Detector.h.
|
inlineinherited |
Get the crosstalk coefficients.
Definition at line 100 of file Detector.h.
|
inlineoverrideprotectedvirtual |
Return a reference to a Fields struct.
Must be implemented by all subclasses.
Implements lsst::afw::cameraGeom::DetectorBase.
Definition at line 476 of file Detector.h.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
The "native" coordinate system of this detector.
Definition at line 123 of file Detector.h.
|
inlineinherited |
Get detector's orientation in the focal plane.
Definition at line 88 of file Detector.h.
|
inlineinherited |
Get the detector's physical type.
This may mean different things for different cameras; possibilities include the manufacturer ("ITL" vs "E2V") or fundamental technology ("CCD" vs "HgCdTe").
Definition at line 82 of file Detector.h.
|
inlineinherited |
Get size of pixel along (mm)
Definition at line 91 of file Detector.h.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Get a coordinate system from a coordinate system (return input unchanged and untested)
[in] | cameraSys | Camera coordinate system |
cameraSys
unchangedDefinition at line 110 of file Detector.h.
|
inlineinherited |
Get a coordinate system from a detector system prefix (add detector name)
[in] | cameraSysPrefix | Camera coordinate system prefix |
cameraSysPrefix
with the detector name added Definition at line 118 of file Detector.h.
|
inline |
Get the amplifier builder specified by index.
std::out_of_range | if index is out of range. |
Definition at line 435 of file Detector.h.
std::shared_ptr< Amplifier::Builder > lsst::afw::cameraGeom::Detector::Builder::operator[] | ( | std::string const & | name | ) | const |
Get a builder for the amplifier specified by name.
lsst::pex::exceptions::InvalidParameterError | if no such amplifier. |
Definition at line 372 of file Detector.cc.
|
staticprotected |
Create a vector of Amplifier::Builders from the Amplifiers in a Detector.
Definition at line 380 of file Detector.cc.
|
inline |
|
inline |
Set the crosstalk coefficients.
The shape of the crosstalk matrix must be consistent with the set of amplifiers, but is not checked until a Detector instance is actually constructed.
Setting with a zero-size matrix is equivalent to calling unsetCrosstalk()
.
Definition at line 400 of file Detector.h.
|
inlineprotected |
Set the orientation of the detector in the focal plane.
This is intended for use by InCameraBuilder only; the orientation is used to set the coordinate transform from FOCAL_PLANE to PIXELS, and hence cannot be modified unless the full Camera is being modified.
Definition at line 490 of file Detector.h.
|
inline |
Set the detector's physical type.
This may mean different things for different cameras; possibilities include the manufacturer ("ITL" vs "E2V") or fundamental technology ("CCD" vs "HgCdTe").
Definition at line 388 of file Detector.h.
|
inlineprotected |
Set the pixel size (in mm).
This is intended for use by InCameraBuilder only; the pixel size is used to set the coordinate transform from FOCAL_PLANE to PIXELS, and hence cannot be modified unless the full Camera is being modified.
Definition at line 499 of file Detector.h.
|
inline |
|
inline |
|
inline |
Return the number of amplifiers (renamed to len in Python).
Definition at line 451 of file Detector.h.
|
inline |
Remove the crosstalk coefficient matrix.
Definition at line 403 of file Detector.h.