CASToR  1.0
Tomographic Reconstruction (PET/SPECT)
Public Member Functions | Private Member Functions | Private Attributes
oProjectorManager Class Reference

This class is designed to manage the projection part of the reconstruction. More...

#include <oProjectorManager.hh>

Collaboration diagram for oProjectorManager:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 oProjectorManager ()
 The constructor of oProjectorManager.
 ~oProjectorManager ()
 The destructor of oProjectorManager.
int CheckParameters ()
 A function used to check the parameters settings.
int Initialize ()
 A function used to initialize the manager and the projectors or system matrices it manages.
oProjectionLineComputeProjectionLine (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 and a thread index. As this function returns a pointer to a oProjectionLine (filled from its own oProjectionLine buffers), if a problem occurs while calling the Project functions of the vProjector or oSystemMatrix, it uses the Exit() function to stop the process.
void SetVerbose (int a_verboseLevel)
 Set the verbose level.
void SetScanner (vScanner *ap_Scanner)
 Set the scanner in use.
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 Set the image dimensions in use.
void SetDataFile (vDataFile *ap_DataFile)
 Set a data file in use to later recover some information from it.
void SetComputationStrategy (int a_computationStrategy)
 Set the computation strategy for the system matrix elements storage.
void SetOptionsForward (const string &a_optionsForward)
 Set the forward projection options contained in the provided string.
void SetOptionsBackward (const string &a_optionsBackward)
 Set the backward projection options contained in the provided string.
void SetOptionsCommon (const string &a_optionsCommon)
 Set the common projection options contained in the provided string.
int GetNbTOFBins ()
 Get the number of TOF bins associated to the projector.
int GetComputationStrategy ()
 Get the computation strategy for the storage in the projection line.
bool IsForwardOperatorCompatibleWithSPECTAttenuationCorrection ()
bool IsBackwardOperatorCompatibleWithSPECTAttenuationCorrection ()

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.

Private Attributes

vScannermp_Scanner
oImageDimensionsAndQuantificationmp_ImageDimensionsAndQuantification
vDataFilemp_DataFile
bool m_applyTOF
bool m_applyPOI
int m_nbTOFBins
int m_computationStrategy
string m_optionsForward
string m_optionsBackward
string m_optionsCommon
oSystemMatrixmp_SystemMatrixForward
oSystemMatrixmp_SystemMatrixBackward
vProjectormp_ProjectorForward
vProjectormp_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

Detailed Description

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 32 of file oProjectorManager.hh.


Constructor & Destructor Documentation

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 28 of file oProjectorManager.cc.

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 72 of file oProjectorManager.cc.

Here is the call graph for this function:


Member Function Documentation

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.

Returns:
An integer reflecting the check status; 0 if no problem, another value otherwise.

Definition at line 123 of file oProjectorManager.cc.

Here is the caller graph for this function:

This function is used to compute system matrix elements from the associated projector or pre-computed system matrix given a vEvent and a thread index. As this function returns a pointer to a oProjectionLine (filled from its own oProjectionLine buffers), if a problem occurs while calling the Project functions of the vProjector or oSystemMatrix, it uses the Exit() function to stop the process.

Parameters:
vEvent*ap_Event
inta_th
Returns:
A pointer to the oProjectionLine containing the system matrix elements.

Definition at line 542 of file oProjectorManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

public inline int oProjectorManager::GetComputationStrategy ( ) [inline]

Get the computation strategy for the storage in the projection line.

Returns:
The computation strategy m_computationStrategy

Definition at line 158 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline int oProjectorManager::GetNbTOFBins ( ) [inline]

Get the number of TOF bins associated to the projector.

Returns:
The number of TOF bins m_nbTOFBins

Definition at line 151 of file oProjectorManager.hh.

Here is the caller graph for this function:

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.

Returns:
An integer reflecting the initialization status; 0 if no problem, another value otherwise.

Definition at line 179 of file oProjectorManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

Returns:
Return the compatibility with SPECT attenuation correction of the backward operator

Definition at line 110 of file oProjectorManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

Returns:
Return the compatibility with SPECT attenuation correction of the forward operator

Definition at line 97 of file oProjectorManager.cc.

Here is the call graph for this function:

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.

Returns:
An integer reflecting the parsing and initialization status; 0 if no problem, another value otherwise.

Definition at line 279 of file oProjectorManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

public inline void oProjectorManager::SetComputationStrategy ( int  a_computationStrategy) [inline]

Set the computation strategy for the system matrix elements storage.

Parameters:
inta_computationStrategy

Definition at line 123 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline void oProjectorManager::SetDataFile ( vDataFile ap_DataFile) [inline]

Set a data file in use to later recover some information from it.

Parameters:
vDataFile*ap_DataFile

Definition at line 116 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline void oProjectorManager::SetImageDimensionsAndQuantification ( oImageDimensionsAndQuantification ap_ImageDimensionsAndQuantification) [inline]

Set the image dimensions in use.

Parameters:
oImageDimensionsAndQuantification*ap_ImageDimensionsAndQuantification

Definition at line 109 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline void oProjectorManager::SetOptionsBackward ( const string &  a_optionsBackward) [inline]

Set the backward projection options contained in the provided string.

Parameters:
conststring& a_optionsBackward

Definition at line 137 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline void oProjectorManager::SetOptionsCommon ( const string &  a_optionsCommon) [inline]

Set the common projection options contained in the provided string.

Parameters:
conststring& a_optionsCommon

Definition at line 144 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline void oProjectorManager::SetOptionsForward ( const string &  a_optionsForward) [inline]

Set the forward projection options contained in the provided string.

Parameters:
conststring& a_optionsForward

Definition at line 130 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline void oProjectorManager::SetScanner ( vScanner ap_Scanner) [inline]

Set the scanner in use.

Parameters:
vScanner*ap_Scanner

Definition at line 102 of file oProjectorManager.hh.

Here is the caller graph for this function:

public inline void oProjectorManager::SetVerbose ( int  a_verboseLevel) [inline]

Set the verbose level.

Parameters:
inta_verboseLevel

Definition at line 95 of file oProjectorManager.hh.

Here is the caller graph for this function:


Member Data Documentation

The table of pointers to the oProjectionLines, one per thread

Definition at line 221 of file oProjectorManager.hh.

Boolean that says if we apply POI or not

Definition at line 201 of file oProjectorManager.hh.

Boolean that says if we apply TOF or not

Definition at line 200 of file oProjectorManager.hh.

Boolean that says if the parameters were checked or not

Definition at line 225 of file oProjectorManager.hh.

The integer describing the computation strategy for system matrix elements storage

Definition at line 204 of file oProjectorManager.hh.

Boolean that says if the manager was initialized or not

Definition at line 227 of file oProjectorManager.hh.

The number of TOF bins in use

Definition at line 202 of file oProjectorManager.hh.

The string containing options for the backward projections

Definition at line 207 of file oProjectorManager.hh.

The string containing common options for the projectors

Definition at line 209 of file oProjectorManager.hh.

The string containing options for the forward projections

Definition at line 206 of file oProjectorManager.hh.

Boolean that says if matched projectors are used

Definition at line 219 of file oProjectorManager.hh.

Boolean that says if a vProjector is used for backward projections

Definition at line 218 of file oProjectorManager.hh.

Boolean that says if a vProjector is used for forward projections

Definition at line 217 of file oProjectorManager.hh.

Boolean that says if a oSystemMatrix is used for backward projections

Definition at line 216 of file oProjectorManager.hh.

Boolean that says if a oSystemMatrix is used for forward projections

Definition at line 215 of file oProjectorManager.hh.

The verbose level

Definition at line 223 of file oProjectorManager.hh.

Pointer to a vDataFile object in use

Definition at line 198 of file oProjectorManager.hh.

Pointer to the oImageDimensionsAndQuantification object in use

Definition at line 196 of file oProjectorManager.hh.

The pointer to the vProjector used for backward projections

Definition at line 214 of file oProjectorManager.hh.

The pointer to the vProjector used for forward projections

Definition at line 213 of file oProjectorManager.hh.

Pointer to the vScanner object in use

Definition at line 194 of file oProjectorManager.hh.

The pointer to the oSystemMatrix used for backward projections

Definition at line 212 of file oProjectorManager.hh.

The pointer to the oSystemMatrix used for forward projections

Definition at line 211 of file oProjectorManager.hh.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Defines