CASToR
3.0
Tomographic Reconstruction (PET/SPECT/CT)
|
This class is designed to manage the projection part of the reconstruction. More...
#include <oProjectorManager.hh>
Public Member Functions | |
oProjectorManager () | |
The constructor of oProjectorManager. More... | |
~oProjectorManager () | |
The destructor of oProjectorManager. More... | |
int | CheckParameters () |
A function used to check the parameters settings. More... | |
int | CheckSPECTAttenuationCompatibility (const string &a_pathToAttenuationImage) |
A function used to check specific compatibility with SPECT and attenuation correction. More... | |
int | Initialize () |
A function used to initialize the manager and the projectors or system matrices it manages. More... | |
void | ApplyBedOffset (int a_bed) |
Compute the bed offset from the provided bed index and apply it to all projection lines. More... | |
void | SetSensitivityModeOn () |
Say that the projector will be used to compute the global sensitivity. More... | |
void | SetSensitivityModeOff () |
Say that the projector will no longer be used to compute the global sensitivity. More... | |
oProjectionLine * | ComputeProjectionLine (vEvent *ap_Event, int a_th) |
This function is used to compute system matrix elements from the associated projector or pre-computed system matrix given a vEvent, a bed position and a thread index. As this function returns a pointer to a oProjectionLine (filled from its own oProjectionLine buffers), if a problem occurs, it returns the NULL pointer. More... | |
void | SetVerbose (int a_verboseLevel) |
Set the verbose level. More... | |
void | SetScanner (vScanner *ap_Scanner) |
Set the scanner in use. More... | |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification) |
Set the image dimensions in use. More... | |
void | SetDataFile (vDataFile *ap_DataFile) |
Set a data file in use to later recover some information from it. More... | |
void | SetComputationStrategy (int a_computationStrategy) |
Set the computation strategy for the system matrix elements storage. More... | |
void | SetOptionsForward (const string &a_optionsForward) |
Set the forward projection options contained in the provided string. More... | |
void | SetOptionsBackward (const string &a_optionsBackward) |
Set the backward projection options contained in the provided string. More... | |
void | SetOptionsCommon (const string &a_optionsCommon) |
Set the common projection options contained in the provided string. More... | |
int | GetNbTOFBins () |
Get the number of TOF bins associated to the projector. More... | |
int | GetComputationStrategy () |
Get the computation strategy for the storage in the projection line. More... | |
bool | IsForwardOperatorCompatibleWithSPECTAttenuationCorrection () |
bool | IsBackwardOperatorCompatibleWithSPECTAttenuationCorrection () |
int | ProcessAndSetMask (FLTNB *ap_maskImage) |
Process and set the provided mask image for projector masking. More... | |
Private Member Functions | |
int | ParseOptionsAndInitializeProjectors () |
Parse forward and backward projection options contained in the previously provided strings. This function is called inside the Initialize() function. More... | |
Private Attributes | |
vScanner * | mp_Scanner |
oImageDimensionsAndQuantification * | mp_ImageDimensionsAndQuantification |
vDataFile * | mp_DataFile |
int | m_TOFMethod |
FLTNB | m_TOFBinSizeInMm |
FLTNB | m_TOFResolutionInMm |
FLTNB | m_TOFMeasurementRangeInMm |
int | m_nbTOFBins |
bool | m_applyPOI |
int | m_computationStrategy |
string | m_optionsForward |
string | m_optionsBackward |
string | m_optionsCommon |
string | m_forwardProjectorName |
string | m_backwardProjectorName |
oSystemMatrix * | mp_SystemMatrixForward |
oSystemMatrix * | mp_SystemMatrixBackward |
vProjector * | mp_ProjectorForward |
vProjector * | mp_ProjectorBackward |
bool | m_useSystemMatrixForward |
bool | m_useSystemMatrixBackward |
bool | m_useProjectorForward |
bool | m_useProjectorBackward |
bool | m_useMatchedProjectors |
oProjectionLine ** | m2p_ProjectionLines |
int | m_verbose |
bool | m_checked |
bool | m_initialized |
bool | m_applyMask |
bool * | mp_mask |
This class is designed to manage the projection part of the reconstruction.
As each manager class, it is created in the main program, all parameters are then set, checked, and the manager is initialized. The manager is then used by the algorithm itself, where the function ComputeProjectionLine() is called to compute the system matrix elements for the provided event, which are stored in a oProjectionLine. For multi-threading implementation, each thread have its own oProjectionLine. The manager will make use of a vProjector or a oSystemMatrix to compute the system matrix elements for forward and backward projections.
Definition at line 52 of file oProjectorManager.hh.
oProjectorManager::oProjectorManager | ( | ) |
The constructor of oProjectorManager.
This is the default and unique constructor. It does not take any parameter and its role is only to affect default values to each member of the class.
Definition at line 40 of file oProjectorManager.cc.
oProjectorManager::~oProjectorManager | ( | ) |
The destructor of oProjectorManager.
This is the default and unique destructor. It does not take any parameter and its role is only to free or delete all structures that were built by this class.
Definition at line 90 of file oProjectorManager.cc.
void oProjectorManager::ApplyBedOffset | ( | int | a_bed | ) |
Compute the bed offset from the provided bed index and apply it to all projection lines.
int | a_bed |
Definition at line 749 of file oProjectorManager.cc.
int oProjectorManager::CheckParameters | ( | ) |
A function used to check the parameters settings.
This function does not take any parameter and is used to check that all mandatory members were correctly parameterized.
Definition at line 146 of file oProjectorManager.cc.
int oProjectorManager::CheckSPECTAttenuationCompatibility | ( | const string & | a_pathToAttenuationImage | ) |
A function used to check specific compatibility with SPECT and attenuation correction.
const | string& a_pathToAttenuationImage |
This function checks that the projector is compatible with SPECT and attenuation correction and that the computation strategy is not image-based; in case the provided path to an attenuation image is not empty.
Definition at line 202 of file oProjectorManager.cc.
oProjectionLine * oProjectorManager::ComputeProjectionLine | ( | vEvent * | ap_Event, |
int | a_th | ||
) |
This function is used to compute system matrix elements from the associated projector or pre-computed system matrix given a vEvent, a bed position and a thread index. As this function returns a pointer to a oProjectionLine (filled from its own oProjectionLine buffers), if a problem occurs, it returns the NULL pointer.
vEvent* | ap_Event |
int | a_th |
Definition at line 762 of file oProjectorManager.cc.
|
inline |
Get the computation strategy for the storage in the projection line.
Definition at line 205 of file oProjectorManager.hh.
|
inline |
Get the number of TOF bins associated to the projector.
Definition at line 198 of file oProjectorManager.hh.
int oProjectorManager::Initialize | ( | ) |
A function used to initialize the manager and the projectors or system matrices it manages.
This function does not take any parameter and is used to initialize everything that should be initialized. In a few words, it parses the options, then creates and initializes the projectors or system matrices based on the provided options.
Definition at line 237 of file oProjectorManager.cc.
bool oProjectorManager::IsBackwardOperatorCompatibleWithSPECTAttenuationCorrection | ( | ) |
Definition at line 133 of file oProjectorManager.cc.
bool oProjectorManager::IsForwardOperatorCompatibleWithSPECTAttenuationCorrection | ( | ) |
Definition at line 120 of file oProjectorManager.cc.
|
private |
Parse forward and backward projection options contained in the previously provided strings. This function is called inside the Initialize() function.
Parse forward and backward projection options contained in the m_optionsForward and m_optionsBackward strings. Specific pure virtual functions of the vProjector are used to read parameters and initialize them. If a oSystemMatrix is used, specific functions are also called to read and initialize it. This function is called inside the Initialize() function. The syntax for the declaration of the projector and associated options is described inside the main program.
Definition at line 439 of file oProjectorManager.cc.
int oProjectorManager::ProcessAndSetMask | ( | FLTNB * | ap_maskImage | ) |
Process and set the provided mask image for projector masking.
FLTNB* | ap_maskImage |
Definition at line 850 of file oProjectorManager.cc.
|
inline |
Set the computation strategy for the system matrix elements storage.
int | a_computationStrategy |
Definition at line 170 of file oProjectorManager.hh.
|
inline |
Set a data file in use to later recover some information from it.
vDataFile* | ap_DataFile |
Definition at line 163 of file oProjectorManager.hh.
|
inline |
Set the image dimensions in use.
oImageDimensionsAndQuantification* | ap_ImageDimensionsAndQuantification |
Definition at line 156 of file oProjectorManager.hh.
|
inline |
Set the backward projection options contained in the provided string.
const | string& a_optionsBackward |
Definition at line 184 of file oProjectorManager.hh.
|
inline |
Set the common projection options contained in the provided string.
const | string& a_optionsCommon |
Definition at line 191 of file oProjectorManager.hh.
|
inline |
Set the forward projection options contained in the provided string.
const | string& a_optionsForward |
Definition at line 177 of file oProjectorManager.hh.
|
inline |
Set the scanner in use.
vScanner* | ap_Scanner |
Definition at line 149 of file oProjectorManager.hh.
void oProjectorManager::SetSensitivityModeOff | ( | ) |
Say that the projector will no longer be used to compute the global sensitivity.
It restores the TOF application, as well as POI, and set the sensitivity mode off for the vProjector
Definition at line 726 of file oProjectorManager.cc.
void oProjectorManager::SetSensitivityModeOn | ( | ) |
Say that the projector will be used to compute the global sensitivity.
It change the TOF application, as well as POI, and set the sensitivity mode on for the vProjector
Definition at line 708 of file oProjectorManager.cc.
|
inline |
Set the verbose level.
int | a_verboseLevel |
Definition at line 142 of file oProjectorManager.hh.
|
private |
The table of pointers to the oProjectionLines, one per thread
Definition at line 278 of file oProjectorManager.hh.
|
private |
Apply the voxel mask to projectors
Definition at line 286 of file oProjectorManager.hh.
|
private |
Boolean that says if we apply POI or not
Definition at line 257 of file oProjectorManager.hh.
|
private |
The name of the backward projector provided in the options
Definition at line 267 of file oProjectorManager.hh.
|
private |
Boolean that says if the parameters were checked or not
Definition at line 282 of file oProjectorManager.hh.
|
private |
The integer describing the computation strategy for system matrix elements storage
Definition at line 259 of file oProjectorManager.hh.
|
private |
The name of the forward projector provided in the options
Definition at line 266 of file oProjectorManager.hh.
|
private |
Boolean that says if the manager was initialized or not
Definition at line 284 of file oProjectorManager.hh.
|
private |
The number of TOF bins in use
Definition at line 256 of file oProjectorManager.hh.
|
private |
The string containing options for the backward projections
Definition at line 262 of file oProjectorManager.hh.
|
private |
The string containing common options for the projectors
Definition at line 264 of file oProjectorManager.hh.
|
private |
The string containing options for the forward projections
Definition at line 261 of file oProjectorManager.hh.
|
private |
The size in mm of a single TOF bin (either cumulative bin for histogrammed data or quantization bin for list-mode data)
Definition at line 253 of file oProjectorManager.hh.
|
private |
Total span of TOF measurements (in mm)
Definition at line 255 of file oProjectorManager.hh.
|
private |
Integer tagging the type of TOF use
Definition at line 252 of file oProjectorManager.hh.
|
private |
Resolution (FWHM) of the time-of-flight Gaussian distribution (in mm)
Definition at line 254 of file oProjectorManager.hh.
|
private |
Boolean that says if matched projectors are used
Definition at line 276 of file oProjectorManager.hh.
|
private |
Boolean that says if a vProjector is used for backward projections
Definition at line 275 of file oProjectorManager.hh.
|
private |
Boolean that says if a vProjector is used for forward projections
Definition at line 274 of file oProjectorManager.hh.
|
private |
Boolean that says if a oSystemMatrix is used for backward projections
Definition at line 273 of file oProjectorManager.hh.
|
private |
Boolean that says if a oSystemMatrix is used for forward projections
Definition at line 272 of file oProjectorManager.hh.
|
private |
The verbose level
Definition at line 280 of file oProjectorManager.hh.
|
private |
Pointer to a vDataFile object in use
Definition at line 250 of file oProjectorManager.hh.
|
private |
Pointer to the oImageDimensionsAndQuantification object in use
Definition at line 248 of file oProjectorManager.hh.
|
private |
Mask for voxels: only true voxels will be taken into account for projector coefficients computation (currently 3D - XYZ)
Definition at line 287 of file oProjectorManager.hh.
|
private |
The pointer to the vProjector used for backward projections
Definition at line 271 of file oProjectorManager.hh.
|
private |
The pointer to the vProjector used for forward projections
Definition at line 270 of file oProjectorManager.hh.
|
private |
Pointer to the vScanner object in use
Definition at line 246 of file oProjectorManager.hh.
|
private |
The pointer to the oSystemMatrix used for backward projections
Definition at line 269 of file oProjectorManager.hh.
|
private |
The pointer to the oSystemMatrix used for forward projections
Definition at line 268 of file oProjectorManager.hh.