Division of Nuclear Medicine

Collimator Module

[News] [Installation guide] [User guide] [Programmers' info] [Resources] [Contacts]


  1. Overview
    1. Supported Models
    2. Outputs
    3. Customization
    4. Collimator models - description and configuratio
      1. Activating collimator modeling
      2. Simple PET
      3. Monte Carlo PET
      4. UNC SPECT
      5. Slat DHCI
    1. Parameter type definitions for collimator parameter files

  1. Example collimator parameter files



Supported models

The Collimator Module receives photons from the PHG and tracks photons through the collimator being modeled. Two styles of collimator are simulated, geometric and Monte Carlo. For SPECT, collimators are modeled using geometric transfer functions (footnote 1, Tsui and Gullberg 1990), rather than using Monte Carlo techniques. Parallel, fan, and cone beam collimators can be simulated. For PET, photons are tracked through cylindrical collimators using Monte Carlo techniques. Alternatively, a simple PET set-up using geometrically modelled perfectly absorbing end-plates can be used. For DHCI, photons are tracked through slat collimators using Monte Carlo methods.

The algorithms used for Compton and coherent scattering and those used for selecting SPECT collimator positions will be described in Physics and Algorithms.


Collimated photon data is passed from the collimator module to the detector module if detectors are being simulated, to the binning module if binning is being done on-the-fly, or directly to the history file module if one is being created.

WARNING: When using UNC SPECT collimation it is important to remember that the photon weights are affected by this module.


Each model allows the user to write a User Routine to modify the behavior of the collimator software. This routine is supplied the collimator parameters and the current photon. It is called before the collimator code models the transport through the collimator. The user routine may modify any parameter of the current photon or have it rejected by the collimator module. To use this feature, modify 'dummy' collimator module user routine with user code (ColUsr.c) and re-build SimSET software.


[top of page]


Collimator models - description and configuration

Activating collimator modeling

The collimator module uses a parameter file format to select the collimator model, define collimator parameters, and select simulation options. To activate collimator modeling:

  1. Create a Collimator Parameters file. Entries in this file have the following format:

    DATA_TYPE parameter_name = value

    For example,

    REAL collimator_depth = 2.0

    More detailed information on parameter file formats can be found in
    Appendix VI. Data type definitions for collimator parameter files may be found below.

  2. Set 'collimator_params_file' in the PHG run-time parameters file to this file's pathname.

  3. Create the following entries in the Collimator Parameters file:

Set 'history_file' to the desired name of the new history file. Only photons and detection records accepted by the detector module are written to this history file. It must have a different name from any other history files specified in the simulation (such as from the phg run-time parameters or elsewhere). Leave blank for no history file creation.

Set 'history_params_file' to the name of the customized history parameters file. Leave blank if no history file is being created.

Set 'collimator_type' to desired model:

simple_pet = geometric modeling of infinitely thin, perfectly absorbing end-plates
monte_carlo_pet = simulation of cylindrical PET collimators
unc_spect = geometric modeling of SPECT collimators


The remaining collimator parameters depend on the collimator type chosen:


[top of page]


Simple PET


End-plates are modeled with inner radius equal to the target cylinder radius. The z-positions of the end-plates are automatically set to the minimum and maximum z of the target cylinder.

Figure 1. End-plates for Simple PET collimators



In the collimator parameters file:

Set 'collimator_depth' to desired depth of the end-plates.


[top of page] [example parameter files]


Monte Carlo PET


This mode provides a full simulation (including scatter, absorption, and penetration) of photons passing through a collimator. The collimator is defined using a geometry based on Chris Thompson's PETSIM software (footnote 2, Thompson et al, 1992). The collimators are composed of cylinders that can have multiple radial and axial layers; the collimators can be tapered (figure 2).

Figure 2. Axial and transaxial cross-sections through a PET collimator.

The user specifies an unlimited number of axial segments (see figure 3). Each segment is defined by its material, a minimum and maximum axial position, and an inner and outer radius.


Figure 3. Axial segments in a Monte-Carlo PET collimator simulation.


The axial segments may be split into multiple radial layers (see figure 4), allowing simulation of tapered collimators and other unusual collimator geometries.

Figure 4. Using Multiple Layers to create Tapered Collimators in a Monte-Carlo PET simulation.



In the collimator parameters file:

The number of layers are specified first, then the segments are specified for each layer. The innermost layer (radially) is specified first, and the segments are specified from lowest (axially) to highest. Layers must be contiguous radially and segments must be contiguous axially (i.e. the air between collimator sections must also be specified).

Set 'NUM_ELEMENTS_IN_LIST layers_list' to the desired number of radial layers.

For each layer (starting with the innermost layer)

Set 'NUM_ELEMENTS_IN_LIST segment_list' to the desired number of segments in the current layer.

For each segment (starting with the lowest axial layer)

 For a segment with rectangular cross section:

For a segment with trapezoidal cross section:


[top of page] [example parameter files]




Much of the software in this module was written at the University of North Carolina by Drs. Eric Frey and Dave Lewis.

The collimator is not modeled using Monte-Carlo photon tracking but rather by using a geometric transfer function (footnote 3, Tsui and Gullberg, 1990). Three types of hole geometries are supported: parallel hole, fan beam, and cone beam. The hole apertures at the collimator front face are circular and identical across the face. For parallel hole collimation the hole is a right circular cylinder perpendicular to the collimator face; for fan-beam the holes are tapered, slanted transaxially to focus on a focal line; for cone-beam the holes are tapered, slanted both axially and transaxially to focus on a focal point (see figure 5).



Figure 5. Fan-beam and Cone-beam collimation in a UNC SPECT simulation


The collimator holes are modeled in a hexagonal pattern. The collimator response is calculated as if the pattern were moved randomly about the collimator face. Thus, the holes do not correspond to fixed positions on the collimator face and can not, for example, give rise to a "collimator pattern" in the simulated data. The density of the holes is based on the user specified hole radius and septal thickness (see figure 6). Note that septal_thickness is defined to be HALF the smallest distance between the holes. For each photon the software computes the probabilty that the photon would pass through a hole without hitting the collimator. Photons for which this probability is non-zero are accepted, their weights multiplied by this probability. Septal penetration and scatter within the collimator are not modeled.

Figure 6. Effective front face of collimator in a UNC SPECT simulation


The simulated collimator positions are determined from the parameters 'start_angle', 'stop_angle', and 'num_views'. The first collimator position is centered on start_angle, and the last collimator position is centered at (stop_angle - one bin).

A new feature under implementation is the parameter 'first_angle_offset'. This specifies whether the first collimator position is centered on start_angle or is offset by a half-bin (see figure 7). In this case the last collimator position is centered at (stop_angle - one bin) or (stop_angle - one half bin) respectively.

Figure 7. Camera positions in a UNC SPECT simulation.
NOTE: first_angle_offset is not yet supported (16 Feb 1999).


The collimator position for a photon is randomly selected from those positions at which the photon can pass through the collimator (will be documented in Physics and Algorithms).



In the collimator parameter file:

Set 'collimator_type' to "unc_spect"


Figure 8. Parameters for UNC SPECT collimators


[top of page] [example parameter files]

Slat - DHCI


The slat collimator module is a monte carlo simulation of transport through a "slat" collimator geometry (Figure 9). In order to use slat collimators you must use a DHCI detector. As you will see below in the parameter section, defining the over-all dimensions of the collimator are actually done in the detector module. Only collimator specific parameters are specified in this module.


In the collimator parameter file:

Set 'collimator_type' to "slat"

Note that the axial and transaxial dimensions are defined by the detector. The sum of the gap and width must be an integral factor of the axial extent of the detector module.

The collimator is in a slat-gap-slat-gap.... configuration. So the gap begins at the "min z" value defined in the detector module.

Figure 9. Parameters for Slat-DHCI collimators


[top of page] [example parameter files]


Parameter type definitions for collimator parameter files

Parameter name Units Data type
Allows the creation of a history file of photons processed by the collimator module (see history files page)
Configures history file creation for photons processed by the collimator module (see history files page)
If text, then ENUM, else INT. Options shown below:


collimator_depth cm REAL
If text, then ENUM, else INT. Options shown below:


inner_radius cm REAL
outer_radius cm REAL
inner_min_z cm REAL
inner_max_z cm REAL
If text, then ENUM, else INT. Options shown below:


focal_length cm REAL
radius_of_rotation cm REAL
thickness cm REAL
hole_radius cm REAL
septal_thickness cm REAL
min_z cm REAL
max_z cm REAL
start_angle degrees REAL
stop_angle degrees REAL
first_angle_offset degrees REAL


Example Collimator Parameter files 

  1. Generic contains samples of all collimator parameters
  2. Simple PVI (3D PET) collimator parameter file (geometric collimation)
  3. Monte-Carlo PVI collimator parameter file
  4. Monte-Carlo 2D PET collimator parameter file
  5. UNC SPECT collimator parameter file
  6. Slat DHCI collimator parameter file



[top of page]

Last revised by: Robert Harrison
Revision date: 14 January 2014