23 #if !defined(LSST_AFW_CAMERAGEOM_DETECTOR_H) 
   24 #define LSST_AFW_CAMERAGEOM_DETECTOR_H 
   28 #include <unordered_map> 
   39 namespace cameraGeom {
 
  229     template <
typename FromSysT, 
typename ToSysT>
 
  231                                                                      ToSysT 
const &toSys) 
const;
 
  245     template <
typename FromSysT, 
typename ToSysT>
 
  247                                   ToSysT 
const &toSys) 
const;
 
  261     template <
typename FromSysT, 
typename ToSysT>
 
  263                                                FromSysT 
const &fromSys, ToSysT 
const &toSys) 
const;
 
  278     auto begin()
 const { 
return _amplifiers.begin(); }
 
  279     auto end()
 const { 
return _amplifiers.end(); }
 
  323     Fields 
const _fields;
 
  426     auto begin() { 
return _amplifiers.begin(); }
 
  427     auto end() { 
return _amplifiers.end(); }
 
  448     void clear() { _amplifiers.clear(); }
 
  472         _fields(
std::move(fields)),
 
  473         _amplifiers(
std::move(amplifiers))
 
table::Key< std::string > name
 
table::Key< int > transformMap
 
table::Key< std::string > physicalType
 
table::Point2DKey pixelSize
 
table::Key< std::string > serial
 
table::Key< table::Array< float > > crosstalk
 
table::Key< int > detector
 
An immutable representation of a camera.
 
Camera coordinate system; used as a key in in TransformMap.
 
Camera coordinate system prefix.
 
A helper class for Detector that allows amplifiers and most fields to be modified.
 
Fields const  & getFields() const override
Return a reference to a Fields struct.
 
Builder(Fields fields, std::vector< std::shared_ptr< Amplifier::Builder >> &&lifiers)
Construct a Detector::Builder with the given field values and amplifiers.
 
auto begin()
An iterator range over amplifers.
 
Builder & operator=(Builder const &)=delete
 
Builder(Builder &&)=delete
 
void setSerial(std::string const &serial)
Set the detector serial "number".
 
void setBBox(lsst::geom::Box2I const &bbox)
Set the bounding box.
 
void setPhysicalType(std::string const &physicalType)
Set the detector's physical type.
 
~Builder() noexcept override=0
 
Builder(Builder const &)=delete
 
std::vector< std::shared_ptr< Amplifier const  > > finishAmplifiers() const
Create a vector of Amplifiers from the Amplifier::Builder sequence.
 
void setPixelSize(lsst::geom::Extent2D const &pixelSize)
Set the pixel size (in mm).
 
static std::vector< std::shared_ptr< Amplifier::Builder > > rebuildAmplifiers(Detector const &detector)
Create a vector of Amplifier::Builders from the Amplifiers in a Detector.
 
void setCrosstalk(CrosstalkMatrix const &crosstalk)
Set the crosstalk coefficients.
 
void setType(DetectorType type)
Set the purpose of this detector.
 
std::vector< std::shared_ptr< Amplifier::Builder > > const  & getAmplifiers() const
Return the sequence of Amplifier::Builders directly.
 
void unsetCrosstalk()
Remove the crosstalk coefficient matrix.
 
std::shared_ptr< Amplifier::Builder > operator[](size_t i) const
Get the amplifier builder specified by index.
 
void setOrientation(Orientation const &orientation)
Set the orientation of the detector in the focal plane.
 
void append(std::shared_ptr< Amplifier::Builder > builder)
Append a new amplifier.
 
std::size_t size() const
Return the number of amplifiers (renamed to len in Python).
 
void clear()
Remove all amplifiers.
 
Builder & operator=(Builder &&)=delete
 
A helper class that allows the properties of a detector to be modified in the course of modifying a f...
 
void setOrientation(Orientation const &orientation)
Set the orientation of the detector in the focal plane.
 
void setTransformFromPixelsTo(CameraSysPrefix const &toSys, std::shared_ptr< afw::geom::TransformPoint2ToPoint2 const > transform)
Set the transformation from PIXELS to the given coordinate system.
 
bool discardTransformFromPixelsTo(CameraSysPrefix const &toSys)
Remove any transformation from PIXELS to the given coordinate system.
 
void setPixelSize(lsst::geom::Extent2D const &pixelSize)
Set the pixel size (in mm).
 
void clearTransforms()
Remove all coordinate transforms.
 
A helper class that allows the properties of a single detector to be modified in isolation.
 
PartialRebuilder(Detector const &detector)
Construct a PartialRebuilder initialized to the state of the given Detector.
 
std::shared_ptr< Detector const  > finish() const
Construct a new Detector from the current state of the Builder.
 
An abstract base class that provides common accessors for Detector and Detector::Builder.
 
DetectorBase(DetectorBase const &)=default
 
lsst::geom::Box2I getBBox() const
Get the bounding box.
 
DetectorBase(DetectorBase &&)=default
 
virtual ~DetectorBase() noexcept=default
 
DetectorBase & operator=(DetectorBase const &)=default
 
DetectorBase()=default
DetectorBase has no state, and is hence default-constructable, copyable, and movable.
 
lsst::geom::Extent2D getPixelSize() const
Get size of pixel along (mm)
 
CameraSys makeCameraSys(CameraSysPrefix const &cameraSysPrefix) const
Get a coordinate system from a detector system prefix (add detector name)
 
std::string getName() const
Get the detector name.
 
CameraSys getNativeCoordSys() const
The "native" coordinate system of this detector.
 
virtual Fields const  & getFields() const =0
Return a reference to a Fields struct.
 
bool hasCrosstalk() const
Have we got crosstalk coefficients?
 
int getId() const
Get the detector ID.
 
std::string getPhysicalType() const
Get the detector's physical type.
 
Orientation getOrientation() const
Get detector's orientation in the focal plane.
 
std::string getSerial() const
Get the detector serial "number".
 
CameraSys makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested)
 
DetectorBase & operator=(DetectorBase &&)=default
 
CrosstalkMatrix getCrosstalk() const
Get the crosstalk coefficients.
 
ndarray::Array< float const, 2 > CrosstalkMatrix
 
DetectorType getType() const
Return the purpose of this detector.
 
A representation of a detector in a mosaic camera.
 
auto begin() const
An iterator range over amplifers.
 
Fields const  & getFields() const override
Return a reference to a Fields struct.
 
bool hasTransform(CameraSys const &cameraSys) const
Can this object convert between PIXELS and the specified camera coordinate system?
 
std::size_t size() const
Get the number of amplifiers.
 
bool isPersistable() const noexcept override
Detector is always persistable.
 
std::shared_ptr< TransformMap const  > getTransformMap() const
Get the transform registry.
 
std::vector< std::shared_ptr< Amplifier const  > > const  & getAmplifiers() const
Return the sequence of Amplifiers directly.
 
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::vector< lsst::geom::Point2D > getCorners(CameraSys const &cameraSys) const
Get the corners of the detector in the specified camera coordinate system.
 
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,...
 
lsst::geom::Point2D getCenter(CameraSys const &cameraSys) const
Get the center of the detector in the specified camera coordinate system.
 
std::shared_ptr< PartialRebuilder > rebuild() const
Return a Builder object initialized with the state of this Detector.
 
std::shared_ptr< Amplifier const  > operator[](size_t i) const
Get the amplifier specified by index.
 
Describe a detector's orientation in the focal plane.
 
A CRTP facade class for subclasses of Persistable.
 
io::OutputArchiveHandle OutputArchiveHandle
 
Interface supporting iteration over heterogenous containers.
 
An integer coordinate rectangle.
 
CameraSysPrefix const PIXELS
Pixel coordinates: Nominal position on the entry surface of a given detector (x, y unbinned pixels).
 
DetectorType
Type of imaging detector.
 
std::string getPythonModule() const override
 
class[[deprecated("Removed with no replacement (but see lsst::afw::image::TransmissionCurve). Will be " "removed after v22.")]] FilterProperty final
Describe the properties of a Filter (e.g.
 
std::string getPersistenceName() const override
 
void write(OutputArchiveHandle &handle) const override
 
int orientation(UnitVector3d const &a, UnitVector3d const &b, UnitVector3d const &c)
orientation computes and returns the orientations of 3 unit vectors a, b and c.
 
A base class for image defects.
 
CrosstalkMatrix crosstalk
 
lsst::geom::Extent2D pixelSize