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

This class is designed to manage the optimization part of an iterative reconstruction. More...

#include <oOptimizerManager.hh>

Collaboration diagram for oOptimizerManager:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 oOptimizerManager ()
 The constructor of oOptimizerManager.
 ~oOptimizerManager ()
 The destructor of oOptimizerManager.
int CheckParameters ()
 A function used to check the parameters settings.
int Initialize ()
 A function used to initialize the manager and the optimizer it manages.
int PreDataUpdateStep (int a_iteration, int a_nbIterations, int a_subset, int a_nbSubsets)
 A function that simply calls the eponym function from the vOptimizer.
int PostDataUpdateStep (int a_iteration, int a_nbIterations, int a_subset, int a_nbSubsets)
 A function that simply calls the eponym function from the vOptimizer.
int DataUpdateStep (oProjectionLine *ap_Line, oImageSpace *ap_Image, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_iteration, int a_thread)
 A function dedicated to the update step in the data space (for each event inside the loop)
int ImageUpdateStep (oImageSpace *ap_Image, int a_iteration, int a_nbSubsets)
 A function dedicated to the update step in the image space (performed after the loop on events)
void SetVerbose (int a_verboseLevel)
 Set the verbose level.
void SetOptionsOptimizer (const string &a_optionsOptimizer)
 Set the optimizer projection options contained in the provided string.
void SetOptionsPenalty (const string &a_optionsPenalty)
 Set the penalty projection options contained in the provided string.
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 Set the image dimensions in use.
void SetNbTOFBins (int a_nbTOFBins)
 Set the number of TOF bins in use.
void SetDataMode (int a_dataMode)
 Set the mode of the data (histogram, list-mode)
void SetDataType (int a_dataType)
 Set the type of the data (pet, spect, etc)
void SetOptimizerFOMFlag (bool a_optimizerFOMFlag)
 Set the optimizer FOM flag that specifies if some figures-of-merit (FOM) will be computed in the data space.
void SetOptimizerImageStatFlag (bool a_optimizerImageStatFlag)
 Set the optimizer image stat flag that specifies if some basic statistics about image update is computed.
int GetNbBackwardImages ()
 Return the number of backward images used by the optimizer, explaining why the eponym function of vOptimizer is called.
FLTNB GetInitialValue ()
 Return the initial image value used by the optimizer, explaining why the eponym function of vOptimizer is called.

Private Member Functions

int ParseOptionsAndInitializeOptimizerAndPenalty ()

Private Attributes

oImageDimensionsAndQuantificationmp_ImageDimensionsAndQuantification
int m_dataMode
int m_dataType
int m_nbTOFBins
string m_optionsOptimizer
string m_optionsPenalty
bool m_optimizerFOMFlag
bool m_optimizerImageStatFlag
vOptimizermp_Optimizer
vPenaltymp_Penalty
int m_verbose

Detailed Description

This class is designed to manage the optimization part of an iterative 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 DataUpdateStep() function is called for each event to apply the forward projection, perform operations in the data space and apply the back-proj, based on a oProjectionLine, a vEvent and a vOptimizer. The ImageUpdateStep() function is called after the loop on events to apply the update operations in the image space, based on the back-projected correction images.

Definition at line 29 of file oOptimizerManager.hh.


Constructor & Destructor Documentation

The constructor of oOptimizerManager.

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 27 of file oOptimizerManager.cc.

The destructor of oOptimizerManager.

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 55 of file oOptimizerManager.cc.


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 64 of file oOptimizerManager.cc.

Here is the caller graph for this function:

int oOptimizerManager::DataUpdateStep ( oProjectionLine ap_Line,
oImageSpace ap_Image,
vEvent ap_Event,
int  a_bed,
int  a_timeFrame,
int  a_respGate,
int  a_cardGate,
int  a_iteration,
int  a_thread 
)

A function dedicated to the update step in the data space (for each event inside the loop)

Parameters:
oProjectionLine*ap_Line
oImageSpace*ap_Image
vEvent*ap_Event
inta_bed
inta_timeFrame
inta_respGate
inta_cardGate
inta_iteration
inta_thread

This function will call many functions of the vOptimizer that split up the update step in the data space in smaller steps: 1. forward projection, 2. optional step, 3. backproj sensitivity for histogram mode, 4. optional step, 5. compute corrections, 6. optional step, 7. backproj corrections, 8. compute FOMs. This function is called by the iterative algorithm, inside the loop on all events.

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

Definition at line 386 of file oOptimizerManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

public inline FLTNB oOptimizerManager::GetInitialValue ( ) [inline]

Return the initial image value used by the optimizer, explaining why the eponym function of vOptimizer is called.

Definition at line 219 of file oOptimizerManager.hh.

Here is the call graph for this function:

Here is the caller graph for this function:

public inline int oOptimizerManager::GetNbBackwardImages ( ) [inline]

Return the number of backward images used by the optimizer, explaining why the eponym function of vOptimizer is called.

Definition at line 213 of file oOptimizerManager.hh.

Here is the call graph for this function:

Here is the caller graph for this function:

int oOptimizerManager::ImageUpdateStep ( oImageSpace ap_Image,
int  a_iteration,
int  a_nbSubsets 
)

A function dedicated to the update step in the image space (performed after the loop on events)

Parameters:
oImageSpace*ap_Image
inta_iteration
inta_nbSubsets

This function will update the visited voxels first (see in vOptimizer for details), manage the call for penalty computation and call the image update step function specific to the optimizer.

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

Definition at line 475 of file oOptimizerManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

A function used to initialize the manager and the optimizer 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 optimizer based on the provided options.

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

Definition at line 105 of file oOptimizerManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 126 of file oOptimizerManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oOptimizerManager::PostDataUpdateStep ( int  a_iteration,
int  a_nbIterations,
int  a_subset,
int  a_nbSubsets 
)

A function that simply calls the eponym function from the vOptimizer.

Parameters:
inta_iteration
inta_nbIterations
inta_subset
inta_nbSubsets
Returns:
An integer reflecting the execution status; 0 if no problem, another value otherwise.

Definition at line 369 of file oOptimizerManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oOptimizerManager::PreDataUpdateStep ( int  a_iteration,
int  a_nbIterations,
int  a_subset,
int  a_nbSubsets 
)

A function that simply calls the eponym function from the vOptimizer.

Parameters:
inta_iteration
inta_nbIterations
inta_subset
inta_nbSubsets
Returns:
An integer reflecting the execution status; 0 if no problem, another value otherwise.

Definition at line 352 of file oOptimizerManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

public inline void oOptimizerManager::SetDataMode ( int  a_dataMode) [inline]

Set the mode of the data (histogram, list-mode)

Parameters:
inta_dataMode

Definition at line 186 of file oOptimizerManager.hh.

Here is the caller graph for this function:

public inline void oOptimizerManager::SetDataType ( int  a_dataType) [inline]

Set the type of the data (pet, spect, etc)

Parameters:
inta_dataType

Definition at line 193 of file oOptimizerManager.hh.

Here is the caller graph for this function:

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

Set the image dimensions in use.

Parameters:
oImageDimensionsAndQuantification*ap_ImageDimensionsAndQuantification

Definition at line 172 of file oOptimizerManager.hh.

Here is the caller graph for this function:

public inline void oOptimizerManager::SetNbTOFBins ( int  a_nbTOFBins) [inline]

Set the number of TOF bins in use.

Parameters:
inta_nbTOFBins

Definition at line 179 of file oOptimizerManager.hh.

Here is the caller graph for this function:

public inline void oOptimizerManager::SetOptimizerFOMFlag ( bool  a_optimizerFOMFlag) [inline]

Set the optimizer FOM flag that specifies if some figures-of-merit (FOM) will be computed in the data space.

Parameters:
boola_optimizerFOMFlag

Definition at line 200 of file oOptimizerManager.hh.

Here is the caller graph for this function:

public inline void oOptimizerManager::SetOptimizerImageStatFlag ( bool  a_optimizerImageStatFlag) [inline]

Set the optimizer image stat flag that specifies if some basic statistics about image update is computed.

Parameters:
boola_optimizerImageStatFlag

Definition at line 207 of file oOptimizerManager.hh.

Here is the caller graph for this function:

public inline void oOptimizerManager::SetOptionsOptimizer ( const string &  a_optionsOptimizer) [inline]

Set the optimizer projection options contained in the provided string.

Parameters:
conststring& a_optionsOptimizer

Definition at line 158 of file oOptimizerManager.hh.

Here is the caller graph for this function:

public inline void oOptimizerManager::SetOptionsPenalty ( const string &  a_optionsPenalty) [inline]

Set the penalty projection options contained in the provided string.

Parameters:
conststring& a_optionsPenalty

Definition at line 165 of file oOptimizerManager.hh.

Here is the caller graph for this function:

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

Set the verbose level.

Parameters:
inta_verboseLevel

Definition at line 151 of file oOptimizerManager.hh.

Here is the caller graph for this function:


Member Data Documentation

Flag indicating if the data is List (=0) or Histogram (=1) mode

Definition at line 228 of file oOptimizerManager.hh.

Flag indicating if the data is PET (=0),SPECT (=1) or TRANSMISSION type (=2)

Definition at line 229 of file oOptimizerManager.hh.

The number of TOF bins in use

Definition at line 230 of file oOptimizerManager.hh.

Flag that says if some figures-of-merit will be computed in the data space

Definition at line 233 of file oOptimizerManager.hh.

Flag that says if some basic statistics about the image update will be computed

Definition at line 234 of file oOptimizerManager.hh.

The string containing options for the optimizer projections

Definition at line 231 of file oOptimizerManager.hh.

The string containing options for the penalty projections

Definition at line 232 of file oOptimizerManager.hh.

The verbose level

Definition at line 237 of file oOptimizerManager.hh.

Pointer to the oImageDimensionsAndQuantification object in use

Definition at line 227 of file oOptimizerManager.hh.

The actual optimizer in use

Definition at line 235 of file oOptimizerManager.hh.

The actual penalty in use (optional)

Definition at line 236 of file oOptimizerManager.hh.


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