23 #if !defined(LSST_AFW_CAMERAGEOM_DETECTOR_H) 24 #define LSST_AFW_CAMERAGEOM_DETECTOR_H 28 #include <unordered_map> 39 namespace cameraGeom {
173 return !(_crosstalk.isEmpty() || _crosstalk.getShape() == ndarray::makeVector(0, 0));
228 size_t size()
const {
return _ampInfoCatalog.
size(); }
248 template <
typename FromSysT,
typename ToSysT>
250 ToSysT
const &toSys)
const;
269 return CameraSys(cameraSysPrefix, _name);
284 template <
typename FromSysT,
typename ToSysT>
286 ToSysT
const &toSys)
const;
300 template <
typename FromSysT,
typename ToSysT>
302 FromSysT
const &fromSys, ToSysT
const &toSys)
const;
325 _AmpInfoMap _ampNameIterMap;
330 CrosstalkMatrix _crosstalk;
table::AmpInfoCatalog const getAmpInfoCatalog() const
Get the amplifier information catalog.
size_t size() const
Get the number of amplifiers.
Camera coordinate system; used as a key in in TransformMap.
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.
Geometry and electronic information about raw amplifier images.
An object passed to Persistable::write to allow it to persist itself.
table::AmpInfoRecord const & operator[](size_t i) const
Get the amplifier specified by index.
Interface supporting iteration over heterogenous containers.
std::shared_ptr< table::AmpInfoRecord const > _get(int i) const
Get the amplifier specified by index, returning a shared pointer to an AmpInfo record.
std::string getPhysicalType() const
Get information about the physical type of the device (e.g.
DetectorType getType() const
Get the "type" (really purpose) of the Detector.
Describe a detector's orientation in the focal plane.
CameraSys const makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested) ...
Orientation const getOrientation() const
Get detector's orientation in the focal plane.
lsst::geom::Box2I getBBox() const
Get the bounding box.
A base class for image defects.
std::shared_ptr< TransformMap const > getTransformMap() const
Get the transform registry.
iterator end()
Iterator access.
Iterator class for CatalogT.
bool hasTransform(CameraSys const &cameraSys) const
Can this object convert between PIXELS and the specified camera coordinate system?
bool hasCrosstalk() const
Have we got crosstalk coefficients?
std::vector< lsst::geom::Point2D > getCorners(CameraSys const &cameraSys) const
Get the corners of the detector in the specified camera coordinate system.
CameraSys const makeCameraSys(CameraSysPrefix const &cameraSysPrefix) const
Get a coordinate system from a detector system prefix (add detector name)
CrosstalkMatrix const getCrosstalk() const
Get the crosstalk coefficients.
table::Point2DKey pixelSize
table::AmpInfoCatalog::const_iterator begin() const
Get iterator to beginning of amplifier list.
lsst::geom::Point2D getCenter(CameraSys const &cameraSys) const
Get the center of the detector in the specified camera coordinate system.
Camera coordinate system prefix.
table::Key< std::string > physicalType
std::string getName() const
Get the detector name.
Information about a CCD or other imaging detector.
Detector & operator=(Detector const &)=delete
table::AmpInfoCatalog::const_iterator end() const
Get iterator to end of amplifier list.
int getId() const
Get the detector ID.
size_type size() const
Return the number of elements in the catalog.
table::Key< std::string > serial
bool isPersistable() const noexcept override
Detectors are always peristable.
iterator begin()
Iterator access.
reference at(size_type i) const
Return the record at index i (throws std::out_of_range).
table::Key< table::Array< float > > crosstalk
lsst::geom::Extent2D getPixelSize() const
Get size of pixel along (mm)
DetectorType
Type of imaging detector.
A CRTP facade class for subclasses of Persistable.
ndarray::Array< float const, 2 > CrosstalkMatrix
An integer coordinate rectangle.
std::string getSerial() const
Get the detector serial "number".
CameraSys getNativeCoordSys() const
The "native" coordinate system of this detector.
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.
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.