PET Geometry

_images/planogram_sketch.png
petl_server.PETLserver.add_planogram(self, psi, D, L, H, T, v_m0=None, v_m1=None)

This function adds a pair of parallel flat panel detectors to the PET model which are defined in planogram coordinates.

Parameters:
  • psi (float) – azimuthal rotation angle of a detector pair a value of zero makes the panels parallel to the x-axis

  • D (float) – the distance between the front faces of the two panels

  • L (float) – the full length of the panels

  • H (float) – the full height (z) of the panels

  • v_m0 (float) – the maximum slope in the x-y plane for the planogram

  • v_m1 (float) – the maximum slope in the x-z plane for the planograms

petl_server.PETLserver.remove_planogram(self, n)

Removes the n-th planogram from the PET geometry specification

Parameters:

n (int) – the planogram to remove

petl_server.PETLserver.add_module(self, c, r, val=0.0815, A=None)

Adds a module to the scintillator model that can be used to calculate the sensitivity (stopping power) of each coincidence.

Note that this is NOT the same as add_planogram

Parameters:
  • c (list of 3 floats) – the center of the module

  • r (list of 3 floats) – half width, half lengthm half depth of the module

  • val (float) – the attenuation coefficient of the scintillator at 511 keV

  • A (3x3 numpy array) – rotation matrix

petl_server.PETLserver.clear_modules(self)

Clears all module objects

petl_server.PETLserver.geometry_defined(self)

Returns True if at least one set of coincience flat panel detectors are specified, otherwise returns False

petl_server.PETLserver.allocate_projections(self)

Allocates data for the PET planograms data to be stored which is a list of numpy arrays where each item in the list corresponds to a planogram. A single numpy array cannot be used because each planogram may have a different shape

petl_server.PETLserver.allocate_rebinned_projections(self)

Allocates data for the rebinned PET planograms data to be stored which is a list of numpy arrays where each item in the list corresponds to a planogram. A single numpy array cannot be used because each planogram may have a different shape

petl_server.PETLserver.get_numPlanograms(self)

Returns the number of planograms that are currently specified.

petl_server.PETLserver.get_planogramSize(self, n)

Returns the shape of the n-th planogram