kernelkit.ProjectionGeometry

kernelkit.ProjectionGeometry#

class kernelkit.ProjectionGeometry(source_position, detector_position, detector: Detector, u: Sequence = (0.0, 1.0, 0.0), v: Sequence = (0.0, 0.0, 1.0), beam: Beam | str = Beam.CONE, array_module=None)#

Single 3D projection with one source and one detector.

Attributes:
detector_extent_min

Minimum extent of the detector in the world frame.

u

Horizontal u-vector in the detector frame of unit length.

v

Vertical v-vector in the detector frame of unit length.

__init__(source_position, detector_position, detector: Detector, u: Sequence = (0.0, 1.0, 0.0), v: Sequence = (0.0, 0.0, 1.0), beam: Beam | str = Beam.CONE, array_module=None)#

Initialize a projection geometry.

Parameters:
source_positionarray-like

Position of the source in the world frame.

detector_positionarray-like

Position of the detector in the world frame. The detector is assumed to be centered around the detector position.

detectorkernelkit.geom.Detector

Detector object.

u: Sequence

Vector pointing in the horizontal direction of the detector of length 1.

v: Sequence

Vector pointing in the vertical direction of the detector of length 1.

beamstr

Beam type, either ‘cone’ or ‘parallel’.

Notes

The axes conventions always follow the coordinates (x, y, z) in world space, where x and y are horizontal, and z is vertical. The detector u vector is horizontal and the v vector is vertical.

Methods

__init__(source_position, detector_position, ...)

Initialize a projection geometry.

Attributes

detector_extent_min

Minimum extent of the detector in the world frame.

u

Horizontal u-vector in the detector frame of unit length.

v

Vertical v-vector in the detector frame of unit length.