LSSTApplications  16.0-10-g0ee56ad+5,16.0-11-ga33d1f2+5,16.0-12-g3ef5c14+3,16.0-12-g71e5ef5+18,16.0-12-gbdf3636+3,16.0-13-g118c103+3,16.0-13-g8f68b0a+3,16.0-15-gbf5c1cb+4,16.0-16-gfd17674+3,16.0-17-g7c01f5c+3,16.0-18-g0a50484+1,16.0-20-ga20f992+8,16.0-21-g0e05fd4+6,16.0-21-g15e2d33+4,16.0-22-g62d8060+4,16.0-22-g847a80f+4,16.0-25-gf00d9b8+1,16.0-28-g3990c221+4,16.0-3-gf928089+3,16.0-32-g88a4f23+5,16.0-34-gd7987ad+3,16.0-37-gc7333cb+2,16.0-4-g10fc685+2,16.0-4-g18f3627+26,16.0-4-g5f3a788+26,16.0-5-gaf5c3d7+4,16.0-5-gcc1f4bb+1,16.0-6-g3b92700+4,16.0-6-g4412fcd+3,16.0-6-g7235603+4,16.0-69-g2562ce1b+2,16.0-8-g14ebd58+4,16.0-8-g2df868b+1,16.0-8-g4cec79c+6,16.0-8-gadf6c7a+1,16.0-8-gfc7ad86,16.0-82-g59ec2a54a+1,16.0-9-g5400cdc+2,16.0-9-ge6233d7+5,master-g2880f2d8cf+3,v17.0.rc1
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | List of all members
lsst::afw::cameraGeom::Detector Class Referencefinal

Information about a CCD or other imaging detector. More...

#include <Detector.h>

Inheritance diagram for lsst::afw::cameraGeom::Detector:
lsst::afw::table::io::PersistableFacade< Detector > lsst::afw::table::io::Persistable

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 &ampInfoCatalog, Orientation const &orientation, lsst::geom::Extent2D const &pixelSize, TransformMap::Transforms const &transforms, CrosstalkMatrix const &crosstalk=CrosstalkMatrix())
 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 &ampInfoCatalog, Orientation const &orientation, lsst::geom::Extent2D const &pixelSize, std::shared_ptr< TransformMap const > transformMap, CrosstalkMatrix const &crosstalk=CrosstalkMatrix())
 Make a Detector. More...
 
 ~Detector ()=default
 
 Detector (Detector const &)=delete
 
 Detector (Detector &&)=delete
 
Detectoroperator= (Detector const &)=delete
 
Detectoroperator= (Detector &&)=delete
 
std::string getName () const
 Get the detector name. More...
 
int getId () const
 Get the detector ID. More...
 
DetectorType getType () const
 
std::string getSerial () const
 Get the detector serial "number". More...
 
lsst::geom::Box2I getBBox () const
 Get the bounding box. More...
 
std::vector< lsst::geom::Point2DgetCorners (CameraSys const &cameraSys) const
 Get the corners of the detector in the specified camera coordinate system. More...
 
std::vector< lsst::geom::Point2DgetCorners (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::TransformPoint2ToPoint2getTransform (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::Point2Dtransform (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::TransformPoint2ToPoint2getTransform (FromSysT const &fromSys, ToSysT const &toSys) const
 
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< DetectorreadFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static std::shared_ptr< DetectorreadFits (std::string const &fileName, int hdu=fits::DEFAULT_HDU)
 Read an object from a regular FITS file. More...
 
static std::shared_ptr< DetectorreadFits (fits::MemFileManager &manager, int hdu=fits::DEFAULT_HDU)
 Read an object from a FITS file in memory. More...
 
static std::shared_ptr< DetectordynamicCast (std::shared_ptr< Persistable > const &ptr)
 Dynamically cast a shared_ptr. More...
 

Protected Types

typedef io::OutputArchiveHandle OutputArchiveHandle
 

Detailed Description

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").

Todo:
: this would probably be a bit more robust if it used a ConstAmpInfoCatalog (a catalog with const records) but I don't think const catalogs really work yet; for instance it is not possible to construct one from a non-const catalog, so I don't know how to construct one.

Definition at line 61 of file Detector.h.

Member Typedef Documentation

◆ CrosstalkMatrix

typedef ndarray::Array<float const, 2> lsst::afw::cameraGeom::Detector::CrosstalkMatrix

Definition at line 63 of file Detector.h.

◆ OutputArchiveHandle

typedef io::OutputArchiveHandle lsst::afw::table::io::Persistable::OutputArchiveHandle
protectedinherited

Definition at line 108 of file Persistable.h.

Constructor & Destructor Documentation

◆ Detector() [1/4]

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() 
)

Make a Detector.

Parameters
namename of detector's location in the camera
iddetector integer ID; used as keys in some tables
typetype of detector
serialserial "number" that identifies the physical detector
bboxbounding box
ampInfoCatalogcatalog of amplifier information
orientationdetector position and orientation in focal plane
pixelSizepixel size (mm)
transformsmap of CameraSys: afw::geom::Transform, where each Transform's forward transform transforms from PIXELS to the specified camera system
crosstalkmatrix of crosstalk coefficients
Exceptions
lsst::pex::exceptions::InvalidParameterErrorif any amplifier names are not unique
Warning
  • The keys for the detector-specific coordinate systems in the transform registry must include the detector name (even though this is redundant).

Definition at line 36 of file Detector.cc.

39  :
40  Detector(name, id, type, serial, bbox, ampInfoCatalog, orientation, pixelSize,
41  TransformMap::make(CameraSys(PIXELS, name), transforms),
42  crosstalk)
43 {}
table::Key< std::string > name
Definition: Detector.cc:162
CameraSysPrefix const PIXELS
Nominal pixels on the detector (unbinned) This ignores manufacturing imperfections, "tree ring" distortions and all other such effects.
Definition: CameraSys.cc:34
table::Key< int > type
Definition: Detector.cc:164
table::Point2DKey pixelSize
Definition: Detector.cc:167
table::Box2IKey bbox
Definition: Detector.cc:166
static std::shared_ptr< TransformMap const > make(CameraSys const &reference, Transforms const &transforms)
Construct a TransformMap with all transforms relative to a single reference CameraSys.
Definition: TransformMap.cc:42
table::Key< std::string > serial
Definition: Detector.cc:165
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())
Make a Detector.
Definition: Detector.cc:36
table::Key< table::Array< float > > crosstalk
Definition: Detector.cc:174

◆ Detector() [2/4]

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() 
)

Make a Detector.

Parameters
namename of detector's location in the camera
iddetector integer ID; used as keys in some tables
typetype of detector
serialserial "number" that identifies the physical detector
bboxbounding box
ampInfoCatalogcatalog of amplifier information
orientationdetector position and orientation in focal plane
pixelSizepixel size (mm)
transformMapcoordinate systems and transforms between them
crosstalkmatrix of crosstalk coefficients
Exceptions
lsst::pex::exceptions::InvalidParameterErrorif: any amplifier names are not unique

Definition at line 45 of file Detector.cc.

48  :
49  _name(name),
50  _id(id),
51  _type(type),
52  _serial(serial),
53  _bbox(bbox),
54  _ampInfoCatalog(ampInfoCatalog),
55  _ampNameIterMap(),
56  _orientation(orientation),
57  _pixelSize(pixelSize),
58  _nativeSys(CameraSys(PIXELS, name)),
59  _transformMap(std::move(transformMap)),
60  _crosstalk(crosstalk)
61 {
62  // make _ampNameIterMap
63  for (auto ampIter = _ampInfoCatalog.begin(); ampIter != _ampInfoCatalog.end(); ++ampIter) {
64  _ampNameIterMap.insert(std::make_pair(ampIter->getName(), ampIter));
65  }
66  if (_ampNameIterMap.size() != _ampInfoCatalog.size()) {
68  "Invalid ampInfoCatalog: not all amplifier names are unique");
69  }
70 
71  // ensure crosstalk coefficients matrix is square
72  if (hasCrosstalk()) {
73  auto shape = _crosstalk.getShape();
74  assert(shape.size() == 2); // we've declared this as a 2D array
75  if (shape[0] != shape[1]) {
77  os << "Non-square crosstalk matrix: " << _crosstalk << " for detector \"" << _name << "\"";
79  }
80  if (shape[0] != _ampInfoCatalog.size()) {
82  os << "Wrong size crosstalk matrix: " << _crosstalk << " for detector \"" << _name << "\"";
84  }
85  }
86 }
table::Key< std::string > name
Definition: Detector.cc:162
CameraSysPrefix const PIXELS
Nominal pixels on the detector (unbinned) This ignores manufacturing imperfections, "tree ring" distortions and all other such effects.
Definition: CameraSys.cc:34
table::Key< int > type
Definition: Detector.cc:164
iterator end()
Iterator access.
Definition: Catalog.h:397
bool hasCrosstalk() const
Have we got crosstalk coefficients?
Definition: Detector.h:163
T str(T... args)
T make_pair(T... args)
table::Point2DKey pixelSize
Definition: Detector.cc:167
table::Box2IKey bbox
Definition: Detector.cc:166
T move(T... args)
T insert(T... args)
T size(T... args)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
Reports invalid arguments.
Definition: Runtime.h:66
size_type size() const
Return the number of elements in the catalog.
Definition: Catalog.h:408
table::Key< std::string > serial
Definition: Detector.cc:165
iterator begin()
Iterator access.
Definition: Catalog.h:396
table::Key< table::Array< float > > crosstalk
Definition: Detector.cc:174
std::ostream * os
Definition: Schema.cc:746

◆ ~Detector()

lsst::afw::cameraGeom::Detector::~Detector ( )
default

◆ Detector() [3/4]

lsst::afw::cameraGeom::Detector::Detector ( Detector const &  )
delete

◆ Detector() [4/4]

lsst::afw::cameraGeom::Detector::Detector ( Detector &&  )
delete

Member Function Documentation

◆ _get() [1/2]

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.

Warning
Intended only for use by pybind11. This exists because Operator[] returns a data type that is difficult for pybind11 to use. Since we have it, we also take advantage of the fact that it is only for pybind11 to support negative indices in the python style.
Parameters
[in]iAmpifier index; if < 0 then treat as an offset from the end (the Python convention)
Exceptions
std::out_of_rangeif index is out of range

Definition at line 110 of file Detector.cc.

110  {
111  if (i < 0) {
112  i = _ampInfoCatalog.size() + i;
113  };
114  return _ampInfoCatalog.get(i);
115 }
std::shared_ptr< RecordT > const get(size_type i) const
Return a pointer to the record at index i.
Definition: Catalog.h:446
size_type size() const
Return the number of elements in the catalog.
Definition: Catalog.h:408

◆ _get() [2/2]

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.

Warning
Intended only for internal and pybind11 use. This exists because Operator[] returns a data type that is difficult for pybind11 to use.
Parameters
[in]nameAmplifier name
Exceptions
std::out_of_rangeif index is out of range

Definition at line 117 of file Detector.cc.

117  {
118  _AmpInfoMap::const_iterator ampIter = _ampNameIterMap.find(name);
119  if (ampIter == _ampNameIterMap.end()) {
121  os << "Unknown amplifier \"" << name << "\"";
123  }
124  return ampIter->second;
125 }
table::Key< std::string > name
Definition: Detector.cc:162
T end(T... args)
T str(T... args)
T find(T... args)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
Reports invalid arguments.
Definition: Runtime.h:66
std::ostream * os
Definition: Schema.cc:746

◆ begin()

table::AmpInfoCatalog::const_iterator lsst::afw::cameraGeom::Detector::begin ( ) const
inline

Get iterator to beginning of amplifier list.

Definition at line 171 of file Detector.h.

171 { return _ampInfoCatalog.begin(); }
iterator begin()
Iterator access.
Definition: Catalog.h:396

◆ dynamicCast()

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;

Exceptions
lsst::pex::exceptions::LogicErrorif the cast fails

param[in] ptr The pointer to be cast.

Returns
The cast pointer.
Exceptions
lsst::pex::exceptions::TypeErrorIf the dynamic cast fails.

Definition at line 18 of file Persistable.cc.

18  {
20  if (!result) {
21  throw LSST_EXCEPT(pex::exceptions::TypeError, "Dynamic pointer cast failed");
22  }
23  return result;
24 }
uint64_t * ptr
Definition: RangeSet.cc:88
py::object result
Definition: schema.cc:284
T dynamic_pointer_cast(T... args)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ end()

table::AmpInfoCatalog::const_iterator lsst::afw::cameraGeom::Detector::end ( ) const
inline

Get iterator to end of amplifier list.

Definition at line 174 of file Detector.h.

174 { return _ampInfoCatalog.end(); }
iterator end()
Iterator access.
Definition: Catalog.h:397

◆ getAmpInfoCatalog()

table::AmpInfoCatalog const lsst::afw::cameraGeom::Detector::getAmpInfoCatalog ( ) const
inline

Get the amplifier information catalog.

Definition at line 151 of file Detector.h.

151 { return _ampInfoCatalog; }

◆ getBBox()

lsst::geom::Box2I lsst::afw::cameraGeom::Detector::getBBox ( ) const
inline

Get the bounding box.

Definition at line 136 of file Detector.h.

136 { return _bbox; }

◆ getCenter() [1/2]

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 98 of file Detector.cc.

98  {
99  auto ctrPix = lsst::geom::Box2D(_bbox).getCenter();
101  return transform->applyForward(ctrPix);
102 }
A floating-point coordinate rectangle geometry.
Definition: Box.h:294
Point2D const getCenter() const noexcept
Definition: Box.h:412
CameraSysPrefix const PIXELS
Nominal pixels on the detector (unbinned) This ignores manufacturing imperfections, "tree ring" distortions and all other such effects.
Definition: CameraSys.cc:34
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.

◆ getCenter() [2/2]

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 104 of file Detector.cc.

104  {
105  return getCenter(makeCameraSys(cameraSysPrefix));
106 }
CameraSys const makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested) ...
Definition: Detector.h:251
lsst::geom::Point2D getCenter(CameraSys const &cameraSys) const
Get the center of the detector in the specified camera coordinate system.
Definition: Detector.cc:98

◆ getCorners() [1/2]

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 88 of file Detector.cc.

88  {
90  auto nativeToCameraSys = _transformMap->getTransform(_nativeSys, cameraSys);
91  return nativeToCameraSys->applyForward(nativeCorners);
92 }
std::vector< Point2D > getCorners() const
Get the corner points.
Definition: Box.cc:417
A floating-point coordinate rectangle geometry.
Definition: Box.h:294
STL class.

◆ getCorners() [2/2]

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 94 of file Detector.cc.

94  {
95  return getCorners(makeCameraSys(cameraSysPrefix));
96 }
CameraSys const makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested) ...
Definition: Detector.h:251
std::vector< lsst::geom::Point2D > getCorners(CameraSys const &cameraSys) const
Get the corners of the detector in the specified camera coordinate system.
Definition: Detector.cc:88

◆ getCrosstalk()

CrosstalkMatrix const lsst::afw::cameraGeom::Detector::getCrosstalk ( ) const
inline

Get the crosstalk coefficients.

Definition at line 168 of file Detector.h.

168 { return _crosstalk; }

◆ getId()

int lsst::afw::cameraGeom::Detector::getId ( ) const
inline

Get the detector ID.

Definition at line 128 of file Detector.h.

128 { return _id; }

◆ getName()

std::string lsst::afw::cameraGeom::Detector::getName ( ) const
inline

Get the detector name.

Definition at line 125 of file Detector.h.

125 { return _name; }

◆ getNativeCoordSys()

CameraSys lsst::afw::cameraGeom::Detector::getNativeCoordSys ( ) const
inline

The "native" coordinate system of this detector.

Definition at line 296 of file Detector.h.

296 { return _nativeSys; }

◆ getOrientation()

Orientation const lsst::afw::cameraGeom::Detector::getOrientation ( ) const
inline

Get detector's orientation in the focal plane.

Definition at line 154 of file Detector.h.

154 { return _orientation; }

◆ getPixelSize()

lsst::geom::Extent2D lsst::afw::cameraGeom::Detector::getPixelSize ( ) const
inline

Get size of pixel along (mm)

Definition at line 157 of file Detector.h.

157 { return _pixelSize; }

◆ getSerial()

std::string lsst::afw::cameraGeom::Detector::getSerial ( ) const
inline

Get the detector serial "number".

Definition at line 133 of file Detector.h.

133 { return _serial; }

◆ getTransform() [1/2]

template<typename FromSysT , typename ToSysT >
std::shared_ptr<geom::TransformPoint2ToPoint2> lsst::afw::cameraGeom::Detector::getTransform ( FromSysT const &  fromSys,
ToSysT const &  toSys 
) const

Definition at line 134 of file Detector.cc.

135  {
136  return _transformMap->getTransform(makeCameraSys(fromSys), makeCameraSys(toSys));
137 }
CameraSys const makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested) ...
Definition: Detector.h:251

◆ getTransform() [2/2]

template<typename FromSysT , typename ToSysT >
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.

Template Parameters
FromSysT,ToSysTType of fromSys, toSys: one of CameraSys or CameraSysPrefix
Parameters
fromSys,toSyscamera coordinate systems or prefixes between which to transform
Returns
a Transform that converts from fromSys to toSys in the forward direction. The Transform will be invertible.
Exceptions
lsst::pex::exceptions::InvalidParameterErrorThrown if either fromSys or toSys is not supported.

◆ getTransformMap()

std::shared_ptr<TransformMap const> lsst::afw::cameraGeom::Detector::getTransformMap ( ) const
inline

Get the transform registry.

Definition at line 160 of file Detector.h.

160 { return _transformMap; }

◆ getType()

DetectorType lsst::afw::cameraGeom::Detector::getType ( ) const
inline

Definition at line 130 of file Detector.h.

130 { return _type; }

◆ hasCrosstalk()

bool lsst::afw::cameraGeom::Detector::hasCrosstalk ( ) const
inline

Have we got crosstalk coefficients?

Definition at line 163 of file Detector.h.

163  {
164  return !(_crosstalk.isEmpty() || _crosstalk.getShape() == ndarray::makeVector(0, 0));
165  }

◆ hasTransform() [1/2]

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 127 of file Detector.cc.

127 { return _transformMap->contains(cameraSys); }

◆ hasTransform() [2/2]

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 129 of file Detector.cc.

129  {
130  return hasTransform(makeCameraSys(cameraSysPrefix));
131 }
CameraSys const makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested) ...
Definition: Detector.h:251
bool hasTransform(CameraSys const &cameraSys) const
Can this object convert between PIXELS and the specified camera coordinate system?
Definition: Detector.cc:127

◆ isPersistable()

bool lsst::afw::cameraGeom::Detector::isPersistable ( ) const
inlineoverridevirtualnoexcept

Detectors are always peristable.

Reimplemented from lsst::afw::table::io::Persistable.

Definition at line 299 of file Detector.h.

299 { return true; }

◆ makeCameraSys() [1/2]

CameraSys const lsst::afw::cameraGeom::Detector::makeCameraSys ( CameraSys const &  cameraSys) const
inline

Get a coordinate system from a coordinate system (return input unchanged and untested)

Parameters
[in]cameraSysCamera coordinate system
Returns
cameraSys unchanged
Note
the CameraSysPrefix version needs the detector name, which is why this is not static.

Definition at line 251 of file Detector.h.

251 { return cameraSys; }

◆ makeCameraSys() [2/2]

CameraSys const lsst::afw::cameraGeom::Detector::makeCameraSys ( CameraSysPrefix const &  cameraSysPrefix) const
inline

Get a coordinate system from a detector system prefix (add detector name)

Parameters
[in]cameraSysPrefixCamera coordinate system prefix
Returns
cameraSysPrefix with the detector name added

Definition at line 259 of file Detector.h.

259  {
260  return CameraSys(cameraSysPrefix, _name);
261  }

◆ operator=() [1/2]

Detector& lsst::afw::cameraGeom::Detector::operator= ( Detector const &  )
delete

◆ operator=() [2/2]

Detector& lsst::afw::cameraGeom::Detector::operator= ( Detector &&  )
delete

◆ operator[]() [1/2]

table::AmpInfoRecord const& lsst::afw::cameraGeom::Detector::operator[] ( size_t  i) const
inline

Get the amplifier specified by index.

Exceptions
std::out_of_rangeif index is out of range

Definition at line 181 of file Detector.h.

181 { return _ampInfoCatalog.at(i); }
reference at(size_type i) const
Return the record at index i (throws std::out_of_range).
Definition: Catalog.h:437

◆ operator[]() [2/2]

const table::AmpInfoRecord & lsst::afw::cameraGeom::Detector::operator[] ( std::string const &  name) const

Get the amplifier specified by name.

Exceptions
lsst::pex::exceptions::InvalidParameterErrorif no such amplifier

Definition at line 108 of file Detector.cc.

108 { return *(_get(name)); }
table::Key< std::string > name
Definition: Detector.cc:162
std::shared_ptr< table::AmpInfoRecord const > _get(int i) const
Get the amplifier specified by index, returning a shared pointer to an AmpInfo record.
Definition: Detector.cc:110

◆ readFits() [1/3]

static std::shared_ptr<Detector > lsst::afw::table::io::PersistableFacade< Detector >::readFits ( fits::Fits fitsfile)
inlinestaticinherited

Read an object from an already open FITS object.

Parameters
[in]fitsfileFITS object to read from, already positioned at the desired HDU.

Definition at line 183 of file Persistable.h.

183  {
184  return dynamicCast(Persistable::_readFits(fitsfile));
185  }
static std::shared_ptr< Detector > dynamicCast(std::shared_ptr< Persistable > const &ptr)
Dynamically cast a shared_ptr.
Definition: Persistable.cc:18

◆ readFits() [2/3]

static std::shared_ptr<Detector > lsst::afw::table::io::PersistableFacade< Detector >::readFits ( std::string const &  fileName,
int  hdu = fits::DEFAULT_HDU 
)
inlinestaticinherited

Read an object from a regular FITS file.

Parameters
[in]fileNameName of the file to read.
[in]hduHDU 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.

194  {
195  return dynamicCast(Persistable::_readFits(fileName, hdu));
196  }
static std::shared_ptr< Detector > dynamicCast(std::shared_ptr< Persistable > const &ptr)
Dynamically cast a shared_ptr.
Definition: Persistable.cc:18

◆ readFits() [3/3]

static std::shared_ptr<Detector > lsst::afw::table::io::PersistableFacade< Detector >::readFits ( fits::MemFileManager manager,
int  hdu = fits::DEFAULT_HDU 
)
inlinestaticinherited

Read an object from a FITS file in memory.

Parameters
[in]managerManager for the memory to read from.
[in]hduHDU 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.

205  {
206  return dynamicCast(Persistable::_readFits(manager, hdu));
207  }
static std::shared_ptr< Detector > dynamicCast(std::shared_ptr< Persistable > const &ptr)
Dynamically cast a shared_ptr.
Definition: Persistable.cc:18

◆ size()

size_t lsst::afw::cameraGeom::Detector::size ( ) const
inline

Get the number of amplifiers.

Renamed to __len__ in Python.

Definition at line 219 of file Detector.h.

219 { return _ampInfoCatalog.size(); }
size_type size() const
Return the number of elements in the catalog.
Definition: Catalog.h:408

◆ transform() [1/2]

template<typename FromSysT , typename ToSysT >
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.

Template Parameters
FromSysTClass of fromSys: one of CameraSys or CameraSysPrefix
ToSysTClass of toSys: one of CameraSys or CameraSysPrefix
Parameters
[in]pointCamera point to transform
[in]fromSysCamera coordinate system of point
[in]toSysCamera coordinate system of returned point
Returns
The transformed point
Exceptions
pex::exceptions::InvalidParameterErrorif fromSys or toSys is unknown

Definition at line 140 of file Detector.cc.

141  {
142  return _transformMap->transform(point, makeCameraSys(fromSys), makeCameraSys(toSys));
143 }
CameraSys const makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested) ...
Definition: Detector.h:251

◆ transform() [2/2]

template<typename FromSysT , typename ToSysT >
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.

Template Parameters
FromSysTClass of fromSys: one of CameraSys or CameraSysPrefix
ToSysTClass of toSys: one of CameraSys or CameraSysPrefix
Parameters
[in]pointsCamera points to transform
[in]fromSysCamera coordinate system of points
[in]toSysCamera coordinate system of returned points
Returns
The transformed points
Exceptions
pex::exceptions::InvalidParameterErrorif fromSys or toSys is unknown

Definition at line 146 of file Detector.cc.

147  {
148  return _transformMap->transform(points, makeCameraSys(fromSys), makeCameraSys(toSys));
149 }
CameraSys const makeCameraSys(CameraSys const &cameraSys) const
Get a coordinate system from a coordinate system (return input unchanged and untested) ...
Definition: Detector.h:251

◆ writeFits() [1/3]

void lsst::afw::table::io::Persistable::writeFits ( std::string const &  fileName,
std::string const &  mode = "w" 
) const
inherited

Write the object to a regular FITS file.

Parameters
[in]fileNameName of the file to write to.
[in]modeIf "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.

24  {
25  fits::Fits fitsfile(fileName, mode, fits::Fits::AUTO_CLOSE | fits::Fits::AUTO_CHECK);
26  writeFits(fitsfile);
27 }
void writeFits(std::string const &fileName, std::string const &mode="w") const
Write the object to a regular FITS file.
Definition: Persistable.cc:24

◆ writeFits() [2/3]

void lsst::afw::table::io::Persistable::writeFits ( fits::MemFileManager manager,
std::string const &  mode = "w" 
) const
inherited

Write the object to a FITS image in memory.

Parameters
[in]managerName of the file to write to.
[in]modeIf "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.

29  {
30  fits::Fits fitsfile(manager, mode, fits::Fits::AUTO_CLOSE | fits::Fits::AUTO_CHECK);
31  writeFits(fitsfile);
32 }
void writeFits(std::string const &fileName, std::string const &mode="w") const
Write the object to a regular FITS file.
Definition: Persistable.cc:24

◆ writeFits() [3/3]

void lsst::afw::table::io::Persistable::writeFits ( fits::Fits fitsfile) const
inherited

Write the object to an already-open FITS object.

Parameters
[in]fitsfileOpen FITS object to write to.

Definition at line 18 of file Persistable.cc.

18  {
19  OutputArchive archive;
20  archive.put(this);
21  archive.writeFits(fitsfile);
22 }

The documentation for this class was generated from the following files: