3.10.1.5.1.6.1.1. opengate.contrib.spect.genm670

3.10.1.5.1.6.1.1.1. Functions

get_collimator(rad)

add_ge_nm67_fake_spect_head(sim[, name])

get_orientation_for_CT(colli_type, table_shift, radius)

add_ge_nm67_spect_head(sim[, name, collimator_type, debug])

Collimators:

distance_to_center_of_crystal(sim[, name])

add_ge_nm670_spect_box(sim, name, collimator_type)

add_ge_nm670_spect_crystal(sim, name, lead_cover)

add_ge_nm670_spect_collimator(sim, name, head, ...)

Start with default lehr collimator description,

hegp_collimator_repeater(sim, name, core, debug)

megp_collimator_repeater(sim, name, core, debug)

lehr_collimator_repeater(sim, name, core, debug)

UNUSED_megp_collimator_repeater_parametrised(sim, ...)

# because this volume will be parameterised, we need to prevent

add_simplified_digitizer_Tc99m(sim, ...[, scatter_flag])

add_digitizer(sim, crystal_volume_name, channels)

add_digitizer_energy_windows(sim, crystal_volume_name, ...)

get_volume_position_in_head(sim, spect_name, vol_name)

compute_plane_position_and_distance_to_crystal(...)

get_plane_position_and_distance_to_crystal(collimator_type)

This has been computed with t043_distances or compute_plane_position_and_distance_to_crystal

add_fake_table(sim[, name])

Add a patient table (fake)

set_head_orientation(head, collimator_type, radius[, ...])

add_detection_plane_for_arf(sim, plane_size, ...[, ...])

3.10.1.5.1.6.1.1.2. Module Contents

opengate.contrib.spect.genm670.get_collimator(rad)[source]
opengate.contrib.spect.genm670.add_ge_nm67_fake_spect_head(sim, name='spect')[source]
opengate.contrib.spect.genm670.get_orientation_for_CT(colli_type, table_shift, radius)[source]
opengate.contrib.spect.genm670.add_ge_nm67_spect_head(sim, name='spect', collimator_type='lehr', debug=False)[source]

Collimators: - False : no collimator - lehr : holes length 35 mm, diam 1.5 mm, septal thickness : 0.2 mm - megp : holes length 58 mm, diam 3 mm, septal thickness : 1.05 mm - hegp : holes length 66 mm, diam 4 mm, septal thickness : 1.8 mm

Collimator LEHR: Low Energy High Resolution (for Tc99m) Collimator MEGP: Medium Energy General Purpose (for In111, Lu177) Collimator HEGP: High Energy General Purpose (for I131)

opengate.contrib.spect.genm670.distance_to_center_of_crystal(sim, name='spect')[source]
opengate.contrib.spect.genm670.add_ge_nm670_spect_box(sim, name, collimator_type)[source]
opengate.contrib.spect.genm670.add_ge_nm670_spect_crystal(sim, name, lead_cover)[source]
opengate.contrib.spect.genm670.add_ge_nm670_spect_collimator(sim, name, head, collimator_type, debug)[source]

Start with default lehr collimator description, then change some parameters for the other types

opengate.contrib.spect.genm670.hegp_collimator_repeater(sim, name, core, debug)[source]
opengate.contrib.spect.genm670.megp_collimator_repeater(sim, name, core, debug)[source]
opengate.contrib.spect.genm670.lehr_collimator_repeater(sim, name, core, debug)[source]
opengate.contrib.spect.genm670.UNUSED_megp_collimator_repeater_parametrised(sim, name, core, debug)[source]

# because this volume will be parameterised, we need to prevent # the creation of the physical volume hole.build_physical_volume = False

# parameterised holes holep = sim.add_volume(‘RepeatParametrised’, f’{name}_collimator_hole_param’) holep.mother = core.name holep.translation = None holep.rotation = None holep.repeated_volume_name = hole.name # number of repetition holep.linear_repeat = [183, 235, 1] if debug:

holep.linear_repeat = [10, 10, 1]

# translation for each repetition holep.translation = [2.94449 * mm, 1.7 * mm, 0] # starting position holep.start = [-(holep.linear_repeat[0] * holep.translation[0]) / 2.0,

-(holep.linear_repeat[1] * holep.translation[1]) / 2.0, 0]

opengate.contrib.spect.genm670.add_simplified_digitizer_Tc99m(sim, crystal_volume_name, output_name, scatter_flag=False)[source]
opengate.contrib.spect.genm670.add_digitizer(sim, crystal_volume_name, channels)[source]
opengate.contrib.spect.genm670.add_digitizer_energy_windows(sim, crystal_volume_name, channels)[source]
opengate.contrib.spect.genm670.get_volume_position_in_head(sim, spect_name, vol_name, pos='max', axis=2)[source]
opengate.contrib.spect.genm670.compute_plane_position_and_distance_to_crystal(collimator_type)[source]
opengate.contrib.spect.genm670.get_plane_position_and_distance_to_crystal(collimator_type)[source]

This has been computed with t043_distances or compute_plane_position_and_distance_to_crystal - first : distance from head center to the PSD (translation for the plane) - second: distance from PSD to center of the crystal - third : distance from the head boundary to the PSD (for spect_radius info)

opengate.contrib.spect.genm670.add_fake_table(sim, name='table')[source]

Add a patient table (fake)

opengate.contrib.spect.genm670.set_head_orientation(head, collimator_type, radius, gantry_angle=0)[source]
opengate.contrib.spect.genm670.add_detection_plane_for_arf(sim, plane_size, colli_type, radius, gantry_angle=0, det_name=None)[source]