LSSTApplications
18.1.0
LSSTDataManagementBasePackage
|
Information about a CCD or other imaging detector. More...
#include <Detector.h>
Public Types | |
typedef ndarray::Array< float const, 2 > | CrosstalkMatrix |
Public Member Functions | |
Detector (std::string const &name, int id, DetectorType type, std::string const &serial, lsst::geom::Box2I const &bbox, lsst::afw::table::AmpInfoCatalog const &InfoCatalog, Orientation const &orientation, lsst::geom::Extent2D const &pixelSize, TransformMap::Transforms const &transforms, CrosstalkMatrix const &crosstalk=CrosstalkMatrix(), std::string const &physicalType="") | |
Make a Detector. More... | |
Detector (std::string const &name, int id, DetectorType type, std::string const &serial, lsst::geom::Box2I const &bbox, lsst::afw::table::AmpInfoCatalog const &InfoCatalog, Orientation const &orientation, lsst::geom::Extent2D const &pixelSize, std::shared_ptr< TransformMap const > transformMap, CrosstalkMatrix const &crosstalk=CrosstalkMatrix(), std::string const &physicalType="") | |
Make a Detector. More... | |
~Detector ()=default | |
Detector (Detector const &)=delete | |
Detector (Detector &&)=delete | |
Detector & | operator= (Detector const &)=delete |
Detector & | operator= (Detector &&)=delete |
std::string | getName () const |
Get the detector name. More... | |
int | getId () const |
Get the detector ID. More... | |
DetectorType | getType () const |
Get the "type" (really purpose) of the Detector. More... | |
std::string | getPhysicalType () const |
Get information about the physical type of the device (e.g. More... | |
std::string | getSerial () const |
Get the detector serial "number". More... | |
lsst::geom::Box2I | getBBox () const |
Get the bounding box. More... | |
std::vector< lsst::geom::Point2D > | getCorners (CameraSys const &cameraSys) const |
Get the corners of the detector in the specified camera coordinate system. More... | |
std::vector< lsst::geom::Point2D > | getCorners (CameraSysPrefix const &cameraSysPrefix) const |
Get the corners of the detector in the specified camera coordinate system prefix. More... | |
lsst::geom::Point2D | getCenter (CameraSys const &cameraSys) const |
Get the center of the detector in the specified camera coordinate system. More... | |
lsst::geom::Point2D | getCenter (CameraSysPrefix const &cameraSysPrefix) const |
Get the center of the detector in the specified camera coordinate system prefix. More... | |
table::AmpInfoCatalog const | getAmpInfoCatalog () const |
Get the amplifier information catalog. More... | |
Orientation const | getOrientation () const |
Get detector's orientation in the focal plane. More... | |
lsst::geom::Extent2D | getPixelSize () const |
Get size of pixel along (mm) More... | |
std::shared_ptr< TransformMap const > | getTransformMap () const |
Get the transform registry. More... | |
bool | hasCrosstalk () const |
Have we got crosstalk coefficients? More... | |
CrosstalkMatrix const | getCrosstalk () const |
Get the crosstalk coefficients. More... | |
table::AmpInfoCatalog::const_iterator | begin () const |
Get iterator to beginning of amplifier list. More... | |
table::AmpInfoCatalog::const_iterator | end () const |
Get iterator to end of amplifier list. More... | |
table::AmpInfoRecord const & | operator[] (size_t i) const |
Get the amplifier specified by index. More... | |
table::AmpInfoRecord const & | operator[] (std::string const &name) const |
Get the amplifier specified by name. More... | |
std::shared_ptr< table::AmpInfoRecord const > | _get (int i) const |
Get the amplifier specified by index, returning a shared pointer to an AmpInfo record. More... | |
std::shared_ptr< table::AmpInfoRecord const > | _get (std::string const &name) const |
Get the amplifier specified by name, returning a shared pointer to an AmpInfo record. More... | |
size_t | size () const |
Get the number of amplifiers. More... | |
bool | hasTransform (CameraSys const &cameraSys) const |
Can this object convert between PIXELS and the specified camera coordinate system? More... | |
bool | hasTransform (CameraSysPrefix const &cameraSysPrefix) const |
Can this object convert between PIXELS and the specified camera coordinate system prefix? More... | |
template<typename FromSysT , typename ToSysT > | |
std::shared_ptr< afw::geom::TransformPoint2ToPoint2 > | getTransform (FromSysT const &fromSys, ToSysT const &toSys) const |
Get a Transform from one camera coordinate system, or camera coordinate system prefix, to another. More... | |
CameraSys const | makeCameraSys (CameraSys const &cameraSys) const |
Get a coordinate system from a coordinate system (return input unchanged and untested) More... | |
CameraSys const | makeCameraSys (CameraSysPrefix const &cameraSysPrefix) const |
Get a coordinate system from a detector system prefix (add detector name) More... | |
template<typename FromSysT , typename ToSysT > | |
lsst::geom::Point2D | transform (lsst::geom::Point2D const &point, FromSysT const &fromSys, ToSysT const &toSys) const |
Transform a point from one camera system to another. More... | |
template<typename FromSysT , typename ToSysT > | |
std::vector< lsst::geom::Point2D > | transform (std::vector< lsst::geom::Point2D > const &points, FromSysT const &fromSys, ToSysT const &toSys) const |
Transform a vector of points from one camera system to another. More... | |
CameraSys | getNativeCoordSys () const |
The "native" coordinate system of this detector. More... | |
bool | isPersistable () const noexcept override |
Detectors are always peristable. More... | |
template<typename FromSysT , typename ToSysT > | |
std::shared_ptr< geom::TransformPoint2ToPoint2 > | getTransform (FromSysT const &fromSys, ToSysT const &toSys) const |
virtual std::shared_ptr< Storable > | cloneStorable () const |
Create a new object that is a copy of this one (optional operation). More... | |
virtual std::string | toString () const |
Create a string representation of this object (optional operation). More... | |
virtual std::size_t | hash_value () const |
Return a hash of this object (optional operation). More... | |
virtual bool | equals (Storable const &other) const noexcept |
Compare this object to another Storable. More... | |
void | writeFits (std::string const &fileName, std::string const &mode="w") const |
Write the object to a regular FITS file. More... | |
void | writeFits (fits::MemFileManager &manager, std::string const &mode="w") const |
Write the object to a FITS image in memory. More... | |
void | writeFits (fits::Fits &fitsfile) const |
Write the object to an already-open FITS object. More... | |
Static Public Member Functions | |
static std::shared_ptr< Detector > | readFits (fits::Fits &fitsfile) |
Read an object from an already open FITS object. More... | |
static std::shared_ptr< Detector > | readFits (std::string const &fileName, int hdu=fits::DEFAULT_HDU) |
Read an object from a regular FITS file. More... | |
static std::shared_ptr< Detector > | readFits (fits::MemFileManager &manager, int hdu=fits::DEFAULT_HDU) |
Read an object from a FITS file in memory. More... | |
static std::shared_ptr< Detector > | dynamicCast (std::shared_ptr< Persistable > const &ptr) |
Dynamically cast a shared_ptr. More... | |
Protected Types | |
typedef io::OutputArchiveHandle | OutputArchiveHandle |
Static Protected Member Functions | |
template<class T > | |
static bool | singleClassEquals (T const &lhs, Storable const &rhs) |
Test if a Storable is of a particular class and equal to another object. More... | |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &os, Storable const &storable) |
Output operator for Storable. More... | |
Information about a CCD or other imaging detector.
Supports transformation of points between FOCAL_PLANE and pixel-based coordinate systems. Also an iterator over amplifiers (in C++ use begin(), end(), in Python use "for amplifier in detector").
Definition at line 62 of file Detector.h.
typedef ndarray::Array<float const, 2> lsst::afw::cameraGeom::Detector::CrosstalkMatrix |
Definition at line 64 of file Detector.h.
|
protectedinherited |
Definition at line 108 of file Persistable.h.
lsst::afw::cameraGeom::Detector::Detector | ( | std::string const & | name, |
int | id, | ||
DetectorType | type, | ||
std::string const & | serial, | ||
lsst::geom::Box2I const & | bbox, | ||
lsst::afw::table::AmpInfoCatalog const & | ampInfoCatalog, | ||
Orientation const & | orientation, | ||
lsst::geom::Extent2D const & | pixelSize, | ||
TransformMap::Transforms const & | transforms, | ||
CrosstalkMatrix const & | crosstalk = CrosstalkMatrix() , |
||
std::string const & | physicalType = "" |
||
) |
Make a Detector.
name | name of detector's location in the camera |
id | detector integer ID; used as keys in some tables |
type | type of detector |
serial | serial "number" that identifies the physical detector |
bbox | bounding box |
ampInfoCatalog | catalog of amplifier information |
orientation | detector position and orientation in focal plane |
pixelSize | pixel size (mm) |
transforms | map of CameraSys: afw::geom::Transform, where each Transform's forward transform transforms from PIXELS to the specified camera system |
crosstalk | matrix of crosstalk coefficients |
physicalType | detector type, e.g. "CCD", "ITL-A", "HgCdTe" |
lsst::pex::exceptions::InvalidParameterError | if any amplifier names are not unique |
Definition at line 36 of file Detector.cc.
lsst::afw::cameraGeom::Detector::Detector | ( | std::string const & | name, |
int | id, | ||
DetectorType | type, | ||
std::string const & | serial, | ||
lsst::geom::Box2I const & | bbox, | ||
lsst::afw::table::AmpInfoCatalog const & | ampInfoCatalog, | ||
Orientation const & | orientation, | ||
lsst::geom::Extent2D const & | pixelSize, | ||
std::shared_ptr< TransformMap const > | transformMap, | ||
CrosstalkMatrix const & | crosstalk = CrosstalkMatrix() , |
||
std::string const & | physicalType = "" |
||
) |
Make a Detector.
name | name of detector's location in the camera |
id | detector integer ID; used as keys in some tables |
type | function of detector (e.g. SCIENCE, WAVEFRONT) |
serial | serial "number" that identifies the physical detector |
bbox | bounding box |
ampInfoCatalog | catalog of amplifier information |
orientation | detector position and orientation in focal plane |
pixelSize | pixel size (mm) |
transformMap | coordinate systems and transforms between them |
crosstalk | matrix of crosstalk coefficients |
physicalType | detector type, e.g. "CCD", "ITL-A", "HgCdTe" |
lsst::pex::exceptions::InvalidParameterError | if: any amplifier names are not unique |
Definition at line 46 of file Detector.cc.
|
default |
|
delete |
|
delete |
std::shared_ptr< table::AmpInfoRecord const > lsst::afw::cameraGeom::Detector::_get | ( | int | i | ) | const |
Get the amplifier specified by index, returning a shared pointer to an AmpInfo record.
[in] | i | Ampifier index; if < 0 then treat as an offset from the end (the Python convention) |
std::out_of_range | if index is out of range |
Definition at line 113 of file Detector.cc.
std::shared_ptr< table::AmpInfoRecord const > lsst::afw::cameraGeom::Detector::_get | ( | std::string const & | name | ) | const |
Get the amplifier specified by name, returning a shared pointer to an AmpInfo record.
[in] | name | Amplifier name |
std::out_of_range | if index is out of range |
Definition at line 120 of file Detector.cc.
|
inline |
|
virtualinherited |
Create a new object that is a copy of this one (optional operation).
This operation is required for Storables that are stored in GenericMap by value, but not for those stored by shared pointer.
UnsupportedOperationException | Thrown if this object is not cloneable. |
clone
operation, the two should behave identically except for the formal return type. Reimplemented in lsst::afw::image::PhotoCalib, lsst::afw::geom::SkyWcs, lsst::afw::geom::polygon::Polygon, lsst::afw::image::Filter, lsst::afw::image::VisitInfo, lsst::afw::detection::Psf, lsst::afw::image::ApCorrMap, and lsst::afw::image::CoaddInputs.
Definition at line 36 of file Storable.cc.
|
staticinherited |
Dynamically cast a shared_ptr.
Dynamically cast a shared pointer and raise on failure.
You must provide an explicit template instantiation in the .cc file for each class that inherits from PersistableFacade. Designed to work around RTTI issues on macOS with hidden symbols;
lsst::pex::exceptions::LogicError | if the cast fails |
param[in] ptr The pointer to be cast.
lsst::pex::exceptions::TypeError | If the dynamic cast fails. |
Definition at line 18 of file Persistable.cc.
|
inline |
|
virtualnoexceptinherited |
Compare this object to another Storable.
Subclasses that implement equality comparison must override this method to give results consistent with operator==
for all inputs that are accepted by both.
false
. If cross-class comparisons are valid, implementers should take care that they are symmetric and will give the same result no matter what the compile-time types of the left- and right-hand sides are.Reimplemented in lsst::afw::image::PhotoCalib, lsst::afw::geom::SkyWcs, lsst::afw::geom::polygon::Polygon, lsst::afw::image::Filter, and lsst::afw::image::VisitInfo.
Definition at line 48 of file Storable.cc.
|
inline |
Get the amplifier information catalog.
Definition at line 160 of file Detector.h.
|
inline |
lsst::geom::Point2D lsst::afw::cameraGeom::Detector::getCenter | ( | CameraSys const & | cameraSys | ) | const |
Get the center of the detector in the specified camera coordinate system.
Definition at line 101 of file Detector.cc.
lsst::geom::Point2D lsst::afw::cameraGeom::Detector::getCenter | ( | CameraSysPrefix const & | cameraSysPrefix | ) | const |
Get the center of the detector in the specified camera coordinate system prefix.
Definition at line 107 of file Detector.cc.
std::vector< lsst::geom::Point2D > lsst::afw::cameraGeom::Detector::getCorners | ( | CameraSys const & | cameraSys | ) | const |
Get the corners of the detector in the specified camera coordinate system.
Definition at line 91 of file Detector.cc.
std::vector< lsst::geom::Point2D > lsst::afw::cameraGeom::Detector::getCorners | ( | CameraSysPrefix const & | cameraSysPrefix | ) | const |
Get the corners of the detector in the specified camera coordinate system prefix.
Definition at line 97 of file Detector.cc.
|
inline |
Get the crosstalk coefficients.
Definition at line 177 of file Detector.h.
|
inline |
|
inline |
|
inline |
The "native" coordinate system of this detector.
Definition at line 305 of file Detector.h.
|
inline |
Get detector's orientation in the focal plane.
Definition at line 163 of file Detector.h.
|
inline |
Get information about the physical type of the device (e.g.
CCD, E2V, ITL-A, HgCdTe)
Definition at line 139 of file Detector.h.
|
inline |
|
inline |
Get the detector serial "number".
Definition at line 142 of file Detector.h.
std::shared_ptr<geom::TransformPoint2ToPoint2> lsst::afw::cameraGeom::Detector::getTransform | ( | FromSysT const & | fromSys, |
ToSysT const & | toSys | ||
) | const |
Definition at line 137 of file Detector.cc.
std::shared_ptr<afw::geom::TransformPoint2ToPoint2> lsst::afw::cameraGeom::Detector::getTransform | ( | FromSysT const & | fromSys, |
ToSysT const & | toSys | ||
) | const |
Get a Transform from one camera coordinate system, or camera coordinate system prefix, to another.
FromSysT,ToSysT | Type of fromSys , toSys : one of CameraSys or CameraSysPrefix |
fromSys,toSys | camera coordinate systems or prefixes between which to transform |
fromSys
to toSys
in the forward direction. The Transform will be invertible.lsst::pex::exceptions::InvalidParameterError | Thrown if either fromSys or toSys is not supported. |
|
inline |
Get the transform registry.
Definition at line 169 of file Detector.h.
|
inline |
Get the "type" (really purpose) of the Detector.
Definition at line 136 of file Detector.h.
|
inline |
Have we got crosstalk coefficients?
Definition at line 172 of file Detector.h.
|
virtualinherited |
Return a hash of this object (optional operation).
UnsupportedOperationException | Thrown if this object is not hashable. |
Reimplemented in lsst::afw::image::Filter, lsst::afw::geom::polygon::Polygon, and lsst::afw::image::VisitInfo.
Definition at line 44 of file Storable.cc.
bool lsst::afw::cameraGeom::Detector::hasTransform | ( | CameraSys const & | cameraSys | ) | const |
Can this object convert between PIXELS and the specified camera coordinate system?
Definition at line 130 of file Detector.cc.
bool lsst::afw::cameraGeom::Detector::hasTransform | ( | CameraSysPrefix const & | cameraSysPrefix | ) | const |
Can this object convert between PIXELS and the specified camera coordinate system prefix?
Definition at line 132 of file Detector.cc.
|
inlineoverridevirtualnoexcept |
Detectors are always peristable.
Reimplemented from lsst::afw::table::io::Persistable.
Definition at line 308 of file Detector.h.
|
inline |
Get a coordinate system from a coordinate system (return input unchanged and untested)
[in] | cameraSys | Camera coordinate system |
cameraSys
unchangedDefinition at line 260 of file Detector.h.
|
inline |
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 268 of file Detector.h.
|
inline |
Get the amplifier specified by index.
std::out_of_range | if index is out of range |
Definition at line 190 of file Detector.h.
const table::AmpInfoRecord & lsst::afw::cameraGeom::Detector::operator[] | ( | std::string const & | name | ) | const |
Get the amplifier specified by name.
lsst::pex::exceptions::InvalidParameterError | if no such amplifier |
Definition at line 111 of file Detector.cc.
|
inlinestaticinherited |
Read an object from an already open FITS object.
[in] | fitsfile | FITS object to read from, already positioned at the desired HDU. |
Definition at line 183 of file Persistable.h.
|
inlinestaticinherited |
Read an object from a regular FITS file.
[in] | fileName | Name of the file to read. |
[in] | hdu | HDU to read, where 0 is the primary. The special value of afw::fits::DEFAULT_HDU skips the primary HDU if it is empty. |
Definition at line 194 of file Persistable.h.
|
inlinestaticinherited |
Read an object from a FITS file in memory.
[in] | manager | Manager for the memory to read from. |
[in] | hdu | HDU to read, where 0 is the primary. The special value of afw::fits::DEFAULT_HDU skips the primary HDU if it is empty. |
Definition at line 205 of file Persistable.h.
|
inlinestaticprotectedinherited |
Test if a Storable is of a particular class and equal to another object.
This method template simplifies implementations of equals that delegate to operator==
without supporting cross-class comparisons.
T | The class expected of the two objects to be compared. |
lhs,rhs | The objects to compare. Note that rhs need not be a T , while lhs must be. |
true
if rhs
is a T
and lhs == rhs
; false
otherwise.operator==
. Most implementations of operator==
do not throw.operator==
with both arguments of compile-time type T const&
. Its use is not recommended if there would be any ambiguity as to which operator==
gets picked by overload resolution.This method template is typically called from equals as:
bool MyType::equals(Storable const& other) const noexcept { return singleClassEquals(*this, other); }
Definition at line 136 of file Storable.h.
|
inline |
Get the number of amplifiers.
Renamed to __len__
in Python.
Definition at line 228 of file Detector.h.
|
virtualinherited |
Create a string representation of this object (optional operation).
UnsupportedOperationException | Thrown if this object does not have a string representation. |
Reimplemented in lsst::afw::image::PhotoCalib, lsst::afw::geom::SkyWcs, lsst::afw::geom::polygon::Polygon, and lsst::afw::image::VisitInfo.
Definition at line 40 of file Storable.cc.
lsst::geom::Point2D lsst::afw::cameraGeom::Detector::transform | ( | lsst::geom::Point2D const & | point, |
FromSysT const & | fromSys, | ||
ToSysT const & | toSys | ||
) | const |
Transform a point from one camera system to another.
FromSysT | Class of fromSys: one of CameraSys or CameraSysPrefix |
ToSysT | Class of toSys: one of CameraSys or CameraSysPrefix |
[in] | point | Camera point to transform |
[in] | fromSys | Camera coordinate system of point |
[in] | toSys | Camera coordinate system of returned point |
pex::exceptions::InvalidParameterError | if fromSys or toSys is unknown |
Definition at line 143 of file Detector.cc.
std::vector< lsst::geom::Point2D > lsst::afw::cameraGeom::Detector::transform | ( | std::vector< lsst::geom::Point2D > const & | points, |
FromSysT const & | fromSys, | ||
ToSysT const & | toSys | ||
) | const |
Transform a vector of points from one camera system to another.
FromSysT | Class of fromSys: one of CameraSys or CameraSysPrefix |
ToSysT | Class of toSys: one of CameraSys or CameraSysPrefix |
[in] | points | Camera points to transform |
[in] | fromSys | Camera coordinate system of points |
[in] | toSys | Camera coordinate system of returned points |
pex::exceptions::InvalidParameterError | if fromSys or toSys is unknown |
Definition at line 149 of file Detector.cc.
|
inherited |
Write the object to a regular FITS file.
[in] | fileName | Name of the file to write to. |
[in] | mode | If "w", any existing file with the given name will be overwritten. If "a", new HDUs will be appended to an existing file. |
Definition at line 24 of file Persistable.cc.
|
inherited |
Write the object to a FITS image in memory.
[in] | manager | Name of the file to write to. |
[in] | mode | If "w", any existing file with the given name will be overwritten. If "a", new HDUs will be appended to an existing file. |
Definition at line 29 of file Persistable.cc.
|
inherited |
Write the object to an already-open FITS object.
[in] | fitsfile | Open FITS object to write to. |
Definition at line 18 of file Persistable.cc.
|
related |
Output operator for Storable.
os | the desired output stream |
storable | the object to print |
os
UnsupportedOperationException | Thrown if storable does not have an implementation of Storable::toString. |
Definition at line 159 of file Storable.h.